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:57 UTC

[16/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/esm2015/bidi.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/bidi.js b/node_modules/@angular/cdk/esm2015/bidi.js
new file mode 100644
index 0000000..1ebd8d3
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/bidi.js
@@ -0,0 +1,162 @@
+/**
+ * @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, EventEmitter, Inject, Injectable, InjectionToken, Input, NgModule, Optional, Output, SkipSelf } from '@angular/core';
+import { DOCUMENT } from '@angular/platform-browser';
+
+/**
+ * Injection token used to inject the document into Directionality.
+ * This is used so that the value can be faked in tests.
+ *
+ * We can't use the real document in tests because changing the real `dir` causes geometry-based
+ * tests in Safari to fail.
+ *
+ * We also can't re-provide the DOCUMENT token from platform-brower because the unit tests
+ * themselves use things like `querySelector` in test code.
+ */
+const DIR_DOCUMENT = new InjectionToken('mat-dir-doc');
+/**
+ * The directionality (LTR / RTL) context for the application (or a subtree of it).
+ * Exposes the current direction and a stream of direction changes.
+ */
+class Directionality {
+    /**
+     * @param {?=} _document
+     */
+    constructor(_document) {
+        this.value = 'ltr';
+        this.change = new EventEmitter();
+        if (_document) {
+            // TODO: handle 'auto' value -
+            // We still need to account for dir="auto".
+            // It looks like HTMLElemenet.dir is also "auto" when that's set to the attribute,
+            // but getComputedStyle return either "ltr" or "rtl". avoiding getComputedStyle for now
+            const bodyDir = _document.body ? _document.body.dir : null;
+            const htmlDir = _document.documentElement ? _document.documentElement.dir : null;
+            this.value = (bodyDir || htmlDir || 'ltr');
+        }
+    }
+}
+Directionality.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+Directionality.ctorParameters = () => [
+    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DIR_DOCUMENT,] },] },
+];
+/**
+ * \@docs-private
+ * @param {?} parentDirectionality
+ * @param {?} _document
+ * @return {?}
+ */
+function DIRECTIONALITY_PROVIDER_FACTORY(parentDirectionality, _document) {
+    return parentDirectionality || new Directionality(_document);
+}
+/**
+ * \@docs-private
+ */
+const DIRECTIONALITY_PROVIDER = {
+    // If there is already a Directionality available, use that. Otherwise, provide a new one.
+    provide: Directionality,
+    deps: [[new Optional(), new SkipSelf(), Directionality], [new Optional(), DOCUMENT]],
+    useFactory: DIRECTIONALITY_PROVIDER_FACTORY
+};
+
+/**
+ * Directive to listen for changes of direction of part of the DOM.
+ *
+ * Would provide itself in case a component looks for the Directionality service
+ */
+class Dir {
+    constructor() {
+        /**
+         * Layout direction of the element.
+         */
+        this._dir = 'ltr';
+        /**
+         * Whether the `value` has been set to its initial value.
+         */
+        this._isInitialized = false;
+        /**
+         * Event emitted when the direction changes.
+         */
+        this.change = new EventEmitter();
+    }
+    /**
+     * \@docs-private
+     * @return {?}
+     */
+    get dir() {
+        return this._dir;
+    }
+    /**
+     * @param {?} v
+     * @return {?}
+     */
+    set dir(v) {
+        let /** @type {?} */ old = this._dir;
+        this._dir = v;
+        if (old !== this._dir && this._isInitialized) {
+            this.change.emit();
+        }
+    }
+    /**
+     * Current layout direction of the element.
+     * @return {?}
+     */
+    get value() { return this.dir; }
+    /**
+     * Initialize once default value has been set.
+     * @return {?}
+     */
+    ngAfterContentInit() {
+        this._isInitialized = true;
+    }
+}
+Dir.decorators = [
+    { type: Directive, args: [{
+                selector: '[dir]',
+                providers: [{ provide: Directionality, useExisting: Dir }],
+                host: { '[dir]': 'dir' },
+                exportAs: 'dir',
+            },] },
+];
+/**
+ * @nocollapse
+ */
+Dir.ctorParameters = () => [];
+Dir.propDecorators = {
+    'change': [{ type: Output, args: ['dirChange',] },],
+    'dir': [{ type: Input, args: ['dir',] },],
+};
+
+class BidiModule {
+}
+BidiModule.decorators = [
+    { type: NgModule, args: [{
+                exports: [Dir],
+                declarations: [Dir],
+                providers: [
+                    { provide: DIR_DOCUMENT, useExisting: DOCUMENT },
+                    Directionality,
+                ]
+            },] },
+];
+/**
+ * @nocollapse
+ */
+BidiModule.ctorParameters = () => [];
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { Directionality, DIRECTIONALITY_PROVIDER_FACTORY, DIRECTIONALITY_PROVIDER, DIR_DOCUMENT, Dir, BidiModule };
+//# sourceMappingURL=bidi.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/bidi.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/bidi.js.map b/node_modules/@angular/cdk/esm2015/bidi.js.map
new file mode 100644
index 0000000..360ca10
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/bidi.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"bidi.js","sources":["../../packages/cdk/bidi/directionality.js","../../packages/cdk/bidi/dir.js","../../packages/cdk/bidi/bidi-module.js","../../packages/cdk/bidi/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 { EventEmitter, Injectable, Optional, SkipSelf, Inject, InjectionToken, } from '@angular/core';\nimport { DOCUMENT } from '@angular/platform-browser';\n/**\n * Injection token used to inject the document into Directionality.\n * This is used so that the value can be faked in tests.\n *\n * We can't use the real document in tests because changing the real `dir` causes geometry-based\n * tests in Safari to fail.\n *\n * We also can't re-provide the DOCUMENT token from platform-brower because the unit tests\n * themselves use things like `querySelector` in test c
 ode.\n */\nexport const DIR_DOCUMENT = new InjectionToken('mat-dir-doc');\n/**\n * The directionality (LTR / RTL) context for the application (or a subtree of it).\n * Exposes the current direction and a stream of direction changes.\n */\nexport class Directionality {\n    /**\n     * @param {?=} _document\n     */\n    constructor(_document) {\n        this.value = 'ltr';\n        this.change = new EventEmitter();\n        if (_document) {\n            // TODO: handle 'auto' value -\n            // We still need to account for dir=\"auto\".\n            // It looks like HTMLElemenet.dir is also \"auto\" when that's set to the attribute,\n            // but getComputedStyle return either \"ltr\" or \"rtl\". avoiding getComputedStyle for now\n            const bodyDir = _document.body ? _document.body.dir : null;\n            const htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n            this.value = (bodyDir || htmlDir || 'ltr');\n        }\n    }\n}\
 nDirectionality.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nDirectionality.ctorParameters = () => [\n    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DIR_DOCUMENT,] },] },\n];\nfunction Directionality_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Directionality.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    Directionality.ctorParameters;\n    /** @type {?} */\n    Directionality.prototype.value;\n    /** @type {?} */\n    Directionality.prototype.change;\n}\n/**\n * \\@docs-private\n * @param {?} parentDirectionality\n * @param {?} _document\n * @return {?}\n */\nexport function DIRECTIONALITY_PROVIDER_FACTORY(parentDirectionality, _document) {\n    return parentDirectionality || new Directionality(_document);\n}\n/**\n * \\@docs-private\n */\nexport const DIRECTIONALITY_PROVIDER = {\n    // If there is already a Directionality available, use that. Otherwise, provide a new one.\n    pr
 ovide: Directionality,\n    deps: [[new Optional(), new SkipSelf(), Directionality], [new Optional(), DOCUMENT]],\n    useFactory: DIRECTIONALITY_PROVIDER_FACTORY\n};\n//# sourceMappingURL=directionality.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, Output, Input, EventEmitter } from '@angular/core';\nimport { Directionality } from './directionality';\n/**\n * Directive to listen for changes of direction of part of the DOM.\n *\n * Would provide itself in case a component looks for the Directionality service\n */\nexport class Dir {\n    constructor() {\n        /**\n         * Layout direction of the element.\n         */\n        this._dir = 'ltr';\n        /**\n         * Whether the `value` has been set to its initial value.\n         */\n        this._isInitialized = false;\n        /**\n
          * Event emitted when the direction changes.\n         */\n        this.change = new EventEmitter();\n    }\n    /**\n     * \\@docs-private\n     * @return {?}\n     */\n    get dir() {\n        return this._dir;\n    }\n    /**\n     * @param {?} v\n     * @return {?}\n     */\n    set dir(v) {\n        let /** @type {?} */ old = this._dir;\n        this._dir = v;\n        if (old !== this._dir && this._isInitialized) {\n            this.change.emit();\n        }\n    }\n    /**\n     * Current layout direction of the element.\n     * @return {?}\n     */\n    get value() { return this.dir; }\n    /**\n     * Initialize once default value has been set.\n     * @return {?}\n     */\n    ngAfterContentInit() {\n        this._isInitialized = true;\n    }\n}\nDir.decorators = [\n    { type: Directive, args: [{\n                selector: '[dir]',\n                providers: [{ provide: Directionality, useExisting: Dir }],\n                host: { '[dir]': 'dir' },\n            
     exportAs: 'dir',\n            },] },\n];\n/**\n * @nocollapse\n */\nDir.ctorParameters = () => [];\nDir.propDecorators = {\n    'change': [{ type: Output, args: ['dirChange',] },],\n    'dir': [{ type: Input, args: ['dir',] },],\n};\nfunction Dir_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Dir.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    Dir.ctorParameters;\n    /** @type {?} */\n    Dir.propDecorators;\n    /**\n     * Layout direction of the element.\n     * @type {?}\n     */\n    Dir.prototype._dir;\n    /**\n     * Whether the `value` has been set to its initial value.\n     * @type {?}\n     */\n    Dir.prototype._isInitialized;\n    /**\n     * Event emitted when the direction changes.\n     * @type {?}\n     */\n    Dir.prototype.change;\n}\n//# sourceMappingURL=dir.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 i
 n the LICENSE file at https://angular.io/license\n */\nimport { NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/platform-browser';\nimport { Dir } from './dir';\nimport { DIR_DOCUMENT, Directionality } from './directionality';\nexport class BidiModule {\n}\nBidiModule.decorators = [\n    { type: NgModule, args: [{\n                exports: [Dir],\n                declarations: [Dir],\n                providers: [\n                    { provide: DIR_DOCUMENT, useExisting: DOCUMENT },\n                    Directionality,\n                ]\n            },] },\n];\n/**\n * @nocollapse\n */\nBidiModule.ctorParameters = () => [];\nfunction BidiModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    BidiModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    BidiModule.ctorParameters;\n}\n//# sourceMappingURL=bidi-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { Directionality, DIRECTIONALITY_PROVIDER_FACTO
 RY, DIRECTIONALITY_PROVIDER, DIR_DOCUMENT, Dir, BidiModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"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/esm2015/cdk.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/cdk.js b/node_modules/@angular/cdk/esm2015/cdk.js
