You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by sc...@apache.org on 2018/04/30 19:31:44 UTC

[03/51] [partial] nifi-fds git commit: update gh-pages

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/scrolling.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/scrolling.es5.js b/node_modules/@angular/cdk/esm5/scrolling.es5.js
new file mode 100644
index 0000000..39a9cdf
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/scrolling.es5.js
@@ -0,0 +1,416 @@
+/**
+ * @license
+ * Copyright Google Inc. 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
+ */
+import { Directive, ElementRef, Injectable, NgModule, NgZone, Optional, Renderer2, SkipSelf } from '@angular/core';
+import { Platform, PlatformModule } from '@angular/cdk/platform';
+import { Subject } from 'rxjs/Subject';
+import { Subscription } from 'rxjs/Subscription';
+import { fromEvent } from 'rxjs/observable/fromEvent';
+import { auditTime } from 'rxjs/operator/auditTime';
+import { merge } from 'rxjs/observable/merge';
+import { of } from 'rxjs/observable/of';
+
+/**
+ * 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 = (function () {
+    /**
+     * @param {?} _ngZone
+     * @param {?} _platform
+     */
+    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 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.scrollableReferences = new Map();
+    }
+    /**
+     * Registers a Scrollable with the service and listens for its scrolled events. When the
+     * scrollable is scrolled, the service emits the event in its scrolled observable.
+     * @param {?} scrollable Scrollable instance to be registered.
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.register = function (scrollable) {
+        var _this = this;
+        var /** @type {?} */ scrollSubscription = scrollable.elementScrolled().subscribe(function () { return _this._notify(); });
+        this.scrollableReferences.set(scrollable, scrollSubscription);
+    };
+    /**
+     * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.
+     * @param {?} scrollable Scrollable instance to be deregistered.
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.deregister = function (scrollable) {
+        var /** @type {?} */ scrollableReference = this.scrollableReferences.get(scrollable);
+        if (scrollableReference) {
+            scrollableReference.unsubscribe();
+            this.scrollableReferences.delete(scrollable);
+        }
+    };
+    /**
+     * Subscribes to 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.
+     * @param {?=} auditTimeInMs
+     * @param {?=} callback
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.scrolled = function (auditTimeInMs, callback) {
+        var _this = this;
+        if (auditTimeInMs === void 0) { auditTimeInMs = DEFAULT_SCROLL_TIME; }
+        // Scroll events can only happen on the browser, so do nothing if we're not on the browser.
+        if (!this._platform.isBrowser) {
+            return Subscription.EMPTY;
+        }
+        // In the case of a 0ms delay, use an observable without auditTime
+        // since it does add a perceptible delay in processing overhead.
+        var /** @type {?} */ observable = auditTimeInMs > 0 ?
+            auditTime.call(this._scrolled.asObservable(), auditTimeInMs) :
+            this._scrolled.asObservable();
+        this._scrolledCount++;
+        if (!this._globalSubscription) {
+            this._globalSubscription = this._ngZone.runOutsideAngular(function () {
+                return fromEvent(window.document, 'scroll').subscribe(function () { return _this._notify(); });
+            });
+        }
+        // Note that we need to do the subscribing from here, in order to be able to remove
+        // the global event listeners once there are no more subscriptions.
+        var /** @type {?} */ subscription = observable.subscribe(callback);
+        subscription.add(function () {
+            _this._scrolledCount--;
+            if (_this._globalSubscription && !_this.scrollableReferences.size && !_this._scrolledCount) {
+                _this._globalSubscription.unsubscribe();
+                _this._globalSubscription = null;
+            }
+        });
+        return subscription;
+    };
+    /**
+     * Returns all registered Scrollables that contain the provided element.
+     * @param {?} elementRef
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.getScrollContainers = function (elementRef) {
+        var _this = this;
+        var /** @type {?} */ scrollingContainers = [];
+        this.scrollableReferences.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 = 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;
+    };
+    /**
+     * Sends a notification that a scroll event has been fired.
+     * @return {?}
+     */
+    ScrollDispatcher.prototype._notify = function () {
+        this._scrolled.next();
+    };
+    ScrollDispatcher.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    ScrollDispatcher.ctorParameters = function () { return [
+        { type: NgZone, },
+        { type: 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 Optional(), new SkipSelf(), ScrollDispatcher], NgZone, Platform],
+    useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY
+};
+
+/**
+ * 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 Scrollable = (function () {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _scroll
+     * @param {?} _ngZone
+     * @param {?} _renderer
+     */
+    function Scrollable(_elementRef, _scroll, _ngZone, _renderer) {
+        this._elementRef = _elementRef;
+        this._scroll = _scroll;
+        this._ngZone = _ngZone;
+        this._renderer = _renderer;
+        this._elementScrolled = new Subject();
+    }
+    /**
+     * @return {?}
+     */
+    Scrollable.prototype.ngOnInit = function () {
+        var _this = this;
+        this._scrollListener = this._ngZone.runOutsideAngular(function () {
+            return _this._renderer.listen(_this.getElementRef().nativeElement, 'scroll', function (event) {
+                _this._elementScrolled.next(event);
+            });
+        });
+        this._scroll.register(this);
+    };
+    /**
+     * @return {?}
+     */
+    Scrollable.prototype.ngOnDestroy = function () {
+        this._scroll.deregister(this);
+        if (this._scrollListener) {
+            this._scrollListener();
+            this._scrollListener = null;
+        }
+    };
+    /**
+     * Returns observable that emits when a scroll event is fired on the host element.
+     * @return {?}
+     */
+    Scrollable.prototype.elementScrolled = function () {
+        return this._elementScrolled.asObservable();
+    };
+    /**
+     * @return {?}
+     */
+    Scrollable.prototype.getElementRef = function () {
+        return this._elementRef;
+    };
+    Scrollable.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdk-scrollable], [cdkScrollable]'
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    Scrollable.ctorParameters = function () { return [
+        { type: ElementRef, },
+        { type: ScrollDispatcher, },
+        { type: NgZone, },
+        { type: Renderer2, },
+    ]; };
+    return Scrollable;
+}());
+
+/**
+ * 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 = (function () {
+    /**
+     * @param {?} platform
+     * @param {?} ngZone
+     * @param {?} scrollDispatcher
+     */
+    function ViewportRuler(platform, ngZone, scrollDispatcher) {
+        var _this = this;
+        this._change = platform.isBrowser ? ngZone.runOutsideAngular(function () {
+            return merge(fromEvent(window, 'resize'), fromEvent(window, 'orientationchange'));
+        }) : of();
+        // Subscribe to scroll and resize events and update the document rectangle on changes.
+        this._invalidateCacheSubscriptions = [
+            scrollDispatcher.scrolled(0, function () { return _this._cacheViewportGeometry(); }),
+            this.change().subscribe(function () { return _this._cacheViewportGeometry(); })
+        ];
+    }
+    /**
+     * @return {?}
+     */
+    ViewportRuler.prototype.ngOnDestroy = function () {
+        this._invalidateCacheSubscriptions.forEach(function (subscription) { return subscription.unsubscribe(); });
+    };
+    /**
+     * Gets a ClientRect for the viewport's bounds.
+     * @param {?=} documentRect
+     * @return {?}
+     */
+    ViewportRuler.prototype.getViewportRect = function (documentRect) {
+        if (documentRect === void 0) { documentRect = this._documentRect; }
+        // Cache the document bounding rect so that we don't recompute it for multiple calls.
+        if (!documentRect) {
+            this._cacheViewportGeometry();
+            documentRect = this._documentRect;
+        }
+        // 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(documentRect);
+        var /** @type {?} */ height = window.innerHeight;
+        var /** @type {?} */ width = window.innerWidth;
+        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.
+     * @param {?=} documentRect
+     * @return {?}
+     */
+    ViewportRuler.prototype.getViewportScrollPosition = function (documentRect) {
+        if (documentRect === void 0) { documentRect = this._documentRect; }
+        // Cache the document bounding rect so that we don't recompute it for multiple calls.
+        if (!documentRect) {
+            this._cacheViewportGeometry();
+            documentRect = this._documentRect;
+        }
+        // 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 {?} */ 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 {?=} throttleTime
+     * @return {?}
+     */
+    ViewportRuler.prototype.change = function (throttleTime) {
+        if (throttleTime === void 0) { throttleTime = DEFAULT_RESIZE_TIME; }
+        return throttleTime > 0 ? auditTime.call(this._change, throttleTime) : this._change;
+    };
+    /**
+     * Caches the latest client rectangle of the document element.
+     * @return {?}
+     */
+    ViewportRuler.prototype._cacheViewportGeometry = function () {
+        this._documentRect = document.documentElement.getBoundingClientRect();
+    };
+    ViewportRuler.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    ViewportRuler.ctorParameters = function () { return [
+        { type: Platform, },
+        { type: NgZone, },
+        { type: ScrollDispatcher, },
+    ]; };
+    return ViewportRuler;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentRuler
+ * @param {?} platform
+ * @param {?} ngZone
+ * @param {?} scrollDispatcher
+ * @return {?}
+ */
+function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, platform, ngZone, scrollDispatcher) {
+    return parentRuler || new ViewportRuler(platform, ngZone, scrollDispatcher);
+}
+/**
+ * \@docs-private
+ */
+var VIEWPORT_RULER_PROVIDER = {
+    // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.
+    provide: ViewportRuler,
+    deps: [[new Optional(), new SkipSelf(), ViewportRuler], Platform, NgZone, ScrollDispatcher],
+    useFactory: VIEWPORT_RULER_PROVIDER_FACTORY
+};
+
+var ScrollDispatchModule = (function () {
+    function ScrollDispatchModule() {
+    }
+    ScrollDispatchModule.decorators = [
+        { type: NgModule, args: [{
+                    imports: [PlatformModule],
+                    exports: [Scrollable],
+                    declarations: [Scrollable],
+                    providers: [SCROLL_DISPATCHER_PROVIDER],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    ScrollDispatchModule.ctorParameters = function () { return []; };
+    return ScrollDispatchModule;
+}());
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { DEFAULT_SCROLL_TIME, ScrollDispatcher, SCROLL_DISPATCHER_PROVIDER_FACTORY, SCROLL_DISPATCHER_PROVIDER, Scrollable, DEFAULT_RESIZE_TIME, ViewportRuler, VIEWPORT_RULER_PROVIDER_FACTORY, VIEWPORT_RULER_PROVIDER, ScrollDispatchModule };
+//# sourceMappingURL=scrolling.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/scrolling.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/scrolling.es5.js.map b/node_modules/@angular/cdk/esm5/scrolling.es5.js.map
new file mode 100644
index 0000000..6f7cf2b
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/scrolling.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"scrolling.es5.js","sources":["../../packages/cdk/esm5/scrolling/scroll-dispatcher.js","../../packages/cdk/esm5/scrolling/scrollable.js","../../packages/cdk/esm5/scrolling/viewport-ruler.js","../../packages/cdk/esm5/scrolling/scrolling-module.js","../../packages/cdk/esm5/scrolling/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. 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 */\nimport { Injectable, NgZone, Optional, SkipSelf } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { Subject } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { fromEvent } from 'rxjs/observable/fromEvent';\nimport { auditTime } from 'rxjs/operator/auditTime';\n/**\n * Time in ms to throttle the scrolling events by default.\n */\nexport var DEFAULT_SCROLL_TIME = 20;\n/**\n * Service conta
 ined all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nvar ScrollDispatcher = (function () {\n    /**\n     * @param {?} _ngZone\n     * @param {?} _platform\n     */\n    function ScrollDispatcher(_ngZone, _platform) {\n        this._ngZone = _ngZone;\n        this._platform = _platform;\n        /**\n         * Subject for notifying that a registered scrollable reference element has been scrolled.\n         */\n        this._scrolled = new Subject();\n        /**\n         * Keeps track of the global `scroll` and `resize` subscriptions.\n         */\n        this._globalSubscription = null;\n        /**\n         * Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards.\n         */\n        this._scrolledCount = 0;\n        /**\n         * Map of all the scrollable references that are registered with the service and their\n         * scroll event subscriptions.\n   
       */\n        this.scrollableReferences = new Map();\n    }\n    /**\n     * Registers a Scrollable with the service and listens for its scrolled events. When the\n     * scrollable is scrolled, the service emits the event in its scrolled observable.\n     * @param {?} scrollable Scrollable instance to be registered.\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.register = function (scrollable) {\n        var _this = this;\n        var /** @type {?} */ scrollSubscription = scrollable.elementScrolled().subscribe(function () { return _this._notify(); });\n        this.scrollableReferences.set(scrollable, scrollSubscription);\n    };\n    /**\n     * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\n     * @param {?} scrollable Scrollable instance to be deregistered.\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.deregister = function (scrollable) {\n        var /** @type {?} */ scrollableReference = this.scrollableR
 eferences.get(scrollable);\n        if (scrollableReference) {\n            scrollableReference.unsubscribe();\n            this.scrollableReferences.delete(scrollable);\n        }\n    };\n    /**\n     * Subscribes to 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     * @param {?=} auditTimeInMs\n     * @param {?=} callback\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.scrolled = function (auditTimeInMs, callback) {\n        var _this = this;\n        if (auditTimeInMs === void 0) { auditTimeInMs = DEFAULT_SCROLL_TIME; }\n        // Scroll events can only happen on the browser, so do nothing if we're not on the browser.\n        if (!this._platform.isBrowser) {\n            return Subscription.EMPTY;\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        var /** @type {?} */ observable = auditTimeInMs > 0 ?\n            auditTime.call(this._scrolled.asObservable(), auditTimeInMs) :\n            this._scrolled.asObservable();\n        this._scrolledCount++;\n        if (!this._globalSubscription) {\n            this._globalSubscription = this._ngZone.runOutsideAngular(function () {\n                return fromEvent(window.document, 'scroll').subscribe(function () { return _this._notify(); });\n            });\n        }\n        // Note that we need to do the subscribing from here, in order to be able to remove\n        // the global event listeners once there are no more subscriptions.\n        var /** @type {?} */ subscription = observable.subscribe(callback);\n        subscription.add(function () {\n            _this._scrolledCount--;\n            if (_this._globalSubscription && !_this.scrollableReferences.size && !_this._scrolledCount) {\n           
      _this._globalSubscription.unsubscribe();\n                _this._globalSubscription = null;\n            }\n        });\n        return subscription;\n    };\n    /**\n     * Returns all registered Scrollables that contain the provided element.\n     * @param {?} elementRef\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.getScrollContainers = function (elementRef) {\n        var _this = this;\n        var /** @type {?} */ scrollingContainers = [];\n        this.scrollableReferences.forEach(function (_subscription, scrollable) {\n            if (_this.scrollableContainsElement(scrollable, elementRef)) {\n                scrollingContainers.push(scrollable);\n            }\n        });\n        return scrollingContainers;\n    };\n    /**\n     * Returns true if the element is contained within the provided Scrollable.\n     * @param {?} scrollable\n     * @param {?} elementRef\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.scrollableContainsElement = fu
 nction (scrollable, elementRef) {\n        var /** @type {?} */ element = elementRef.nativeElement;\n        var /** @type {?} */ scrollableElement = scrollable.getElementRef().nativeElement;\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) {\n                return true;\n            }\n        } while (element = element.parentElement);\n        return false;\n    };\n    /**\n     * Sends a notification that a scroll event has been fired.\n     * @return {?}\n     */\n    ScrollDispatcher.prototype._notify = function () {\n        this._scrolled.next();\n    };\n    ScrollDispatcher.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    ScrollDispatcher.ctorParameters = function () { return [\n        { type: NgZone, },\n        { type: Platform, },\n    ]; };\n    return ScrollDispatch
 er;\n}());\nexport { ScrollDispatcher };\nfunction ScrollDispatcher_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ScrollDispatcher.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ScrollDispatcher.ctorParameters;\n    /**\n     * Subject for notifying that a registered scrollable reference element has been scrolled.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype._scrolled;\n    /**\n     * Keeps track of the global `scroll` and `resize` subscriptions.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype._globalSubscription;\n    /**\n     * Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype._scrolledCount;\n    /**\n     * Map of all the scrollable references that are registered with the service and their\n     * scroll event subscriptions.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype.scrollableReferences;\n    /** @
 type {?} */\n    ScrollDispatcher.prototype._ngZone;\n    /** @type {?} */\n    ScrollDispatcher.prototype._platform;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} ngZone\n * @param {?} platform\n * @return {?}\n */\nexport function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {\n    return parentDispatcher || new ScrollDispatcher(ngZone, platform);\n}\n/**\n * \\@docs-private\n */\nexport var 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//# sourceMappingURL=scroll-dispatcher.js.map","/**\n * @license\n * Copyright Google Inc. 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 */\nimport { Directive, ElementRef, NgZone, Renderer2 } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { ScrollDispatcher } from './scroll-dispatcher';\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 */\nvar Scrollable = (function () {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _scroll\n     * @param {?} _ngZone\n     * @param {?} _renderer\n     */\n    function Scrollable(_elementRef, _scroll, _ngZone, _renderer) {\n        this._elementRef = _elementRef;\n        this._scroll = _scroll;\n        this._ngZone = _ngZone;\n        this._renderer = _renderer;\n        this._elementScrolled = new Subject();\n    }\n    /**\n     * @return {?}\n     */\n    Scrollable.prototype.ngOnInit = function () {\n        var _this = this;\n        this._scrol
 lListener = this._ngZone.runOutsideAngular(function () {\n            return _this._renderer.listen(_this.getElementRef().nativeElement, 'scroll', function (event) {\n                _this._elementScrolled.next(event);\n            });\n        });\n        this._scroll.register(this);\n    };\n    /**\n     * @return {?}\n     */\n    Scrollable.prototype.ngOnDestroy = function () {\n        this._scroll.deregister(this);\n        if (this._scrollListener) {\n            this._scrollListener();\n            this._scrollListener = null;\n        }\n    };\n    /**\n     * Returns observable that emits when a scroll event is fired on the host element.\n     * @return {?}\n     */\n    Scrollable.prototype.elementScrolled = function () {\n        return this._elementScrolled.asObservable();\n    };\n    /**\n     * @return {?}\n     */\n    Scrollable.prototype.getElementRef = function () {\n        return this._elementRef;\n    };\n    Scrollable.decorators = [\n        { type: Direc
 tive, args: [{\n                    selector: '[cdk-scrollable], [cdkScrollable]'\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    Scrollable.ctorParameters = function () { return [\n        { type: ElementRef, },\n        { type: ScrollDispatcher, },\n        { type: NgZone, },\n        { type: Renderer2, },\n    ]; };\n    return Scrollable;\n}());\nexport { Scrollable };\nfunction Scrollable_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Scrollable.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    Scrollable.ctorParameters;\n    /** @type {?} */\n    Scrollable.prototype._elementScrolled;\n    /** @type {?} */\n    Scrollable.prototype._scrollListener;\n    /** @type {?} */\n    Scrollable.prototype._elementRef;\n    /** @type {?} */\n    Scrollable.prototype._scroll;\n    /** @type {?} */\n    Scrollable.prototype._ngZone;\n    /** @type {?} */\n    Scrollable.prototype._renderer;\n}\n//# sourceMappingURL=scrollable.j
 s.map","/**\n * @license\n * Copyright Google Inc. 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 */\nimport { Injectable, Optional, SkipSelf, NgZone } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { ScrollDispatcher } from './scroll-dispatcher';\nimport { fromEvent } from 'rxjs/observable/fromEvent';\nimport { merge } from 'rxjs/observable/merge';\nimport { auditTime } from 'rxjs/operator/auditTime';\nimport { of as observableOf } from 'rxjs/observable/of';\n/**\n * Time in ms to throttle the resize events by default.\n */\nexport var DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * \\@docs-private\n */\nvar ViewportRuler = (function () {\n    /**\n     * @param {?} platform\n     * @param {?} ngZone\n     * @param {?} scrollDispatcher\n     */\n    function ViewportRuler(platform,
  ngZone, scrollDispatcher) {\n        var _this = this;\n        this._change = platform.isBrowser ? ngZone.runOutsideAngular(function () {\n            return merge(fromEvent(window, 'resize'), fromEvent(window, 'orientationchange'));\n        }) : observableOf();\n        // Subscribe to scroll and resize events and update the document rectangle on changes.\n        this._invalidateCacheSubscriptions = [\n            scrollDispatcher.scrolled(0, function () { return _this._cacheViewportGeometry(); }),\n            this.change().subscribe(function () { return _this._cacheViewportGeometry(); })\n        ];\n    }\n    /**\n     * @return {?}\n     */\n    ViewportRuler.prototype.ngOnDestroy = function () {\n        this._invalidateCacheSubscriptions.forEach(function (subscription) { return subscription.unsubscribe(); });\n    };\n    /**\n     * Gets a ClientRect for the viewport's bounds.\n     * @param {?=} documentRect\n     * @return {?}\n     */\n    ViewportRuler.prototype.get
 ViewportRect = function (documentRect) {\n        if (documentRect === void 0) { documentRect = this._documentRect; }\n        // Cache the document bounding rect so that we don't recompute it for multiple calls.\n        if (!documentRect) {\n            this._cacheViewportGeometry();\n            documentRect = this._documentRect;\n        }\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 r
 eset)\n        // browsers typically give the document body an 8px margin, which is not included in\n        // getBoundingClientRect().\n        var /** @type {?} */ scrollPosition = this.getViewportScrollPosition(documentRect);\n        var /** @type {?} */ height = window.innerHeight;\n        var /** @type {?} */ width = window.innerWidth;\n        return {\n            top: scrollPosition.top,\n            left: scrollPosition.left,\n            bottom: scrollPosition.top + height,\n            right: scrollPosition.left + width,\n            height: height,\n            width: width,\n        };\n    };\n    /**\n     * Gets the (top, left) scroll position of the viewport.\n     * @param {?=} documentRect\n     * @return {?}\n     */\n    ViewportRuler.prototype.getViewportScrollPosition = function (documentRect) {\n        if (documentRect === void 0) { documentRect = this._documentRect; }\n        // Cache the document bounding rect so that we don't recompute it for multiple
  calls.\n        if (!documentRect) {\n            this._cacheViewportGeometry();\n            documentRect = this._documentRect;\n        }\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        var /** @type {?} */ top = -((documentRect)).top || document.body.scrollTop || window.scrollY ||\n            document.documentElement.scrollTop || 0;\n        var /** @type {?} */ left = -((documentRect)).left || document.body.scrollLeft || window.scrollX ||\n            document.documentElement.scroll
 Left || 0;\n        return { top: top, left: left };\n    };\n    /**\n     * Returns a stream that emits whenever the size of the viewport changes.\n     * @param {?=} throttleTime\n     * @return {?}\n     */\n    ViewportRuler.prototype.change = function (throttleTime) {\n        if (throttleTime === void 0) { throttleTime = DEFAULT_RESIZE_TIME; }\n        return throttleTime > 0 ? auditTime.call(this._change, throttleTime) : this._change;\n    };\n    /**\n     * Caches the latest client rectangle of the document element.\n     * @return {?}\n     */\n    ViewportRuler.prototype._cacheViewportGeometry = function () {\n        this._documentRect = document.documentElement.getBoundingClientRect();\n    };\n    ViewportRuler.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    ViewportRuler.ctorParameters = function () { return [\n        { type: Platform, },\n        { type: NgZone, },\n        { type: ScrollDispatcher, },\n    ]; };\n  
   return ViewportRuler;\n}());\nexport { ViewportRuler };\nfunction ViewportRuler_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ViewportRuler.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ViewportRuler.ctorParameters;\n    /**\n     * Cached document client rectangle.\n     * @type {?}\n     */\n    ViewportRuler.prototype._documentRect;\n    /**\n     * Stream of viewport change events.\n     * @type {?}\n     */\n    ViewportRuler.prototype._change;\n    /**\n     * Subscriptions to streams that invalidate the cached viewport dimensions.\n     * @type {?}\n     */\n    ViewportRuler.prototype._invalidateCacheSubscriptions;\n}\n/**\n * \\@docs-private\n * @param {?} parentRuler\n * @param {?} platform\n * @param {?} ngZone\n * @param {?} scrollDispatcher\n * @return {?}\n */\nexport function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, platform, ngZone, scrollDispatcher) {\n    return parentRuler || new ViewportRuler(platform, ngZone, scroll
 Dispatcher);\n}\n/**\n * \\@docs-private\n */\nexport var 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, ScrollDispatcher],\n    useFactory: VIEWPORT_RULER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=viewport-ruler.js.map","/**\n * @license\n * Copyright Google Inc. 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 */\nimport { NgModule } from '@angular/core';\nimport { SCROLL_DISPATCHER_PROVIDER } from './scroll-dispatcher';\nimport { Scrollable } from './scrollable';\nimport { PlatformModule } from '@angular/cdk/platform';\nvar ScrollDispatchModule = (function () {\n    function ScrollDispatchModule() {\n    }\n    ScrollDispatchModule.decorators = [\n        { type: NgModule, args: [{\n   
                  imports: [PlatformModule],\n                    exports: [Scrollable],\n                    declarations: [Scrollable],\n                    providers: [SCROLL_DISPATCHER_PROVIDER],\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    ScrollDispatchModule.ctorParameters = function () { return []; };\n    return ScrollDispatchModule;\n}());\nexport { ScrollDispatchModule };\nfunction ScrollDispatchModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ScrollDispatchModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ScrollDispatchModule.ctorParameters;\n}\n//# sourceMappingURL=scrolling-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { DEFAULT_SCROLL_TIME, ScrollDispatcher, SCROLL_DISPATCHER_PROVIDER_FACTORY, SCROLL_DISPATCHER_PROVIDER, Scrollable, DEFAULT_RESIZE_TIME, ViewportRuler, VIEWPORT_RULER_PROVIDER_FACTORY, VIEWPORT_RULER_PROVIDER, ScrollDispatchModule } from './public-ap
 i';\n//# sourceMappingURL=index.js.map"],"names":["observableOf"],"mappings":"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"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/stepper.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/stepper.es5.js b/node_modules/@angular/cdk/esm5/stepper.es5.js
new file mode 100644
index 0000000..60aa5f7
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/stepper.es5.js
@@ -0,0 +1,479 @@
+/**
+ * @license
+ * Copyright Google Inc. 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
+ */
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, EventEmitter, Inject, Input, NgModule, Optional, Output, TemplateRef, ViewChild, ViewEncapsulation, forwardRef } from '@angular/core';
+import { ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE } from '@angular/cdk/keycodes';
+import { coerceBooleanProperty } from '@angular/cdk/coercion';
+import { BidiModule, Directionality } from '@angular/cdk/bidi';
+import { CommonModule } from '@angular/common';
+
+var CdkStepLabel = (function () {
+    /**
+     * @param {?} template
+     */
+    function CdkStepLabel(template) {
+        this.template = template;
+    }
+    CdkStepLabel.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdkStepLabel]',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkStepLabel.ctorParameters = function () { return [
+        { type: TemplateRef, },
+    ]; };
+    return CdkStepLabel;
+}());
+
+/**
+ * Used to generate unique ID for each stepper component.
+ */
+var nextId = 0;
+/**
+ * Change event emitted on selection changes.
+ */
+var StepperSelectionEvent = (function () {
+    function StepperSelectionEvent() {
+    }
+    return StepperSelectionEvent;
+}());
+var CdkStep = (function () {
+    /**
+     * @param {?} _stepper
+     */
+    function CdkStep(_stepper) {
+        this._stepper = _stepper;
+        /**
+         * Whether user has seen the expanded step content or not.
+         */
+        this.interacted = false;
+        this._editable = true;
+        this._optional = false;
+        this._customCompleted = null;
+    }
+    Object.defineProperty(CdkStep.prototype, "editable", {
+        /**
+         * @return {?}
+         */
+        get: function () { return this._editable; },
+        /**
+         * @param {?} value
+         * @return {?}
+         */
+        set: function (value) {
+            this._editable = coerceBooleanProperty(value);
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(CdkStep.prototype, "optional", {
+        /**
+         * Whether the completion of step is optional or not.
+         * @return {?}
+         */
+        get: function () { return this._optional; },
+        /**
+         * @param {?} value
+         * @return {?}
+         */
+        set: function (value) {
+            this._optional = coerceBooleanProperty(value);
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(CdkStep.prototype, "completed", {
+        /**
+         * Return whether step is completed or not.
+         * @return {?}
+         */
+        get: function () {
+            return this._customCompleted == null ? this._defaultCompleted : this._customCompleted;
+        },
+        /**
+         * @param {?} value
+         * @return {?}
+         */
+        set: function (value) {
+            this._customCompleted = coerceBooleanProperty(value);
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(CdkStep.prototype, "_defaultCompleted", {
+        /**
+         * @return {?}
+         */
+        get: function () {
+            return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Selects this step component.
+     * @return {?}
+     */
+    CdkStep.prototype.select = function () {
+        this._stepper.selected = this;
+    };
+    /**
+     * @return {?}
+     */
+    CdkStep.prototype.ngOnChanges = function () {
+        // Since basically all inputs of the MdStep get proxied through the view down to the
+        // underlying MdStepHeader, we have to make sure that change detection runs correctly.
+        this._stepper._stateChanged();
+    };
+    CdkStep.decorators = [
+        { type: Component, args: [{selector: 'cdk-step',
+                    exportAs: 'cdkStep',
+                    template: "<ng-template><ng-content></ng-content></ng-template>",
+                    encapsulation: ViewEncapsulation.None,
+                    preserveWhitespaces: false,
+                    changeDetection: ChangeDetectionStrategy.OnPush,
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkStep.ctorParameters = function () { return [
+        { type: CdkStepper, decorators: [{ type: Inject, args: [forwardRef(function () { return CdkStepper; }),] },] },
+    ]; };
+    CdkStep.propDecorators = {
+        'stepLabel': [{ type: ContentChild, args: [CdkStepLabel,] },],
+        'content': [{ type: ViewChild, args: [TemplateRef,] },],
+        'stepControl': [{ type: Input },],
+        'label': [{ type: Input },],
+        'editable': [{ type: Input },],
+        'optional': [{ type: Input },],
+        'completed': [{ type: Input },],
+    };
+    return CdkStep;
+}());
+var CdkStepper = (function () {
+    /**
+     * @param {?} _dir
+     * @param {?} _changeDetectorRef
+     */
+    function CdkStepper(_dir, _changeDetectorRef) {
+        this._dir = _dir;
+        this._changeDetectorRef = _changeDetectorRef;
+        this._linear = false;
+        this._selectedIndex = 0;
+        /**
+         * Event emitted when the selected step has changed.
+         */
+        this.selectionChange = new EventEmitter();
+        /**
+         * The index of the step that the focus can be set.
+         */
+        this._focusIndex = 0;
+        this._groupId = nextId++;
+    }
+    Object.defineProperty(CdkStepper.prototype, "linear", {
+        /**
+         * Whether the validity of previous steps should be checked or not.
+         * @return {?}
+         */
+        get: function () { return this._linear; },
+        /**
+         * @param {?} value
+         * @return {?}
+         */
+        set: function (value) { this._linear = coerceBooleanProperty(value); },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(CdkStepper.prototype, "selectedIndex", {
+        /**
+         * The index of the selected step.
+         * @return {?}
+         */
+        get: function () { return this._selectedIndex; },
+        /**
+         * @param {?} index
+         * @return {?}
+         */
+        set: function (index) {
+            if (this._anyControlsInvalid(index)
+                || index < this._selectedIndex && !this._steps.toArray()[index].editable) {
+                // remove focus from clicked step header if the step is not able to be selected
+                this._stepHeader.toArray()[index].nativeElement.blur();
+            }
+            else if (this._selectedIndex != index) {
+                this._emitStepperSelectionEvent(index);
+                this._focusIndex = this._selectedIndex;
+            }
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(CdkStepper.prototype, "selected", {
+        /**
+         * The step that is selected.
+         * @return {?}
+         */
+        get: function () { return this._steps.toArray()[this.selectedIndex]; },
+        /**
+         * @param {?} step
+         * @return {?}
+         */
+        set: function (step) {
+            this.selectedIndex = this._steps.toArray().indexOf(step);
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Selects and focuses the next step in list.
+     * @return {?}
+     */
+    CdkStepper.prototype.next = function () {
+        this.selectedIndex = Math.min(this._selectedIndex + 1, this._steps.length - 1);
+    };
+    /**
+     * Selects and focuses the previous step in list.
+     * @return {?}
+     */
+    CdkStepper.prototype.previous = function () {
+        this.selectedIndex = Math.max(this._selectedIndex - 1, 0);
+    };
+    /**
+     * Returns a unique id for each step label element.
+     * @param {?} i
+     * @return {?}
+     */
+    CdkStepper.prototype._getStepLabelId = function (i) {
+        return "mat-step-label-" + this._groupId + "-" + i;
+    };
+    /**
+     * Returns unique id for each step content element.
+     * @param {?} i
+     * @return {?}
+     */
+    CdkStepper.prototype._getStepContentId = function (i) {
+        return "mat-step-content-" + this._groupId + "-" + i;
+    };
+    /**
+     * Marks the component to be change detected.
+     * @return {?}
+     */
+    CdkStepper.prototype._stateChanged = function () {
+        this._changeDetectorRef.markForCheck();
+    };
+    /**
+     * Returns position state of the step with the given index.
+     * @param {?} index
+     * @return {?}
+     */
+    CdkStepper.prototype._getAnimationDirection = function (index) {
+        var /** @type {?} */ position = index - this._selectedIndex;
+        if (position < 0) {
+            return this._layoutDirection() === 'rtl' ? 'next' : 'previous';
+        }
+        else if (position > 0) {
+            return this._layoutDirection() === 'rtl' ? 'previous' : 'next';
+        }
+        return 'current';
+    };
+    /**
+     * Returns the type of icon to be displayed.
+     * @param {?} index
+     * @return {?}
+     */
+    CdkStepper.prototype._getIndicatorType = function (index) {
+        var /** @type {?} */ step = this._steps.toArray()[index];
+        if (!step.completed || this._selectedIndex == index) {
+            return 'number';
+        }
+        else {
+            return step.editable ? 'edit' : 'done';
+        }
+    };
+    /**
+     * @param {?} newIndex
+     * @return {?}
+     */
+    CdkStepper.prototype._emitStepperSelectionEvent = function (newIndex) {
+        var /** @type {?} */ stepsArray = this._steps.toArray();
+        this.selectionChange.emit({
+            selectedIndex: newIndex,
+            previouslySelectedIndex: this._selectedIndex,
+            selectedStep: stepsArray[newIndex],
+            previouslySelectedStep: stepsArray[this._selectedIndex],
+        });
+        this._selectedIndex = newIndex;
+        this._stateChanged();
+    };
+    /**
+     * @param {?} event
+     * @return {?}
+     */
+    CdkStepper.prototype._onKeydown = function (event) {
+        switch (event.keyCode) {
+            case RIGHT_ARROW:
+                if (this._layoutDirection() === 'rtl') {
+                    this._focusPreviousStep();
+                }
+                else {
+                    this._focusNextStep();
+                }
+                break;
+            case LEFT_ARROW:
+                if (this._layoutDirection() === 'rtl') {
+                    this._focusNextStep();
+                }
+                else {
+                    this._focusPreviousStep();
+                }
+                break;
+            case SPACE:
+            case ENTER:
+                this.selectedIndex = this._focusIndex;
+                break;
+            default:
+                // Return to avoid calling preventDefault on keys that are not explicitly handled.
+                return;
+        }
+        event.preventDefault();
+    };
+    /**
+     * @return {?}
+     */
+    CdkStepper.prototype._focusNextStep = function () {
+        this._focusStep((this._focusIndex + 1) % this._steps.length);
+    };
+    /**
+     * @return {?}
+     */
+    CdkStepper.prototype._focusPreviousStep = function () {
+        this._focusStep((this._focusIndex + this._steps.length - 1) % this._steps.length);
+    };
+    /**
+     * @param {?} index
+     * @return {?}
+     */
+    CdkStepper.prototype._focusStep = function (index) {
+        this._focusIndex = index;
+        this._stepHeader.toArray()[this._focusIndex].nativeElement.focus();
+    };
+    /**
+     * @param {?} index
+     * @return {?}
+     */
+    CdkStepper.prototype._anyControlsInvalid = function (index) {
+        this._steps.toArray()[this._selectedIndex].interacted = true;
+        if (this._linear && index >= 0) {
+            return this._steps.toArray().slice(0, index).some(function (step) { return step.stepControl.invalid; });
+        }
+        return false;
+    };
+    /**
+     * @return {?}
+     */
+    CdkStepper.prototype._layoutDirection = function () {
+        return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';
+    };
+    CdkStepper.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdkStepper]',
+                    exportAs: 'cdkStepper',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkStepper.ctorParameters = function () { return [
+        { type: Directionality, decorators: [{ type: Optional },] },
+        { type: ChangeDetectorRef, },
+    ]; };
+    CdkStepper.propDecorators = {
+        '_steps': [{ type: ContentChildren, args: [CdkStep,] },],
+        'linear': [{ type: Input },],
+        'selectedIndex': [{ type: Input },],
+        'selected': [{ type: Input },],
+        'selectionChange': [{ type: Output },],
+    };
+    return CdkStepper;
+}());
+
+/**
+ * Button that moves to the next step in a stepper workflow.
+ */
+var CdkStepperNext = (function () {
+    /**
+     * @param {?} _stepper
+     */
+    function CdkStepperNext(_stepper) {
+        this._stepper = _stepper;
+    }
+    CdkStepperNext.decorators = [
+        { type: Directive, args: [{
+                    selector: 'button[cdkStepperNext]',
+                    host: { '(click)': '_stepper.next()' }
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkStepperNext.ctorParameters = function () { return [
+        { type: CdkStepper, },
+    ]; };
+    return CdkStepperNext;
+}());
+/**
+ * Button that moves to the previous step in a stepper workflow.
+ */
+var CdkStepperPrevious = (function () {
+    /**
+     * @param {?} _stepper
+     */
+    function CdkStepperPrevious(_stepper) {
+        this._stepper = _stepper;
+    }
+    CdkStepperPrevious.decorators = [
+        { type: Directive, args: [{
+                    selector: 'button[cdkStepperPrevious]',
+                    host: { '(click)': '_stepper.previous()' }
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkStepperPrevious.ctorParameters = function () { return [
+        { type: CdkStepper, },
+    ]; };
+    return CdkStepperPrevious;
+}());
+
+var CdkStepperModule = (function () {
+    function CdkStepperModule() {
+    }
+    CdkStepperModule.decorators = [
+        { type: NgModule, args: [{
+                    imports: [BidiModule, CommonModule],
+                    exports: [CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious],
+                    declarations: [CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious]
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkStepperModule.ctorParameters = function () { return []; };
+    return CdkStepperModule;
+}());
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { StepperSelectionEvent, CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious, CdkStepperModule };
+//# sourceMappingURL=stepper.es5.js.map