{"ast":null,"code":"import { Subject, Observable, merge, ReplaySubject, combineLatest, fromEvent } from 'rxjs';\nimport { DOCUMENT } from '@angular/common';\nimport autoScroll from '@mattlewis92/dom-autoscroller';\nimport { Injectable, Directive, ElementRef, Input, Renderer2, Output, EventEmitter, NgZone, Inject, ViewContainerRef, Optional, NgModule, defineInjectable } from '@angular/core';\nimport { map, mergeMap, takeUntil, take, takeLast, pairwise, share, filter, count, startWith, distinctUntilChanged } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nimport * as ɵngcc0 from '@angular/core';\nclass DraggableHelper {\n constructor() {\n this.currentDrag = new Subject();\n }\n}\nDraggableHelper.ɵfac = function DraggableHelper_Factory(t) {\n return new (t || DraggableHelper)();\n};\nDraggableHelper.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: DraggableHelper,\n factory: DraggableHelper.ɵfac,\n providedIn: 'root'\n});\n/** @nocollapse */\nDraggableHelper.ngInjectableDef = defineInjectable({\n factory: function DraggableHelper_Factory() {\n return new DraggableHelper();\n },\n token: DraggableHelper,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DraggableHelper, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [];\n }, null);\n})();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * If the window isn't scrollable, then place this on the scrollable container that draggable elements are inside. e.g.\n * ```html\n *