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/23 20:03:12 UTC

[02/51] [partial] nifi-fds git commit: [NIFIREG-168] upgrade to angular v5.2.0, angular-material v5.2.0, covalent v1.0.1

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/f85188ec/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
index d6b307e..3f00a08 100644
--- a/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js
+++ b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js
@@ -1,9 +1,9 @@
 /**
  * @license
- * Copyright Google Inc. All Rights Reserved.
+ * 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/Subscription"),require("rxjs/observable/fromEvent"),require("rxjs/operator/auditTime"),require("rxjs/observable/merge"),require("rxjs/observable/of")):"function"==typeof define&&define.amd?define(["exports","@angular/core","@angular/cdk/platform","rxjs/Subject","rxjs/Subscription","rxjs/observable/fromEvent","rxjs/operator/auditTime","rxjs/observable/merge","rxjs/observable/of"],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.prototype,e.Rx.Observable,e.Rx.Observable)}(this,function(e,t,r,o,n,i,l,s,c){"use strict";function u(e,t,r){return e||new p(t,r)}function a(e,t,r,o){return e||new b(t,r,o)}var p=function(){function e(e,t){this._ngZone=e,this._platform=t,this._scrolled=new o.Subject,this._globalSubscrip
 tion=null,this._scrolledCount=0,this.scrollableReferences=new Map}return e.prototype.register=function(e){var t=this,r=e.elementScrolled().subscribe(function(){return t._notify()});this.scrollableReferences.set(e,r)},e.prototype.deregister=function(e){var t=this.scrollableReferences.get(e);t&&(t.unsubscribe(),this.scrollableReferences.delete(e))},e.prototype.scrolled=function(e,t){var r=this;if(void 0===e&&(e=20),!this._platform.isBrowser)return n.Subscription.EMPTY;var o=e>0?l.auditTime.call(this._scrolled.asObservable(),e):this._scrolled.asObservable();this._scrolledCount++,this._globalSubscription||(this._globalSubscription=this._ngZone.runOutsideAngular(function(){return i.fromEvent(window.document,"scroll").subscribe(function(){return r._notify()})}));var s=o.subscribe(t);return s.add(function(){r._scrolledCount--,!r._globalSubscription||r.scrollableReferences.size||r._scrolledCount||(r._globalSubscription.unsubscribe(),r._globalSubscription=null)}),s},e.prototype.getScrollCont
 ainers=function(e){var t=this,r=[];return this.scrollableReferences.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._notify=function(){this._scrolled.next()},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:t.NgZone},{type:r.Platform}]},e}(),f={provide:p,deps:[[new t.Optional,new t.SkipSelf,p],t.NgZone,r.Platform],useFactory:u},d=function(){function e(e,t,r,n){this._elementRef=e,this._scroll=t,this._ngZone=r,this._renderer=n,this._elementScrolled=new o.Subject}return e.prototype.ngOnInit=function(){var e=this;this._scrollListener=this._ngZone.runOutsideAngular(function(){return e._renderer.listen(e.getElementRef().nativeElement,"scroll",function(t){e._elementScrolled.next(t)})}),this._scroll.register(this)},e.prototype.ngOnDestroy=function(){this._scroll.deregis
 ter(this),this._scrollListener&&(this._scrollListener(),this._scrollListener=null)},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:p},{type:t.NgZone},{type:t.Renderer2}]},e}(),b=function(){function e(e,t,r){var o=this;this._change=e.isBrowser?t.runOutsideAngular(function(){return s.merge(i.fromEvent(window,"resize"),i.fromEvent(window,"orientationchange"))}):c.of(),this._invalidateCacheSubscriptions=[r.scrolled(0,function(){return o._cacheViewportGeometry()}),this.change().subscribe(function(){return o._cacheViewportGeometry()})]}return e.prototype.ngOnDestroy=function(){this._invalidateCacheSubscriptions.forEach(function(e){return e.unsubscribe()})},e.prototype.getViewportRect=function(e){void 0===e&&(e=this._documentRect),e||(this._cache
 ViewportGeometry(),e=this._documentRect);var t=this.getViewportScrollPosition(e),r=window.innerHeight,o=window.innerWidth;return{top:t.top,left:t.left,bottom:t.top+r,right:t.left+o,height:r,width:o}},e.prototype.getViewportScrollPosition=function(e){return void 0===e&&(e=this._documentRect),e||(this._cacheViewportGeometry(),e=this._documentRect),{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?l.auditTime.call(this._change,e):this._change},e.prototype._cacheViewportGeometry=function(){this._documentRect=document.documentElement.getBoundingClientRect()},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:r.Platform},{type:t.NgZone},{type:p}]},e}(),h={provide:b,deps:[[new t.Optional,new t.SkipSelf,b],r.Platform,t.NgZone,p],useFactory:a},m=function(){function e(){}
 return e.decorators=[{type:t.NgModule,args:[{imports:[r.PlatformModule],exports:[d],declarations:[d],providers:[f]}]}],e.ctorParameters=function(){return[]},e}();e.DEFAULT_SCROLL_TIME=20,e.ScrollDispatcher=p,e.SCROLL_DISPATCHER_PROVIDER_FACTORY=u,e.SCROLL_DISPATCHER_PROVIDER=f,e.Scrollable=d,e.DEFAULT_RESIZE_TIME=20,e.ViewportRuler=b,e.VIEWPORT_RULER_PROVIDER_FACTORY=a,e.VIEWPORT_RULER_PROVIDER=h,e.ScrollDispatchModule=m,Object.defineProperty(e,"__esModule",{value:!0})});
-//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-scrolling.umd.min.js.map
\ No newline at end of file
+!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 f(t,r)}function p(e,t,r){return e||new b(t,r)}var f=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}(),d={provide:f,deps:[[new t.Optional,new t.SkipSelf,f],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:f},{type:t.NgZone}]},e}(),b=function(){function e(e,t){var r=this;this._platform=e,this._change=e.isBrowser?t.runOutsideAngular(function(){return u.merge(s.fromEve
 nt(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(){this._viewportSize||this._updateViewportSize();var e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e},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(){if(!this._platform.isBrowser)return{top:0,left:0};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.scr
 ollLeft||0}},e.prototype.change=function(e){return void 0===e&&(e=20),e>0?this._change.pipe(l.auditTime(e)):this._change},e.prototype._updateViewportSize=function(){this._viewportSize=this._platform.isBrowser?{width:window.innerWidth,height:window.innerHeight}:{width:0,height:0}},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:[d]}]}],e.ctorParameters=function(){return[]},e}();e.DEFAULT_SCROLL_TIME=20,e.ScrollDispatcher=f,e.SCROLL_DISPATCHER_PROVIDER_FACTORY=a,e.SCROLL_DISPATCHER_PROVIDER=d,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/f85188ec/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
index 1b2f811..a419c49 100644
--- a/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js.map
+++ b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-scrolling.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","scrolling","core","platform","Rx","Observable","prototype","this","_angular_core","_angular_cdk_platform","rxjs_Subject","rxjs_Subscription","rxjs_observable_fromEvent","rxjs_operator_auditTime","rxjs_observable_merge","rxjs_observable_of","SCROLL_DISPATCHER_PROVIDER_FACTORY","parentDispatcher","ngZone","ScrollDispatcher","VIEWPORT_RULER_PROVIDER_FACTORY","parentRuler","scrollDispatcher","ViewportRuler","_ngZone","_platform","_scrolled","Subject","_globalSubscription","_scrolledCount","scrollableReferences","Map","register","scrollable","_this","scrollSubscription","elementScrolled","subscribe","_notify","set","deregister","scrollableReference","get","unsubscribe","delete","scrolled","auditTimeInMs","callback","isBrowser","Subscription","EMPTY","observable","auditTime","call","asObservable","runOutsideAngular
 ","fromEvent","window","document","subscription","add","size","getScrollContainers","elementRef","scrollingContainers","forEach","_subscription","scrollableContainsElement","push","element","nativeElement","scrollableElement","getElementRef","parentElement","next","decorators","type","Injectable","ctorParameters","NgZone","Platform","SCROLL_DISPATCHER_PROVIDER","provide","deps","Optional","SkipSelf","useFactory","Scrollable","_elementRef","_scroll","_renderer","_elementScrolled","ngOnInit","_scrollListener","listen","event","ngOnDestroy","Directive","args","selector","ElementRef","Renderer2","_change","merge","of","_invalidateCacheSubscriptions","_cacheViewportGeometry","change","getViewportRect","documentRect","_documentRect","scrollPosition","getViewportScrollPosition","height","innerHeight","width","innerWidth","top","left","bottom","right","body","scrollTop","scrollY","documentElement","scrollLeft","scrollX","throttleTime","getBoundingClientRect","VIEWPORT_RULER_PROVIDER","Scrol
 lDispatchModule","NgModule","imports","PlatformModule","declarations","providers","DEFAULT_SCROLL_TIME","DEFAULT_RESIZE_TIME","Object","defineProperty","value"],"mappings":"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","file":"/Users/karakara/repos/material2/dist/bundles/cdk-scrolling.umd.min.js"}
\ No newline at end of file
+{"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(private _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    const output = {width: this._viewportSize.width, height: this._viewportSize.height};\n\n    // If we're not on a browser, don't cache the size since it'll be mocked out anyway.\n    if (!this._platform.isBrowser) {\n      this._viewportSize = null!;\n    }\n\n    return output;\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 o
 f 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    // While we can get a reference to the fake document\n    // during SSR, it doesn't have getBoundingClientRect.\n    if (!this._platform.isBrowser) {\n      return {top: 0, left: 0};\n    }\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    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._chan
 ge.pipe(auditTime(throttleTime)) : this._change;\n  }\n\n  /** Updates the cached viewport size. */\n  private _updateViewportSize() {\n    this._viewportSize = this._platform.isBrowser ?\n        {width: window.innerWidth, height: window.innerHeight} :\n        {width: 0, height: 0};\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 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 _scrollListener = (event: Event) => this._elementScrolled.next(event);\n\n  constructor(private _elementRef: ElementRef,\n              private _scroll: ScrollDispatcher,\n              private _ngZone: Ng
 Zone) {}\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-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-dispatch
 er';\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","_ngZone","_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","output","width","height","getViewportRect","scrollPosition","getViewportScrollPosition","_a","top","left","bottom","right","documentRect","documentElement","getBoundingClientRect","body","scrollTop","scrollY","scrollLeft","scrollX","throttleTime","innerWidth","innerHeight","VIEWPORT_RULER_PROVIDER","Scr
 ollDispatchModule","NgModule","imports","PlatformModule","exports","declarations","providers"],"mappings":"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"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/f85188ec/node_modules/@angular/cdk/bundles/cdk-stepper.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-stepper.umd.js b/node_modules/@angular/cdk/bundles/cdk-stepper.umd.js
index 3c0d565..f08307b 100644
--- a/node_modules/@angular/cdk/bundles/cdk-stepper.umd.js
+++ b/node_modules/@angular/cdk/bundles/cdk-stepper.umd.js
@@ -1,20 +1,22 @@
 /**
  * @license
- * Copyright Google Inc. All Rights Reserved.
+ * 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/keycodes'), require('@angular/cdk/coercion'), require('@angular/cdk/bidi'), require('@angular/common')) :
-	typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/cdk/keycodes', '@angular/cdk/coercion', '@angular/cdk/bidi', '@angular/common'], factory) :
-	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.stepper = global.ng.cdk.stepper || {}),global.ng.core,global.ng.cdk.keycodes,global.ng.cdk.coercion,global.ng.cdk.bidi,global.ng.common));
-}(this, (function (exports,_angular_core,_angular_cdk_keycodes,_angular_cdk_coercion,_angular_cdk_bidi,_angular_common) { 'use strict';
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/cdk/keycodes'), require('@angular/cdk/coercion'), require('@angular/forms'), require('@angular/cdk/bidi'), require('rxjs/Subject'), require('@angular/common')) :
+	typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/cdk/keycodes', '@angular/cdk/coercion', '@angular/forms', '@angular/cdk/bidi', 'rxjs/Subject', '@angular/common'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.stepper = global.ng.cdk.stepper || {}),global.ng.core,global.ng.cdk.keycodes,global.ng.cdk.coercion,global.ng.forms,global.ng.cdk.bidi,global.Rx,global.ng.common));
+}(this, (function (exports,_angular_core,_angular_cdk_keycodes,_angular_cdk_coercion,_angular_forms,_angular_cdk_bidi,rxjs_Subject,_angular_common) { 'use strict';
 
-var CdkStepLabel = (function () {
-    /**
-     * @param {?} template
-     */
+/**
+ * @fileoverview added by tsickle
+ * @suppress {checkTypes} checked by tsc
+ */
+
+var CdkStepLabel = /** @class */ (function () {
     function CdkStepLabel(template) {
         this.template = template;
     }
@@ -23,9 +25,7 @@ var CdkStepLabel = (function () {
                     selector: '[cdkStepLabel]',
                 },] },
     ];
-    /**
-     * @nocollapse
-     */
+    /** @nocollapse */
     CdkStepLabel.ctorParameters = function () { return [
         { type: _angular_core.TemplateRef, },
     ]; };
@@ -33,21 +33,23 @@ var CdkStepLabel = (function () {
 }());
 
 /**
+ * @fileoverview added by tsickle
+ * @suppress {checkTypes} checked by tsc
+ */
+
+/**
  * Used to generate unique ID for each stepper component.
  */
 var nextId = 0;
 /**
  * Change event emitted on selection changes.
  */
-var StepperSelectionEvent = (function () {
+var StepperSelectionEvent = /** @class */ (function () {
     function StepperSelectionEvent() {
     }
     return StepperSelectionEvent;
 }());
-var CdkStep = (function () {
-    /**
-     * @param {?} _stepper
-     */
+var CdkStep = /** @class */ (function () {
     function CdkStep(_stepper) {
         this._stepper = _stepper;
         /**
@@ -59,77 +61,104 @@ var CdkStep = (function () {
         this._customCompleted = null;
     }
     Object.defineProperty(CdkStep.prototype, "editable", {
-        /**
+        get: /**
+         * Whether the user can return to this step once it has been marked as complted.
          * @return {?}
          */
-        get: function () { return this._editable; },
-        /**
+        function () { return this._editable; },
+        set: /**
          * @param {?} value
          * @return {?}
          */
-        set: function (value) {
+        function (value) {
             this._editable = _angular_cdk_coercion.coerceBooleanProperty(value);
         },
         enumerable: true,
         configurable: true
     });
     Object.defineProperty(CdkStep.prototype, "optional", {
-        /**
-         * Whether the completion of step is optional or not.
+        get: /**
+         * Whether the completion of step is optional.
          * @return {?}
          */
-        get: function () { return this._optional; },
-        /**
+        function () { return this._optional; },
+        set: /**
          * @param {?} value
          * @return {?}
          */
-        set: function (value) {
+        function (value) {
             this._optional = _angular_cdk_coercion.coerceBooleanProperty(value);
         },
         enumerable: true,
         configurable: true
     });
     Object.defineProperty(CdkStep.prototype, "completed", {
-        /**
-         * Return whether step is completed or not.
+        get: /**
+         * Whether step is marked as completed.
          * @return {?}
          */
-        get: function () {
+        function () {
             return this._customCompleted == null ? this._defaultCompleted : this._customCompleted;
         },
-        /**
+        set: /**
          * @param {?} value
          * @return {?}
          */
-        set: function (value) {
+        function (value) {
             this._customCompleted = _angular_cdk_coercion.coerceBooleanProperty(value);
         },
         enumerable: true,
         configurable: true
     });
     Object.defineProperty(CdkStep.prototype, "_defaultCompleted", {
-        /**
+        get: /**
          * @return {?}
          */
-        get: function () {
+        function () {
             return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;
         },
         enumerable: true,
         configurable: true
     });
+    /** Selects this step component. */
     /**
      * Selects this step component.
      * @return {?}
      */
-    CdkStep.prototype.select = function () {
+    CdkStep.prototype.select = /**
+     * Selects this step component.
+     * @return {?}
+     */
+    function () {
         this._stepper.selected = this;
     };
+    /** Resets the step to its initial state. Note that this includes resetting form data. */
     /**
+     * Resets the step to its initial state. Note that this includes resetting form data.
      * @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.
+    CdkStep.prototype.reset = /**
+     * Resets the step to its initial state. Note that this includes resetting form data.
+     * @return {?}
+     */
+    function () {
+        this.interacted = false;
+        if (this._customCompleted != null) {
+            this._customCompleted = false;
+        }
+        if (this.stepControl) {
+            this.stepControl.reset();
+        }
+    };
+    /**
+     * @return {?}
+     */
+    CdkStep.prototype.ngOnChanges = /**
+     * @return {?}
+     */
+    function () {
+        // Since basically all inputs of the MatStep get proxied through the view down to the
+        // underlying MatStepHeader, we have to make sure that change detection runs correctly.
         this._stepper._stateChanged();
     };
     CdkStep.decorators = [
@@ -141,31 +170,29 @@ var CdkStep = (function () {
                     changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
                 },] },
     ];
-    /**
-     * @nocollapse
-     */
+    /** @nocollapse */
     CdkStep.ctorParameters = function () { return [
         { type: CdkStepper, decorators: [{ type: _angular_core.Inject, args: [_angular_core.forwardRef(function () { return CdkStepper; }),] },] },
     ]; };
     CdkStep.propDecorators = {
-        'stepLabel': [{ type: _angular_core.ContentChild, args: [CdkStepLabel,] },],
-        'content': [{ type: _angular_core.ViewChild, args: [_angular_core.TemplateRef,] },],
-        'stepControl': [{ type: _angular_core.Input },],
-        'label': [{ type: _angular_core.Input },],
-        'editable': [{ type: _angular_core.Input },],
-        'optional': [{ type: _angular_core.Input },],
-        'completed': [{ type: _angular_core.Input },],
+        "stepLabel": [{ type: _angular_core.ContentChild, args: [CdkStepLabel,] },],
+        "content": [{ type: _angular_core.ViewChild, args: [_angular_core.TemplateRef,] },],
+        "stepControl": [{ type: _angular_core.Input },],
+        "label": [{ type: _angular_core.Input },],
+        "editable": [{ type: _angular_core.Input },],
+        "optional": [{ type: _angular_core.Input },],
+        "completed": [{ type: _angular_core.Input },],
     };
     return CdkStep;
 }());
-var CdkStepper = (function () {
-    /**
-     * @param {?} _dir
-     * @param {?} _changeDetectorRef
-     */
+var CdkStepper = /** @class */ (function () {
     function CdkStepper(_dir, _changeDetectorRef) {
         this._dir = _dir;
         this._changeDetectorRef = _changeDetectorRef;
+        /**
+         * Emits when the component is destroyed.
+         */
+        this._destroyed = new rxjs_Subject.Subject();
         this._linear = false;
         this._selectedIndex = 0;
         /**
@@ -176,105 +203,172 @@ var CdkStepper = (function () {
          * The index of the step that the focus can be set.
          */
         this._focusIndex = 0;
+        this._orientation = 'horizontal';
         this._groupId = nextId++;
     }
     Object.defineProperty(CdkStepper.prototype, "linear", {
-        /**
+        get: /**
          * Whether the validity of previous steps should be checked or not.
          * @return {?}
          */
-        get: function () { return this._linear; },
-        /**
+        function () { return this._linear; },
+        set: /**
          * @param {?} value
          * @return {?}
          */
-        set: function (value) { this._linear = _angular_cdk_coercion.coerceBooleanProperty(value); },
+        function (value) { this._linear = _angular_cdk_coercion.coerceBooleanProperty(value); },
         enumerable: true,
         configurable: true
     });
     Object.defineProperty(CdkStepper.prototype, "selectedIndex", {
-        /**
+        get: /**
          * The index of the selected step.
          * @return {?}
          */
-        get: function () { return this._selectedIndex; },
-        /**
+        function () { return this._selectedIndex; },
+        set: /**
          * @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();
+        function (index) {
+            if (this._steps) {
+                // Ensure that the index can't be out of bounds.
+                if (index < 0 || index > this._steps.length - 1) {
+                    throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');
+                }
+                if (this._anyControlsInvalidOrPending(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;
+                }
             }
-            else if (this._selectedIndex != index) {
-                this._emitStepperSelectionEvent(index);
-                this._focusIndex = this._selectedIndex;
+            else {
+                this._selectedIndex = this._focusIndex = index;
             }
         },
         enumerable: true,
         configurable: true
     });
     Object.defineProperty(CdkStepper.prototype, "selected", {
-        /**
+        get: /**
          * The step that is selected.
          * @return {?}
          */
-        get: function () { return this._steps.toArray()[this.selectedIndex]; },
-        /**
+        function () { return this._steps.toArray()[this.selectedIndex]; },
+        set: /**
          * @param {?} step
          * @return {?}
          */
-        set: function (step) {
+        function (step) {
             this.selectedIndex = this._steps.toArray().indexOf(step);
         },
         enumerable: true,
         configurable: true
     });
     /**
+     * @return {?}
+     */
+    CdkStepper.prototype.ngOnDestroy = /**
+     * @return {?}
+     */
+    function () {
+        this._destroyed.next();
+        this._destroyed.complete();
+    };
+    /** Selects and focuses the next step in list. */
+    /**
+     * Selects and focuses the next step in list.
+     * @return {?}
+     */
+    CdkStepper.prototype.next = /**
      * Selects and focuses the next step in list.
      * @return {?}
      */
-    CdkStepper.prototype.next = function () {
+    function () {
         this.selectedIndex = Math.min(this._selectedIndex + 1, this._steps.length - 1);
     };
+    /** Selects and focuses the previous step in list. */
     /**
      * Selects and focuses the previous step in list.
      * @return {?}
      */
-    CdkStepper.prototype.previous = function () {
+    CdkStepper.prototype.previous = /**
+     * Selects and focuses the previous step in list.
+     * @return {?}
+     */
+    function () {
         this.selectedIndex = Math.max(this._selectedIndex - 1, 0);
     };
+    /** Resets the stepper to its initial state. Note that this includes clearing form data. */
+    /**
+     * Resets the stepper to its initial state. Note that this includes clearing form data.
+     * @return {?}
+     */
+    CdkStepper.prototype.reset = /**
+     * Resets the stepper to its initial state. Note that this includes clearing form data.
+     * @return {?}
+     */
+    function () {
+        this.selectedIndex = 0;
+        this._steps.forEach(function (step) { return step.reset(); });
+        this._stateChanged();
+    };
+    /** Returns a unique id for each step label element. */
     /**
      * Returns a unique id for each step label element.
      * @param {?} i
      * @return {?}
      */
-    CdkStepper.prototype._getStepLabelId = function (i) {
-        return "mat-step-label-" + this._groupId + "-" + i;
+    CdkStepper.prototype._getStepLabelId = /**
+     * Returns a unique id for each step label element.
+     * @param {?} i
+     * @return {?}
+     */
+    function (i) {
+        return "cdk-step-label-" + this._groupId + "-" + i;
     };
+    /** Returns unique id for each step content element. */
     /**
      * Returns unique id for each step content element.
      * @param {?} i
      * @return {?}
      */
-    CdkStepper.prototype._getStepContentId = function (i) {
-        return "mat-step-content-" + this._groupId + "-" + i;
+    CdkStepper.prototype._getStepContentId = /**
+     * Returns unique id for each step content element.
+     * @param {?} i
+     * @return {?}
+     */
+    function (i) {
+        return "cdk-step-content-" + this._groupId + "-" + i;
     };
+    /** Marks the component to be change detected. */
     /**
      * Marks the component to be change detected.
      * @return {?}
      */
-    CdkStepper.prototype._stateChanged = function () {
+    CdkStepper.prototype._stateChanged = /**
+     * Marks the component to be change detected.
+     * @return {?}
+     */
+    function () {
         this._changeDetectorRef.markForCheck();
     };
+    /** Returns position state of the step with the given index. */
     /**
      * Returns position state of the step with the given index.
      * @param {?} index
      * @return {?}
      */
-    CdkStepper.prototype._getAnimationDirection = function (index) {
+    CdkStepper.prototype._getAnimationDirection = /**
+     * Returns position state of the step with the given index.
+     * @param {?} index
+     * @return {?}
+     */
+    function (index) {
         var /** @type {?} */ position = index - this._selectedIndex;
         if (position < 0) {
             return this._layoutDirection() === 'rtl' ? 'next' : 'previous';
@@ -284,12 +378,18 @@ var CdkStepper = (function () {
         }
         return 'current';
     };
+    /** Returns the type of icon to be displayed. */
     /**
      * Returns the type of icon to be displayed.
      * @param {?} index
      * @return {?}
      */
-    CdkStepper.prototype._getIndicatorType = function (index) {
+    CdkStepper.prototype._getIndicatorType = /**
+     * Returns the type of icon to be displayed.
+     * @param {?} index
+     * @return {?}
+     */
+    function (index) {
         var /** @type {?} */ step = this._steps.toArray()[index];
         if (!step.completed || this._selectedIndex == index) {
             return 'number';
@@ -302,7 +402,11 @@ var CdkStepper = (function () {
      * @param {?} newIndex
      * @return {?}
      */
-    CdkStepper.prototype._emitStepperSelectionEvent = function (newIndex) {
+    CdkStepper.prototype._emitStepperSelectionEvent = /**
+     * @param {?} newIndex
+     * @return {?}
+     */
+    function (newIndex) {
         var /** @type {?} */ stepsArray = this._steps.toArray();
         this.selectionChange.emit({
             selectedIndex: newIndex,
@@ -317,51 +421,67 @@ var CdkStepper = (function () {
      * @param {?} event
      * @return {?}
      */
-    CdkStepper.prototype._onKeydown = function (event) {
-        switch (event.keyCode) {
-            case _angular_cdk_keycodes.RIGHT_ARROW:
-                if (this._layoutDirection() === 'rtl') {
-                    this._focusPreviousStep();
-                }
-                else {
-                    this._focusNextStep();
-                }
-                break;
-            case _angular_cdk_keycodes.LEFT_ARROW:
-                if (this._layoutDirection() === 'rtl') {
-                    this._focusNextStep();
-                }
-                else {
-                    this._focusPreviousStep();
-                }
-                break;
-            case _angular_cdk_keycodes.SPACE:
-            case _angular_cdk_keycodes.ENTER:
-                this.selectedIndex = this._focusIndex;
-                break;
-            default:
-                // Return to avoid calling preventDefault on keys that are not explicitly handled.
-                return;
+    CdkStepper.prototype._onKeydown = /**
+     * @param {?} event
+     * @return {?}
+     */
+    function (event) {
+        var /** @type {?} */ keyCode = event.keyCode;
+        // Note that the left/right arrows work both in vertical and horizontal mode.
+        if (keyCode === _angular_cdk_keycodes.RIGHT_ARROW) {
+            this._layoutDirection() === 'rtl' ? this._focusPreviousStep() : this._focusNextStep();
+            event.preventDefault();
+        }
+        if (keyCode === _angular_cdk_keycodes.LEFT_ARROW) {
+            this._layoutDirection() === 'rtl' ? this._focusNextStep() : this._focusPreviousStep();
+            event.preventDefault();
+        }
+        // Note that the up/down arrows only work in vertical mode.
+        // See: https://www.w3.org/TR/wai-aria-practices-1.1/#tabpanel
+        if (this._orientation === 'vertical' && (keyCode === _angular_cdk_keycodes.UP_ARROW || keyCode === _angular_cdk_keycodes.DOWN_ARROW)) {
+            keyCode === _angular_cdk_keycodes.UP_ARROW ? this._focusPreviousStep() : this._focusNextStep();
+            event.preventDefault();
+        }
+        if (keyCode === _angular_cdk_keycodes.SPACE || keyCode === _angular_cdk_keycodes.ENTER) {
+            this.selectedIndex = this._focusIndex;
+            event.preventDefault();
+        }
+        if (keyCode === _angular_cdk_keycodes.HOME) {
+            this._focusStep(0);
+            event.preventDefault();
+        }
+        if (keyCode === _angular_cdk_keycodes.END) {
+            this._focusStep(this._steps.length - 1);
+            event.preventDefault();
         }
-        event.preventDefault();
     };
     /**
      * @return {?}
      */
-    CdkStepper.prototype._focusNextStep = function () {
+    CdkStepper.prototype._focusNextStep = /**
+     * @return {?}
+     */
+    function () {
         this._focusStep((this._focusIndex + 1) % this._steps.length);
     };
     /**
      * @return {?}
      */
-    CdkStepper.prototype._focusPreviousStep = function () {
+    CdkStepper.prototype._focusPreviousStep = /**
+     * @return {?}
+     */
+    function () {
         this._focusStep((this._focusIndex + this._steps.length - 1) % this._steps.length);
     };
     /**
      * @param {?} index
      * @return {?}
      */
-    CdkStepper.prototype._focusStep = function (index) {
+    CdkStepper.prototype._focusStep = /**
+     * @param {?} index
+     * @return {?}
+     */
+    function (index) {
         this._focusIndex = index;
         this._stepHeader.toArray()[this._focusIndex].nativeElement.focus();
     };
@@ -369,17 +489,31 @@ var CdkStepper = (function () {
      * @param {?} index
      * @return {?}
      */
-    CdkStepper.prototype._anyControlsInvalid = function (index) {
-        this._steps.toArray()[this._selectedIndex].interacted = true;
+    CdkStepper.prototype._anyControlsInvalidOrPending = /**
+     * @param {?} index
+     * @return {?}
+     */
+    function (index) {
+        var /** @type {?} */ steps = this._steps.toArray();
+        steps[this._selectedIndex].interacted = true;
         if (this._linear && index >= 0) {
-            return this._steps.toArray().slice(0, index).some(function (step) { return step.stepControl.invalid; });
+            return steps.slice(0, index).some(function (step) {
+                var /** @type {?} */ control = step.stepControl;
+                var /** @type {?} */ isIncomplete = control ?
+                    (control.invalid || control.pending || !step.interacted) :
+                    !step.completed;
+                return isIncomplete && !step.optional;
+            });
         }
         return false;
     };
     /**
      * @return {?}
      */
-    CdkStepper.prototype._layoutDirection = function () {
+    CdkStepper.prototype._layoutDirection = /**
+     * @return {?}
+     */
+    function () {
         return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';
     };
     CdkStepper.decorators = [
@@ -388,73 +522,91 @@ var CdkStepper = (function () {
                     exportAs: 'cdkStepper',
                 },] },
     ];
-    /**
-     * @nocollapse
-     */
+    /** @nocollapse */
     CdkStepper.ctorParameters = function () { return [
         { type: _angular_cdk_bidi.Directionality, decorators: [{ type: _angular_core.Optional },] },
         { type: _angular_core.ChangeDetectorRef, },
     ]; };
     CdkStepper.propDecorators = {
-        '_steps': [{ type: _angular_core.ContentChildren, args: [CdkStep,] },],
-        'linear': [{ type: _angular_core.Input },],
-        'selectedIndex': [{ type: _angular_core.Input },],
-        'selected': [{ type: _angular_core.Input },],
-        'selectionChange': [{ type: _angular_core.Output },],
+        "_steps": [{ type: _angular_core.ContentChildren, args: [CdkStep,] },],
+        "linear": [{ type: _angular_core.Input },],
+        "selectedIndex": [{ type: _angular_core.Input },],
+        "selected": [{ type: _angular_core.Input },],
+        "selectionChange": [{ type: _angular_core.Output },],
     };
     return CdkStepper;
 }());
 
 /**
+ * @fileoverview added by tsickle
+ * @suppress {checkTypes} checked by tsc
+ */
+
+/**
  * Button that moves to the next step in a stepper workflow.
  */
-var CdkStepperNext = (function () {
-    /**
-     * @param {?} _stepper
-     */
+var CdkStepperNext = /** @class */ (function () {
     function CdkStepperNext(_stepper) {
         this._stepper = _stepper;
+        /**
+         * Type of the next button. Defaults to "submit" if not specified.
+         */
+        this.type = 'submit';
     }
     CdkStepperNext.decorators = [
         { type: _angular_core.Directive, args: [{
                     selector: 'button[cdkStepperNext]',
-                    host: { '(click)': '_stepper.next()' }
+                    host: {
+                        '(click)': '_stepper.next()',
+                        '[type]': 'type',
+                    }
                 },] },
     ];
-    /**
-     * @nocollapse
-     */
+    /** @nocollapse */
     CdkStepperNext.ctorParameters = function () { return [
         { type: CdkStepper, },
     ]; };
+    CdkStepperNext.propDecorators = {
+        "type": [{ type: _angular_core.Input },],
+    };
     return CdkStepperNext;
 }());
 /**
  * Button that moves to the previous step in a stepper workflow.
  */
-var CdkStepperPrevious = (function () {
-    /**
-     * @param {?} _stepper
-     */
+var CdkStepperPrevious = /** @class */ (function () {
     function CdkStepperPrevious(_stepper) {
         this._stepper = _stepper;
+        /**
+         * Type of the previous button. Defaults to "button" if not specified.
+         */
+        this.type = 'button';
     }
     CdkStepperPrevious.decorators = [
         { type: _angular_core.Directive, args: [{
                     selector: 'button[cdkStepperPrevious]',
-                    host: { '(click)': '_stepper.previous()' }
+                    host: {
+                        '(click)': '_stepper.previous()',
+                        '[type]': 'type',
+                    }
                 },] },
     ];
-    /**
-     * @nocollapse
-     */
+    /** @nocollapse */
     CdkStepperPrevious.ctorParameters = function () { return [
         { type: CdkStepper, },
     ]; };
+    CdkStepperPrevious.propDecorators = {
+        "type": [{ type: _angular_core.Input },],
+    };
     return CdkStepperPrevious;
 }());
 
-var CdkStepperModule = (function () {
+/**
+ * @fileoverview added by tsickle
+ * @suppress {checkTypes} checked by tsc
+ */
+
+var CdkStepperModule = /** @class */ (function () {
     function CdkStepperModule() {
     }
     CdkStepperModule.decorators = [
@@ -464,9 +616,7 @@ var CdkStepperModule = (function () {
                     declarations: [CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious]
                 },] },
     ];
-    /**
-     * @nocollapse
-     */
+    /** @nocollapse */
     CdkStepperModule.ctorParameters = function () { return []; };
     return CdkStepperModule;
 }());