new file mode 100644
index 0000000..aa842ed
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/cdk.js
@@ -0,0 +1,20 @@
+/**
+ * @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 { Version } from '@angular/core';
+
+/**
+ * Current version of the Angular Component Development Kit.
+ */
+const VERSION = new Version('0.0.0-PLACEHOLDER');
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { VERSION };
+//# sourceMappingURL=cdk.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/cdk.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/cdk.js.map b/node_modules/@angular/cdk/esm2015/cdk.js.map
new file mode 100644
index 0000000..6300edb
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/cdk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk.js","sources":["../packages/cdk/version.js","../packages/cdk/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 { Version } from '@angular/core';\n/**\n * Current version of the Angular Component Development Kit.\n */\nexport const VERSION = new Version('0.0.0-PLACEHOLDER');\n//# sourceMappingURL=version.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { VERSION } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;;;;;AAQA;;;AAGA,AAAO,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC,AACxD;;ACZA;;GAEG,AACH,AAAuC,AACvC;;"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/coercion.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/coercion.js b/node_modules/@angular/cdk/esm2015/coercion.js
new file mode 100644
index 0000000..476cd03
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/coercion.js
@@ -0,0 +1,45 @@
+/**
+ * @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
+ */
+/**
+ * Coerces a data-bound value (typically a string) to a boolean.
+ * @param {?} value
+ * @return {?}
+ */
+function coerceBooleanProperty(value) {
+    return value != null && `${value}` !== 'false';
+}
+
+/**
+ * Coerces a data-bound value (typically a string) to a number.
+ * @param {?} value
+ * @param {?=} fallbackValue
+ * @return {?}
+ */
+function coerceNumberProperty(value, fallbackValue = 0) {
+    // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,
+    // and other non-number values as NaN, where Number just uses 0) but it considers the string
+    // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.
+    return isNaN(parseFloat(/** @type {?} */ (value))) || isNaN(Number(value)) ? fallbackValue : Number(value);
+}
+
+/**
+ * Wraps the provided value in an array, unless the provided value is an array.
+ * @template T
+ * @param {?} value
+ * @return {?}
+ */
+function coerceArray(value) {
+    return Array.isArray(value) ? value : [value];
+}
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { coerceBooleanProperty, coerceNumberProperty, coerceArray };
+//# sourceMappingURL=coercion.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/coercion.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/coercion.js.map b/node_modules/@angular/cdk/esm2015/coercion.js.map
new file mode 100644
index 0000000..2a54d05
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/coercion.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"coercion.js","sources":["../../packages/cdk/coercion/boolean-property.js","../../packages/cdk/coercion/number-property.js","../../packages/cdk/coercion/array.js","../../packages/cdk/coercion/index.js"],"sourcesContent":["/**\n * Coerces a data-bound value (typically a string) to a boolean.\n * @param {?} value\n * @return {?}\n */\nexport function coerceBooleanProperty(value) {\n    return value != null && `${value}` !== 'false';\n}\n//# sourceMappingURL=boolean-property.js.map","/**\n * Coerces a data-bound value (typically a string) to a number.\n * @param {?} value\n * @param {?=} fallbackValue\n * @return {?}\n */\nexport function coerceNumberProperty(value, fallbackValue = 0) {\n    // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n    // and other non-number values as NaN, where Number just uses 0) but it considers the string\n    // '123hello' to be a valid number. Therefore we also check if Number(value) i
 s NaN.\n    return isNaN(parseFloat(/** @type {?} */ (value))) || isNaN(Number(value)) ? fallbackValue : Number(value);\n}\n//# sourceMappingURL=number-property.js.map","/**\n * Wraps the provided value in an array, unless the provided value is an array.\n * @template T\n * @param {?} value\n * @return {?}\n */\nexport function coerceArray(value) {\n    return Array.isArray(value) ? value : [value];\n}\n//# sourceMappingURL=array.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { coerceBooleanProperty, coerceNumberProperty, coerceArray } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;;;AAAA;;;;;AAKA,AAAO,SAAS,qBAAqB,CAAC,KAAK,EAAE;IACzC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC;CAClD,AACD;;ACRA;;;;;;AAMA,AAAO,SAAS,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,CAAC,EAAE;;;;IAI3D,OAAO,KAAK,CAAC,UAAU,mBAAmB,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;CAC9G,AACD;;ACZA;;;;
 ;;AAMA,AAAO,SAAS,WAAW,CAAC,KAAK,EAAE;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;CACjD,AACD;;ACTA;;GAEG,AACH,AAAwF,AACxF;;"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/collections.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/collections.js b/node_modules/@angular/cdk/esm2015/collections.js
