http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/eec354e6/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js ---------------------------------------------------------------------- diff --git a/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js new file mode 100644 index 0000000..9c601f6 --- /dev/null +++ b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js @@ -0,0 +1,562 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/cdk/platform'), require('rxjs/Subject'), require('rxjs/Observable'), require('rxjs/observable/of'), require('rxjs/observable/fromEvent'), require('rxjs/operators/auditTime'), require('rxjs/operators/filter'), require('rxjs/observable/merge')) : + typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/cdk/platform', 'rxjs/Subject', 'rxjs/Observable', 'rxjs/observable/of', 'rxjs/observable/fromEvent', 'rxjs/operators/auditTime', 'rxjs/operators/filter', 'rxjs/observable/merge'], factory) : + (factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.scrolling = global.ng.cdk.scrolling || {}),global.ng.core,global.ng.cdk.platform,global.Rx,global.Rx,global.Rx.Observable,global.Rx.Observable,global.Rx.operators,global.Rx.operators,global.Rx.Observable)); +}(this, (function (exports,_angular_core,_angular_cdk_platform,rxjs_Subject,rxjs_Observable,rxjs_observable_of,rxjs_observable_fromEvent,rxjs_operators_auditTime,rxjs_operators_filter,rxjs_observable_merge) { 'use strict'; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes} checked by tsc + */ + +/** + * Time in ms to throttle the scrolling events by default. + */ +var DEFAULT_SCROLL_TIME = 20; +/** + * Service contained all registered Scrollable references and emits an event when any one of the + * Scrollable references emit a scrolled event. + */ +var ScrollDispatcher = /** @class */ (function () { + function ScrollDispatcher(_ngZone, _platform) { + this._ngZone = _ngZone; + this._platform = _platform; + /** + * Subject for notifying that a registered scrollable reference element has been scrolled. + */ + this._scrolled = new rxjs_Subject.Subject(); + /** + * Keeps track of the global `scroll` and `resize` subscriptions. + */ + this._globalSubscription = null; + /** + * Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. + */ + this._scrolledCount = 0; + /** + * Map of all the scrollable references that are registered with the service and their + * scroll event subscriptions. + */ + this.scrollContainers = new Map(); + } + /** + * Registers a scrollable instance with the service and listens for its scrolled events. When the + * scrollable is scrolled, the service emits the event to its scrolled observable. + * @param scrollable Scrollable instance to be registered. + */ + /** + * Registers a scrollable instance with the service and listens for its scrolled events. When the + * scrollable is scrolled, the service emits the event to its scrolled observable. + * @param {?} scrollable Scrollable instance to be registered. + * @return {?} + */ + ScrollDispatcher.prototype.register = /** + * Registers a scrollable instance with the service and listens for its scrolled events. When the + * scrollable is scrolled, the service emits the event to its scrolled observable. + * @param {?} scrollable Scrollable instance to be registered. + * @return {?} + */ + function (scrollable) { + var _this = this; + var /** @type {?} */ scrollSubscription = scrollable.elementScrolled() + .subscribe(function () { return _this._scrolled.next(scrollable); }); + this.scrollContainers.set(scrollable, scrollSubscription); + }; + /** + * Deregisters a Scrollable reference and unsubscribes from its scroll event observable. + * @param scrollable Scrollable instance to be deregistered. + */ + /** + * Deregisters a Scrollable reference and unsubscribes from its scroll event observable. + * @param {?} scrollable Scrollable instance to be deregistered. + * @return {?} + */ + ScrollDispatcher.prototype.deregister = /** + * Deregisters a Scrollable reference and unsubscribes from its scroll event observable. + * @param {?} scrollable Scrollable instance to be deregistered. + * @return {?} + */ + function (scrollable) { + var /** @type {?} */ scrollableReference = this.scrollContainers.get(scrollable); + if (scrollableReference) { + scrollableReference.unsubscribe(); + this.scrollContainers.delete(scrollable); + } + }; + /** + * Returns an observable that emits an event whenever any of the registered Scrollable + * references (or window, document, or body) fire a scrolled event. Can provide a time in ms + * to override the default "throttle" time. + * + * **Note:** in order to avoid hitting change detection for every scroll event, + * all of the events emitted from this stream will be run outside the Angular zone. + * If you need to update any data bindings as a result of a scroll event, you have + * to run the callback using `NgZone.run`. + */ + /** + * Returns an observable that emits an event whenever any of the registered Scrollable + * references (or window, document, or body) fire a scrolled event. Can provide a time in ms + * to override the default "throttle" time. + * + * **Note:** in order to avoid hitting change detection for every scroll event, + * all of the events emitted from this stream will be run outside the Angular zone. + * If you need to update any data bindings as a result of a scroll event, you have + * to run the callback using `NgZone.run`. + * @param {?=} auditTimeInMs + * @return {?} + */ + ScrollDispatcher.prototype.scrolled = /** + * Returns an observable that emits an event whenever any of the registered Scrollable + * references (or window, document, or body) fire a scrolled event. Can provide a time in ms + * to override the default "throttle" time. + * + * **Note:** in order to avoid hitting change detection for every scroll event, + * all of the events emitted from this stream will be run outside the Angular zone. + * If you need to update any data bindings as a result of a scroll event, you have + * to run the callback using `NgZone.run`. + * @param {?=} auditTimeInMs + * @return {?} + */ + function (auditTimeInMs) { + var _this = this; + if (auditTimeInMs === void 0) { auditTimeInMs = DEFAULT_SCROLL_TIME; } + return this._platform.isBrowser ? rxjs_Observable.Observable.create(function (observer) { + if (!_this._globalSubscription) { + _this._addGlobalListener(); + } + // In the case of a 0ms delay, use an observable without auditTime + // since it does add a perceptible delay in processing overhead. + var /** @type {?} */ subscription = auditTimeInMs > 0 ? + _this._scrolled.pipe(rxjs_operators_auditTime.auditTime(auditTimeInMs)).subscribe(observer) : + _this._scrolled.subscribe(observer); + _this._scrolledCount++; + return function () { + subscription.unsubscribe(); + _this._scrolledCount--; + if (!_this._scrolledCount) { + _this._removeGlobalListener(); + } + }; + }) : rxjs_observable_of.of(); + }; + /** + * @return {?} + */ + ScrollDispatcher.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { + var _this = this; + this._removeGlobalListener(); + this.scrollContainers.forEach(function (_, container) { return _this.deregister(container); }); + }; + /** + * Returns an observable that emits whenever any of the + * scrollable ancestors of an element are scrolled. + * @param elementRef Element whose ancestors to listen for. + * @param auditTimeInMs Time to throttle the scroll events. + */ + /** + * Returns an observable that emits whenever any of the + * scrollable ancestors of an element are scrolled. + * @param {?} elementRef Element whose ancestors to listen for. + * @param {?=} auditTimeInMs Time to throttle the scroll events. + * @return {?} + */ + ScrollDispatcher.prototype.ancestorScrolled = /** + * Returns an observable that emits whenever any of the + * scrollable ancestors of an element are scrolled. + * @param {?} elementRef Element whose ancestors to listen for. + * @param {?=} auditTimeInMs Time to throttle the scroll events. + * @return {?} + */ + function (elementRef, auditTimeInMs) { + var /** @type {?} */ ancestors = this.getAncestorScrollContainers(elementRef); + return this.scrolled(auditTimeInMs).pipe(rxjs_operators_filter.filter(function (target) { + return !target || ancestors.indexOf(target) > -1; + })); + }; + /** Returns all registered Scrollables that contain the provided element. */ + /** + * Returns all registered Scrollables that contain the provided element. + * @param {?} elementRef + * @return {?} + */ + ScrollDispatcher.prototype.getAncestorScrollContainers = /** + * Returns all registered Scrollables that contain the provided element. + * @param {?} elementRef + * @return {?} + */ + function (elementRef) { + var _this = this; + var /** @type {?} */ scrollingContainers = []; + this.scrollContainers.forEach(function (_subscription, scrollable) { + if (_this._scrollableContainsElement(scrollable, elementRef)) { + scrollingContainers.push(scrollable); + } + }); + return scrollingContainers; + }; + /** + * Returns true if the element is contained within the provided Scrollable. + * @param {?} scrollable + * @param {?} elementRef + * @return {?} + */ + ScrollDispatcher.prototype._scrollableContainsElement = /** + * Returns true if the element is contained within the provided Scrollable. + * @param {?} scrollable + * @param {?} elementRef + * @return {?} + */ + function (scrollable, elementRef) { + var /** @type {?} */ element = elementRef.nativeElement; + var /** @type {?} */ scrollableElement = scrollable.getElementRef().nativeElement; + // Traverse through the element parents until we reach null, checking if any of the elements + // are the scrollable's element. + do { + if (element == scrollableElement) { + return true; + } + } while (element = element.parentElement); + return false; + }; + /** + * Sets up the global scroll listeners. + * @return {?} + */ + ScrollDispatcher.prototype._addGlobalListener = /** + * Sets up the global scroll listeners. + * @return {?} + */ + function () { + var _this = this; + this._globalSubscription = this._ngZone.runOutsideAngular(function () { + return rxjs_observable_fromEvent.fromEvent(window.document, 'scroll').subscribe(function () { return _this._scrolled.next(); }); + }); + }; + /** + * Cleans up the global scroll listener. + * @return {?} + */ + ScrollDispatcher.prototype._removeGlobalListener = /** + * Cleans up the global scroll listener. + * @return {?} + */ + function () { + if (this._globalSubscription) { + this._globalSubscription.unsubscribe(); + this._globalSubscription = null; + } + }; + ScrollDispatcher.decorators = [ + { type: _angular_core.Injectable }, + ]; + /** @nocollapse */ + ScrollDispatcher.ctorParameters = function () { return [ + { type: _angular_core.NgZone, }, + { type: _angular_cdk_platform.Platform, }, + ]; }; + return ScrollDispatcher; +}()); +/** + * \@docs-private + * @param {?} parentDispatcher + * @param {?} ngZone + * @param {?} platform + * @return {?} + */ +function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) { + return parentDispatcher || new ScrollDispatcher(ngZone, platform); +} +/** + * \@docs-private + */ +var SCROLL_DISPATCHER_PROVIDER = { + // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one. + provide: ScrollDispatcher, + deps: [[new _angular_core.Optional(), new _angular_core.SkipSelf(), ScrollDispatcher], _angular_core.NgZone, _angular_cdk_platform.Platform], + useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY +}; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes} checked by tsc + */ + +/** + * Sends an event when the directive's element is scrolled. Registers itself with the + * ScrollDispatcher service to include itself as part of its collection of scrolling events that it + * can be listened to through the service. + */ +var CdkScrollable = /** @class */ (function () { + function CdkScrollable(_elementRef, _scroll, _ngZone) { + var _this = this; + this._elementRef = _elementRef; + this._scroll = _scroll; + this._ngZone = _ngZone; + this._elementScrolled = new rxjs_Subject.Subject(); + this._scrollListener = function (event) { return _this._elementScrolled.next(event); }; + } + /** + * @return {?} + */ + CdkScrollable.prototype.ngOnInit = /** + * @return {?} + */ + function () { + var _this = this; + this._ngZone.runOutsideAngular(function () { + _this.getElementRef().nativeElement.addEventListener('scroll', _this._scrollListener); + }); + this._scroll.register(this); + }; + /** + * @return {?} + */ + CdkScrollable.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { + this._scroll.deregister(this); + if (this._scrollListener) { + this.getElementRef().nativeElement.removeEventListener('scroll', this._scrollListener); + } + }; + /** + * Returns observable that emits when a scroll event is fired on the host element. + */ + /** + * Returns observable that emits when a scroll event is fired on the host element. + * @return {?} + */ + CdkScrollable.prototype.elementScrolled = /** + * Returns observable that emits when a scroll event is fired on the host element. + * @return {?} + */ + function () { + return this._elementScrolled.asObservable(); + }; + /** + * @return {?} + */ + CdkScrollable.prototype.getElementRef = /** + * @return {?} + */ + function () { + return this._elementRef; + }; + CdkScrollable.decorators = [ + { type: _angular_core.Directive, args: [{ + selector: '[cdk-scrollable], [cdkScrollable]' + },] }, + ]; + /** @nocollapse */ + CdkScrollable.ctorParameters = function () { return [ + { type: _angular_core.ElementRef, }, + { type: ScrollDispatcher, }, + { type: _angular_core.NgZone, }, + ]; }; + return CdkScrollable; +}()); + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes} checked by tsc + */ + +/** + * Time in ms to throttle the resize events by default. + */ +var DEFAULT_RESIZE_TIME = 20; +/** + * Simple utility for getting the bounds of the browser viewport. + * \@docs-private + */ +var ViewportRuler = /** @class */ (function () { + function ViewportRuler(platform, ngZone) { + var _this = this; + this._change = platform.isBrowser ? ngZone.runOutsideAngular(function () { + return rxjs_observable_merge.merge(rxjs_observable_fromEvent.fromEvent(window, 'resize'), rxjs_observable_fromEvent.fromEvent(window, 'orientationchange')); + }) : rxjs_observable_of.of(); + this._invalidateCache = this.change().subscribe(function () { return _this._updateViewportSize(); }); + } + /** + * @return {?} + */ + ViewportRuler.prototype.ngOnDestroy = /** + * @return {?} + */ + function () { + this._invalidateCache.unsubscribe(); + }; + /** Returns the viewport's width and height. */ + /** + * Returns the viewport's width and height. + * @return {?} + */ + ViewportRuler.prototype.getViewportSize = /** + * Returns the viewport's width and height. + * @return {?} + */ + function () { + if (!this._viewportSize) { + this._updateViewportSize(); + } + return { width: this._viewportSize.width, height: this._viewportSize.height }; + }; + /** Gets a ClientRect for the viewport's bounds. */ + /** + * Gets a ClientRect for the viewport's bounds. + * @return {?} + */ + ViewportRuler.prototype.getViewportRect = /** + * Gets a ClientRect for the viewport's bounds. + * @return {?} + */ + function () { + // Use the document element's bounding rect rather than the window scroll properties + // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll + // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different + // conceptual viewports. Under most circumstances these viewports are equivalent, but they + // can disagree when the page is pinch-zoomed (on devices that support touch). + // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4 + // We use the documentElement instead of the body because, by default (without a css reset) + // browsers typically give the document body an 8px margin, which is not included in + // getBoundingClientRect(). + var /** @type {?} */ scrollPosition = this.getViewportScrollPosition(); + var _a = this.getViewportSize(), width = _a.width, height = _a.height; + return { + top: scrollPosition.top, + left: scrollPosition.left, + bottom: scrollPosition.top + height, + right: scrollPosition.left + width, + height: height, + width: width, + }; + }; + /** Gets the (top, left) scroll position of the viewport. */ + /** + * Gets the (top, left) scroll position of the viewport. + * @return {?} + */ + ViewportRuler.prototype.getViewportScrollPosition = /** + * Gets the (top, left) scroll position of the viewport. + * @return {?} + */ + function () { + // The top-left-corner of the viewport is determined by the scroll position of the document + // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about + // whether `document.body` or `document.documentElement` is the scrolled element, so reading + // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of + // `document.documentElement` works consistently, where the `top` and `left` values will + // equal negative the scroll position. + var /** @type {?} */ documentRect = document.documentElement.getBoundingClientRect(); + var /** @type {?} */ top = -documentRect.top || document.body.scrollTop || window.scrollY || + document.documentElement.scrollTop || 0; + var /** @type {?} */ left = -documentRect.left || document.body.scrollLeft || window.scrollX || + document.documentElement.scrollLeft || 0; + return { top: top, left: left }; + }; + /** + * Returns a stream that emits whenever the size of the viewport changes. + * @param throttle Time in milliseconds to throttle the stream. + */ + /** + * Returns a stream that emits whenever the size of the viewport changes. + * @param {?=} throttleTime + * @return {?} + */ + ViewportRuler.prototype.change = /** + * Returns a stream that emits whenever the size of the viewport changes. + * @param {?=} throttleTime + * @return {?} + */ + function (throttleTime) { + if (throttleTime === void 0) { throttleTime = DEFAULT_RESIZE_TIME; } + return throttleTime > 0 ? this._change.pipe(rxjs_operators_auditTime.auditTime(throttleTime)) : this._change; + }; + /** + * Updates the cached viewport size. + * @return {?} + */ + ViewportRuler.prototype._updateViewportSize = /** + * Updates the cached viewport size. + * @return {?} + */ + function () { + this._viewportSize = { width: window.innerWidth, height: window.innerHeight }; + }; + ViewportRuler.decorators = [ + { type: _angular_core.Injectable }, + ]; + /** @nocollapse */ + ViewportRuler.ctorParameters = function () { return [ + { type: _angular_cdk_platform.Platform, }, + { type: _angular_core.NgZone, }, + ]; }; + return ViewportRuler; +}()); +/** + * \@docs-private + * @param {?} parentRuler + * @param {?} platform + * @param {?} ngZone + * @return {?} + */ +function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, platform, ngZone) { + return parentRuler || new ViewportRuler(platform, ngZone); +} +/** + * \@docs-private + */ +var VIEWPORT_RULER_PROVIDER = { + // If there is already a ViewportRuler available, use that. Otherwise, provide a new one. + provide: ViewportRuler, + deps: [[new _angular_core.Optional(), new _angular_core.SkipSelf(), ViewportRuler], _angular_cdk_platform.Platform, _angular_core.NgZone], + useFactory: VIEWPORT_RULER_PROVIDER_FACTORY +}; + +/** + * @fileoverview added by tsickle + * @suppress {checkTypes} checked by tsc + */ + +var ScrollDispatchModule = /** @class */ (function () { + function ScrollDispatchModule() { + } + ScrollDispatchModule.decorators = [ + { type: _angular_core.NgModule, args: [{ + imports: [_angular_cdk_platform.PlatformModule], + exports: [CdkScrollable], + declarations: [CdkScrollable], + providers: [SCROLL_DISPATCHER_PROVIDER], + },] }, + ]; + /** @nocollapse */ + ScrollDispatchModule.ctorParameters = function () { return []; }; + return ScrollDispatchModule; +}()); + +exports.DEFAULT_SCROLL_TIME = DEFAULT_SCROLL_TIME; +exports.ScrollDispatcher = ScrollDispatcher; +exports.SCROLL_DISPATCHER_PROVIDER_FACTORY = SCROLL_DISPATCHER_PROVIDER_FACTORY; +exports.SCROLL_DISPATCHER_PROVIDER = SCROLL_DISPATCHER_PROVIDER; +exports.CdkScrollable = CdkScrollable; +exports.DEFAULT_RESIZE_TIME = DEFAULT_RESIZE_TIME; +exports.ViewportRuler = ViewportRuler; +exports.VIEWPORT_RULER_PROVIDER_FACTORY = VIEWPORT_RULER_PROVIDER_FACTORY; +exports.VIEWPORT_RULER_PROVIDER = VIEWPORT_RULER_PROVIDER; +exports.ScrollDispatchModule = ScrollDispatchModule; + +Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=cdk-scrolling.umd.js.map
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/eec354e6/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js.map ---------------------------------------------------------------------- diff --git a/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js.map new file mode 100644 index 0000000..14105c2 --- /dev/null +++ b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cdk-scrolling.umd.js","sources":["../../src/cdk/scrolling/scrolling-module.ts","../../src/cdk/scrolling/viewport-ruler.ts","../../src/cdk/scrolling/scrollable.ts","../../src/cdk/scrolling/scroll-dispatcher.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {SCROLL_DISPATCHER_PROVIDER} from './scroll-dispatcher';\nimport {CdkScrollable} from './scrollable';\nimport {PlatformModule} from '@angular/cdk/platform';\n\n@NgModule({\n imports: [PlatformModule],\n exports: [CdkScrollable],\n declarations: [CdkScrollable],\n providers: [SCROLL_DISPATCHER_PROVIDER],\n})\nexport class ScrollDispatchModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, Optional, SkipSelf, NgZone, OnDestroy} from '@angular/core';\nimport {Platform} from '@angular/cdk/platform';\nimport {Observable} from 'rxjs/Observable';\nimport {fromEvent} from 'rxjs/observable/fromEvent';\nimport {merge} from 'rxjs/observable/merge';\nimport {auditTime} from 'rxjs/operators/auditTime';\nimport {Subscription} from 'rxjs/Subscription';\nimport {of as observableOf} from 'rxjs/observable/of';\n\n/** Time in ms to throttle the resize events by default. */\nexport const DEFAULT_RESIZE_TIME = 20;\n\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * @docs-private\n */\n@Injectable()\nexport class ViewportRuler implements OnDestroy {\n /** Cached viewport dimensions. */\n private _viewportSize: {width: number; height: number};\n\n /** Stream of viewport change events. */\n private _change: Observable<Event>;\n\n /** Subscription to streams tha t invalidate the cached viewport dimensions. */\n private _invalidateCache: Subscription;\n\n constructor(platform: Platform, ngZone: NgZone) {\n this._change = platform.isBrowser ? ngZone.runOutsideAngular(() => {\n return merge<Event>(fromEvent(window, 'resize'), fromEvent(window, 'orientationchange'));\n }) : observableOf();\n\n this._invalidateCache = this.change().subscribe(() => this._updateViewportSize());\n }\n\n ngOnDestroy() {\n this._invalidateCache.unsubscribe();\n }\n\n /** Returns the viewport's width and height. */\n getViewportSize(): Readonly<{width: number, height: number}> {\n if (!this._viewportSize) {\n this._updateViewportSize();\n }\n\n return {width: this._viewportSize.width, height: this._viewportSize.height};\n }\n\n /** Gets a ClientRect for the viewport's bounds. */\n getViewportRect(): ClientRect {\n // Use the document element's bounding rect rather than the window scroll properties\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n // can disagree when the page is pinch-zoomed (on devices that support touch).\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n // We use the documentElement instead of the body because, by default (without a css reset)\n // browsers typically give the document body an 8px margin, which is not included in\n // getBoundingClientRect().\n const scrollPosition = this.getViewportScrollPosition();\n const {width, height} = this.getViewportSize();\n\n return {\n top: scrollPosition.top,\n left: scrollPosition.left,\n bottom: scrollPosition.top + height,\n right: scrollPosition.left + width,\n height,\n width,\n };\n }\n\n /** Gets the (top, left) scroll position of the viewport. */\n getViewportScrollPosition() {\n // The top-left-corner of the viewport is determined by the scroll position of the document\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n // `document.documentElement` works consistently, where the `top` and `left` values will\n // equal negative the scroll position.\n const documentRect = document.documentElement.getBoundingClientRect();\n\n const top = -documentRect.top || document.body.scrollTop || window.scrollY ||\n document.documentElement.scrollTop || 0;\n\n const left = -documentRect.left || document.body.scrollLeft || window.scrollX ||\n document.documentElement.scrollLeft || 0;\n\n return {top, left};\n }\n\n /**\n * Returns a stream that emits whenever the size of the viewport changes.\n * @param throttle Time in milliseconds to throttle the stream.\n */\n change(throttleTime: number = DEFAULT_RESIZE_TIME): Observable<Event> {\n return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;\n }\n\n /** Updates the cached viewport size. */\n private _updateViewportSize() {\n this._viewportSize = {width: window.innerWidth, height: window.innerHeight};\n }\n}\n\n/** @docs-private */\nexport function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler: ViewportRuler,\n platform: Platform,\n ngZone: NgZone) {\n return parentRuler || new ViewportRuler(platform, ngZone);\n}\n\n/** @docs-private */\nexport const VIEWPORT_RULER_PROVIDER = {\n // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.\n provide: ViewportRuler,\n deps: [[new Optiona l(), new SkipSelf(), ViewportRuler], Platform, NgZone],\n useFactory: VIEWPORT_RULER_PROVIDER_FACTORY\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, OnInit, OnDestroy, NgZone} from '@angular/core';\nimport {Observable} from 'rxjs/Observable';\nimport {Subject} from 'rxjs/Subject';\nimport {ScrollDispatcher} from './scroll-dispatcher';\n\n\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\n@Directive({\n selector: '[cdk-scrollable], [cdkScrollable]'\n})\nexport class CdkScrollable implements OnInit, OnDestroy {\n private _elementScrolled: Subject<Event> = new Subject();\n private _scrollListe ner = (event: Event) => this._elementScrolled.next(event);\n\n constructor(private _elementRef: ElementRef,\n private _scroll: ScrollDispatcher,\n private _ngZone: NgZone) {}\n\n ngOnInit() {\n this._ngZone.runOutsideAngular(() => {\n this.getElementRef().nativeElement.addEventListener('scroll', this._scrollListener);\n });\n\n this._scroll.register(this);\n }\n\n ngOnDestroy() {\n this._scroll.deregister(this);\n\n if (this._scrollListener) {\n this.getElementRef().nativeElement.removeEventListener('scroll', this._scrollListener);\n }\n }\n\n /**\n * Returns observable that emits when a scroll event is fired on the host element.\n */\n elementScrolled(): Observable<any> {\n return this._elementScrolled.asObservable();\n }\n\n getElementRef(): ElementRef {\n return this._elementRef;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-s tyle license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef, Injectable, NgZone, Optional, SkipSelf, OnDestroy} from '@angular/core';\nimport {Platform} from '@angular/cdk/platform';\nimport {Subject} from 'rxjs/Subject';\nimport {Subscription} from 'rxjs/Subscription';\nimport {Observable} from 'rxjs/Observable';\nimport {of as observableOf} from 'rxjs/observable/of';\nimport {fromEvent} from 'rxjs/observable/fromEvent';\nimport {auditTime} from 'rxjs/operators/auditTime';\nimport {filter} from 'rxjs/operators/filter';\nimport {CdkScrollable} from './scrollable';\n\n\n/** Time in ms to throttle the scrolling events by default. */\nexport const DEFAULT_SCROLL_TIME = 20;\n\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\n@Injectable()\nexport class ScrollDispatcher implements OnDestroy {\n constructor(private _ngZone: NgZone , private _platform: Platform) { }\n\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\n private _scrolled = new Subject<CdkScrollable|void>();\n\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\n _globalSubscription: Subscription | null = null;\n\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\n private _scrolledCount = 0;\n\n /**\n * Map of all the scrollable references that are registered with the service and their\n * scroll event subscriptions.\n */\n scrollContainers: Map<CdkScrollable, Subscription> = new Map();\n\n /**\n * Registers a scrollable instance with the service and listens for its scrolled events. When the\n * scrollable is scrolled, the service emits the event to its scrolled observable.\n * @param scrollable Scrollable instance to be registered.\n */\n register(scrollable: CdkScrollable): void {\n const scrollSubscri ption = scrollable.elementScrolled()\n .subscribe(() => this._scrolled.next(scrollable));\n\n this.scrollContainers.set(scrollable, scrollSubscription);\n }\n\n /**\n * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\n * @param scrollable Scrollable instance to be deregistered.\n */\n deregister(scrollable: CdkScrollable): void {\n const scrollableReference = this.scrollContainers.get(scrollable);\n\n if (scrollableReference) {\n scrollableReference.unsubscribe();\n this.scrollContainers.delete(scrollable);\n }\n }\n\n /**\n * Returns an observable that emits an event whenever any of the registered Scrollable\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n * to override the default \"throttle\" time.\n *\n * **Note:** in order to avoid hitting change detection for every scroll event,\n * all of the events emitted from this stream will be run outsi de the Angular zone.\n * If you need to update any data bindings as a result of a scroll event, you have\n * to run the callback using `NgZone.run`.\n */\n scrolled(auditTimeInMs: number = DEFAULT_SCROLL_TIME): Observable<CdkScrollable|void> {\n return this._platform.isBrowser ? Observable.create(observer => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription = auditTimeInMs > 0 ?\n this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer) :\n this._scrolled.subscribe(observer);\n\n this._scrolledCount++;\n\n return () => {\n subscription.unsubscribe();\n this._scrolledCount--;\n\n if (!this._scrolledCount) {\n this._removeGlobalListener();\n }\n };\n }) : observableOf<void>();\n }\n\n ngOn Destroy() {\n this._removeGlobalListener();\n this.scrollContainers.forEach((_, container) => this.deregister(container));\n }\n\n /**\n * Returns an observable that emits whenever any of the\n * scrollable ancestors of an element are scrolled.\n * @param elementRef Element whose ancestors to listen for.\n * @param auditTimeInMs Time to throttle the scroll events.\n */\n ancestorScrolled(elementRef: ElementRef, auditTimeInMs?: number): Observable<CdkScrollable|void> {\n const ancestors = this.getAncestorScrollContainers(elementRef);\n\n return this.scrolled(auditTimeInMs).pipe(filter(target => {\n return !target || ancestors.indexOf(target) > -1;\n }));\n }\n\n /** Returns all registered Scrollables that contain the provided element. */\n getAncestorScrollContainers(elementRef: ElementRef): CdkScrollable[] {\n const scrollingContainers: CdkScrollable[] = [];\n\n this.scrollContainers.forEach((_subscription: Subscription, scrollable: CdkScrol lable) => {\n if (this._scrollableContainsElement(scrollable, elementRef)) {\n scrollingContainers.push(scrollable);\n }\n });\n\n return scrollingContainers;\n }\n\n /** Returns true if the element is contained within the provided Scrollable. */\n private _scrollableContainsElement(scrollable: CdkScrollable, elementRef: ElementRef): boolean {\n let element = elementRef.nativeElement;\n let scrollableElement = scrollable.getElementRef().nativeElement;\n\n // Traverse through the element parents until we reach null, checking if any of the elements\n // are the scrollable's element.\n do {\n if (element == scrollableElement) { return true; }\n } while (element = element.parentElement);\n\n return false;\n }\n\n /** Sets up the global scroll listeners. */\n private _addGlobalListener() {\n this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n return fromEvent(window.document, 'scroll').subscribe(() => this._sc rolled.next());\n });\n }\n\n /** Cleans up the global scroll listener. */\n private _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n}\n\n/** @docs-private */\nexport function SCROLL_DISPATCHER_PROVIDER_FACTORY(\n parentDispatcher: ScrollDispatcher, ngZone: NgZone, platform: Platform) {\n return parentDispatcher || new ScrollDispatcher(ngZone, platform);\n}\n\n/** @docs-private */\nexport const SCROLL_DISPATCHER_PROVIDER = {\n // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.\n provide: ScrollDispatcher,\n deps: [[new Optional(), new SkipSelf(), ScrollDispatcher], NgZone, Platform],\n useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY\n};\n"],"names":["PlatformModule","NgModule","Optional","SkipSelf","Platform","NgZone","Injectable","auditTime","observableOf","merge","fromEvent","ElementRef","Directive","Subject","fil ter","Observable"],"mappings":"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 ;CAmBA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;"} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/eec354e6/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js ---------------------------------------------------------------------- diff --git a/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js new file mode 100644 index 0000000..f1753e3 --- /dev/null +++ b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/cdk/platform"),require("rxjs/Subject"),require("rxjs/Observable"),require("rxjs/observable/of"),require("rxjs/observable/fromEvent"),require("rxjs/operators/auditTime"),require("rxjs/operators/filter"),require("rxjs/observable/merge")):"function"==typeof define&&define.amd?define(["exports","@angular/core","@angular/cdk/platform","rxjs/Subject","rxjs/Observable","rxjs/observable/of","rxjs/observable/fromEvent","rxjs/operators/auditTime","rxjs/operators/filter","rxjs/observable/merge"],t):t((e.ng=e.ng||{},e.ng.cdk=e.ng.cdk||{},e.ng.cdk.scrolling=e.ng.cdk.scrolling||{}),e.ng.core,e.ng.cdk.platform,e.Rx,e.Rx,e.Rx.Observable,e.Rx.Observable,e.Rx.operators,e.Rx.operators,e.Rx.Observable)}(this,function(e,t,r,o,n,i,s,l,c,u){"use strict";function a(e,t,r){return e||new d(t,r)}function p(e,t,r){return e||new b(t,r)}var d=function(){function e(e,t){this._ngZone=e,this._pla tform=t,this._scrolled=new o.Subject,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map}return e.prototype.register=function(e){var t=this,r=e.elementScrolled().subscribe(function(){return t._scrolled.next(e)});this.scrollContainers.set(e,r)},e.prototype.deregister=function(e){var t=this.scrollContainers.get(e);t&&(t.unsubscribe(),this.scrollContainers.delete(e))},e.prototype.scrolled=function(e){var t=this;return void 0===e&&(e=20),this._platform.isBrowser?n.Observable.create(function(r){t._globalSubscription||t._addGlobalListener();var o=e>0?t._scrolled.pipe(l.auditTime(e)).subscribe(r):t._scrolled.subscribe(r);return t._scrolledCount++,function(){o.unsubscribe(),--t._scrolledCount||t._removeGlobalListener()}}):i.of()},e.prototype.ngOnDestroy=function(){var e=this;this._removeGlobalListener(),this.scrollContainers.forEach(function(t,r){return e.deregister(r)})},e.prototype.ancestorScrolled=function(e,t){var r=this.getAncestorScrollContainers(e);retur n this.scrolled(t).pipe(c.filter(function(e){return!e||r.indexOf(e)>-1}))},e.prototype.getAncestorScrollContainers=function(e){var t=this,r=[];return this.scrollContainers.forEach(function(o,n){t._scrollableContainsElement(n,e)&&r.push(n)}),r},e.prototype._scrollableContainsElement=function(e,t){var r=t.nativeElement,o=e.getElementRef().nativeElement;do{if(r==o)return!0}while(r=r.parentElement);return!1},e.prototype._addGlobalListener=function(){var e=this;this._globalSubscription=this._ngZone.runOutsideAngular(function(){return s.fromEvent(window.document,"scroll").subscribe(function(){return e._scrolled.next()})})},e.prototype._removeGlobalListener=function(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:t.NgZone},{type:r.Platform}]},e}(),f={provide:d,deps:[[new t.Optional,new t.SkipSelf,d],t.NgZone,r.Platform],useFactory:a},h=function(){function e(e,t,r) {var n=this;this._elementRef=e,this._scroll=t,this._ngZone=r,this._elementScrolled=new o.Subject,this._scrollListener=function(e){return n._elementScrolled.next(e)}}return e.prototype.ngOnInit=function(){var e=this;this._ngZone.runOutsideAngular(function(){e.getElementRef().nativeElement.addEventListener("scroll",e._scrollListener)}),this._scroll.register(this)},e.prototype.ngOnDestroy=function(){this._scroll.deregister(this),this._scrollListener&&this.getElementRef().nativeElement.removeEventListener("scroll",this._scrollListener)},e.prototype.elementScrolled=function(){return this._elementScrolled.asObservable()},e.prototype.getElementRef=function(){return this._elementRef},e.decorators=[{type:t.Directive,args:[{selector:"[cdk-scrollable], [cdkScrollable]"}]}],e.ctorParameters=function(){return[{type:t.ElementRef},{type:d},{type:t.NgZone}]},e}(),b=function(){function e(e,t){var r=this;this._change=e.isBrowser?t.runOutsideAngular(function(){return u.merge(s.fromEvent(window,"resize "),s.fromEvent(window,"orientationchange"))}):i.of(),this._invalidateCache=this.change().subscribe(function(){return r._updateViewportSize()})}return e.prototype.ngOnDestroy=function(){this._invalidateCache.unsubscribe()},e.prototype.getViewportSize=function(){return this._viewportSize||this._updateViewportSize(),{width:this._viewportSize.width,height:this._viewportSize.height}},e.prototype.getViewportRect=function(){var e=this.getViewportScrollPosition(),t=this.getViewportSize(),r=t.width,o=t.height;return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+r,height:o,width:r}},e.prototype.getViewportScrollPosition=function(){var e=document.documentElement.getBoundingClientRect();return{top:-e.top||document.body.scrollTop||window.scrollY||document.documentElement.scrollTop||0,left:-e.left||document.body.scrollLeft||window.scrollX||document.documentElement.scrollLeft||0}},e.prototype.change=function(e){return void 0===e&&(e=20),e>0?this._change.pipe(l.auditTime(e)):this._change},e.pro totype._updateViewportSize=function(){this._viewportSize={width:window.innerWidth,height:window.innerHeight}},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:r.Platform},{type:t.NgZone}]},e}(),g={provide:b,deps:[[new t.Optional,new t.SkipSelf,b],r.Platform,t.NgZone],useFactory:p},_=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[r.PlatformModule],exports:[h],declarations:[h],providers:[f]}]}],e.ctorParameters=function(){return[]},e}();e.DEFAULT_SCROLL_TIME=20,e.ScrollDispatcher=d,e.SCROLL_DISPATCHER_PROVIDER_FACTORY=a,e.SCROLL_DISPATCHER_PROVIDER=f,e.CdkScrollable=h,e.DEFAULT_RESIZE_TIME=20,e.ViewportRuler=b,e.VIEWPORT_RULER_PROVIDER_FACTORY=p,e.VIEWPORT_RULER_PROVIDER=g,e.ScrollDispatchModule=_,Object.defineProperty(e,"__esModule",{value:!0})}); +//# sourceMappingURL=cdk-scrolling.umd.min.js.map http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/eec354e6/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js.map ---------------------------------------------------------------------- diff --git a/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js.map new file mode 100644 index 0000000..1c376c0 --- /dev/null +++ b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cdk-scrolling.umd.min.js","sources":["../../src/cdk/scrolling/scroll-dispatcher.ts","../../src/cdk/scrolling/viewport-ruler.ts","../../src/cdk/scrolling/scrollable.ts","../../src/cdk/scrolling/scrolling-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef, Injectable, NgZone, Optional, SkipSelf, OnDestroy} from '@angular/core';\nimport {Platform} from '@angular/cdk/platform';\nimport {Subject} from 'rxjs/Subject';\nimport {Subscription} from 'rxjs/Subscription';\nimport {Observable} from 'rxjs/Observable';\nimport {of as observableOf} from 'rxjs/observable/of';\nimport {fromEvent} from 'rxjs/observable/fromEvent';\nimport {auditTime} from 'rxjs/operators/auditTime';\nimport {filter} from 'rxjs/operators/filter';\nimport {CdkScrollable} from './scrollable';\n \n\n/** Time in ms to throttle the scrolling events by default. */\nexport const DEFAULT_SCROLL_TIME = 20;\n\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\n@Injectable()\nexport class ScrollDispatcher implements OnDestroy {\n constructor(private _ngZone: NgZone, private _platform: Platform) { }\n\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\n private _scrolled = new Subject<CdkScrollable|void>();\n\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\n _globalSubscription: Subscription | null = null;\n\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\n private _scrolledCount = 0;\n\n /**\n * Map of all the scrollable references that are registered with the service and their\n * scroll event subscriptions.\n */\n scrollContainers: Map<CdkSc rollable, Subscription> = new Map();\n\n /**\n * Registers a scrollable instance with the service and listens for its scrolled events. When the\n * scrollable is scrolled, the service emits the event to its scrolled observable.\n * @param scrollable Scrollable instance to be registered.\n */\n register(scrollable: CdkScrollable): void {\n const scrollSubscription = scrollable.elementScrolled()\n .subscribe(() => this._scrolled.next(scrollable));\n\n this.scrollContainers.set(scrollable, scrollSubscription);\n }\n\n /**\n * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\n * @param scrollable Scrollable instance to be deregistered.\n */\n deregister(scrollable: CdkScrollable): void {\n const scrollableReference = this.scrollContainers.get(scrollable);\n\n if (scrollableReference) {\n scrollableReference.unsubscribe();\n this.scrollContainers.delete(scrollable);\n }\n }\n\n /**\n * Returns an observable that emits an event whenever any of the registered Scrollable\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n * to override the default \"throttle\" time.\n *\n * **Note:** in order to avoid hitting change detection for every scroll event,\n * all of the events emitted from this stream will be run outside the Angular zone.\n * If you need to update any data bindings as a result of a scroll event, you have\n * to run the callback using `NgZone.run`.\n */\n scrolled(auditTimeInMs: number = DEFAULT_SCROLL_TIME): Observable<CdkScrollable|void> {\n return this._platform.isBrowser ? Observable.create(observer => {\n if (!this._globalSubscription) {\n this._addGlobalListener();\n }\n\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n const subscription = auditTimeInMs > 0 ?\n this._scroll ed.pipe(auditTime(auditTimeInMs)).subscribe(observer) :\n this._scrolled.subscribe(observer);\n\n this._scrolledCount++;\n\n return () => {\n subscription.unsubscribe();\n this._scrolledCount--;\n\n if (!this._scrolledCount) {\n this._removeGlobalListener();\n }\n };\n }) : observableOf<void>();\n }\n\n ngOnDestroy() {\n this._removeGlobalListener();\n this.scrollContainers.forEach((_, container) => this.deregister(container));\n }\n\n /**\n * Returns an observable that emits whenever any of the\n * scrollable ancestors of an element are scrolled.\n * @param elementRef Element whose ancestors to listen for.\n * @param auditTimeInMs Time to throttle the scroll events.\n */\n ancestorScrolled(elementRef: ElementRef, auditTimeInMs?: number): Observable<CdkScrollable|void> {\n const ancestors = this.getAncestorScrollContainers(elementRef);\n\n return this.scrolled(auditTimeInMs).pipe(filter(target = > {\n return !target || ancestors.indexOf(target) > -1;\n }));\n > }\n\n /** Returns all registered Scrollables that contain the provided > element. */\n getAncestorScrollContainers(elementRef: ElementRef): > CdkScrollable[] {\n const scrollingContainers: CdkScrollable[] = [];\n\n > this.scrollContainers.forEach((_subscription: Subscription, scrollable: > CdkScrollable) => {\n if (this._scrollableContainsElement(scrollable, > elementRef)) {\n scrollingContainers.push(scrollable);\n }\n > });\n\n return scrollingContainers;\n }\n\n /** Returns true if the > element is contained within the provided Scrollable. */\n private > _scrollableContainsElement(scrollable: CdkScrollable, elementRef: > ElementRef): boolean {\n let element = elementRef.nativeElement;\n let > scrollableElement = scrollable.getElementRef().nativeElement;\n\n // > Traverse through the element parents until we reach null, checking if any of > the elements\n // are the scrollable's element .\n do {\n if (element == scrollableElement) { return true; }\n } while (element = element.parentElement);\n\n return false;\n }\n\n /** Sets up the global scroll listeners. */\n private _addGlobalListener() {\n this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n return fromEvent(window.document, 'scroll').subscribe(() => this._scrolled.next());\n });\n }\n\n /** Cleans up the global scroll listener. */\n private _removeGlobalListener() {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n }\n}\n\n/** @docs-private */\nexport function SCROLL_DISPATCHER_PROVIDER_FACTORY(\n parentDispatcher: ScrollDispatcher, ngZone: NgZone, platform: Platform) {\n return parentDispatcher || new ScrollDispatcher(ngZone, platform);\n}\n\n/** @docs-private */\nexport const SCROLL_DISPATCHER_PROVIDER = {\n // If there is already a ScrollDispatcher available, use that. Othe rwise, provide a new one.\n provide: ScrollDispatcher,\n deps: [[new Optional(), new SkipSelf(), ScrollDispatcher], NgZone, Platform],\n useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, Optional, SkipSelf, NgZone, OnDestroy} from '@angular/core';\nimport {Platform} from '@angular/cdk/platform';\nimport {Observable} from 'rxjs/Observable';\nimport {fromEvent} from 'rxjs/observable/fromEvent';\nimport {merge} from 'rxjs/observable/merge';\nimport {auditTime} from 'rxjs/operators/auditTime';\nimport {Subscription} from 'rxjs/Subscription';\nimport {of as observableOf} from 'rxjs/observable/of';\n\n/** Time in ms to throttle the resize events by default. */\nexport const DEFAULT_RESIZE_TIME = 20;\n\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * @docs-private\n */\n@Injectable()\nexport class ViewportRuler implements OnDestroy {\n /** Cached viewport dimensions. */\n private _viewportSize: {width: number; height: number};\n\n /** Stream of viewport change events. */\n private _change: Observable<Event>;\n\n /** Subscription to streams that invalidate the cached viewport dimensions. */\n private _invalidateCache: Subscription;\n\n constructor(platform: Platform, ngZone: NgZone) {\n this._change = platform.isBrowser ? ngZone.runOutsideAngular(() => {\n return merge<Event>(fromEvent(window, 'resize'), fromEvent(window, 'orientationchange'));\n }) : observableOf();\n\n this._invalidateCache = this.change().subscribe(() => this._updateViewportSize());\n }\n\n ngOnDestroy() {\n this._invalidateCache.unsubscribe();\n }\n\n /** Returns the viewport's width and height. */\n getViewportSize(): Readonly<{width: number, height: number}> {\n if (!this._viewportSize) {\n this._u pdateViewportSize();\n }\n\n return {width: this._viewportSize.width, height: this._viewportSize.height};\n }\n\n /** Gets a ClientRect for the viewport's bounds. */\n getViewportRect(): ClientRect {\n // Use the document element's bounding rect rather than the window scroll properties\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n // can disagree when the page is pinch-zoomed (on devices that support touch).\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n // We use the documentElement instead of the body because, by default (without a css reset)\n // browsers typically give the document body an 8px margin, which is not included in\n // getBoundingClientRect().\n const scrollPosition = this.get ViewportScrollPosition();\n const {width, height} = this.getViewportSize();\n\n return {\n top: scrollPosition.top,\n left: scrollPosition.left,\n bottom: scrollPosition.top + height,\n right: scrollPosition.left + width,\n height,\n width,\n };\n }\n\n /** Gets the (top, left) scroll position of the viewport. */\n getViewportScrollPosition() {\n // The top-left-corner of the viewport is determined by the scroll position of the document\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n // `document.documentElement` works consistently, where the `top` and `left` values will\n // equal negative the scroll position.\n const documentRect = document.documentElement.getBoundingClientRect();\n\n const top = -documentRect.top || document.body.scrollTop || window.scrollY ||\n document.documentElement.scrollTop || 0;\n\n const left = -documentRect.left || document.body.scrollLeft || window.scrollX ||\n document.documentElement.scrollLeft || 0;\n\n return {top, left};\n }\n\n /**\n * Returns a stream that emits whenever the size of the viewport changes.\n * @param throttle Time in milliseconds to throttle the stream.\n */\n change(throttleTime: number = DEFAULT_RESIZE_TIME): Observable<Event> {\n return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;\n }\n\n /** Updates the cached viewport size. */\n private _updateViewportSize() {\n this._viewportSize = {width: window.innerWidth, height: window.innerHeight};\n }\n}\n\n/** @docs-private */\nexport function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler: ViewportRuler,\n platform: Platform,\n ngZone: NgZone) {\n return parentRuler || new ViewportRuler(platform, ngZone);\n}\n\n/** @docs-private */\nexport const VIEWPORT_RULER_PROVIDER = {\n // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.\n provide: ViewportRuler,\n deps: [[new Optional(), new SkipSelf(), ViewportRuler], Platform, NgZone],\n useFactory: VIEWPORT_RULER_PROVIDER_FACTORY\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, OnInit, OnDestroy, NgZone} from '@angular/core';\nimport {Observable} from 'rxjs/Observable';\nimport {Subject} from 'rxjs/Subject';\nimport {ScrollDispatcher} from './scroll-dispatcher';\n\n\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to in clude itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\n@Directive({\n selector: '[cdk-scrollable], [cdkScrollable]'\n})\nexport class CdkScrollable implements OnInit, OnDestroy {\n private _elementScrolled: Subject<Event> = new Subject();\n private _scrollListener = (event: Event) => this._elementScrolled.next(event);\n\n constructor(private _elementRef: ElementRef,\n private _scroll: ScrollDispatcher,\n private _ngZone: NgZone) {}\n\n ngOnInit() {\n this._ngZone.runOutsideAngular(() => {\n this.getElementRef().nativeElement.addEventListener('scroll', this._scrollListener);\n });\n\n this._scroll.register(this);\n }\n\n ngOnDestroy() {\n this._scroll.deregister(this);\n\n if (this._scrollListener) {\n this.getElementRef().nativeElement.removeEventListener('scroll', this._scrollListener);\n }\n }\n\n /**\n * Returns observable that emits when a scroll event i s fired on the host element.\n */\n elementScrolled(): Observable<any> {\n return this._elementScrolled.asObservable();\n }\n\n getElementRef(): ElementRef {\n return this._elementRef;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {SCROLL_DISPATCHER_PROVIDER} from './scroll-dispatcher';\nimport {CdkScrollable} from './scrollable';\nimport {PlatformModule} from '@angular/cdk/platform';\n\n@NgModule({\n imports: [PlatformModule],\n exports: [CdkScrollable],\n declarations: [CdkScrollable],\n providers: [SCROLL_DISPATCHER_PROVIDER],\n})\nexport class ScrollDispatchModule {}\n"],"names":["SCROLL_DISPATCHER_PROVIDER_FACTORY","parentDispatcher","ngZone","platform","ScrollDispatcher","VIEWPORT_RULER_PROVIDER_FACTORY","parentRuler","ViewportRuler","_ngZo ne","_platform","this","_scrolled","Subject","_globalSubscription","_scrolledCount","scrollContainers","Map","prototype","register","scrollable","_this","scrollSubscription","elementScrolled","subscribe","next","set","deregister","scrollableReference","get","unsubscribe","delete","scrolled","auditTimeInMs","isBrowser","Observable","create","observer","_addGlobalListener","subscription","pipe","auditTime","_removeGlobalListener","observableOf","ngOnDestroy","forEach","_","container","ancestorScrolled","elementRef","ancestors","getAncestorScrollContainers","filter","target","indexOf","scrollingContainers","_subscription","_scrollableContainsElement","push","element","nativeElement","scrollableElement","getElementRef","parentElement","runOutsideAngular","fromEvent","window","document","type","Injectable","NgZone","Platform","SCROLL_DISPATCHER_PROVIDER","provide","deps","Optional","SkipSelf","useFactory","CdkScrollable","_elementRef","_scroll","_elementScrolled","_scrollListener","event ","ngOnInit","addEventListener","removeEventListener","asObservable","Directive","args","selector","ElementRef","_change","merge","_invalidateCache","change","_updateViewportSize","getViewportSize","_viewportSize","width","height","getViewportRect","scrollPosition","getViewportScrollPosition","_a","top","left","bottom","right","documentRect","documentElement","getBoundingClientRect","body","scrollTop","scrollY","scrollLeft","scrollX","throttleTime","innerWidth","innerHeight","VIEWPORT_RULER_PROVIDER","ScrollDispatchModule","NgModule","imports","PlatformModule","exports","declarations","providers"],"mappings":"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"} \ No newline at end of file