new file mode 100644
index 0000000..1b2bfb9
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/collections.js
@@ -0,0 +1,310 @@
+/**
+ * @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 { Subject } from 'rxjs/Subject';
+import { Injectable, Optional, SkipSelf } from '@angular/core';
+
+/**
+ * @abstract
+ */
+class DataSource {
+    /**
+     * Connects a collection viewer (such as a data-table) to this data source. Note that
+     * the stream provided will be accessed during change detection and should not directly change
+     * values that are bound in template views.
+     * @abstract
+     * @param {?} collectionViewer The component that exposes a view over the data provided by this
+     *     data source.
+     * @return {?} Observable that emits a new value when the data changes.
+     */
+    connect(collectionViewer) { }
+    /**
+     * Disconnects a collection viewer (such as a data-table) from this data source. Can be used
+     * to perform any clean-up or tear-down operations when a view is being destroyed.
+     *
+     * @abstract
+     * @param {?} collectionViewer The component that exposes a view over the data provided by this
+     *     data source.
+     * @return {?}
+     */
+    disconnect(collectionViewer) { }
+}
+
+/**
+ * Class to be used to power selecting one or more options from a list.
+ */
+class SelectionModel {
+    /**
+     * @param {?=} _isMulti
+     * @param {?=} initiallySelectedValues
+     * @param {?=} _emitChanges
+     */
+    constructor(_isMulti = false, initiallySelectedValues, _emitChanges = true) {
+        this._isMulti = _isMulti;
+        this._emitChanges = _emitChanges;
+        /**
+         * Currently-selected values.
+         */
+        this._selection = new Set();
+        /**
+         * Keeps track of the deselected options that haven't been emitted by the change event.
+         */
+        this._deselectedToEmit = [];
+        /**
+         * Keeps track of the selected option that haven't been emitted by the change event.
+         */
+        this._selectedToEmit = [];
+        /**
+         * Event emitted when the value has changed.
+         */
+        this.onChange = this._emitChanges ? new Subject() : null;
+        if (initiallySelectedValues) {
+            if (_isMulti) {
+                initiallySelectedValues.forEach(value => this._markSelected(value));
+            }
+            else {
+                this._markSelected(initiallySelectedValues[0]);
+            }
+            // Clear the array in order to avoid firing the change event for preselected values.
+            this._selectedToEmit.length = 0;
+        }
+    }
+    /**
+     * Selected value(s).
+     * @return {?}
+     */
+    get selected() {
+        if (!this._selected) {
+            this._selected = Array.from(this._selection.values());
+        }
+        return this._selected;
+    }
+    /**
+     * Selects a value or an array of values.
+     * @param {...?} values
+     * @return {?}
+     */
+    select(...values) {
+        this._verifyValueAssignment(values);
+        values.forEach(value => this._markSelected(value));
+        this._emitChangeEvent();
+    }
+    /**
+     * Deselects a value or an array of values.
+     * @param {...?} values
+     * @return {?}
+     */
+    deselect(...values) {
+        this._verifyValueAssignment(values);
+        values.forEach(value => this._unmarkSelected(value));
+        this._emitChangeEvent();
+    }
+    /**
+     * Toggles a value between selected and deselected.
+     * @param {?} value
+     * @return {?}
+     */
+    toggle(value) {
+        this.isSelected(value) ? this.deselect(value) : this.select(value);
+    }
+    /**
+     * Clears all of the selected values.
+     * @return {?}
+     */
+    clear() {
+        this._unmarkAll();
+        this._emitChangeEvent();
+    }
+    /**
+     * Determines whether a value is selected.
+     * @param {?} value
+     * @return {?}
+     */
+    isSelected(value) {
+        return this._selection.has(value);
+    }
+    /**
+     * Determines whether the model does not have a value.
+     * @return {?}
+     */
+    isEmpty() {
+        return this._selection.size === 0;
+    }
+    /**
+     * Determines whether the model has a value.
+     * @return {?}
+     */
+    hasValue() {
+        return !this.isEmpty();
+    }
+    /**
+     * Sorts the selected values based on a predicate function.
+     * @param {?=} predicate
+     * @return {?}
+     */
+    sort(predicate) {
+        if (this._isMulti && this._selected) {
+            this._selected.sort(predicate);
+        }
+    }
+    /**
+     * Emits a change event and clears the records of selected and deselected values.
+     * @return {?}
+     */
+    _emitChangeEvent() {
+        if (this._selectedToEmit.length || this._deselectedToEmit.length) {
+            let /** @type {?} */ eventData = new SelectionChange(this._selectedToEmit, this._deselectedToEmit);
+            if (this.onChange) {
+                this.onChange.next(eventData);
+            }
+            this._deselectedToEmit = [];
+            this._selectedToEmit = [];
+        }
+        this._selected = null;
+    }
+    /**
+     * Selects a value.
+     * @param {?} value
+     * @return {?}
+     */
+    _markSelected(value) {
+        if (!this.isSelected(value)) {
+            if (!this._isMulti) {
+                this._unmarkAll();
+            }
+            this._selection.add(value);
+            if (this._emitChanges) {
+                this._selectedToEmit.push(value);
+            }
+        }
+    }
+    /**
+     * Deselects a value.
+     * @param {?} value
+     * @return {?}
+     */
+    _unmarkSelected(value) {
+        if (this.isSelected(value)) {
+            this._selection.delete(value);
+            if (this._emitChanges) {
+                this._deselectedToEmit.push(value);
+            }
+        }
+    }
+    /**
+     * Clears out the selected values.
+     * @return {?}
+     */
+    _unmarkAll() {
+        if (!this.isEmpty()) {
+            this._selection.forEach(value => this._unmarkSelected(value));
+        }
+    }
+    /**
+     * Verifies the value assignment and throws an error if the specified value array is
+     * including multiple values while the selection model is not supporting multiple values.
+     * @param {?} values
+     * @return {?}
+     */
+    _verifyValueAssignment(values) {
+        if (values.length > 1 && !this._isMulti) {
+            throw getMultipleValuesInSingleSelectionError();
+        }
+    }
+}
+/**
+ * Describes an event emitted when the value of a MatSelectionModel has changed.
+ * \@docs-private
+ */
+class SelectionChange {
+    /**
+     * @param {?=} added
+     * @param {?=} removed
+     */
+    constructor(added, removed) {
+        this.added = added;
+        this.removed = removed;
+    }
+}
+/**
+ * Returns an error that reports that multiple values are passed into a selection model
+ * with a single value.
+ * @return {?}
+ */
+function getMultipleValuesInSingleSelectionError() {
+    return Error('Cannot pass multiple values into SelectionModel with single-value mode.');
+}
+
+/**
+ * Class to coordinate unique selection based on name.
+ * Intended to be consumed as an Angular service.
+ * This service is needed because native radio change events are only fired on the item currently
+ * being selected, and we still need to uncheck the previous selection.
+ *
+ * This service does not *store* any IDs and names because they may change at any time, so it is
+ * less error-prone if they are simply passed through when the events occur.
+ */
+class UniqueSelectionDispatcher {
+    constructor() {
+        this._listeners = [];
+    }
+    /**
+     * Notify other items that selection for the given name has been set.
+     * @param {?} id ID of the item.
+     * @param {?} name Name of the item.
+     * @return {?}
+     */
+    notify(id, name) {
+        for (let /** @type {?} */ listener of this._listeners) {
+            listener(id, name);
+        }
+    }
+    /**
+     * Listen for future changes to item selection.
+     * @param {?} listener
+     * @return {?} Function used to deregister listener
+     */
+    listen(listener) {
+        this._listeners.push(listener);
+        return () => {
+            this._listeners = this._listeners.filter((registered) => {
+                return listener !== registered;
+            });
+        };
+    }
+}
+UniqueSelectionDispatcher.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+UniqueSelectionDispatcher.ctorParameters = () => [];
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @return {?}
+ */
+function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {
+    return parentDispatcher || new UniqueSelectionDispatcher();
+}
+/**
+ * \@docs-private
+ */
+const UNIQUE_SELECTION_DISPATCHER_PROVIDER = {
+    // If there is already a dispatcher available, use that. Otherwise, provide a new one.
+    provide: UniqueSelectionDispatcher,
+    deps: [[new Optional(), new SkipSelf(), UniqueSelectionDispatcher]],
+    useFactory: UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY
+};
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { UniqueSelectionDispatcher, UNIQUE_SELECTION_DISPATCHER_PROVIDER, DataSource, SelectionModel, SelectionChange, getMultipleValuesInSingleSelectionError, UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY as ɵa };
+//# sourceMappingURL=collections.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/collections.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/collections.js.map b/node_modules/@angular/cdk/esm2015/collections.js.map
new file mode 100644
index 0000000..58f13bd
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/collections.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"collections.js","sources":["../../packages/cdk/collections/data-source.js","../../packages/cdk/collections/selection.js","../../packages/cdk/collections/unique-selection-dispatcher.js","../../packages/cdk/collections/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 */\n/**\n * @abstract\n */\nexport class DataSource {\n    /**\n     * Connects a collection viewer (such as a data-table) to this data source. Note that\n     * the stream provided will be accessed during change detection and should not directly change\n     * values that are bound in template views.\n     * @abstract\n     * @param {?} collectionViewer The component that exposes a view over the data provided by this\n     *     data source.\n     * @return {?} Observable that emits a new value when the data changes.
 \n     */\n    connect(collectionViewer) { }\n    /**\n     * Disconnects a collection viewer (such as a data-table) from this data source. Can be used\n     * to perform any clean-up or tear-down operations when a view is being destroyed.\n     *\n     * @abstract\n     * @param {?} collectionViewer The component that exposes a view over the data provided by this\n     *     data source.\n     * @return {?}\n     */\n    disconnect(collectionViewer) { }\n}\n//# sourceMappingURL=data-source.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 { Subject } from 'rxjs/Subject';\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nexport class SelectionModel {\n    /**\n     * @param {?=} _isMulti\n     * @param {?=} initiallySelectedValues\n     * @param {?=} _emitChanges\n     */\n   
  constructor(_isMulti = false, initiallySelectedValues, _emitChanges = true) {\n        this._isMulti = _isMulti;\n        this._emitChanges = _emitChanges;\n        /**\n         * Currently-selected values.\n         */\n        this._selection = new Set();\n        /**\n         * Keeps track of the deselected options that haven't been emitted by the change event.\n         */\n        this._deselectedToEmit = [];\n        /**\n         * Keeps track of the selected option that haven't been emitted by the change event.\n         */\n        this._selectedToEmit = [];\n        /**\n         * Event emitted when the value has changed.\n         */\n        this.onChange = this._emitChanges ? new Subject() : null;\n        if (initiallySelectedValues) {\n            if (_isMulti) {\n                initiallySelectedValues.forEach(value => this._markSelected(value));\n            }\n            else {\n                this._markSelected(initiallySelectedValues[0]);\n            }\n  
           // Clear the array in order to avoid firing the change event for preselected values.\n            this._selectedToEmit.length = 0;\n        }\n    }\n    /**\n     * Selected value(s).\n     * @return {?}\n     */\n    get selected() {\n        if (!this._selected) {\n            this._selected = Array.from(this._selection.values());\n        }\n        return this._selected;\n    }\n    /**\n     * Selects a value or an array of values.\n     * @param {...?} values\n     * @return {?}\n     */\n    select(...values) {\n        this._verifyValueAssignment(values);\n        values.forEach(value => this._markSelected(value));\n        this._emitChangeEvent();\n    }\n    /**\n     * Deselects a value or an array of values.\n     * @param {...?} values\n     * @return {?}\n     */\n    deselect(...values) {\n        this._verifyValueAssignment(values);\n        values.forEach(value => this._unmarkSelected(value));\n        this._emitChangeEvent();\n    }\n    /**\n     * Togg
 les a value between selected and deselected.\n     * @param {?} value\n     * @return {?}\n     */\n    toggle(value) {\n        this.isSelected(value) ? this.deselect(value) : this.select(value);\n    }\n    /**\n     * Clears all of the selected values.\n     * @return {?}\n     */\n    clear() {\n        this._unmarkAll();\n        this._emitChangeEvent();\n    }\n    /**\n     * Determines whether a value is selected.\n     * @param {?} value\n     * @return {?}\n     */\n    isSelected(value) {\n        return this._selection.has(value);\n    }\n    /**\n     * Determines whether the model does not have a value.\n     * @return {?}\n     */\n    isEmpty() {\n        return this._selection.size === 0;\n    }\n    /**\n     * Determines whether the model has a value.\n     * @return {?}\n     */\n    hasValue() {\n        return !this.isEmpty();\n    }\n    /**\n     * Sorts the selected values based on a predicate function.\n     * @param {?=} predicate\n     * @return {?}\n    
  */\n    sort(predicate) {\n        if (this._isMulti && this._selected) {\n            this._selected.sort(predicate);\n        }\n    }\n    /**\n     * Emits a change event and clears the records of selected and deselected values.\n     * @return {?}\n     */\n    _emitChangeEvent() {\n        if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n            let /** @type {?} */ eventData = new SelectionChange(this._selectedToEmit, this._deselectedToEmit);\n            if (this.onChange) {\n                this.onChange.next(eventData);\n            }\n            this._deselectedToEmit = [];\n            this._selectedToEmit = [];\n        }\n        this._selected = null;\n    }\n    /**\n     * Selects a value.\n     * @param {?} value\n     * @return {?}\n     */\n    _markSelected(value) {\n        if (!this.isSelected(value)) {\n            if (!this._isMulti) {\n                this._unmarkAll();\n            }\n            this._selection.add(value);\n     
        if (this._emitChanges) {\n                this._selectedToEmit.push(value);\n            }\n        }\n    }\n    /**\n     * Deselects a value.\n     * @param {?} value\n     * @return {?}\n     */\n    _unmarkSelected(value) {\n        if (this.isSelected(value)) {\n            this._selection.delete(value);\n            if (this._emitChanges) {\n                this._deselectedToEmit.push(value);\n            }\n        }\n    }\n    /**\n     * Clears out the selected values.\n     * @return {?}\n     */\n    _unmarkAll() {\n        if (!this.isEmpty()) {\n            this._selection.forEach(value => this._unmarkSelected(value));\n        }\n    }\n    /**\n     * Verifies the value assignment and throws an error if the specified value array is\n     * including multiple values while the selection model is not supporting multiple values.\n     * @param {?} values\n     * @return {?}\n     */\n    _verifyValueAssignment(values) {\n        if (values.length > 1 && !this._is
 Multi) {\n            throw getMultipleValuesInSingleSelectionError();\n        }\n    }\n}\nfunction SelectionModel_tsickle_Closure_declarations() {\n    /**\n     * Currently-selected values.\n     * @type {?}\n     */\n    SelectionModel.prototype._selection;\n    /**\n     * Keeps track of the deselected options that haven't been emitted by the change event.\n     * @type {?}\n     */\n    SelectionModel.prototype._deselectedToEmit;\n    /**\n     * Keeps track of the selected option that haven't been emitted by the change event.\n     * @type {?}\n     */\n    SelectionModel.prototype._selectedToEmit;\n    /**\n     * Cache for the array value of the selected items.\n     * @type {?}\n     */\n    SelectionModel.prototype._selected;\n    /**\n     * Event emitted when the value has changed.\n     * @type {?}\n     */\n    SelectionModel.prototype.onChange;\n    /** @type {?} */\n    SelectionModel.prototype._isMulti;\n    /** @type {?} */\n    SelectionModel.prototype._emitChan
 ges;\n}\n/**\n * Describes an event emitted when the value of a MatSelectionModel has changed.\n * \\@docs-private\n */\nexport class SelectionChange {\n    /**\n     * @param {?=} added\n     * @param {?=} removed\n     */\n    constructor(added, removed) {\n        this.added = added;\n        this.removed = removed;\n    }\n}\nfunction SelectionChange_tsickle_Closure_declarations() {\n    /** @type {?} */\n    SelectionChange.prototype.added;\n    /** @type {?} */\n    SelectionChange.prototype.removed;\n}\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n * @return {?}\n */\nexport function getMultipleValuesInSingleSelectionError() {\n    return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\n}\n//# sourceMappingURL=selection.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 { Injectable, Optional, SkipSelf } from '@angular/core';\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nexport class UniqueSelectionDispatcher {\n    constructor() {\n        this._listeners = [];\n    }\n    /**\n     * Notify other items that selection for the given name has been set.\n     * @param {?} id ID of the item.\n     * @param {?} name Name of the item.\n     * @return {?}\n     */\n    notify(id, name) {\n        for (let /** @type {?} */ listener of this._listeners) {\n            
 listener(id, name);\n        }\n    }\n    /**\n     * Listen for future changes to item selection.\n     * @param {?} listener\n     * @return {?} Function used to deregister listener\n     */\n    listen(listener) {\n        this._listeners.push(listener);\n        return () => {\n            this._listeners = this._listeners.filter((registered) => {\n                return listener !== registered;\n            });\n        };\n    }\n}\nUniqueSelectionDispatcher.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nUniqueSelectionDispatcher.ctorParameters = () => [];\nfunction UniqueSelectionDispatcher_tsickle_Closure_declarations() {\n    /** @type {?} */\n    UniqueSelectionDispatcher.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    UniqueSelectionDispatcher.ctorParameters;\n    /** @type {?} */\n    UniqueSelectionDispatcher.prototype._listeners;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @return {?}\n */\nexport 
 function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {\n    return parentDispatcher || new UniqueSelectionDispatcher();\n}\n/**\n * \\@docs-private\n */\nexport const UNIQUE_SELECTION_DISPATCHER_PROVIDER = {\n    // If there is already a dispatcher available, use that. Otherwise, provide a new one.\n    provide: UniqueSelectionDispatcher,\n    deps: [[new Optional(), new SkipSelf(), UniqueSelectionDispatcher]],\n    useFactory: UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=unique-selection-dispatcher.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { UniqueSelectionDispatcher, UNIQUE_SELECTION_DISPATCHER_PROVIDER, DataSource, SelectionModel, SelectionChange, getMultipleValuesInSingleSelectionError } from './public-api';\nexport { UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY as ɵa } from './unique-selection-dispatcher';\n//# sourceMappingURL=index.js.map"],"names":[],"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/esm2015/keycodes.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/keycodes.js b/node_modules/@angular/cdk/esm2015/keycodes.js
new file mode 100644
index 0000000..5e7342e
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/keycodes.js
@@ -0,0 +1,32 @@
+/**
+ * @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
+ */
+const UP_ARROW = 38;
+const DOWN_ARROW = 40;
+const RIGHT_ARROW = 39;
+const LEFT_ARROW = 37;
+const PAGE_UP = 33;
+const PAGE_DOWN = 34;
+const HOME = 36;
+const END = 35;
+const ENTER = 13;
+const SPACE = 32;
+const TAB = 9;
+const ESCAPE = 27;
+const BACKSPACE = 8;
+const DELETE = 46;
+const A = 65;
+const Z = 90;
+const ZERO = 48;
+const NINE = 91;
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW, PAGE_UP, PAGE_DOWN, HOME, END, ENTER, SPACE, TAB, ESCAPE, BACKSPACE, DELETE, A, Z, ZERO, NINE };
+//# sourceMappingURL=keycodes.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/keycodes.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/keycodes.js.map b/node_modules/@angular/cdk/esm2015/keycodes.js.map
new file mode 100644
index 0000000..c92f50a
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/keycodes.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"keycodes.js","sources":["../../packages/cdk/keycodes/keycodes.js","../../packages/cdk/keycodes/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 */\nexport const UP_ARROW = 38;\nexport const /** @type {?} */ DOWN_ARROW = 40;\nexport const /** @type {?} */ RIGHT_ARROW = 39;\nexport const /** @type {?} */ LEFT_ARROW = 37;\nexport const /** @type {?} */ PAGE_UP = 33;\nexport const /** @type {?} */ PAGE_DOWN = 34;\nexport const /** @type {?} */ HOME = 36;\nexport const /** @type {?} */ END = 35;\nexport const /** @type {?} */ ENTER = 13;\nexport const /** @type {?} */ SPACE = 32;\nexport const /** @type {?} */ TAB = 9;\nexport const /** @type {?} */ ESCAPE = 27;\nexport const /** @type {?} */ BACKSPACE = 8;\nexport const /** @type {?} */ DELETE = 46;\nexport const /** @type {?} */ A 
 = 65;\nexport const /** @type {?} */ Z = 90;\nexport const /** @type {?} */ ZERO = 48;\nexport const /** @type {?} */ NINE = 91;\n//# sourceMappingURL=keycodes.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW, PAGE_UP, PAGE_DOWN, HOME, END, ENTER, SPACE, TAB, ESCAPE, BACKSPACE, DELETE, A, Z, ZERO, NINE } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;;;AAOO,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,AAAO,MAAuB,UAAU,GAAG,EAAE,CAAC;AAC9C,AAAO,MAAuB,WAAW,GAAG,EAAE,CAAC;AAC/C,AAAO,MAAuB,UAAU,GAAG,EAAE,CAAC;AAC9C,AAAO,MAAuB,OAAO,GAAG,EAAE,CAAC;AAC3C,AAAO,MAAuB,SAAS,GAAG,EAAE,CAAC;AAC7C,AAAO,MAAuB,IAAI,GAAG,EAAE,CAAC;AACxC,AAAO,MAAuB,GAAG,GAAG,EAAE,CAAC;AACvC,AAAO,MAAuB,KAAK,GAAG,EAAE,CAAC;AACzC,AAAO,MAAuB,KAAK,GAAG,EAAE,CAAC;AACzC,AAAO,MAAuB,GAAG,GAAG,CAAC,CAAC;AACtC,AAAO,MAAuB,MAAM,GAAG,EAAE,CAAC;AAC1C,AAAO,MAAuB,SAAS,GAAG,CAAC,CAAC;AAC5C,AAAO,MAAuB,MAAM,GAAG,EAAE,CAAC;AAC1C,AAAO,MAAuB,CAAC,GAAG
 ,EAAE,CAAC;AACrC,AAAO,MAAuB,CAAC,GAAG,EAAE,CAAC;AACrC,AAAO,MAAuB,IAAI,GAAG,EAAE,CAAC;AACxC,AAAO,MAAuB,IAAI,GAAG,EAAE,CAAC,AACxC;;ACzBA;;GAEG,AACH,AAA4K,AAC5K;;"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/layout.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/layout.js b/node_modules/@angular/cdk/esm2015/layout.js
new file mode 100644
index 0000000..20406c2
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/layout.js
@@ -0,0 +1,226 @@
+/**
+ * @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 { Injectable, NgModule, NgZone } from '@angular/core';
+import { Platform, PlatformModule } from '@angular/cdk/platform';
+import { Subject } from 'rxjs/Subject';
+import { RxChain, map, startWith, takeUntil } from '@angular/cdk/rxjs';
+import { coerceArray } from '@angular/cdk/coercion';
+import { combineLatest } from 'rxjs/observable/combineLatest';
+import { fromEventPattern } from 'rxjs/observable/fromEventPattern';
+
+/**
+ * Global registry for all dynamically-created, injected style tags.
+ */
+const styleElementForWebkitCompatibility = new Map();
+/**
+ * A utility for calling matchMedia queries.
+ */
+class MediaMatcher {
+    /**
+     * @param {?} platform
+     */
+    constructor(platform) {
+        this.platform = platform;
+        this._matchMedia = this.platform.isBrowser ?
+            // matchMedia is bound to the window scope intentionally as it is an illegal invocation to
+            // call it from a different scope.
+            window.matchMedia.bind(window) :
+            noopMatchMedia;
+    }
+    /**
+     * Confirms the layout engine will trigger for the selector query provided and returns the
+     * MediaQueryList for the query provided.
+     * @param {?} query
+     * @return {?}
+     */
+    matchMedia(query) {
+        if (this.platform.WEBKIT) {
+            createEmptyStyleRule(query);
+        }
+        return this._matchMedia(query);
+    }
+}
+MediaMatcher.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+MediaMatcher.ctorParameters = () => [
+    { type: Platform, },
+];
+/**
+ * For Webkit engines that only trigger the MediaQueryListListener when there is at least one CSS
+ * selector for the respective media query.
+ * @param {?} query
+ * @return {?}
+ */
+function createEmptyStyleRule(query) {
+    if (!styleElementForWebkitCompatibility.has(query)) {
+        try {
+            const /** @type {?} */ style = document.createElement('style');
+            style.setAttribute('type', 'text/css');
+            if (!style.sheet) {
+                const /** @type {?} */ cssText = `@media ${query} {.fx-query-test{ }}`;
+                style.appendChild(document.createTextNode(cssText));
+            }
+            document.getElementsByTagName('head')[0].appendChild(style);
+            // Store in private global registry
+            styleElementForWebkitCompatibility.set(query, style);
+        }
+        catch (e) {
+            console.error(e);
+        }
+    }
+}
+/**
+ * No-op matchMedia replacement for non-browser platforms.
+ * @param {?} query
+ * @return {?}
+ */
+function noopMatchMedia(query) {
+    return {
+        matches: query === 'all' || query === '',
+        media: query,
+        addListener: () => { },
+        removeListener: () => { }
+    };
+}
+
+/**
+ * Utility for checking the matching state of \@media queries.
+ */
+class BreakpointObserver {
+    /**
+     * @param {?} mediaMatcher
+     * @param {?} zone
+     */
+    constructor(mediaMatcher, zone) {
+        this.mediaMatcher = mediaMatcher;
+        this.zone = zone;
+        /**
+         * A map of all media queries currently being listened for.
+         */
+        this._queries = new Map();
+        /**
+         * A subject for all other observables to takeUntil based on.
+         */
+        this._destroySubject = new Subject();
+    }
+    /**
+     * Completes the active subject, signalling to all other observables to complete.
+     * @return {?}
+     */
+    ngOnDestroy() {
+        this._destroySubject.next();
+        this._destroySubject.complete();
+    }
+    /**
+     * Whether the query currently is matched.
+     * @param {?} value
+     * @return {?}
+     */
+    isMatched(value) {
+        let /** @type {?} */ queries = coerceArray(value);
+        return queries.some(mediaQuery => this._registerQuery(mediaQuery).mql.matches);
+    }
+    /**
+     * Gets an observable of results for the given queries that will emit new results for any changes
+     * in matching of the given queries.
+     * @param {?} value
+     * @return {?}
+     */
+    observe(value) {
+        let /** @type {?} */ queries = coerceArray(value);
+        let /** @type {?} */ observables = queries.map(query => this._registerQuery(query).observable);
+        return combineLatest(observables, (a, b) => {
+            return {
+                matches: !!((a && a.matches) || (b && b.matches)),
+            };
+        });
+    }
+    /**
+     * Registers a specific query to be listened for.
+     * @param {?} query
+     * @return {?}
+     */
+    _registerQuery(query) {
+        // Only set up a new MediaQueryList if it is not already being listened for.
+        if (this._queries.has(query)) {
+            return ((this._queries.get(query)));
+        }
+        let /** @type {?} */ mql = this.mediaMatcher.matchMedia(query);
+        // Create callback for match changes and add it is as a listener.
+        let /** @type {?} */ queryObservable = RxChain.from(fromEventPattern(
+        // Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed
+        // back into the zone because matchMedia is only included in Zone.js by loading the
+        // webapis-media-query.js file alongside the zone.js file.  Additionally, some browsers do not
+        // have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js
+        // patches it.
+        (listener) => {
+            mql.addListener((e) => this.zone.run(() => listener(e)));
+        }, (listener) => {
+            mql.removeListener((e) => this.zone.run(() => listener(e)));
+        }))
+            .call(takeUntil, this._destroySubject)
+            .call(startWith, mql)
+            .call(map, (nextMql) => ({ matches: nextMql.matches }))
+            .result();
+        // Add the MediaQueryList to the set of queries.
+        let /** @type {?} */ output = { observable: queryObservable, mql: mql };
+        this._queries.set(query, output);
+        return output;
+    }
+}
+BreakpointObserver.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+BreakpointObserver.ctorParameters = () => [
+    { type: MediaMatcher, },
+    { type: NgZone, },
+];
+
+// PascalCase is being used as Breakpoints is used like an enum.
+// tslint:disable-next-line:variable-name
+const Breakpoints = {
+    Handset: '(max-width: 599px) and (orientation: portrait), ' +
+        '(max-width: 959px) and (orientation: landscape)',
+    Tablet: '(min-width: 600px) and (max-width: 839px) and (orientation: portrait), ' +
+        '(min-width: 960px) and (max-width: 1279px) and (orientation: landscape)',
+    Web: '(min-width: 840px) and (orientation: portrait), ' +
+        '(min-width: 1280px) and (orientation: landscape)',
+    HandsetPortrait: '(max-width: 599px) and (orientation: portrait)',
+    TabletPortrait: '(min-width: 600px) and (max-width: 839px) and (orientation: portrait)',
+    WebPortrait: '(min-width: 840px) and (orientation: portrait)',
+    HandsetLandscape: '(max-width: 959px) and (orientation: landscape)',
+    TabletLandscape: '(min-width: 960px) and (max-width: 1279px) and (orientation: landscape)',
+    WebLandscape: '(min-width: 1280px) and (orientation: landscape)',
+};
+
+class LayoutModule {
+}
+LayoutModule.decorators = [
+    { type: NgModule, args: [{
+                providers: [BreakpointObserver, MediaMatcher],
+                imports: [PlatformModule],
+            },] },
+];
+/**
+ * @nocollapse
+ */
+LayoutModule.ctorParameters = () => [];
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { LayoutModule, BreakpointObserver, Breakpoints, MediaMatcher };
+//# sourceMappingURL=layout.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/layout.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/layout.js.map b/node_modules/@angular/cdk/esm2015/layout.js.map
new file mode 100644
index 0000000..e4bd1f0
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/layout.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"layout.js","sources":["../../packages/cdk/layout/media-matcher.js","../../packages/cdk/layout/breakpoints-observer.js","../../packages/cdk/layout/breakpoints.js","../../packages/cdk/layout/public-api.js","../../packages/cdk/layout/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 } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\n/**\n * Global registry for all dynamically-created, injected style tags.\n */\nconst styleElementForWebkitCompatibility = new Map();\n/**\n * A utility for calling matchMedia queries.\n */\nexport class MediaMatcher {\n    /**\n     * @param {?} platform\n     */\n    constructor(platform) {\n        this.platform = platform;\n        this._matchMedia = this.platform.isBrowser ?\n            // matchMedia
  is bound to the window scope intentionally as it is an illegal invocation to\n            // call it from a different scope.\n            window.matchMedia.bind(window) :\n            noopMatchMedia;\n    }\n    /**\n     * Confirms the layout engine will trigger for the selector query provided and returns the\n     * MediaQueryList for the query provided.\n     * @param {?} query\n     * @return {?}\n     */\n    matchMedia(query) {\n        if (this.platform.WEBKIT) {\n            createEmptyStyleRule(query);\n        }\n        return this._matchMedia(query);\n    }\n}\nMediaMatcher.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nMediaMatcher.ctorParameters = () => [\n    { type: Platform, },\n];\nfunction MediaMatcher_tsickle_Closure_declarations() {\n    /** @type {?} */\n    MediaMatcher.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    MediaMatcher.ctorParameters;\n    /**\n     * The internal matchMedia method to return back a
  MediaQueryList like object.\n     * @type {?}\n     */\n    MediaMatcher.prototype._matchMedia;\n    /** @type {?} */\n    MediaMatcher.prototype.platform;\n}\n/**\n * For Webkit engines that only trigger the MediaQueryListListener when there is at least one CSS\n * selector for the respective media query.\n * @param {?} query\n * @return {?}\n */\nfunction createEmptyStyleRule(query) {\n    if (!styleElementForWebkitCompatibility.has(query)) {\n        try {\n            const /** @type {?} */ style = document.createElement('style');\n            style.setAttribute('type', 'text/css');\n            if (!style.sheet) {\n                const /** @type {?} */ cssText = `@media ${query} {.fx-query-test{ }}`;\n                style.appendChild(document.createTextNode(cssText));\n            }\n            document.getElementsByTagName('head')[0].appendChild(style);\n            // Store in private global registry\n            styleElementForWebkitCompatibility.set(query, style);\n    
     }\n        catch (e) {\n            console.error(e);\n        }\n    }\n}\n/**\n * No-op matchMedia replacement for non-browser platforms.\n * @param {?} query\n * @return {?}\n */\nfunction noopMatchMedia(query) {\n    return {\n        matches: query === 'all' || query === '',\n        media: query,\n        addListener: () => { },\n        removeListener: () => { }\n    };\n}\n//# sourceMappingURL=media-matcher.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 { Injectable, NgZone } from '@angular/core';\nimport { MediaMatcher } from './media-matcher';\nimport { Subject } from 'rxjs/Subject';\nimport { RxChain, map, startWith, takeUntil } from '@angular/cdk/rxjs';\nimport { coerceArray } from '@angular/cdk/coercion';\nimport { combineLatest } from 'rxjs/observable/combineLatest';\nimport { fromEventPat
 tern } from 'rxjs/observable/fromEventPattern';\n/**\n * Utility for checking the matching state of \\@media queries.\n */\nexport class BreakpointObserver {\n    /**\n     * @param {?} mediaMatcher\n     * @param {?} zone\n     */\n    constructor(mediaMatcher, zone) {\n        this.mediaMatcher = mediaMatcher;\n        this.zone = zone;\n        /**\n         * A map of all media queries currently being listened for.\n         */\n        this._queries = new Map();\n        /**\n         * A subject for all other observables to takeUntil based on.\n         */\n        this._destroySubject = new Subject();\n    }\n    /**\n     * Completes the active subject, signalling to all other observables to complete.\n     * @return {?}\n     */\n    ngOnDestroy() {\n        this._destroySubject.next();\n        this._destroySubject.complete();\n    }\n    /**\n     * Whether the query currently is matched.\n     * @param {?} value\n     * @return {?}\n     */\n    isMatched(value) {\n     
    let /** @type {?} */ queries = coerceArray(value);\n        return queries.some(mediaQuery => this._registerQuery(mediaQuery).mql.matches);\n    }\n    /**\n     * Gets an observable of results for the given queries that will emit new results for any changes\n     * in matching of the given queries.\n     * @param {?} value\n     * @return {?}\n     */\n    observe(value) {\n        let /** @type {?} */ queries = coerceArray(value);\n        let /** @type {?} */ observables = queries.map(query => this._registerQuery(query).observable);\n        return combineLatest(observables, (a, b) => {\n            return {\n                matches: !!((a && a.matches) || (b && b.matches)),\n            };\n        });\n    }\n    /**\n     * Registers a specific query to be listened for.\n     * @param {?} query\n     * @return {?}\n     */\n    _registerQuery(query) {\n        // Only set up a new MediaQueryList if it is not already being listened for.\n        if (this._queries.has(query))
  {\n            return ((this._queries.get(query)));\n        }\n        let /** @type {?} */ mql = this.mediaMatcher.matchMedia(query);\n        // Create callback for match changes and add it is as a listener.\n        let /** @type {?} */ queryObservable = RxChain.from(fromEventPattern(\n        // Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed\n        // back into the zone because matchMedia is only included in Zone.js by loading the\n        // webapis-media-query.js file alongside the zone.js file.  Additionally, some browsers do not\n        // have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js\n        // patches it.\n        (listener) => {\n            mql.addListener((e) => this.zone.run(() => listener(e)));\n        }, (listener) => {\n            mql.removeListener((e) => this.zone.run(() => listener(e)));\n        }))\n            .call(takeUntil, this._destroySubject)\n            .ca
 ll(startWith, mql)\n            .call(map, (nextMql) => ({ matches: nextMql.matches }))\n            .result();\n        // Add the MediaQueryList to the set of queries.\n        let /** @type {?} */ output = { observable: queryObservable, mql: mql };\n        this._queries.set(query, output);\n        return output;\n    }\n}\nBreakpointObserver.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nBreakpointObserver.ctorParameters = () => [\n    { type: MediaMatcher, },\n    { type: NgZone, },\n];\nfunction BreakpointObserver_tsickle_Closure_declarations() {\n    /** @type {?} */\n    BreakpointObserver.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    BreakpointObserver.ctorParameters;\n    /**\n     * A map of all media queries currently being listened for.\n     * @type {?}\n     */\n    BreakpointObserver.prototype._queries;\n    /**\n     * A subject for all other observables to takeUntil based on.\n     * @type {?}\n     */\n    Brea
 kpointObserver.prototype._destroySubject;\n    /** @type {?} */\n    BreakpointObserver.prototype.mediaMatcher;\n    /** @type {?} */\n    BreakpointObserver.prototype.zone;\n}\n//# sourceMappingURL=breakpoints-observer.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 */\n// PascalCase is being used as Breakpoints is used like an enum.\n// tslint:disable-next-line:variable-name\nexport const /** @type {?} */ Breakpoints = {\n    Handset: '(max-width: 599px) and (orientation: portrait), ' +\n        '(max-width: 959px) and (orientation: landscape)',\n    Tablet: '(min-width: 600px) and (max-width: 839px) and (orientation: portrait), ' +\n        '(min-width: 960px) and (max-width: 1279px) and (orientation: landscape)',\n    Web: '(min-width: 840px) and (orientation: portrait), ' +\n        '(min-width: 1280px) and (orien
 tation: landscape)',\n    HandsetPortrait: '(max-width: 599px) and (orientation: portrait)',\n    TabletPortrait: '(min-width: 600px) and (max-width: 839px) and (orientation: portrait)',\n    WebPortrait: '(min-width: 840px) and (orientation: portrait)',\n    HandsetLandscape: '(max-width: 959px) and (orientation: landscape)',\n    TabletLandscape: '(min-width: 960px) and (max-width: 1279px) and (orientation: landscape)',\n    WebLandscape: '(min-width: 1280px) and (orientation: landscape)',\n};\n//# sourceMappingURL=breakpoints.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 { PlatformModule } from '@angular/cdk/platform';\nimport { BreakpointObserver } from './breakpoints-observer';\nimport { MediaMatcher } from './media-matcher';\nexport class LayoutModule {\n}\n
 LayoutModule.decorators = [\n    { type: NgModule, args: [{\n                providers: [BreakpointObserver, MediaMatcher],\n                imports: [PlatformModule],\n            },] },\n];\n/**\n * @nocollapse\n */\nLayoutModule.ctorParameters = () => [];\nfunction LayoutModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    LayoutModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    LayoutModule.ctorParameters;\n}\nexport { BreakpointObserver } from './breakpoints-observer';\nexport { Breakpoints } from './breakpoints';\nexport { MediaMatcher } from './media-matcher';\n//# sourceMappingURL=public-api.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { LayoutModule, BreakpointObserver, Breakpoints, MediaMatcher } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"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/esm2015/observers.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/observers.js b/node_modules/@angular/cdk/esm2015/observers.js
new file mode 100644
index 0000000..5635b2f
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/observers.js
@@ -0,0 +1,129 @@
+/**
+ * @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, EventEmitter, Injectable, Input, NgModule, NgZone, Output } from '@angular/core';
+import { Subject } from 'rxjs/Subject';
+import { RxChain, debounceTime } from '@angular/cdk/rxjs';
+
+/**
+ * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.
+ * \@docs-private
+ */
+class MatMutationObserverFactory {
+    /**
+     * @param {?} callback
+     * @return {?}
+     */
+    create(callback) {
+        return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);
+    }
+}
+MatMutationObserverFactory.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+MatMutationObserverFactory.ctorParameters = () => [];
+/**
+ * Directive that triggers a callback whenever the content of
+ * its associated element has changed.
+ */
+class ObserveContent {
+    /**
+     * @param {?} _mutationObserverFactory
+     * @param {?} _elementRef
+     * @param {?} _ngZone
+     */
+    constructor(_mutationObserverFactory, _elementRef, _ngZone) {
+        this._mutationObserverFactory = _mutationObserverFactory;
+        this._elementRef = _elementRef;
+        this._ngZone = _ngZone;
+        /**
+         * Event emitted for each change in the element's content.
+         */
+        this.event = new EventEmitter();
+        /**
+         * Used for debouncing the emitted values to the observeContent event.
+         */
+        this._debouncer = new Subject();
+    }
+    /**
+     * @return {?}
+     */
+    ngAfterContentInit() {
+        if (this.debounce > 0) {
+            this._ngZone.runOutsideAngular(() => {
+                RxChain.from(this._debouncer)
+                    .call(debounceTime, this.debounce)
+                    .subscribe((mutations) => this.event.emit(mutations));
+            });
+        }
+        else {
+            this._debouncer.subscribe(mutations => this.event.emit(mutations));
+        }
+        this._observer = this._ngZone.runOutsideAngular(() => {
+            return this._mutationObserverFactory.create((mutations) => {
+                this._debouncer.next(mutations);
+            });
+        });
+        if (this._observer) {
+            this._observer.observe(this._elementRef.nativeElement, {
+                characterData: true,
+                childList: true,
+                subtree: true
+            });
+        }
+    }
+    /**
+     * @return {?}
+     */
+    ngOnDestroy() {
+        if (this._observer) {
+            this._observer.disconnect();
+        }
+        this._debouncer.complete();
+    }
+}
+ObserveContent.decorators = [
+    { type: Directive, args: [{
+                selector: '[cdkObserveContent]',
+                exportAs: 'cdkObserveContent',
+            },] },
+];
+/**
+ * @nocollapse
+ */
+ObserveContent.ctorParameters = () => [
+    { type: MatMutationObserverFactory, },
+    { type: ElementRef, },
+    { type: NgZone, },
+];
+ObserveContent.propDecorators = {
+    'event': [{ type: Output, args: ['cdkObserveContent',] },],
+    'debounce': [{ type: Input },],
+};
+class ObserversModule {
+}
+ObserversModule.decorators = [
+    { type: NgModule, args: [{
+                exports: [ObserveContent],
+                declarations: [ObserveContent],
+                providers: [MatMutationObserverFactory]
+            },] },
+];
+/**
+ * @nocollapse
+ */
+ObserversModule.ctorParameters = () => [];
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { MatMutationObserverFactory, ObserveContent, ObserversModule };
+//# sourceMappingURL=observers.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/observers.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/observers.js.map b/node_modules/@angular/cdk/esm2015/observers.js.map
new file mode 100644
index 0000000..29aad32
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/observers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"observers.js","sources":["../../packages/cdk/observers/observe-content.js","../../packages/cdk/observers/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 { Directive, ElementRef, NgModule, Output, Input, EventEmitter, Injectable, NgZone, } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { RxChain, debounceTime } from '@angular/cdk/rxjs';\n/**\n * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.\n * \\@docs-private\n */\nexport class MatMutationObserverFactory {\n    /**\n     * @param {?} callback\n     * @return {?}\n     */\n    create(callback) {\n        return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);\n    }\n}\nMatMutationObserverFactory.decorators = [\n    { typ
 e: Injectable },\n];\n/**\n * @nocollapse\n */\nMatMutationObserverFactory.ctorParameters = () => [];\nfunction MatMutationObserverFactory_tsickle_Closure_declarations() {\n    /** @type {?} */\n    MatMutationObserverFactory.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    MatMutationObserverFactory.ctorParameters;\n}\n/**\n * Directive that triggers a callback whenever the content of\n * its associated element has changed.\n */\nexport class ObserveContent {\n    /**\n     * @param {?} _mutationObserverFactory\n     * @param {?} _elementRef\n     * @param {?} _ngZone\n     */\n    constructor(_mutationObserverFactory, _elementRef, _ngZone) {\n        this._mutationObserverFactory = _mutationObserverFactory;\n        this._elementRef = _elementRef;\n        this._ngZone = _ngZone;\n        /**\n         * Event emitted for each change in the element's content.\n         */\n        this.event = new EventEmitter();\n        /**\n         * Used for debouncing
  the emitted values to the observeContent event.\n         */\n        this._debouncer = new Subject();\n    }\n    /**\n     * @return {?}\n     */\n    ngAfterContentInit() {\n        if (this.debounce > 0) {\n            this._ngZone.runOutsideAngular(() => {\n                RxChain.from(this._debouncer)\n                    .call(debounceTime, this.debounce)\n                    .subscribe((mutations) => this.event.emit(mutations));\n            });\n        }\n        else {\n            this._debouncer.subscribe(mutations => this.event.emit(mutations));\n        }\n        this._observer = this._ngZone.runOutsideAngular(() => {\n            return this._mutationObserverFactory.create((mutations) => {\n                this._debouncer.next(mutations);\n            });\n        });\n        if (this._observer) {\n            this._observer.observe(this._elementRef.nativeElement, {\n                characterData: true,\n                childList: true,\n                subtree: t
 rue\n            });\n        }\n    }\n    /**\n     * @return {?}\n     */\n    ngOnDestroy() {\n        if (this._observer) {\n            this._observer.disconnect();\n        }\n        this._debouncer.complete();\n    }\n}\nObserveContent.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdkObserveContent]',\n                exportAs: 'cdkObserveContent',\n            },] },\n];\n/**\n * @nocollapse\n */\nObserveContent.ctorParameters = () => [\n    { type: MatMutationObserverFactory, },\n    { type: ElementRef, },\n    { type: NgZone, },\n];\nObserveContent.propDecorators = {\n    'event': [{ type: Output, args: ['cdkObserveContent',] },],\n    'debounce': [{ type: Input },],\n};\nfunction ObserveContent_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ObserveContent.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ObserveContent.ctorParameters;\n    /** @type {?} */\n    ObserveContent.propDecorators;\n    /** @ty
 pe {?} */\n    ObserveContent.prototype._observer;\n    /**\n     * Event emitted for each change in the element's content.\n     * @type {?}\n     */\n    ObserveContent.prototype.event;\n    /**\n     * Used for debouncing the emitted values to the observeContent event.\n     * @type {?}\n     */\n    ObserveContent.prototype._debouncer;\n    /**\n     * Debounce interval for emitting the changes.\n     * @type {?}\n     */\n    ObserveContent.prototype.debounce;\n    /** @type {?} */\n    ObserveContent.prototype._mutationObserverFactory;\n    /** @type {?} */\n    ObserveContent.prototype._elementRef;\n    /** @type {?} */\n    ObserveContent.prototype._ngZone;\n}\nexport class ObserversModule {\n}\nObserversModule.decorators = [\n    { type: NgModule, args: [{\n                exports: [ObserveContent],\n                declarations: [ObserveContent],\n                providers: [MatMutationObserverFactory]\n            },] },\n];\n/**\n * @nocollapse\n */\nObserversModule.ctor
 Parameters = () => [];\nfunction ObserversModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ObserversModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ObserversModule.ctorParameters;\n}\n//# sourceMappingURL=observe-content.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { MatMutationObserverFactory, ObserveContent, ObserversModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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"}
\ No newline at end of file