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

[01/51] [partial] nifi-fds git commit: update gh-pages [Forced Update!]

Repository: nifi-fds
Updated Branches:
  refs/heads/gh-pages a4b7aa828 -> 4a3262084 (forced update)


http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/table.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/table.es5.js.map b/node_modules/@angular/cdk/esm5/table.es5.js.map
new file mode 100644
index 0000000..d946f0f
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/table.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"table.es5.js","sources":["../../packages/cdk/esm5/table/row.js","../../packages/cdk/esm5/table/cell.js","../../packages/cdk/esm5/table/table-errors.js","../../packages/cdk/esm5/table/table.js","../../packages/cdk/esm5/table/table-module.js","../../packages/cdk/esm5/table/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 * as tslib_1 from \"tslib\";\nimport { ChangeDetectionStrategy, Component, Directive, IterableDiffers, TemplateRef, ViewContainerRef, ViewEncapsulation, } from '@angular/core';\n/**\n * The row template that can be used by the mat-table. Should not be used outside of the\n * material library.\n */\nexport var CDK_ROW_TEMPLATE = \"<ng-container cdkCellOutlet></ng-container>\";\n/**\n * Base class for the CdkHeaderRowDef and CdkRowDef that handles checkin
 g their columns inputs\n * for changes and notifying the table.\n * @abstract\n */\nvar BaseRowDef = (function () {\n    /**\n     * @param {?} template\n     * @param {?} _differs\n     */\n    function BaseRowDef(template, _differs) {\n        this.template = template;\n        this._differs = _differs;\n    }\n    /**\n     * @param {?} changes\n     * @return {?}\n     */\n    BaseRowDef.prototype.ngOnChanges = function (changes) {\n        // Create a new columns differ if one does not yet exist. Initialize it based on initial value\n        // of the columns property or an empty array if none is provided.\n        var /** @type {?} */ columns = changes['columns'].currentValue || [];\n        if (!this._columnsDiffer) {\n            this._columnsDiffer = this._differs.find(columns).create();\n            this._columnsDiffer.diff(columns);\n        }\n    };\n    /**\n     * Returns the difference between the current columns and the columns from the last diff, or null\n     * if
  there is no difference.\n     * @return {?}\n     */\n    BaseRowDef.prototype.getColumnsDiff = function () {\n        return this._columnsDiffer.diff(this.columns);\n    };\n    return BaseRowDef;\n}());\nexport { BaseRowDef };\nfunction BaseRowDef_tsickle_Closure_declarations() {\n    /**\n     * The columns to be displayed on this row.\n     * @type {?}\n     */\n    BaseRowDef.prototype.columns;\n    /**\n     * Differ used to check if any changes were made to the columns.\n     * @type {?}\n     */\n    BaseRowDef.prototype._columnsDiffer;\n    /** @type {?} */\n    BaseRowDef.prototype.template;\n    /** @type {?} */\n    BaseRowDef.prototype._differs;\n}\n/**\n * Header row definition for the CDK table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nvar CdkHeaderRowDef = (function (_super) {\n    tslib_1.__extends(CdkHeaderRowDef, _super);\n    /**\n     * @param {?} template\n     * @param {?} _differs\n     */\n    
 function CdkHeaderRowDef(template, _differs) {\n        return _super.call(this, template, _differs) || this;\n    }\n    CdkHeaderRowDef.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkHeaderRowDef]',\n                    inputs: ['columns: cdkHeaderRowDef'],\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkHeaderRowDef.ctorParameters = function () { return [\n        { type: TemplateRef, },\n        { type: IterableDiffers, },\n    ]; };\n    return CdkHeaderRowDef;\n}(BaseRowDef));\nexport { CdkHeaderRowDef };\nfunction CdkHeaderRowDef_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkHeaderRowDef.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkHeaderRowDef.ctorParameters;\n}\n/**\n * Data row definition for the CDK table.\n * Captures the header row's template and other row properties such as the columns to display and\n * a when predicate that describes when this row sh
 ould be used.\n */\nvar CdkRowDef = (function (_super) {\n    tslib_1.__extends(CdkRowDef, _super);\n    /**\n     * @param {?} template\n     * @param {?} _differs\n     */\n    function CdkRowDef(template, _differs) {\n        return _super.call(this, template, _differs) || this;\n    }\n    CdkRowDef.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkRowDef]',\n                    inputs: ['columns: cdkRowDefColumns', 'when: cdkRowDefWhen'],\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkRowDef.ctorParameters = function () { return [\n        { type: TemplateRef, },\n        { type: IterableDiffers, },\n    ]; };\n    return CdkRowDef;\n}(BaseRowDef));\nexport { CdkRowDef };\nfunction CdkRowDef_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkRowDef.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkRowDef.ctorParameters;\n    /**\n     * Function that should return true if 
 this row template should be used for the provided row data\n     * and index. If left undefined, this row will be considered the default row template to use when\n     * no other when functions return true for the data.\n     * For every row, there must be at least one when function that passes or an undefined to default.\n     * @type {?}\n     */\n    CdkRowDef.prototype.when;\n}\n/**\n * Outlet for rendering cells inside of a row or header row.\n * \\@docs-private\n */\nvar CdkCellOutlet = (function () {\n    /**\n     * @param {?} _viewContainer\n     */\n    function CdkCellOutlet(_viewContainer) {\n        this._viewContainer = _viewContainer;\n        CdkCellOutlet.mostRecentCellOutlet = this;\n    }\n    CdkCellOutlet.decorators = [\n        { type: Directive, args: [{ selector: '[cdkCellOutlet]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkCellOutlet.ctorParameters = function () { return [\n        { type: ViewContainerRef, },\n    ]; };\n    return CdkCellO
 utlet;\n}());\nexport { CdkCellOutlet };\nfunction CdkCellOutlet_tsickle_Closure_declarations() {\n    /**\n     * Static property containing the latest constructed instance of this class.\n     * Used by the CDK table when each CdkHeaderRow and CdkRow component is created using\n     * createEmbeddedView. After one of these components are created, this property will provide\n     * a handle to provide that component's cells and context. After init, the CdkCellOutlet will\n     * construct the cells with the provided context.\n     * @type {?}\n     */\n    CdkCellOutlet.mostRecentCellOutlet;\n    /** @type {?} */\n    CdkCellOutlet.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkCellOutlet.ctorParameters;\n    /**\n     * The ordered list of cells to render within this outlet's view container\n     * @type {?}\n     */\n    CdkCellOutlet.prototype.cells;\n    /**\n     * The data context to be provided to each cell\n     * @type {?}\n     */\n    CdkCell
 Outlet.prototype.context;\n    /** @type {?} */\n    CdkCellOutlet.prototype._viewContainer;\n}\n/**\n * Header template container that contains the cell outlet. Adds the right class and role.\n */\nvar CdkHeaderRow = (function () {\n    function CdkHeaderRow() {\n    }\n    CdkHeaderRow.decorators = [\n        { type: Component, args: [{selector: 'cdk-header-row',\n                    template: CDK_ROW_TEMPLATE,\n                    host: {\n                        'class': 'cdk-header-row',\n                        'role': 'row',\n                    },\n                    changeDetection: ChangeDetectionStrategy.OnPush,\n                    encapsulation: ViewEncapsulation.None,\n                    preserveWhitespaces: false,\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkHeaderRow.ctorParameters = function () { return []; };\n    return CdkHeaderRow;\n}());\nexport { CdkHeaderRow };\nfunction CdkHeaderRow_tsickle_Closure_declarations() {\n    /**
  @type {?} */\n    CdkHeaderRow.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkHeaderRow.ctorParameters;\n}\n/**\n * Data row template container that contains the cell outlet. Adds the right class and role.\n */\nvar CdkRow = (function () {\n    function CdkRow() {\n    }\n    CdkRow.decorators = [\n        { type: Component, args: [{selector: 'cdk-row',\n                    template: CDK_ROW_TEMPLATE,\n                    host: {\n                        'class': 'cdk-row',\n                        'role': 'row',\n                    },\n                    changeDetection: ChangeDetectionStrategy.OnPush,\n                    encapsulation: ViewEncapsulation.None,\n                    preserveWhitespaces: false,\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkRow.ctorParameters = function () { return []; };\n    return CdkRow;\n}());\nexport { CdkRow };\nfunction CdkRow_tsickle_Closure_declarations() {\n    /** @type {?} */
 \n    CdkRow.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkRow.ctorParameters;\n}\n//# sourceMappingURL=row.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 { ContentChild, Directive, ElementRef, Input, Renderer2, TemplateRef } from '@angular/core';\n/**\n * Cell definition for a CDK table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nvar CdkCellDef = (function () {\n    /**\n     * @param {?} template\n     */\n    function CdkCellDef(template) {\n        this.template = template;\n    }\n    CdkCellDef.decorators = [\n        { type: Directive, args: [{ selector: '[cdkCellDef]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkCellDef.ctorParameters = function () { return [\n        { type: TemplateRef, },\n    ]; }
 ;\n    return CdkCellDef;\n}());\nexport { CdkCellDef };\nfunction CdkCellDef_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkCellDef.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkCellDef.ctorParameters;\n    /** @type {?} */\n    CdkCellDef.prototype.template;\n}\n/**\n * Header cell definition for a CDK table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nvar CdkHeaderCellDef = (function () {\n    /**\n     * @param {?} template\n     */\n    function CdkHeaderCellDef(template) {\n        this.template = template;\n    }\n    CdkHeaderCellDef.decorators = [\n        { type: Directive, args: [{ selector: '[cdkHeaderCellDef]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkHeaderCellDef.ctorParameters = function () { return [\n        { type: TemplateRef, },\n    ]; };\n    return CdkHeaderCellDef;\n}());\nexport { CdkHeaderCellDef };\nfunction CdkHeaderCellDef_tsickle_Clos
 ure_declarations() {\n    /** @type {?} */\n    CdkHeaderCellDef.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkHeaderCellDef.ctorParameters;\n    /** @type {?} */\n    CdkHeaderCellDef.prototype.template;\n}\n/**\n * Column definition for the CDK table.\n * Defines a set of cells available for a table column.\n */\nvar CdkColumnDef = (function () {\n    function CdkColumnDef() {\n    }\n    Object.defineProperty(CdkColumnDef.prototype, \"name\", {\n        /**\n         * Unique name for this column.\n         * @return {?}\n         */\n        get: function () { return this._name; },\n        /**\n         * @param {?} name\n         * @return {?}\n         */\n        set: function (name) {\n            this._name = name;\n            this.cssClassFriendlyName = name.replace(/[^a-z0-9_-]/ig, '-');\n        },\n        enumerable: true,\n        configurable: true\n    });\n    CdkColumnDef.decorators = [\n        { type: Directive, args: [{ selector:
  '[cdkColumnDef]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkColumnDef.ctorParameters = function () { return []; };\n    CdkColumnDef.propDecorators = {\n        'name': [{ type: Input, args: ['cdkColumnDef',] },],\n        'cell': [{ type: ContentChild, args: [CdkCellDef,] },],\n        'headerCell': [{ type: ContentChild, args: [CdkHeaderCellDef,] },],\n    };\n    return CdkColumnDef;\n}());\nexport { CdkColumnDef };\nfunction CdkColumnDef_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkColumnDef.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkColumnDef.ctorParameters;\n    /** @type {?} */\n    CdkColumnDef.propDecorators;\n    /** @type {?} */\n    CdkColumnDef.prototype._name;\n    /**\n     * \\@docs-private\n     * @type {?}\n     */\n    CdkColumnDef.prototype.cell;\n    /**\n     * \\@docs-private\n     * @type {?}\n     */\n    CdkColumnDef.prototype.headerCell;\n    /**\n     * Transformed version of the column
  name that can be used as part of a CSS classname. Excludes\n     * all non-alphanumeric characters and the special characters '-' and '_'. Any characters that\n     * do not match are replaced by the '-' character.\n     * @type {?}\n     */\n    CdkColumnDef.prototype.cssClassFriendlyName;\n}\n/**\n * Header cell template container that adds the right classes and role.\n */\nvar CdkHeaderCell = (function () {\n    /**\n     * @param {?} columnDef\n     * @param {?} elementRef\n     * @param {?} renderer\n     */\n    function CdkHeaderCell(columnDef, elementRef, renderer) {\n        renderer.addClass(elementRef.nativeElement, \"cdk-column-\" + columnDef.cssClassFriendlyName);\n    }\n    CdkHeaderCell.decorators = [\n        { type: Directive, args: [{\n                    selector: 'cdk-header-cell',\n                    host: {\n                        'class': 'cdk-header-cell',\n                        'role': 'columnheader',\n                    },\n                },] },\n  
   ];\n    /**\n     * @nocollapse\n     */\n    CdkHeaderCell.ctorParameters = function () { return [\n        { type: CdkColumnDef, },\n        { type: ElementRef, },\n        { type: Renderer2, },\n    ]; };\n    return CdkHeaderCell;\n}());\nexport { CdkHeaderCell };\nfunction CdkHeaderCell_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkHeaderCell.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkHeaderCell.ctorParameters;\n}\n/**\n * Cell template container that adds the right classes and role.\n */\nvar CdkCell = (function () {\n    /**\n     * @param {?} columnDef\n     * @param {?} elementRef\n     * @param {?} renderer\n     */\n    function CdkCell(columnDef, elementRef, renderer) {\n        renderer.addClass(elementRef.nativeElement, \"cdk-column-\" + columnDef.cssClassFriendlyName);\n    }\n    CdkCell.decorators = [\n        { type: Directive, args: [{\n                    selector: 'cdk-cell',\n                    host: {\n     
                    'class': 'cdk-cell',\n                        'role': 'gridcell',\n                    },\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkCell.ctorParameters = function () { return [\n        { type: CdkColumnDef, },\n        { type: ElementRef, },\n        { type: Renderer2, },\n    ]; };\n    return CdkCell;\n}());\nexport { CdkCell };\nfunction CdkCell_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkCell.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkCell.ctorParameters;\n}\n//# sourceMappingURL=cell.js.map","/**\n * Returns an error to be thrown when attempting to find an unexisting column.\n * \\@docs-private\n * @param {?} id Id whose lookup failed.\n * @return {?}\n */\nexport function getTableUnknownColumnError(id) {\n    return Error(\"cdk-table: Could not find column with id \\\"\" + id + \"\\\".\");\n}\n/**\n * Returns an error to be thrown when two column definitions have the sam
 e name.\n * \\@docs-private\n * @param {?} name\n * @return {?}\n */\nexport function getTableDuplicateColumnNameError(name) {\n    return Error(\"cdk-table: Duplicate column definition name provided: \\\"\" + name + \"\\\".\");\n}\n/**\n * Returns an error to be thrown when there are multiple rows that are missing a when function.\n * \\@docs-private\n * @return {?}\n */\nexport function getTableMultipleDefaultRowDefsError() {\n    return Error(\"cdk-table: There can only be one default row without a when predicate function.\");\n}\n/**\n * Returns an error to be thrown when there are no matching row defs for a particular set of data.\n * \\@docs-private\n * @return {?}\n */\nexport function getTableMissingMatchingRowDefError() {\n    return Error(\"cdk-table: Could not find a matching row definition for the provided row data.\");\n}\n//# sourceMappingURL=table-errors.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governe
 d by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, ElementRef, Input, isDevMode, IterableDiffers, Renderer2, ViewChild, ViewContainerRef, ViewEncapsulation, } from '@angular/core';\nimport { CdkCellOutlet, CdkHeaderRowDef, CdkRowDef } from './row';\nimport { takeUntil } from 'rxjs/operator/takeUntil';\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\nimport { Subject } from 'rxjs/Subject';\nimport { CdkColumnDef } from './cell';\nimport { getTableDuplicateColumnNameError, getTableMissingMatchingRowDefError, getTableMultipleDefaultRowDefsError, getTableUnknownColumnError } from './table-errors';\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * \\@docs-private\n */\nvar RowPlaceholder = (function () {\n    /**\n     * @param {?} viewContainer\n     */\
 n    function RowPlaceholder(viewContainer) {\n        this.viewContainer = viewContainer;\n    }\n    RowPlaceholder.decorators = [\n        { type: Directive, args: [{ selector: '[rowPlaceholder]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    RowPlaceholder.ctorParameters = function () { return [\n        { type: ViewContainerRef, },\n    ]; };\n    return RowPlaceholder;\n}());\nexport { RowPlaceholder };\nfunction RowPlaceholder_tsickle_Closure_declarations() {\n    /** @type {?} */\n    RowPlaceholder.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    RowPlaceholder.ctorParameters;\n    /** @type {?} */\n    RowPlaceholder.prototype.viewContainer;\n}\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the header.\n * \\@docs-private\n */\nvar HeaderRowPlaceholder = (function () {\n    /**\n     * @param {?} viewContainer\n     */\n    function HeaderRowPlaceholder(viewContainer) {\n        this.viewConta
 iner = viewContainer;\n    }\n    HeaderRowPlaceholder.decorators = [\n        { type: Directive, args: [{ selector: '[headerRowPlaceholder]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    HeaderRowPlaceholder.ctorParameters = function () { return [\n        { type: ViewContainerRef, },\n    ]; };\n    return HeaderRowPlaceholder;\n}());\nexport { HeaderRowPlaceholder };\nfunction HeaderRowPlaceholder_tsickle_Closure_declarations() {\n    /** @type {?} */\n    HeaderRowPlaceholder.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    HeaderRowPlaceholder.ctorParameters;\n    /** @type {?} */\n    HeaderRowPlaceholder.prototype.viewContainer;\n}\n/**\n * The table template that can be used by the mat-table. Should not be used outside of the\n * material library.\n */\nexport var CDK_TABLE_TEMPLATE = \"\\n  <ng-container headerRowPlaceholder></ng-container>\\n  <ng-container rowPlaceholder></ng-container>\";\n/**\n * A data table that connects with a data
  source to retrieve data of type `T` and renders\n * a header row and data rows. Updates the rows when new data is provided by the data source.\n */\nvar CdkTable = (function () {\n    /**\n     * @param {?} _differs\n     * @param {?} _changeDetectorRef\n     * @param {?} elementRef\n     * @param {?} renderer\n     * @param {?} role\n     */\n    function CdkTable(_differs, _changeDetectorRef, elementRef, renderer, role) {\n        this._differs = _differs;\n        this._changeDetectorRef = _changeDetectorRef;\n        /**\n         * Subject that emits when the component has been destroyed.\n         */\n        this._onDestroy = new Subject();\n        /**\n         * Latest data provided by the data source through the connect interface.\n         */\n        this._data = [];\n        /**\n         * Map of all the user's defined columns (header and data cell template) identified by name.\n         */\n        this._columnDefsByName = new Map();\n        /**\n         * Stream 
 containing the latest information on what rows are being displayed on screen.\n         * Can be used by the data source to as a heuristic of what data should be provided.\n         */\n        this.viewChange = new BehaviorSubject({ start: 0, end: Number.MAX_VALUE });\n        if (!role) {\n            renderer.setAttribute(elementRef.nativeElement, 'role', 'grid');\n        }\n    }\n    Object.defineProperty(CdkTable.prototype, \"trackBy\", {\n        /**\n         * @return {?}\n         */\n        get: function () { return this._trackByFn; },\n        /**\n         * Tracking function that will be used to check the differences in data changes. Used similarly\n         * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data\n         * relative to the function to know if a row should be added/removed/moved.\n         * Accepts a function that takes two parameters, `index` and `item`.\n         * @param {?} fn\n         * @return {?}\n    
      */\n        set: function (fn) {\n            if (isDevMode() &&\n                fn != null && typeof fn !== 'function' && (console) && (console.warn)) {\n                console.warn(\"trackBy must be a function, but received \" + JSON.stringify(fn) + \".\");\n            }\n            this._trackByFn = fn;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(CdkTable.prototype, \"dataSource\", {\n        /**\n         * Provides a stream containing the latest data array to render. Influenced by the table's\n         * stream of view window (what rows are currently on screen).\n         * @return {?}\n         */\n        get: function () { return this._dataSource; },\n        /**\n         * @param {?} dataSource\n         * @return {?}\n         */\n        set: function (dataSource) {\n            if (this._dataSource !== dataSource) {\n                this._switchDataSource(dataSource);\n            }\n        },\n       
  enumerable: true,\n        configurable: true\n    });\n    /**\n     * @return {?}\n     */\n    CdkTable.prototype.ngOnInit = function () {\n        // TODO(andrewseguin): Setup a listener for scrolling, emit the calculated view to viewChange\n        this._dataDiffer = this._differs.find([]).create(this._trackByFn);\n    };\n    /**\n     * @return {?}\n     */\n    CdkTable.prototype.ngAfterContentInit = function () {\n        var _this = this;\n        this._cacheColumnDefsByName();\n        this._columnDefs.changes.subscribe(function () { return _this._cacheColumnDefsByName(); });\n        this._renderHeaderRow();\n    };\n    /**\n     * @return {?}\n     */\n    CdkTable.prototype.ngAfterContentChecked = function () {\n        this._renderUpdatedColumns();\n        var /** @type {?} */ defaultRowDefs = this._rowDefs.filter(function (def) { return !def.when; });\n        if (defaultRowDefs.length > 1) {\n            throw getTableMultipleDefaultRowDefsError();\n        }\n  
       this._defaultRowDef = defaultRowDefs[0];\n        if (this.dataSource && !this._renderChangeSubscription) {\n            this._observeRenderChanges();\n        }\n    };\n    /**\n     * @return {?}\n     */\n    CdkTable.prototype.ngOnDestroy = function () {\n        this._rowPlaceholder.viewContainer.clear();\n        this._headerRowPlaceholder.viewContainer.clear();\n        this._onDestroy.next();\n        this._onDestroy.complete();\n        if (this.dataSource) {\n            this.dataSource.disconnect(this);\n        }\n    };\n    /**\n     * Update the map containing the content's column definitions.\n     * @return {?}\n     */\n    CdkTable.prototype._cacheColumnDefsByName = function () {\n        var _this = this;\n        this._columnDefsByName.clear();\n        this._columnDefs.forEach(function (columnDef) {\n            if (_this._columnDefsByName.has(columnDef.name)) {\n                throw getTableDuplicateColumnNameError(columnDef.name);\n            }\n    
         _this._columnDefsByName.set(columnDef.name, columnDef);\n        });\n    };\n    /**\n     * Check if the header or rows have changed what columns they want to display. If there is a diff,\n     * then re-render that section.\n     * @return {?}\n     */\n    CdkTable.prototype._renderUpdatedColumns = function () {\n        var _this = this;\n        // Re-render the rows when the row definition columns change.\n        this._rowDefs.forEach(function (def) {\n            if (!!def.getColumnsDiff()) {\n                // Reset the data to an empty array so that renderRowChanges will re-render all new rows.\n                _this._dataDiffer.diff([]);\n                _this._rowPlaceholder.viewContainer.clear();\n                _this._renderRowChanges();\n            }\n        });\n        // Re-render the header row if there is a difference in its columns.\n        if (this._headerDef.getColumnsDiff()) {\n            this._headerRowPlaceholder.viewContainer.clear();\n     
        this._renderHeaderRow();\n        }\n    };\n    /**\n     * Switch to the provided data source by resetting the data and unsubscribing from the current\n     * render change subscription if one exists. If the data source is null, interpret this by\n     * clearing the row placeholder. Otherwise start listening for new data.\n     * @param {?} dataSource\n     * @return {?}\n     */\n    CdkTable.prototype._switchDataSource = function (dataSource) {\n        this._data = [];\n        if (this.dataSource) {\n            this.dataSource.disconnect(this);\n        }\n        // Stop listening for data from the previous data source.\n        if (this._renderChangeSubscription) {\n            this._renderChangeSubscription.unsubscribe();\n            this._renderChangeSubscription = null;\n        }\n        // Remove the table's rows if there is now no data source\n        if (!dataSource) {\n            this._rowPlaceholder.viewContainer.clear();\n        }\n        this._dataSo
 urce = dataSource;\n    };\n    /**\n     * Set up a subscription for the data provided by the data source.\n     * @return {?}\n     */\n    CdkTable.prototype._observeRenderChanges = function () {\n        var _this = this;\n        this._renderChangeSubscription = takeUntil.call(this.dataSource.connect(this), this._onDestroy)\n            .subscribe(function (data) {\n            _this._data = data;\n            _this._renderRowChanges();\n        });\n    };\n    /**\n     * Create the embedded view for the header template and place it in the header row view container.\n     * @return {?}\n     */\n    CdkTable.prototype._renderHeaderRow = function () {\n        var /** @type {?} */ cells = this._getHeaderCellTemplatesForRow(this._headerDef);\n        if (!cells.length) {\n            return;\n        }\n        // TODO(andrewseguin): add some code to enforce that exactly\n        //   one CdkCellOutlet was instantiated as a result\n        //   of `createEmbeddedView`.\n       
  this._headerRowPlaceholder.viewContainer\n            .createEmbeddedView(this._headerDef.template, { cells: cells });\n        cells.forEach(function (cell) {\n            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, {});\n        });\n        this._changeDetectorRef.markForCheck();\n    };\n    /**\n     * Check for changes made in the data and render each change (row added/removed/moved).\n     * @return {?}\n     */\n    CdkTable.prototype._renderRowChanges = function () {\n        var _this = this;\n        var /** @type {?} */ changes = this._dataDiffer.diff(this._data);\n        if (!changes) {\n            return;\n        }\n        var /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;\n        changes.forEachOperation(function (item, adjustedPreviousIndex, currentIndex) {\n            if (item.previousIndex == null) {\n                _this._insertRow(_this._data[currentIndex], currentIndex);\n            }\n      
       else if (currentIndex == null) {\n                viewContainer.remove(adjustedPreviousIndex);\n            }\n            else {\n                var /** @type {?} */ view = viewContainer.get(adjustedPreviousIndex);\n                viewContainer.move(/** @type {?} */ ((view)), currentIndex);\n            }\n        });\n        this._updateRowContext();\n    };\n    /**\n     * Finds the matching row definition that should be used for this row data. If there is only\n     * one row definition, it is returned. Otherwise, find the row definition that has a when\n     * predicate that returns true with the data. If none return true, return the default row\n     * definition.\n     * @param {?} data\n     * @param {?} i\n     * @return {?}\n     */\n    CdkTable.prototype._getRowDef = function (data, i) {\n        if (this._rowDefs.length == 1) {\n            return this._rowDefs.first;\n        }\n        var /** @type {?} */ rowDef = this._rowDefs.find(function (def) { return 
 def.when && def.when(data, i); }) || this._defaultRowDef;\n        if (!rowDef) {\n            throw getTableMissingMatchingRowDefError();\n        }\n        return rowDef;\n    };\n    /**\n     * Create the embedded view for the data row template and place it in the correct index location\n     * within the data row view container.\n     * @param {?} rowData\n     * @param {?} index\n     * @return {?}\n     */\n    CdkTable.prototype._insertRow = function (rowData, index) {\n        var /** @type {?} */ row = this._getRowDef(rowData, index);\n        // Row context that will be provided to both the created embedded row view and its cells.\n        var /** @type {?} */ context = { $implicit: rowData };\n        // TODO(andrewseguin): add some code to enforce that exactly one\n        //   CdkCellOutlet was instantiated as a result  of `createEmbeddedView`.\n        this._rowPlaceholder.viewContainer.createEmbeddedView(row.template, context, index);\n        // Insert empty cells 
 if there is no data to improve rendering time.\n        var /** @type {?} */ cells = rowData ? this._getCellTemplatesForRow(row) : [];\n        cells.forEach(function (cell) {\n            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, context);\n        });\n        this._changeDetectorRef.markForCheck();\n    };\n    /**\n     * Updates the context for each row to reflect any data changes that may have caused\n     * rows to be added, removed, or moved. The view container contains the same context\n     * that was provided to each of its cells.\n     * @return {?}\n     */\n    CdkTable.prototype._updateRowContext = function () {\n        var /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;\n        for (var /** @type {?} */ index = 0, /** @type {?} */ count = viewContainer.length; index < count; index++) {\n            var /** @type {?} */ viewRef = (viewContainer.get(index));\n            viewRef.context.index = index;\n  
           viewRef.context.count = count;\n            viewRef.context.first = index === 0;\n            viewRef.context.last = index === count - 1;\n            viewRef.context.even = index % 2 === 0;\n            viewRef.context.odd = !viewRef.context.even;\n        }\n    };\n    /**\n     * Returns the cell template definitions to insert into the header\n     * as defined by its list of columns to display.\n     * @param {?} headerDef\n     * @return {?}\n     */\n    CdkTable.prototype._getHeaderCellTemplatesForRow = function (headerDef) {\n        var _this = this;\n        if (!headerDef.columns) {\n            return [];\n        }\n        return headerDef.columns.map(function (columnId) {\n            var /** @type {?} */ column = _this._columnDefsByName.get(columnId);\n            if (!column) {\n                throw getTableUnknownColumnError(columnId);\n            }\n            return column.headerCell;\n        });\n    };\n    /**\n     * Returns the cell template d
 efinitions to insert in the provided row\n     * as defined by its list of columns to display.\n     * @param {?} rowDef\n     * @return {?}\n     */\n    CdkTable.prototype._getCellTemplatesForRow = function (rowDef) {\n        var _this = this;\n        if (!rowDef.columns) {\n            return [];\n        }\n        return rowDef.columns.map(function (columnId) {\n            var /** @type {?} */ column = _this._columnDefsByName.get(columnId);\n            if (!column) {\n                throw getTableUnknownColumnError(columnId);\n            }\n            return column.cell;\n        });\n    };\n    CdkTable.decorators = [\n        { type: Component, args: [{selector: 'cdk-table',\n                    exportAs: 'cdkTable',\n                    template: CDK_TABLE_TEMPLATE,\n                    host: {\n                        'class': 'cdk-table',\n                    },\n                    encapsulation: ViewEncapsulation.None,\n                    preserveWhitespaces: fa
 lse,\n                    changeDetection: ChangeDetectionStrategy.OnPush,\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkTable.ctorParameters = function () { return [\n        { type: IterableDiffers, },\n        { type: ChangeDetectorRef, },\n        { type: ElementRef, },\n        { type: Renderer2, },\n        { type: undefined, decorators: [{ type: Attribute, args: ['role',] },] },\n    ]; };\n    CdkTable.propDecorators = {\n        'trackBy': [{ type: Input },],\n        'dataSource': [{ type: Input },],\n        '_rowPlaceholder': [{ type: ViewChild, args: [RowPlaceholder,] },],\n        '_headerRowPlaceholder': [{ type: ViewChild, args: [HeaderRowPlaceholder,] },],\n        '_columnDefs': [{ type: ContentChildren, args: [CdkColumnDef,] },],\n        '_headerDef': [{ type: ContentChild, args: [CdkHeaderRowDef,] },],\n        '_rowDefs': [{ type: ContentChildren, args: [CdkRowDef,] },],\n    };\n    return CdkTable;\n}());\nexport { CdkTable };\
 nfunction CdkTable_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkTable.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkTable.ctorParameters;\n    /** @type {?} */\n    CdkTable.propDecorators;\n    /**\n     * Subject that emits when the component has been destroyed.\n     * @type {?}\n     */\n    CdkTable.prototype._onDestroy;\n    /**\n     * Latest data provided by the data source through the connect interface.\n     * @type {?}\n     */\n    CdkTable.prototype._data;\n    /**\n     * Subscription that listens for the data provided by the data source.\n     * @type {?}\n     */\n    CdkTable.prototype._renderChangeSubscription;\n    /**\n     * Map of all the user's defined columns (header and data cell template) identified by name.\n     * @type {?}\n     */\n    CdkTable.prototype._columnDefsByName;\n    /**\n     * Differ used to find the changes in the data provided by the data source.\n     * @type {?}\n     */\n    CdkTable.prot
 otype._dataDiffer;\n    /**\n     * Stores the row definition that does not have a when predicate.\n     * @type {?}\n     */\n    CdkTable.prototype._defaultRowDef;\n    /** @type {?} */\n    CdkTable.prototype._trackByFn;\n    /** @type {?} */\n    CdkTable.prototype._dataSource;\n    /**\n     * Stream containing the latest information on what rows are being displayed on screen.\n     * Can be used by the data source to as a heuristic of what data should be provided.\n     * @type {?}\n     */\n    CdkTable.prototype.viewChange;\n    /** @type {?} */\n    CdkTable.prototype._rowPlaceholder;\n    /** @type {?} */\n    CdkTable.prototype._headerRowPlaceholder;\n    /**\n     * The column definitions provided by the user that contain what the header and cells should\n     * render for each column.\n     * @type {?}\n     */\n    CdkTable.prototype._columnDefs;\n    /**\n     * Template definition used as the header container.\n     * @type {?}\n     */\n    CdkTable.prototype._heade
 rDef;\n    /**\n     * Set of template definitions that used as the data row containers.\n     * @type {?}\n     */\n    CdkTable.prototype._rowDefs;\n    /** @type {?} */\n    CdkTable.prototype._differs;\n    /** @type {?} */\n    CdkTable.prototype._changeDetectorRef;\n}\n//# sourceMappingURL=table.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 { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { HeaderRowPlaceholder, RowPlaceholder, CdkTable } from './table';\nimport { CdkCellOutlet, CdkHeaderRow, CdkHeaderRowDef, CdkRow, CdkRowDef } from './row';\nimport { CdkColumnDef, CdkHeaderCellDef, CdkHeaderCell, CdkCell, CdkCellDef } from './cell';\nvar /** @type {?} */ EXPORTED_DECLARATIONS = [\n    CdkTable,\n    CdkRowDef,\n    CdkCellDef,\n    CdkCellOutlet,\n    CdkH
 eaderCellDef,\n    CdkColumnDef,\n    CdkCell,\n    CdkRow,\n    CdkHeaderCell,\n    CdkHeaderRow,\n    CdkHeaderRowDef,\n    RowPlaceholder,\n    HeaderRowPlaceholder,\n];\nvar CdkTableModule = (function () {\n    function CdkTableModule() {\n    }\n    CdkTableModule.decorators = [\n        { type: NgModule, args: [{\n                    imports: [CommonModule],\n                    exports: [EXPORTED_DECLARATIONS],\n                    declarations: [EXPORTED_DECLARATIONS]\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkTableModule.ctorParameters = function () { return []; };\n    return CdkTableModule;\n}());\nexport { CdkTableModule };\nfunction CdkTableModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkTableModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkTableModule.ctorParameters;\n}\n//# sourceMappingURL=table-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { DataSou
 rce, RowPlaceholder, HeaderRowPlaceholder, CDK_TABLE_TEMPLATE, CdkTable, CdkCellDef, CdkHeaderCellDef, CdkColumnDef, CdkHeaderCell, CdkCell, CDK_ROW_TEMPLATE, BaseRowDef, CdkHeaderRowDef, CdkRowDef, CdkCellOutlet, CdkHeaderRow, CdkRow, CdkTableModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["tslib_1.__extends"],"mappings":"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"}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-overlay.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-overlay.umd.js b/node_modules/@angular/cdk/bundles/cdk-overlay.umd.js
new file mode 100644
index 0000000..2cb23fb
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-overlay.umd.js
@@ -0,0 +1,2090 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/cdk/portal'), require('rxjs/Subject'), require('@angular/cdk/scrolling'), require('rxjs/Subscription'), require('@angular/cdk/bidi'), require('@angular/cdk/coercion'), require('@angular/cdk/keycodes')) :
+	typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/cdk/portal', 'rxjs/Subject', '@angular/cdk/scrolling', 'rxjs/Subscription', '@angular/cdk/bidi', '@angular/cdk/coercion', '@angular/cdk/keycodes'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.overlay = global.ng.cdk.overlay || {}),global.ng.core,global.ng.cdk.portal,global.Rx,global.ng.cdk.scrolling,global.Rx,global.ng.cdk.bidi,global.ng.cdk.coercion,global.ng.cdk.keycodes));
+}(this, (function (exports,_angular_core,_angular_cdk_portal,rxjs_Subject,_angular_cdk_scrolling,rxjs_Subscription,_angular_cdk_bidi,_angular_cdk_coercion,_angular_cdk_keycodes) { 'use strict';
+
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+/* global Reflect, Promise */
+
+var extendStatics = Object.setPrototypeOf ||
+    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+
+function __extends(d, b) {
+    extendStatics(d, b);
+    function __() { this.constructor = d; }
+    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+
+/**
+ * Scroll strategy that doesn't do anything.
+ */
+var NoopScrollStrategy = (function () {
+    function NoopScrollStrategy() {
+    }
+    /**
+     * @return {?}
+     */
+    NoopScrollStrategy.prototype.enable = function () { };
+    /**
+     * @return {?}
+     */
+    NoopScrollStrategy.prototype.disable = function () { };
+    /**
+     * @return {?}
+     */
+    NoopScrollStrategy.prototype.attach = function () { };
+    return NoopScrollStrategy;
+}());
+
+/**
+ * OverlayConfig captures the initial configuration used when opening an overlay.
+ */
+var OverlayConfig = (function () {
+    /**
+     * @param {?=} config
+     */
+    function OverlayConfig(config) {
+        var _this = this;
+        /**
+         * Strategy to be used when handling scroll events while the overlay is open.
+         */
+        this.scrollStrategy = new NoopScrollStrategy();
+        /**
+         * Custom class to add to the overlay pane.
+         */
+        this.panelClass = '';
+        /**
+         * Whether the overlay has a backdrop.
+         */
+        this.hasBackdrop = false;
+        /**
+         * Custom class to add to the backdrop
+         */
+        this.backdropClass = 'cdk-overlay-dark-backdrop';
+        /**
+         * The direction of the text in the overlay panel.
+         */
+        this.direction = 'ltr';
+        if (config) {
+            Object.keys(config).forEach(function (key) { return _this[key] = config[key]; });
+        }
+    }
+    return OverlayConfig;
+}());
+
+/**
+ * Reference to an overlay that has been created with the Overlay service.
+ * Used to manipulate or dispose of said overlay.
+ */
+var OverlayRef = (function () {
+    /**
+     * @param {?} _portalHost
+     * @param {?} _pane
+     * @param {?} _config
+     * @param {?} _ngZone
+     */
+    function OverlayRef(_portalHost, _pane, _config, _ngZone) {
+        this._portalHost = _portalHost;
+        this._pane = _pane;
+        this._config = _config;
+        this._ngZone = _ngZone;
+        this._backdropElement = null;
+        this._backdropClick = new rxjs_Subject.Subject();
+        this._attachments = new rxjs_Subject.Subject();
+        this._detachments = new rxjs_Subject.Subject();
+        if (_config.scrollStrategy) {
+            _config.scrollStrategy.attach(this);
+        }
+    }
+    Object.defineProperty(OverlayRef.prototype, "overlayElement", {
+        /**
+         * The overlay's HTML element
+         * @return {?}
+         */
+        get: function () {
+            return this._pane;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Attaches the overlay to a portal instance and adds the backdrop.
+     * @param {?} portal Portal instance to which to attach the overlay.
+     * @return {?} The portal attachment result.
+     */
+    OverlayRef.prototype.attach = function (portal) {
+        var _this = this;
+        var /** @type {?} */ attachResult = this._portalHost.attach(portal);
+        if (this._config.positionStrategy) {
+            this._config.positionStrategy.attach(this);
+        }
+        // Update the pane element with the given configuration.
+        this._updateStackingOrder();
+        this.updateSize();
+        this.updateDirection();
+        this.updatePosition();
+        if (this._config.scrollStrategy) {
+            this._config.scrollStrategy.enable();
+        }
+        // Enable pointer events for the overlay pane element.
+        this._togglePointerEvents(true);
+        if (this._config.hasBackdrop) {
+            this._attachBackdrop();
+        }
+        if (this._config.panelClass) {
+            // We can't do a spread here, because IE doesn't support setting multiple classes.
+            if (Array.isArray(this._config.panelClass)) {
+                this._config.panelClass.forEach(function (cls) { return _this._pane.classList.add(cls); });
+            }
+            else {
+                this._pane.classList.add(this._config.panelClass);
+            }
+        }
+        // Only emit the `attachments` event once all other setup is done.
+        this._attachments.next();
+        return attachResult;
+    };
+    /**
+     * Detaches an overlay from a portal.
+     * @return {?} The portal detachment result.
+     */
+    OverlayRef.prototype.detach = function () {
+        this.detachBackdrop();
+        // When the overlay is detached, the pane element should disable pointer events.
+        // This is necessary because otherwise the pane element will cover the page and disable
+        // pointer events therefore. Depends on the position strategy and the applied pane boundaries.
+        this._togglePointerEvents(false);
+        if (this._config.positionStrategy && this._config.positionStrategy.detach) {
+            this._config.positionStrategy.detach();
+        }
+        if (this._config.scrollStrategy) {
+            this._config.scrollStrategy.disable();
+        }
+        var /** @type {?} */ detachmentResult = this._portalHost.detach();
+        // Only emit after everything is detached.
+        this._detachments.next();
+        return detachmentResult;
+    };
+    /**
+     * Cleans up the overlay from the DOM.
+     * @return {?}
+     */
+    OverlayRef.prototype.dispose = function () {
+        if (this._config.positionStrategy) {
+            this._config.positionStrategy.dispose();
+        }
+        if (this._config.scrollStrategy) {
+            this._config.scrollStrategy.disable();
+        }
+        this.detachBackdrop();
+        this._portalHost.dispose();
+        this._attachments.complete();
+        this._backdropClick.complete();
+        this._detachments.next();
+        this._detachments.complete();
+    };
+    /**
+     * Checks whether the overlay has been attached.
+     * @return {?}
+     */
+    OverlayRef.prototype.hasAttached = function () {
+        return this._portalHost.hasAttached();
+    };
+    /**
+     * Returns an observable that emits when the backdrop has been clicked.
+     * @return {?}
+     */
+    OverlayRef.prototype.backdropClick = function () {
+        return this._backdropClick.asObservable();
+    };
+    /**
+     * Returns an observable that emits when the overlay has been attached.
+     * @return {?}
+     */
+    OverlayRef.prototype.attachments = function () {
+        return this._attachments.asObservable();
+    };
+    /**
+     * Returns an observable that emits when the overlay has been detached.
+     * @return {?}
+     */
+    OverlayRef.prototype.detachments = function () {
+        return this._detachments.asObservable();
+    };
+    /**
+     * Gets the current config of the overlay.
+     * @return {?}
+     */
+    OverlayRef.prototype.getConfig = function () {
+        return this._config;
+    };
+    /**
+     * Updates the position of the overlay based on the position strategy.
+     * @return {?}
+     */
+    OverlayRef.prototype.updatePosition = function () {
+        if (this._config.positionStrategy) {
+            this._config.positionStrategy.apply();
+        }
+    };
+    /**
+     * Updates the text direction of the overlay panel.
+     * @return {?}
+     */
+    OverlayRef.prototype.updateDirection = function () {
+        this._pane.setAttribute('dir', /** @type {?} */ ((this._config.direction)));
+    };
+    /**
+     * Updates the size of the overlay based on the overlay config.
+     * @return {?}
+     */
+    OverlayRef.prototype.updateSize = function () {
+        if (this._config.width || this._config.width === 0) {
+            this._pane.style.width = formatCssUnit(this._config.width);
+        }
+        if (this._config.height || this._config.height === 0) {
+            this._pane.style.height = formatCssUnit(this._config.height);
+        }
+        if (this._config.minWidth || this._config.minWidth === 0) {
+            this._pane.style.minWidth = formatCssUnit(this._config.minWidth);
+        }
+        if (this._config.minHeight || this._config.minHeight === 0) {
+            this._pane.style.minHeight = formatCssUnit(this._config.minHeight);
+        }
+        if (this._config.maxWidth || this._config.maxWidth === 0) {
+            this._pane.style.maxWidth = formatCssUnit(this._config.maxWidth);
+        }
+        if (this._config.maxHeight || this._config.maxHeight === 0) {
+            this._pane.style.maxHeight = formatCssUnit(this._config.maxHeight);
+        }
+    };
+    /**
+     * Toggles the pointer events for the overlay pane element.
+     * @param {?} enablePointer
+     * @return {?}
+     */
+    OverlayRef.prototype._togglePointerEvents = function (enablePointer) {
+        this._pane.style.pointerEvents = enablePointer ? 'auto' : 'none';
+    };
+    /**
+     * Attaches a backdrop for this overlay.
+     * @return {?}
+     */
+    OverlayRef.prototype._attachBackdrop = function () {
+        var _this = this;
+        this._backdropElement = document.createElement('div');
+        this._backdropElement.classList.add('cdk-overlay-backdrop');
+        if (this._config.backdropClass) {
+            this._backdropElement.classList.add(this._config.backdropClass);
+        } /** @type {?} */
+        ((
+        // Insert the backdrop before the pane in the DOM order,
+        // in order to handle stacked overlays properly.
+        this._pane.parentElement)).insertBefore(this._backdropElement, this._pane);
+        // Forward backdrop clicks such that the consumer of the overlay can perform whatever
+        // action desired when such a click occurs (usually closing the overlay).
+        this._backdropElement.addEventListener('click', function () { return _this._backdropClick.next(null); });
+        // Add class to fade-in the backdrop after one frame.
+        requestAnimationFrame(function () {
+            if (_this._backdropElement) {
+                _this._backdropElement.classList.add('cdk-overlay-backdrop-showing');
+            }
+        });
+    };
+    /**
+     * Updates the stacking order of the element, moving it to the top if necessary.
+     * This is required in cases where one overlay was detached, while another one,
+     * that should be behind it, was destroyed. The next time both of them are opened,
+     * the stacking will be wrong, because the detached element's pane will still be
+     * in its original DOM position.
+     * @return {?}
+     */
+    OverlayRef.prototype._updateStackingOrder = function () {
+        if (this._pane.nextSibling) {
+            ((this._pane.parentNode)).appendChild(this._pane);
+        }
+    };
+    /**
+     * Detaches the backdrop (if any) associated with the overlay.
+     * @return {?}
+     */
+    OverlayRef.prototype.detachBackdrop = function () {
+        var _this = this;
+        var /** @type {?} */ backdropToDetach = this._backdropElement;
+        if (backdropToDetach) {
+            var /** @type {?} */ finishDetach_1 = function () {
+                // It may not be attached to anything in certain cases (e.g. unit tests).
+                if (backdropToDetach && backdropToDetach.parentNode) {
+                    backdropToDetach.parentNode.removeChild(backdropToDetach);
+                }
+                // It is possible that a new portal has been attached to this overlay since we started
+                // removing the backdrop. If that is the case, only clear the backdrop reference if it
+                // is still the same instance that we started to remove.
+                if (_this._backdropElement == backdropToDetach) {
+                    _this._backdropElement = null;
+                }
+            };
+            backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');
+            if (this._config.backdropClass) {
+                backdropToDetach.classList.remove(this._config.backdropClass);
+            }
+            backdropToDetach.addEventListener('transitionend', finishDetach_1);
+            // If the backdrop doesn't have a transition, the `transitionend` event won't fire.
+            // In this case we make it unclickable and we try to remove it after a delay.
+            backdropToDetach.style.pointerEvents = 'none';
+            // Run this outside the Angular zone because there's nothing that Angular cares about.
+            // If it were to run inside the Angular zone, every test that used Overlay would have to be
+            // either async or fakeAsync.
+            this._ngZone.runOutsideAngular(function () {
+                setTimeout(finishDetach_1, 500);
+            });
+        }
+    };
+    return OverlayRef;
+}());
+/**
+ * @param {?} value
+ * @return {?}
+ */
+function formatCssUnit(value) {
+    return typeof value === 'string' ? (value) : value + "px";
+}
+
+/** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */
+/**
+ * The points of the origin element and the overlay element to connect.
+ */
+var ConnectionPositionPair = (function () {
+    /**
+     * @param {?} origin
+     * @param {?} overlay
+     */
+    function ConnectionPositionPair(origin, overlay) {
+        this.originX = origin.originX;
+        this.originY = origin.originY;
+        this.overlayX = overlay.overlayX;
+        this.overlayY = overlay.overlayY;
+    }
+    return ConnectionPositionPair;
+}());
+/**
+ * Set of properties regarding the position of the origin and overlay relative to the viewport
+ * with respect to the containing Scrollable elements.
+ *
+ * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the
+ * bounds of any one of the strategy's Scrollable's bounding client rectangle.
+ *
+ * The overlay and origin are outside view if there is no overlap between their bounding client
+ * rectangle and any one of the strategy's Scrollable's bounding client rectangle.
+ *
+ *       -----------                    -----------
+ *       | outside |                    | clipped |
+ *       |  view   |              --------------------------
+ *       |         |              |     |         |        |
+ *       ----------               |     -----------        |
+ *  --------------------------    |                        |
+ *  |                        |    |      Scrollable        |
+ *  |                        |    |                        |
+ *  |                        |     --------------------------
+ *  |      Scrollable        |
+ *  |                        |
+ *  --------------------------
+ */
+var ScrollingVisibility = (function () {
+    function ScrollingVisibility() {
+    }
+    return ScrollingVisibility;
+}());
+/**
+ * The change event emitted by the strategy when a fallback position is used.
+ */
+var ConnectedOverlayPositionChange = (function () {
+    /**
+     * @param {?} connectionPair
+     * @param {?} scrollableViewProperties
+     */
+    function ConnectedOverlayPositionChange(connectionPair, scrollableViewProperties) {
+        this.connectionPair = connectionPair;
+        this.scrollableViewProperties = scrollableViewProperties;
+    }
+    /**
+     * @nocollapse
+     */
+    ConnectedOverlayPositionChange.ctorParameters = function () { return [
+        { type: ConnectionPositionPair, },
+        { type: ScrollingVisibility, decorators: [{ type: _angular_core.Optional },] },
+    ]; };
+    return ConnectedOverlayPositionChange;
+}());
+
+/**
+ * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.
+ * \@docs-private
+ * @param {?} element Dimensions of the element (from getBoundingClientRect)
+ * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)
+ * @return {?} Whether the element is scrolled out of view
+ */
+function isElementScrolledOutsideView(element, scrollContainers) {
+    return scrollContainers.some(function (containerBounds) {
+        var /** @type {?} */ outsideAbove = element.bottom < containerBounds.top;
+        var /** @type {?} */ outsideBelow = element.top > containerBounds.bottom;
+        var /** @type {?} */ outsideLeft = element.right < containerBounds.left;
+        var /** @type {?} */ outsideRight = element.left > containerBounds.right;
+        return outsideAbove || outsideBelow || outsideLeft || outsideRight;
+    });
+}
+/**
+ * Gets whether an element is clipped by any of its scrolling containers.
+ * \@docs-private
+ * @param {?} element Dimensions of the element (from getBoundingClientRect)
+ * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)
+ * @return {?} Whether the element is clipped
+ */
+function isElementClippedByScrolling(element, scrollContainers) {
+    return scrollContainers.some(function (scrollContainerRect) {
+        var /** @type {?} */ clippedAbove = element.top < scrollContainerRect.top;
+        var /** @type {?} */ clippedBelow = element.bottom > scrollContainerRect.bottom;
+        var /** @type {?} */ clippedLeft = element.left < scrollContainerRect.left;
+        var /** @type {?} */ clippedRight = element.right > scrollContainerRect.right;
+        return clippedAbove || clippedBelow || clippedLeft || clippedRight;
+    });
+}
+
+/**
+ * A strategy for positioning overlays. Using this strategy, an overlay is given an
+ * implicit position relative some origin element. The relative position is defined in terms of
+ * a point on the origin element that is connected to a point on the overlay element. For example,
+ * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner
+ * of the overlay.
+ */
+var ConnectedPositionStrategy = (function () {
+    /**
+     * @param {?} originPos
+     * @param {?} overlayPos
+     * @param {?} _connectedTo
+     * @param {?} _viewportRuler
+     */
+    function ConnectedPositionStrategy(originPos, overlayPos, _connectedTo, _viewportRuler) {
+        this._connectedTo = _connectedTo;
+        this._viewportRuler = _viewportRuler;
+        /**
+         * Layout direction of the position strategy.
+         */
+        this._dir = 'ltr';
+        /**
+         * The offset in pixels for the overlay connection point on the x-axis
+         */
+        this._offsetX = 0;
+        /**
+         * The offset in pixels for the overlay connection point on the y-axis
+         */
+        this._offsetY = 0;
+        /**
+         * The Scrollable containers used to check scrollable view properties on position change.
+         */
+        this.scrollables = [];
+        /**
+         * Subscription to viewport resize events.
+         */
+        this._resizeSubscription = rxjs_Subscription.Subscription.EMPTY;
+        /**
+         * Ordered list of preferred positions, from most to least desirable.
+         */
+        this._preferredPositions = [];
+        this._onPositionChange = new rxjs_Subject.Subject();
+        this._origin = this._connectedTo.nativeElement;
+        this.withFallbackPosition(originPos, overlayPos);
+    }
+    Object.defineProperty(ConnectedPositionStrategy.prototype, "_isRtl", {
+        /**
+         * Whether the we're dealing with an RTL context
+         * @return {?}
+         */
+        get: function () {
+            return this._dir === 'rtl';
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedPositionStrategy.prototype, "onPositionChange", {
+        /**
+         * Emits an event when the connection point changes.
+         * @return {?}
+         */
+        get: function () {
+            return this._onPositionChange.asObservable();
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedPositionStrategy.prototype, "positions", {
+        /**
+         * Ordered list of preferred positions, from most to least desirable.
+         * @return {?}
+         */
+        get: function () {
+            return this._preferredPositions;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.attach = function (overlayRef) {
+        var _this = this;
+        this._overlayRef = overlayRef;
+        this._pane = overlayRef.overlayElement;
+        this._resizeSubscription.unsubscribe();
+        this._resizeSubscription = this._viewportRuler.change().subscribe(function () { return _this.apply(); });
+    };
+    /**
+     * Performs any cleanup after the element is destroyed.
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.dispose = function () {
+        this._resizeSubscription.unsubscribe();
+    };
+    /**
+     * \@docs-private
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.detach = function () {
+        this._resizeSubscription.unsubscribe();
+    };
+    /**
+     * Updates the position of the overlay element, using whichever preferred position relative
+     * to the origin fits on-screen.
+     * \@docs-private
+     *
+     * @return {?} Resolves when the styles have been applied.
+     */
+    ConnectedPositionStrategy.prototype.apply = function () {
+        // We need the bounding rects for the origin and the overlay to determine how to position
+        // the overlay relative to the origin.
+        var /** @type {?} */ element = this._pane;
+        var /** @type {?} */ originRect = this._origin.getBoundingClientRect();
+        var /** @type {?} */ overlayRect = element.getBoundingClientRect();
+        // We use the viewport rect to determine whether a position would go off-screen.
+        var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();
+        // Fallback point if none of the fallbacks fit into the viewport.
+        var /** @type {?} */ fallbackPoint;
+        var /** @type {?} */ fallbackPosition;
+        // We want to place the overlay in the first of the preferred positions such that the
+        // overlay fits on-screen.
+        for (var _i = 0, _a = this._preferredPositions; _i < _a.length; _i++) {
+            var pos = _a[_i];
+            // Get the (x, y) point of connection on the origin, and then use that to get the
+            // (top, left) coordinate for the overlay at `pos`.
+            var /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, pos);
+            var /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, pos);
+            // If the overlay in the calculated position fits on-screen, put it there and we're done.
+            if (overlayPoint.fitsInViewport) {
+                this._setElementPosition(element, overlayRect, overlayPoint, pos);
+                // Save the last connected position in case the position needs to be re-calculated.
+                this._lastConnectedPosition = pos;
+                return;
+            }
+            else if (!fallbackPoint || fallbackPoint.visibleArea < overlayPoint.visibleArea) {
+                fallbackPoint = overlayPoint;
+                fallbackPosition = pos;
+            }
+        }
+        // If none of the preferred positions were in the viewport, take the one
+        // with the largest visible area.
+        this._setElementPosition(element, overlayRect, /** @type {?} */ ((fallbackPoint)), /** @type {?} */ ((fallbackPosition)));
+    };
+    /**
+     * This re-aligns the overlay element with the trigger in its last calculated position,
+     * even if a position higher in the "preferred positions" list would now fit. This
+     * allows one to re-align the panel without changing the orientation of the panel.
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.recalculateLastPosition = function () {
+        var /** @type {?} */ originRect = this._origin.getBoundingClientRect();
+        var /** @type {?} */ overlayRect = this._pane.getBoundingClientRect();
+        var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();
+        var /** @type {?} */ lastPosition = this._lastConnectedPosition || this._preferredPositions[0];
+        var /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, lastPosition);
+        var /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, lastPosition);
+        this._setElementPosition(this._pane, overlayRect, overlayPoint, lastPosition);
+    };
+    /**
+     * Sets the list of Scrollable containers that host the origin element so that
+     * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every
+     * Scrollable must be an ancestor element of the strategy's origin element.
+     * @param {?} scrollables
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.withScrollableContainers = function (scrollables) {
+        this.scrollables = scrollables;
+    };
+    /**
+     * Adds a new preferred fallback position.
+     * @param {?} originPos
+     * @param {?} overlayPos
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.withFallbackPosition = function (originPos, overlayPos) {
+        this._preferredPositions.push(new ConnectionPositionPair(originPos, overlayPos));
+        return this;
+    };
+    /**
+     * Sets the layout direction so the overlay's position can be adjusted to match.
+     * @param {?} dir New layout direction.
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.withDirection = function (dir) {
+        this._dir = dir;
+        return this;
+    };
+    /**
+     * Sets an offset for the overlay's connection point on the x-axis
+     * @param {?} offset New offset in the X axis.
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.withOffsetX = function (offset) {
+        this._offsetX = offset;
+        return this;
+    };
+    /**
+     * Sets an offset for the overlay's connection point on the y-axis
+     * @param {?} offset New offset in the Y axis.
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.withOffsetY = function (offset) {
+        this._offsetY = offset;
+        return this;
+    };
+    /**
+     * Gets the horizontal (x) "start" dimension based on whether the overlay is in an RTL context.
+     * @param {?} rect
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._getStartX = function (rect) {
+        return this._isRtl ? rect.right : rect.left;
+    };
+    /**
+     * Gets the horizontal (x) "end" dimension based on whether the overlay is in an RTL context.
+     * @param {?} rect
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._getEndX = function (rect) {
+        return this._isRtl ? rect.left : rect.right;
+    };
+    /**
+     * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.
+     * @param {?} originRect
+     * @param {?} pos
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._getOriginConnectionPoint = function (originRect, pos) {
+        var /** @type {?} */ originStartX = this._getStartX(originRect);
+        var /** @type {?} */ originEndX = this._getEndX(originRect);
+        var /** @type {?} */ x;
+        if (pos.originX == 'center') {
+            x = originStartX + (originRect.width / 2);
+        }
+        else {
+            x = pos.originX == 'start' ? originStartX : originEndX;
+        }
+        var /** @type {?} */ y;
+        if (pos.originY == 'center') {
+            y = originRect.top + (originRect.height / 2);
+        }
+        else {
+            y = pos.originY == 'top' ? originRect.top : originRect.bottom;
+        }
+        return { x: x, y: y };
+    };
+    /**
+     * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and
+     * origin point to which the overlay should be connected, as well as how much of the element
+     * would be inside the viewport at that position.
+     * @param {?} originPoint
+     * @param {?} overlayRect
+     * @param {?} viewportRect
+     * @param {?} pos
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._getOverlayPoint = function (originPoint, overlayRect, viewportRect, pos) {
+        // Calculate the (overlayStartX, overlayStartY), the start of the potential overlay position
+        // relative to the origin point.
+        var /** @type {?} */ overlayStartX;
+        if (pos.overlayX == 'center') {
+            overlayStartX = -overlayRect.width / 2;
+        }
+        else if (pos.overlayX === 'start') {
+            overlayStartX = this._isRtl ? -overlayRect.width : 0;
+        }
+        else {
+            overlayStartX = this._isRtl ? 0 : -overlayRect.width;
+        }
+        var /** @type {?} */ overlayStartY;
+        if (pos.overlayY == 'center') {
+            overlayStartY = -overlayRect.height / 2;
+        }
+        else {
+            overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;
+        }
+        // The (x, y) coordinates of the overlay.
+        var /** @type {?} */ x = originPoint.x + overlayStartX + this._offsetX;
+        var /** @type {?} */ y = originPoint.y + overlayStartY + this._offsetY;
+        // How much the overlay would overflow at this position, on each side.
+        var /** @type {?} */ leftOverflow = 0 - x;
+        var /** @type {?} */ rightOverflow = (x + overlayRect.width) - viewportRect.width;
+        var /** @type {?} */ topOverflow = 0 - y;
+        var /** @type {?} */ bottomOverflow = (y + overlayRect.height) - viewportRect.height;
+        // Visible parts of the element on each axis.
+        var /** @type {?} */ visibleWidth = this._subtractOverflows(overlayRect.width, leftOverflow, rightOverflow);
+        var /** @type {?} */ visibleHeight = this._subtractOverflows(overlayRect.height, topOverflow, bottomOverflow);
+        // The area of the element that's within the viewport.
+        var /** @type {?} */ visibleArea = visibleWidth * visibleHeight;
+        var /** @type {?} */ fitsInViewport = (overlayRect.width * overlayRect.height) === visibleArea;
+        return { x: x, y: y, fitsInViewport: fitsInViewport, visibleArea: visibleArea };
+    };
+    /**
+     * Gets the view properties of the trigger and overlay, including whether they are clipped
+     * or completely outside the view of any of the strategy's scrollables.
+     * @param {?} overlay
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._getScrollVisibility = function (overlay) {
+        var /** @type {?} */ originBounds = this._origin.getBoundingClientRect();
+        var /** @type {?} */ overlayBounds = overlay.getBoundingClientRect();
+        var /** @type {?} */ scrollContainerBounds = this.scrollables.map(function (s) { return s.getElementRef().nativeElement.getBoundingClientRect(); });
+        return {
+            isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),
+            isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),
+            isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),
+            isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),
+        };
+    };
+    /**
+     * Physically positions the overlay element to the given coordinate.
+     * @param {?} element
+     * @param {?} overlayRect
+     * @param {?} overlayPoint
+     * @param {?} pos
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._setElementPosition = function (element, overlayRect, overlayPoint, pos) {
+        // We want to set either `top` or `bottom` based on whether the overlay wants to appear above
+        // or below the origin and the direction in which the element will expand.
+        var /** @type {?} */ verticalStyleProperty = pos.overlayY === 'bottom' ? 'bottom' : 'top';
+        // When using `bottom`, we adjust the y position such that it is the distance
+        // from the bottom of the viewport rather than the top.
+        var /** @type {?} */ y = verticalStyleProperty === 'top' ?
+            overlayPoint.y :
+            document.documentElement.clientHeight - (overlayPoint.y + overlayRect.height);
+        // We want to set either `left` or `right` based on whether the overlay wants to appear "before"
+        // or "after" the origin, which determines the direction in which the element will expand.
+        // For the horizontal axis, the meaning of "before" and "after" change based on whether the
+        // page is in RTL or LTR.
+        var /** @type {?} */ horizontalStyleProperty;
+        if (this._dir === 'rtl') {
+            horizontalStyleProperty = pos.overlayX === 'end' ? 'left' : 'right';
+        }
+        else {
+            horizontalStyleProperty = pos.overlayX === 'end' ? 'right' : 'left';
+        }
+        // When we're setting `right`, we adjust the x position such that it is the distance
+        // from the right edge of the viewport rather than the left edge.
+        var /** @type {?} */ x = horizontalStyleProperty === 'left' ?
+            overlayPoint.x :
+            document.documentElement.clientWidth - (overlayPoint.x + overlayRect.width);
+        // Reset any existing styles. This is necessary in case the preferred position has
+        // changed since the last `apply`.
+        ['top', 'bottom', 'left', 'right'].forEach(function (p) { return element.style[p] = null; });
+        element.style[verticalStyleProperty] = y + "px";
+        element.style[horizontalStyleProperty] = x + "px";
+        // Notify that the position has been changed along with its change properties.
+        var /** @type {?} */ scrollableViewProperties = this._getScrollVisibility(element);
+        var /** @type {?} */ positionChange = new ConnectedOverlayPositionChange(pos, scrollableViewProperties);
+        this._onPositionChange.next(positionChange);
+    };
+    /**
+     * Subtracts the amount that an element is overflowing on an axis from it's length.
+     * @param {?} length
+     * @param {...?} overflows
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._subtractOverflows = function (length) {
+        var overflows = [];
+        for (var _i = 1; _i < arguments.length; _i++) {
+            overflows[_i - 1] = arguments[_i];
+        }
+        return overflows.reduce(function (currentValue, currentOverflow) {
+            return currentValue - Math.max(currentOverflow, 0);
+        }, length);
+    };
+    return ConnectedPositionStrategy;
+}());
+
+/**
+ * A strategy for positioning overlays. Using this strategy, an overlay is given an
+ * explicit position relative to the browser's viewport. We use flexbox, instead of
+ * transforms, in order to avoid issues with subpixel rendering which can cause the
+ * element to become blurry.
+ */
+var GlobalPositionStrategy = (function () {
+    function GlobalPositionStrategy() {
+        this._cssPosition = 'static';
+        this._topOffset = '';
+        this._bottomOffset = '';
+        this._leftOffset = '';
+        this._rightOffset = '';
+        this._alignItems = '';
+        this._justifyContent = '';
+        this._width = '';
+        this._height = '';
+        this._wrapper = null;
+    }
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.attach = function (overlayRef) {
+        this._overlayRef = overlayRef;
+    };
+    /**
+     * Sets the top position of the overlay. Clears any previously set vertical position.
+     * @param {?=} value New top offset.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.top = function (value) {
+        if (value === void 0) { value = ''; }
+        this._bottomOffset = '';
+        this._topOffset = value;
+        this._alignItems = 'flex-start';
+        return this;
+    };
+    /**
+     * Sets the left position of the overlay. Clears any previously set horizontal position.
+     * @param {?=} value New left offset.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.left = function (value) {
+        if (value === void 0) { value = ''; }
+        this._rightOffset = '';
+        this._leftOffset = value;
+        this._justifyContent = 'flex-start';
+        return this;
+    };
+    /**
+     * Sets the bottom position of the overlay. Clears any previously set vertical position.
+     * @param {?=} value New bottom offset.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.bottom = function (value) {
+        if (value === void 0) { value = ''; }
+        this._topOffset = '';
+        this._bottomOffset = value;
+        this._alignItems = 'flex-end';
+        return this;
+    };
+    /**
+     * Sets the right position of the overlay. Clears any previously set horizontal position.
+     * @param {?=} value New right offset.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.right = function (value) {
+        if (value === void 0) { value = ''; }
+        this._leftOffset = '';
+        this._rightOffset = value;
+        this._justifyContent = 'flex-end';
+        return this;
+    };
+    /**
+     * Sets the overlay width and clears any previously set width.
+     * @param {?=} value New width for the overlay
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.width = function (value) {
+        if (value === void 0) { value = ''; }
+        this._width = value;
+        // When the width is 100%, we should reset the `left` and the offset,
+        // in order to ensure that the element is flush against the viewport edge.
+        if (value === '100%') {
+            this.left('0px');
+        }
+        return this;
+    };
+    /**
+     * Sets the overlay height and clears any previously set height.
+     * @param {?=} value New height for the overlay
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.height = function (value) {
+        if (value === void 0) { value = ''; }
+        this._height = value;
+        // When the height is 100%, we should reset the `top` and the offset,
+        // in order to ensure that the element is flush against the viewport edge.
+        if (value === '100%') {
+            this.top('0px');
+        }
+        return this;
+    };
+    /**
+     * Centers the overlay horizontally with an optional offset.
+     * Clears any previously set horizontal position.
+     *
+     * @param {?=} offset Overlay offset from the horizontal center.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.centerHorizontally = function (offset) {
+        if (offset === void 0) { offset = ''; }
+        this.left(offset);
+        this._justifyContent = 'center';
+        return this;
+    };
+    /**
+     * Centers the overlay vertically with an optional offset.
+     * Clears any previously set vertical position.
+     *
+     * @param {?=} offset Overlay offset from the vertical center.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.centerVertically = function (offset) {
+        if (offset === void 0) { offset = ''; }
+        this.top(offset);
+        this._alignItems = 'center';
+        return this;
+    };
+    /**
+     * Apply the position to the element.
+     * \@docs-private
+     *
+     * @return {?} Resolved when the styles have been applied.
+     */
+    GlobalPositionStrategy.prototype.apply = function () {
+        var /** @type {?} */ element = this._overlayRef.overlayElement;
+        if (!this._wrapper && element.parentNode) {
+            this._wrapper = document.createElement('div');
+            this._wrapper.classList.add('cdk-global-overlay-wrapper');
+            element.parentNode.insertBefore(this._wrapper, element);
+            this._wrapper.appendChild(element);
+        }
+        var /** @type {?} */ styles = element.style;
+        var /** @type {?} */ parentStyles = ((element.parentNode)).style;
+        styles.position = this._cssPosition;
+        styles.marginTop = this._topOffset;
+        styles.marginLeft = this._leftOffset;
+        styles.marginBottom = this._bottomOffset;
+        styles.marginRight = this._rightOffset;
+        styles.width = this._width;
+        styles.height = this._height;
+        parentStyles.justifyContent = this._justifyContent;
+        parentStyles.alignItems = this._alignItems;
+    };
+    /**
+     * Removes the wrapper element from the DOM.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.dispose = function () {
+        if (this._wrapper && this._wrapper.parentNode) {
+            this._wrapper.parentNode.removeChild(this._wrapper);
+            this._wrapper = null;
+        }
+    };
+    return GlobalPositionStrategy;
+}());
+
+/**
+ * Builder for overlay position strategy.
+ */
+var OverlayPositionBuilder = (function () {
+    /**
+     * @param {?} _viewportRuler
+     */
+    function OverlayPositionBuilder(_viewportRuler) {
+        this._viewportRuler = _viewportRuler;
+    }
+    /**
+     * Creates a global position strategy.
+     * @return {?}
+     */
+    OverlayPositionBuilder.prototype.global = function () {
+        return new GlobalPositionStrategy();
+    };
+    /**
+     * Creates a relative position strategy.
+     * @param {?} elementRef
+     * @param {?} originPos
+     * @param {?} overlayPos
+     * @return {?}
+     */
+    OverlayPositionBuilder.prototype.connectedTo = function (elementRef, originPos, overlayPos) {
+        return new ConnectedPositionStrategy(originPos, overlayPos, elementRef, this._viewportRuler);
+    };
+    OverlayPositionBuilder.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    OverlayPositionBuilder.ctorParameters = function () { return [
+        { type: _angular_cdk_scrolling.ViewportRuler, },
+    ]; };
+    return OverlayPositionBuilder;
+}());
+
+/**
+ * The OverlayContainer is the container in which all overlays will load.
+ * It should be provided in the root component to ensure it is properly shared.
+ */
+var OverlayContainer = (function () {
+    function OverlayContainer() {
+    }
+    /**
+     * @return {?}
+     */
+    OverlayContainer.prototype.ngOnDestroy = function () {
+        if (this._containerElement && this._containerElement.parentNode) {
+            this._containerElement.parentNode.removeChild(this._containerElement);
+        }
+    };
+    /**
+     * This method returns the overlay container element. It will lazily
+     * create the element the first time  it is called to facilitate using
+     * the container in non-browser environments.
+     * @return {?} the container element
+     */
+    OverlayContainer.prototype.getContainerElement = function () {
+        if (!this._containerElement) {
+            this._createContainer();
+        }
+        return this._containerElement;
+    };
+    /**
+     * Create the overlay container element, which is simply a div
+     * with the 'cdk-overlay-container' class on the document body.
+     * @return {?}
+     */
+    OverlayContainer.prototype._createContainer = function () {
+        var /** @type {?} */ container = document.createElement('div');
+        container.classList.add('cdk-overlay-container');
+        document.body.appendChild(container);
+        this._containerElement = container;
+    };
+    OverlayContainer.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    OverlayContainer.ctorParameters = function () { return []; };
+    return OverlayContainer;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentContainer
+ * @return {?}
+ */
+function OVERLAY_CONTAINER_PROVIDER_FACTORY(parentContainer) {
+    return parentContainer || new OverlayContainer();
+}
+/**
+ * \@docs-private
+ */
+var OVERLAY_CONTAINER_PROVIDER = {
+    // If there is already an OverlayContainer available, use that. Otherwise, provide a new one.
+    provide: OverlayContainer,
+    deps: [[new _angular_core.Optional(), new _angular_core.SkipSelf(), OverlayContainer]],
+    useFactory: OVERLAY_CONTAINER_PROVIDER_FACTORY
+};
+
+/**
+ * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.
+ * @return {?}
+ */
+function getMatScrollStrategyAlreadyAttachedError() {
+    return Error("Scroll strategy has already been attached.");
+}
+
+/**
+ * Strategy that will close the overlay as soon as the user starts scrolling.
+ */
+var CloseScrollStrategy = (function () {
+    /**
+     * @param {?} _scrollDispatcher
+     */
+    function CloseScrollStrategy(_scrollDispatcher) {
+        this._scrollDispatcher = _scrollDispatcher;
+        this._scrollSubscription = null;
+    }
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    CloseScrollStrategy.prototype.attach = function (overlayRef) {
+        if (this._overlayRef) {
+            throw getMatScrollStrategyAlreadyAttachedError();
+        }
+        this._overlayRef = overlayRef;
+    };
+    /**
+     * @return {?}
+     */
+    CloseScrollStrategy.prototype.enable = function () {
+        var _this = this;
+        if (!this._scrollSubscription) {
+            this._scrollSubscription = this._scrollDispatcher.scrolled(0, function () {
+                if (_this._overlayRef.hasAttached()) {
+                    _this._overlayRef.detach();
+                }
+                _this.disable();
+            });
+        }
+    };
+    /**
+     * @return {?}
+     */
+    CloseScrollStrategy.prototype.disable = function () {
+        if (this._scrollSubscription) {
+            this._scrollSubscription.unsubscribe();
+            this._scrollSubscription = null;
+        }
+    };
+    return CloseScrollStrategy;
+}());
+
+/**
+ * Strategy that will prevent the user from scrolling while the overlay is visible.
+ */
+var BlockScrollStrategy = (function () {
+    /**
+     * @param {?} _viewportRuler
+     */
+    function BlockScrollStrategy(_viewportRuler) {
+        this._viewportRuler = _viewportRuler;
+        this._previousHTMLStyles = { top: '', left: '' };
+        this._isEnabled = false;
+    }
+    /**
+     * @return {?}
+     */
+    BlockScrollStrategy.prototype.attach = function () { };
+    /**
+     * @return {?}
+     */
+    BlockScrollStrategy.prototype.enable = function () {
+        if (this._canBeEnabled()) {
+            var /** @type {?} */ root = document.documentElement;
+            this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();
+            // Cache the previous inline styles in case the user had set them.
+            this._previousHTMLStyles.left = root.style.left || '';
+            this._previousHTMLStyles.top = root.style.top || '';
+            // Note: we're using the `html` node, instead of the `body`, because the `body` may
+            // have the user agent margin, whereas the `html` is guaranteed not to have one.
+            root.style.left = -this._previousScrollPosition.left + "px";
+            root.style.top = -this._previousScrollPosition.top + "px";
+            root.classList.add('cdk-global-scrollblock');
+            this._isEnabled = true;
+        }
+    };
+    /**
+     * @return {?}
+     */
+    BlockScrollStrategy.prototype.disable = function () {
+        if (this._isEnabled) {
+            this._isEnabled = false;
+            document.documentElement.style.left = this._previousHTMLStyles.left;
+            document.documentElement.style.top = this._previousHTMLStyles.top;
+            document.documentElement.classList.remove('cdk-global-scrollblock');
+            window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);
+        }
+    };
+    /**
+     * @return {?}
+     */
+    BlockScrollStrategy.prototype._canBeEnabled = function () {
+        // Since the scroll strategies can't be singletons, we have to use a global CSS class
+        // (`cdk-global-scrollblock`) to make sure that we don't try to disable global
+        // scrolling multiple times.
+        if (document.documentElement.classList.contains('cdk-global-scrollblock') || this._isEnabled) {
+            return false;
+        }
+        var /** @type {?} */ body = document.body;
+        var /** @type {?} */ viewport = this._viewportRuler.getViewportRect();
+        return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;
+    };
+    return BlockScrollStrategy;
+}());
+
+/**
+ * Strategy that will update the element position as the user is scrolling.
+ */
+var RepositionScrollStrategy = (function () {
+    /**
+     * @param {?} _scrollDispatcher
+     * @param {?=} _config
+     */
+    function RepositionScrollStrategy(_scrollDispatcher, _config) {
+        this._scrollDispatcher = _scrollDispatcher;
+        this._config = _config;
+        this._scrollSubscription = null;
+    }
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    RepositionScrollStrategy.prototype.attach = function (overlayRef) {
+        if (this._overlayRef) {
+            throw getMatScrollStrategyAlreadyAttachedError();
+        }
+        this._overlayRef = overlayRef;
+    };
+    /**
+     * @return {?}
+     */
+    RepositionScrollStrategy.prototype.enable = function () {
+        var _this = this;
+        if (!this._scrollSubscription) {
+            var /** @type {?} */ throttle = this._config ? this._config.scrollThrottle : 0;
+            this._scrollSubscription = this._scrollDispatcher.scrolled(throttle, function () {
+                _this._overlayRef.updatePosition();
+            });
+        }
+    };
+    /**
+     * @return {?}
+     */
+    RepositionScrollStrategy.prototype.disable = function () {
+        if (this._scrollSubscription) {
+            this._scrollSubscription.unsubscribe();
+            this._scrollSubscription = null;
+        }
+    };
+    return RepositionScrollStrategy;
+}());
+
+/**
+ * Options for how an overlay will handle scrolling.
+ *
+ * Users can provide a custom value for `ScrollStrategyOptions` to replace the default
+ * behaviors. This class primarily acts as a factory for ScrollStrategy instances.
+ */
+var ScrollStrategyOptions = (function () {
+    /**
+     * @param {?} _scrollDispatcher
+     * @param {?} _viewportRuler
+     */
+    function ScrollStrategyOptions(_scrollDispatcher, _viewportRuler) {
+        var _this = this;
+        this._scrollDispatcher = _scrollDispatcher;
+        this._viewportRuler = _viewportRuler;
+        /**
+         * Do nothing on scroll.
+         */
+        this.noop = function () { return new NoopScrollStrategy(); };
+        /**
+         * Close the overlay as soon as the user scrolls.
+         */
+        this.close = function () { return new CloseScrollStrategy(_this._scrollDispatcher); };
+        /**
+         * Block scrolling.
+         */
+        this.block = function () { return new BlockScrollStrategy(_this._viewportRuler); };
+        /**
+         * Update the overlay's position on scroll.
+         * @param config Configuration to be used inside the scroll strategy.
+         * Allows debouncing the reposition calls.
+         */
+        this.reposition = function (config) {
+            return new RepositionScrollStrategy(_this._scrollDispatcher, config);
+        };
+    }
+    ScrollStrategyOptions.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    ScrollStrategyOptions.ctorParameters = function () { return [
+        { type: _angular_cdk_scrolling.ScrollDispatcher, },
+        { type: _angular_cdk_scrolling.ViewportRuler, },
+    ]; };
+    return ScrollStrategyOptions;
+}());
+
+/**
+ * Next overlay unique ID.
+ */
+var nextUniqueId = 0;
+/**
+ * The default config for newly created overlays.
+ */
+var defaultConfig = new OverlayConfig();
+/**
+ * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be
+ * used as a low-level building building block for other components. Dialogs, tooltips, menus,
+ * selects, etc. can all be built using overlays. The service should primarily be used by authors
+ * of re-usable components rather than developers building end-user applications.
+ *
+ * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.
+ */
+var Overlay = (function () {
+    /**
+     * @param {?} scrollStrategies
+     * @param {?} _overlayContainer
+     * @param {?} _componentFactoryResolver
+     * @param {?} _positionBuilder
+     * @param {?} _appRef
+     * @param {?} _injector
+     * @param {?} _ngZone
+     */
+    function Overlay(scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _appRef, _injector, _ngZone) {
+        this.scrollStrategies = scrollStrategies;
+        this._overlayContainer = _overlayContainer;
+        this._componentFactoryResolver = _componentFactoryResolver;
+        this._positionBuilder = _positionBuilder;
+        this._appRef = _appRef;
+        this._injector = _injector;
+        this._ngZone = _ngZone;
+    }
+    /**
+     * Creates an overlay.
+     * @param {?=} config Config to apply to the overlay.
+     * @return {?} Reference to the created overlay.
+     */
+    Overlay.prototype.create = function (config) {
+        if (config === void 0) { config = defaultConfig; }
+        var /** @type {?} */ pane = this._createPaneElement();
+        var /** @type {?} */ portalHost = this._createPortalHost(pane);
+        return new OverlayRef(portalHost, pane, config, this._ngZone);
+    };
+    /**
+     * Returns a position builder that can be used, via fluent API,
+     * to construct and configure a position strategy.
+     * @return {?}
+     */
+    Overlay.prototype.position = function () {
+        return this._positionBuilder;
+    };
+    /**
+     * Creates the DOM element for an overlay and appends it to the overlay container.
+     * @return {?} Newly-created pane element
+     */
+    Overlay.prototype._createPaneElement = function () {
+        var /** @type {?} */ pane = document.createElement('div');
+        pane.id = "cdk-overlay-" + nextUniqueId++;
+        pane.classList.add('cdk-overlay-pane');
+        this._overlayContainer.getContainerElement().appendChild(pane);
+        return pane;
+    };
+    /**
+     * Create a DomPortalHost into which the overlay content can be loaded.
+     * @param {?} pane The DOM element to turn into a portal host.
+     * @return {?} A portal host for the given DOM element.
+     */
+    Overlay.prototype._createPortalHost = function (pane) {
+        return new _angular_cdk_portal.DomPortalHost(pane, this._componentFactoryResolver, this._appRef, this._injector);
+    };
+    Overlay.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    Overlay.ctorParameters = function () { return [
+        { type: ScrollStrategyOptions, },
+        { type: OverlayContainer, },
+        { type: _angular_core.ComponentFactoryResolver, },
+        { type: OverlayPositionBuilder, },
+        { type: _angular_core.ApplicationRef, },
+        { type: _angular_core.Injector, },
+        { type: _angular_core.NgZone, },
+    ]; };
+    return Overlay;
+}());
+
+/**
+ * The FullscreenOverlayContainer is the alternative to OverlayContainer
+ * that supports correct displaying of overlay elements in Fullscreen mode
+ * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen
+ * It should be provided in the root component that way:
+ * providers: [
+ *   {provide: OverlayContainer, useClass: FullscreenOverlayContainer}
+ * ],
+ */
+var FullscreenOverlayContainer = (function (_super) {
+    __extends(FullscreenOverlayContainer, _super);
+    function FullscreenOverlayContainer() {
+        return _super !== null && _super.apply(this, arguments) || this;
+    }
+    /**
+     * @return {?}
+     */
+    FullscreenOverlayContainer.prototype._createContainer = function () {
+        var _this = this;
+        _super.prototype._createContainer.call(this);
+        this._adjustParentForFullscreenChange();
+        this._addFullscreenChangeListener(function () { return _this._adjustParentForFullscreenChange(); });
+    };
+    /**
+     * @return {?}
+     */
+    FullscreenOverlayContainer.prototype._adjustParentForFullscreenChange = function () {
+        if (!this._containerElement) {
+            return;
+        }
+        var /** @type {?} */ fullscreenElement = this.getFullscreenElement();
+        var /** @type {?} */ parent = fullscreenElement || document.body;
+        parent.appendChild(this._containerElement);
+    };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    FullscreenOverlayContainer.prototype._addFullscreenChangeListener = function (fn) {
+        if (document.fullscreenEnabled) {
+            document.addEventListener('fullscreenchange', fn);
+        }
+        else if (document.webkitFullscreenEnabled) {
+            document.addEventListener('webkitfullscreenchange', fn);
+        }
+        else if (((document)).mozFullScreenEnabled) {
+            document.addEventListener('mozfullscreenchange', fn);
+        }
+        else if (((document)).msFullscreenEnabled) {
+            document.addEventListener('MSFullscreenChange', fn);
+        }
+    };
+    /**
+     * When the page is put into fullscreen mode, a specific element is specified.
+     * Only that element and its children are visible when in fullscreen mode.
+     * @return {?}
+     */
+    FullscreenOverlayContainer.prototype.getFullscreenElement = function () {
+        return document.fullscreenElement ||
+            document.webkitFullscreenElement ||
+            ((document)).mozFullScreenElement ||
+            ((document)).msFullscreenElement ||
+            null;
+    };
+    FullscreenOverlayContainer.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    FullscreenOverlayContainer.ctorParameters = function () { return []; };
+    return FullscreenOverlayContainer;
+}(OverlayContainer));
+
+/**
+ * Default set of positions for the overlay. Follows the behavior of a dropdown.
+ */
+var defaultPositionList = [
+    new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }),
+    new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }),
+];
+/**
+ * Injection token that determines the scroll handling while the connected overlay is open.
+ */
+var MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY = new _angular_core.InjectionToken('mat-connected-overlay-scroll-strategy');
+/**
+ * \@docs-private
+ * @param {?} overlay
+ * @return {?}
+ */
+function MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {
+    return function () { return overlay.scrollStrategies.reposition(); };
+}
+/**
+ * \@docs-private
+ */
+var MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {
+    provide: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,
+    deps: [Overlay],
+    useFactory: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,
+};
+/**
+ * Directive applied to an element to make it usable as an origin for an Overlay using a
+ * ConnectedPositionStrategy.
+ */
+var OverlayOrigin = (function () {
+    /**
+     * @param {?} elementRef
+     */
+    function OverlayOrigin(elementRef) {
+        this.elementRef = elementRef;
+    }
+    OverlayOrigin.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',
+                    exportAs: 'cdkOverlayOrigin',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    OverlayOrigin.ctorParameters = function () { return [
+        { type: _angular_core.ElementRef, },
+    ]; };
+    return OverlayOrigin;
+}());
+/**
+ * Directive to facilitate declarative creation of an Overlay using a ConnectedPositionStrategy.
+ */
+var ConnectedOverlayDirective = (function () {
+    /**
+     * @param {?} _overlay
+     * @param {?} _renderer
+     * @param {?} templateRef
+     * @param {?} viewContainerRef
+     * @param {?} _scrollStrategy
+     * @param {?} _dir
+     */
+    function ConnectedOverlayDirective(_overlay, _renderer, templateRef, viewContainerRef, _scrollStrategy, _dir) {
+        this._overlay = _overlay;
+        this._renderer = _renderer;
+        this._scrollStrategy = _scrollStrategy;
+        this._dir = _dir;
+        this._hasBackdrop = false;
+        this._backdropSubscription = rxjs_Subscription.Subscription.EMPTY;
+        this._positionSubscription = rxjs_Subscription.Subscription.EMPTY;
+        this._offsetX = 0;
+        this._offsetY = 0;
+        this._escapeListener = function () { };
+        /**
+         * Strategy to be used when handling scroll events while the overlay is open.
+         */
+        this.scrollStrategy = this._scrollStrategy();
+        /**
+         * Whether the overlay is open.
+         */
+        this.open = false;
+        /**
+         * Event emitted when the backdrop is clicked.
+         */
+        this.backdropClick = new _angular_core.EventEmitter();
+        /**
+         * Event emitted when the position has changed.
+         */
+        this.positionChange = new _angular_core.EventEmitter();
+        /**
+         * Event emitted when the overlay has been attached.
+         */
+        this.attach = new _angular_core.EventEmitter();
+        /**
+         * Event emitted when the overlay has been detached.
+         */
+        this.detach = new _angular_core.EventEmitter();
+        this._templatePortal = new _angular_cdk_portal.TemplatePortal(templateRef, viewContainerRef);
+    }
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "offsetX", {
+        /**
+         * The offset in pixels for the overlay connection point on the x-axis
+         * @return {?}
+         */
+        get: function () { return this._offsetX; },
+        /**
+         * @param {?} offsetX
+         * @return {?}
+         */
+        set: function (offsetX) {
+            this._offsetX = offsetX;
+            if (this._position) {
+                this._position.withOffsetX(offsetX);
+            }
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "offsetY", {
+        /**
+         * The offset in pixels for the overlay connection point on the y-axis
+         * @return {?}
+         */
+        get: function () { return this._offsetY; },
+        /**
+         * @param {?} offsetY
+         * @return {?}
+         */
+        set: function (offsetY) {
+            this._offsetY = offsetY;
+            if (this._position) {
+                this._position.withOffsetY(offsetY);
+            }
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "hasBackdrop", {
+        /**
+         * Whether or not the overlay should attach a backdrop.
+         * @return {?}
+         */
+        get: function () { return this._hasBackdrop; },
+        /**
+         * @param {?} value
+         * @return {?}
+         */
+        set: function (value) { this._hasBackdrop = _angular_cdk_coercion.coerceBooleanProperty(value); },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedOrigin", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.origin; },
+        /**
+         * @param {?} _origin
+         * @return {?}
+         */
+        set: function (_origin) { this.origin = _origin; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedPositions", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.positions; },
+        /**
+         * @param {?} _positions
+         * @return {?}
+         */
+        set: function (_positions) { this.positions = _positions; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedOffsetX", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.offsetX; },
+        /**
+         * @param {?} _offsetX
+         * @return {?}
+         */
+        set: function (_offsetX) { this.offsetX = _offsetX; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedOffsetY", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.offsetY; },
+        /**
+         * @param {?} _offsetY
+         * @return {?}
+         */
+        set: function (_offsetY) { this.offsetY = _offsetY; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedWidth", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.width; },
+        /**
+         * @param {?} _width
+         * @return {?}
+         */
+        set: function (_width) { this.width = _width; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedHeight", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.height; },
+        /**
+         * @param {?} _height
+         * @return {?}
+         */
+        set: function (_height) { this.height = _height; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedMinWidth", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.minWidth; },
+        /**
+         * @param {?} _minWidth
+         * @return {?}
+         */
+        set: function (_minWidth) { this.minWidth = _minWidth; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedMinHeight", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.minHeight; },
+        /**
+         * @param {?} _minHeight
+         * @return {?}
+         */
+        set: function (_minHeight) { this.minHeight = _minHeight; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedBackdropClass", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.backdropClass; },
+        /**
+         * @param {?} _backdropClass
+         * @return {?}
+         */
+        set: function (_backdropClass) { this.backdropClass = _backdropClass; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedScrollStrategy", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.scrollStrategy; },
+        /**
+         * @param {?} _scrollStrategy
+         * @return {?}
+         */
+        set: function (_scrollStrategy) {
+            this.scrollStrategy = _scrollStrategy;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedOpen", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.open; },
+        /**
+         * @param {?} _open
+         * @return {?}
+         */
+        set: function (_open) { this.open = _open; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedHasBackdrop", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.hasBackdrop; },
+        /**
+         * @param {?} _hasBackdrop
+         * @return {?}
+         */
+        set: function (_hasBackdrop) { this.hasBackdrop = _hasBackdrop; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "overlayRef", {
+        /**
+         * The associated overlay reference.
+         * @return {?}
+         */
+        get: function () {
+            return this._overlayRef;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "dir", {
+        /**
+         * The element's layout direction.
+         * @return {?}
+         */
+        get: function () {
+            return this._dir ? this._dir.value : 'ltr';
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype.ngOnDestroy = function () {
+        this._destroyOverlay();
+    };
+    /**
+     * @param {?} changes
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype.ngOnChanges = function (changes) {
+        if (changes['open'] || changes['_deprecatedOpen']) {
+            this.open ? this._attachOverlay() : this._detachOverlay();
+        }
+    };
+    /**
+     * Creates an overlay
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._createOverlay = function () {
+        if (!this.positions || !this.positions.length) {
+            this.positions = defaultPositionList;
+        }
+        this._overlayRef = this._overlay.create(this._buildConfig());
+    };
+    /**
+     * Builds the overlay config based on the directive's inputs
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._buildConfig = function () {
+        var /** @type {?} */ positionStrategy = this._position = this._createPositionStrategy();
+        var /** @type {?} */ overlayConfig = new OverlayConfig({
+            positionStrategy: positionStrategy,
+            scrollStrategy: this.scrollStrategy,
+            hasBackdrop: this.hasBackdrop
+        });
+        if (this.width || this.width === 0) {
+            overlayConfig.width = this.width;
+        }
+        if (this.height || this.height === 0) {
+            overlayConfig.height = this.height;
+        }
+        if (this.minWidth || this.minWidth === 0) {
+            overlayConfig.minWidth = this.minWidth;
+        }
+        if (this.minHeight || this.minHeight === 0) {
+            overlayConfig.minHeight = this.minHeight;
+        }
+        if (this.backdropClass) {
+            overlayConfig.backdropClass = this.backdropClass;
+        }
+        return overlayConfig;
+    };
+    /**
+     * Returns the position strategy of the overlay to be set on the overlay config
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._createPositionStrategy = function () {
+        var /** @type {?} */ pos = this.positions[0];
+        var /** @type {?} */ originPoint = { originX: pos.originX, originY: pos.originY };
+        var /** @type {?} */ overlayPoint = { overlayX: pos.overlayX, overlayY: pos.overlayY };
+        var /** @type {?} */ strategy = this._overlay.position()
+            .connectedTo(this.origin.elementRef, originPoint, overlayPoint)
+            .withOffsetX(this.offsetX)
+            .withOffsetY(this.offsetY);
+        this._handlePositionChanges(strategy);
+        return strategy;
+    };
+    /**
+     * @param {?} strategy
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._handlePositionChanges = function (strategy) {
+        var _this = this;
+        for (var /** @type {?} */ i = 1; i < this.positions.length; i++) {
+            strategy.withFallbackPosition({ originX: this.positions[i].originX, originY: this.positions[i].originY }, { overlayX: this.positions[i].overlayX, overlayY: this.positions[i].overlayY });
+        }
+        this._positionSubscription =
+            strategy.onPositionChange.subscribe(function (pos) { return _this.positionChange.emit(pos); });
+    };
+    /**
+     * Attaches the overlay and subscribes to backdrop clicks if backdrop exists
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._attachOverlay = function () {
+        var _this = this;
+        if (!this._overlayRef) {
+            this._createOverlay();
+        }
+        this._position.withDirection(this.dir);
+        this._overlayRef.getConfig().direction = this.dir;
+        this._initEscapeListener();
+        if (!this._overlayRef.hasAttached()) {
+            this._overlayRef.attach(this._templatePortal);
+            this.attach.emit();
+        }
+        if (this.hasBackdrop) {
+            this._backdropSubscription = this._overlayRef.backdropClick().subscribe(function () {
+                _this.backdropClick.emit();
+            });
+        }
+    };
+    /**
+     * Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._detachOverlay = function () {
+        if (this._overlayRef) {
+            this._overlayRef.detach();
+            this.detach.emit();
+        }
+        this._backdropSubscription.unsubscribe();
+        this._escapeListener();
+    };
+    /**
+     * Destroys the overlay created by this directive.
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._destroyOverlay = function () {
+        if (this._overlayRef) {
+            this._overlayRef.dispose();
+        }
+        this._backdropSubscription.unsubscribe();
+        this._positionSubscription.unsubscribe();
+        this._escapeListener();
+    };
+    /**
+     * Sets the event listener that closes the overlay when pressing Escape.
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._initEscapeListener = function () {
+        var _this = this;
+        this._escapeListener = this._renderer.listen('document', 'keydown', function (event) {
+            if (event.keyCode === _angular_cdk_keycodes.ESCAPE) {
+                _this._detachOverlay();
+            }
+        });
+    };
+    ConnectedOverlayDirective.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',
+                    exportAs: 'cdkConnectedOverlay'
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    ConnectedOverlayDirective.ctorParameters = function () { return [
+        { type: Overlay, },
+        { type: _angular_core.Renderer2, },
+        { type: _angular_core.TemplateRef, },
+        { type: _angular_core.ViewContainerRef, },
+        { type: undefined, decorators: [{ type: _angular_core.Inject, args: [MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,] },] },
+        { type: _angular_cdk_bidi.Directionality, decorators: [{ type: _angular_core.Optional },] },
+    ]; };
+    ConnectedOverlayDirective.propDecorators = {
+        'origin': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayOrigin',] },],
+        'positions': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayPositions',] },],
+        'offsetX': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayOffsetX',] },],
+        'offsetY': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayOffsetY',] },],
+        'width': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayWidth',] },],
+        'height': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayHeight',] },],
+        'minWidth': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayMinWidth',] },],
+        'minHeight': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayMinHeight',] },],
+        'backdropClass': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayBackdropClass',] },],
+        'scrollStrategy': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayScrollStrategy',] },],
+        'open': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayOpen',] },],
+        'hasBackdrop': [{ type: _angular_core.Input, args: ['cdkConnectedOverlayHasBackdrop',] },],
+        '_deprecatedOrigin': [{ type: _angular_core.Input, args: ['origin',] },],
+        '_deprecatedPositions': [{ type: _angular_core.Input, args: ['positions',] },],
+        '_deprecatedOffsetX': [{ type: _angular_core.Input, args: ['offsetX',] },],
+        '_deprecatedOffsetY': [{ type: _angular_core.Input, args: ['offsetY',] },],
+        '_deprecatedWidth': [{ type: _angular_core.Input, args: ['width',] },],
+        '_deprecatedHeight': [{ type: _angular_core.Input, args: ['height',] },],
+        '_deprecatedMinWidth': [{ type: _angular_core.Input, args: ['minWidth',] },],
+        '_deprecatedMinHeight': [{ type: _angular_core.Input, args: ['minHeight',] },],
+        '_deprecatedBackdropClass': [{ type: _angular_core.Input, args: ['backdropClass',] },],
+        '_deprecatedScrollStrategy': [{ type: _angular_core.Input, args: ['scrollStrategy',] },],
+        '_deprecatedOpen': [{ type: _angular_core.Input, args: ['open',] },],
+        '_deprecatedHasBackdrop': [{ type: _angular_core.Input, args: ['hasBackdrop',] },],
+        'backdropClick': [{ type: _angular_core.Output },],
+        'positionChange': [{ type: _angular_core.Output },],
+        'attach': [{ type: _angular_core.Output },],
+        'detach': [{ type: _angular_core.Output },],
+    };
+    return ConnectedOverlayDirective;
+}());
+
+var OVERLAY_PROVIDERS = [
+    Overlay,
+    OverlayPositionBuilder,
+    _angular_cdk_scrolling.VIEWPORT_RULER_PROVIDER,
+    OVERLAY_CONTAINER_PROVIDER,
+    MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,
+];
+var OverlayModule = (function () {
+    function OverlayModule() {
+    }
+    OverlayModule.decorators = [
+        { type: _angular_core.NgModule, args: [{
+                    imports: [_angular_cdk_portal.PortalModule, _angular_cdk_scrolling.ScrollDispatchModule],
+                    exports: [ConnectedOverlayDirective, OverlayOrigin, _angular_cdk_scrolling.ScrollDispatchModule],
+                    declarations: [ConnectedOverlayDirective, OverlayOrigin],
+                    providers: [OVERLAY_PROVIDERS, ScrollStrategyOptions],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    OverlayModule.ctorParameters = function () { return []; };
+    return OverlayModule;
+}());
+
+exports.Overlay = Overlay;
+exports.OverlayContainer = OverlayContainer;
+exports.FullscreenOverlayContainer = FullscreenOverlayContainer;
+exports.OverlayRef = OverlayRef;
+exports.ConnectedOverlayDirective = ConnectedOverlayDirective;
+exports.OverlayOrigin = OverlayOrigin;
+exports.ViewportRuler = _angular_cdk_scrolling.ViewportRuler;
+exports.GlobalPositionStrategy = GlobalPositionStrategy;
+exports.ConnectedPositionStrategy = ConnectedPositionStrategy;
+exports.VIEWPORT_RULER_PROVIDER = _angular_cdk_scrolling.VIEWPORT_RULER_PROVIDER;
+exports.OverlayConfig = OverlayConfig;
+exports.ConnectionPositionPair = ConnectionPositionPair;
+exports.ScrollingVisibility = ScrollingVisibility;
+exports.ConnectedOverlayPositionChange = ConnectedOverlayPositionChange;
+exports.Scrollable = _angular_cdk_scrolling.Scrollable;
+exports.ScrollDispatcher = _angular_cdk_scrolling.ScrollDispatcher;
+exports.ScrollStrategyOptions = ScrollStrategyOptions;
+exports.RepositionScrollStrategy = RepositionScrollStrategy;
+exports.CloseScrollStrategy = CloseScrollStrategy;
+exports.NoopScrollStrategy = NoopScrollStrategy;
+exports.BlockScrollStrategy = BlockScrollStrategy;
+exports.OVERLAY_PROVIDERS = OVERLAY_PROVIDERS;
+exports.OverlayModule = OverlayModule;
+exports.ɵb = OVERLAY_CONTAINER_PROVIDER;
+exports.ɵa = OVERLAY_CONTAINER_PROVIDER_FACTORY;
+exports.ɵc = MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY;
+exports.ɵe = MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER;
+exports.ɵd = MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY;
+exports.ɵf = OverlayPositionBuilder;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-overlay.umd.js.map


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/a11y.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/a11y.js.map b/node_modules/@angular/cdk/esm2015/a11y.js.map
new file mode 100644
index 0000000..67e7476
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/a11y.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"a11y.js","sources":["../../packages/cdk/a11y/list-key-manager.js","../../packages/cdk/a11y/activedescendant-key-manager.js","../../packages/cdk/a11y/aria-reference.js","../../packages/cdk/a11y/aria-describer.js","../../packages/cdk/a11y/fake-mousedown.js","../../packages/cdk/a11y/focus-key-manager.js","../../packages/cdk/a11y/interactivity-checker.js","../../packages/cdk/a11y/focus-trap.js","../../packages/cdk/a11y/live-announcer.js","../../packages/cdk/a11y/focus-monitor.js","../../packages/cdk/a11y/a11y-module.js","../../packages/cdk/a11y/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 { Subject } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { UP_ARROW, DOWN_ARROW, TAB, A, Z, ZERO, NINE } from '@angular/cdk/keycodes';\nimport { Rx
 Chain, debounceTime, filter, map, doOperator } from '@angular/cdk/rxjs';\n/**\n * This class manages keyboard events for selectable lists. If you pass it a query list\n * of items, it will set the active item correctly when arrow events occur.\n */\nexport class ListKeyManager {\n    /**\n     * @param {?} _items\n     */\n    constructor(_items) {\n        this._items = _items;\n        this._activeItemIndex = -1;\n        this._wrap = false;\n        this._letterKeyStream = new Subject();\n        this._typeaheadSubscription = Subscription.EMPTY;\n        this._pressedLetters = [];\n        /**\n         * Stream that emits any time the TAB key is pressed, so components can react\n         * when focus is shifted off of the list.\n         */\n        this.tabOut = new Subject();\n    }\n    /**\n     * Turns on wrapping mode, which ensures that the active item will wrap to\n     * the other end of list when there are no more items in the given direction.\n     * @return {?}\n    
  */\n    withWrap() {\n        this._wrap = true;\n        return this;\n    }\n    /**\n     * Turns on typeahead mode which allows users to set the active item by typing.\n     * @param {?=} debounceInterval Time to wait after the last keystroke before setting the active item.\n     * @return {?}\n     */\n    withTypeAhead(debounceInterval = 200) {\n        if (this._items.length && this._items.some(item => typeof item.getLabel !== 'function')) {\n            throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');\n        }\n        this._typeaheadSubscription.unsubscribe();\n        // Debounce the presses of non-navigational keys, collect the ones that correspond to letters\n        // and convert those letters back into a string. Afterwards find the first item that starts\n        // with that string and select it.\n        this._typeaheadSubscription = RxChain.from(this._letterKeyStream)\n            .call(doOperator, keyCode => this._pre
 ssedLetters.push(keyCode))\n            .call(debounceTime, debounceInterval)\n            .call(filter, () => this._pressedLetters.length > 0)\n            .call(map, () => this._pressedLetters.join(''))\n            .subscribe(inputString => {\n            const /** @type {?} */ items = this._items.toArray();\n            // Start at 1 because we want to start searching at the item immediately\n            // following the current active item.\n            for (let /** @type {?} */ i = 1; i < items.length + 1; i++) {\n                const /** @type {?} */ index = (this._activeItemIndex + i) % items.length;\n                const /** @type {?} */ item = items[index];\n                if (!item.disabled && ((item.getLabel))().toUpperCase().trim().indexOf(inputString) === 0) {\n                    this.setActiveItem(index);\n                    break;\n                }\n            }\n            this._pressedLetters = [];\n        });\n        return this;\n    }\n    /**\n     * 
 Sets the active item to the item at the index specified.\n     * @param {?} index The index of the item to be set as active.\n     * @return {?}\n     */\n    setActiveItem(index) {\n        this._activeItemIndex = index;\n        this._activeItem = this._items.toArray()[index];\n    }\n    /**\n     * Sets the active item depending on the key event passed in.\n     * @param {?} event Keyboard event to be used for determining which element should be active.\n     * @return {?}\n     */\n    onKeydown(event) {\n        switch (event.keyCode) {\n            case DOWN_ARROW:\n                this.setNextItemActive();\n                break;\n            case UP_ARROW:\n                this.setPreviousItemActive();\n                break;\n            case TAB:\n                this.tabOut.next();\n                return;\n            default:\n                const /** @type {?} */ keyCode = event.keyCode;\n                // Attempt to use the `event.key` which also maps it to the use
 r's keyboard language,\n                // otherwise fall back to resolving alphanumeric characters via the keyCode.\n                if (event.key && event.key.length === 1) {\n                    this._letterKeyStream.next(event.key.toLocaleUpperCase());\n                }\n                else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {\n                    this._letterKeyStream.next(String.fromCharCode(keyCode));\n                }\n                // Note that we return here, in order to avoid preventing\n                // the default action of non-navigational keys.\n                return;\n        }\n        this._pressedLetters = [];\n        event.preventDefault();\n    }\n    /**\n     * Index of the currently active item.\n     * @return {?}\n     */\n    get activeItemIndex() {\n        return this._activeItemIndex;\n    }\n    /**\n     * The active item.\n     * @return {?}\n     */\n    get activeItem() {\n        return this._activ
 eItem;\n    }\n    /**\n     * Sets the active item to the first enabled item in the list.\n     * @return {?}\n     */\n    setFirstItemActive() {\n        this._setActiveItemByIndex(0, 1);\n    }\n    /**\n     * Sets the active item to the last enabled item in the list.\n     * @return {?}\n     */\n    setLastItemActive() {\n        this._setActiveItemByIndex(this._items.length - 1, -1);\n    }\n    /**\n     * Sets the active item to the next enabled item in the list.\n     * @return {?}\n     */\n    setNextItemActive() {\n        this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);\n    }\n    /**\n     * Sets the active item to a previous enabled item in the list.\n     * @return {?}\n     */\n    setPreviousItemActive() {\n        this._activeItemIndex < 0 && this._wrap ? this.setLastItemActive()\n            : this._setActiveItemByDelta(-1);\n    }\n    /**\n     * Allows setting of the activeItemIndex without any other effects.\n     * @p
 aram {?} index The new activeItemIndex.\n     * @return {?}\n     */\n    updateActiveItemIndex(index) {\n        this._activeItemIndex = index;\n    }\n    /**\n     * This method sets the active item, given a list of items and the delta between the\n     * currently active item and the new active item. It will calculate differently\n     * depending on whether wrap mode is turned on.\n     * @param {?} delta\n     * @param {?=} items\n     * @return {?}\n     */\n    _setActiveItemByDelta(delta, items = this._items.toArray()) {\n        this._wrap ? this._setActiveInWrapMode(delta, items)\n            : this._setActiveInDefaultMode(delta, items);\n    }\n    /**\n     * Sets the active item properly given \"wrap\" mode. In other words, it will continue to move\n     * down the list until it finds an item that is not disabled, and it will wrap if it\n     * encounters either end of the list.\n     * @param {?} delta\n     * @param {?} items\n     * @return {?}\n     */\n    _setAct
 iveInWrapMode(delta, items) {\n        // when active item would leave menu, wrap to beginning or end\n        this._activeItemIndex =\n            (this._activeItemIndex + delta + items.length) % items.length;\n        // skip all disabled menu items recursively until an enabled one is reached\n        if (items[this._activeItemIndex].disabled) {\n            this._setActiveInWrapMode(delta, items);\n        }\n        else {\n            this.setActiveItem(this._activeItemIndex);\n        }\n    }\n    /**\n     * Sets the active item properly given the default mode. In other words, it will\n     * continue to move down the list until it finds an item that is not disabled. If\n     * it encounters either end of the list, it will stop and not wrap.\n     * @param {?} delta\n     * @param {?} items\n     * @return {?}\n     */\n    _setActiveInDefaultMode(delta, items) {\n        this._setActiveItemByIndex(this._activeItemIndex + delta, delta, items);\n    }\n    /**\n     * Sets th
 e active item to the first enabled item starting at the index specified. If the\n     * item is disabled, it will move in the fallbackDelta direction until it either\n     * finds an enabled item or encounters the end of the list.\n     * @param {?} index\n     * @param {?} fallbackDelta\n     * @param {?=} items\n     * @return {?}\n     */\n    _setActiveItemByIndex(index, fallbackDelta, items = this._items.toArray()) {\n        if (!items[index]) {\n            return;\n        }\n        while (items[index].disabled) {\n            index += fallbackDelta;\n            if (!items[index]) {\n                return;\n            }\n        }\n        this.setActiveItem(index);\n    }\n}\nfunction ListKeyManager_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ListKeyManager.prototype._activeItemIndex;\n    /** @type {?} */\n    ListKeyManager.prototype._activeItem;\n    /** @type {?} */\n    ListKeyManager.prototype._wrap;\n    /** @type {?} */\n    ListKeyManager.protot
 ype._letterKeyStream;\n    /** @type {?} */\n    ListKeyManager.prototype._typeaheadSubscription;\n    /** @type {?} */\n    ListKeyManager.prototype._pressedLetters;\n    /**\n     * Stream that emits any time the TAB key is pressed, so components can react\n     * when focus is shifted off of the list.\n     * @type {?}\n     */\n    ListKeyManager.prototype.tabOut;\n    /** @type {?} */\n    ListKeyManager.prototype._items;\n}\n//# sourceMappingURL=list-key-manager.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 { ListKeyManager } from './list-key-manager';\nexport class ActiveDescendantKeyManager extends ListKeyManager {\n    /**\n     * This method sets the active item to the item at the specified index.\n     * It also adds active styles to the newly active item and removes active\n     * styles from t
 he previously active item.\n     * @param {?} index\n     * @return {?}\n     */\n    setActiveItem(index) {\n        if (this.activeItem) {\n            this.activeItem.setInactiveStyles();\n        }\n        super.setActiveItem(index);\n        if (this.activeItem) {\n            this.activeItem.setActiveStyles();\n        }\n    }\n}\n//# sourceMappingURL=activedescendant-key-manager.js.map","/**\n * IDs are deliminated by an empty space, as per the spec.\n */\nconst ID_DELIMINATOR = ' ';\n/**\n * Adds the given ID to the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n * @param {?} el\n * @param {?} attr\n * @param {?} id\n * @return {?}\n */\nexport function addAriaReferencedId(el, attr, id) {\n    const /** @type {?} */ ids = getAriaReferenceIds(el, attr);\n    if (ids.some(existingId => existingId.trim() == id.trim())) {\n        return;\n    }\n    ids.push(id.trim());\n    el.setAttribute(attr, ids.join(ID_DELIMINAT
 OR));\n}\n/**\n * Removes the given ID from the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n * @param {?} el\n * @param {?} attr\n * @param {?} id\n * @return {?}\n */\nexport function removeAriaReferencedId(el, attr, id) {\n    const /** @type {?} */ ids = getAriaReferenceIds(el, attr);\n    const /** @type {?} */ filteredIds = ids.filter(val => val != id.trim());\n    el.setAttribute(attr, filteredIds.join(ID_DELIMINATOR));\n}\n/**\n * Gets the list of IDs referenced by the given ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n * @param {?} el\n * @param {?} attr\n * @return {?}\n */\nexport function getAriaReferenceIds(el, attr) {\n    // Get string array of all individual ids (whitespace deliminated) in the attribute value\n    return (el.getAttribute(attr) || '').match(/\\S+/g) || [];\n}\n//# sourceMappingURL=aria-reference.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';\nimport { Platform } from '@angular/cdk/platform';\nimport { addAriaReferencedId, getAriaReferenceIds, removeAriaReferencedId } from './aria-reference';\n/**\n * ID used for the body container where all messages are appended.\n */\nexport const MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';\n/**\n * ID prefix used for each created message element.\n */\nexport const CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';\n/**\n * Attribute given to each host element that is described by a message element.\n */\nexport const CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';\n/**\n * Global incremental identifier for each registered message element.\n */\nlet nextId = 0;\n/**\n * Global map of all registered message elements that ha
 ve been placed into the document.\n */\nconst messageRegistry = new Map();\n/**\n * Container for all registered messages.\n */\nlet messagesContainer = null;\n/**\n * Utility that creates visually hidden elements with a message content. Useful for elements that\n * want to use aria-describedby to further describe themselves without adding additional visual\n * content.\n * \\@docs-private\n */\nexport class AriaDescriber {\n    /**\n     * @param {?} _platform\n     */\n    constructor(_platform) {\n        this._platform = _platform;\n    }\n    /**\n     * Adds to the host element an aria-describedby reference to a hidden element that contains\n     * the message. If the same message has already been registered, then it will reuse the created\n     * message element.\n     * @param {?} hostElement\n     * @param {?} message\n     * @return {?}\n     */\n    describe(hostElement, message) {\n        if (!this._platform.isBrowser || !message.trim()) {\n            return;\n        
 }\n        if (!messageRegistry.has(message)) {\n            createMessageElement(message);\n        }\n        if (!isElementDescribedByMessage(hostElement, message)) {\n            addMessageReference(hostElement, message);\n        }\n    }\n    /**\n     * Removes the host element's aria-describedby reference to the message element.\n     * @param {?} hostElement\n     * @param {?} message\n     * @return {?}\n     */\n    removeDescription(hostElement, message) {\n        if (!this._platform.isBrowser || !message.trim()) {\n            return;\n        }\n        if (isElementDescribedByMessage(hostElement, message)) {\n            removeMessageReference(hostElement, message);\n        }\n        const /** @type {?} */ registeredMessage = messageRegistry.get(message);\n        if (registeredMessage && registeredMessage.referenceCount === 0) {\n            deleteMessageElement(message);\n        }\n        if (messagesContainer && messagesContainer.childNodes.length === 0) {\n  
           deleteMessagesContainer();\n        }\n    }\n    /**\n     * Unregisters all created message elements and removes the message container.\n     * @return {?}\n     */\n    ngOnDestroy() {\n        if (!this._platform.isBrowser) {\n            return;\n        }\n        const /** @type {?} */ describedElements = document.querySelectorAll(`[${CDK_DESCRIBEDBY_HOST_ATTRIBUTE}]`);\n        for (let /** @type {?} */ i = 0; i < describedElements.length; i++) {\n            removeCdkDescribedByReferenceIds(describedElements[i]);\n            describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n        }\n        if (messagesContainer) {\n            deleteMessagesContainer();\n        }\n        messageRegistry.clear();\n    }\n}\nAriaDescriber.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nAriaDescriber.ctorParameters = () => [\n    { type: Platform, },\n];\nfunction AriaDescriber_tsickle_Closure_declarations() {\n    /** @type {?} */\
 n    AriaDescriber.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    AriaDescriber.ctorParameters;\n    /** @type {?} */\n    AriaDescriber.prototype._platform;\n}\n/**\n * Creates a new element in the visually hidden message container element with the message\n * as its content and adds it to the message registry.\n * @param {?} message\n * @return {?}\n */\nfunction createMessageElement(message) {\n    const /** @type {?} */ messageElement = document.createElement('div');\n    messageElement.setAttribute('id', `${CDK_DESCRIBEDBY_ID_PREFIX}-${nextId++}`);\n    messageElement.appendChild(/** @type {?} */ ((document.createTextNode(message))));\n    if (!messagesContainer) {\n        createMessagesContainer();\n    } /** @type {?} */\n    ((messagesContainer)).appendChild(messageElement);\n    messageRegistry.set(message, { messageElement, referenceCount: 0 });\n}\n/**\n * Deletes the message element from the global messages container.\n * @param {?} message\n *
  @return {?}\n */\nfunction deleteMessageElement(message) {\n    const /** @type {?} */ registeredMessage = messageRegistry.get(message);\n    const /** @type {?} */ messageElement = registeredMessage && registeredMessage.messageElement;\n    if (messagesContainer && messageElement) {\n        messagesContainer.removeChild(messageElement);\n    }\n    messageRegistry.delete(message);\n}\n/**\n * Creates the global container for all aria-describedby messages.\n * @return {?}\n */\nfunction createMessagesContainer() {\n    messagesContainer = document.createElement('div');\n    messagesContainer.setAttribute('id', MESSAGES_CONTAINER_ID);\n    messagesContainer.setAttribute('aria-hidden', 'true');\n    messagesContainer.style.display = 'none';\n    document.body.appendChild(messagesContainer);\n}\n/**\n * Deletes the global messages container.\n * @return {?}\n */\nfunction deleteMessagesContainer() {\n    document.body.removeChild(/** @type {?} */ ((messagesContainer)));\n    messages
 Container = null;\n}\n/**\n * Removes all cdk-describedby messages that are hosted through the element.\n * @param {?} element\n * @return {?}\n */\nfunction removeCdkDescribedByReferenceIds(element) {\n    // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX\n    const /** @type {?} */ originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby')\n        .filter(id => id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0);\n    element.setAttribute('aria-describedby', originalReferenceIds.join(' '));\n}\n/**\n * Adds a message reference to the element using aria-describedby and increments the registered\n * message's reference count.\n * @param {?} element\n * @param {?} message\n * @return {?}\n */\nfunction addMessageReference(element, message) {\n    const /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));\n    // Add the aria-describedby reference and set the describedby_host attribute to mark the element.\n    addAriaR
 eferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n    element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, '');\n    registeredMessage.referenceCount++;\n}\n/**\n * Removes a message reference from the element using aria-describedby and decrements the registered\n * message's reference count.\n * @param {?} element\n * @param {?} message\n * @return {?}\n */\nfunction removeMessageReference(element, message) {\n    const /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));\n    registeredMessage.referenceCount--;\n    removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n    element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n}\n/**\n * Returns true if the element has been described by the provided message ID.\n * @param {?} element\n * @param {?} message\n * @return {?}\n */\nfunction isElementDescribedByMessage(element, message) {\n    const /** @type {?} */ referenceIds = getAriaReferenceId
 s(element, 'aria-describedby');\n    const /** @type {?} */ registeredMessage = messageRegistry.get(message);\n    const /** @type {?} */ messageId = registeredMessage && registeredMessage.messageElement.id;\n    return !!messageId && referenceIds.indexOf(messageId) != -1;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} platform\n * @return {?}\n */\nexport function ARIA_DESCRIBER_PROVIDER_FACTORY(parentDispatcher, platform) {\n    return parentDispatcher || new AriaDescriber(platform);\n}\n/**\n * \\@docs-private\n */\nexport const ARIA_DESCRIBER_PROVIDER = {\n    // If there is already an AriaDescriber available, use that. Otherwise, provide a new one.\n    provide: AriaDescriber,\n    deps: [\n        [new Optional(), new SkipSelf(), AriaDescriber],\n        Platform\n    ],\n    useFactory: ARIA_DESCRIBER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=aria-describer.js.map","/**\n * Screenreaders will often fire fake mousedown events when a focusable eleme
 nt\n * is activated using the keyboard. We can typically distinguish between these faked\n * mousedown events and real mousedown events using the \"buttons\" property. While\n * real mousedowns will indicate the mouse button that was pressed (e.g. \"1\" for\n * the left mouse button), faked mousedowns will usually set the property value to 0.\n * @param {?} event\n * @return {?}\n */\nexport function isFakeMousedownFromScreenReader(event) {\n    return event.buttons === 0;\n}\n//# sourceMappingURL=fake-mousedown.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 { ListKeyManager } from './list-key-manager';\nexport class FocusKeyManager extends ListKeyManager {\n    /**\n     * This method sets the active item to the item at the specified index.\n     * It also adds focuses the newly active item.\n     * @param
  {?} index\n     * @return {?}\n     */\n    setActiveItem(index) {\n        super.setActiveItem(index);\n        if (this.activeItem) {\n            this.activeItem.focus();\n        }\n    }\n}\n//# sourceMappingURL=focus-key-manager.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 } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\n/**\n * Utility for checking the interactivity of an element, such as whether is is focusable or\n * tabbable.\n */\nexport class InteractivityChecker {\n    /**\n     * @param {?} _platform\n     */\n    constructor(_platform) {\n        this._platform = _platform;\n    }\n    /**\n     * Gets whether an element is disabled.\n     *\n     * @param {?} element Element to be checked.\n     * @return {?} Whether the element is disabled.\n     *
 /\n    isDisabled(element) {\n        // This does not capture some cases, such as a non-form control with a disabled attribute or\n        // a form control inside of a disabled form, but should capture the most common cases.\n        return element.hasAttribute('disabled');\n    }\n    /**\n     * Gets whether an element is visible for the purposes of interactivity.\n     *\n     * This will capture states like `display: none` and `visibility: hidden`, but not things like\n     * being clipped by an `overflow: hidden` parent or being outside the viewport.\n     *\n     * @param {?} element\n     * @return {?} Whether the element is visible.\n     */\n    isVisible(element) {\n        return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';\n    }\n    /**\n     * Gets whether an element can be reached via Tab key.\n     * Assumes that the element has already been checked with isFocusable.\n     *\n     * @param {?} element Element to be checked.\n     * @
 return {?} Whether the element is tabbable.\n     */\n    isTabbable(element) {\n        // Nothing is tabbable on the the server 😎\n        if (!this._platform.isBrowser) {\n            return false;\n        }\n        let /** @type {?} */ frameElement = (getWindow(element).frameElement);\n        if (frameElement) {\n            let /** @type {?} */ frameType = frameElement && frameElement.nodeName.toLowerCase();\n            // Frame elements inherit their tabindex onto all child elements.\n            if (getTabIndexValue(frameElement) === -1) {\n                return false;\n            }\n            // Webkit and Blink consider anything inside of an <object> element as non-tabbable.\n            if ((this._platform.BLINK || this._platform.WEBKIT) && frameType === 'object') {\n                return false;\n            }\n            // Webkit and Blink disable tabbing to an element inside of an invisible frame.\n            if ((this._platform.BLINK || this._platform.WEB
 KIT) && !this.isVisible(frameElement)) {\n                return false;\n            }\n        }\n        let /** @type {?} */ nodeName = element.nodeName.toLowerCase();\n        let /** @type {?} */ tabIndexValue = getTabIndexValue(element);\n        if (element.hasAttribute('contenteditable')) {\n            return tabIndexValue !== -1;\n        }\n        if (nodeName === 'iframe') {\n            // The frames may be tabbable depending on content, but it's not possibly to reliably\n            // investigate the content of the frames.\n            return false;\n        }\n        if (nodeName === 'audio') {\n            if (!element.hasAttribute('controls')) {\n                // By default an <audio> element without the controls enabled is not tabbable.\n                return false;\n            }\n            else if (this._platform.BLINK) {\n                // In Blink <audio controls> elements are always tabbable.\n                return true;\n            }\n        }\n  
       if (nodeName === 'video') {\n            if (!element.hasAttribute('controls') && this._platform.TRIDENT) {\n                // In Trident a <video> element without the controls enabled is not tabbable.\n                return false;\n            }\n            else if (this._platform.BLINK || this._platform.FIREFOX) {\n                // In Chrome and Firefox <video controls> elements are always tabbable.\n                return true;\n            }\n        }\n        if (nodeName === 'object' && (this._platform.BLINK || this._platform.WEBKIT)) {\n            // In all Blink and WebKit based browsers <object> elements are never tabbable.\n            return false;\n        }\n        // In iOS the browser only considers some specific elements as tabbable.\n        if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {\n            return false;\n        }\n        return element.tabIndex >= 0;\n    }\n    /**\n     * Gets whether an element 
 can be focused by the user.\n     *\n     * @param {?} element Element to be checked.\n     * @return {?} Whether the element is focusable.\n     */\n    isFocusable(element) {\n        // Perform checks in order of left to most expensive.\n        // Again, naive approach that does not capture many edge cases and browser quirks.\n        return isPotentiallyFocusable(element) && !this.isDisabled(element) && this.isVisible(element);\n    }\n}\nInteractivityChecker.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nInteractivityChecker.ctorParameters = () => [\n    { type: Platform, },\n];\nfunction InteractivityChecker_tsickle_Closure_declarations() {\n    /** @type {?} */\n    InteractivityChecker.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    InteractivityChecker.ctorParameters;\n    /** @type {?} */\n    InteractivityChecker.prototype._platform;\n}\n/**\n * Checks whether the specified element has any geometry / rectangles.\n * @par
 am {?} element\n * @return {?}\n */\nfunction hasGeometry(element) {\n    // Use logic from jQuery to check for an invisible element.\n    // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n    return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);\n}\n/**\n * Gets whether an element's\n * @param {?} element\n * @return {?}\n */\nfunction isNativeFormElement(element) {\n    let /** @type {?} */ nodeName = element.nodeName.toLowerCase();\n    return nodeName === 'input' ||\n        nodeName === 'select' ||\n        nodeName === 'button' ||\n        nodeName === 'textarea';\n}\n/**\n * Gets whether an element is an <input type=\"hidden\">.\n * @param {?} element\n * @return {?}\n */\nfunction isHiddenInput(element) {\n    return isInputElement(element) && element.type == 'hidden';\n}\n/**\n * Gets whether an element is an anchor that has an href attribute.\n * @param {?} element\n * @return {?}\n */\nfunction 
 isAnchorWithHref(element) {\n    return isAnchorElement(element) && element.hasAttribute('href');\n}\n/**\n * Gets whether an element is an input element.\n * @param {?} element\n * @return {?}\n */\nfunction isInputElement(element) {\n    return element.nodeName.toLowerCase() == 'input';\n}\n/**\n * Gets whether an element is an anchor element.\n * @param {?} element\n * @return {?}\n */\nfunction isAnchorElement(element) {\n    return element.nodeName.toLowerCase() == 'a';\n}\n/**\n * Gets whether an element has a valid tabindex.\n * @param {?} element\n * @return {?}\n */\nfunction hasValidTabIndex(element) {\n    if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n        return false;\n    }\n    let /** @type {?} */ tabIndex = element.getAttribute('tabindex');\n    // IE11 parses tabindex=\"\" as the value \"-32768\"\n    if (tabIndex == '-32768') {\n        return false;\n    }\n    return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Ret
 urns the parsed tabindex from the element attributes instead of returning the\n * evaluated tabindex from the browsers defaults.\n * @param {?} element\n * @return {?}\n */\nfunction getTabIndexValue(element) {\n    if (!hasValidTabIndex(element)) {\n        return null;\n    }\n    // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n    const /** @type {?} */ tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);\n    return isNaN(tabIndex) ? -1 : tabIndex;\n}\n/**\n * Checks whether the specified element is potentially tabbable on iOS\n * @param {?} element\n * @return {?}\n */\nfunction isPotentiallyTabbableIOS(element) {\n    let /** @type {?} */ nodeName = element.nodeName.toLowerCase();\n    let /** @type {?} */ inputType = nodeName === 'input' && ((element)).type;\n    return inputType === 'text'\n        || inputType === 'password'\n        || nodeName === 'select'\n        || nodeName === 'textarea';\n}\n/**\n * Gets whether an elem
 ent is potentially focusable without taking current visible/disabled state\n * into account.\n * @param {?} element\n * @return {?}\n */\nfunction isPotentiallyFocusable(element) {\n    // Inputs are potentially focusable *unless* they're type=\"hidden\".\n    if (isHiddenInput(element)) {\n        return false;\n    }\n    return isNativeFormElement(element) ||\n        isAnchorWithHref(element) ||\n        element.hasAttribute('contenteditable') ||\n        hasValidTabIndex(element);\n}\n/**\n * Gets the parent window of a DOM node with regards of being inside of an iframe.\n * @param {?} node\n * @return {?}\n */\nfunction getWindow(node) {\n    return node.ownerDocument.defaultView || window;\n}\n//# sourceMappingURL=interactivity-checker.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, Eleme
 ntRef, Input, NgZone, Injectable, } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport { first } from '@angular/cdk/rxjs';\nimport { InteractivityChecker } from './interactivity-checker';\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * NOTE: This class currently uses a very simple (naive) approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like tabIndex > 0, flex `order`, and shadow roots can cause to two to misalign.\n * This will be replaced with a more intelligent solution before the library is considered stable.\n */\nexport class FocusTrap {\n    /**\n     * @param {?} _element\n     * @param {?} _platform\n     * @param {?} _checker\n     * @param {?} _ngZone\n     * @param {?=} deferAnchors\n     */\n    constructor(_element, _platform, _checker, _ngZone, deferAnchors = false) {\
 n        this._element = _element;\n        this._platform = _platform;\n        this._checker = _checker;\n        this._ngZone = _ngZone;\n        this._enabled = true;\n        if (!deferAnchors) {\n            this.attachAnchors();\n        }\n    }\n    /**\n     * Whether the focus trap is active.\n     * @return {?}\n     */\n    get enabled() { return this._enabled; }\n    /**\n     * @param {?} val\n     * @return {?}\n     */\n    set enabled(val) {\n        this._enabled = val;\n        if (this._startAnchor && this._endAnchor) {\n            this._startAnchor.tabIndex = this._endAnchor.tabIndex = this._enabled ? 0 : -1;\n        }\n    }\n    /**\n     * Destroys the focus trap by cleaning up the anchors.\n     * @return {?}\n     */\n    destroy() {\n        if (this._startAnchor && this._startAnchor.parentNode) {\n            this._startAnchor.parentNode.removeChild(this._startAnchor);\n        }\n        if (this._endAnchor && this._endAnchor.parentNode) {\n          
   this._endAnchor.parentNode.removeChild(this._endAnchor);\n        }\n        this._startAnchor = this._endAnchor = null;\n    }\n    /**\n     * Inserts the anchors into the DOM. This is usually done automatically\n     * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n     * @return {?}\n     */\n    attachAnchors() {\n        // If we're not on the browser, there can be no focus to trap.\n        if (!this._platform.isBrowser) {\n            return;\n        }\n        if (!this._startAnchor) {\n            this._startAnchor = this._createAnchor();\n        }\n        if (!this._endAnchor) {\n            this._endAnchor = this._createAnchor();\n        }\n        this._ngZone.runOutsideAngular(() => {\n            ((this._startAnchor)).addEventListener('focus', () => {\n                this.focusLastTabbableElement();\n            }); /** @type {?} */\n            ((this._endAnchor)).addEventListener('focus', () => {\n                this.focusFi
 rstTabbableElement();\n            });\n            if (this._element.parentNode) {\n                this._element.parentNode.insertBefore(/** @type {?} */ ((this._startAnchor)), this._element);\n                this._element.parentNode.insertBefore(/** @type {?} */ ((this._endAnchor)), this._element.nextSibling);\n            }\n        });\n    }\n    /**\n     * Waits for the zone to stabilize, then either focuses the first element that the\n     * user specified, or the first tabbable element.\n     * @return {?} Returns a promise that resolves with a boolean, depending\n     * on whether focus was moved successfuly.\n     */\n    focusInitialElementWhenReady() {\n        return new Promise(resolve => {\n            this._executeOnStable(() => resolve(this.focusInitialElement()));\n        });\n    }\n    /**\n     * Waits for the zone to stabilize, then focuses\n     * the first tabbable element within the focus trap region.\n     * @return {?} Returns a promise that resolves w
 ith a boolean, depending\n     * on whether focus was moved successfuly.\n     */\n    focusFirstTabbableElementWhenReady() {\n        return new Promise(resolve => {\n            this._executeOnStable(() => resolve(this.focusFirstTabbableElement()));\n        });\n    }\n    /**\n     * Waits for the zone to stabilize, then focuses\n     * the last tabbable element within the focus trap region.\n     * @return {?} Returns a promise that resolves with a boolean, depending\n     * on whether focus was moved successfuly.\n     */\n    focusLastTabbableElementWhenReady() {\n        return new Promise(resolve => {\n            this._executeOnStable(() => resolve(this.focusLastTabbableElement()));\n        });\n    }\n    /**\n     * Get the specified boundary element of the trapped region.\n     * @param {?} bound The boundary to get (start or end of trapped region).\n     * @return {?} The boundary element.\n     */\n    _getRegionBoundary(bound) {\n        // Contains the deprecated v
 ersion of selector, for temporary backwards comparability.\n        let /** @type {?} */ markers = (this._element.querySelectorAll(`[cdk-focus-region-${bound}], ` +\n            `[cdk-focus-${bound}]`));\n        for (let /** @type {?} */ i = 0; i < markers.length; i++) {\n            if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {\n                console.warn(`Found use of deprecated attribute 'cdk-focus-${bound}',` +\n                    ` use 'cdk-focus-region-${bound}' instead.`, markers[i]);\n            }\n        }\n        if (bound == 'start') {\n            return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);\n        }\n        return markers.length ?\n            markers[markers.length - 1] : this._getLastTabbableElement(this._element);\n    }\n    /**\n     * Focuses the element that should be focused when the focus trap is initialized.\n     * @return {?} Returns whether focus was moved successfuly.\n     */\n    focusInitialElement(
 ) {\n        const /** @type {?} */ redirectToElement = (this._element.querySelector('[cdk-focus-initial]'));\n        if (redirectToElement) {\n            redirectToElement.focus();\n            return true;\n        }\n        return this.focusFirstTabbableElement();\n    }\n    /**\n     * Focuses the first tabbable element within the focus trap region.\n     * @return {?} Returns whether focus was moved successfuly.\n     */\n    focusFirstTabbableElement() {\n        const /** @type {?} */ redirectToElement = this._getRegionBoundary('start');\n        if (redirectToElement) {\n            redirectToElement.focus();\n        }\n        return !!redirectToElement;\n    }\n    /**\n     * Focuses the last tabbable element within the focus trap region.\n     * @return {?} Returns whether focus was moved successfuly.\n     */\n    focusLastTabbableElement() {\n        const /** @type {?} */ redirectToElement = this._getRegionBoundary('end');\n        if (redirectToElement) {\n     
        redirectToElement.focus();\n        }\n        return !!redirectToElement;\n    }\n    /**\n     * Get the first tabbable element from a DOM subtree (inclusive).\n     * @param {?} root\n     * @return {?}\n     */\n    _getFirstTabbableElement(root) {\n        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n            return root;\n        }\n        // Iterate in DOM order. Note that IE doesn't have `children` for SVG so we fall\n        // back to `childNodes` which includes text nodes, comments etc.\n        let /** @type {?} */ children = root.children || root.childNodes;\n        for (let /** @type {?} */ i = 0; i < children.length; i++) {\n            let /** @type {?} */ tabbableChild = children[i].nodeType === Node.ELEMENT_NODE ?\n                this._getFirstTabbableElement(/** @type {?} */ (children[i])) :\n                null;\n            if (tabbableChild) {\n                return tabbableChild;\n            }\n        }\n        re
 turn null;\n    }\n    /**\n     * Get the last tabbable element from a DOM subtree (inclusive).\n     * @param {?} root\n     * @return {?}\n     */\n    _getLastTabbableElement(root) {\n        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n            return root;\n        }\n        // Iterate in reverse DOM order.\n        let /** @type {?} */ children = root.children || root.childNodes;\n        for (let /** @type {?} */ i = children.length - 1; i >= 0; i--) {\n            let /** @type {?} */ tabbableChild = children[i].nodeType === Node.ELEMENT_NODE ?\n                this._getLastTabbableElement(/** @type {?} */ (children[i])) :\n                null;\n            if (tabbableChild) {\n                return tabbableChild;\n            }\n        }\n        return null;\n    }\n    /**\n     * Creates an anchor element.\n     * @return {?}\n     */\n    _createAnchor() {\n        let /** @type {?} */ anchor = document.createElement('div');\n      
   anchor.tabIndex = this._enabled ? 0 : -1;\n        anchor.classList.add('cdk-visually-hidden');\n        anchor.classList.add('cdk-focus-trap-anchor');\n        return anchor;\n    }\n    /**\n     * Executes a function when the zone is stable.\n     * @param {?} fn\n     * @return {?}\n     */\n    _executeOnStable(fn) {\n        if (this._ngZone.isStable) {\n            fn();\n        }\n        else {\n            first.call(this._ngZone.onStable.asObservable()).subscribe(fn);\n        }\n    }\n}\nfunction FocusTrap_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FocusTrap.prototype._startAnchor;\n    /** @type {?} */\n    FocusTrap.prototype._endAnchor;\n    /** @type {?} */\n    FocusTrap.prototype._enabled;\n    /** @type {?} */\n    FocusTrap.prototype._element;\n    /** @type {?} */\n    FocusTrap.prototype._platform;\n    /** @type {?} */\n    FocusTrap.prototype._checker;\n    /** @type {?} */\n    FocusTrap.prototype._ngZone;\n}\n/**\n * Factory that allows
  easy instantiation of focus traps.\n */\nexport class FocusTrapFactory {\n    /**\n     * @param {?} _checker\n     * @param {?} _platform\n     * @param {?} _ngZone\n     */\n    constructor(_checker, _platform, _ngZone) {\n        this._checker = _checker;\n        this._platform = _platform;\n        this._ngZone = _ngZone;\n    }\n    /**\n     * @param {?} element\n     * @param {?=} deferAnchors\n     * @return {?}\n     */\n    create(element, deferAnchors = false) {\n        return new FocusTrap(element, this._platform, this._checker, this._ngZone, deferAnchors);\n    }\n}\nFocusTrapFactory.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nFocusTrapFactory.ctorParameters = () => [\n    { type: InteractivityChecker, },\n    { type: Platform, },\n    { type: NgZone, },\n];\nfunction FocusTrapFactory_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FocusTrapFactory.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    FocusT
 rapFactory.ctorParameters;\n    /** @type {?} */\n    FocusTrapFactory.prototype._checker;\n    /** @type {?} */\n    FocusTrapFactory.prototype._platform;\n    /** @type {?} */\n    FocusTrapFactory.prototype._ngZone;\n}\n/**\n * Directive for trapping focus within a region.\n * @deprecated\n */\nexport class FocusTrapDeprecatedDirective {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _focusTrapFactory\n     */\n    constructor(_elementRef, _focusTrapFactory) {\n        this._elementRef = _elementRef;\n        this._focusTrapFactory = _focusTrapFactory;\n        this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n    }\n    /**\n     * Whether the focus trap is active.\n     * @return {?}\n     */\n    get disabled() { return !this.focusTrap.enabled; }\n    /**\n     * @param {?} val\n     * @return {?}\n     */\n    set disabled(val) {\n        this.focusTrap.enabled = !coerceBooleanProperty(val);\n    }\n    /**\n     * @return {?}\
 n     */\n    ngOnDestroy() {\n        this.focusTrap.destroy();\n    }\n    /**\n     * @return {?}\n     */\n    ngAfterContentInit() {\n        this.focusTrap.attachAnchors();\n    }\n}\nFocusTrapDeprecatedDirective.decorators = [\n    { type: Directive, args: [{\n                selector: 'cdk-focus-trap',\n            },] },\n];\n/**\n * @nocollapse\n */\nFocusTrapDeprecatedDirective.ctorParameters = () => [\n    { type: ElementRef, },\n    { type: FocusTrapFactory, },\n];\nFocusTrapDeprecatedDirective.propDecorators = {\n    'disabled': [{ type: Input },],\n};\nfunction FocusTrapDeprecatedDirective_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FocusTrapDeprecatedDirective.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    FocusTrapDeprecatedDirective.ctorParameters;\n    /** @type {?} */\n    FocusTrapDeprecatedDirective.propDecorators;\n    /** @type {?} */\n    FocusTrapDeprecatedDirective.prototype.focusTrap;\n    /** @type {?} */\n    Fo
 cusTrapDeprecatedDirective.prototype._elementRef;\n    /** @type {?} */\n    FocusTrapDeprecatedDirective.prototype._focusTrapFactory;\n}\n/**\n * Directive for trapping focus within a region.\n */\nexport class FocusTrapDirective {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _focusTrapFactory\n     */\n    constructor(_elementRef, _focusTrapFactory) {\n        this._elementRef = _elementRef;\n        this._focusTrapFactory = _focusTrapFactory;\n        this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n    }\n    /**\n     * Whether the focus trap is active.\n     * @return {?}\n     */\n    get enabled() { return this.focusTrap.enabled; }\n    /**\n     * @param {?} value\n     * @return {?}\n     */\n    set enabled(value) { this.focusTrap.enabled = coerceBooleanProperty(value); }\n    /**\n     * @return {?}\n     */\n    ngOnDestroy() {\n        this.focusTrap.destroy();\n    }\n    /**\n     * @return {?}\n     */\n    ngAfter
 ContentInit() {\n        this.focusTrap.attachAnchors();\n    }\n}\nFocusTrapDirective.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdkTrapFocus]',\n                exportAs: 'cdkTrapFocus',\n            },] },\n];\n/**\n * @nocollapse\n */\nFocusTrapDirective.ctorParameters = () => [\n    { type: ElementRef, },\n    { type: FocusTrapFactory, },\n];\nFocusTrapDirective.propDecorators = {\n    'enabled': [{ type: Input, args: ['cdkTrapFocus',] },],\n};\nfunction FocusTrapDirective_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FocusTrapDirective.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    FocusTrapDirective.ctorParameters;\n    /** @type {?} */\n    FocusTrapDirective.propDecorators;\n    /** @type {?} */\n    FocusTrapDirective.prototype.focusTrap;\n    /** @type {?} */\n    FocusTrapDirective.prototype._elementRef;\n    /** @type {?} */\n    FocusTrapDirective.prototype._focusTrapFactory;\n}\n//# sourceMappin
 gURL=focus-trap.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, InjectionToken, Optional, Inject, SkipSelf, } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nexport const /** @type {?} */ LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken('liveAnnouncerElement');\nexport class LiveAnnouncer {\n    /**\n     * @param {?} elementToken\n     * @param {?} platform\n     */\n    constructor(elementToken, platform) {\n        // Only do anything if we're on the browser platform.\n        if (platform.isBrowser) {\n            // We inject the live element as `any` because the constructor signature cannot reference\n            // browser globals (HTMLElement) on non-browser environments, since having a class decorator\n            // causes TypeScript to preserve the construc
 tor signature types.\n            this._liveElement = elementToken || this._createLiveElement();\n        }\n    }\n    /**\n     * Announces a message to screenreaders.\n     * @param {?} message Message to be announced to the screenreader\n     * @param {?=} politeness The politeness of the announcer element\n     * @return {?}\n     */\n    announce(message, politeness = 'polite') {\n        this._liveElement.textContent = '';\n        // TODO: ensure changing the politeness works on all environments we support.\n        this._liveElement.setAttribute('aria-live', politeness);\n        // This 100ms timeout is necessary for some browser + screen-reader combinations:\n        // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.\n        // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a\n        //   second time without clearing and then using a non-zero delay.\n        // (using JAWS 17 at time of this w
 riting).\n        setTimeout(() => this._liveElement.textContent = message, 100);\n    }\n    /**\n     * @return {?}\n     */\n    ngOnDestroy() {\n        if (this._liveElement && this._liveElement.parentNode) {\n            this._liveElement.parentNode.removeChild(this._liveElement);\n        }\n    }\n    /**\n     * @return {?}\n     */\n    _createLiveElement() {\n        let /** @type {?} */ liveEl = document.createElement('div');\n        liveEl.classList.add('cdk-visually-hidden');\n        liveEl.setAttribute('aria-atomic', 'true');\n        liveEl.setAttribute('aria-live', 'polite');\n        document.body.appendChild(liveEl);\n        return liveEl;\n    }\n}\nLiveAnnouncer.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nLiveAnnouncer.ctorParameters = () => [\n    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LIVE_ANNOUNCER_ELEMENT_TOKEN,] },] },\n    { type: Platform, },\n];\nfunction LiveAnnouncer_tsickle_Closure_de
 clarations() {\n    /** @type {?} */\n    LiveAnnouncer.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    LiveAnnouncer.ctorParameters;\n    /** @type {?} */\n    LiveAnnouncer.prototype._liveElement;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} liveElement\n * @param {?} platform\n * @return {?}\n */\nexport function LIVE_ANNOUNCER_PROVIDER_FACTORY(parentDispatcher, liveElement, platform) {\n    return parentDispatcher || new LiveAnnouncer(liveElement, platform);\n}\n/**\n * \\@docs-private\n */\nexport const LIVE_ANNOUNCER_PROVIDER = {\n    // If there is already a LiveAnnouncer available, use that. Otherwise, provide a new one.\n    provide: LiveAnnouncer,\n    deps: [\n        [new Optional(), new SkipSelf(), LiveAnnouncer],\n        [new Optional(), new Inject(LIVE_ANNOUNCER_ELEMENT_TOKEN)],\n        Platform,\n    ],\n    useFactory: LIVE_ANNOUNCER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=live-announcer.js.map","/**\n * @l
 icense\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 { Platform } from '@angular/cdk/platform';\nimport { Directive, ElementRef, EventEmitter, Injectable, NgZone, Optional, Output, Renderer2, SkipSelf, } from '@angular/core';\nimport { of as observableOf } from 'rxjs/observable/of';\nimport { Subject } from 'rxjs/Subject';\n// This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found\n// that a value of around 650ms seems appropriate.\nexport const /** @type {?} */ TOUCH_BUFFER_MS = 650;\n/**\n * Monitors mouse and keyboard events to determine the cause of focus events.\n */\nexport class FocusMonitor {\n    /**\n     * @param {?} _ngZone\n     * @param {?} _platform\n     */\n    constructor(_ngZone, _platform) {\n        this._ngZone = _ngZone;\n        this._platform = _platform;\n        /*
 *\n         * The focus origin that the next focus event is a result of.\n         */\n        this._origin = null;\n        /**\n         * Whether the window has just been focused.\n         */\n        this._windowFocused = false;\n        /**\n         * Weak map of elements being monitored to their info.\n         */\n        this._elementInfo = new WeakMap();\n        this._ngZone.runOutsideAngular(() => this._registerDocumentEvents());\n    }\n    /**\n     * Monitors focus on an element and applies appropriate CSS classes.\n     * @param {?} element The element to monitor\n     * @param {?} renderer The renderer to use to apply CSS classes to the element.\n     * @param {?} checkChildren Whether to count the element as focused when its children are focused.\n     * @return {?} An observable that emits when the focus state of the element changes.\n     *     When the element is blurred, null will be emitted.\n     */\n    monitor(element, renderer, checkChildren) {\n        /
 / Do nothing if we're not on the browser platform.\n        if (!this._platform.isBrowser) {\n            return observableOf(null);\n        }\n        // Check if we're already monitoring this element.\n        if (this._elementInfo.has(element)) {\n            let /** @type {?} */ cachedInfo = this._elementInfo.get(element); /** @type {?} */\n            ((cachedInfo)).checkChildren = checkChildren;\n            return ((cachedInfo)).subject.asObservable();\n        }\n        // Create monitored element info.\n        let /** @type {?} */ info = {\n            unlisten: () => { },\n            checkChildren: checkChildren,\n            renderer: renderer,\n            subject: new Subject()\n        };\n        this._elementInfo.set(element, info);\n        // Start listening. We need to listen in capture phase since focus events don't bubble.\n        let /** @type {?} */ focusListener = (event) => this._onFocus(event, element);\n        let /** @type {?} */ blurListener = (eve
 nt) => this._onBlur(event, element);\n        this._ngZone.runOutsideAngular(() => {\n            element.addEventListener('focus', focusListener, true);\n            element.addEventListener('blur', blurListener, true);\n        });\n        // Create an unlisten function for later.\n        info.unlisten = () => {\n            element.removeEventListener('focus', focusListener, true);\n            element.removeEventListener('blur', blurListener, true);\n        };\n        return info.subject.asObservable();\n    }\n    /**\n     * Stops monitoring an element and removes all focus classes.\n     * @param {?} element The element to stop monitoring.\n     * @return {?}\n     */\n    stopMonitoring(element) {\n        let /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (elementInfo) {\n            elementInfo.unlisten();\n            elementInfo.subject.complete();\n            this._setClasses(element);\n            this._elementInfo.delete(element);\n   
      }\n    }\n    /**\n     * Focuses the element via the specified focus origin.\n     * @param {?} element The element to focus.\n     * @param {?} origin The focus origin.\n     * @return {?}\n     */\n    focusVia(element, origin) {\n        this._setOriginForCurrentEventQueue(origin);\n        element.focus();\n    }\n    /**\n     * Register necessary event listeners on the document and window.\n     * @return {?}\n     */\n    _registerDocumentEvents() {\n        // Do nothing if we're not on the browser platform.\n        if (!this._platform.isBrowser) {\n            return;\n        }\n        // Note: we listen to events in the capture phase so we can detect them even if the user stops\n        // propagation.\n        // On keydown record the origin and clear any touch event that may be in progress.\n        document.addEventListener('keydown', () => {\n            this._lastTouchTarget = null;\n            this._setOriginForCurrentEventQueue('keyboard');\n        }, tru
 e);\n        // On mousedown record the origin only if there is not touch target, since a mousedown can\n        // happen as a result of a touch event.\n        document.addEventListener('mousedown', () => {\n            if (!this._lastTouchTarget) {\n                this._setOriginForCurrentEventQueue('mouse');\n            }\n        }, true);\n        // When the touchstart event fires the focus event is not yet in the event queue. This means\n        // we can't rely on the trick used above (setting timeout of 0ms). Instead we wait 650ms to\n        // see if a focus happens.\n        document.addEventListener('touchstart', (event) => {\n            if (this._touchTimeout != null) {\n                clearTimeout(this._touchTimeout);\n            }\n            this._lastTouchTarget = event.target;\n            this._touchTimeout = setTimeout(() => this._lastTouchTarget = null, TOUCH_BUFFER_MS);\n        }, true);\n        // Make a note of when the window regains focus, so we c
 an restore the origin info for the\n        // focused element.\n        window.addEventListener('focus', () => {\n            this._windowFocused = true;\n            setTimeout(() => this._windowFocused = false, 0);\n        });\n    }\n    /**\n     * Sets the focus classes on the element based on the given focus origin.\n     * @param {?} element The element to update the classes on.\n     * @param {?=} origin The focus origin.\n     * @return {?}\n     */\n    _setClasses(element, origin) {\n        const /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (elementInfo) {\n            const /** @type {?} */ toggleClass = (className, shouldSet) => {\n                shouldSet ? elementInfo.renderer.addClass(element, className) :\n                    elementInfo.renderer.removeClass(element, className);\n            };\n            toggleClass('cdk-focused', !!origin);\n            toggleClass('cdk-touch-focused', origin === 'touch');\n            toggleCla
 ss('cdk-keyboard-focused', origin === 'keyboard');\n            toggleClass('cdk-mouse-focused', origin === 'mouse');\n            toggleClass('cdk-program-focused', origin === 'program');\n        }\n    }\n    /**\n     * Sets the origin and schedules an async function to clear it at the end of the event queue.\n     * @param {?} origin The origin to set.\n     * @return {?}\n     */\n    _setOriginForCurrentEventQueue(origin) {\n        this._origin = origin;\n        setTimeout(() => this._origin = null, 0);\n    }\n    /**\n     * Checks whether the given focus event was caused by a touchstart event.\n     * @param {?} event The focus event to check.\n     * @return {?} Whether the event was caused by a touch.\n     */\n    _wasCausedByTouch(event) {\n        // Note(mmalerba): This implementation is not quite perfect, there is a small edge case.\n        // Consider the following dom structure:\n        //\n        // <div #parent tabindex=\"0\" cdkFocusClasses>\n        //   
 <div #child (click)=\"#parent.focus()\"></div>\n        // </div>\n        //\n        // If the user touches the #child element and the #parent is programmatically focused as a\n        // result, this code will still consider it to have been caused by the touch event and will\n        // apply the cdk-touch-focused class rather than the cdk-program-focused class. This is a\n        // relatively small edge-case that can be worked around by using\n        // focusVia(parentEl, renderer,  'program') to focus the parent element.\n        //\n        // If we decide that we absolutely must handle this case correctly, we can do so by listening\n        // for the first focus event after the touchstart, and then the first blur event after that\n        // focus event. When that blur event fires we know that whatever follows is not a result of the\n        // touchstart.\n        let /** @type {?} */ focusTarget = event.target;\n        return this._lastTouchTarget instanceof Node && foc
 usTarget instanceof Node &&\n            (focusTarget === this._lastTouchTarget || focusTarget.contains(this._lastTouchTarget));\n    }\n    /**\n     * Handles focus events on a registered element.\n     * @param {?} event The focus event.\n     * @param {?} element The monitored element.\n     * @return {?}\n     */\n    _onFocus(event, element) {\n        // NOTE(mmalerba): We currently set the classes based on the focus origin of the most recent\n        // focus event affecting the monitored element. If we want to use the origin of the first event\n        // instead we should check for the cdk-focused class here and return if the element already has\n        // it. (This only matters for elements that have includesChildren = true).\n        // If we are not counting child-element-focus as focused, make sure that the event target is the\n        // monitored element itself.\n        const /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (!elementInfo |
 | (!elementInfo.checkChildren && element !== event.target)) {\n            return;\n        }\n        // If we couldn't detect a cause for the focus event, it's due to one of three reasons:\n        // 1) The window has just regained focus, in which case we want to restore the focused state of\n        //    the element from before the window blurred.\n        // 2) It was caused by a touch event, in which case we mark the origin as 'touch'.\n        // 3) The element was programmatically focused, in which case we should mark the origin as\n        //    'program'.\n        if (!this._origin) {\n            if (this._windowFocused && this._lastFocusOrigin) {\n                this._origin = this._lastFocusOrigin;\n            }\n            else if (this._wasCausedByTouch(event)) {\n                this._origin = 'touch';\n            }\n            else {\n                this._origin = 'program';\n            }\n        }\n        this._setClasses(element, this._origin);\n        
 elementInfo.subject.next(this._origin);\n        this._lastFocusOrigin = this._origin;\n        this._origin = null;\n    }\n    /**\n     * Handles blur events on a registered element.\n     * @param {?} event The blur event.\n     * @param {?} element The monitored element.\n     * @return {?}\n     */\n    _onBlur(event, element) {\n        // If we are counting child-element-focus as focused, make sure that we aren't just blurring in\n        // order to focus another child of the monitored element.\n        const /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (!elementInfo || (elementInfo.checkChildren && event.relatedTarget instanceof Node &&\n            element.contains(event.relatedTarget))) {\n            return;\n        }\n        this._setClasses(element);\n        elementInfo.subject.next(null);\n    }\n}\nFocusMonitor.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nFocusMonitor.ctorParameters = () => [\n    { type: 
 NgZone, },\n    { type: Platform, },\n];\nfunction FocusMonitor_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FocusMonitor.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    FocusMonitor.ctorParameters;\n    /**\n     * The focus origin that the next focus event is a result of.\n     * @type {?}\n     */\n    FocusMonitor.prototype._origin;\n    /**\n     * The FocusOrigin of the last focus event tracked by the FocusMonitor.\n     * @type {?}\n     */\n    FocusMonitor.prototype._lastFocusOrigin;\n    /**\n     * Whether the window has just been focused.\n     * @type {?}\n     */\n    FocusMonitor.prototype._windowFocused;\n    /**\n     * The target of the last touch event.\n     * @type {?}\n     */\n    FocusMonitor.prototype._lastTouchTarget;\n    /**\n     * The timeout id of the touch timeout, used to cancel timeout later.\n     * @type {?}\n     */\n    FocusMonitor.prototype._touchTimeout;\n    /**\n     * Weak map of elements being monit
 ored to their info.\n     * @type {?}\n     */\n    FocusMonitor.prototype._elementInfo;\n    /** @type {?} */\n    FocusMonitor.prototype._ngZone;\n    /** @type {?} */\n    FocusMonitor.prototype._platform;\n}\n/**\n * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or\n * programmatically) and adds corresponding classes to the element.\n *\n * There are two variants of this directive:\n * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is\n *    focused.\n * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.\n */\nexport class CdkMonitorFocus {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _focusMonitor\n     * @param {?} renderer\n     */\n    constructor(_elementRef, _focusMonitor, renderer) {\n        this._elementRef = _elementRef;\n        this._focusMonitor = _focusMonitor;\n        this.cdkFocusChange = new EventEmitter();\n  
       this._monitorSubscription = this._focusMonitor.monitor(this._elementRef.nativeElement, renderer, this._elementRef.nativeElement.hasAttribute('cdkMonitorSubtreeFocus'))\n            .subscribe(origin => this.cdkFocusChange.emit(origin));\n    }\n    /**\n     * @return {?}\n     */\n    ngOnDestroy() {\n        this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);\n        this._monitorSubscription.unsubscribe();\n    }\n}\nCdkMonitorFocus.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkMonitorFocus.ctorParameters = () => [\n    { type: ElementRef, },\n    { type: FocusMonitor, },\n    { type: Renderer2, },\n];\nCdkMonitorFocus.propDecorators = {\n    'cdkFocusChange': [{ type: Output },],\n};\nfunction CdkMonitorFocus_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkMonitorFocus.decorators;\n    /**\n     * @nocollaps
 e\n     * @type {?}\n     */\n    CdkMonitorFocus.ctorParameters;\n    /** @type {?} */\n    CdkMonitorFocus.propDecorators;\n    /** @type {?} */\n    CdkMonitorFocus.prototype._monitorSubscription;\n    /** @type {?} */\n    CdkMonitorFocus.prototype.cdkFocusChange;\n    /** @type {?} */\n    CdkMonitorFocus.prototype._elementRef;\n    /** @type {?} */\n    CdkMonitorFocus.prototype._focusMonitor;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} ngZone\n * @param {?} platform\n * @return {?}\n */\nexport function FOCUS_MONITOR_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {\n    return parentDispatcher || new FocusMonitor(ngZone, platform);\n}\n/**\n * \\@docs-private\n */\nexport const FOCUS_MONITOR_PROVIDER = {\n    // If there is already a FocusMonitor available, use that. Otherwise, provide a new one.\n    provide: FocusMonitor,\n    deps: [[new Optional(), new SkipSelf(), FocusMonitor], NgZone, Platform],\n    useFactory: FOCUS_MONITOR_PROVIDE
 R_FACTORY\n};\n//# sourceMappingURL=focus-monitor.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 { FocusTrapDeprecatedDirective, FocusTrapDirective, FocusTrapFactory } from './focus-trap';\nimport { LIVE_ANNOUNCER_PROVIDER } from './live-announcer';\nimport { InteractivityChecker } from './interactivity-checker';\nimport { CommonModule } from '@angular/common';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { AriaDescriber, ARIA_DESCRIBER_PROVIDER } from './aria-describer';\nimport { CdkMonitorFocus, FOCUS_MONITOR_PROVIDER } from './focus-monitor';\nexport class A11yModule {\n}\nA11yModule.decorators = [\n    { type: NgModule, args: [{\n                imports: [CommonModule, PlatformModule],\n                declarations: [FocusTrapDirective, Foc
 usTrapDeprecatedDirective, CdkMonitorFocus],\n                exports: [FocusTrapDirective, FocusTrapDeprecatedDirective, CdkMonitorFocus],\n                providers: [\n                    InteractivityChecker,\n                    FocusTrapFactory,\n                    AriaDescriber,\n                    LIVE_ANNOUNCER_PROVIDER,\n                    ARIA_DESCRIBER_PROVIDER,\n                    FOCUS_MONITOR_PROVIDER,\n                ]\n            },] },\n];\n/**\n * @nocollapse\n */\nA11yModule.ctorParameters = () => [];\nfunction A11yModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    A11yModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    A11yModule.ctorParameters;\n}\n//# sourceMappingURL=a11y-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { ActiveDescendantKeyManager, MESSAGES_CONTAINER_ID, CDK_DESCRIBEDBY_ID_PREFIX, CDK_DESCRIBEDBY_HOST_ATTRIBUTE, AriaDescriber, ARIA_DESCRIBER_PROVIDER_FACTORY, ARIA_DES
 CRIBER_PROVIDER, isFakeMousedownFromScreenReader, FocusKeyManager, FocusTrap, FocusTrapFactory, FocusTrapDeprecatedDirective, FocusTrapDirective, InteractivityChecker, ListKeyManager, LIVE_ANNOUNCER_ELEMENT_TOKEN, LiveAnnouncer, LIVE_ANNOUNCER_PROVIDER_FACTORY, LIVE_ANNOUNCER_PROVIDER, TOUCH_BUFFER_MS, FocusMonitor, CdkMonitorFocus, FOCUS_MONITOR_PROVIDER_FACTORY, FOCUS_MONITOR_PROVIDER, A11yModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["observableOf"],"mappings":"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

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-table.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-table.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-table.umd.min.js
new file mode 100644
index 0000000..afa65b8
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-table.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs/operator/takeUntil"),require("rxjs/BehaviorSubject"),require("rxjs/Subject"),require("@angular/common"),require("@angular/cdk/collections")):"function"==typeof define&&define.amd?define(["exports","@angular/core","rxjs/operator/takeUntil","rxjs/BehaviorSubject","rxjs/Subject","@angular/common","@angular/cdk/collections"],t):t((e.ng=e.ng||{},e.ng.cdk=e.ng.cdk||{},e.ng.cdk.table=e.ng.cdk.table||{}),e.ng.core,e.Rx.Observable.prototype,e.Rx,e.Rx,e.ng.common,e.ng.cdk.collections)}(this,function(e,t,r,n,o,i,a){"use strict";function c(e,t){function r(){this.constructor=e}d(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function s(e){return Error('cdk-table: Could not find column with id "'+e+'".')}function l(e){return Error('cdk-table: Duplicate column definition name provided: "'+e+'".')}function u(){return Error("cdk-table: There can only be one
  default row without a when predicate function.")}function f(){return Error("cdk-table: Could not find a matching row definition for the provided row data.")}var d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},h="<ng-container cdkCellOutlet></ng-container>",p=function(){function e(e,t){this.template=e,this._differs=t}return e.prototype.ngOnChanges=function(e){var t=e.columns.currentValue||[];this._columnsDiffer||(this._columnsDiffer=this._differs.find(t).create(),this._columnsDiffer.diff(t))},e.prototype.getColumnsDiff=function(){return this._columnsDiffer.diff(this.columns)},e}(),m=function(e){function r(t,r){return e.call(this,t,r)||this}return c(r,e),r.decorators=[{type:t.Directive,args:[{selector:"[cdkHeaderRowDef]",inputs:["columns: cdkHeaderRowDef"]}]}],r.ctorParameters=function(){return[{type:t.TemplateRef},{type:t.IterableDiffers}]},r}(p),_=function(e){function r(t,r){return
  e.call(this,t,r)||this}return c(r,e),r.decorators=[{type:t.Directive,args:[{selector:"[cdkRowDef]",inputs:["columns: cdkRowDefColumns","when: cdkRowDefWhen"]}]}],r.ctorParameters=function(){return[{type:t.TemplateRef},{type:t.IterableDiffers}]},r}(p),w=function(){function e(t){this._viewContainer=t,e.mostRecentCellOutlet=this}return e.decorators=[{type:t.Directive,args:[{selector:"[cdkCellOutlet]"}]}],e.ctorParameters=function(){return[{type:t.ViewContainerRef}]},e}(),y=function(){function e(){}return e.decorators=[{type:t.Component,args:[{selector:"cdk-header-row",template:h,host:{class:"cdk-header-row",role:"row"},changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsulation.None,preserveWhitespaces:!1}]}],e.ctorParameters=function(){return[]},e}(),C=function(){function e(){}return e.decorators=[{type:t.Component,args:[{selector:"cdk-row",template:h,host:{class:"cdk-row",role:"row"},changeDetection:t.ChangeDetectionStrategy.OnPush,encapsulation:t.ViewEncapsul
 ation.None,preserveWhitespaces:!1}]}],e.ctorParameters=function(){return[]},e}(),g=function(){function e(e){this.template=e}return e.decorators=[{type:t.Directive,args:[{selector:"[cdkCellDef]"}]}],e.ctorParameters=function(){return[{type:t.TemplateRef}]},e}(),D=function(){function e(e){this.template=e}return e.decorators=[{type:t.Directive,args:[{selector:"[cdkHeaderCellDef]"}]}],e.ctorParameters=function(){return[{type:t.TemplateRef}]},e}(),v=function(){function e(){}return Object.defineProperty(e.prototype,"name",{get:function(){return this._name},set:function(e){this._name=e,this.cssClassFriendlyName=e.replace(/[^a-z0-9_-]/gi,"-")},enumerable:!0,configurable:!0}),e.decorators=[{type:t.Directive,args:[{selector:"[cdkColumnDef]"}]}],e.ctorParameters=function(){return[]},e.propDecorators={name:[{type:t.Input,args:["cdkColumnDef"]}],cell:[{type:t.ContentChild,args:[g]}],headerCell:[{type:t.ContentChild,args:[D]}]},e}(),R=function(){function e(e,t,r){r.addClass(t.nativeElement,"cdk-c
 olumn-"+e.cssClassFriendlyName)}return e.decorators=[{type:t.Directive,args:[{selector:"cdk-header-cell",host:{class:"cdk-header-cell",role:"columnheader"}}]}],e.ctorParameters=function(){return[{type:v},{type:t.ElementRef},{type:t.Renderer2}]},e}(),k=function(){function e(e,t,r){r.addClass(t.nativeElement,"cdk-column-"+e.cssClassFriendlyName)}return e.decorators=[{type:t.Directive,args:[{selector:"cdk-cell",host:{class:"cdk-cell",role:"gridcell"}}]}],e.ctorParameters=function(){return[{type:v},{type:t.ElementRef},{type:t.Renderer2}]},e}(),b=function(){function e(e){this.viewContainer=e}return e.decorators=[{type:t.Directive,args:[{selector:"[rowPlaceholder]"}]}],e.ctorParameters=function(){return[{type:t.ViewContainerRef}]},e}(),P=function(){function e(e){this.viewContainer=e}return e.decorators=[{type:t.Directive,args:[{selector:"[headerRowPlaceholder]"}]}],e.ctorParameters=function(){return[{type:t.ViewContainerRef}]},e}(),S="\n  <ng-container headerRowPlaceholder></ng-container>
 \n  <ng-container rowPlaceholder></ng-container>",E=function(){function e(e,t,r,i,a){this._differs=e,this._changeDetectorRef=t,this._onDestroy=new o.Subject,this._data=[],this._columnDefsByName=new Map,this.viewChange=new n.BehaviorSubject({start:0,end:Number.MAX_VALUE}),a||i.setAttribute(r.nativeElement,"role","grid")}return Object.defineProperty(e.prototype,"trackBy",{get:function(){return this._trackByFn},set:function(e){t.isDevMode()&&null!=e&&"function"!=typeof e&&console&&console.warn&&console.warn("trackBy must be a function, but received "+JSON.stringify(e)+"."),this._trackByFn=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataSource",{get:function(){return this._dataSource},set:function(e){this._dataSource!==e&&this._switchDataSource(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this._dataDiffer=this._differs.find([]).create(this._trackByFn)},e.prototype.ngAfterContentInit=function(){var e=this;this._cacheColumnDefsByName(),this
 ._columnDefs.changes.subscribe(function(){return e._cacheColumnDefsByName()}),this._renderHeaderRow()},e.prototype.ngAfterContentChecked=function(){this._renderUpdatedColumns();var e=this._rowDefs.filter(function(e){return!e.when});if(e.length>1)throw u();this._defaultRowDef=e[0],this.dataSource&&!this._renderChangeSubscription&&this._observeRenderChanges()},e.prototype.ngOnDestroy=function(){this._rowPlaceholder.viewContainer.clear(),this._headerRowPlaceholder.viewContainer.clear(),this._onDestroy.next(),this._onDestroy.complete(),this.dataSource&&this.dataSource.disconnect(this)},e.prototype._cacheColumnDefsByName=function(){var e=this;this._columnDefsByName.clear(),this._columnDefs.forEach(function(t){if(e._columnDefsByName.has(t.name))throw l(t.name);e._columnDefsByName.set(t.name,t)})},e.prototype._renderUpdatedColumns=function(){var e=this;this._rowDefs.forEach(function(t){t.getColumnsDiff()&&(e._dataDiffer.diff([]),e._rowPlaceholder.viewContainer.clear(),e._renderRowChanges()
 )}),this._headerDef.getColumnsDiff()&&(this._headerRowPlaceholder.viewContainer.clear(),this._renderHeaderRow())},e.prototype._switchDataSource=function(e){this._data=[],this.dataSource&&this.dataSource.disconnect(this),this._renderChangeSubscription&&(this._renderChangeSubscription.unsubscribe(),this._renderChangeSubscription=null),e||this._rowPlaceholder.viewContainer.clear(),this._dataSource=e},e.prototype._observeRenderChanges=function(){var e=this;this._renderChangeSubscription=r.takeUntil.call(this.dataSource.connect(this),this._onDestroy).subscribe(function(t){e._data=t,e._renderRowChanges()})},e.prototype._renderHeaderRow=function(){var e=this._getHeaderCellTemplatesForRow(this._headerDef);e.length&&(this._headerRowPlaceholder.viewContainer.createEmbeddedView(this._headerDef.template,{cells:e}),e.forEach(function(e){w.mostRecentCellOutlet._viewContainer.createEmbeddedView(e.template,{})}),this._changeDetectorRef.markForCheck())},e.prototype._renderRowChanges=function(){var e
 =this,t=this._dataDiffer.diff(this._data);if(t){var r=this._rowPlaceholder.viewContainer;t.forEachOperation(function(t,n,o){if(null==t.previousIndex)e._insertRow(e._data[o],o);else if(null==o)r.remove(n);else{var i=r.get(n);r.move(i,o)}}),this._updateRowContext()}},e.prototype._getRowDef=function(e,t){if(1==this._rowDefs.length)return this._rowDefs.first;var r=this._rowDefs.find(function(r){return r.when&&r.when(e,t)})||this._defaultRowDef;if(!r)throw f();return r},e.prototype._insertRow=function(e,t){var r=this._getRowDef(e,t),n={$implicit:e};this._rowPlaceholder.viewContainer.createEmbeddedView(r.template,n,t),(e?this._getCellTemplatesForRow(r):[]).forEach(function(e){w.mostRecentCellOutlet._viewContainer.createEmbeddedView(e.template,n)}),this._changeDetectorRef.markForCheck()},e.prototype._updateRowContext=function(){for(var e=this._rowPlaceholder.viewContainer,t=0,r=e.length;t<r;t++){var n=e.get(t);n.context.index=t,n.context.count=r,n.context.first=0===t,n.context.last=t===r-1
 ,n.context.even=t%2==0,n.context.odd=!n.context.even}},e.prototype._getHeaderCellTemplatesForRow=function(e){var t=this;return e.columns?e.columns.map(function(e){var r=t._columnDefsByName.get(e);if(!r)throw s(e);return r.headerCell}):[]},e.prototype._getCellTemplatesForRow=function(e){var t=this;return e.columns?e.columns.map(function(e){var r=t._columnDefsByName.get(e);if(!r)throw s(e);return r.cell}):[]},e.decorators=[{type:t.Component,args:[{selector:"cdk-table",exportAs:"cdkTable",template:S,host:{class:"cdk-table"},encapsulation:t.ViewEncapsulation.None,preserveWhitespaces:!1,changeDetection:t.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:t.IterableDiffers},{type:t.ChangeDetectorRef},{type:t.ElementRef},{type:t.Renderer2},{type:void 0,decorators:[{type:t.Attribute,args:["role"]}]}]},e.propDecorators={trackBy:[{type:t.Input}],dataSource:[{type:t.Input}],_rowPlaceholder:[{type:t.ViewChild,args:[b]}],_headerRowPlaceholder:[{type:t.ViewChild,args:[P]}
 ],_columnDefs:[{type:t.ContentChildren,args:[v]}],_headerDef:[{type:t.ContentChild,args:[m]}],_rowDefs:[{type:t.ContentChildren,args:[_]}]},e}(),x=[E,_,g,w,D,v,k,C,R,y,m,b,P],O=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[i.CommonModule],exports:[x],declarations:[x]}]}],e.ctorParameters=function(){return[]},e}();e.DataSource=a.DataSource,e.RowPlaceholder=b,e.HeaderRowPlaceholder=P,e.CDK_TABLE_TEMPLATE=S,e.CdkTable=E,e.CdkCellDef=g,e.CdkHeaderCellDef=D,e.CdkColumnDef=v,e.CdkHeaderCell=R,e.CdkCell=k,e.CDK_ROW_TEMPLATE=h,e.BaseRowDef=p,e.CdkHeaderRowDef=m,e.CdkRowDef=_,e.CdkCellOutlet=w,e.CdkHeaderRow=y,e.CdkRow=C,e.CdkTableModule=O,Object.defineProperty(e,"__esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-table.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-table.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-table.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-table.umd.min.js.map
new file mode 100644
index 0000000..355d0d9
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-table.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-table.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","table","core","Rx","Observable","prototype","common","collections","this","_angular_core","rxjs_operator_takeUntil","rxjs_BehaviorSubject","rxjs_Subject","_angular_common","_angular_cdk_collections","__extends","d","b","__","constructor","extendStatics","Object","create","getTableUnknownColumnError","id","Error","getTableDuplicateColumnNameError","name","getTableMultipleDefaultRowDefsError","getTableMissingMatchingRowDefError","setPrototypeOf","__proto__","Array","p","hasOwnProperty","CDK_ROW_TEMPLATE","BaseRowDef","template","_differs","ngOnChanges","changes","columns","currentValue","_columnsDiffer","find","diff","getColumnsDiff","CdkHeaderRowDef","_super","call","decorators","type","Directive","args","selector","inputs","ctorParameters","TemplateRef","IterableDiffers","CdkRowDef","CdkCellOutlet","_viewContaine
 r","mostRecentCellOutlet","ViewContainerRef","CdkHeaderRow","Component","host","class","role","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","preserveWhitespaces","CdkRow","CdkCellDef","CdkHeaderCellDef","CdkColumnDef","defineProperty","get","_name","set","cssClassFriendlyName","replace","enumerable","configurable","propDecorators","Input","cell","ContentChild","headerCell","CdkHeaderCell","columnDef","elementRef","renderer","addClass","nativeElement","ElementRef","Renderer2","CdkCell","RowPlaceholder","viewContainer","HeaderRowPlaceholder","CDK_TABLE_TEMPLATE","CdkTable","_changeDetectorRef","_onDestroy","Subject","_data","_columnDefsByName","Map","viewChange","BehaviorSubject","start","end","Number","MAX_VALUE","setAttribute","_trackByFn","fn","isDevMode","console","warn","JSON","stringify","_dataSource","dataSource","_switchDataSource","ngOnInit","_dataDiffer","ngAfterContentInit","_this","_cacheColumnDefsByName","_columnDefs","sub
 scribe","_renderHeaderRow","ngAfterContentChecked","_renderUpdatedColumns","defaultRowDefs","_rowDefs","filter","def","when","length","_defaultRowDef","_renderChangeSubscription","_observeRenderChanges","ngOnDestroy","_rowPlaceholder","clear","_headerRowPlaceholder","next","complete","disconnect","forEach","has","_renderRowChanges","_headerDef","unsubscribe","takeUntil","connect","data","cells","_getHeaderCellTemplatesForRow","createEmbeddedView","markForCheck","forEachOperation","item","adjustedPreviousIndex","currentIndex","previousIndex","_insertRow","remove","view","move","_updateRowContext","_getRowDef","i","first","rowDef","rowData","index","row","context","$implicit","_getCellTemplatesForRow","count","viewRef","last","even","odd","headerDef","map","columnId","column","exportAs","ChangeDetectorRef","undefined","Attribute","trackBy","ViewChild","ContentChildren","EXPORTED_DECLARATIONS","CdkTableModule","NgModule","imports","CommonModule","declarations","DataSource","value"],"ma
 ppings":"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","file":"/Users/karakara/repos/material2/dist/bundles/cdk-table.umd.min.js"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk.umd.js b/node_modules/@angular/cdk/bundles/cdk.umd.js
new file mode 100644
index 0000000..4ee8bab
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk.umd.js
@@ -0,0 +1,24 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core')) :
+	typeof define === 'function' && define.amd ? define(['exports', '@angular/core'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}),global.ng.core));
+}(this, (function (exports,_angular_core) { 'use strict';
+
+/**
+ * Current version of the Angular Component Development Kit.
+ */
+var VERSION = new _angular_core.Version('0.0.0-PLACEHOLDER');
+
+exports.VERSION = VERSION;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk.umd.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk.umd.js.map b/node_modules/@angular/cdk/bundles/cdk.umd.js.map
new file mode 100644
index 0000000..6f94451
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk.umd.js","sources":["cdk.es5.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/**\n * Current version of the Angular Component Development Kit.\n */\nvar VERSION = new Version('0.0.0-PLACEHOLDER');\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { VERSION };\n//# sourceMappingURL=cdk.es5.js.map\n"],"names":["Version"],"mappings":";;;;;;;;;;;;;AASA;;;AAGA,IAAI,OAAO,GAAG,IAAIA,qBAAO,CAAC,mBAAmB,CAAC,CAAC,AAE/C,AAImB,AACnB,AAAmC;;;;;;"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk.umd.min.js b/node_modules/@angular/cdk/bundles/cdk.umd.min.js
new file mode 100644
index 0000000..73b514a
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core")):"function"==typeof define&&define.amd?define(["exports","@angular/core"],n):n((e.ng=e.ng||{},e.ng.cdk=e.ng.cdk||{}),e.ng.core)}(this,function(e,n){"use strict";var o=new n.Version("2.0.0-beta.12");e.VERSION=o,Object.defineProperty(e,"__esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk.umd.min.js.map
new file mode 100644
index 0000000..a199a98
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","core","this","_angular_core","VERSION","Version","Object","defineProperty","value"],"mappings":";;;;;;;CAOC,SAAUA,EAAQC,GACC,gBAAZC,UAA0C,mBAAXC,QAAyBF,EAAQC,QAASE,QAAQ,kBACtE,kBAAXC,SAAyBA,OAAOC,IAAMD,QAAQ,UAAW,iBAAkBJ,GACjFA,GAASD,EAAOO,GAAKP,EAAOO,OAAUP,EAAOO,GAAGC,IAAMR,EAAOO,GAAGC,SAAWR,EAAOO,GAAGE,OACrFC,KAAM,SAAWR,EAAQS,GAAiB,YAK5C,IAAIC,GAAU,GAAID,GAAcE,QAAQ,oBAExCX,GAAQU,QAAUA,EAElBE,OAAOC,eAAeb,EAAS,cAAgBc,OAAO","file":"/Users/karakara/repos/material2/dist/bundles/cdk.umd.min.js"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/cdk.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/cdk.d.ts b/node_modules/@angular/cdk/cdk.d.ts
new file mode 100644
index 0000000..5a30354
--- /dev/null
+++ b/node_modules/@angular/cdk/cdk.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @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
+ */
+export * from './typings/index';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/cdk.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/cdk.metadata.json b/node_modules/@angular/cdk/cdk.metadata.json
new file mode 100644
index 0000000..edd5656
--- /dev/null
+++ b/node_modules/@angular/cdk/cdk.metadata.json
@@ -0,0 +1,12 @@
+{
+  "__symbolic": "module",
+  "version": 3,
+  "metadata": {},
+  "exports": [
+    {
+      "from": "./typings/index"
+    }
+  ],
+  "flatModuleIndexRedirect": true,
+  "importAs": "@angular/cdk"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/coercion.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/coercion.d.ts b/node_modules/@angular/cdk/coercion.d.ts
new file mode 100644
index 0000000..ebde9e4
--- /dev/null
+++ b/node_modules/@angular/cdk/coercion.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @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
+ */
+export * from './coercion/index';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/coercion.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/coercion.metadata.json b/node_modules/@angular/cdk/coercion.metadata.json
new file mode 100644
index 0000000..0275034
--- /dev/null
+++ b/node_modules/@angular/cdk/coercion.metadata.json
@@ -0,0 +1,12 @@
+{
+  "__symbolic": "module",
+  "version": 3,
+  "metadata": {},
+  "exports": [
+    {
+      "from": "./coercion/index"
+    }
+  ],
+  "flatModuleIndexRedirect": true,
+  "importAs": "@angular/cdk/coercion"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/coercion/index.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/coercion/index.d.ts b/node_modules/@angular/cdk/coercion/index.d.ts
new file mode 100644
index 0000000..5a30354
--- /dev/null
+++ b/node_modules/@angular/cdk/coercion/index.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @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
+ */
+export * from './typings/index';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/coercion/index.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/coercion/index.metadata.json b/node_modules/@angular/cdk/coercion/index.metadata.json
new file mode 100644
index 0000000..b436d3a
--- /dev/null
+++ b/node_modules/@angular/cdk/coercion/index.metadata.json
@@ -0,0 +1,12 @@
+{
+  "__symbolic": "module",
+  "version": 3,
+  "metadata": {},
+  "exports": [
+    {
+      "from": "./typings/index"
+    }
+  ],
+  "flatModuleIndexRedirect": true,
+  "importAs": "@angular/cdk/coercion"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/coercion/package.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/coercion/package.json b/node_modules/@angular/cdk/coercion/package.json
new file mode 100644
index 0000000..de56abb
--- /dev/null
+++ b/node_modules/@angular/cdk/coercion/package.json
@@ -0,0 +1,7 @@
+{
+  "name": "@angular/cdk/coercion",
+  "typings": "../coercion.d.ts",
+  "main": "../bundles/cdk-coercion.umd.js",
+  "module": "../esm5/coercion.es5.js",
+  "es2015": "../esm2015/coercion.js"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/coercion/typings/array.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/coercion/typings/array.d.ts b/node_modules/@angular/cdk/coercion/typings/array.d.ts
new file mode 100644
index 0000000..36d0126
--- /dev/null
+++ b/node_modules/@angular/cdk/coercion/typings/array.d.ts
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+/** Wraps the provided value in an array, unless the provided value is an array. */
+export declare function coerceArray<T>(value: T | T[]): T[];

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/coercion/typings/boolean-property.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/coercion/typings/boolean-property.d.ts b/node_modules/@angular/cdk/coercion/typings/boolean-property.d.ts
new file mode 100644
index 0000000..723b849
--- /dev/null
+++ b/node_modules/@angular/cdk/coercion/typings/boolean-property.d.ts
@@ -0,0 +1,9 @@
+/**
+ * @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. */
+export declare function coerceBooleanProperty(value: any): boolean;

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/coercion/typings/index.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/coercion/typings/index.d.ts b/node_modules/@angular/cdk/coercion/typings/index.d.ts
new file mode 100644
index 0000000..e5daacf
--- /dev/null
+++ b/node_modules/@angular/cdk/coercion/typings/index.d.ts
@@ -0,0 +1,4 @@
+/**
+ * Generated bundle index. Do not edit.
+ */
+export * from './public-api';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/coercion/typings/index.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/coercion/typings/index.metadata.json b/node_modules/@angular/cdk/coercion/typings/index.metadata.json
new file mode 100644
index 0000000..38215ae
--- /dev/null
+++ b/node_modules/@angular/cdk/coercion/typings/index.metadata.json
@@ -0,0 +1 @@
+{"__symbolic":"module","version":3,"metadata":{"coerceBooleanProperty":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!=","left":{"__symbolic":"reference","name":"value"},"right":null},"right":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"reference","name":"value"},"right":"false"}}},"coerceNumberProperty":{"__symbolic":"function","parameters":["value","fallbackValue"],"defaults":[null,0],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"parseFloat"},"arguments":[{"__symbolic":"reference","name":"value"}]}]},"right":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"isNaN"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Number"},"arguments":[{"
 __symbolic":"reference","name":"value"}]}]}},"thenExpression":{"__symbolic":"reference","name":"fallbackValue"},"elseExpression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Number"},"arguments":[{"__symbolic":"reference","name":"value"}]}}},"coerceArray":{"__symbolic":"function","parameters":["value"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Array"},"member":"isArray"},"arguments":[{"__symbolic":"reference","name":"value"}]},"thenExpression":{"__symbolic":"reference","name":"value"},"elseExpression":[{"__symbolic":"reference","name":"value"}]}}},"origins":{"coerceBooleanProperty":"./boolean-property","coerceNumberProperty":"./number-property","coerceArray":"./array"},"importAs":"@angular/cdk/coercion"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/coercion/typings/number-property.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/coercion/typings/number-property.d.ts b/node_modules/@angular/cdk/coercion/typings/number-property.d.ts
new file mode 100644
index 0000000..8eea49d
--- /dev/null
+++ b/node_modules/@angular/cdk/coercion/typings/number-property.d.ts
@@ -0,0 +1,9 @@
+/**
+ * @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 number. */
+export declare function coerceNumberProperty(value: any, fallbackValue?: number): number;

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/coercion/typings/public-api.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/coercion/typings/public-api.d.ts b/node_modules/@angular/cdk/coercion/typings/public-api.d.ts
new file mode 100644
index 0000000..9e5d374
--- /dev/null
+++ b/node_modules/@angular/cdk/coercion/typings/public-api.d.ts
@@ -0,0 +1,10 @@
+/**
+ * @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
+ */
+export * from './boolean-property';
+export * from './number-property';
+export * from './array';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections.d.ts b/node_modules/@angular/cdk/collections.d.ts
new file mode 100644
index 0000000..049e3e0
--- /dev/null
+++ b/node_modules/@angular/cdk/collections.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @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
+ */
+export * from './collections/index';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections.metadata.json b/node_modules/@angular/cdk/collections.metadata.json
new file mode 100644
index 0000000..26c5c85
--- /dev/null
+++ b/node_modules/@angular/cdk/collections.metadata.json
@@ -0,0 +1,12 @@
+{
+  "__symbolic": "module",
+  "version": 3,
+  "metadata": {},
+  "exports": [
+    {
+      "from": "./collections/index"
+    }
+  ],
+  "flatModuleIndexRedirect": true,
+  "importAs": "@angular/cdk/collections"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections/index.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections/index.d.ts b/node_modules/@angular/cdk/collections/index.d.ts
new file mode 100644
index 0000000..5a30354
--- /dev/null
+++ b/node_modules/@angular/cdk/collections/index.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @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
+ */
+export * from './typings/index';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections/index.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections/index.metadata.json b/node_modules/@angular/cdk/collections/index.metadata.json
new file mode 100644
index 0000000..7155790
--- /dev/null
+++ b/node_modules/@angular/cdk/collections/index.metadata.json
@@ -0,0 +1,12 @@
+{
+  "__symbolic": "module",
+  "version": 3,
+  "metadata": {},
+  "exports": [
+    {
+      "from": "./typings/index"
+    }
+  ],
+  "flatModuleIndexRedirect": true,
+  "importAs": "@angular/cdk/collections"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections/package.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections/package.json b/node_modules/@angular/cdk/collections/package.json
new file mode 100644
index 0000000..d11f9f2
--- /dev/null
+++ b/node_modules/@angular/cdk/collections/package.json
@@ -0,0 +1,7 @@
+{
+  "name": "@angular/cdk/collections",
+  "typings": "../collections.d.ts",
+  "main": "../bundles/cdk-collections.umd.js",
+  "module": "../esm5/collections.es5.js",
+  "es2015": "../esm2015/collections.js"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections/typings/collection-viewer.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections/typings/collection-viewer.d.ts b/node_modules/@angular/cdk/collections/typings/collection-viewer.d.ts
new file mode 100644
index 0000000..79db72d
--- /dev/null
+++ b/node_modules/@angular/cdk/collections/typings/collection-viewer.d.ts
@@ -0,0 +1,18 @@
+/**
+ * @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 { Observable } from 'rxjs/Observable';
+/**
+ * Interface for any component that provides a view of some data collection and wants to provide
+ * information regarding the view and any changes made.
+ */
+export interface CollectionViewer {
+    viewChange: Observable<{
+        start: number;
+        end: number;
+    }>;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections/typings/data-source.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections/typings/data-source.d.ts b/node_modules/@angular/cdk/collections/typings/data-source.d.ts
new file mode 100644
index 0000000..01bfa99
--- /dev/null
+++ b/node_modules/@angular/cdk/collections/typings/data-source.d.ts
@@ -0,0 +1,28 @@
+/**
+ * @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 { Observable } from 'rxjs/Observable';
+import { CollectionViewer } from './collection-viewer';
+export declare abstract class DataSource<T> {
+    /**
+     * 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.
+     * @param collectionViewer The component that exposes a view over the data provided by this
+     *     data source.
+     * @returns Observable that emits a new value when the data changes.
+     */
+    abstract connect(collectionViewer: CollectionViewer): Observable<T[]>;
+    /**
+     * 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.
+     *
+     * @param collectionViewer The component that exposes a view over the data provided by this
+     *     data source.
+     */
+    abstract disconnect(collectionViewer: CollectionViewer): void;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections/typings/index.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections/typings/index.d.ts b/node_modules/@angular/cdk/collections/typings/index.d.ts
new file mode 100644
index 0000000..522789b
--- /dev/null
+++ b/node_modules/@angular/cdk/collections/typings/index.d.ts
@@ -0,0 +1,5 @@
+/**
+ * Generated bundle index. Do not edit.
+ */
+export * from './public-api';
+export { UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY as ɵa } from './unique-selection-dispatcher';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections/typings/index.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections/typings/index.metadata.json b/node_modules/@angular/cdk/collections/typings/index.metadata.json
new file mode 100644
index 0000000..e5901d7
--- /dev/null
+++ b/node_modules/@angular/cdk/collections/typings/index.metadata.json
@@ -0,0 +1 @@
+{"__symbolic":"module","version":3,"metadata":{"CollectionViewer":{"__symbolic":"interface"},"DataSource":{"__symbolic":"class","arity":1,"members":{"connect":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}]}},"SelectionModel":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null,{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":40,"character":30,"context":{"typeName":"T"},"module":"./selection"}]},null]}],"select":[{"__symbolic":"method"}],"deselect":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"clear":[{"__symbolic":"method"}],"isSelected":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}],"hasValue":[{"__symbolic":"method"}],"sort":[{"__symbolic":"method"}],"_emitChangeEvent":[{"__symbolic":"method"}],"_markSelected":[{"__symbolic":"method"}],"_unmarkSelected":[{"__symbolic":"method"}],"_unmarkAll":[{"__symbolic":"method"}]
 ,"_verifyValueAssignment":[{"__symbolic":"method"}]}},"SelectionChange":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":183,"character":29,"context":{"typeName":"T"},"module":"./selection"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":183,"character":51,"context":{"typeName":"T"},"module":"./selection"}]}]}]}},"getMultipleValuesInSingleSelectionError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["Cannot pass multiple values into SelectionModel with single-value mode."]}},"ɵa":{"__symbolic":"function","parameters":["parentDispatcher"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"reference","name":"parentDispatcher"},"right":{"__sym
 bolic":"new","expression":{"__symbolic":"reference","name":"UniqueSelectionDispatcher"}}}},"UniqueSelectionDispatcher":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"notify":[{"__symbolic":"method"}],"listen":[{"__symbolic":"method"}]}},"UniqueSelectionDispatcherListener":{"__symbolic":"interface"},"UNIQUE_SELECTION_DISPATCHER_PROVIDER":{"provide":{"__symbolic":"reference","name":"UniqueSelectionDispatcher"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf"}},{"__symbolic":"reference","name":"UniqueSelectionDispatcher"}]],"useFactory":{"__symbolic":"reference","name":"ɵa"}}},"origins":{"CollectionViewer":"./collection-viewer","DataSource":"./data-source","SelectionModel":"./selection","SelectionChange":"./selecti
 on","getMultipleValuesInSingleSelectionError":"./selection","ɵa":"./unique-selection-dispatcher","UniqueSelectionDispatcher":"./unique-selection-dispatcher","UniqueSelectionDispatcherListener":"./unique-selection-dispatcher","UNIQUE_SELECTION_DISPATCHER_PROVIDER":"./unique-selection-dispatcher"},"importAs":"@angular/cdk/collections"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections/typings/public-api.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections/typings/public-api.d.ts b/node_modules/@angular/cdk/collections/typings/public-api.d.ts
new file mode 100644
index 0000000..558a545
--- /dev/null
+++ b/node_modules/@angular/cdk/collections/typings/public-api.d.ts
@@ -0,0 +1,11 @@
+/**
+ * @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
+ */
+export * from './collection-viewer';
+export * from './data-source';
+export * from './selection';
+export { UniqueSelectionDispatcher, UniqueSelectionDispatcherListener, UNIQUE_SELECTION_DISPATCHER_PROVIDER } from './unique-selection-dispatcher';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections/typings/selection.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections/typings/selection.d.ts b/node_modules/@angular/cdk/collections/typings/selection.d.ts
new file mode 100644
index 0000000..269c2da
--- /dev/null
+++ b/node_modules/@angular/cdk/collections/typings/selection.d.ts
@@ -0,0 +1,87 @@
+/**
+ * @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';
+/**
+ * Class to be used to power selecting one or more options from a list.
+ */
+export declare class SelectionModel<T> {
+    private _isMulti;
+    private _emitChanges;
+    /** Currently-selected values. */
+    private _selection;
+    /** Keeps track of the deselected options that haven't been emitted by the change event. */
+    private _deselectedToEmit;
+    /** Keeps track of the selected option that haven't been emitted by the change event. */
+    private _selectedToEmit;
+    /** Cache for the array value of the selected items. */
+    private _selected;
+    /** Selected value(s). */
+    readonly selected: T[];
+    /** Event emitted when the value has changed. */
+    onChange: Subject<SelectionChange<T>> | null;
+    constructor(_isMulti?: boolean, initiallySelectedValues?: T[], _emitChanges?: boolean);
+    /**
+     * Selects a value or an array of values.
+     */
+    select(...values: T[]): void;
+    /**
+     * Deselects a value or an array of values.
+     */
+    deselect(...values: T[]): void;
+    /**
+     * Toggles a value between selected and deselected.
+     */
+    toggle(value: T): void;
+    /**
+     * Clears all of the selected values.
+     */
+    clear(): void;
+    /**
+     * Determines whether a value is selected.
+     */
+    isSelected(value: T): boolean;
+    /**
+     * Determines whether the model does not have a value.
+     */
+    isEmpty(): boolean;
+    /**
+     * Determines whether the model has a value.
+     */
+    hasValue(): boolean;
+    /**
+     * Sorts the selected values based on a predicate function.
+     */
+    sort(predicate?: (a: T, b: T) => number): void;
+    /** Emits a change event and clears the records of selected and deselected values. */
+    private _emitChangeEvent();
+    /** Selects a value. */
+    private _markSelected(value);
+    /** Deselects a value. */
+    private _unmarkSelected(value);
+    /** Clears out the selected values. */
+    private _unmarkAll();
+    /**
+     * 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.
+     */
+    private _verifyValueAssignment(values);
+}
+/**
+ * Describes an event emitted when the value of a MatSelectionModel has changed.
+ * @docs-private
+ */
+export declare class SelectionChange<T> {
+    added: T[] | undefined;
+    removed: T[] | undefined;
+    constructor(added?: T[] | undefined, removed?: T[] | undefined);
+}
+/**
+ * Returns an error that reports that multiple values are passed into a selection model
+ * with a single value.
+ */
+export declare function getMultipleValuesInSingleSelectionError(): Error;

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/collections/typings/unique-selection-dispatcher.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/collections/typings/unique-selection-dispatcher.d.ts b/node_modules/@angular/cdk/collections/typings/unique-selection-dispatcher.d.ts
new file mode 100644
index 0000000..309d12b
--- /dev/null
+++ b/node_modules/@angular/cdk/collections/typings/unique-selection-dispatcher.d.ts
@@ -0,0 +1,40 @@
+/**
+ * @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 { Optional } from '@angular/core';
+export declare type UniqueSelectionDispatcherListener = (id: string, name: string) => void;
+/**
+ * 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.
+ */
+export declare class UniqueSelectionDispatcher {
+    private _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.
+     */
+    notify(id: string, name: string): void;
+    /**
+     * Listen for future changes to item selection.
+     * @return Function used to deregister listener
+     */
+    listen(listener: UniqueSelectionDispatcherListener): () => void;
+}
+/** @docs-private */
+export declare function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(parentDispatcher: UniqueSelectionDispatcher): UniqueSelectionDispatcher;
+/** @docs-private */
+export declare const UNIQUE_SELECTION_DISPATCHER_PROVIDER: {
+    provide: typeof UniqueSelectionDispatcher;
+    deps: Optional[][];
+    useFactory: (parentDispatcher: UniqueSelectionDispatcher) => UniqueSelectionDispatcher;
+};


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-collections.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-collections.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-collections.umd.js.map
new file mode 100644
index 0000000..f774602
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-collections.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-collections.umd.js","sources":["cdk/collections.es5.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 { Subject } from 'rxjs/Subject';\nimport { Injectable, Optional, SkipSelf } from '@angular/core';\n\n/**\n * @abstract\n */\nvar DataSource = (function () {\n    function DataSource() {\n    }\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    Da
 taSource.prototype.connect = function (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    DataSource.prototype.disconnect = function (collectionViewer) { };\n    return DataSource;\n}());\n\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nvar SelectionModel = (function () {\n    /**\n     * @param {?=} _isMulti\n     * @param {?=} initiallySelectedValues\n     * @param {?=} _emitChanges\n     */\n    function SelectionModel(_isMulti, initiallySelectedValues, _emitChanges) {\n        if (_isMulti === void 0) { _isMulti = false; }\n        if (_emitChanges === void 0) { _emitChanges = true; }\n        va
 r _this = this;\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(function (value) { return _this._markSelected(value); });\n            }\n            else {\n                this._markSelected(initiallySelectedValues[0]);\n            }\n            // Clear the array in order to a
 void firing the change event for preselected values.\n            this._selectedToEmit.length = 0;\n        }\n    }\n    Object.defineProperty(SelectionModel.prototype, \"selected\", {\n        /**\n         * Selected value(s).\n         * @return {?}\n         */\n        get: function () {\n            if (!this._selected) {\n                this._selected = Array.from(this._selection.values());\n            }\n            return this._selected;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Selects a value or an array of values.\n     * @param {...?} values\n     * @return {?}\n     */\n    SelectionModel.prototype.select = function () {\n        var _this = this;\n        var values = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            values[_i] = arguments[_i];\n        }\n        this._verifyValueAssignment(values);\n        values.forEach(function (value) { return _this._markSelected(value); });\n        t
 his._emitChangeEvent();\n    };\n    /**\n     * Deselects a value or an array of values.\n     * @param {...?} values\n     * @return {?}\n     */\n    SelectionModel.prototype.deselect = function () {\n        var _this = this;\n        var values = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            values[_i] = arguments[_i];\n        }\n        this._verifyValueAssignment(values);\n        values.forEach(function (value) { return _this._unmarkSelected(value); });\n        this._emitChangeEvent();\n    };\n    /**\n     * Toggles a value between selected and deselected.\n     * @param {?} value\n     * @return {?}\n     */\n    SelectionModel.prototype.toggle = function (value) {\n        this.isSelected(value) ? this.deselect(value) : this.select(value);\n    };\n    /**\n     * Clears all of the selected values.\n     * @return {?}\n     */\n    SelectionModel.prototype.clear = function () {\n        this._unmarkAll();\n        this._emitChangeEvent();\n 
    };\n    /**\n     * Determines whether a value is selected.\n     * @param {?} value\n     * @return {?}\n     */\n    SelectionModel.prototype.isSelected = function (value) {\n        return this._selection.has(value);\n    };\n    /**\n     * Determines whether the model does not have a value.\n     * @return {?}\n     */\n    SelectionModel.prototype.isEmpty = function () {\n        return this._selection.size === 0;\n    };\n    /**\n     * Determines whether the model has a value.\n     * @return {?}\n     */\n    SelectionModel.prototype.hasValue = function () {\n        return !this.isEmpty();\n    };\n    /**\n     * Sorts the selected values based on a predicate function.\n     * @param {?=} predicate\n     * @return {?}\n     */\n    SelectionModel.prototype.sort = function (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    SelectionModel.prototype._emitChangeEvent = function () {\n        if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n            var /** @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    SelectionModel.prototype._markSelected = function (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     * De
 selects a value.\n     * @param {?} value\n     * @return {?}\n     */\n    SelectionModel.prototype._unmarkSelected = function (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    SelectionModel.prototype._unmarkAll = function () {\n        var _this = this;\n        if (!this.isEmpty()) {\n            this._selection.forEach(function (value) { return _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    SelectionModel.prototype._verifyValueAssignment = function (values) {\n        if (valu
 es.length > 1 && !this._isMulti) {\n            throw getMultipleValuesInSingleSelectionError();\n        }\n    };\n    return SelectionModel;\n}());\n/**\n * Describes an event emitted when the value of a MatSelectionModel has changed.\n * \\@docs-private\n */\nvar SelectionChange = (function () {\n    /**\n     * @param {?=} added\n     * @param {?=} removed\n     */\n    function SelectionChange(added, removed) {\n        this.added = added;\n        this.removed = removed;\n    }\n    return SelectionChange;\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 */\nfunction getMultipleValuesInSingleSelectionError() {\n    return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\n}\n\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 */\nvar UniqueSelectionDispatcher = (function () {\n    function UniqueSelectionDispatcher() {\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    UniqueSelectionDispatcher.prototype.notify = function (id, name) {\n        for (var _i = 0, _a = this._listeners; _i < _a.length; _i++) {\n            var listener = _a[_i];\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    UniqueSelectionDispatcher.prototype.listen = function (listener) {\n        var _this = this;\n        this._listeners.push(listener);\n        return function () {\n            _this._listeners = _this._listeners.filter(function (registered) {\n                return listener !== registered;\n            });\n        };\n    };\n    UniqueSelectionDispatcher.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    UniqueSelectionDispatcher.ctorParameters = function () { return []; };\n    return UniqueSelectionDispatcher;\n}());\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @return {?}\n */\nfunction UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {\n    return parentDispatcher || new UniqueSelectionDispatcher();\n}\n/**\n * \\@docs-private\n */\nvar UNIQUE_SELECTION_DISPATCHER_PROVIDER = {\n    // If there is already a dispatcher available, use that. Otherwise, provide a new one.\n    provide: UniqueSe
 lectionDispatcher,\n    deps: [[new Optional(), new SkipSelf(), UniqueSelectionDispatcher]],\n    useFactory: UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { UniqueSelectionDispatcher, UNIQUE_SELECTION_DISPATCHER_PROVIDER, DataSource, SelectionModel, SelectionChange, getMultipleValuesInSingleSelectionError, UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY as ɵa };\n//# sourceMappingURL=collections.es5.js.map\n"],"names":["Subject","Injectable","Optional","SkipSelf"],"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/bundles/cdk-collections.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-collections.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-collections.umd.min.js
new file mode 100644
index 0000000..78b712a
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-collections.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("rxjs/Subject"),require("@angular/core")):"function"==typeof define&&define.amd?define(["exports","rxjs/Subject","@angular/core"],t):t((e.ng=e.ng||{},e.ng.cdk=e.ng.cdk||{},e.ng.cdk.collections=e.ng.cdk.collections||{}),e.Rx,e.ng.core)}(this,function(e,t,n){"use strict";function i(){return Error("Cannot pass multiple values into SelectionModel with single-value mode.")}function s(e){return e||new l}var o=function(){function e(){}return e.prototype.connect=function(e){},e.prototype.disconnect=function(e){},e}(),r=function(){function e(e,n,i){void 0===e&&(e=!1),void 0===i&&(i=!0);var s=this;this._isMulti=e,this._emitChanges=i,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.onChange=this._emitChanges?new t.Subject:null,n&&(e?n.forEach(function(e){return s._markSelected(e)}):this._markSelected(n[0]),this._selectedToEmit.length=0)}return Object.defineProperty(e.prototype,"s
 elected",{get:function(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected},enumerable:!0,configurable:!0}),e.prototype.select=function(){for(var e=this,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this._verifyValueAssignment(t),t.forEach(function(t){return e._markSelected(t)}),this._emitChangeEvent()},e.prototype.deselect=function(){for(var e=this,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this._verifyValueAssignment(t),t.forEach(function(t){return e._unmarkSelected(t)}),this._emitChangeEvent()},e.prototype.toggle=function(e){this.isSelected(e)?this.deselect(e):this.select(e)},e.prototype.clear=function(){this._unmarkAll(),this._emitChangeEvent()},e.prototype.isSelected=function(e){return this._selection.has(e)},e.prototype.isEmpty=function(){return 0===this._selection.size},e.prototype.hasValue=function(){return!this.isEmpty()},e.prototype.sort=function(e){this._isMulti&&this._selected&&this._selected.sort(e)},e.prototype._emit
 ChangeEvent=function(){if(this._selectedToEmit.length||this._deselectedToEmit.length){var e=new c(this._selectedToEmit,this._deselectedToEmit);this.onChange&&this.onChange.next(e),this._deselectedToEmit=[],this._selectedToEmit=[]}this._selected=null},e.prototype._markSelected=function(e){this.isSelected(e)||(this._isMulti||this._unmarkAll(),this._selection.add(e),this._emitChanges&&this._selectedToEmit.push(e))},e.prototype._unmarkSelected=function(e){this.isSelected(e)&&(this._selection.delete(e),this._emitChanges&&this._deselectedToEmit.push(e))},e.prototype._unmarkAll=function(){var e=this;this.isEmpty()||this._selection.forEach(function(t){return e._unmarkSelected(t)})},e.prototype._verifyValueAssignment=function(e){if(e.length>1&&!this._isMulti)throw i()},e}(),c=function(){function e(e,t){this.added=e,this.removed=t}return e}(),l=function(){function e(){this._listeners=[]}return e.prototype.notify=function(e,t){for(var n=0,i=this._listeners;n<i.length;n++){(0,i[n])(e,t)}},e.pro
 totype.listen=function(e){var t=this;return this._listeners.push(e),function(){t._listeners=t._listeners.filter(function(t){return e!==t})}},e.decorators=[{type:n.Injectable}],e.ctorParameters=function(){return[]},e}(),u={provide:l,deps:[[new n.Optional,new n.SkipSelf,l]],useFactory:s};e.UniqueSelectionDispatcher=l,e.UNIQUE_SELECTION_DISPATCHER_PROVIDER=u,e.DataSource=o,e.SelectionModel=r,e.SelectionChange=c,e.getMultipleValuesInSingleSelectionError=i,e.ɵa=s,Object.defineProperty(e,"__esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-collections.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-collections.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-collections.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-collections.umd.min.js.map
new file mode 100644
index 0000000..3d632bf
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-collections.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-collections.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","collections","Rx","core","this","rxjs_Subject","_angular_core","getMultipleValuesInSingleSelectionError","Error","UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY","parentDispatcher","UniqueSelectionDispatcher","DataSource","prototype","connect","collectionViewer","disconnect","SelectionModel","_isMulti","initiallySelectedValues","_emitChanges","_this","_selection","Set","_deselectedToEmit","_selectedToEmit","onChange","Subject","forEach","value","_markSelected","length","Object","defineProperty","get","_selected","Array","from","values","enumerable","configurable","select","_i","arguments","_verifyValueAssignment","_emitChangeEvent","deselect","_unmarkSelected","toggle","isSelected","clear","_unmarkAll","has","isEmpty","size","hasValue","sort","predicate","eventData","SelectionChange","next","add","push","dele
 te","added","removed","_listeners","notify","id","name","_a","listener","listen","filter","registered","decorators","type","Injectable","ctorParameters","UNIQUE_SELECTION_DISPATCHER_PROVIDER","provide","deps","Optional","SkipSelf","useFactory","ɵa"],"mappings":"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","file":"/Users/karakara/repos/material2/dist/bundles/cdk-collections.umd.min.js"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.js b/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.js
new file mode 100644
index 0000000..c35c57d
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.js
@@ -0,0 +1,55 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+	typeof define === 'function' && define.amd ? define(['exports'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.keycodes = global.ng.cdk.keycodes || {})));
+}(this, (function (exports) { 'use strict';
+
+var UP_ARROW = 38;
+var DOWN_ARROW = 40;
+var RIGHT_ARROW = 39;
+var LEFT_ARROW = 37;
+var PAGE_UP = 33;
+var PAGE_DOWN = 34;
+var HOME = 36;
+var END = 35;
+var ENTER = 13;
+var SPACE = 32;
+var TAB = 9;
+var ESCAPE = 27;
+var BACKSPACE = 8;
+var DELETE = 46;
+var A = 65;
+var Z = 90;
+var ZERO = 48;
+var NINE = 91;
+
+exports.UP_ARROW = UP_ARROW;
+exports.DOWN_ARROW = DOWN_ARROW;
+exports.RIGHT_ARROW = RIGHT_ARROW;
+exports.LEFT_ARROW = LEFT_ARROW;
+exports.PAGE_UP = PAGE_UP;
+exports.PAGE_DOWN = PAGE_DOWN;
+exports.HOME = HOME;
+exports.END = END;
+exports.ENTER = ENTER;
+exports.SPACE = SPACE;
+exports.TAB = TAB;
+exports.ESCAPE = ESCAPE;
+exports.BACKSPACE = BACKSPACE;
+exports.DELETE = DELETE;
+exports.A = A;
+exports.Z = Z;
+exports.ZERO = ZERO;
+exports.NINE = NINE;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-keycodes.umd.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.js.map
new file mode 100644
index 0000000..276bf24
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-keycodes.umd.js","sources":["cdk/keycodes.es5.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 */\nvar UP_ARROW = 38;\nvar DOWN_ARROW = 40;\nvar RIGHT_ARROW = 39;\nvar LEFT_ARROW = 37;\nvar PAGE_UP = 33;\nvar PAGE_DOWN = 34;\nvar HOME = 36;\nvar END = 35;\nvar ENTER = 13;\nvar SPACE = 32;\nvar TAB = 9;\nvar ESCAPE = 27;\nvar BACKSPACE = 8;\nvar DELETE = 46;\nvar A = 65;\nvar Z = 90;\nvar ZERO = 48;\nvar NINE = 91;\n\n/**\n * Generated bundle index. Do not edit.\n */\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 };\n//# sourceMappingURL=keycodes.es5.js.map\n"],"names":[],"mappings":";;;;;;;;;;;;;AAOA,IAAI,QAAQ,GAAG,EAAE,CAAC;AAClB,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,IAAI,WAAW,GAAG,
 EAAE,CAAC;AACrB,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,IAAI,OAAO,GAAG,EAAE,CAAC;AACjB,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,GAAG,EAAE,CAAC;AACd,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,IAAI,KAAK,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,GAAG,EAAE,CAAC;AACf,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,IAAI,IAAI,GAAG,EAAE,CAAC;AACd,IAAI,IAAI,GAAG,EAAE,CAAC,AAEd,AAIwJ,AACxJ,AAAwC;;;;;;;;;;;;;;;;;;;;;;;"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.min.js
new file mode 100644
index 0000000..a9f1ce1
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e.ng=e.ng||{},e.ng.cdk=e.ng.cdk||{},e.ng.cdk.keycodes=e.ng.cdk.keycodes||{}))}(this,function(e){"use strict";e.UP_ARROW=38,e.DOWN_ARROW=40,e.RIGHT_ARROW=39,e.LEFT_ARROW=37,e.PAGE_UP=33,e.PAGE_DOWN=34,e.HOME=36,e.END=35,e.ENTER=13,e.SPACE=32,e.TAB=9,e.ESCAPE=27,e.BACKSPACE=8,e.DELETE=46,e.A=65,e.Z=90,e.ZERO=48,e.NINE=91,Object.defineProperty(e,"__esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-keycodes.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.min.js.map
new file mode 100644
index 0000000..b2c9938
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-keycodes.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-keycodes.umd.js"],"names":["global","factory","exports","module","define","amd","ng","cdk","keycodes","this","UP_ARROW","DOWN_ARROW","RIGHT_ARROW","LEFT_ARROW","PAGE_UP","PAGE_DOWN","HOME","END","ENTER","SPACE","TAB","ESCAPE","BACKSPACE","DELETE","A","Z","ZERO","NINE","Object","defineProperty","value"],"mappings":";;;;;;;CAOC,SAAUA,EAAQC,GACC,gBAAZC,UAA0C,mBAAXC,QAAyBF,EAAQC,SACrD,kBAAXE,SAAyBA,OAAOC,IAAMD,QAAQ,WAAYH,GAChEA,GAASD,EAAOM,GAAKN,EAAOM,OAAUN,EAAOM,GAAGC,IAAMP,EAAOM,GAAGC,QAAWP,EAAOM,GAAGC,IAAIC,SAAWR,EAAOM,GAAGC,IAAIC,gBAClHC,KAAM,SAAWP,GAAW,YAqB9BA,GAAQQ,SAnBO,GAoBfR,EAAQS,WAnBS,GAoBjBT,EAAQU,YAnBU,GAoBlBV,EAAQW,WAnBS,GAoBjBX,EAAQY,QAnBM,GAoBdZ,EAAQa,UAnBQ,GAoBhBb,EAAQc,KAnBG,GAoBXd,EAAQe,IAnBE,GAoBVf,EAAQgB,MAnBI,GAoBZhB,EAAQiB,MAnBI,GAoBZjB,EAAQkB,IAnBE,EAoBVlB,EAAQmB,OAnBK,GAoBbnB,EAAQoB,UAnBQ,EAoBhBpB,EAAQqB,OAnBK,GAoBbrB,EAAQsB,EAnBA,GAoBRtB,EAAQuB,EAnBA,GAoBRvB,EAAQwB,KAnBG,GAoBXxB,EAAQyB,KA
 nBG,GAqBXC,OAAOC,eAAe3B,EAAS,cAAgB4B,OAAO","file":"/Users/karakara/repos/material2/dist/bundles/cdk-keycodes.umd.min.js"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-layout.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-layout.umd.js b/node_modules/@angular/cdk/bundles/cdk-layout.umd.js
new file mode 100644
index 0000000..54b9c85
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-layout.umd.js
@@ -0,0 +1,235 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/cdk/platform'), require('rxjs/Subject'), require('@angular/cdk/rxjs'), require('@angular/cdk/coercion'), require('rxjs/observable/combineLatest'), require('rxjs/observable/fromEventPattern')) :
+	typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/cdk/platform', 'rxjs/Subject', '@angular/cdk/rxjs', '@angular/cdk/coercion', 'rxjs/observable/combineLatest', 'rxjs/observable/fromEventPattern'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.layout = global.ng.cdk.layout || {}),global.ng.core,global.ng.cdk.platform,global.Rx,global.ng.cdk.rxjs,global.ng.cdk.coercion,global.Rx.Observable,global.Rx.Observable));
+}(this, (function (exports,_angular_core,_angular_cdk_platform,rxjs_Subject,_angular_cdk_rxjs,_angular_cdk_coercion,rxjs_observable_combineLatest,rxjs_observable_fromEventPattern) { 'use strict';
+
+/**
+ * Global registry for all dynamically-created, injected style tags.
+ */
+var styleElementForWebkitCompatibility = new Map();
+/**
+ * A utility for calling matchMedia queries.
+ */
+var MediaMatcher = (function () {
+    /**
+     * @param {?} platform
+     */
+    function MediaMatcher(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 {?}
+     */
+    MediaMatcher.prototype.matchMedia = function (query) {
+        if (this.platform.WEBKIT) {
+            createEmptyStyleRule(query);
+        }
+        return this._matchMedia(query);
+    };
+    MediaMatcher.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    MediaMatcher.ctorParameters = function () { return [
+        { type: _angular_cdk_platform.Platform, },
+    ]; };
+    return MediaMatcher;
+}());
+/**
+ * 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 {
+            var /** @type {?} */ style = document.createElement('style');
+            style.setAttribute('type', 'text/css');
+            if (!style.sheet) {
+                var /** @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: function () { },
+        removeListener: function () { }
+    };
+}
+
+/**
+ * Utility for checking the matching state of \@media queries.
+ */
+var BreakpointObserver = (function () {
+    /**
+     * @param {?} mediaMatcher
+     * @param {?} zone
+     */
+    function BreakpointObserver(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 rxjs_Subject.Subject();
+    }
+    /**
+     * Completes the active subject, signalling to all other observables to complete.
+     * @return {?}
+     */
+    BreakpointObserver.prototype.ngOnDestroy = function () {
+        this._destroySubject.next();
+        this._destroySubject.complete();
+    };
+    /**
+     * Whether the query currently is matched.
+     * @param {?} value
+     * @return {?}
+     */
+    BreakpointObserver.prototype.isMatched = function (value) {
+        var _this = this;
+        var /** @type {?} */ queries = _angular_cdk_coercion.coerceArray(value);
+        return queries.some(function (mediaQuery) { return _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 {?}
+     */
+    BreakpointObserver.prototype.observe = function (value) {
+        var _this = this;
+        var /** @type {?} */ queries = _angular_cdk_coercion.coerceArray(value);
+        var /** @type {?} */ observables = queries.map(function (query) { return _this._registerQuery(query).observable; });
+        return rxjs_observable_combineLatest.combineLatest(observables, function (a, b) {
+            return {
+                matches: !!((a && a.matches) || (b && b.matches)),
+            };
+        });
+    };
+    /**
+     * Registers a specific query to be listened for.
+     * @param {?} query
+     * @return {?}
+     */
+    BreakpointObserver.prototype._registerQuery = function (query) {
+        var _this = this;
+        // Only set up a new MediaQueryList if it is not already being listened for.
+        if (this._queries.has(query)) {
+            return ((this._queries.get(query)));
+        }
+        var /** @type {?} */ mql = this.mediaMatcher.matchMedia(query);
+        // Create callback for match changes and add it is as a listener.
+        var /** @type {?} */ queryObservable = _angular_cdk_rxjs.RxChain.from(rxjs_observable_fromEventPattern.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.
+        function (listener) {
+            mql.addListener(function (e) { return _this.zone.run(function () { return listener(e); }); });
+        }, function (listener) {
+            mql.removeListener(function (e) { return _this.zone.run(function () { return listener(e); }); });
+        }))
+            .call(_angular_cdk_rxjs.takeUntil, this._destroySubject)
+            .call(_angular_cdk_rxjs.startWith, mql)
+            .call(_angular_cdk_rxjs.map, function (nextMql) { return ({ matches: nextMql.matches }); })
+            .result();
+        // Add the MediaQueryList to the set of queries.
+        var /** @type {?} */ output = { observable: queryObservable, mql: mql };
+        this._queries.set(query, output);
+        return output;
+    };
+    BreakpointObserver.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    BreakpointObserver.ctorParameters = function () { return [
+        { type: MediaMatcher, },
+        { type: _angular_core.NgZone, },
+    ]; };
+    return BreakpointObserver;
+}());
+
+// PascalCase is being used as Breakpoints is used like an enum.
+// tslint:disable-next-line:variable-name
+var 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)',
+};
+
+var LayoutModule = (function () {
+    function LayoutModule() {
+    }
+    LayoutModule.decorators = [
+        { type: _angular_core.NgModule, args: [{
+                    providers: [BreakpointObserver, MediaMatcher],
+                    imports: [_angular_cdk_platform.PlatformModule],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    LayoutModule.ctorParameters = function () { return []; };
+    return LayoutModule;
+}());
+
+exports.LayoutModule = LayoutModule;
+exports.BreakpointObserver = BreakpointObserver;
+exports.Breakpoints = Breakpoints;
+exports.MediaMatcher = MediaMatcher;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-layout.umd.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-layout.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-layout.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-layout.umd.js.map
new file mode 100644
index 0000000..f4218ab
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-layout.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-layout.umd.js","sources":["cdk/layout.es5.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, NgModule, NgZone } from '@angular/core';\nimport { Platform, PlatformModule } from '@angular/cdk/platform';\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 { fromEventPattern } from 'rxjs/observable/fromEventPattern';\n\n/**\n * Global registry for all dynamically-created, injected style tags.\n */\nvar styleElementForWebkitCompatibility = new Map();\n/**\n * A utility for calling matchMedia queries.\n */\nvar MediaMatcher = (function () {\n    /**\n     * @param {?} platform\n 
     */\n    function MediaMatcher(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    MediaMatcher.prototype.matchMedia = function (query) {\n        if (this.platform.WEBKIT) {\n            createEmptyStyleRule(query);\n        }\n        return this._matchMedia(query);\n    };\n    MediaMatcher.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    MediaMatcher.ctorParameters = function () { return [\n        { type: Platform, },\n    ]; };\n    return Me
 diaMatcher;\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            var /** @type {?} */ style = document.createElement('style');\n            style.setAttribute('type', 'text/css');\n            if (!style.sheet) {\n                var /** @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 pla
 tforms.\n * @param {?} query\n * @return {?}\n */\nfunction noopMatchMedia(query) {\n    return {\n        matches: query === 'all' || query === '',\n        media: query,\n        addListener: function () { },\n        removeListener: function () { }\n    };\n}\n\n/**\n * Utility for checking the matching state of \\@media queries.\n */\nvar BreakpointObserver = (function () {\n    /**\n     * @param {?} mediaMatcher\n     * @param {?} zone\n     */\n    function BreakpointObserver(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    Break
 pointObserver.prototype.ngOnDestroy = function () {\n        this._destroySubject.next();\n        this._destroySubject.complete();\n    };\n    /**\n     * Whether the query currently is matched.\n     * @param {?} value\n     * @return {?}\n     */\n    BreakpointObserver.prototype.isMatched = function (value) {\n        var _this = this;\n        var /** @type {?} */ queries = coerceArray(value);\n        return queries.some(function (mediaQuery) { return _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    BreakpointObserver.prototype.observe = function (value) {\n        var _this = this;\n        var /** @type {?} */ queries = coerceArray(value);\n        var /** @type {?} */ observables = queries.map(function (query) { return _this._registerQuery(query).observab
 le; });\n        return combineLatest(observables, function (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    BreakpointObserver.prototype._registerQuery = function (query) {\n        var _this = this;\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        var /** @type {?} */ mql = this.mediaMatcher.matchMedia(query);\n        // Create callback for match changes and add it is as a listener.\n        var /** @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        function (listener) {\n            mql.addListener(function (e) { return _this.zone.run(function () { return listener(e); }); });\n        }, function (listener) {\n            mql.removeListener(function (e) { return _this.zone.run(function () { return listener(e); }); });\n        }))\n            .call(takeUntil, this._destroySubject)\n            .call(startWith, mql)\n            .call(map, function (nextMql) { return ({ matches: nextMql.matches }); })\n            .result();\n        // Add the MediaQueryList to the set of queries.\n        var /** @type {?} */ output = { observable: queryObservable, mql: mql };\n        this._queries.set(query, output);\n        return output;\n    };\n    BreakpointObserver.decorat
 ors = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    BreakpointObserver.ctorParameters = function () { return [\n        { type: MediaMatcher, },\n        { type: NgZone, },\n    ]; };\n    return BreakpointObserver;\n}());\n\n// PascalCase is being used as Breakpoints is used like an enum.\n// tslint:disable-next-line:variable-name\nvar 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 (orientation: landscape)',\n    HandsetPortrait: '(max-width: 599px) and (orientation: portrait)',\n    TabletPortrait: '(min-width: 600px) and (max-width: 839px) and (orientation: portrait)',\n    WebPortra
 it: '(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\nvar LayoutModule = (function () {\n    function LayoutModule() {\n    }\n    LayoutModule.decorators = [\n        { type: NgModule, args: [{\n                    providers: [BreakpointObserver, MediaMatcher],\n                    imports: [PlatformModule],\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    LayoutModule.ctorParameters = function () { return []; };\n    return LayoutModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { LayoutModule, BreakpointObserver, Breakpoints, MediaMatcher };\n//# sourceMappingURL=layout.es5.js.map\n"],"names":["Injectable","Platform","Subject","coerceArray","combineLatest","RxChain","fromEventPatter
 n","takeUntil","startWith","map","NgZone","NgModule","PlatformModule"],"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/bundles/cdk-layout.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-layout.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-layout.umd.min.js
new file mode 100644
index 0000000..a2fe7ed
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-layout.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/cdk/platform"),require("rxjs/Subject"),require("@angular/cdk/rxjs"),require("@angular/cdk/coercion"),require("rxjs/observable/combineLatest"),require("rxjs/observable/fromEventPattern")):"function"==typeof define&&define.amd?define(["exports","@angular/core","@angular/cdk/platform","rxjs/Subject","@angular/cdk/rxjs","@angular/cdk/coercion","rxjs/observable/combineLatest","rxjs/observable/fromEventPattern"],e):e((t.ng=t.ng||{},t.ng.cdk=t.ng.cdk||{},t.ng.cdk.layout=t.ng.cdk.layout||{}),t.ng.core,t.ng.cdk.platform,t.Rx,t.ng.cdk.rxjs,t.ng.cdk.coercion,t.Rx.Observable,t.Rx.Observable)}(this,function(t,e,r,n,a,i,o,c){"use strict";function s(t){if(!u.has(t))try{var e=document.createElement("style");if(e.setAttribute("type","text/css"),!e.sheet){var r="@media "+t+" {.fx-query-test{ }}";e.appendChild(document.createTextNode(r))}document.getElementsByTagName("head")[0].appe
 ndChild(e),u.set(t,e)}catch(t){console.error(t)}}function d(t){return{matches:"all"===t||""===t,media:t,addListener:function(){},removeListener:function(){}}}var u=new Map,p=function(){function t(t){this.platform=t,this._matchMedia=this.platform.isBrowser?window.matchMedia.bind(window):d}return t.prototype.matchMedia=function(t){return this.platform.WEBKIT&&s(t),this._matchMedia(t)},t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[{type:r.Platform}]},t}(),m=function(){function t(t,e){this.mediaMatcher=t,this.zone=e,this._queries=new Map,this._destroySubject=new n.Subject}return t.prototype.ngOnDestroy=function(){this._destroySubject.next(),this._destroySubject.complete()},t.prototype.isMatched=function(t){var e=this;return i.coerceArray(t).some(function(t){return e._registerQuery(t).mql.matches})},t.prototype.observe=function(t){var e=this,r=i.coerceArray(t),n=r.map(function(t){return e._registerQuery(t).observable});return o.combineLatest(n,function(t,e){return
 {matches:!!(t&&t.matches||e&&e.matches)}})},t.prototype._registerQuery=function(t){var e=this;if(this._queries.has(t))return this._queries.get(t);var r=this.mediaMatcher.matchMedia(t),n=a.RxChain.from(c.fromEventPattern(function(t){r.addListener(function(r){return e.zone.run(function(){return t(r)})})},function(t){r.removeListener(function(r){return e.zone.run(function(){return t(r)})})})).call(a.takeUntil,this._destroySubject).call(a.startWith,r).call(a.map,function(t){return{matches:t.matches}}).result(),i={observable:n,mql:r};return this._queries.set(t,i),i},t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[{type:p},{type:e.NgZone}]},t}(),l={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: 1
 280px) 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)"},h=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{providers:[m,p],imports:[r.PlatformModule]}]}],t.ctorParameters=function(){return[]},t}();t.LayoutModule=h,t.BreakpointObserver=m,t.Breakpoints=l,t.MediaMatcher=p,Object.defineProperty(t,"__esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-layout.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-layout.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-layout.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-layout.umd.min.js.map
new file mode 100644
index 0000000..d8fce6e
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-layout.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-layout.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","layout","core","platform","Rx","rxjs","coercion","Observable","this","_angular_core","_angular_cdk_platform","rxjs_Subject","_angular_cdk_rxjs","_angular_cdk_coercion","rxjs_observable_combineLatest","rxjs_observable_fromEventPattern","createEmptyStyleRule","query","styleElementForWebkitCompatibility","has","style","document","createElement","setAttribute","sheet","cssText","appendChild","createTextNode","getElementsByTagName","set","e","console","error","noopMatchMedia","matches","media","addListener","removeListener","Map","MediaMatcher","_matchMedia","isBrowser","window","matchMedia","bind","prototype","WEBKIT","decorators","type","Injectable","ctorParameters","Platform","BreakpointObserver","mediaMatcher","zone","_queries","_destroySubject","Subject","ngOnDestroy","next","complete","isMatched","value","_this
 ","coerceArray","some","mediaQuery","_registerQuery","mql","observe","queries","observables","map","observable","combineLatest","a","b","get","queryObservable","RxChain","from","fromEventPattern","listener","run","call","takeUntil","startWith","nextMql","result","output","NgZone","Breakpoints","Handset","Tablet","Web","HandsetPortrait","TabletPortrait","WebPortrait","HandsetLandscape","TabletLandscape","WebLandscape","LayoutModule","NgModule","args","providers","imports","PlatformModule","Object","defineProperty"],"mappings":"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","file":"/Users/karakara/repos/material2/dist/bundles/cdk-layout.umd.min.js"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-observers.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-observers.umd.js b/node_modules/@angular/cdk/bundles/cdk-observers.umd.js
new file mode 100644
index 0000000..1c5125a
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-observers.umd.js
@@ -0,0 +1,141 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs/Subject'), require('@angular/cdk/rxjs')) :
+	typeof define === 'function' && define.amd ? define(['exports', '@angular/core', 'rxjs/Subject', '@angular/cdk/rxjs'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.observers = global.ng.cdk.observers || {}),global.ng.core,global.Rx,global.ng.cdk.rxjs));
+}(this, (function (exports,_angular_core,rxjs_Subject,_angular_cdk_rxjs) { 'use strict';
+
+/**
+ * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.
+ * \@docs-private
+ */
+var MatMutationObserverFactory = (function () {
+    function MatMutationObserverFactory() {
+    }
+    /**
+     * @param {?} callback
+     * @return {?}
+     */
+    MatMutationObserverFactory.prototype.create = function (callback) {
+        return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);
+    };
+    MatMutationObserverFactory.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    MatMutationObserverFactory.ctorParameters = function () { return []; };
+    return MatMutationObserverFactory;
+}());
+/**
+ * Directive that triggers a callback whenever the content of
+ * its associated element has changed.
+ */
+var ObserveContent = (function () {
+    /**
+     * @param {?} _mutationObserverFactory
+     * @param {?} _elementRef
+     * @param {?} _ngZone
+     */
+    function ObserveContent(_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 _angular_core.EventEmitter();
+        /**
+         * Used for debouncing the emitted values to the observeContent event.
+         */
+        this._debouncer = new rxjs_Subject.Subject();
+    }
+    /**
+     * @return {?}
+     */
+    ObserveContent.prototype.ngAfterContentInit = function () {
+        var _this = this;
+        if (this.debounce > 0) {
+            this._ngZone.runOutsideAngular(function () {
+                _angular_cdk_rxjs.RxChain.from(_this._debouncer)
+                    .call(_angular_cdk_rxjs.debounceTime, _this.debounce)
+                    .subscribe(function (mutations) { return _this.event.emit(mutations); });
+            });
+        }
+        else {
+            this._debouncer.subscribe(function (mutations) { return _this.event.emit(mutations); });
+        }
+        this._observer = this._ngZone.runOutsideAngular(function () {
+            return _this._mutationObserverFactory.create(function (mutations) {
+                _this._debouncer.next(mutations);
+            });
+        });
+        if (this._observer) {
+            this._observer.observe(this._elementRef.nativeElement, {
+                characterData: true,
+                childList: true,
+                subtree: true
+            });
+        }
+    };
+    /**
+     * @return {?}
+     */
+    ObserveContent.prototype.ngOnDestroy = function () {
+        if (this._observer) {
+            this._observer.disconnect();
+        }
+        this._debouncer.complete();
+    };
+    ObserveContent.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: '[cdkObserveContent]',
+                    exportAs: 'cdkObserveContent',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    ObserveContent.ctorParameters = function () { return [
+        { type: MatMutationObserverFactory, },
+        { type: _angular_core.ElementRef, },
+        { type: _angular_core.NgZone, },
+    ]; };
+    ObserveContent.propDecorators = {
+        'event': [{ type: _angular_core.Output, args: ['cdkObserveContent',] },],
+        'debounce': [{ type: _angular_core.Input },],
+    };
+    return ObserveContent;
+}());
+var ObserversModule = (function () {
+    function ObserversModule() {
+    }
+    ObserversModule.decorators = [
+        { type: _angular_core.NgModule, args: [{
+                    exports: [ObserveContent],
+                    declarations: [ObserveContent],
+                    providers: [MatMutationObserverFactory]
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    ObserversModule.ctorParameters = function () { return []; };
+    return ObserversModule;
+}());
+
+exports.MatMutationObserverFactory = MatMutationObserverFactory;
+exports.ObserveContent = ObserveContent;
+exports.ObserversModule = ObserversModule;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-observers.umd.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-observers.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-observers.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-observers.umd.js.map
new file mode 100644
index 0000000..10684be
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-observers.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-observers.umd.js","sources":["cdk/observers.es5.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, EventEmitter, Injectable, Input, NgModule, NgZone, Output } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { RxChain, debounceTime } from '@angular/cdk/rxjs';\n\n/**\n * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.\n * \\@docs-private\n */\nvar MatMutationObserverFactory = (function () {\n    function MatMutationObserverFactory() {\n    }\n    /**\n     * @param {?} callback\n     * @return {?}\n     */\n    MatMutationObserverFactory.prototype.create = function (callback) {\n        return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);\n    };\n    M
 atMutationObserverFactory.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    MatMutationObserverFactory.ctorParameters = function () { return []; };\n    return MatMutationObserverFactory;\n}());\n/**\n * Directive that triggers a callback whenever the content of\n * its associated element has changed.\n */\nvar ObserveContent = (function () {\n    /**\n     * @param {?} _mutationObserverFactory\n     * @param {?} _elementRef\n     * @param {?} _ngZone\n     */\n    function ObserveContent(_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._debounce
 r = new Subject();\n    }\n    /**\n     * @return {?}\n     */\n    ObserveContent.prototype.ngAfterContentInit = function () {\n        var _this = this;\n        if (this.debounce > 0) {\n            this._ngZone.runOutsideAngular(function () {\n                RxChain.from(_this._debouncer)\n                    .call(debounceTime, _this.debounce)\n                    .subscribe(function (mutations) { return _this.event.emit(mutations); });\n            });\n        }\n        else {\n            this._debouncer.subscribe(function (mutations) { return _this.event.emit(mutations); });\n        }\n        this._observer = this._ngZone.runOutsideAngular(function () {\n            return _this._mutationObserverFactory.create(function (mutations) {\n                _this._debouncer.next(mutations);\n            });\n        });\n        if (this._observer) {\n            this._observer.observe(this._elementRef.nativeElement, {\n                characterData: true,\n                chi
 ldList: true,\n                subtree: true\n            });\n        }\n    };\n    /**\n     * @return {?}\n     */\n    ObserveContent.prototype.ngOnDestroy = function () {\n        if (this._observer) {\n            this._observer.disconnect();\n        }\n        this._debouncer.complete();\n    };\n    ObserveContent.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkObserveContent]',\n                    exportAs: 'cdkObserveContent',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    ObserveContent.ctorParameters = function () { return [\n        { type: MatMutationObserverFactory, },\n        { type: ElementRef, },\n        { type: NgZone, },\n    ]; };\n    ObserveContent.propDecorators = {\n        'event': [{ type: Output, args: ['cdkObserveContent',] },],\n        'debounce': [{ type: Input },],\n    };\n    return ObserveContent;\n}());\nvar ObserversModule = (function () {\n    function ObserversModule() {\
 n    }\n    ObserversModule.decorators = [\n        { type: NgModule, args: [{\n                    exports: [ObserveContent],\n                    declarations: [ObserveContent],\n                    providers: [MatMutationObserverFactory]\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    ObserversModule.ctorParameters = function () { return []; };\n    return ObserversModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatMutationObserverFactory, ObserveContent, ObserversModule };\n//# sourceMappingURL=observers.es5.js.map\n"],"names":["Injectable","EventEmitter","Subject","RxChain","debounceTime","Directive","ElementRef","NgZone","Output","Input","NgModule"],"mappings":";;;;;;;;;;;;;AAWA;;;;AAIA,IAAI,0BAA0B,IAAI,YAAY;IAC1C,SAAS,0BAA0B,GAAG;KACrC;;;;;IAKD,0BAA0B,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,QAAQ,EAAE;QAC9D,OAAO,OAAO,gBAAgB,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;KAC1F,CAAC;IACF,0BAA0B,CAAC,UAAU,GAAG;QACpC,EAAE,
 IAAI,EAAEA,wBAAU,EAAE;KACvB,CAAC;;;;IAIF,0BAA0B,CAAC,cAAc,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACvE,OAAO,0BAA0B,CAAC;CACrC,EAAE,CAAC,CAAC;;;;;AAKL,IAAI,cAAc,IAAI,YAAY;;;;;;IAM9B,SAAS,cAAc,CAAC,wBAAwB,EAAE,WAAW,EAAE,OAAO,EAAE;QACpE,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;;;;QAIvB,IAAI,CAAC,KAAK,GAAG,IAAIC,0BAAY,EAAE,CAAC;;;;QAIhC,IAAI,CAAC,UAAU,GAAG,IAAIC,oBAAO,EAAE,CAAC;KACnC;;;;IAID,cAAc,CAAC,SAAS,CAAC,kBAAkB,GAAG,YAAY;QACtD,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY;gBACvCC,yBAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;qBACzB,IAAI,CAACC,8BAAY,EAAE,KAAK,CAAC,QAAQ,CAAC;qBAClC,SAAS,CAAC,UAAU,SAAS,EAAE,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;aAChF,CAAC,CAAC;SACN;aACI;YACD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,SAAS,EAAE,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3F;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,O
 AAO,CAAC,iBAAiB,CAAC,YAAY;YACxD,OAAO,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,UAAU,SAAS,EAAE;gBAC9D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACpC,CAAC,CAAC;SACN,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;gBACnD,aAAa,EAAE,IAAI;gBACnB,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;aAChB,CAAC,CAAC;SACN;KACJ,CAAC;;;;IAIF,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;QAC/C,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B,CAAC;IACF,cAAc,CAAC,UAAU,GAAG;QACxB,EAAE,IAAI,EAAEC,uBAAS,EAAE,IAAI,EAAE,CAAC;oBACd,QAAQ,EAAE,qBAAqB;oBAC/B,QAAQ,EAAE,mBAAmB;iBAChC,EAAE,EAAE;KAChB,CAAC;;;;IAIF,cAAc,CAAC,cAAc,GAAG,YAAY,EAAE,OAAO;QACjD,EAAE,IAAI,EAAE,0BAA0B,GAAG;QACrC,EAAE,IAAI,EAAEC,wBAAU,GAAG;QACrB,EAAE,IAAI,EAAEC,oBAAM,GAAG;KACpB,CAAC,EAAE,CAAC;IACL,cAAc,CAAC,cAAc,GAAG;QAC5B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAEC,oBAAM,EAAE,IAAI,EAAE,CAAC,mBAAmB,EAAE,EAAE,EAAE;QAC1D,UAAU,EAAE,CAAC,EAAE,IAAI,EAAEC,mBAAK,EA
 AE,EAAE;KACjC,CAAC;IACF,OAAO,cAAc,CAAC;CACzB,EAAE,CAAC,CAAC;AACL,IAAI,eAAe,IAAI,YAAY;IAC/B,SAAS,eAAe,GAAG;KAC1B;IACD,eAAe,CAAC,UAAU,GAAG;QACzB,EAAE,IAAI,EAAEC,sBAAQ,EAAE,IAAI,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,YAAY,EAAE,CAAC,cAAc,CAAC;oBAC9B,SAAS,EAAE,CAAC,0BAA0B,CAAC;iBAC1C,EAAE,EAAE;KAChB,CAAC;;;;IAIF,eAAe,CAAC,cAAc,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC5D,OAAO,eAAe,CAAC;CAC1B,EAAE,CAAC,CAAC,AAEL,AAIuE,AACvE,AAAyC;;;;;;;;"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-observers.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-observers.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-observers.umd.min.js
new file mode 100644
index 0000000..57862f6
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-observers.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs/Subject"),require("@angular/cdk/rxjs")):"function"==typeof define&&define.amd?define(["exports","@angular/core","rxjs/Subject","@angular/cdk/rxjs"],t):t((e.ng=e.ng||{},e.ng.cdk=e.ng.cdk||{},e.ng.cdk.observers=e.ng.cdk.observers||{}),e.ng.core,e.Rx,e.ng.cdk.rxjs)}(this,function(e,t,r,n){"use strict";var o=function(){function e(){}return e.prototype.create=function(e){return"undefined"==typeof MutationObserver?null:new MutationObserver(e)},e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[]},e}(),s=function(){function e(e,n,o){this._mutationObserverFactory=e,this._elementRef=n,this._ngZone=o,this.event=new t.EventEmitter,this._debouncer=new r.Subject}return e.prototype.ngAfterContentInit=function(){var e=this;this.debounce>0?this._ngZone.runOutsideAngular(function(){n.RxChain.from(e._debouncer).call(n.debounceTime,e.debounce).subscribe(function(t){re
 turn e.event.emit(t)})}):this._debouncer.subscribe(function(t){return e.event.emit(t)}),this._observer=this._ngZone.runOutsideAngular(function(){return e._mutationObserverFactory.create(function(t){e._debouncer.next(t)})}),this._observer&&this._observer.observe(this._elementRef.nativeElement,{characterData:!0,childList:!0,subtree:!0})},e.prototype.ngOnDestroy=function(){this._observer&&this._observer.disconnect(),this._debouncer.complete()},e.decorators=[{type:t.Directive,args:[{selector:"[cdkObserveContent]",exportAs:"cdkObserveContent"}]}],e.ctorParameters=function(){return[{type:o},{type:t.ElementRef},{type:t.NgZone}]},e.propDecorators={event:[{type:t.Output,args:["cdkObserveContent"]}],debounce:[{type:t.Input}]},e}(),u=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{exports:[s],declarations:[s],providers:[o]}]}],e.ctorParameters=function(){return[]},e}();e.MatMutationObserverFactory=o,e.ObserveContent=s,e.ObserversModule=u,Object.defineProperty(e,"__esModul
 e",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-observers.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-observers.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-observers.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-observers.umd.min.js.map
new file mode 100644
index 0000000..f82e655
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-observers.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-observers.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","observers","core","Rx","rxjs","this","_angular_core","rxjs_Subject","_angular_cdk_rxjs","MatMutationObserverFactory","prototype","create","callback","MutationObserver","decorators","type","Injectable","ctorParameters","ObserveContent","_mutationObserverFactory","_elementRef","_ngZone","event","EventEmitter","_debouncer","Subject","ngAfterContentInit","_this","debounce","runOutsideAngular","RxChain","from","call","debounceTime","subscribe","mutations","emit","_observer","next","observe","nativeElement","characterData","childList","subtree","ngOnDestroy","disconnect","complete","Directive","args","selector","exportAs","ElementRef","NgZone","propDecorators","Output","Input","ObserversModule","NgModule","declarations","providers","Object","defineProperty","value"],"mappings":";;;;;;;CAOC,SAAUA,EAAQC,GACC,gBAAZC,U
 AA0C,mBAAXC,QAAyBF,EAAQC,QAASE,QAAQ,iBAAkBA,QAAQ,gBAAiBA,QAAQ,sBACzH,kBAAXC,SAAyBA,OAAOC,IAAMD,QAAQ,UAAW,gBAAiB,eAAgB,qBAAsBJ,GACtHA,GAASD,EAAOO,GAAKP,EAAOO,OAAUP,EAAOO,GAAGC,IAAMR,EAAOO,GAAGC,QAAWR,EAAOO,GAAGC,IAAIC,UAAYT,EAAOO,GAAGC,IAAIC,eAAiBT,EAAOO,GAAGG,KAAKV,EAAOW,GAAGX,EAAOO,GAAGC,IAAII,OAC3KC,KAAM,SAAWX,EAAQY,EAAcC,EAAaC,GAAqB,YAM3E,IAAIC,GAA8B,WAC9B,QAASA,MAgBT,MAVAA,GAA2BC,UAAUC,OAAS,SAAUC,GACpD,MAAmC,mBAArBC,kBAAmC,KAAO,GAAIA,kBAAiBD,IAEjFH,EAA2BK,aACrBC,KAAMT,EAAcU,aAK1BP,EAA2BQ,eAAiB,WAAc,UACnDR,KAMPS,EAAkB,WAMlB,QAASA,GAAeC,EAA0BC,EAAaC,GAC3DhB,KAAKc,yBAA2BA,EAChCd,KAAKe,YAAcA,EACnBf,KAAKgB,QAAUA,EAIfhB,KAAKiB,MAAQ,GAAIhB,GAAciB,aAI/BlB,KAAKmB,WAAa,GAAIjB,GAAakB,QAyDvC,MApDAP,GAAeR,UAAUgB,mBAAqB,WAC1C,GAAIC,GAAQtB,IACRA,MAAKuB,SAAW,EAChBvB,KAAKgB,QAAQQ,kBAAkB,WAC3BrB,EAAkBsB,QAAQC,KAAKJ,EAAMH,YAChCQ,KAAKxB,EAAkByB,aAAcN,EAAMC,UAC3CM,UAAU,SAAUC,GAAa,MAAOR,GAAML,MAAMc,KAAKD,OAIlE9B,KAAKmB,WAAWU,UAAU,SAAUC,GAAa,MAAOR,GAAML,MAAMc,KAAKD,KAE7E9B,KAAKgC,UAAYhC,KAAKgB,QAAQQ,k
 BAAkB,WAC5C,MAAOF,GAAMR,yBAAyBR,OAAO,SAAUwB,GACnDR,EAAMH,WAAWc,KAAKH,OAG1B9B,KAAKgC,WACLhC,KAAKgC,UAAUE,QAAQlC,KAAKe,YAAYoB,eACpCC,eAAe,EACfC,WAAW,EACXC,SAAS,KAOrBzB,EAAeR,UAAUkC,YAAc,WAC/BvC,KAAKgC,WACLhC,KAAKgC,UAAUQ,aAEnBxC,KAAKmB,WAAWsB,YAEpB5B,EAAeJ,aACTC,KAAMT,EAAcyC,UAAWC,OACrBC,SAAU,sBACVC,SAAU,wBAM1BhC,EAAeD,eAAiB,WAAc,QACxCF,KAAMN,IACNM,KAAMT,EAAc6C,aACpBpC,KAAMT,EAAc8C,UAE1BlC,EAAemC,gBACX/B,QAAYP,KAAMT,EAAcgD,OAAQN,MAAO,uBAC/CpB,WAAeb,KAAMT,EAAciD,SAEhCrC,KAEPsC,EAAmB,WACnB,QAASA,MAaT,MAXAA,GAAgB1C,aACVC,KAAMT,EAAcmD,SAAUT,OACpBtD,SAAUwB,GACVwC,cAAexC,GACfyC,WAAYlD,OAM5B+C,EAAgBvC,eAAiB,WAAc,UACxCuC,IAGX9D,GAAQe,2BAA6BA,EACrCf,EAAQwB,eAAiBA,EACzBxB,EAAQ8D,gBAAkBA,EAE1BI,OAAOC,eAAenE,EAAS,cAAgBoE,OAAO","file":"/Users/karakara/repos/material2/dist/bundles/cdk-observers.umd.min.js"}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/a11y.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/a11y.es5.js b/node_modules/@angular/cdk/esm5/a11y.es5.js
new file mode 100644
index 0000000..03eddfe
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/a11y.es5.js
@@ -0,0 +1,1680 @@
+/**
+ * @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 { __extends } from 'tslib';
+import * as tslib_1 from 'tslib';
+import { Subject } from 'rxjs/Subject';
+import { Subscription } from 'rxjs/Subscription';
+import { A, DOWN_ARROW, NINE, TAB, UP_ARROW, Z, ZERO } from '@angular/cdk/keycodes';
+import { RxChain, debounceTime, doOperator, filter, first, map } from '@angular/cdk/rxjs';
+import { Directive, ElementRef, EventEmitter, Inject, Injectable, InjectionToken, Input, NgModule, NgZone, Optional, Output, Renderer2, SkipSelf } from '@angular/core';
+import { Platform, PlatformModule } from '@angular/cdk/platform';
+import { coerceBooleanProperty } from '@angular/cdk/coercion';
+import { of } from 'rxjs/observable/of';
+import { CommonModule } from '@angular/common';
+
+/**
+ * This class manages keyboard events for selectable lists. If you pass it a query list
+ * of items, it will set the active item correctly when arrow events occur.
+ */
+var ListKeyManager = (function () {
+    /**
+     * @param {?} _items
+     */
+    function ListKeyManager(_items) {
+        this._items = _items;
+        this._activeItemIndex = -1;
+        this._wrap = false;
+        this._letterKeyStream = new Subject();
+        this._typeaheadSubscription = Subscription.EMPTY;
+        this._pressedLetters = [];
+        /**
+         * Stream that emits any time the TAB key is pressed, so components can react
+         * when focus is shifted off of the list.
+         */
+        this.tabOut = new Subject();
+    }
+    /**
+     * Turns on wrapping mode, which ensures that the active item will wrap to
+     * the other end of list when there are no more items in the given direction.
+     * @return {?}
+     */
+    ListKeyManager.prototype.withWrap = function () {
+        this._wrap = true;
+        return this;
+    };
+    /**
+     * Turns on typeahead mode which allows users to set the active item by typing.
+     * @param {?=} debounceInterval Time to wait after the last keystroke before setting the active item.
+     * @return {?}
+     */
+    ListKeyManager.prototype.withTypeAhead = function (debounceInterval) {
+        var _this = this;
+        if (debounceInterval === void 0) { debounceInterval = 200; }
+        if (this._items.length && this._items.some(function (item) { return typeof item.getLabel !== 'function'; })) {
+            throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');
+        }
+        this._typeaheadSubscription.unsubscribe();
+        // Debounce the presses of non-navigational keys, collect the ones that correspond to letters
+        // and convert those letters back into a string. Afterwards find the first item that starts
+        // with that string and select it.
+        this._typeaheadSubscription = RxChain.from(this._letterKeyStream)
+            .call(doOperator, function (keyCode) { return _this._pressedLetters.push(keyCode); })
+            .call(debounceTime, debounceInterval)
+            .call(filter, function () { return _this._pressedLetters.length > 0; })
+            .call(map, function () { return _this._pressedLetters.join(''); })
+            .subscribe(function (inputString) {
+            var /** @type {?} */ items = _this._items.toArray();
+            // Start at 1 because we want to start searching at the item immediately
+            // following the current active item.
+            for (var /** @type {?} */ i = 1; i < items.length + 1; i++) {
+                var /** @type {?} */ index = (_this._activeItemIndex + i) % items.length;
+                var /** @type {?} */ item = items[index];
+                if (!item.disabled && ((item.getLabel))().toUpperCase().trim().indexOf(inputString) === 0) {
+                    _this.setActiveItem(index);
+                    break;
+                }
+            }
+            _this._pressedLetters = [];
+        });
+        return this;
+    };
+    /**
+     * Sets the active item to the item at the index specified.
+     * @param {?} index The index of the item to be set as active.
+     * @return {?}
+     */
+    ListKeyManager.prototype.setActiveItem = function (index) {
+        this._activeItemIndex = index;
+        this._activeItem = this._items.toArray()[index];
+    };
+    /**
+     * Sets the active item depending on the key event passed in.
+     * @param {?} event Keyboard event to be used for determining which element should be active.
+     * @return {?}
+     */
+    ListKeyManager.prototype.onKeydown = function (event) {
+        switch (event.keyCode) {
+            case DOWN_ARROW:
+                this.setNextItemActive();
+                break;
+            case UP_ARROW:
+                this.setPreviousItemActive();
+                break;
+            case TAB:
+                this.tabOut.next();
+                return;
+            default:
+                var /** @type {?} */ keyCode = event.keyCode;
+                // Attempt to use the `event.key` which also maps it to the user's keyboard language,
+                // otherwise fall back to resolving alphanumeric characters via the keyCode.
+                if (event.key && event.key.length === 1) {
+                    this._letterKeyStream.next(event.key.toLocaleUpperCase());
+                }
+                else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {
+                    this._letterKeyStream.next(String.fromCharCode(keyCode));
+                }
+                // Note that we return here, in order to avoid preventing
+                // the default action of non-navigational keys.
+                return;
+        }
+        this._pressedLetters = [];
+        event.preventDefault();
+    };
+    Object.defineProperty(ListKeyManager.prototype, "activeItemIndex", {
+        /**
+         * Index of the currently active item.
+         * @return {?}
+         */
+        get: function () {
+            return this._activeItemIndex;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ListKeyManager.prototype, "activeItem", {
+        /**
+         * The active item.
+         * @return {?}
+         */
+        get: function () {
+            return this._activeItem;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Sets the active item to the first enabled item in the list.
+     * @return {?}
+     */
+    ListKeyManager.prototype.setFirstItemActive = function () {
+        this._setActiveItemByIndex(0, 1);
+    };
+    /**
+     * Sets the active item to the last enabled item in the list.
+     * @return {?}
+     */
+    ListKeyManager.prototype.setLastItemActive = function () {
+        this._setActiveItemByIndex(this._items.length - 1, -1);
+    };
+    /**
+     * Sets the active item to the next enabled item in the list.
+     * @return {?}
+     */
+    ListKeyManager.prototype.setNextItemActive = function () {
+        this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);
+    };
+    /**
+     * Sets the active item to a previous enabled item in the list.
+     * @return {?}
+     */
+    ListKeyManager.prototype.setPreviousItemActive = function () {
+        this._activeItemIndex < 0 && this._wrap ? this.setLastItemActive()
+            : this._setActiveItemByDelta(-1);
+    };
+    /**
+     * Allows setting of the activeItemIndex without any other effects.
+     * @param {?} index The new activeItemIndex.
+     * @return {?}
+     */
+    ListKeyManager.prototype.updateActiveItemIndex = function (index) {
+        this._activeItemIndex = index;
+    };
+    /**
+     * This method sets the active item, given a list of items and the delta between the
+     * currently active item and the new active item. It will calculate differently
+     * depending on whether wrap mode is turned on.
+     * @param {?} delta
+     * @param {?=} items
+     * @return {?}
+     */
+    ListKeyManager.prototype._setActiveItemByDelta = function (delta, items) {
+        if (items === void 0) { items = this._items.toArray(); }
+        this._wrap ? this._setActiveInWrapMode(delta, items)
+            : this._setActiveInDefaultMode(delta, items);
+    };
+    /**
+     * Sets the active item properly given "wrap" mode. In other words, it will continue to move
+     * down the list until it finds an item that is not disabled, and it will wrap if it
+     * encounters either end of the list.
+     * @param {?} delta
+     * @param {?} items
+     * @return {?}
+     */
+    ListKeyManager.prototype._setActiveInWrapMode = function (delta, items) {
+        // when active item would leave menu, wrap to beginning or end
+        this._activeItemIndex =
+            (this._activeItemIndex + delta + items.length) % items.length;
+        // skip all disabled menu items recursively until an enabled one is reached
+        if (items[this._activeItemIndex].disabled) {
+            this._setActiveInWrapMode(delta, items);
+        }
+        else {
+            this.setActiveItem(this._activeItemIndex);
+        }
+    };
+    /**
+     * Sets the active item properly given the default mode. In other words, it will
+     * continue to move down the list until it finds an item that is not disabled. If
+     * it encounters either end of the list, it will stop and not wrap.
+     * @param {?} delta
+     * @param {?} items
+     * @return {?}
+     */
+    ListKeyManager.prototype._setActiveInDefaultMode = function (delta, items) {
+        this._setActiveItemByIndex(this._activeItemIndex + delta, delta, items);
+    };
+    /**
+     * Sets the active item to the first enabled item starting at the index specified. If the
+     * item is disabled, it will move in the fallbackDelta direction until it either
+     * finds an enabled item or encounters the end of the list.
+     * @param {?} index
+     * @param {?} fallbackDelta
+     * @param {?=} items
+     * @return {?}
+     */
+    ListKeyManager.prototype._setActiveItemByIndex = function (index, fallbackDelta, items) {
+        if (items === void 0) { items = this._items.toArray(); }
+        if (!items[index]) {
+            return;
+        }
+        while (items[index].disabled) {
+            index += fallbackDelta;
+            if (!items[index]) {
+                return;
+            }
+        }
+        this.setActiveItem(index);
+    };
+    return ListKeyManager;
+}());
+
+var ActiveDescendantKeyManager = (function (_super) {
+    __extends(ActiveDescendantKeyManager, _super);
+    function ActiveDescendantKeyManager() {
+        return _super !== null && _super.apply(this, arguments) || this;
+    }
+    /**
+     * This method sets the active item to the item at the specified index.
+     * It also adds active styles to the newly active item and removes active
+     * styles from the previously active item.
+     * @param {?} index
+     * @return {?}
+     */
+    ActiveDescendantKeyManager.prototype.setActiveItem = function (index) {
+        if (this.activeItem) {
+            this.activeItem.setInactiveStyles();
+        }
+        _super.prototype.setActiveItem.call(this, index);
+        if (this.activeItem) {
+            this.activeItem.setActiveStyles();
+        }
+    };
+    return ActiveDescendantKeyManager;
+}(ListKeyManager));
+
+/**
+ * IDs are deliminated by an empty space, as per the spec.
+ */
+var ID_DELIMINATOR = ' ';
+/**
+ * Adds the given ID to the specified ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ * @param {?} el
+ * @param {?} attr
+ * @param {?} id
+ * @return {?}
+ */
+function addAriaReferencedId(el, attr, id) {
+    var /** @type {?} */ ids = getAriaReferenceIds(el, attr);
+    if (ids.some(function (existingId) { return existingId.trim() == id.trim(); })) {
+        return;
+    }
+    ids.push(id.trim());
+    el.setAttribute(attr, ids.join(ID_DELIMINATOR));
+}
+/**
+ * Removes the given ID from the specified ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ * @param {?} el
+ * @param {?} attr
+ * @param {?} id
+ * @return {?}
+ */
+function removeAriaReferencedId(el, attr, id) {
+    var /** @type {?} */ ids = getAriaReferenceIds(el, attr);
+    var /** @type {?} */ filteredIds = ids.filter(function (val) { return val != id.trim(); });
+    el.setAttribute(attr, filteredIds.join(ID_DELIMINATOR));
+}
+/**
+ * Gets the list of IDs referenced by the given ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ * @param {?} el
+ * @param {?} attr
+ * @return {?}
+ */
+function getAriaReferenceIds(el, attr) {
+    // Get string array of all individual ids (whitespace deliminated) in the attribute value
+    return (el.getAttribute(attr) || '').match(/\S+/g) || [];
+}
+
+/**
+ * ID used for the body container where all messages are appended.
+ */
+var MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';
+/**
+ * ID prefix used for each created message element.
+ */
+var CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';
+/**
+ * Attribute given to each host element that is described by a message element.
+ */
+var CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';
+/**
+ * Global incremental identifier for each registered message element.
+ */
+var nextId = 0;
+/**
+ * Global map of all registered message elements that have been placed into the document.
+ */
+var messageRegistry = new Map();
+/**
+ * Container for all registered messages.
+ */
+var messagesContainer = null;
+/**
+ * Utility that creates visually hidden elements with a message content. Useful for elements that
+ * want to use aria-describedby to further describe themselves without adding additional visual
+ * content.
+ * \@docs-private
+ */
+var AriaDescriber = (function () {
+    /**
+     * @param {?} _platform
+     */
+    function AriaDescriber(_platform) {
+        this._platform = _platform;
+    }
+    /**
+     * Adds to the host element an aria-describedby reference to a hidden element that contains
+     * the message. If the same message has already been registered, then it will reuse the created
+     * message element.
+     * @param {?} hostElement
+     * @param {?} message
+     * @return {?}
+     */
+    AriaDescriber.prototype.describe = function (hostElement, message) {
+        if (!this._platform.isBrowser || !message.trim()) {
+            return;
+        }
+        if (!messageRegistry.has(message)) {
+            createMessageElement(message);
+        }
+        if (!isElementDescribedByMessage(hostElement, message)) {
+            addMessageReference(hostElement, message);
+        }
+    };
+    /**
+     * Removes the host element's aria-describedby reference to the message element.
+     * @param {?} hostElement
+     * @param {?} message
+     * @return {?}
+     */
+    AriaDescriber.prototype.removeDescription = function (hostElement, message) {
+        if (!this._platform.isBrowser || !message.trim()) {
+            return;
+        }
+        if (isElementDescribedByMessage(hostElement, message)) {
+            removeMessageReference(hostElement, message);
+        }
+        var /** @type {?} */ registeredMessage = messageRegistry.get(message);
+        if (registeredMessage && registeredMessage.referenceCount === 0) {
+            deleteMessageElement(message);
+        }
+        if (messagesContainer && messagesContainer.childNodes.length === 0) {
+            deleteMessagesContainer();
+        }
+    };
+    /**
+     * Unregisters all created message elements and removes the message container.
+     * @return {?}
+     */
+    AriaDescriber.prototype.ngOnDestroy = function () {
+        if (!this._platform.isBrowser) {
+            return;
+        }
+        var /** @type {?} */ describedElements = document.querySelectorAll("[" + CDK_DESCRIBEDBY_HOST_ATTRIBUTE + "]");
+        for (var /** @type {?} */ i = 0; i < describedElements.length; i++) {
+            removeCdkDescribedByReferenceIds(describedElements[i]);
+            describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);
+        }
+        if (messagesContainer) {
+            deleteMessagesContainer();
+        }
+        messageRegistry.clear();
+    };
+    AriaDescriber.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    AriaDescriber.ctorParameters = function () { return [
+        { type: Platform, },
+    ]; };
+    return AriaDescriber;
+}());
+/**
+ * Creates a new element in the visually hidden message container element with the message
+ * as its content and adds it to the message registry.
+ * @param {?} message
+ * @return {?}
+ */
+function createMessageElement(message) {
+    var /** @type {?} */ messageElement = document.createElement('div');
+    messageElement.setAttribute('id', CDK_DESCRIBEDBY_ID_PREFIX + "-" + nextId++);
+    messageElement.appendChild(/** @type {?} */ ((document.createTextNode(message))));
+    if (!messagesContainer) {
+        createMessagesContainer();
+    } /** @type {?} */
+    ((messagesContainer)).appendChild(messageElement);
+    messageRegistry.set(message, { messageElement: messageElement, referenceCount: 0 });
+}
+/**
+ * Deletes the message element from the global messages container.
+ * @param {?} message
+ * @return {?}
+ */
+function deleteMessageElement(message) {
+    var /** @type {?} */ registeredMessage = messageRegistry.get(message);
+    var /** @type {?} */ messageElement = registeredMessage && registeredMessage.messageElement;
+    if (messagesContainer && messageElement) {
+        messagesContainer.removeChild(messageElement);
+    }
+    messageRegistry.delete(message);
+}
+/**
+ * Creates the global container for all aria-describedby messages.
+ * @return {?}
+ */
+function createMessagesContainer() {
+    messagesContainer = document.createElement('div');
+    messagesContainer.setAttribute('id', MESSAGES_CONTAINER_ID);
+    messagesContainer.setAttribute('aria-hidden', 'true');
+    messagesContainer.style.display = 'none';
+    document.body.appendChild(messagesContainer);
+}
+/**
+ * Deletes the global messages container.
+ * @return {?}
+ */
+function deleteMessagesContainer() {
+    document.body.removeChild(/** @type {?} */ ((messagesContainer)));
+    messagesContainer = null;
+}
+/**
+ * Removes all cdk-describedby messages that are hosted through the element.
+ * @param {?} element
+ * @return {?}
+ */
+function removeCdkDescribedByReferenceIds(element) {
+    // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX
+    var /** @type {?} */ originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby')
+        .filter(function (id) { return id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0; });
+    element.setAttribute('aria-describedby', originalReferenceIds.join(' '));
+}
+/**
+ * Adds a message reference to the element using aria-describedby and increments the registered
+ * message's reference count.
+ * @param {?} element
+ * @param {?} message
+ * @return {?}
+ */
+function addMessageReference(element, message) {
+    var /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));
+    // Add the aria-describedby reference and set the describedby_host attribute to mark the element.
+    addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);
+    element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, '');
+    registeredMessage.referenceCount++;
+}
+/**
+ * Removes a message reference from the element using aria-describedby and decrements the registered
+ * message's reference count.
+ * @param {?} element
+ * @param {?} message
+ * @return {?}
+ */
+function removeMessageReference(element, message) {
+    var /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));
+    registeredMessage.referenceCount--;
+    removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);
+    element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);
+}
+/**
+ * Returns true if the element has been described by the provided message ID.
+ * @param {?} element
+ * @param {?} message
+ * @return {?}
+ */
+function isElementDescribedByMessage(element, message) {
+    var /** @type {?} */ referenceIds = getAriaReferenceIds(element, 'aria-describedby');
+    var /** @type {?} */ registeredMessage = messageRegistry.get(message);
+    var /** @type {?} */ messageId = registeredMessage && registeredMessage.messageElement.id;
+    return !!messageId && referenceIds.indexOf(messageId) != -1;
+}
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} platform
+ * @return {?}
+ */
+function ARIA_DESCRIBER_PROVIDER_FACTORY(parentDispatcher, platform) {
+    return parentDispatcher || new AriaDescriber(platform);
+}
+/**
+ * \@docs-private
+ */
+var ARIA_DESCRIBER_PROVIDER = {
+    // If there is already an AriaDescriber available, use that. Otherwise, provide a new one.
+    provide: AriaDescriber,
+    deps: [
+        [new Optional(), new SkipSelf(), AriaDescriber],
+        Platform
+    ],
+    useFactory: ARIA_DESCRIBER_PROVIDER_FACTORY
+};
+
+/**
+ * Screenreaders will often fire fake mousedown events when a focusable element
+ * is activated using the keyboard. We can typically distinguish between these faked
+ * mousedown events and real mousedown events using the "buttons" property. While
+ * real mousedowns will indicate the mouse button that was pressed (e.g. "1" for
+ * the left mouse button), faked mousedowns will usually set the property value to 0.
+ * @param {?} event
+ * @return {?}
+ */
+function isFakeMousedownFromScreenReader(event) {
+    return event.buttons === 0;
+}
+
+var FocusKeyManager = (function (_super) {
+    __extends(FocusKeyManager, _super);
+    function FocusKeyManager() {
+        return _super !== null && _super.apply(this, arguments) || this;
+    }
+    /**
+     * This method sets the active item to the item at the specified index.
+     * It also adds focuses the newly active item.
+     * @param {?} index
+     * @return {?}
+     */
+    FocusKeyManager.prototype.setActiveItem = function (index) {
+        _super.prototype.setActiveItem.call(this, index);
+        if (this.activeItem) {
+            this.activeItem.focus();
+        }
+    };
+    return FocusKeyManager;
+}(ListKeyManager));
+
+/**
+ * Utility for checking the interactivity of an element, such as whether is is focusable or
+ * tabbable.
+ */
+var InteractivityChecker = (function () {
+    /**
+     * @param {?} _platform
+     */
+    function InteractivityChecker(_platform) {
+        this._platform = _platform;
+    }
+    /**
+     * Gets whether an element is disabled.
+     *
+     * @param {?} element Element to be checked.
+     * @return {?} Whether the element is disabled.
+     */
+    InteractivityChecker.prototype.isDisabled = function (element) {
+        // This does not capture some cases, such as a non-form control with a disabled attribute or
+        // a form control inside of a disabled form, but should capture the most common cases.
+        return element.hasAttribute('disabled');
+    };
+    /**
+     * Gets whether an element is visible for the purposes of interactivity.
+     *
+     * This will capture states like `display: none` and `visibility: hidden`, but not things like
+     * being clipped by an `overflow: hidden` parent or being outside the viewport.
+     *
+     * @param {?} element
+     * @return {?} Whether the element is visible.
+     */
+    InteractivityChecker.prototype.isVisible = function (element) {
+        return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';
+    };
+    /**
+     * Gets whether an element can be reached via Tab key.
+     * Assumes that the element has already been checked with isFocusable.
+     *
+     * @param {?} element Element to be checked.
+     * @return {?} Whether the element is tabbable.
+     */
+    InteractivityChecker.prototype.isTabbable = function (element) {
+        // Nothing is tabbable on the the server 😎
+        if (!this._platform.isBrowser) {
+            return false;
+        }
+        var /** @type {?} */ frameElement = (getWindow(element).frameElement);
+        if (frameElement) {
+            var /** @type {?} */ frameType = frameElement && frameElement.nodeName.toLowerCase();
+            // Frame elements inherit their tabindex onto all child elements.
+            if (getTabIndexValue(frameElement) === -1) {
+                return false;
+            }
+            // Webkit and Blink consider anything inside of an <object> element as non-tabbable.
+            if ((this._platform.BLINK || this._platform.WEBKIT) && frameType === 'object') {
+                return false;
+            }
+            // Webkit and Blink disable tabbing to an element inside of an invisible frame.
+            if ((this._platform.BLINK || this._platform.WEBKIT) && !this.isVisible(frameElement)) {
+                return false;
+            }
+        }
+        var /** @type {?} */ nodeName = element.nodeName.toLowerCase();
+        var /** @type {?} */ tabIndexValue = getTabIndexValue(element);
+        if (element.hasAttribute('contenteditable')) {
+            return tabIndexValue !== -1;
+        }
+        if (nodeName === 'iframe') {
+            // The frames may be tabbable depending on content, but it's not possibly to reliably
+            // investigate the content of the frames.
+            return false;
+        }
+        if (nodeName === 'audio') {
+            if (!element.hasAttribute('controls')) {
+                // By default an <audio> element without the controls enabled is not tabbable.
+                return false;
+            }
+            else if (this._platform.BLINK) {
+                // In Blink <audio controls> elements are always tabbable.
+                return true;
+            }
+        }
+        if (nodeName === 'video') {
+            if (!element.hasAttribute('controls') && this._platform.TRIDENT) {
+                // In Trident a <video> element without the controls enabled is not tabbable.
+                return false;
+            }
+            else if (this._platform.BLINK || this._platform.FIREFOX) {
+                // In Chrome and Firefox <video controls> elements are always tabbable.
+                return true;
+            }
+        }
+        if (nodeName === 'object' && (this._platform.BLINK || this._platform.WEBKIT)) {
+            // In all Blink and WebKit based browsers <object> elements are never tabbable.
+            return false;
+        }
+        // In iOS the browser only considers some specific elements as tabbable.
+        if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {
+            return false;
+        }
+        return element.tabIndex >= 0;
+    };
+    /**
+     * Gets whether an element can be focused by the user.
+     *
+     * @param {?} element Element to be checked.
+     * @return {?} Whether the element is focusable.
+     */
+    InteractivityChecker.prototype.isFocusable = function (element) {
+        // Perform checks in order of left to most expensive.
+        // Again, naive approach that does not capture many edge cases and browser quirks.
+        return isPotentiallyFocusable(element) && !this.isDisabled(element) && this.isVisible(element);
+    };
+    InteractivityChecker.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    InteractivityChecker.ctorParameters = function () { return [
+        { type: Platform, },
+    ]; };
+    return InteractivityChecker;
+}());
+/**
+ * Checks whether the specified element has any geometry / rectangles.
+ * @param {?} element
+ * @return {?}
+ */
+function hasGeometry(element) {
+    // Use logic from jQuery to check for an invisible element.
+    // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12
+    return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+}
+/**
+ * Gets whether an element's
+ * @param {?} element
+ * @return {?}
+ */
+function isNativeFormElement(element) {
+    var /** @type {?} */ nodeName = element.nodeName.toLowerCase();
+    return nodeName === 'input' ||
+        nodeName === 'select' ||
+        nodeName === 'button' ||
+        nodeName === 'textarea';
+}
+/**
+ * Gets whether an element is an <input type="hidden">.
+ * @param {?} element
+ * @return {?}
+ */
+function isHiddenInput(element) {
+    return isInputElement(element) && element.type == 'hidden';
+}
+/**
+ * Gets whether an element is an anchor that has an href attribute.
+ * @param {?} element
+ * @return {?}
+ */
+function isAnchorWithHref(element) {
+    return isAnchorElement(element) && element.hasAttribute('href');
+}
+/**
+ * Gets whether an element is an input element.
+ * @param {?} element
+ * @return {?}
+ */
+function isInputElement(element) {
+    return element.nodeName.toLowerCase() == 'input';
+}
+/**
+ * Gets whether an element is an anchor element.
+ * @param {?} element
+ * @return {?}
+ */
+function isAnchorElement(element) {
+    return element.nodeName.toLowerCase() == 'a';
+}
+/**
+ * Gets whether an element has a valid tabindex.
+ * @param {?} element
+ * @return {?}
+ */
+function hasValidTabIndex(element) {
+    if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {
+        return false;
+    }
+    var /** @type {?} */ tabIndex = element.getAttribute('tabindex');
+    // IE11 parses tabindex="" as the value "-32768"
+    if (tabIndex == '-32768') {
+        return false;
+    }
+    return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));
+}
+/**
+ * Returns the parsed tabindex from the element attributes instead of returning the
+ * evaluated tabindex from the browsers defaults.
+ * @param {?} element
+ * @return {?}
+ */
+function getTabIndexValue(element) {
+    if (!hasValidTabIndex(element)) {
+        return null;
+    }
+    // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054
+    var /** @type {?} */ tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);
+    return isNaN(tabIndex) ? -1 : tabIndex;
+}
+/**
+ * Checks whether the specified element is potentially tabbable on iOS
+ * @param {?} element
+ * @return {?}
+ */
+function isPotentiallyTabbableIOS(element) {
+    var /** @type {?} */ nodeName = element.nodeName.toLowerCase();
+    var /** @type {?} */ inputType = nodeName === 'input' && ((element)).type;
+    return inputType === 'text'
+        || inputType === 'password'
+        || nodeName === 'select'
+        || nodeName === 'textarea';
+}
+/**
+ * Gets whether an element is potentially focusable without taking current visible/disabled state
+ * into account.
+ * @param {?} element
+ * @return {?}
+ */
+function isPotentiallyFocusable(element) {
+    // Inputs are potentially focusable *unless* they're type="hidden".
+    if (isHiddenInput(element)) {
+        return false;
+    }
+    return isNativeFormElement(element) ||
+        isAnchorWithHref(element) ||
+        element.hasAttribute('contenteditable') ||
+        hasValidTabIndex(element);
+}
+/**
+ * Gets the parent window of a DOM node with regards of being inside of an iframe.
+ * @param {?} node
+ * @return {?}
+ */
+function getWindow(node) {
+    return node.ownerDocument.defaultView || window;
+}
+
+/**
+ * Class that allows for trapping focus within a DOM element.
+ *
+ * NOTE: This class currently uses a very simple (naive) approach to focus trapping.
+ * It assumes that the tab order is the same as DOM order, which is not necessarily true.
+ * Things like tabIndex > 0, flex `order`, and shadow roots can cause to two to misalign.
+ * This will be replaced with a more intelligent solution before the library is considered stable.
+ */
+var FocusTrap = (function () {
+    /**
+     * @param {?} _element
+     * @param {?} _platform
+     * @param {?} _checker
+     * @param {?} _ngZone
+     * @param {?=} deferAnchors
+     */
+    function FocusTrap(_element, _platform, _checker, _ngZone, deferAnchors) {
+        if (deferAnchors === void 0) { deferAnchors = false; }
+        this._element = _element;
+        this._platform = _platform;
+        this._checker = _checker;
+        this._ngZone = _ngZone;
+        this._enabled = true;
+        if (!deferAnchors) {
+            this.attachAnchors();
+        }
+    }
+    Object.defineProperty(FocusTrap.prototype, "enabled", {
+        /**
+         * Whether the focus trap is active.
+         * @return {?}
+         */
+        get: function () { return this._enabled; },
+        /**
+         * @param {?} val
+         * @return {?}
+         */
+        set: function (val) {
+            this._enabled = val;
+            if (this._startAnchor && this._endAnchor) {
+                this._startAnchor.tabIndex = this._endAnchor.tabIndex = this._enabled ? 0 : -1;
+            }
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Destroys the focus trap by cleaning up the anchors.
+     * @return {?}
+     */
+    FocusTrap.prototype.destroy = function () {
+        if (this._startAnchor && this._startAnchor.parentNode) {
+            this._startAnchor.parentNode.removeChild(this._startAnchor);
+        }
+        if (this._endAnchor && this._endAnchor.parentNode) {
+            this._endAnchor.parentNode.removeChild(this._endAnchor);
+        }
+        this._startAnchor = this._endAnchor = null;
+    };
+    /**
+     * Inserts the anchors into the DOM. This is usually done automatically
+     * in the constructor, but can be deferred for cases like directives with `*ngIf`.
+     * @return {?}
+     */
+    FocusTrap.prototype.attachAnchors = function () {
+        var _this = this;
+        // If we're not on the browser, there can be no focus to trap.
+        if (!this._platform.isBrowser) {
+            return;
+        }
+        if (!this._startAnchor) {
+            this._startAnchor = this._createAnchor();
+        }
+        if (!this._endAnchor) {
+            this._endAnchor = this._createAnchor();
+        }
+        this._ngZone.runOutsideAngular(function () {
+            ((_this._startAnchor)).addEventListener('focus', function () {
+                _this.focusLastTabbableElement();
+            }); /** @type {?} */
+            ((_this._endAnchor)).addEventListener('focus', function () {
+                _this.focusFirstTabbableElement();
+            });
+            if (_this._element.parentNode) {
+                _this._element.parentNode.insertBefore(/** @type {?} */ ((_this._startAnchor)), _this._element);
+                _this._element.parentNode.insertBefore(/** @type {?} */ ((_this._endAnchor)), _this._element.nextSibling);
+            }
+        });
+    };
+    /**
+     * Waits for the zone to stabilize, then either focuses the first element that the
+     * user specified, or the first tabbable element.
+     * @return {?} Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusInitialElementWhenReady = function () {
+        var _this = this;
+        return new Promise(function (resolve) {
+            _this._executeOnStable(function () { return resolve(_this.focusInitialElement()); });
+        });
+    };
+    /**
+     * Waits for the zone to stabilize, then focuses
+     * the first tabbable element within the focus trap region.
+     * @return {?} Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusFirstTabbableElementWhenReady = function () {
+        var _this = this;
+        return new Promise(function (resolve) {
+            _this._executeOnStable(function () { return resolve(_this.focusFirstTabbableElement()); });
+        });
+    };
+    /**
+     * Waits for the zone to stabilize, then focuses
+     * the last tabbable element within the focus trap region.
+     * @return {?} Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusLastTabbableElementWhenReady = function () {
+        var _this = this;
+        return new Promise(function (resolve) {
+            _this._executeOnStable(function () { return resolve(_this.focusLastTabbableElement()); });
+        });
+    };
+    /**
+     * Get the specified boundary element of the trapped region.
+     * @param {?} bound The boundary to get (start or end of trapped region).
+     * @return {?} The boundary element.
+     */
+    FocusTrap.prototype._getRegionBoundary = function (bound) {
+        // Contains the deprecated version of selector, for temporary backwards comparability.
+        var /** @type {?} */ markers = (this._element.querySelectorAll("[cdk-focus-region-" + bound + "], " +
+            ("[cdk-focus-" + bound + "]")));
+        for (var /** @type {?} */ i = 0; i < markers.length; i++) {
+            if (markers[i].hasAttribute("cdk-focus-" + bound)) {
+                console.warn("Found use of deprecated attribute 'cdk-focus-" + bound + "'," +
+                    (" use 'cdk-focus-region-" + bound + "' instead."), markers[i]);
+            }
+        }
+        if (bound == 'start') {
+            return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);
+        }
+        return markers.length ?
+            markers[markers.length - 1] : this._getLastTabbableElement(this._element);
+    };
+    /**
+     * Focuses the element that should be focused when the focus trap is initialized.
+     * @return {?} Returns whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusInitialElement = function () {
+        var /** @type {?} */ redirectToElement = (this._element.querySelector('[cdk-focus-initial]'));
+        if (redirectToElement) {
+            redirectToElement.focus();
+            return true;
+        }
+        return this.focusFirstTabbableElement();
+    };
+    /**
+     * Focuses the first tabbable element within the focus trap region.
+     * @return {?} Returns whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusFirstTabbableElement = function () {
+        var /** @type {?} */ redirectToElement = this._getRegionBoundary('start');
+        if (redirectToElement) {
+            redirectToElement.focus();
+        }
+        return !!redirectToElement;
+    };
+    /**
+     * Focuses the last tabbable element within the focus trap region.
+     * @return {?} Returns whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusLastTabbableElement = function () {
+        var /** @type {?} */ redirectToElement = this._getRegionBoundary('end');
+        if (redirectToElement) {
+            redirectToElement.focus();
+        }
+        return !!redirectToElement;
+    };
+    /**
+     * Get the first tabbable element from a DOM subtree (inclusive).
+     * @param {?} root
+     * @return {?}
+     */
+    FocusTrap.prototype._getFirstTabbableElement = function (root) {
+        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {
+            return root;
+        }
+        // Iterate in DOM order. Note that IE doesn't have `children` for SVG so we fall
+        // back to `childNodes` which includes text nodes, comments etc.
+        var /** @type {?} */ children = root.children || root.childNodes;
+        for (var /** @type {?} */ i = 0; i < children.length; i++) {
+            var /** @type {?} */ tabbableChild = children[i].nodeType === Node.ELEMENT_NODE ?
+                this._getFirstTabbableElement(/** @type {?} */ (children[i])) :
+                null;
+            if (tabbableChild) {
+                return tabbableChild;
+            }
+        }
+        return null;
+    };
+    /**
+     * Get the last tabbable element from a DOM subtree (inclusive).
+     * @param {?} root
+     * @return {?}
+     */
+    FocusTrap.prototype._getLastTabbableElement = function (root) {
+        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {
+            return root;
+        }
+        // Iterate in reverse DOM order.
+        var /** @type {?} */ children = root.children || root.childNodes;
+        for (var /** @type {?} */ i = children.length - 1; i >= 0; i--) {
+            var /** @type {?} */ tabbableChild = children[i].nodeType === Node.ELEMENT_NODE ?
+                this._getLastTabbableElement(/** @type {?} */ (children[i])) :
+                null;
+            if (tabbableChild) {
+                return tabbableChild;
+            }
+        }
+        return null;
+    };
+    /**
+     * Creates an anchor element.
+     * @return {?}
+     */
+    FocusTrap.prototype._createAnchor = function () {
+        var /** @type {?} */ anchor = document.createElement('div');
+        anchor.tabIndex = this._enabled ? 0 : -1;
+        anchor.classList.add('cdk-visually-hidden');
+        anchor.classList.add('cdk-focus-trap-anchor');
+        return anchor;
+    };
+    /**
+     * Executes a function when the zone is stable.
+     * @param {?} fn
+     * @return {?}
+     */
+    FocusTrap.prototype._executeOnStable = function (fn) {
+        if (this._ngZone.isStable) {
+            fn();
+        }
+        else {
+            first.call(this._ngZone.onStable.asObservable()).subscribe(fn);
+        }
+    };
+    return FocusTrap;
+}());
+/**
+ * Factory that allows easy instantiation of focus traps.
+ */
+var FocusTrapFactory = (function () {
+    /**
+     * @param {?} _checker
+     * @param {?} _platform
+     * @param {?} _ngZone
+     */
+    function FocusTrapFactory(_checker, _platform, _ngZone) {
+        this._checker = _checker;
+        this._platform = _platform;
+        this._ngZone = _ngZone;
+    }
+    /**
+     * @param {?} element
+     * @param {?=} deferAnchors
+     * @return {?}
+     */
+    FocusTrapFactory.prototype.create = function (element, deferAnchors) {
+        if (deferAnchors === void 0) { deferAnchors = false; }
+        return new FocusTrap(element, this._platform, this._checker, this._ngZone, deferAnchors);
+    };
+    FocusTrapFactory.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    FocusTrapFactory.ctorParameters = function () { return [
+        { type: InteractivityChecker, },
+        { type: Platform, },
+        { type: NgZone, },
+    ]; };
+    return FocusTrapFactory;
+}());
+/**
+ * Directive for trapping focus within a region.
+ * @deprecated
+ */
+var FocusTrapDeprecatedDirective = (function () {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _focusTrapFactory
+     */
+    function FocusTrapDeprecatedDirective(_elementRef, _focusTrapFactory) {
+        this._elementRef = _elementRef;
+        this._focusTrapFactory = _focusTrapFactory;
+        this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);
+    }
+    Object.defineProperty(FocusTrapDeprecatedDirective.prototype, "disabled", {
+        /**
+         * Whether the focus trap is active.
+         * @return {?}
+         */
+        get: function () { return !this.focusTrap.enabled; },
+        /**
+         * @param {?} val
+         * @return {?}
+         */
+        set: function (val) {
+            this.focusTrap.enabled = !coerceBooleanProperty(val);
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    FocusTrapDeprecatedDirective.prototype.ngOnDestroy = function () {
+        this.focusTrap.destroy();
+    };
+    /**
+     * @return {?}
+     */
+    FocusTrapDeprecatedDirective.prototype.ngAfterContentInit = function () {
+        this.focusTrap.attachAnchors();
+    };
+    FocusTrapDeprecatedDirective.decorators = [
+        { type: Directive, args: [{
+                    selector: 'cdk-focus-trap',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    FocusTrapDeprecatedDirective.ctorParameters = function () { return [
+        { type: ElementRef, },
+        { type: FocusTrapFactory, },
+    ]; };
+    FocusTrapDeprecatedDirective.propDecorators = {
+        'disabled': [{ type: Input },],
+    };
+    return FocusTrapDeprecatedDirective;
+}());
+/**
+ * Directive for trapping focus within a region.
+ */
+var FocusTrapDirective = (function () {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _focusTrapFactory
+     */
+    function FocusTrapDirective(_elementRef, _focusTrapFactory) {
+        this._elementRef = _elementRef;
+        this._focusTrapFactory = _focusTrapFactory;
+        this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);
+    }
+    Object.defineProperty(FocusTrapDirective.prototype, "enabled", {
+        /**
+         * Whether the focus trap is active.
+         * @return {?}
+         */
+        get: function () { return this.focusTrap.enabled; },
+        /**
+         * @param {?} value
+         * @return {?}
+         */
+        set: function (value) { this.focusTrap.enabled = coerceBooleanProperty(value); },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    FocusTrapDirective.prototype.ngOnDestroy = function () {
+        this.focusTrap.destroy();
+    };
+    /**
+     * @return {?}
+     */
+    FocusTrapDirective.prototype.ngAfterContentInit = function () {
+        this.focusTrap.attachAnchors();
+    };
+    FocusTrapDirective.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdkTrapFocus]',
+                    exportAs: 'cdkTrapFocus',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    FocusTrapDirective.ctorParameters = function () { return [
+        { type: ElementRef, },
+        { type: FocusTrapFactory, },
+    ]; };
+    FocusTrapDirective.propDecorators = {
+        'enabled': [{ type: Input, args: ['cdkTrapFocus',] },],
+    };
+    return FocusTrapDirective;
+}());
+
+var LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken('liveAnnouncerElement');
+var LiveAnnouncer = (function () {
+    /**
+     * @param {?} elementToken
+     * @param {?} platform
+     */
+    function LiveAnnouncer(elementToken, platform) {
+        // Only do anything if we're on the browser platform.
+        if (platform.isBrowser) {
+            // We inject the live element as `any` because the constructor signature cannot reference
+            // browser globals (HTMLElement) on non-browser environments, since having a class decorator
+            // causes TypeScript to preserve the constructor signature types.
+            this._liveElement = elementToken || this._createLiveElement();
+        }
+    }
+    /**
+     * Announces a message to screenreaders.
+     * @param {?} message Message to be announced to the screenreader
+     * @param {?=} politeness The politeness of the announcer element
+     * @return {?}
+     */
+    LiveAnnouncer.prototype.announce = function (message, politeness) {
+        var _this = this;
+        if (politeness === void 0) { politeness = 'polite'; }
+        this._liveElement.textContent = '';
+        // TODO: ensure changing the politeness works on all environments we support.
+        this._liveElement.setAttribute('aria-live', politeness);
+        // This 100ms timeout is necessary for some browser + screen-reader combinations:
+        // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.
+        // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a
+        //   second time without clearing and then using a non-zero delay.
+        // (using JAWS 17 at time of this writing).
+        setTimeout(function () { return _this._liveElement.textContent = message; }, 100);
+    };
+    /**
+     * @return {?}
+     */
+    LiveAnnouncer.prototype.ngOnDestroy = function () {
+        if (this._liveElement && this._liveElement.parentNode) {
+            this._liveElement.parentNode.removeChild(this._liveElement);
+        }
+    };
+    /**
+     * @return {?}
+     */
+    LiveAnnouncer.prototype._createLiveElement = function () {
+        var /** @type {?} */ liveEl = document.createElement('div');
+        liveEl.classList.add('cdk-visually-hidden');
+        liveEl.setAttribute('aria-atomic', 'true');
+        liveEl.setAttribute('aria-live', 'polite');
+        document.body.appendChild(liveEl);
+        return liveEl;
+    };
+    LiveAnnouncer.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    LiveAnnouncer.ctorParameters = function () { return [
+        { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LIVE_ANNOUNCER_ELEMENT_TOKEN,] },] },
+        { type: Platform, },
+    ]; };
+    return LiveAnnouncer;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} liveElement
+ * @param {?} platform
+ * @return {?}
+ */
+function LIVE_ANNOUNCER_PROVIDER_FACTORY(parentDispatcher, liveElement, platform) {
+    return parentDispatcher || new LiveAnnouncer(liveElement, platform);
+}
+/**
+ * \@docs-private
+ */
+var LIVE_ANNOUNCER_PROVIDER = {
+    // If there is already a LiveAnnouncer available, use that. Otherwise, provide a new one.
+    provide: LiveAnnouncer,
+    deps: [
+        [new Optional(), new SkipSelf(), LiveAnnouncer],
+        [new Optional(), new Inject(LIVE_ANNOUNCER_ELEMENT_TOKEN)],
+        Platform,
+    ],
+    useFactory: LIVE_ANNOUNCER_PROVIDER_FACTORY
+};
+
+// This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found
+// that a value of around 650ms seems appropriate.
+var TOUCH_BUFFER_MS = 650;
+/**
+ * Monitors mouse and keyboard events to determine the cause of focus events.
+ */
+var FocusMonitor = (function () {
+    /**
+     * @param {?} _ngZone
+     * @param {?} _platform
+     */
+    function FocusMonitor(_ngZone, _platform) {
+        var _this = this;
+        this._ngZone = _ngZone;
+        this._platform = _platform;
+        /**
+         * The focus origin that the next focus event is a result of.
+         */
+        this._origin = null;
+        /**
+         * Whether the window has just been focused.
+         */
+        this._windowFocused = false;
+        /**
+         * Weak map of elements being monitored to their info.
+         */
+        this._elementInfo = new WeakMap();
+        this._ngZone.runOutsideAngular(function () { return _this._registerDocumentEvents(); });
+    }
+    /**
+     * Monitors focus on an element and applies appropriate CSS classes.
+     * @param {?} element The element to monitor
+     * @param {?} renderer The renderer to use to apply CSS classes to the element.
+     * @param {?} checkChildren Whether to count the element as focused when its children are focused.
+     * @return {?} An observable that emits when the focus state of the element changes.
+     *     When the element is blurred, null will be emitted.
+     */
+    FocusMonitor.prototype.monitor = function (element, renderer, checkChildren) {
+        var _this = this;
+        // Do nothing if we're not on the browser platform.
+        if (!this._platform.isBrowser) {
+            return of(null);
+        }
+        // Check if we're already monitoring this element.
+        if (this._elementInfo.has(element)) {
+            var /** @type {?} */ cachedInfo = this._elementInfo.get(element); /** @type {?} */
+            ((cachedInfo)).checkChildren = checkChildren;
+            return ((cachedInfo)).subject.asObservable();
+        }
+        // Create monitored element info.
+        var /** @type {?} */ info = {
+            unlisten: function () { },
+            checkChildren: checkChildren,
+            renderer: renderer,
+            subject: new Subject()
+        };
+        this._elementInfo.set(element, info);
+        // Start listening. We need to listen in capture phase since focus events don't bubble.
+        var /** @type {?} */ focusListener = function (event) { return _this._onFocus(event, element); };
+        var /** @type {?} */ blurListener = function (event) { return _this._onBlur(event, element); };
+        this._ngZone.runOutsideAngular(function () {
+            element.addEventListener('focus', focusListener, true);
+            element.addEventListener('blur', blurListener, true);
+        });
+        // Create an unlisten function for later.
+        info.unlisten = function () {
+            element.removeEventListener('focus', focusListener, true);
+            element.removeEventListener('blur', blurListener, true);
+        };
+        return info.subject.asObservable();
+    };
+    /**
+     * Stops monitoring an element and removes all focus classes.
+     * @param {?} element The element to stop monitoring.
+     * @return {?}
+     */
+    FocusMonitor.prototype.stopMonitoring = function (element) {
+        var /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (elementInfo) {
+            elementInfo.unlisten();
+            elementInfo.subject.complete();
+            this._setClasses(element);
+            this._elementInfo.delete(element);
+        }
+    };
+    /**
+     * Focuses the element via the specified focus origin.
+     * @param {?} element The element to focus.
+     * @param {?} origin The focus origin.
+     * @return {?}
+     */
+    FocusMonitor.prototype.focusVia = function (element, origin) {
+        this._setOriginForCurrentEventQueue(origin);
+        element.focus();
+    };
+    /**
+     * Register necessary event listeners on the document and window.
+     * @return {?}
+     */
+    FocusMonitor.prototype._registerDocumentEvents = function () {
+        var _this = this;
+        // Do nothing if we're not on the browser platform.
+        if (!this._platform.isBrowser) {
+            return;
+        }
+        // Note: we listen to events in the capture phase so we can detect them even if the user stops
+        // propagation.
+        // On keydown record the origin and clear any touch event that may be in progress.
+        document.addEventListener('keydown', function () {
+            _this._lastTouchTarget = null;
+            _this._setOriginForCurrentEventQueue('keyboard');
+        }, true);
+        // On mousedown record the origin only if there is not touch target, since a mousedown can
+        // happen as a result of a touch event.
+        document.addEventListener('mousedown', function () {
+            if (!_this._lastTouchTarget) {
+                _this._setOriginForCurrentEventQueue('mouse');
+            }
+        }, true);
+        // When the touchstart event fires the focus event is not yet in the event queue. This means
+        // we can't rely on the trick used above (setting timeout of 0ms). Instead we wait 650ms to
+        // see if a focus happens.
+        document.addEventListener('touchstart', function (event) {
+            if (_this._touchTimeout != null) {
+                clearTimeout(_this._touchTimeout);
+            }
+            _this._lastTouchTarget = event.target;
+            _this._touchTimeout = setTimeout(function () { return _this._lastTouchTarget = null; }, TOUCH_BUFFER_MS);
+        }, true);
+        // Make a note of when the window regains focus, so we can restore the origin info for the
+        // focused element.
+        window.addEventListener('focus', function () {
+            _this._windowFocused = true;
+            setTimeout(function () { return _this._windowFocused = false; }, 0);
+        });
+    };
+    /**
+     * Sets the focus classes on the element based on the given focus origin.
+     * @param {?} element The element to update the classes on.
+     * @param {?=} origin The focus origin.
+     * @return {?}
+     */
+    FocusMonitor.prototype._setClasses = function (element, origin) {
+        var /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (elementInfo) {
+            var /** @type {?} */ toggleClass = function (className, shouldSet) {
+                shouldSet ? elementInfo.renderer.addClass(element, className) :
+                    elementInfo.renderer.removeClass(element, className);
+            };
+            toggleClass('cdk-focused', !!origin);
+            toggleClass('cdk-touch-focused', origin === 'touch');
+            toggleClass('cdk-keyboard-focused', origin === 'keyboard');
+            toggleClass('cdk-mouse-focused', origin === 'mouse');
+            toggleClass('cdk-program-focused', origin === 'program');
+        }
+    };
+    /**
+     * Sets the origin and schedules an async function to clear it at the end of the event queue.
+     * @param {?} origin The origin to set.
+     * @return {?}
+     */
+    FocusMonitor.prototype._setOriginForCurrentEventQueue = function (origin) {
+        var _this = this;
+        this._origin = origin;
+        setTimeout(function () { return _this._origin = null; }, 0);
+    };
+    /**
+     * Checks whether the given focus event was caused by a touchstart event.
+     * @param {?} event The focus event to check.
+     * @return {?} Whether the event was caused by a touch.
+     */
+    FocusMonitor.prototype._wasCausedByTouch = function (event) {
+        // Note(mmalerba): This implementation is not quite perfect, there is a small edge case.
+        // Consider the following dom structure:
+        //
+        // <div #parent tabindex="0" cdkFocusClasses>
+        //   <div #child (click)="#parent.focus()"></div>
+        // </div>
+        //
+        // If the user touches the #child element and the #parent is programmatically focused as a
+        // result, this code will still consider it to have been caused by the touch event and will
+        // apply the cdk-touch-focused class rather than the cdk-program-focused class. This is a
+        // relatively small edge-case that can be worked around by using
+        // focusVia(parentEl, renderer,  'program') to focus the parent element.
+        //
+        // If we decide that we absolutely must handle this case correctly, we can do so by listening
+        // for the first focus event after the touchstart, and then the first blur event after that
+        // focus event. When that blur event fires we know that whatever follows is not a result of the
+        // touchstart.
+        var /** @type {?} */ focusTarget = event.target;
+        return this._lastTouchTarget instanceof Node && focusTarget instanceof Node &&
+            (focusTarget === this._lastTouchTarget || focusTarget.contains(this._lastTouchTarget));
+    };
+    /**
+     * Handles focus events on a registered element.
+     * @param {?} event The focus event.
+     * @param {?} element The monitored element.
+     * @return {?}
+     */
+    FocusMonitor.prototype._onFocus = function (event, element) {
+        // NOTE(mmalerba): We currently set the classes based on the focus origin of the most recent
+        // focus event affecting the monitored element. If we want to use the origin of the first event
+        // instead we should check for the cdk-focused class here and return if the element already has
+        // it. (This only matters for elements that have includesChildren = true).
+        // If we are not counting child-element-focus as focused, make sure that the event target is the
+        // monitored element itself.
+        var /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (!elementInfo || (!elementInfo.checkChildren && element !== event.target)) {
+            return;
+        }
+        // If we couldn't detect a cause for the focus event, it's due to one of three reasons:
+        // 1) The window has just regained focus, in which case we want to restore the focused state of
+        //    the element from before the window blurred.
+        // 2) It was caused by a touch event, in which case we mark the origin as 'touch'.
+        // 3) The element was programmatically focused, in which case we should mark the origin as
+        //    'program'.
+        if (!this._origin) {
+            if (this._windowFocused && this._lastFocusOrigin) {
+                this._origin = this._lastFocusOrigin;
+            }
+            else if (this._wasCausedByTouch(event)) {
+                this._origin = 'touch';
+            }
+            else {
+                this._origin = 'program';
+            }
+        }
+        this._setClasses(element, this._origin);
+        elementInfo.subject.next(this._origin);
+        this._lastFocusOrigin = this._origin;
+        this._origin = null;
+    };
+    /**
+     * Handles blur events on a registered element.
+     * @param {?} event The blur event.
+     * @param {?} element The monitored element.
+     * @return {?}
+     */
+    FocusMonitor.prototype._onBlur = function (event, element) {
+        // If we are counting child-element-focus as focused, make sure that we aren't just blurring in
+        // order to focus another child of the monitored element.
+        var /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (!elementInfo || (elementInfo.checkChildren && event.relatedTarget instanceof Node &&
+            element.contains(event.relatedTarget))) {
+            return;
+        }
+        this._setClasses(element);
+        elementInfo.subject.next(null);
+    };
+    FocusMonitor.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    FocusMonitor.ctorParameters = function () { return [
+        { type: NgZone, },
+        { type: Platform, },
+    ]; };
+    return FocusMonitor;
+}());
+/**
+ * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or
+ * programmatically) and adds corresponding classes to the element.
+ *
+ * There are two variants of this directive:
+ * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is
+ *    focused.
+ * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.
+ */
+var CdkMonitorFocus = (function () {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _focusMonitor
+     * @param {?} renderer
+     */
+    function CdkMonitorFocus(_elementRef, _focusMonitor, renderer) {
+        var _this = this;
+        this._elementRef = _elementRef;
+        this._focusMonitor = _focusMonitor;
+        this.cdkFocusChange = new EventEmitter();
+        this._monitorSubscription = this._focusMonitor.monitor(this._elementRef.nativeElement, renderer, this._elementRef.nativeElement.hasAttribute('cdkMonitorSubtreeFocus'))
+            .subscribe(function (origin) { return _this.cdkFocusChange.emit(origin); });
+    }
+    /**
+     * @return {?}
+     */
+    CdkMonitorFocus.prototype.ngOnDestroy = function () {
+        this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);
+        this._monitorSubscription.unsubscribe();
+    };
+    CdkMonitorFocus.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkMonitorFocus.ctorParameters = function () { return [
+        { type: ElementRef, },
+        { type: FocusMonitor, },
+        { type: Renderer2, },
+    ]; };
+    CdkMonitorFocus.propDecorators = {
+        'cdkFocusChange': [{ type: Output },],
+    };
+    return CdkMonitorFocus;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} ngZone
+ * @param {?} platform
+ * @return {?}
+ */
+function FOCUS_MONITOR_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {
+    return parentDispatcher || new FocusMonitor(ngZone, platform);
+}
+/**
+ * \@docs-private
+ */
+var FOCUS_MONITOR_PROVIDER = {
+    // If there is already a FocusMonitor available, use that. Otherwise, provide a new one.
+    provide: FocusMonitor,
+    deps: [[new Optional(), new SkipSelf(), FocusMonitor], NgZone, Platform],
+    useFactory: FOCUS_MONITOR_PROVIDER_FACTORY
+};
+
+var A11yModule = (function () {
+    function A11yModule() {
+    }
+    A11yModule.decorators = [
+        { type: NgModule, args: [{
+                    imports: [CommonModule, PlatformModule],
+                    declarations: [FocusTrapDirective, FocusTrapDeprecatedDirective, CdkMonitorFocus],
+                    exports: [FocusTrapDirective, FocusTrapDeprecatedDirective, CdkMonitorFocus],
+                    providers: [
+                        InteractivityChecker,
+                        FocusTrapFactory,
+                        AriaDescriber,
+                        LIVE_ANNOUNCER_PROVIDER,
+                        ARIA_DESCRIBER_PROVIDER,
+                        FOCUS_MONITOR_PROVIDER,
+                    ]
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    A11yModule.ctorParameters = function () { return []; };
+    return A11yModule;
+}());
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { ActiveDescendantKeyManager, MESSAGES_CONTAINER_ID, CDK_DESCRIBEDBY_ID_PREFIX, CDK_DESCRIBEDBY_HOST_ATTRIBUTE, AriaDescriber, ARIA_DESCRIBER_PROVIDER_FACTORY, ARIA_DESCRIBER_PROVIDER, isFakeMousedownFromScreenReader, FocusKeyManager, FocusTrap, FocusTrapFactory, FocusTrapDeprecatedDirective, FocusTrapDirective, InteractivityChecker, ListKeyManager, LIVE_ANNOUNCER_ELEMENT_TOKEN, LiveAnnouncer, LIVE_ANNOUNCER_PROVIDER_FACTORY, LIVE_ANNOUNCER_PROVIDER, TOUCH_BUFFER_MS, FocusMonitor, CdkMonitorFocus, FOCUS_MONITOR_PROVIDER_FACTORY, FOCUS_MONITOR_PROVIDER, A11yModule };
+//# sourceMappingURL=a11y.es5.js.map


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/a11y.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/a11y.es5.js.map b/node_modules/@angular/cdk/esm5/a11y.es5.js.map
new file mode 100644
index 0000000..eb6b972
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/a11y.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"a11y.es5.js","sources":["../../packages/cdk/esm5/a11y/list-key-manager.js","../../packages/cdk/esm5/a11y/activedescendant-key-manager.js","../../packages/cdk/esm5/a11y/aria-reference.js","../../packages/cdk/esm5/a11y/aria-describer.js","../../packages/cdk/esm5/a11y/fake-mousedown.js","../../packages/cdk/esm5/a11y/focus-key-manager.js","../../packages/cdk/esm5/a11y/interactivity-checker.js","../../packages/cdk/esm5/a11y/focus-trap.js","../../packages/cdk/esm5/a11y/live-announcer.js","../../packages/cdk/esm5/a11y/focus-monitor.js","../../packages/cdk/esm5/a11y/a11y-module.js","../../packages/cdk/esm5/a11y/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 { Subject } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { UP_ARROW, DOWN_ARROW, TA
 B, A, Z, ZERO, NINE } from '@angular/cdk/keycodes';\nimport { RxChain, debounceTime, filter, map, doOperator } from '@angular/cdk/rxjs';\n/**\n * This class manages keyboard events for selectable lists. If you pass it a query list\n * of items, it will set the active item correctly when arrow events occur.\n */\nvar ListKeyManager = (function () {\n    /**\n     * @param {?} _items\n     */\n    function ListKeyManager(_items) {\n        this._items = _items;\n        this._activeItemIndex = -1;\n        this._wrap = false;\n        this._letterKeyStream = new Subject();\n        this._typeaheadSubscription = Subscription.EMPTY;\n        this._pressedLetters = [];\n        /**\n         * Stream that emits any time the TAB key is pressed, so components can react\n         * when focus is shifted off of the list.\n         */\n        this.tabOut = new Subject();\n    }\n    /**\n     * Turns on wrapping mode, which ensures that the active item will wrap to\n     * the other end of l
 ist when there are no more items in the given direction.\n     * @return {?}\n     */\n    ListKeyManager.prototype.withWrap = function () {\n        this._wrap = true;\n        return this;\n    };\n    /**\n     * Turns on typeahead mode which allows users to set the active item by typing.\n     * @param {?=} debounceInterval Time to wait after the last keystroke before setting the active item.\n     * @return {?}\n     */\n    ListKeyManager.prototype.withTypeAhead = function (debounceInterval) {\n        var _this = this;\n        if (debounceInterval === void 0) { debounceInterval = 200; }\n        if (this._items.length && this._items.some(function (item) { return typeof item.getLabel !== 'function'; })) {\n            throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');\n        }\n        this._typeaheadSubscription.unsubscribe();\n        // Debounce the presses of non-navigational keys, collect the ones that correspond to letters\n  
       // and convert those letters back into a string. Afterwards find the first item that starts\n        // with that string and select it.\n        this._typeaheadSubscription = RxChain.from(this._letterKeyStream)\n            .call(doOperator, function (keyCode) { return _this._pressedLetters.push(keyCode); })\n            .call(debounceTime, debounceInterval)\n            .call(filter, function () { return _this._pressedLetters.length > 0; })\n            .call(map, function () { return _this._pressedLetters.join(''); })\n            .subscribe(function (inputString) {\n            var /** @type {?} */ items = _this._items.toArray();\n            // Start at 1 because we want to start searching at the item immediately\n            // following the current active item.\n            for (var /** @type {?} */ i = 1; i < items.length + 1; i++) {\n                var /** @type {?} */ index = (_this._activeItemIndex + i) % items.length;\n                var /** @type {?} */ item = it
 ems[index];\n                if (!item.disabled && ((item.getLabel))().toUpperCase().trim().indexOf(inputString) === 0) {\n                    _this.setActiveItem(index);\n                    break;\n                }\n            }\n            _this._pressedLetters = [];\n        });\n        return this;\n    };\n    /**\n     * Sets the active item to the item at the index specified.\n     * @param {?} index The index of the item to be set as active.\n     * @return {?}\n     */\n    ListKeyManager.prototype.setActiveItem = function (index) {\n        this._activeItemIndex = index;\n        this._activeItem = this._items.toArray()[index];\n    };\n    /**\n     * Sets the active item depending on the key event passed in.\n     * @param {?} event Keyboard event to be used for determining which element should be active.\n     * @return {?}\n     */\n    ListKeyManager.prototype.onKeydown = function (event) {\n        switch (event.keyCode) {\n            case DOWN_ARROW:\n        
         this.setNextItemActive();\n                break;\n            case UP_ARROW:\n                this.setPreviousItemActive();\n                break;\n            case TAB:\n                this.tabOut.next();\n                return;\n            default:\n                var /** @type {?} */ keyCode = event.keyCode;\n                // Attempt to use the `event.key` which also maps it to the user's keyboard language,\n                // otherwise fall back to resolving alphanumeric characters via the keyCode.\n                if (event.key && event.key.length === 1) {\n                    this._letterKeyStream.next(event.key.toLocaleUpperCase());\n                }\n                else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {\n                    this._letterKeyStream.next(String.fromCharCode(keyCode));\n                }\n                // Note that we return here, in order to avoid preventing\n                // the default action of
  non-navigational keys.\n                return;\n        }\n        this._pressedLetters = [];\n        event.preventDefault();\n    };\n    Object.defineProperty(ListKeyManager.prototype, \"activeItemIndex\", {\n        /**\n         * Index of the currently active item.\n         * @return {?}\n         */\n        get: function () {\n            return this._activeItemIndex;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ListKeyManager.prototype, \"activeItem\", {\n        /**\n         * The active item.\n         * @return {?}\n         */\n        get: function () {\n            return this._activeItem;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Sets the active item to the first enabled item in the list.\n     * @return {?}\n     */\n    ListKeyManager.prototype.setFirstItemActive = function () {\n        this._setActiveItemByIndex(0, 1);\n    };\n    /**\n     * Sets the
  active item to the last enabled item in the list.\n     * @return {?}\n     */\n    ListKeyManager.prototype.setLastItemActive = function () {\n        this._setActiveItemByIndex(this._items.length - 1, -1);\n    };\n    /**\n     * Sets the active item to the next enabled item in the list.\n     * @return {?}\n     */\n    ListKeyManager.prototype.setNextItemActive = function () {\n        this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);\n    };\n    /**\n     * Sets the active item to a previous enabled item in the list.\n     * @return {?}\n     */\n    ListKeyManager.prototype.setPreviousItemActive = function () {\n        this._activeItemIndex < 0 && this._wrap ? this.setLastItemActive()\n            : this._setActiveItemByDelta(-1);\n    };\n    /**\n     * Allows setting of the activeItemIndex without any other effects.\n     * @param {?} index The new activeItemIndex.\n     * @return {?}\n     */\n    ListKeyManager.prototype.updateActi
 veItemIndex = function (index) {\n        this._activeItemIndex = index;\n    };\n    /**\n     * This method sets the active item, given a list of items and the delta between the\n     * currently active item and the new active item. It will calculate differently\n     * depending on whether wrap mode is turned on.\n     * @param {?} delta\n     * @param {?=} items\n     * @return {?}\n     */\n    ListKeyManager.prototype._setActiveItemByDelta = function (delta, items) {\n        if (items === void 0) { items = this._items.toArray(); }\n        this._wrap ? this._setActiveInWrapMode(delta, items)\n            : this._setActiveInDefaultMode(delta, items);\n    };\n    /**\n     * Sets the active item properly given \"wrap\" mode. In other words, it will continue to move\n     * down the list until it finds an item that is not disabled, and it will wrap if it\n     * encounters either end of the list.\n     * @param {?} delta\n     * @param {?} items\n     * @return {?}\n     */\n  
   ListKeyManager.prototype._setActiveInWrapMode = function (delta, items) {\n        // when active item would leave menu, wrap to beginning or end\n        this._activeItemIndex =\n            (this._activeItemIndex + delta + items.length) % items.length;\n        // skip all disabled menu items recursively until an enabled one is reached\n        if (items[this._activeItemIndex].disabled) {\n            this._setActiveInWrapMode(delta, items);\n        }\n        else {\n            this.setActiveItem(this._activeItemIndex);\n        }\n    };\n    /**\n     * Sets the active item properly given the default mode. In other words, it will\n     * continue to move down the list until it finds an item that is not disabled. If\n     * it encounters either end of the list, it will stop and not wrap.\n     * @param {?} delta\n     * @param {?} items\n     * @return {?}\n     */\n    ListKeyManager.prototype._setActiveInDefaultMode = function (delta, items) {\n        this._setActiveItemB
 yIndex(this._activeItemIndex + delta, delta, items);\n    };\n    /**\n     * Sets the active item to the first enabled item starting at the index specified. If the\n     * item is disabled, it will move in the fallbackDelta direction until it either\n     * finds an enabled item or encounters the end of the list.\n     * @param {?} index\n     * @param {?} fallbackDelta\n     * @param {?=} items\n     * @return {?}\n     */\n    ListKeyManager.prototype._setActiveItemByIndex = function (index, fallbackDelta, items) {\n        if (items === void 0) { items = this._items.toArray(); }\n        if (!items[index]) {\n            return;\n        }\n        while (items[index].disabled) {\n            index += fallbackDelta;\n            if (!items[index]) {\n                return;\n            }\n        }\n        this.setActiveItem(index);\n    };\n    return ListKeyManager;\n}());\nexport { ListKeyManager };\nfunction ListKeyManager_tsickle_Closure_declarations() {\n    /** @type {?
 } */\n    ListKeyManager.prototype._activeItemIndex;\n    /** @type {?} */\n    ListKeyManager.prototype._activeItem;\n    /** @type {?} */\n    ListKeyManager.prototype._wrap;\n    /** @type {?} */\n    ListKeyManager.prototype._letterKeyStream;\n    /** @type {?} */\n    ListKeyManager.prototype._typeaheadSubscription;\n    /** @type {?} */\n    ListKeyManager.prototype._pressedLetters;\n    /**\n     * Stream that emits any time the TAB key is pressed, so components can react\n     * when focus is shifted off of the list.\n     * @type {?}\n     */\n    ListKeyManager.prototype.tabOut;\n    /** @type {?} */\n    ListKeyManager.prototype._items;\n}\n//# sourceMappingURL=list-key-manager.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 * as tslib_1 from \"tslib\";\nimport { ListKeyManager } from './list-key-
 manager';\nvar ActiveDescendantKeyManager = (function (_super) {\n    tslib_1.__extends(ActiveDescendantKeyManager, _super);\n    function ActiveDescendantKeyManager() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /**\n     * This method sets the active item to the item at the specified index.\n     * It also adds active styles to the newly active item and removes active\n     * styles from the previously active item.\n     * @param {?} index\n     * @return {?}\n     */\n    ActiveDescendantKeyManager.prototype.setActiveItem = function (index) {\n        if (this.activeItem) {\n            this.activeItem.setInactiveStyles();\n        }\n        _super.prototype.setActiveItem.call(this, index);\n        if (this.activeItem) {\n            this.activeItem.setActiveStyles();\n        }\n    };\n    return ActiveDescendantKeyManager;\n}(ListKeyManager));\nexport { ActiveDescendantKeyManager };\n//# sourceMappingURL=activedescendant-key-manager
 .js.map","/**\n * IDs are deliminated by an empty space, as per the spec.\n */\nvar ID_DELIMINATOR = ' ';\n/**\n * Adds the given ID to the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n * @param {?} el\n * @param {?} attr\n * @param {?} id\n * @return {?}\n */\nexport function addAriaReferencedId(el, attr, id) {\n    var /** @type {?} */ ids = getAriaReferenceIds(el, attr);\n    if (ids.some(function (existingId) { return existingId.trim() == id.trim(); })) {\n        return;\n    }\n    ids.push(id.trim());\n    el.setAttribute(attr, ids.join(ID_DELIMINATOR));\n}\n/**\n * Removes the given ID from the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n * @param {?} el\n * @param {?} attr\n * @param {?} id\n * @return {?}\n */\nexport function removeAriaReferencedId(el, attr, id) {\n    var /** @type {?} */ ids = getAriaReferenceIds(el, attr);\n    var /** @type {?} */
  filteredIds = ids.filter(function (val) { return val != id.trim(); });\n    el.setAttribute(attr, filteredIds.join(ID_DELIMINATOR));\n}\n/**\n * Gets the list of IDs referenced by the given ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n * @param {?} el\n * @param {?} attr\n * @return {?}\n */\nexport function getAriaReferenceIds(el, attr) {\n    // Get string array of all individual ids (whitespace deliminated) in the attribute value\n    return (el.getAttribute(attr) || '').match(/\\S+/g) || [];\n}\n//# sourceMappingURL=aria-reference.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';\nimport { Platform } from '@angular/cdk/platform';\nimport { addAriaReferencedId, getAriaReferenceIds, removeAriaReferenc
 edId } from './aria-reference';\n/**\n * ID used for the body container where all messages are appended.\n */\nexport var MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';\n/**\n * ID prefix used for each created message element.\n */\nexport var CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';\n/**\n * Attribute given to each host element that is described by a message element.\n */\nexport var CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';\n/**\n * Global incremental identifier for each registered message element.\n */\nvar nextId = 0;\n/**\n * Global map of all registered message elements that have been placed into the document.\n */\nvar messageRegistry = new Map();\n/**\n * Container for all registered messages.\n */\nvar messagesContainer = null;\n/**\n * Utility that creates visually hidden elements with a message content. Useful for elements that\n * want to use aria-describedby to further describe themselves without adding additional visual\n * co
 ntent.\n * \\@docs-private\n */\nvar AriaDescriber = (function () {\n    /**\n     * @param {?} _platform\n     */\n    function AriaDescriber(_platform) {\n        this._platform = _platform;\n    }\n    /**\n     * Adds to the host element an aria-describedby reference to a hidden element that contains\n     * the message. If the same message has already been registered, then it will reuse the created\n     * message element.\n     * @param {?} hostElement\n     * @param {?} message\n     * @return {?}\n     */\n    AriaDescriber.prototype.describe = function (hostElement, message) {\n        if (!this._platform.isBrowser || !message.trim()) {\n            return;\n        }\n        if (!messageRegistry.has(message)) {\n            createMessageElement(message);\n        }\n        if (!isElementDescribedByMessage(hostElement, message)) {\n            addMessageReference(hostElement, message);\n        }\n    };\n    /**\n     * Removes the host element's aria-describedby referen
 ce to the message element.\n     * @param {?} hostElement\n     * @param {?} message\n     * @return {?}\n     */\n    AriaDescriber.prototype.removeDescription = function (hostElement, message) {\n        if (!this._platform.isBrowser || !message.trim()) {\n            return;\n        }\n        if (isElementDescribedByMessage(hostElement, message)) {\n            removeMessageReference(hostElement, message);\n        }\n        var /** @type {?} */ registeredMessage = messageRegistry.get(message);\n        if (registeredMessage && registeredMessage.referenceCount === 0) {\n            deleteMessageElement(message);\n        }\n        if (messagesContainer && messagesContainer.childNodes.length === 0) {\n            deleteMessagesContainer();\n        }\n    };\n    /**\n     * Unregisters all created message elements and removes the message container.\n     * @return {?}\n     */\n    AriaDescriber.prototype.ngOnDestroy = function () {\n        if (!this._platform.isBrowser) {\n
             return;\n        }\n        var /** @type {?} */ describedElements = document.querySelectorAll(\"[\" + CDK_DESCRIBEDBY_HOST_ATTRIBUTE + \"]\");\n        for (var /** @type {?} */ i = 0; i < describedElements.length; i++) {\n            removeCdkDescribedByReferenceIds(describedElements[i]);\n            describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n        }\n        if (messagesContainer) {\n            deleteMessagesContainer();\n        }\n        messageRegistry.clear();\n    };\n    AriaDescriber.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    AriaDescriber.ctorParameters = function () { return [\n        { type: Platform, },\n    ]; };\n    return AriaDescriber;\n}());\nexport { AriaDescriber };\nfunction AriaDescriber_tsickle_Closure_declarations() {\n    /** @type {?} */\n    AriaDescriber.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    AriaDescriber.ctorParameters;
 \n    /** @type {?} */\n    AriaDescriber.prototype._platform;\n}\n/**\n * Creates a new element in the visually hidden message container element with the message\n * as its content and adds it to the message registry.\n * @param {?} message\n * @return {?}\n */\nfunction createMessageElement(message) {\n    var /** @type {?} */ messageElement = document.createElement('div');\n    messageElement.setAttribute('id', CDK_DESCRIBEDBY_ID_PREFIX + \"-\" + nextId++);\n    messageElement.appendChild(/** @type {?} */ ((document.createTextNode(message))));\n    if (!messagesContainer) {\n        createMessagesContainer();\n    } /** @type {?} */\n    ((messagesContainer)).appendChild(messageElement);\n    messageRegistry.set(message, { messageElement: messageElement, referenceCount: 0 });\n}\n/**\n * Deletes the message element from the global messages container.\n * @param {?} message\n * @return {?}\n */\nfunction deleteMessageElement(message) {\n    var /** @type {?} */ registeredMessage =
  messageRegistry.get(message);\n    var /** @type {?} */ messageElement = registeredMessage && registeredMessage.messageElement;\n    if (messagesContainer && messageElement) {\n        messagesContainer.removeChild(messageElement);\n    }\n    messageRegistry.delete(message);\n}\n/**\n * Creates the global container for all aria-describedby messages.\n * @return {?}\n */\nfunction createMessagesContainer() {\n    messagesContainer = document.createElement('div');\n    messagesContainer.setAttribute('id', MESSAGES_CONTAINER_ID);\n    messagesContainer.setAttribute('aria-hidden', 'true');\n    messagesContainer.style.display = 'none';\n    document.body.appendChild(messagesContainer);\n}\n/**\n * Deletes the global messages container.\n * @return {?}\n */\nfunction deleteMessagesContainer() {\n    document.body.removeChild(/** @type {?} */ ((messagesContainer)));\n    messagesContainer = null;\n}\n/**\n * Removes all cdk-describedby messages that are hosted through the element.\n * @
 param {?} element\n * @return {?}\n */\nfunction removeCdkDescribedByReferenceIds(element) {\n    // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX\n    var /** @type {?} */ originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby')\n        .filter(function (id) { return id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0; });\n    element.setAttribute('aria-describedby', originalReferenceIds.join(' '));\n}\n/**\n * Adds a message reference to the element using aria-describedby and increments the registered\n * message's reference count.\n * @param {?} element\n * @param {?} message\n * @return {?}\n */\nfunction addMessageReference(element, message) {\n    var /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));\n    // Add the aria-describedby reference and set the describedby_host attribute to mark the element.\n    addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n    element.s
 etAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, '');\n    registeredMessage.referenceCount++;\n}\n/**\n * Removes a message reference from the element using aria-describedby and decrements the registered\n * message's reference count.\n * @param {?} element\n * @param {?} message\n * @return {?}\n */\nfunction removeMessageReference(element, message) {\n    var /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));\n    registeredMessage.referenceCount--;\n    removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n    element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n}\n/**\n * Returns true if the element has been described by the provided message ID.\n * @param {?} element\n * @param {?} message\n * @return {?}\n */\nfunction isElementDescribedByMessage(element, message) {\n    var /** @type {?} */ referenceIds = getAriaReferenceIds(element, 'aria-describedby');\n    var /** @type {?} */ registeredMessage = messageRegistry.get
 (message);\n    var /** @type {?} */ messageId = registeredMessage && registeredMessage.messageElement.id;\n    return !!messageId && referenceIds.indexOf(messageId) != -1;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} platform\n * @return {?}\n */\nexport function ARIA_DESCRIBER_PROVIDER_FACTORY(parentDispatcher, platform) {\n    return parentDispatcher || new AriaDescriber(platform);\n}\n/**\n * \\@docs-private\n */\nexport var ARIA_DESCRIBER_PROVIDER = {\n    // If there is already an AriaDescriber available, use that. Otherwise, provide a new one.\n    provide: AriaDescriber,\n    deps: [\n        [new Optional(), new SkipSelf(), AriaDescriber],\n        Platform\n    ],\n    useFactory: ARIA_DESCRIBER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=aria-describer.js.map","/**\n * Screenreaders will often fire fake mousedown events when a focusable element\n * is activated using the keyboard. We can typically distinguish between these faked\n * mousedown 
 events and real mousedown events using the \"buttons\" property. While\n * real mousedowns will indicate the mouse button that was pressed (e.g. \"1\" for\n * the left mouse button), faked mousedowns will usually set the property value to 0.\n * @param {?} event\n * @return {?}\n */\nexport function isFakeMousedownFromScreenReader(event) {\n    return event.buttons === 0;\n}\n//# sourceMappingURL=fake-mousedown.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 * as tslib_1 from \"tslib\";\nimport { ListKeyManager } from './list-key-manager';\nvar FocusKeyManager = (function (_super) {\n    tslib_1.__extends(FocusKeyManager, _super);\n    function FocusKeyManager() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /**\n     * This method sets the active item to the item at 
 the specified index.\n     * It also adds focuses the newly active item.\n     * @param {?} index\n     * @return {?}\n     */\n    FocusKeyManager.prototype.setActiveItem = function (index) {\n        _super.prototype.setActiveItem.call(this, index);\n        if (this.activeItem) {\n            this.activeItem.focus();\n        }\n    };\n    return FocusKeyManager;\n}(ListKeyManager));\nexport { FocusKeyManager };\n//# sourceMappingURL=focus-key-manager.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 } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\n/**\n * Utility for checking the interactivity of an element, such as whether is is focusable or\n * tabbable.\n */\nvar InteractivityChecker = (function () {\n    /**\n     * @param {?} _platform\n     */\n    function In
 teractivityChecker(_platform) {\n        this._platform = _platform;\n    }\n    /**\n     * Gets whether an element is disabled.\n     *\n     * @param {?} element Element to be checked.\n     * @return {?} Whether the element is disabled.\n     */\n    InteractivityChecker.prototype.isDisabled = function (element) {\n        // This does not capture some cases, such as a non-form control with a disabled attribute or\n        // a form control inside of a disabled form, but should capture the most common cases.\n        return element.hasAttribute('disabled');\n    };\n    /**\n     * Gets whether an element is visible for the purposes of interactivity.\n     *\n     * This will capture states like `display: none` and `visibility: hidden`, but not things like\n     * being clipped by an `overflow: hidden` parent or being outside the viewport.\n     *\n     * @param {?} element\n     * @return {?} Whether the element is visible.\n     */\n    InteractivityChecker.prototype.isVisible
  = function (element) {\n        return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';\n    };\n    /**\n     * Gets whether an element can be reached via Tab key.\n     * Assumes that the element has already been checked with isFocusable.\n     *\n     * @param {?} element Element to be checked.\n     * @return {?} Whether the element is tabbable.\n     */\n    InteractivityChecker.prototype.isTabbable = function (element) {\n        // Nothing is tabbable on the the server 😎\n        if (!this._platform.isBrowser) {\n            return false;\n        }\n        var /** @type {?} */ frameElement = (getWindow(element).frameElement);\n        if (frameElement) {\n            var /** @type {?} */ frameType = frameElement && frameElement.nodeName.toLowerCase();\n            // Frame elements inherit their tabindex onto all child elements.\n            if (getTabIndexValue(frameElement) === -1) {\n                return false;\n            }\n           
  // Webkit and Blink consider anything inside of an <object> element as non-tabbable.\n            if ((this._platform.BLINK || this._platform.WEBKIT) && frameType === 'object') {\n                return false;\n            }\n            // Webkit and Blink disable tabbing to an element inside of an invisible frame.\n            if ((this._platform.BLINK || this._platform.WEBKIT) && !this.isVisible(frameElement)) {\n                return false;\n            }\n        }\n        var /** @type {?} */ nodeName = element.nodeName.toLowerCase();\n        var /** @type {?} */ tabIndexValue = getTabIndexValue(element);\n        if (element.hasAttribute('contenteditable')) {\n            return tabIndexValue !== -1;\n        }\n        if (nodeName === 'iframe') {\n            // The frames may be tabbable depending on content, but it's not possibly to reliably\n            // investigate the content of the frames.\n            return false;\n        }\n        if (nodeName === 'audio') 
 {\n            if (!element.hasAttribute('controls')) {\n                // By default an <audio> element without the controls enabled is not tabbable.\n                return false;\n            }\n            else if (this._platform.BLINK) {\n                // In Blink <audio controls> elements are always tabbable.\n                return true;\n            }\n        }\n        if (nodeName === 'video') {\n            if (!element.hasAttribute('controls') && this._platform.TRIDENT) {\n                // In Trident a <video> element without the controls enabled is not tabbable.\n                return false;\n            }\n            else if (this._platform.BLINK || this._platform.FIREFOX) {\n                // In Chrome and Firefox <video controls> elements are always tabbable.\n                return true;\n            }\n        }\n        if (nodeName === 'object' && (this._platform.BLINK || this._platform.WEBKIT)) {\n            // In all Blink and WebKit based browsers <o
 bject> elements are never tabbable.\n            return false;\n        }\n        // In iOS the browser only considers some specific elements as tabbable.\n        if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {\n            return false;\n        }\n        return element.tabIndex >= 0;\n    };\n    /**\n     * Gets whether an element can be focused by the user.\n     *\n     * @param {?} element Element to be checked.\n     * @return {?} Whether the element is focusable.\n     */\n    InteractivityChecker.prototype.isFocusable = function (element) {\n        // Perform checks in order of left to most expensive.\n        // Again, naive approach that does not capture many edge cases and browser quirks.\n        return isPotentiallyFocusable(element) && !this.isDisabled(element) && this.isVisible(element);\n    };\n    InteractivityChecker.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    Intera
 ctivityChecker.ctorParameters = function () { return [\n        { type: Platform, },\n    ]; };\n    return InteractivityChecker;\n}());\nexport { InteractivityChecker };\nfunction InteractivityChecker_tsickle_Closure_declarations() {\n    /** @type {?} */\n    InteractivityChecker.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    InteractivityChecker.ctorParameters;\n    /** @type {?} */\n    InteractivityChecker.prototype._platform;\n}\n/**\n * Checks whether the specified element has any geometry / rectangles.\n * @param {?} element\n * @return {?}\n */\nfunction hasGeometry(element) {\n    // Use logic from jQuery to check for an invisible element.\n    // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n    return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);\n}\n/**\n * Gets whether an element's\n * @param {?} element\n * @return {?}\n */\nfunction isNativeFormElement(element) {
 \n    var /** @type {?} */ nodeName = element.nodeName.toLowerCase();\n    return nodeName === 'input' ||\n        nodeName === 'select' ||\n        nodeName === 'button' ||\n        nodeName === 'textarea';\n}\n/**\n * Gets whether an element is an <input type=\"hidden\">.\n * @param {?} element\n * @return {?}\n */\nfunction isHiddenInput(element) {\n    return isInputElement(element) && element.type == 'hidden';\n}\n/**\n * Gets whether an element is an anchor that has an href attribute.\n * @param {?} element\n * @return {?}\n */\nfunction isAnchorWithHref(element) {\n    return isAnchorElement(element) && element.hasAttribute('href');\n}\n/**\n * Gets whether an element is an input element.\n * @param {?} element\n * @return {?}\n */\nfunction isInputElement(element) {\n    return element.nodeName.toLowerCase() == 'input';\n}\n/**\n * Gets whether an element is an anchor element.\n * @param {?} element\n * @return {?}\n */\nfunction isAnchorElement(element) {\n    return elemen
 t.nodeName.toLowerCase() == 'a';\n}\n/**\n * Gets whether an element has a valid tabindex.\n * @param {?} element\n * @return {?}\n */\nfunction hasValidTabIndex(element) {\n    if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n        return false;\n    }\n    var /** @type {?} */ tabIndex = element.getAttribute('tabindex');\n    // IE11 parses tabindex=\"\" as the value \"-32768\"\n    if (tabIndex == '-32768') {\n        return false;\n    }\n    return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Returns the parsed tabindex from the element attributes instead of returning the\n * evaluated tabindex from the browsers defaults.\n * @param {?} element\n * @return {?}\n */\nfunction getTabIndexValue(element) {\n    if (!hasValidTabIndex(element)) {\n        return null;\n    }\n    // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n    var /** @type {?} */ tabIndex = parseInt(element.getAttribute('tabindex') |
 | '', 10);\n    return isNaN(tabIndex) ? -1 : tabIndex;\n}\n/**\n * Checks whether the specified element is potentially tabbable on iOS\n * @param {?} element\n * @return {?}\n */\nfunction isPotentiallyTabbableIOS(element) {\n    var /** @type {?} */ nodeName = element.nodeName.toLowerCase();\n    var /** @type {?} */ inputType = nodeName === 'input' && ((element)).type;\n    return inputType === 'text'\n        || inputType === 'password'\n        || nodeName === 'select'\n        || nodeName === 'textarea';\n}\n/**\n * Gets whether an element is potentially focusable without taking current visible/disabled state\n * into account.\n * @param {?} element\n * @return {?}\n */\nfunction isPotentiallyFocusable(element) {\n    // Inputs are potentially focusable *unless* they're type=\"hidden\".\n    if (isHiddenInput(element)) {\n        return false;\n    }\n    return isNativeFormElement(element) ||\n        isAnchorWithHref(element) ||\n        element.hasAttribute('contenteditable
 ') ||\n        hasValidTabIndex(element);\n}\n/**\n * Gets the parent window of a DOM node with regards of being inside of an iframe.\n * @param {?} node\n * @return {?}\n */\nfunction getWindow(node) {\n    return node.ownerDocument.defaultView || window;\n}\n//# sourceMappingURL=interactivity-checker.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directive, ElementRef, Input, NgZone, Injectable, } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport { first } from '@angular/cdk/rxjs';\nimport { InteractivityChecker } from './interactivity-checker';\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * NOTE: This class currently uses a very simple (naive) approach to focus trapping.\n * It as
 sumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like tabIndex > 0, flex `order`, and shadow roots can cause to two to misalign.\n * This will be replaced with a more intelligent solution before the library is considered stable.\n */\nvar FocusTrap = (function () {\n    /**\n     * @param {?} _element\n     * @param {?} _platform\n     * @param {?} _checker\n     * @param {?} _ngZone\n     * @param {?=} deferAnchors\n     */\n    function FocusTrap(_element, _platform, _checker, _ngZone, deferAnchors) {\n        if (deferAnchors === void 0) { deferAnchors = false; }\n        this._element = _element;\n        this._platform = _platform;\n        this._checker = _checker;\n        this._ngZone = _ngZone;\n        this._enabled = true;\n        if (!deferAnchors) {\n            this.attachAnchors();\n        }\n    }\n    Object.defineProperty(FocusTrap.prototype, \"enabled\", {\n        /**\n         * Whether the focus trap is active.\n   
       * @return {?}\n         */\n        get: function () { return this._enabled; },\n        /**\n         * @param {?} val\n         * @return {?}\n         */\n        set: function (val) {\n            this._enabled = val;\n            if (this._startAnchor && this._endAnchor) {\n                this._startAnchor.tabIndex = this._endAnchor.tabIndex = this._enabled ? 0 : -1;\n            }\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Destroys the focus trap by cleaning up the anchors.\n     * @return {?}\n     */\n    FocusTrap.prototype.destroy = function () {\n        if (this._startAnchor && this._startAnchor.parentNode) {\n            this._startAnchor.parentNode.removeChild(this._startAnchor);\n        }\n        if (this._endAnchor && this._endAnchor.parentNode) {\n            this._endAnchor.parentNode.removeChild(this._endAnchor);\n        }\n        this._startAnchor = this._endAnchor = null;\n    };\n    /**\n     * Inser
 ts the anchors into the DOM. This is usually done automatically\n     * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n     * @return {?}\n     */\n    FocusTrap.prototype.attachAnchors = function () {\n        var _this = this;\n        // If we're not on the browser, there can be no focus to trap.\n        if (!this._platform.isBrowser) {\n            return;\n        }\n        if (!this._startAnchor) {\n            this._startAnchor = this._createAnchor();\n        }\n        if (!this._endAnchor) {\n            this._endAnchor = this._createAnchor();\n        }\n        this._ngZone.runOutsideAngular(function () {\n            ((_this._startAnchor)).addEventListener('focus', function () {\n                _this.focusLastTabbableElement();\n            }); /** @type {?} */\n            ((_this._endAnchor)).addEventListener('focus', function () {\n                _this.focusFirstTabbableElement();\n            });\n            if (_this._element.
 parentNode) {\n                _this._element.parentNode.insertBefore(/** @type {?} */ ((_this._startAnchor)), _this._element);\n                _this._element.parentNode.insertBefore(/** @type {?} */ ((_this._endAnchor)), _this._element.nextSibling);\n            }\n        });\n    };\n    /**\n     * Waits for the zone to stabilize, then either focuses the first element that the\n     * user specified, or the first tabbable element.\n     * @return {?} Returns a promise that resolves with a boolean, depending\n     * on whether focus was moved successfuly.\n     */\n    FocusTrap.prototype.focusInitialElementWhenReady = function () {\n        var _this = this;\n        return new Promise(function (resolve) {\n            _this._executeOnStable(function () { return resolve(_this.focusInitialElement()); });\n        });\n    };\n    /**\n     * Waits for the zone to stabilize, then focuses\n     * the first tabbable element within the focus trap region.\n     * @return {?} Returns 
 a promise that resolves with a boolean, depending\n     * on whether focus was moved successfuly.\n     */\n    FocusTrap.prototype.focusFirstTabbableElementWhenReady = function () {\n        var _this = this;\n        return new Promise(function (resolve) {\n            _this._executeOnStable(function () { return resolve(_this.focusFirstTabbableElement()); });\n        });\n    };\n    /**\n     * Waits for the zone to stabilize, then focuses\n     * the last tabbable element within the focus trap region.\n     * @return {?} Returns a promise that resolves with a boolean, depending\n     * on whether focus was moved successfuly.\n     */\n    FocusTrap.prototype.focusLastTabbableElementWhenReady = function () {\n        var _this = this;\n        return new Promise(function (resolve) {\n            _this._executeOnStable(function () { return resolve(_this.focusLastTabbableElement()); });\n        });\n    };\n    /**\n     * Get the specified boundary element of the trapped region.
 \n     * @param {?} bound The boundary to get (start or end of trapped region).\n     * @return {?} The boundary element.\n     */\n    FocusTrap.prototype._getRegionBoundary = function (bound) {\n        // Contains the deprecated version of selector, for temporary backwards comparability.\n        var /** @type {?} */ markers = (this._element.querySelectorAll(\"[cdk-focus-region-\" + bound + \"], \" +\n            (\"[cdk-focus-\" + bound + \"]\")));\n        for (var /** @type {?} */ i = 0; i < markers.length; i++) {\n            if (markers[i].hasAttribute(\"cdk-focus-\" + bound)) {\n                console.warn(\"Found use of deprecated attribute 'cdk-focus-\" + bound + \"',\" +\n                    (\" use 'cdk-focus-region-\" + bound + \"' instead.\"), markers[i]);\n            }\n        }\n        if (bound == 'start') {\n            return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);\n        }\n        return markers.length ?\n            ma
 rkers[markers.length - 1] : this._getLastTabbableElement(this._element);\n    };\n    /**\n     * Focuses the element that should be focused when the focus trap is initialized.\n     * @return {?} Returns whether focus was moved successfuly.\n     */\n    FocusTrap.prototype.focusInitialElement = function () {\n        var /** @type {?} */ redirectToElement = (this._element.querySelector('[cdk-focus-initial]'));\n        if (redirectToElement) {\n            redirectToElement.focus();\n            return true;\n        }\n        return this.focusFirstTabbableElement();\n    };\n    /**\n     * Focuses the first tabbable element within the focus trap region.\n     * @return {?} Returns whether focus was moved successfuly.\n     */\n    FocusTrap.prototype.focusFirstTabbableElement = function () {\n        var /** @type {?} */ redirectToElement = this._getRegionBoundary('start');\n        if (redirectToElement) {\n            redirectToElement.focus();\n        }\n        return !!re
 directToElement;\n    };\n    /**\n     * Focuses the last tabbable element within the focus trap region.\n     * @return {?} Returns whether focus was moved successfuly.\n     */\n    FocusTrap.prototype.focusLastTabbableElement = function () {\n        var /** @type {?} */ redirectToElement = this._getRegionBoundary('end');\n        if (redirectToElement) {\n            redirectToElement.focus();\n        }\n        return !!redirectToElement;\n    };\n    /**\n     * Get the first tabbable element from a DOM subtree (inclusive).\n     * @param {?} root\n     * @return {?}\n     */\n    FocusTrap.prototype._getFirstTabbableElement = function (root) {\n        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n            return root;\n        }\n        // Iterate in DOM order. Note that IE doesn't have `children` for SVG so we fall\n        // back to `childNodes` which includes text nodes, comments etc.\n        var /** @type {?} */ children = root.childre
 n || root.childNodes;\n        for (var /** @type {?} */ i = 0; i < children.length; i++) {\n            var /** @type {?} */ tabbableChild = children[i].nodeType === Node.ELEMENT_NODE ?\n                this._getFirstTabbableElement(/** @type {?} */ (children[i])) :\n                null;\n            if (tabbableChild) {\n                return tabbableChild;\n            }\n        }\n        return null;\n    };\n    /**\n     * Get the last tabbable element from a DOM subtree (inclusive).\n     * @param {?} root\n     * @return {?}\n     */\n    FocusTrap.prototype._getLastTabbableElement = function (root) {\n        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n            return root;\n        }\n        // Iterate in reverse DOM order.\n        var /** @type {?} */ children = root.children || root.childNodes;\n        for (var /** @type {?} */ i = children.length - 1; i >= 0; i--) {\n            var /** @type {?} */ tabbableChild = children[i].nod
 eType === Node.ELEMENT_NODE ?\n                this._getLastTabbableElement(/** @type {?} */ (children[i])) :\n                null;\n            if (tabbableChild) {\n                return tabbableChild;\n            }\n        }\n        return null;\n    };\n    /**\n     * Creates an anchor element.\n     * @return {?}\n     */\n    FocusTrap.prototype._createAnchor = function () {\n        var /** @type {?} */ anchor = document.createElement('div');\n        anchor.tabIndex = this._enabled ? 0 : -1;\n        anchor.classList.add('cdk-visually-hidden');\n        anchor.classList.add('cdk-focus-trap-anchor');\n        return anchor;\n    };\n    /**\n     * Executes a function when the zone is stable.\n     * @param {?} fn\n     * @return {?}\n     */\n    FocusTrap.prototype._executeOnStable = function (fn) {\n        if (this._ngZone.isStable) {\n            fn();\n        }\n        else {\n            first.call(this._ngZone.onStable.asObservable()).subscribe(fn);\n        }
 \n    };\n    return FocusTrap;\n}());\nexport { FocusTrap };\nfunction FocusTrap_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FocusTrap.prototype._startAnchor;\n    /** @type {?} */\n    FocusTrap.prototype._endAnchor;\n    /** @type {?} */\n    FocusTrap.prototype._enabled;\n    /** @type {?} */\n    FocusTrap.prototype._element;\n    /** @type {?} */\n    FocusTrap.prototype._platform;\n    /** @type {?} */\n    FocusTrap.prototype._checker;\n    /** @type {?} */\n    FocusTrap.prototype._ngZone;\n}\n/**\n * Factory that allows easy instantiation of focus traps.\n */\nvar FocusTrapFactory = (function () {\n    /**\n     * @param {?} _checker\n     * @param {?} _platform\n     * @param {?} _ngZone\n     */\n    function FocusTrapFactory(_checker, _platform, _ngZone) {\n        this._checker = _checker;\n        this._platform = _platform;\n        this._ngZone = _ngZone;\n    }\n    /**\n     * @param {?} element\n     * @param {?=} deferAnchors\n     * @return {?}\
 n     */\n    FocusTrapFactory.prototype.create = function (element, deferAnchors) {\n        if (deferAnchors === void 0) { deferAnchors = false; }\n        return new FocusTrap(element, this._platform, this._checker, this._ngZone, deferAnchors);\n    };\n    FocusTrapFactory.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    FocusTrapFactory.ctorParameters = function () { return [\n        { type: InteractivityChecker, },\n        { type: Platform, },\n        { type: NgZone, },\n    ]; };\n    return FocusTrapFactory;\n}());\nexport { FocusTrapFactory };\nfunction FocusTrapFactory_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FocusTrapFactory.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    FocusTrapFactory.ctorParameters;\n    /** @type {?} */\n    FocusTrapFactory.prototype._checker;\n    /** @type {?} */\n    FocusTrapFactory.prototype._platform;\n    /** @type {?} */\n    FocusTrapFactory.prot
 otype._ngZone;\n}\n/**\n * Directive for trapping focus within a region.\n * @deprecated\n */\nvar FocusTrapDeprecatedDirective = (function () {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _focusTrapFactory\n     */\n    function FocusTrapDeprecatedDirective(_elementRef, _focusTrapFactory) {\n        this._elementRef = _elementRef;\n        this._focusTrapFactory = _focusTrapFactory;\n        this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n    }\n    Object.defineProperty(FocusTrapDeprecatedDirective.prototype, \"disabled\", {\n        /**\n         * Whether the focus trap is active.\n         * @return {?}\n         */\n        get: function () { return !this.focusTrap.enabled; },\n        /**\n         * @param {?} val\n         * @return {?}\n         */\n        set: function (val) {\n            this.focusTrap.enabled = !coerceBooleanProperty(val);\n        },\n        enumerable: true,\n        configurable: true\n    });\
 n    /**\n     * @return {?}\n     */\n    FocusTrapDeprecatedDirective.prototype.ngOnDestroy = function () {\n        this.focusTrap.destroy();\n    };\n    /**\n     * @return {?}\n     */\n    FocusTrapDeprecatedDirective.prototype.ngAfterContentInit = function () {\n        this.focusTrap.attachAnchors();\n    };\n    FocusTrapDeprecatedDirective.decorators = [\n        { type: Directive, args: [{\n                    selector: 'cdk-focus-trap',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    FocusTrapDeprecatedDirective.ctorParameters = function () { return [\n        { type: ElementRef, },\n        { type: FocusTrapFactory, },\n    ]; };\n    FocusTrapDeprecatedDirective.propDecorators = {\n        'disabled': [{ type: Input },],\n    };\n    return FocusTrapDeprecatedDirective;\n}());\nexport { FocusTrapDeprecatedDirective };\nfunction FocusTrapDeprecatedDirective_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FocusTrapDeprecatedDirecti
 ve.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    FocusTrapDeprecatedDirective.ctorParameters;\n    /** @type {?} */\n    FocusTrapDeprecatedDirective.propDecorators;\n    /** @type {?} */\n    FocusTrapDeprecatedDirective.prototype.focusTrap;\n    /** @type {?} */\n    FocusTrapDeprecatedDirective.prototype._elementRef;\n    /** @type {?} */\n    FocusTrapDeprecatedDirective.prototype._focusTrapFactory;\n}\n/**\n * Directive for trapping focus within a region.\n */\nvar FocusTrapDirective = (function () {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _focusTrapFactory\n     */\n    function FocusTrapDirective(_elementRef, _focusTrapFactory) {\n        this._elementRef = _elementRef;\n        this._focusTrapFactory = _focusTrapFactory;\n        this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n    }\n    Object.defineProperty(FocusTrapDirective.prototype, \"enabled\", {\n        /**\n         * Whether the f
 ocus trap is active.\n         * @return {?}\n         */\n        get: function () { return this.focusTrap.enabled; },\n        /**\n         * @param {?} value\n         * @return {?}\n         */\n        set: function (value) { this.focusTrap.enabled = coerceBooleanProperty(value); },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * @return {?}\n     */\n    FocusTrapDirective.prototype.ngOnDestroy = function () {\n        this.focusTrap.destroy();\n    };\n    /**\n     * @return {?}\n     */\n    FocusTrapDirective.prototype.ngAfterContentInit = function () {\n        this.focusTrap.attachAnchors();\n    };\n    FocusTrapDirective.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkTrapFocus]',\n                    exportAs: 'cdkTrapFocus',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    FocusTrapDirective.ctorParameters = function () { return [\n        { type: ElementRef, },\n     
    { type: FocusTrapFactory, },\n    ]; };\n    FocusTrapDirective.propDecorators = {\n        'enabled': [{ type: Input, args: ['cdkTrapFocus',] },],\n    };\n    return FocusTrapDirective;\n}());\nexport { FocusTrapDirective };\nfunction FocusTrapDirective_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FocusTrapDirective.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    FocusTrapDirective.ctorParameters;\n    /** @type {?} */\n    FocusTrapDirective.propDecorators;\n    /** @type {?} */\n    FocusTrapDirective.prototype.focusTrap;\n    /** @type {?} */\n    FocusTrapDirective.prototype._elementRef;\n    /** @type {?} */\n    FocusTrapDirective.prototype._focusTrapFactory;\n}\n//# sourceMappingURL=focus-trap.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, In
 jectionToken, Optional, Inject, SkipSelf, } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nexport var /** @type {?} */ LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken('liveAnnouncerElement');\nvar LiveAnnouncer = (function () {\n    /**\n     * @param {?} elementToken\n     * @param {?} platform\n     */\n    function LiveAnnouncer(elementToken, platform) {\n        // Only do anything if we're on the browser platform.\n        if (platform.isBrowser) {\n            // We inject the live element as `any` because the constructor signature cannot reference\n            // browser globals (HTMLElement) on non-browser environments, since having a class decorator\n            // causes TypeScript to preserve the constructor signature types.\n            this._liveElement = elementToken || this._createLiveElement();\n        }\n    }\n    /**\n     * Announces a message to screenreaders.\n     * @param {?} message Message to be announced to the screenreader\n 
     * @param {?=} politeness The politeness of the announcer element\n     * @return {?}\n     */\n    LiveAnnouncer.prototype.announce = function (message, politeness) {\n        var _this = this;\n        if (politeness === void 0) { politeness = 'polite'; }\n        this._liveElement.textContent = '';\n        // TODO: ensure changing the politeness works on all environments we support.\n        this._liveElement.setAttribute('aria-live', politeness);\n        // This 100ms timeout is necessary for some browser + screen-reader combinations:\n        // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.\n        // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a\n        //   second time without clearing and then using a non-zero delay.\n        // (using JAWS 17 at time of this writing).\n        setTimeout(function () { return _this._liveElement.textContent = message; }, 100);\n    };\n    /**\n     * @r
 eturn {?}\n     */\n    LiveAnnouncer.prototype.ngOnDestroy = function () {\n        if (this._liveElement && this._liveElement.parentNode) {\n            this._liveElement.parentNode.removeChild(this._liveElement);\n        }\n    };\n    /**\n     * @return {?}\n     */\n    LiveAnnouncer.prototype._createLiveElement = function () {\n        var /** @type {?} */ liveEl = document.createElement('div');\n        liveEl.classList.add('cdk-visually-hidden');\n        liveEl.setAttribute('aria-atomic', 'true');\n        liveEl.setAttribute('aria-live', 'polite');\n        document.body.appendChild(liveEl);\n        return liveEl;\n    };\n    LiveAnnouncer.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    LiveAnnouncer.ctorParameters = function () { return [\n        { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LIVE_ANNOUNCER_ELEMENT_TOKEN,] },] },\n        { type: Platform, },\n    ]; };\n    return LiveAnnou
 ncer;\n}());\nexport { LiveAnnouncer };\nfunction LiveAnnouncer_tsickle_Closure_declarations() {\n    /** @type {?} */\n    LiveAnnouncer.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    LiveAnnouncer.ctorParameters;\n    /** @type {?} */\n    LiveAnnouncer.prototype._liveElement;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} liveElement\n * @param {?} platform\n * @return {?}\n */\nexport function LIVE_ANNOUNCER_PROVIDER_FACTORY(parentDispatcher, liveElement, platform) {\n    return parentDispatcher || new LiveAnnouncer(liveElement, platform);\n}\n/**\n * \\@docs-private\n */\nexport var LIVE_ANNOUNCER_PROVIDER = {\n    // If there is already a LiveAnnouncer available, use that. Otherwise, provide a new one.\n    provide: LiveAnnouncer,\n    deps: [\n        [new Optional(), new SkipSelf(), LiveAnnouncer],\n        [new Optional(), new Inject(LIVE_ANNOUNCER_ELEMENT_TOKEN)],\n        Platform,\n    ],\n    useFactory: LIVE_ANNOUNC
 ER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=live-announcer.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 { Platform } from '@angular/cdk/platform';\nimport { Directive, ElementRef, EventEmitter, Injectable, NgZone, Optional, Output, Renderer2, SkipSelf, } from '@angular/core';\nimport { of as observableOf } from 'rxjs/observable/of';\nimport { Subject } from 'rxjs/Subject';\n// This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found\n// that a value of around 650ms seems appropriate.\nexport var /** @type {?} */ TOUCH_BUFFER_MS = 650;\n/**\n * Monitors mouse and keyboard events to determine the cause of focus events.\n */\nvar FocusMonitor = (function () {\n    /**\n     * @param {?} _ngZone\n     * @param {?} _platform\n     */\n    function FocusMonitor(_ngZone, 
 _platform) {\n        var _this = this;\n        this._ngZone = _ngZone;\n        this._platform = _platform;\n        /**\n         * The focus origin that the next focus event is a result of.\n         */\n        this._origin = null;\n        /**\n         * Whether the window has just been focused.\n         */\n        this._windowFocused = false;\n        /**\n         * Weak map of elements being monitored to their info.\n         */\n        this._elementInfo = new WeakMap();\n        this._ngZone.runOutsideAngular(function () { return _this._registerDocumentEvents(); });\n    }\n    /**\n     * Monitors focus on an element and applies appropriate CSS classes.\n     * @param {?} element The element to monitor\n     * @param {?} renderer The renderer to use to apply CSS classes to the element.\n     * @param {?} checkChildren Whether to count the element as focused when its children are focused.\n     * @return {?} An observable that emits when the focus state of the element 
 changes.\n     *     When the element is blurred, null will be emitted.\n     */\n    FocusMonitor.prototype.monitor = function (element, renderer, checkChildren) {\n        var _this = this;\n        // Do nothing if we're not on the browser platform.\n        if (!this._platform.isBrowser) {\n            return observableOf(null);\n        }\n        // Check if we're already monitoring this element.\n        if (this._elementInfo.has(element)) {\n            var /** @type {?} */ cachedInfo = this._elementInfo.get(element); /** @type {?} */\n            ((cachedInfo)).checkChildren = checkChildren;\n            return ((cachedInfo)).subject.asObservable();\n        }\n        // Create monitored element info.\n        var /** @type {?} */ info = {\n            unlisten: function () { },\n            checkChildren: checkChildren,\n            renderer: renderer,\n            subject: new Subject()\n        };\n        this._elementInfo.set(element, info);\n        // Start listenin
 g. We need to listen in capture phase since focus events don't bubble.\n        var /** @type {?} */ focusListener = function (event) { return _this._onFocus(event, element); };\n        var /** @type {?} */ blurListener = function (event) { return _this._onBlur(event, element); };\n        this._ngZone.runOutsideAngular(function () {\n            element.addEventListener('focus', focusListener, true);\n            element.addEventListener('blur', blurListener, true);\n        });\n        // Create an unlisten function for later.\n        info.unlisten = function () {\n            element.removeEventListener('focus', focusListener, true);\n            element.removeEventListener('blur', blurListener, true);\n        };\n        return info.subject.asObservable();\n    };\n    /**\n     * Stops monitoring an element and removes all focus classes.\n     * @param {?} element The element to stop monitoring.\n     * @return {?}\n     */\n    FocusMonitor.prototype.stopMonitoring = funct
 ion (element) {\n        var /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (elementInfo) {\n            elementInfo.unlisten();\n            elementInfo.subject.complete();\n            this._setClasses(element);\n            this._elementInfo.delete(element);\n        }\n    };\n    /**\n     * Focuses the element via the specified focus origin.\n     * @param {?} element The element to focus.\n     * @param {?} origin The focus origin.\n     * @return {?}\n     */\n    FocusMonitor.prototype.focusVia = function (element, origin) {\n        this._setOriginForCurrentEventQueue(origin);\n        element.focus();\n    };\n    /**\n     * Register necessary event listeners on the document and window.\n     * @return {?}\n     */\n    FocusMonitor.prototype._registerDocumentEvents = function () {\n        var _this = this;\n        // Do nothing if we're not on the browser platform.\n        if (!this._platform.isBrowser) {\n            return;\n        }\n 
        // Note: we listen to events in the capture phase so we can detect them even if the user stops\n        // propagation.\n        // On keydown record the origin and clear any touch event that may be in progress.\n        document.addEventListener('keydown', function () {\n            _this._lastTouchTarget = null;\n            _this._setOriginForCurrentEventQueue('keyboard');\n        }, true);\n        // On mousedown record the origin only if there is not touch target, since a mousedown can\n        // happen as a result of a touch event.\n        document.addEventListener('mousedown', function () {\n            if (!_this._lastTouchTarget) {\n                _this._setOriginForCurrentEventQueue('mouse');\n            }\n        }, true);\n        // When the touchstart event fires the focus event is not yet in the event queue. This means\n        // we can't rely on the trick used above (setting timeout of 0ms). Instead we wait 650ms to\n        // see if a focus happens.\
 n        document.addEventListener('touchstart', function (event) {\n            if (_this._touchTimeout != null) {\n                clearTimeout(_this._touchTimeout);\n            }\n            _this._lastTouchTarget = event.target;\n            _this._touchTimeout = setTimeout(function () { return _this._lastTouchTarget = null; }, TOUCH_BUFFER_MS);\n        }, true);\n        // Make a note of when the window regains focus, so we can restore the origin info for the\n        // focused element.\n        window.addEventListener('focus', function () {\n            _this._windowFocused = true;\n            setTimeout(function () { return _this._windowFocused = false; }, 0);\n        });\n    };\n    /**\n     * Sets the focus classes on the element based on the given focus origin.\n     * @param {?} element The element to update the classes on.\n     * @param {?=} origin The focus origin.\n     * @return {?}\n     */\n    FocusMonitor.prototype._setClasses = function (element, origin
 ) {\n        var /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (elementInfo) {\n            var /** @type {?} */ toggleClass = function (className, shouldSet) {\n                shouldSet ? elementInfo.renderer.addClass(element, className) :\n                    elementInfo.renderer.removeClass(element, className);\n            };\n            toggleClass('cdk-focused', !!origin);\n            toggleClass('cdk-touch-focused', origin === 'touch');\n            toggleClass('cdk-keyboard-focused', origin === 'keyboard');\n            toggleClass('cdk-mouse-focused', origin === 'mouse');\n            toggleClass('cdk-program-focused', origin === 'program');\n        }\n    };\n    /**\n     * Sets the origin and schedules an async function to clear it at the end of the event queue.\n     * @param {?} origin The origin to set.\n     * @return {?}\n     */\n    FocusMonitor.prototype._setOriginForCurrentEventQueue = function (origin) {\n        var _this = thi
 s;\n        this._origin = origin;\n        setTimeout(function () { return _this._origin = null; }, 0);\n    };\n    /**\n     * Checks whether the given focus event was caused by a touchstart event.\n     * @param {?} event The focus event to check.\n     * @return {?} Whether the event was caused by a touch.\n     */\n    FocusMonitor.prototype._wasCausedByTouch = function (event) {\n        // Note(mmalerba): This implementation is not quite perfect, there is a small edge case.\n        // Consider the following dom structure:\n        //\n        // <div #parent tabindex=\"0\" cdkFocusClasses>\n        //   <div #child (click)=\"#parent.focus()\"></div>\n        // </div>\n        //\n        // If the user touches the #child element and the #parent is programmatically focused as a\n        // result, this code will still consider it to have been caused by the touch event and will\n        // apply the cdk-touch-focused class rather than the cdk-program-focused class. This is a
 \n        // relatively small edge-case that can be worked around by using\n        // focusVia(parentEl, renderer,  'program') to focus the parent element.\n        //\n        // If we decide that we absolutely must handle this case correctly, we can do so by listening\n        // for the first focus event after the touchstart, and then the first blur event after that\n        // focus event. When that blur event fires we know that whatever follows is not a result of the\n        // touchstart.\n        var /** @type {?} */ focusTarget = event.target;\n        return this._lastTouchTarget instanceof Node && focusTarget instanceof Node &&\n            (focusTarget === this._lastTouchTarget || focusTarget.contains(this._lastTouchTarget));\n    };\n    /**\n     * Handles focus events on a registered element.\n     * @param {?} event The focus event.\n     * @param {?} element The monitored element.\n     * @return {?}\n     */\n    FocusMonitor.prototype._onFocus = function (event, 
 element) {\n        // NOTE(mmalerba): We currently set the classes based on the focus origin of the most recent\n        // focus event affecting the monitored element. If we want to use the origin of the first event\n        // instead we should check for the cdk-focused class here and return if the element already has\n        // it. (This only matters for elements that have includesChildren = true).\n        // If we are not counting child-element-focus as focused, make sure that the event target is the\n        // monitored element itself.\n        var /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (!elementInfo || (!elementInfo.checkChildren && element !== event.target)) {\n            return;\n        }\n        // If we couldn't detect a cause for the focus event, it's due to one of three reasons:\n        // 1) The window has just regained focus, in which case we want to restore the focused state of\n        //    the element from before the wind
 ow blurred.\n        // 2) It was caused by a touch event, in which case we mark the origin as 'touch'.\n        // 3) The element was programmatically focused, in which case we should mark the origin as\n        //    'program'.\n        if (!this._origin) {\n            if (this._windowFocused && this._lastFocusOrigin) {\n                this._origin = this._lastFocusOrigin;\n            }\n            else if (this._wasCausedByTouch(event)) {\n                this._origin = 'touch';\n            }\n            else {\n                this._origin = 'program';\n            }\n        }\n        this._setClasses(element, this._origin);\n        elementInfo.subject.next(this._origin);\n        this._lastFocusOrigin = this._origin;\n        this._origin = null;\n    };\n    /**\n     * Handles blur events on a registered element.\n     * @param {?} event The blur event.\n     * @param {?} element The monitored element.\n     * @return {?}\n     */\n    FocusMonitor.prototype._onBlur 
 = function (event, element) {\n        // If we are counting child-element-focus as focused, make sure that we aren't just blurring in\n        // order to focus another child of the monitored element.\n        var /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (!elementInfo || (elementInfo.checkChildren && event.relatedTarget instanceof Node &&\n            element.contains(event.relatedTarget))) {\n            return;\n        }\n        this._setClasses(element);\n        elementInfo.subject.next(null);\n    };\n    FocusMonitor.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    FocusMonitor.ctorParameters = function () { return [\n        { type: NgZone, },\n        { type: Platform, },\n    ]; };\n    return FocusMonitor;\n}());\nexport { FocusMonitor };\nfunction FocusMonitor_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FocusMonitor.decorators;\n    /**\n     * @nocollapse\n     * @type {?
 }\n     */\n    FocusMonitor.ctorParameters;\n    /**\n     * The focus origin that the next focus event is a result of.\n     * @type {?}\n     */\n    FocusMonitor.prototype._origin;\n    /**\n     * The FocusOrigin of the last focus event tracked by the FocusMonitor.\n     * @type {?}\n     */\n    FocusMonitor.prototype._lastFocusOrigin;\n    /**\n     * Whether the window has just been focused.\n     * @type {?}\n     */\n    FocusMonitor.prototype._windowFocused;\n    /**\n     * The target of the last touch event.\n     * @type {?}\n     */\n    FocusMonitor.prototype._lastTouchTarget;\n    /**\n     * The timeout id of the touch timeout, used to cancel timeout later.\n     * @type {?}\n     */\n    FocusMonitor.prototype._touchTimeout;\n    /**\n     * Weak map of elements being monitored to their info.\n     * @type {?}\n     */\n    FocusMonitor.prototype._elementInfo;\n    /** @type {?} */\n    FocusMonitor.prototype._ngZone;\n    /** @type {?} */\n    FocusMonitor.protot
 ype._platform;\n}\n/**\n * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or\n * programmatically) and adds corresponding classes to the element.\n *\n * There are two variants of this directive:\n * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is\n *    focused.\n * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.\n */\nvar CdkMonitorFocus = (function () {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _focusMonitor\n     * @param {?} renderer\n     */\n    function CdkMonitorFocus(_elementRef, _focusMonitor, renderer) {\n        var _this = this;\n        this._elementRef = _elementRef;\n        this._focusMonitor = _focusMonitor;\n        this.cdkFocusChange = new EventEmitter();\n        this._monitorSubscription = this._focusMonitor.monitor(this._elementRef.nativeElement, renderer, this._elementRef.nativeElement.hasAttribute('
 cdkMonitorSubtreeFocus'))\n            .subscribe(function (origin) { return _this.cdkFocusChange.emit(origin); });\n    }\n    /**\n     * @return {?}\n     */\n    CdkMonitorFocus.prototype.ngOnDestroy = function () {\n        this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);\n        this._monitorSubscription.unsubscribe();\n    };\n    CdkMonitorFocus.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkMonitorFocus.ctorParameters = function () { return [\n        { type: ElementRef, },\n        { type: FocusMonitor, },\n        { type: Renderer2, },\n    ]; };\n    CdkMonitorFocus.propDecorators = {\n        'cdkFocusChange': [{ type: Output },],\n    };\n    return CdkMonitorFocus;\n}());\nexport { CdkMonitorFocus };\nfunction CdkMonitorFocus_tsickle_Closure_declarations() {\n    /** @type {?} */\n   
  CdkMonitorFocus.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkMonitorFocus.ctorParameters;\n    /** @type {?} */\n    CdkMonitorFocus.propDecorators;\n    /** @type {?} */\n    CdkMonitorFocus.prototype._monitorSubscription;\n    /** @type {?} */\n    CdkMonitorFocus.prototype.cdkFocusChange;\n    /** @type {?} */\n    CdkMonitorFocus.prototype._elementRef;\n    /** @type {?} */\n    CdkMonitorFocus.prototype._focusMonitor;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} ngZone\n * @param {?} platform\n * @return {?}\n */\nexport function FOCUS_MONITOR_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {\n    return parentDispatcher || new FocusMonitor(ngZone, platform);\n}\n/**\n * \\@docs-private\n */\nexport var FOCUS_MONITOR_PROVIDER = {\n    // If there is already a FocusMonitor available, use that. Otherwise, provide a new one.\n    provide: FocusMonitor,\n    deps: [[new Optional(), new SkipSelf(), FocusMonitor], NgZ
 one, Platform],\n    useFactory: FOCUS_MONITOR_PROVIDER_FACTORY\n};\n//# sourceMappingURL=focus-monitor.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 { FocusTrapDeprecatedDirective, FocusTrapDirective, FocusTrapFactory } from './focus-trap';\nimport { LIVE_ANNOUNCER_PROVIDER } from './live-announcer';\nimport { InteractivityChecker } from './interactivity-checker';\nimport { CommonModule } from '@angular/common';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { AriaDescriber, ARIA_DESCRIBER_PROVIDER } from './aria-describer';\nimport { CdkMonitorFocus, FOCUS_MONITOR_PROVIDER } from './focus-monitor';\nvar A11yModule = (function () {\n    function A11yModule() {\n    }\n    A11yModule.decorators = [\n        { type: NgModule, args: [{\n           
          imports: [CommonModule, PlatformModule],\n                    declarations: [FocusTrapDirective, FocusTrapDeprecatedDirective, CdkMonitorFocus],\n                    exports: [FocusTrapDirective, FocusTrapDeprecatedDirective, CdkMonitorFocus],\n                    providers: [\n                        InteractivityChecker,\n                        FocusTrapFactory,\n                        AriaDescriber,\n                        LIVE_ANNOUNCER_PROVIDER,\n                        ARIA_DESCRIBER_PROVIDER,\n                        FOCUS_MONITOR_PROVIDER,\n                    ]\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    A11yModule.ctorParameters = function () { return []; };\n    return A11yModule;\n}());\nexport { A11yModule };\nfunction A11yModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    A11yModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    A11yModule.ctorParameters;\n}\n//# sourceMappingURL=a11y-
 module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { ActiveDescendantKeyManager, MESSAGES_CONTAINER_ID, CDK_DESCRIBEDBY_ID_PREFIX, CDK_DESCRIBEDBY_HOST_ATTRIBUTE, AriaDescriber, ARIA_DESCRIBER_PROVIDER_FACTORY, ARIA_DESCRIBER_PROVIDER, isFakeMousedownFromScreenReader, FocusKeyManager, FocusTrap, FocusTrapFactory, FocusTrapDeprecatedDirective, FocusTrapDirective, InteractivityChecker, ListKeyManager, LIVE_ANNOUNCER_ELEMENT_TOKEN, LiveAnnouncer, LIVE_ANNOUNCER_PROVIDER_FACTORY, LIVE_ANNOUNCER_PROVIDER, TOUCH_BUFFER_MS, FocusMonitor, CdkMonitorFocus, FOCUS_MONITOR_PROVIDER_FACTORY, FOCUS_MONITOR_PROVIDER, A11yModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["tslib_1.__extends","observableOf"],"mappings":"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

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/overlay.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/overlay.js b/node_modules/@angular/cdk/esm2015/overlay.js
new file mode 100644
index 0000000..a26d405
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/overlay.js
@@ -0,0 +1,1896 @@
+/**
+ * @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 { ApplicationRef, ComponentFactoryResolver, Directive, ElementRef, EventEmitter, Inject, Injectable, InjectionToken, Injector, Input, NgModule, NgZone, Optional, Output, Renderer2, SkipSelf, TemplateRef, ViewContainerRef } from '@angular/core';
+import { DomPortalHost, PortalModule, TemplatePortal } from '@angular/cdk/portal';
+import { Subject } from 'rxjs/Subject';
+import { ScrollDispatchModule, ScrollDispatcher, Scrollable, VIEWPORT_RULER_PROVIDER, ViewportRuler } from '@angular/cdk/scrolling';
+import { Subscription } from 'rxjs/Subscription';
+import { Directionality } from '@angular/cdk/bidi';
+import { coerceBooleanProperty } from '@angular/cdk/coercion';
+import { ESCAPE } from '@angular/cdk/keycodes';
+
+/**
+ * Scroll strategy that doesn't do anything.
+ */
+class NoopScrollStrategy {
+    /**
+     * @return {?}
+     */
+    enable() { }
+    /**
+     * @return {?}
+     */
+    disable() { }
+    /**
+     * @return {?}
+     */
+    attach() { }
+}
+
+/**
+ * OverlayConfig captures the initial configuration used when opening an overlay.
+ */
+class OverlayConfig {
+    /**
+     * @param {?=} config
+     */
+    constructor(config) {
+        /**
+         * Strategy to be used when handling scroll events while the overlay is open.
+         */
+        this.scrollStrategy = new NoopScrollStrategy();
+        /**
+         * Custom class to add to the overlay pane.
+         */
+        this.panelClass = '';
+        /**
+         * Whether the overlay has a backdrop.
+         */
+        this.hasBackdrop = false;
+        /**
+         * Custom class to add to the backdrop
+         */
+        this.backdropClass = 'cdk-overlay-dark-backdrop';
+        /**
+         * The direction of the text in the overlay panel.
+         */
+        this.direction = 'ltr';
+        if (config) {
+            Object.keys(config).forEach(key => this[key] = config[key]);
+        }
+    }
+}
+
+/**
+ * Reference to an overlay that has been created with the Overlay service.
+ * Used to manipulate or dispose of said overlay.
+ */
+class OverlayRef {
+    /**
+     * @param {?} _portalHost
+     * @param {?} _pane
+     * @param {?} _config
+     * @param {?} _ngZone
+     */
+    constructor(_portalHost, _pane, _config, _ngZone) {
+        this._portalHost = _portalHost;
+        this._pane = _pane;
+        this._config = _config;
+        this._ngZone = _ngZone;
+        this._backdropElement = null;
+        this._backdropClick = new Subject();
+        this._attachments = new Subject();
+        this._detachments = new Subject();
+        if (_config.scrollStrategy) {
+            _config.scrollStrategy.attach(this);
+        }
+    }
+    /**
+     * The overlay's HTML element
+     * @return {?}
+     */
+    get overlayElement() {
+        return this._pane;
+    }
+    /**
+     * Attaches the overlay to a portal instance and adds the backdrop.
+     * @param {?} portal Portal instance to which to attach the overlay.
+     * @return {?} The portal attachment result.
+     */
+    attach(portal) {
+        let /** @type {?} */ attachResult = this._portalHost.attach(portal);
+        if (this._config.positionStrategy) {
+            this._config.positionStrategy.attach(this);
+        }
+        // Update the pane element with the given configuration.
+        this._updateStackingOrder();
+        this.updateSize();
+        this.updateDirection();
+        this.updatePosition();
+        if (this._config.scrollStrategy) {
+            this._config.scrollStrategy.enable();
+        }
+        // Enable pointer events for the overlay pane element.
+        this._togglePointerEvents(true);
+        if (this._config.hasBackdrop) {
+            this._attachBackdrop();
+        }
+        if (this._config.panelClass) {
+            // We can't do a spread here, because IE doesn't support setting multiple classes.
+            if (Array.isArray(this._config.panelClass)) {
+                this._config.panelClass.forEach(cls => this._pane.classList.add(cls));
+            }
+            else {
+                this._pane.classList.add(this._config.panelClass);
+            }
+        }
+        // Only emit the `attachments` event once all other setup is done.
+        this._attachments.next();
+        return attachResult;
+    }
+    /**
+     * Detaches an overlay from a portal.
+     * @return {?} The portal detachment result.
+     */
+    detach() {
+        this.detachBackdrop();
+        // When the overlay is detached, the pane element should disable pointer events.
+        // This is necessary because otherwise the pane element will cover the page and disable
+        // pointer events therefore. Depends on the position strategy and the applied pane boundaries.
+        this._togglePointerEvents(false);
+        if (this._config.positionStrategy && this._config.positionStrategy.detach) {
+            this._config.positionStrategy.detach();
+        }
+        if (this._config.scrollStrategy) {
+            this._config.scrollStrategy.disable();
+        }
+        const /** @type {?} */ detachmentResult = this._portalHost.detach();
+        // Only emit after everything is detached.
+        this._detachments.next();
+        return detachmentResult;
+    }
+    /**
+     * Cleans up the overlay from the DOM.
+     * @return {?}
+     */
+    dispose() {
+        if (this._config.positionStrategy) {
+            this._config.positionStrategy.dispose();
+        }
+        if (this._config.scrollStrategy) {
+            this._config.scrollStrategy.disable();
+        }
+        this.detachBackdrop();
+        this._portalHost.dispose();
+        this._attachments.complete();
+        this._backdropClick.complete();
+        this._detachments.next();
+        this._detachments.complete();
+    }
+    /**
+     * Checks whether the overlay has been attached.
+     * @return {?}
+     */
+    hasAttached() {
+        return this._portalHost.hasAttached();
+    }
+    /**
+     * Returns an observable that emits when the backdrop has been clicked.
+     * @return {?}
+     */
+    backdropClick() {
+        return this._backdropClick.asObservable();
+    }
+    /**
+     * Returns an observable that emits when the overlay has been attached.
+     * @return {?}
+     */
+    attachments() {
+        return this._attachments.asObservable();
+    }
+    /**
+     * Returns an observable that emits when the overlay has been detached.
+     * @return {?}
+     */
+    detachments() {
+        return this._detachments.asObservable();
+    }
+    /**
+     * Gets the current config of the overlay.
+     * @return {?}
+     */
+    getConfig() {
+        return this._config;
+    }
+    /**
+     * Updates the position of the overlay based on the position strategy.
+     * @return {?}
+     */
+    updatePosition() {
+        if (this._config.positionStrategy) {
+            this._config.positionStrategy.apply();
+        }
+    }
+    /**
+     * Updates the text direction of the overlay panel.
+     * @return {?}
+     */
+    updateDirection() {
+        this._pane.setAttribute('dir', /** @type {?} */ ((this._config.direction)));
+    }
+    /**
+     * Updates the size of the overlay based on the overlay config.
+     * @return {?}
+     */
+    updateSize() {
+        if (this._config.width || this._config.width === 0) {
+            this._pane.style.width = formatCssUnit(this._config.width);
+        }
+        if (this._config.height || this._config.height === 0) {
+            this._pane.style.height = formatCssUnit(this._config.height);
+        }
+        if (this._config.minWidth || this._config.minWidth === 0) {
+            this._pane.style.minWidth = formatCssUnit(this._config.minWidth);
+        }
+        if (this._config.minHeight || this._config.minHeight === 0) {
+            this._pane.style.minHeight = formatCssUnit(this._config.minHeight);
+        }
+        if (this._config.maxWidth || this._config.maxWidth === 0) {
+            this._pane.style.maxWidth = formatCssUnit(this._config.maxWidth);
+        }
+        if (this._config.maxHeight || this._config.maxHeight === 0) {
+            this._pane.style.maxHeight = formatCssUnit(this._config.maxHeight);
+        }
+    }
+    /**
+     * Toggles the pointer events for the overlay pane element.
+     * @param {?} enablePointer
+     * @return {?}
+     */
+    _togglePointerEvents(enablePointer) {
+        this._pane.style.pointerEvents = enablePointer ? 'auto' : 'none';
+    }
+    /**
+     * Attaches a backdrop for this overlay.
+     * @return {?}
+     */
+    _attachBackdrop() {
+        this._backdropElement = document.createElement('div');
+        this._backdropElement.classList.add('cdk-overlay-backdrop');
+        if (this._config.backdropClass) {
+            this._backdropElement.classList.add(this._config.backdropClass);
+        } /** @type {?} */
+        ((
+        // Insert the backdrop before the pane in the DOM order,
+        // in order to handle stacked overlays properly.
+        this._pane.parentElement)).insertBefore(this._backdropElement, this._pane);
+        // Forward backdrop clicks such that the consumer of the overlay can perform whatever
+        // action desired when such a click occurs (usually closing the overlay).
+        this._backdropElement.addEventListener('click', () => this._backdropClick.next(null));
+        // Add class to fade-in the backdrop after one frame.
+        requestAnimationFrame(() => {
+            if (this._backdropElement) {
+                this._backdropElement.classList.add('cdk-overlay-backdrop-showing');
+            }
+        });
+    }
+    /**
+     * Updates the stacking order of the element, moving it to the top if necessary.
+     * This is required in cases where one overlay was detached, while another one,
+     * that should be behind it, was destroyed. The next time both of them are opened,
+     * the stacking will be wrong, because the detached element's pane will still be
+     * in its original DOM position.
+     * @return {?}
+     */
+    _updateStackingOrder() {
+        if (this._pane.nextSibling) {
+            ((this._pane.parentNode)).appendChild(this._pane);
+        }
+    }
+    /**
+     * Detaches the backdrop (if any) associated with the overlay.
+     * @return {?}
+     */
+    detachBackdrop() {
+        let /** @type {?} */ backdropToDetach = this._backdropElement;
+        if (backdropToDetach) {
+            let /** @type {?} */ finishDetach = () => {
+                // It may not be attached to anything in certain cases (e.g. unit tests).
+                if (backdropToDetach && backdropToDetach.parentNode) {
+                    backdropToDetach.parentNode.removeChild(backdropToDetach);
+                }
+                // It is possible that a new portal has been attached to this overlay since we started
+                // removing the backdrop. If that is the case, only clear the backdrop reference if it
+                // is still the same instance that we started to remove.
+                if (this._backdropElement == backdropToDetach) {
+                    this._backdropElement = null;
+                }
+            };
+            backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');
+            if (this._config.backdropClass) {
+                backdropToDetach.classList.remove(this._config.backdropClass);
+            }
+            backdropToDetach.addEventListener('transitionend', finishDetach);
+            // If the backdrop doesn't have a transition, the `transitionend` event won't fire.
+            // In this case we make it unclickable and we try to remove it after a delay.
+            backdropToDetach.style.pointerEvents = 'none';
+            // Run this outside the Angular zone because there's nothing that Angular cares about.
+            // If it were to run inside the Angular zone, every test that used Overlay would have to be
+            // either async or fakeAsync.
+            this._ngZone.runOutsideAngular(() => {
+                setTimeout(finishDetach, 500);
+            });
+        }
+    }
+}
+/**
+ * @param {?} value
+ * @return {?}
+ */
+function formatCssUnit(value) {
+    return typeof value === 'string' ? (value) : `${value}px`;
+}
+
+/** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */
+/**
+ * The points of the origin element and the overlay element to connect.
+ */
+class ConnectionPositionPair {
+    /**
+     * @param {?} origin
+     * @param {?} overlay
+     */
+    constructor(origin, overlay) {
+        this.originX = origin.originX;
+        this.originY = origin.originY;
+        this.overlayX = overlay.overlayX;
+        this.overlayY = overlay.overlayY;
+    }
+}
+/**
+ * Set of properties regarding the position of the origin and overlay relative to the viewport
+ * with respect to the containing Scrollable elements.
+ *
+ * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the
+ * bounds of any one of the strategy's Scrollable's bounding client rectangle.
+ *
+ * The overlay and origin are outside view if there is no overlap between their bounding client
+ * rectangle and any one of the strategy's Scrollable's bounding client rectangle.
+ *
+ *       -----------                    -----------
+ *       | outside |                    | clipped |
+ *       |  view   |              --------------------------
+ *       |         |              |     |         |        |
+ *       ----------               |     -----------        |
+ *  --------------------------    |                        |
+ *  |                        |    |      Scrollable        |
+ *  |                        |    |                        |
+ *  |                        |     --------------------------
+ *  |      Scrollable        |
+ *  |                        |
+ *  --------------------------
+ */
+class ScrollingVisibility {
+}
+/**
+ * The change event emitted by the strategy when a fallback position is used.
+ */
+class ConnectedOverlayPositionChange {
+    /**
+     * @param {?} connectionPair
+     * @param {?} scrollableViewProperties
+     */
+    constructor(connectionPair, scrollableViewProperties) {
+        this.connectionPair = connectionPair;
+        this.scrollableViewProperties = scrollableViewProperties;
+    }
+}
+/**
+ * @nocollapse
+ */
+ConnectedOverlayPositionChange.ctorParameters = () => [
+    { type: ConnectionPositionPair, },
+    { type: ScrollingVisibility, decorators: [{ type: Optional },] },
+];
+
+/**
+ * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.
+ * \@docs-private
+ * @param {?} element Dimensions of the element (from getBoundingClientRect)
+ * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)
+ * @return {?} Whether the element is scrolled out of view
+ */
+function isElementScrolledOutsideView(element, scrollContainers) {
+    return scrollContainers.some(containerBounds => {
+        const /** @type {?} */ outsideAbove = element.bottom < containerBounds.top;
+        const /** @type {?} */ outsideBelow = element.top > containerBounds.bottom;
+        const /** @type {?} */ outsideLeft = element.right < containerBounds.left;
+        const /** @type {?} */ outsideRight = element.left > containerBounds.right;
+        return outsideAbove || outsideBelow || outsideLeft || outsideRight;
+    });
+}
+/**
+ * Gets whether an element is clipped by any of its scrolling containers.
+ * \@docs-private
+ * @param {?} element Dimensions of the element (from getBoundingClientRect)
+ * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)
+ * @return {?} Whether the element is clipped
+ */
+function isElementClippedByScrolling(element, scrollContainers) {
+    return scrollContainers.some(scrollContainerRect => {
+        const /** @type {?} */ clippedAbove = element.top < scrollContainerRect.top;
+        const /** @type {?} */ clippedBelow = element.bottom > scrollContainerRect.bottom;
+        const /** @type {?} */ clippedLeft = element.left < scrollContainerRect.left;
+        const /** @type {?} */ clippedRight = element.right > scrollContainerRect.right;
+        return clippedAbove || clippedBelow || clippedLeft || clippedRight;
+    });
+}
+
+/**
+ * A strategy for positioning overlays. Using this strategy, an overlay is given an
+ * implicit position relative some origin element. The relative position is defined in terms of
+ * a point on the origin element that is connected to a point on the overlay element. For example,
+ * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner
+ * of the overlay.
+ */
+class ConnectedPositionStrategy {
+    /**
+     * @param {?} originPos
+     * @param {?} overlayPos
+     * @param {?} _connectedTo
+     * @param {?} _viewportRuler
+     */
+    constructor(originPos, overlayPos, _connectedTo, _viewportRuler) {
+        this._connectedTo = _connectedTo;
+        this._viewportRuler = _viewportRuler;
+        /**
+         * Layout direction of the position strategy.
+         */
+        this._dir = 'ltr';
+        /**
+         * The offset in pixels for the overlay connection point on the x-axis
+         */
+        this._offsetX = 0;
+        /**
+         * The offset in pixels for the overlay connection point on the y-axis
+         */
+        this._offsetY = 0;
+        /**
+         * The Scrollable containers used to check scrollable view properties on position change.
+         */
+        this.scrollables = [];
+        /**
+         * Subscription to viewport resize events.
+         */
+        this._resizeSubscription = Subscription.EMPTY;
+        /**
+         * Ordered list of preferred positions, from most to least desirable.
+         */
+        this._preferredPositions = [];
+        this._onPositionChange = new Subject();
+        this._origin = this._connectedTo.nativeElement;
+        this.withFallbackPosition(originPos, overlayPos);
+    }
+    /**
+     * Whether the we're dealing with an RTL context
+     * @return {?}
+     */
+    get _isRtl() {
+        return this._dir === 'rtl';
+    }
+    /**
+     * Emits an event when the connection point changes.
+     * @return {?}
+     */
+    get onPositionChange() {
+        return this._onPositionChange.asObservable();
+    }
+    /**
+     * Ordered list of preferred positions, from most to least desirable.
+     * @return {?}
+     */
+    get positions() {
+        return this._preferredPositions;
+    }
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    attach(overlayRef) {
+        this._overlayRef = overlayRef;
+        this._pane = overlayRef.overlayElement;
+        this._resizeSubscription.unsubscribe();
+        this._resizeSubscription = this._viewportRuler.change().subscribe(() => this.apply());
+    }
+    /**
+     * Performs any cleanup after the element is destroyed.
+     * @return {?}
+     */
+    dispose() {
+        this._resizeSubscription.unsubscribe();
+    }
+    /**
+     * \@docs-private
+     * @return {?}
+     */
+    detach() {
+        this._resizeSubscription.unsubscribe();
+    }
+    /**
+     * Updates the position of the overlay element, using whichever preferred position relative
+     * to the origin fits on-screen.
+     * \@docs-private
+     *
+     * @return {?} Resolves when the styles have been applied.
+     */
+    apply() {
+        // We need the bounding rects for the origin and the overlay to determine how to position
+        // the overlay relative to the origin.
+        const /** @type {?} */ element = this._pane;
+        const /** @type {?} */ originRect = this._origin.getBoundingClientRect();
+        const /** @type {?} */ overlayRect = element.getBoundingClientRect();
+        // We use the viewport rect to determine whether a position would go off-screen.
+        const /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();
+        // Fallback point if none of the fallbacks fit into the viewport.
+        let /** @type {?} */ fallbackPoint;
+        let /** @type {?} */ fallbackPosition;
+        // We want to place the overlay in the first of the preferred positions such that the
+        // overlay fits on-screen.
+        for (let /** @type {?} */ pos of this._preferredPositions) {
+            // Get the (x, y) point of connection on the origin, and then use that to get the
+            // (top, left) coordinate for the overlay at `pos`.
+            let /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, pos);
+            let /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, pos);
+            // If the overlay in the calculated position fits on-screen, put it there and we're done.
+            if (overlayPoint.fitsInViewport) {
+                this._setElementPosition(element, overlayRect, overlayPoint, pos);
+                // Save the last connected position in case the position needs to be re-calculated.
+                this._lastConnectedPosition = pos;
+                return;
+            }
+            else if (!fallbackPoint || fallbackPoint.visibleArea < overlayPoint.visibleArea) {
+                fallbackPoint = overlayPoint;
+                fallbackPosition = pos;
+            }
+        }
+        // If none of the preferred positions were in the viewport, take the one
+        // with the largest visible area.
+        this._setElementPosition(element, overlayRect, /** @type {?} */ ((fallbackPoint)), /** @type {?} */ ((fallbackPosition)));
+    }
+    /**
+     * This re-aligns the overlay element with the trigger in its last calculated position,
+     * even if a position higher in the "preferred positions" list would now fit. This
+     * allows one to re-align the panel without changing the orientation of the panel.
+     * @return {?}
+     */
+    recalculateLastPosition() {
+        const /** @type {?} */ originRect = this._origin.getBoundingClientRect();
+        const /** @type {?} */ overlayRect = this._pane.getBoundingClientRect();
+        const /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();
+        const /** @type {?} */ lastPosition = this._lastConnectedPosition || this._preferredPositions[0];
+        let /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, lastPosition);
+        let /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, lastPosition);
+        this._setElementPosition(this._pane, overlayRect, overlayPoint, lastPosition);
+    }
+    /**
+     * Sets the list of Scrollable containers that host the origin element so that
+     * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every
+     * Scrollable must be an ancestor element of the strategy's origin element.
+     * @param {?} scrollables
+     * @return {?}
+     */
+    withScrollableContainers(scrollables) {
+        this.scrollables = scrollables;
+    }
+    /**
+     * Adds a new preferred fallback position.
+     * @param {?} originPos
+     * @param {?} overlayPos
+     * @return {?}
+     */
+    withFallbackPosition(originPos, overlayPos) {
+        this._preferredPositions.push(new ConnectionPositionPair(originPos, overlayPos));
+        return this;
+    }
+    /**
+     * Sets the layout direction so the overlay's position can be adjusted to match.
+     * @param {?} dir New layout direction.
+     * @return {?}
+     */
+    withDirection(dir) {
+        this._dir = dir;
+        return this;
+    }
+    /**
+     * Sets an offset for the overlay's connection point on the x-axis
+     * @param {?} offset New offset in the X axis.
+     * @return {?}
+     */
+    withOffsetX(offset) {
+        this._offsetX = offset;
+        return this;
+    }
+    /**
+     * Sets an offset for the overlay's connection point on the y-axis
+     * @param {?} offset New offset in the Y axis.
+     * @return {?}
+     */
+    withOffsetY(offset) {
+        this._offsetY = offset;
+        return this;
+    }
+    /**
+     * Gets the horizontal (x) "start" dimension based on whether the overlay is in an RTL context.
+     * @param {?} rect
+     * @return {?}
+     */
+    _getStartX(rect) {
+        return this._isRtl ? rect.right : rect.left;
+    }
+    /**
+     * Gets the horizontal (x) "end" dimension based on whether the overlay is in an RTL context.
+     * @param {?} rect
+     * @return {?}
+     */
+    _getEndX(rect) {
+        return this._isRtl ? rect.left : rect.right;
+    }
+    /**
+     * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.
+     * @param {?} originRect
+     * @param {?} pos
+     * @return {?}
+     */
+    _getOriginConnectionPoint(originRect, pos) {
+        const /** @type {?} */ originStartX = this._getStartX(originRect);
+        const /** @type {?} */ originEndX = this._getEndX(originRect);
+        let /** @type {?} */ x;
+        if (pos.originX == 'center') {
+            x = originStartX + (originRect.width / 2);
+        }
+        else {
+            x = pos.originX == 'start' ? originStartX : originEndX;
+        }
+        let /** @type {?} */ y;
+        if (pos.originY == 'center') {
+            y = originRect.top + (originRect.height / 2);
+        }
+        else {
+            y = pos.originY == 'top' ? originRect.top : originRect.bottom;
+        }
+        return { x, y };
+    }
+    /**
+     * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and
+     * origin point to which the overlay should be connected, as well as how much of the element
+     * would be inside the viewport at that position.
+     * @param {?} originPoint
+     * @param {?} overlayRect
+     * @param {?} viewportRect
+     * @param {?} pos
+     * @return {?}
+     */
+    _getOverlayPoint(originPoint, overlayRect, viewportRect, pos) {
+        // Calculate the (overlayStartX, overlayStartY), the start of the potential overlay position
+        // relative to the origin point.
+        let /** @type {?} */ overlayStartX;
+        if (pos.overlayX == 'center') {
+            overlayStartX = -overlayRect.width / 2;
+        }
+        else if (pos.overlayX === 'start') {
+            overlayStartX = this._isRtl ? -overlayRect.width : 0;
+        }
+        else {
+            overlayStartX = this._isRtl ? 0 : -overlayRect.width;
+        }
+        let /** @type {?} */ overlayStartY;
+        if (pos.overlayY == 'center') {
+            overlayStartY = -overlayRect.height / 2;
+        }
+        else {
+            overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;
+        }
+        // The (x, y) coordinates of the overlay.
+        let /** @type {?} */ x = originPoint.x + overlayStartX + this._offsetX;
+        let /** @type {?} */ y = originPoint.y + overlayStartY + this._offsetY;
+        // How much the overlay would overflow at this position, on each side.
+        let /** @type {?} */ leftOverflow = 0 - x;
+        let /** @type {?} */ rightOverflow = (x + overlayRect.width) - viewportRect.width;
+        let /** @type {?} */ topOverflow = 0 - y;
+        let /** @type {?} */ bottomOverflow = (y + overlayRect.height) - viewportRect.height;
+        // Visible parts of the element on each axis.
+        let /** @type {?} */ visibleWidth = this._subtractOverflows(overlayRect.width, leftOverflow, rightOverflow);
+        let /** @type {?} */ visibleHeight = this._subtractOverflows(overlayRect.height, topOverflow, bottomOverflow);
+        // The area of the element that's within the viewport.
+        let /** @type {?} */ visibleArea = visibleWidth * visibleHeight;
+        let /** @type {?} */ fitsInViewport = (overlayRect.width * overlayRect.height) === visibleArea;
+        return { x, y, fitsInViewport, visibleArea };
+    }
+    /**
+     * Gets the view properties of the trigger and overlay, including whether they are clipped
+     * or completely outside the view of any of the strategy's scrollables.
+     * @param {?} overlay
+     * @return {?}
+     */
+    _getScrollVisibility(overlay) {
+        const /** @type {?} */ originBounds = this._origin.getBoundingClientRect();
+        const /** @type {?} */ overlayBounds = overlay.getBoundingClientRect();
+        const /** @type {?} */ scrollContainerBounds = this.scrollables.map(s => s.getElementRef().nativeElement.getBoundingClientRect());
+        return {
+            isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),
+            isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),
+            isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),
+            isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),
+        };
+    }
+    /**
+     * Physically positions the overlay element to the given coordinate.
+     * @param {?} element
+     * @param {?} overlayRect
+     * @param {?} overlayPoint
+     * @param {?} pos
+     * @return {?}
+     */
+    _setElementPosition(element, overlayRect, overlayPoint, pos) {
+        // We want to set either `top` or `bottom` based on whether the overlay wants to appear above
+        // or below the origin and the direction in which the element will expand.
+        let /** @type {?} */ verticalStyleProperty = pos.overlayY === 'bottom' ? 'bottom' : 'top';
+        // When using `bottom`, we adjust the y position such that it is the distance
+        // from the bottom of the viewport rather than the top.
+        let /** @type {?} */ y = verticalStyleProperty === 'top' ?
+            overlayPoint.y :
+            document.documentElement.clientHeight - (overlayPoint.y + overlayRect.height);
+        // We want to set either `left` or `right` based on whether the overlay wants to appear "before"
+        // or "after" the origin, which determines the direction in which the element will expand.
+        // For the horizontal axis, the meaning of "before" and "after" change based on whether the
+        // page is in RTL or LTR.
+        let /** @type {?} */ horizontalStyleProperty;
+        if (this._dir === 'rtl') {
+            horizontalStyleProperty = pos.overlayX === 'end' ? 'left' : 'right';
+        }
+        else {
+            horizontalStyleProperty = pos.overlayX === 'end' ? 'right' : 'left';
+        }
+        // When we're setting `right`, we adjust the x position such that it is the distance
+        // from the right edge of the viewport rather than the left edge.
+        let /** @type {?} */ x = horizontalStyleProperty === 'left' ?
+            overlayPoint.x :
+            document.documentElement.clientWidth - (overlayPoint.x + overlayRect.width);
+        // Reset any existing styles. This is necessary in case the preferred position has
+        // changed since the last `apply`.
+        ['top', 'bottom', 'left', 'right'].forEach(p => element.style[p] = null);
+        element.style[verticalStyleProperty] = `${y}px`;
+        element.style[horizontalStyleProperty] = `${x}px`;
+        // Notify that the position has been changed along with its change properties.
+        const /** @type {?} */ scrollableViewProperties = this._getScrollVisibility(element);
+        const /** @type {?} */ positionChange = new ConnectedOverlayPositionChange(pos, scrollableViewProperties);
+        this._onPositionChange.next(positionChange);
+    }
+    /**
+     * Subtracts the amount that an element is overflowing on an axis from it's length.
+     * @param {?} length
+     * @param {...?} overflows
+     * @return {?}
+     */
+    _subtractOverflows(length, ...overflows) {
+        return overflows.reduce((currentValue, currentOverflow) => {
+            return currentValue - Math.max(currentOverflow, 0);
+        }, length);
+    }
+}
+
+/**
+ * A strategy for positioning overlays. Using this strategy, an overlay is given an
+ * explicit position relative to the browser's viewport. We use flexbox, instead of
+ * transforms, in order to avoid issues with subpixel rendering which can cause the
+ * element to become blurry.
+ */
+class GlobalPositionStrategy {
+    constructor() {
+        this._cssPosition = 'static';
+        this._topOffset = '';
+        this._bottomOffset = '';
+        this._leftOffset = '';
+        this._rightOffset = '';
+        this._alignItems = '';
+        this._justifyContent = '';
+        this._width = '';
+        this._height = '';
+        this._wrapper = null;
+    }
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    attach(overlayRef) {
+        this._overlayRef = overlayRef;
+    }
+    /**
+     * Sets the top position of the overlay. Clears any previously set vertical position.
+     * @param {?=} value New top offset.
+     * @return {?}
+     */
+    top(value = '') {
+        this._bottomOffset = '';
+        this._topOffset = value;
+        this._alignItems = 'flex-start';
+        return this;
+    }
+    /**
+     * Sets the left position of the overlay. Clears any previously set horizontal position.
+     * @param {?=} value New left offset.
+     * @return {?}
+     */
+    left(value = '') {
+        this._rightOffset = '';
+        this._leftOffset = value;
+        this._justifyContent = 'flex-start';
+        return this;
+    }
+    /**
+     * Sets the bottom position of the overlay. Clears any previously set vertical position.
+     * @param {?=} value New bottom offset.
+     * @return {?}
+     */
+    bottom(value = '') {
+        this._topOffset = '';
+        this._bottomOffset = value;
+        this._alignItems = 'flex-end';
+        return this;
+    }
+    /**
+     * Sets the right position of the overlay. Clears any previously set horizontal position.
+     * @param {?=} value New right offset.
+     * @return {?}
+     */
+    right(value = '') {
+        this._leftOffset = '';
+        this._rightOffset = value;
+        this._justifyContent = 'flex-end';
+        return this;
+    }
+    /**
+     * Sets the overlay width and clears any previously set width.
+     * @param {?=} value New width for the overlay
+     * @return {?}
+     */
+    width(value = '') {
+        this._width = value;
+        // When the width is 100%, we should reset the `left` and the offset,
+        // in order to ensure that the element is flush against the viewport edge.
+        if (value === '100%') {
+            this.left('0px');
+        }
+        return this;
+    }
+    /**
+     * Sets the overlay height and clears any previously set height.
+     * @param {?=} value New height for the overlay
+     * @return {?}
+     */
+    height(value = '') {
+        this._height = value;
+        // When the height is 100%, we should reset the `top` and the offset,
+        // in order to ensure that the element is flush against the viewport edge.
+        if (value === '100%') {
+            this.top('0px');
+        }
+        return this;
+    }
+    /**
+     * Centers the overlay horizontally with an optional offset.
+     * Clears any previously set horizontal position.
+     *
+     * @param {?=} offset Overlay offset from the horizontal center.
+     * @return {?}
+     */
+    centerHorizontally(offset = '') {
+        this.left(offset);
+        this._justifyContent = 'center';
+        return this;
+    }
+    /**
+     * Centers the overlay vertically with an optional offset.
+     * Clears any previously set vertical position.
+     *
+     * @param {?=} offset Overlay offset from the vertical center.
+     * @return {?}
+     */
+    centerVertically(offset = '') {
+        this.top(offset);
+        this._alignItems = 'center';
+        return this;
+    }
+    /**
+     * Apply the position to the element.
+     * \@docs-private
+     *
+     * @return {?} Resolved when the styles have been applied.
+     */
+    apply() {
+        const /** @type {?} */ element = this._overlayRef.overlayElement;
+        if (!this._wrapper && element.parentNode) {
+            this._wrapper = document.createElement('div');
+            this._wrapper.classList.add('cdk-global-overlay-wrapper');
+            element.parentNode.insertBefore(this._wrapper, element);
+            this._wrapper.appendChild(element);
+        }
+        let /** @type {?} */ styles = element.style;
+        let /** @type {?} */ parentStyles = ((element.parentNode)).style;
+        styles.position = this._cssPosition;
+        styles.marginTop = this._topOffset;
+        styles.marginLeft = this._leftOffset;
+        styles.marginBottom = this._bottomOffset;
+        styles.marginRight = this._rightOffset;
+        styles.width = this._width;
+        styles.height = this._height;
+        parentStyles.justifyContent = this._justifyContent;
+        parentStyles.alignItems = this._alignItems;
+    }
+    /**
+     * Removes the wrapper element from the DOM.
+     * @return {?}
+     */
+    dispose() {
+        if (this._wrapper && this._wrapper.parentNode) {
+            this._wrapper.parentNode.removeChild(this._wrapper);
+            this._wrapper = null;
+        }
+    }
+}
+
+/**
+ * Builder for overlay position strategy.
+ */
+class OverlayPositionBuilder {
+    /**
+     * @param {?} _viewportRuler
+     */
+    constructor(_viewportRuler) {
+        this._viewportRuler = _viewportRuler;
+    }
+    /**
+     * Creates a global position strategy.
+     * @return {?}
+     */
+    global() {
+        return new GlobalPositionStrategy();
+    }
+    /**
+     * Creates a relative position strategy.
+     * @param {?} elementRef
+     * @param {?} originPos
+     * @param {?} overlayPos
+     * @return {?}
+     */
+    connectedTo(elementRef, originPos, overlayPos) {
+        return new ConnectedPositionStrategy(originPos, overlayPos, elementRef, this._viewportRuler);
+    }
+}
+OverlayPositionBuilder.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+OverlayPositionBuilder.ctorParameters = () => [
+    { type: ViewportRuler, },
+];
+
+/**
+ * The OverlayContainer is the container in which all overlays will load.
+ * It should be provided in the root component to ensure it is properly shared.
+ */
+class OverlayContainer {
+    /**
+     * @return {?}
+     */
+    ngOnDestroy() {
+        if (this._containerElement && this._containerElement.parentNode) {
+            this._containerElement.parentNode.removeChild(this._containerElement);
+        }
+    }
+    /**
+     * This method returns the overlay container element. It will lazily
+     * create the element the first time  it is called to facilitate using
+     * the container in non-browser environments.
+     * @return {?} the container element
+     */
+    getContainerElement() {
+        if (!this._containerElement) {
+            this._createContainer();
+        }
+        return this._containerElement;
+    }
+    /**
+     * Create the overlay container element, which is simply a div
+     * with the 'cdk-overlay-container' class on the document body.
+     * @return {?}
+     */
+    _createContainer() {
+        let /** @type {?} */ container = document.createElement('div');
+        container.classList.add('cdk-overlay-container');
+        document.body.appendChild(container);
+        this._containerElement = container;
+    }
+}
+OverlayContainer.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+OverlayContainer.ctorParameters = () => [];
+/**
+ * \@docs-private
+ * @param {?} parentContainer
+ * @return {?}
+ */
+function OVERLAY_CONTAINER_PROVIDER_FACTORY(parentContainer) {
+    return parentContainer || new OverlayContainer();
+}
+/**
+ * \@docs-private
+ */
+const OVERLAY_CONTAINER_PROVIDER = {
+    // If there is already an OverlayContainer available, use that. Otherwise, provide a new one.
+    provide: OverlayContainer,
+    deps: [[new Optional(), new SkipSelf(), OverlayContainer]],
+    useFactory: OVERLAY_CONTAINER_PROVIDER_FACTORY
+};
+
+/**
+ * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.
+ * @return {?}
+ */
+function getMatScrollStrategyAlreadyAttachedError() {
+    return Error(`Scroll strategy has already been attached.`);
+}
+
+/**
+ * Strategy that will close the overlay as soon as the user starts scrolling.
+ */
+class CloseScrollStrategy {
+    /**
+     * @param {?} _scrollDispatcher
+     */
+    constructor(_scrollDispatcher) {
+        this._scrollDispatcher = _scrollDispatcher;
+        this._scrollSubscription = null;
+    }
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    attach(overlayRef) {
+        if (this._overlayRef) {
+            throw getMatScrollStrategyAlreadyAttachedError();
+        }
+        this._overlayRef = overlayRef;
+    }
+    /**
+     * @return {?}
+     */
+    enable() {
+        if (!this._scrollSubscription) {
+            this._scrollSubscription = this._scrollDispatcher.scrolled(0, () => {
+                if (this._overlayRef.hasAttached()) {
+                    this._overlayRef.detach();
+                }
+                this.disable();
+            });
+        }
+    }
+    /**
+     * @return {?}
+     */
+    disable() {
+        if (this._scrollSubscription) {
+            this._scrollSubscription.unsubscribe();
+            this._scrollSubscription = null;
+        }
+    }
+}
+
+/**
+ * Strategy that will prevent the user from scrolling while the overlay is visible.
+ */
+class BlockScrollStrategy {
+    /**
+     * @param {?} _viewportRuler
+     */
+    constructor(_viewportRuler) {
+        this._viewportRuler = _viewportRuler;
+        this._previousHTMLStyles = { top: '', left: '' };
+        this._isEnabled = false;
+    }
+    /**
+     * @return {?}
+     */
+    attach() { }
+    /**
+     * @return {?}
+     */
+    enable() {
+        if (this._canBeEnabled()) {
+            const /** @type {?} */ root = document.documentElement;
+            this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();
+            // Cache the previous inline styles in case the user had set them.
+            this._previousHTMLStyles.left = root.style.left || '';
+            this._previousHTMLStyles.top = root.style.top || '';
+            // Note: we're using the `html` node, instead of the `body`, because the `body` may
+            // have the user agent margin, whereas the `html` is guaranteed not to have one.
+            root.style.left = `${-this._previousScrollPosition.left}px`;
+            root.style.top = `${-this._previousScrollPosition.top}px`;
+            root.classList.add('cdk-global-scrollblock');
+            this._isEnabled = true;
+        }
+    }
+    /**
+     * @return {?}
+     */
+    disable() {
+        if (this._isEnabled) {
+            this._isEnabled = false;
+            document.documentElement.style.left = this._previousHTMLStyles.left;
+            document.documentElement.style.top = this._previousHTMLStyles.top;
+            document.documentElement.classList.remove('cdk-global-scrollblock');
+            window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);
+        }
+    }
+    /**
+     * @return {?}
+     */
+    _canBeEnabled() {
+        // Since the scroll strategies can't be singletons, we have to use a global CSS class
+        // (`cdk-global-scrollblock`) to make sure that we don't try to disable global
+        // scrolling multiple times.
+        if (document.documentElement.classList.contains('cdk-global-scrollblock') || this._isEnabled) {
+            return false;
+        }
+        const /** @type {?} */ body = document.body;
+        const /** @type {?} */ viewport = this._viewportRuler.getViewportRect();
+        return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;
+    }
+}
+
+/**
+ * Strategy that will update the element position as the user is scrolling.
+ */
+class RepositionScrollStrategy {
+    /**
+     * @param {?} _scrollDispatcher
+     * @param {?=} _config
+     */
+    constructor(_scrollDispatcher, _config) {
+        this._scrollDispatcher = _scrollDispatcher;
+        this._config = _config;
+        this._scrollSubscription = null;
+    }
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    attach(overlayRef) {
+        if (this._overlayRef) {
+            throw getMatScrollStrategyAlreadyAttachedError();
+        }
+        this._overlayRef = overlayRef;
+    }
+    /**
+     * @return {?}
+     */
+    enable() {
+        if (!this._scrollSubscription) {
+            let /** @type {?} */ throttle = this._config ? this._config.scrollThrottle : 0;
+            this._scrollSubscription = this._scrollDispatcher.scrolled(throttle, () => {
+                this._overlayRef.updatePosition();
+            });
+        }
+    }
+    /**
+     * @return {?}
+     */
+    disable() {
+        if (this._scrollSubscription) {
+            this._scrollSubscription.unsubscribe();
+            this._scrollSubscription = null;
+        }
+    }
+}
+
+/**
+ * Options for how an overlay will handle scrolling.
+ *
+ * Users can provide a custom value for `ScrollStrategyOptions` to replace the default
+ * behaviors. This class primarily acts as a factory for ScrollStrategy instances.
+ */
+class ScrollStrategyOptions {
+    /**
+     * @param {?} _scrollDispatcher
+     * @param {?} _viewportRuler
+     */
+    constructor(_scrollDispatcher, _viewportRuler) {
+        this._scrollDispatcher = _scrollDispatcher;
+        this._viewportRuler = _viewportRuler;
+        /**
+         * Do nothing on scroll.
+         */
+        this.noop = () => new NoopScrollStrategy();
+        /**
+         * Close the overlay as soon as the user scrolls.
+         */
+        this.close = () => new CloseScrollStrategy(this._scrollDispatcher);
+        /**
+         * Block scrolling.
+         */
+        this.block = () => new BlockScrollStrategy(this._viewportRuler);
+        /**
+         * Update the overlay's position on scroll.
+         * @param config Configuration to be used inside the scroll strategy.
+         * Allows debouncing the reposition calls.
+         */
+        this.reposition = (config) => new RepositionScrollStrategy(this._scrollDispatcher, config);
+    }
+}
+ScrollStrategyOptions.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+ScrollStrategyOptions.ctorParameters = () => [
+    { type: ScrollDispatcher, },
+    { type: ViewportRuler, },
+];
+
+/**
+ * Next overlay unique ID.
+ */
+let nextUniqueId = 0;
+/**
+ * The default config for newly created overlays.
+ */
+let defaultConfig = new OverlayConfig();
+/**
+ * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be
+ * used as a low-level building building block for other components. Dialogs, tooltips, menus,
+ * selects, etc. can all be built using overlays. The service should primarily be used by authors
+ * of re-usable components rather than developers building end-user applications.
+ *
+ * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.
+ */
+class Overlay {
+    /**
+     * @param {?} scrollStrategies
+     * @param {?} _overlayContainer
+     * @param {?} _componentFactoryResolver
+     * @param {?} _positionBuilder
+     * @param {?} _appRef
+     * @param {?} _injector
+     * @param {?} _ngZone
+     */
+    constructor(scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _appRef, _injector, _ngZone) {
+        this.scrollStrategies = scrollStrategies;
+        this._overlayContainer = _overlayContainer;
+        this._componentFactoryResolver = _componentFactoryResolver;
+        this._positionBuilder = _positionBuilder;
+        this._appRef = _appRef;
+        this._injector = _injector;
+        this._ngZone = _ngZone;
+    }
+    /**
+     * Creates an overlay.
+     * @param {?=} config Config to apply to the overlay.
+     * @return {?} Reference to the created overlay.
+     */
+    create(config = defaultConfig) {
+        const /** @type {?} */ pane = this._createPaneElement();
+        const /** @type {?} */ portalHost = this._createPortalHost(pane);
+        return new OverlayRef(portalHost, pane, config, this._ngZone);
+    }
+    /**
+     * Returns a position builder that can be used, via fluent API,
+     * to construct and configure a position strategy.
+     * @return {?}
+     */
+    position() {
+        return this._positionBuilder;
+    }
+    /**
+     * Creates the DOM element for an overlay and appends it to the overlay container.
+     * @return {?} Newly-created pane element
+     */
+    _createPaneElement() {
+        let /** @type {?} */ pane = document.createElement('div');
+        pane.id = `cdk-overlay-${nextUniqueId++}`;
+        pane.classList.add('cdk-overlay-pane');
+        this._overlayContainer.getContainerElement().appendChild(pane);
+        return pane;
+    }
+    /**
+     * Create a DomPortalHost into which the overlay content can be loaded.
+     * @param {?} pane The DOM element to turn into a portal host.
+     * @return {?} A portal host for the given DOM element.
+     */
+    _createPortalHost(pane) {
+        return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef, this._injector);
+    }
+}
+Overlay.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+Overlay.ctorParameters = () => [
+    { type: ScrollStrategyOptions, },
+    { type: OverlayContainer, },
+    { type: ComponentFactoryResolver, },
+    { type: OverlayPositionBuilder, },
+    { type: ApplicationRef, },
+    { type: Injector, },
+    { type: NgZone, },
+];
+
+/**
+ * The FullscreenOverlayContainer is the alternative to OverlayContainer
+ * that supports correct displaying of overlay elements in Fullscreen mode
+ * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen
+ * It should be provided in the root component that way:
+ * providers: [
+ *   {provide: OverlayContainer, useClass: FullscreenOverlayContainer}
+ * ],
+ */
+class FullscreenOverlayContainer extends OverlayContainer {
+    /**
+     * @return {?}
+     */
+    _createContainer() {
+        super._createContainer();
+        this._adjustParentForFullscreenChange();
+        this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());
+    }
+    /**
+     * @return {?}
+     */
+    _adjustParentForFullscreenChange() {
+        if (!this._containerElement) {
+            return;
+        }
+        let /** @type {?} */ fullscreenElement = this.getFullscreenElement();
+        let /** @type {?} */ parent = fullscreenElement || document.body;
+        parent.appendChild(this._containerElement);
+    }
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    _addFullscreenChangeListener(fn) {
+        if (document.fullscreenEnabled) {
+            document.addEventListener('fullscreenchange', fn);
+        }
+        else if (document.webkitFullscreenEnabled) {
+            document.addEventListener('webkitfullscreenchange', fn);
+        }
+        else if (((document)).mozFullScreenEnabled) {
+            document.addEventListener('mozfullscreenchange', fn);
+        }
+        else if (((document)).msFullscreenEnabled) {
+            document.addEventListener('MSFullscreenChange', fn);
+        }
+    }
+    /**
+     * When the page is put into fullscreen mode, a specific element is specified.
+     * Only that element and its children are visible when in fullscreen mode.
+     * @return {?}
+     */
+    getFullscreenElement() {
+        return document.fullscreenElement ||
+            document.webkitFullscreenElement ||
+            ((document)).mozFullScreenElement ||
+            ((document)).msFullscreenElement ||
+            null;
+    }
+}
+FullscreenOverlayContainer.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+FullscreenOverlayContainer.ctorParameters = () => [];
+
+/**
+ * Default set of positions for the overlay. Follows the behavior of a dropdown.
+ */
+const defaultPositionList = [
+    new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }),
+    new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }),
+];
+/**
+ * Injection token that determines the scroll handling while the connected overlay is open.
+ */
+const MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY = new InjectionToken('mat-connected-overlay-scroll-strategy');
+/**
+ * \@docs-private
+ * @param {?} overlay
+ * @return {?}
+ */
+function MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {
+    return () => overlay.scrollStrategies.reposition();
+}
+/**
+ * \@docs-private
+ */
+const MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {
+    provide: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,
+    deps: [Overlay],
+    useFactory: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,
+};
+/**
+ * Directive applied to an element to make it usable as an origin for an Overlay using a
+ * ConnectedPositionStrategy.
+ */
+class OverlayOrigin {
+    /**
+     * @param {?} elementRef
+     */
+    constructor(elementRef) {
+        this.elementRef = elementRef;
+    }
+}
+OverlayOrigin.decorators = [
+    { type: Directive, args: [{
+                selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',
+                exportAs: 'cdkOverlayOrigin',
+            },] },
+];
+/**
+ * @nocollapse
+ */
+OverlayOrigin.ctorParameters = () => [
+    { type: ElementRef, },
+];
+/**
+ * Directive to facilitate declarative creation of an Overlay using a ConnectedPositionStrategy.
+ */
+class ConnectedOverlayDirective {
+    /**
+     * @param {?} _overlay
+     * @param {?} _renderer
+     * @param {?} templateRef
+     * @param {?} viewContainerRef
+     * @param {?} _scrollStrategy
+     * @param {?} _dir
+     */
+    constructor(_overlay, _renderer, templateRef, viewContainerRef, _scrollStrategy, _dir) {
+        this._overlay = _overlay;
+        this._renderer = _renderer;
+        this._scrollStrategy = _scrollStrategy;
+        this._dir = _dir;
+        this._hasBackdrop = false;
+        this._backdropSubscription = Subscription.EMPTY;
+        this._positionSubscription = Subscription.EMPTY;
+        this._offsetX = 0;
+        this._offsetY = 0;
+        this._escapeListener = () => { };
+        /**
+         * Strategy to be used when handling scroll events while the overlay is open.
+         */
+        this.scrollStrategy = this._scrollStrategy();
+        /**
+         * Whether the overlay is open.
+         */
+        this.open = false;
+        /**
+         * Event emitted when the backdrop is clicked.
+         */
+        this.backdropClick = new EventEmitter();
+        /**
+         * Event emitted when the position has changed.
+         */
+        this.positionChange = new EventEmitter();
+        /**
+         * Event emitted when the overlay has been attached.
+         */
+        this.attach = new EventEmitter();
+        /**
+         * Event emitted when the overlay has been detached.
+         */
+        this.detach = new EventEmitter();
+        this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);
+    }
+    /**
+     * The offset in pixels for the overlay connection point on the x-axis
+     * @return {?}
+     */
+    get offsetX() { return this._offsetX; }
+    /**
+     * @param {?} offsetX
+     * @return {?}
+     */
+    set offsetX(offsetX) {
+        this._offsetX = offsetX;
+        if (this._position) {
+            this._position.withOffsetX(offsetX);
+        }
+    }
+    /**
+     * The offset in pixels for the overlay connection point on the y-axis
+     * @return {?}
+     */
+    get offsetY() { return this._offsetY; }
+    /**
+     * @param {?} offsetY
+     * @return {?}
+     */
+    set offsetY(offsetY) {
+        this._offsetY = offsetY;
+        if (this._position) {
+            this._position.withOffsetY(offsetY);
+        }
+    }
+    /**
+     * Whether or not the overlay should attach a backdrop.
+     * @return {?}
+     */
+    get hasBackdrop() { return this._hasBackdrop; }
+    /**
+     * @param {?} value
+     * @return {?}
+     */
+    set hasBackdrop(value) { this._hasBackdrop = coerceBooleanProperty(value); }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedOrigin() { return this.origin; }
+    /**
+     * @param {?} _origin
+     * @return {?}
+     */
+    set _deprecatedOrigin(_origin) { this.origin = _origin; }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedPositions() { return this.positions; }
+    /**
+     * @param {?} _positions
+     * @return {?}
+     */
+    set _deprecatedPositions(_positions) { this.positions = _positions; }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedOffsetX() { return this.offsetX; }
+    /**
+     * @param {?} _offsetX
+     * @return {?}
+     */
+    set _deprecatedOffsetX(_offsetX) { this.offsetX = _offsetX; }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedOffsetY() { return this.offsetY; }
+    /**
+     * @param {?} _offsetY
+     * @return {?}
+     */
+    set _deprecatedOffsetY(_offsetY) { this.offsetY = _offsetY; }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedWidth() { return this.width; }
+    /**
+     * @param {?} _width
+     * @return {?}
+     */
+    set _deprecatedWidth(_width) { this.width = _width; }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedHeight() { return this.height; }
+    /**
+     * @param {?} _height
+     * @return {?}
+     */
+    set _deprecatedHeight(_height) { this.height = _height; }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedMinWidth() { return this.minWidth; }
+    /**
+     * @param {?} _minWidth
+     * @return {?}
+     */
+    set _deprecatedMinWidth(_minWidth) { this.minWidth = _minWidth; }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedMinHeight() { return this.minHeight; }
+    /**
+     * @param {?} _minHeight
+     * @return {?}
+     */
+    set _deprecatedMinHeight(_minHeight) { this.minHeight = _minHeight; }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedBackdropClass() { return this.backdropClass; }
+    /**
+     * @param {?} _backdropClass
+     * @return {?}
+     */
+    set _deprecatedBackdropClass(_backdropClass) { this.backdropClass = _backdropClass; }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedScrollStrategy() { return this.scrollStrategy; }
+    /**
+     * @param {?} _scrollStrategy
+     * @return {?}
+     */
+    set _deprecatedScrollStrategy(_scrollStrategy) {
+        this.scrollStrategy = _scrollStrategy;
+    }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedOpen() { return this.open; }
+    /**
+     * @param {?} _open
+     * @return {?}
+     */
+    set _deprecatedOpen(_open) { this.open = _open; }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedHasBackdrop() { return this.hasBackdrop; }
+    /**
+     * @param {?} _hasBackdrop
+     * @return {?}
+     */
+    set _deprecatedHasBackdrop(_hasBackdrop) { this.hasBackdrop = _hasBackdrop; }
+    /**
+     * The associated overlay reference.
+     * @return {?}
+     */
+    get overlayRef() {
+        return this._overlayRef;
+    }
+    /**
+     * The element's layout direction.
+     * @return {?}
+     */
+    get dir() {
+        return this._dir ? this._dir.value : 'ltr';
+    }
+    /**
+     * @return {?}
+     */
+    ngOnDestroy() {
+        this._destroyOverlay();
+    }
+    /**
+     * @param {?} changes
+     * @return {?}
+     */
+    ngOnChanges(changes) {
+        if (changes['open'] || changes['_deprecatedOpen']) {
+            this.open ? this._attachOverlay() : this._detachOverlay();
+        }
+    }
+    /**
+     * Creates an overlay
+     * @return {?}
+     */
+    _createOverlay() {
+        if (!this.positions || !this.positions.length) {
+            this.positions = defaultPositionList;
+        }
+        this._overlayRef = this._overlay.create(this._buildConfig());
+    }
+    /**
+     * Builds the overlay config based on the directive's inputs
+     * @return {?}
+     */
+    _buildConfig() {
+        const /** @type {?} */ positionStrategy = this._position = this._createPositionStrategy();
+        const /** @type {?} */ overlayConfig = new OverlayConfig({
+            positionStrategy,
+            scrollStrategy: this.scrollStrategy,
+            hasBackdrop: this.hasBackdrop
+        });
+        if (this.width || this.width === 0) {
+            overlayConfig.width = this.width;
+        }
+        if (this.height || this.height === 0) {
+            overlayConfig.height = this.height;
+        }
+        if (this.minWidth || this.minWidth === 0) {
+            overlayConfig.minWidth = this.minWidth;
+        }
+        if (this.minHeight || this.minHeight === 0) {
+            overlayConfig.minHeight = this.minHeight;
+        }
+        if (this.backdropClass) {
+            overlayConfig.backdropClass = this.backdropClass;
+        }
+        return overlayConfig;
+    }
+    /**
+     * Returns the position strategy of the overlay to be set on the overlay config
+     * @return {?}
+     */
+    _createPositionStrategy() {
+        const /** @type {?} */ pos = this.positions[0];
+        const /** @type {?} */ originPoint = { originX: pos.originX, originY: pos.originY };
+        const /** @type {?} */ overlayPoint = { overlayX: pos.overlayX, overlayY: pos.overlayY };
+        const /** @type {?} */ strategy = this._overlay.position()
+            .connectedTo(this.origin.elementRef, originPoint, overlayPoint)
+            .withOffsetX(this.offsetX)
+            .withOffsetY(this.offsetY);
+        this._handlePositionChanges(strategy);
+        return strategy;
+    }
+    /**
+     * @param {?} strategy
+     * @return {?}
+     */
+    _handlePositionChanges(strategy) {
+        for (let /** @type {?} */ i = 1; i < this.positions.length; i++) {
+            strategy.withFallbackPosition({ originX: this.positions[i].originX, originY: this.positions[i].originY }, { overlayX: this.positions[i].overlayX, overlayY: this.positions[i].overlayY });
+        }
+        this._positionSubscription =
+            strategy.onPositionChange.subscribe(pos => this.positionChange.emit(pos));
+    }
+    /**
+     * Attaches the overlay and subscribes to backdrop clicks if backdrop exists
+     * @return {?}
+     */
+    _attachOverlay() {
+        if (!this._overlayRef) {
+            this._createOverlay();
+        }
+        this._position.withDirection(this.dir);
+        this._overlayRef.getConfig().direction = this.dir;
+        this._initEscapeListener();
+        if (!this._overlayRef.hasAttached()) {
+            this._overlayRef.attach(this._templatePortal);
+            this.attach.emit();
+        }
+        if (this.hasBackdrop) {
+            this._backdropSubscription = this._overlayRef.backdropClick().subscribe(() => {
+                this.backdropClick.emit();
+            });
+        }
+    }
+    /**
+     * Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists
+     * @return {?}
+     */
+    _detachOverlay() {
+        if (this._overlayRef) {
+            this._overlayRef.detach();
+            this.detach.emit();
+        }
+        this._backdropSubscription.unsubscribe();
+        this._escapeListener();
+    }
+    /**
+     * Destroys the overlay created by this directive.
+     * @return {?}
+     */
+    _destroyOverlay() {
+        if (this._overlayRef) {
+            this._overlayRef.dispose();
+        }
+        this._backdropSubscription.unsubscribe();
+        this._positionSubscription.unsubscribe();
+        this._escapeListener();
+    }
+    /**
+     * Sets the event listener that closes the overlay when pressing Escape.
+     * @return {?}
+     */
+    _initEscapeListener() {
+        this._escapeListener = this._renderer.listen('document', 'keydown', (event) => {
+            if (event.keyCode === ESCAPE) {
+                this._detachOverlay();
+            }
+        });
+    }
+}
+ConnectedOverlayDirective.decorators = [
+    { type: Directive, args: [{
+                selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',
+                exportAs: 'cdkConnectedOverlay'
+            },] },
+];
+/**
+ * @nocollapse
+ */
+ConnectedOverlayDirective.ctorParameters = () => [
+    { type: Overlay, },
+    { type: Renderer2, },
+    { type: TemplateRef, },
+    { type: ViewContainerRef, },
+    { type: undefined, decorators: [{ type: Inject, args: [MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,] },] },
+    { type: Directionality, decorators: [{ type: Optional },] },
+];
+ConnectedOverlayDirective.propDecorators = {
+    'origin': [{ type: Input, args: ['cdkConnectedOverlayOrigin',] },],
+    'positions': [{ type: Input, args: ['cdkConnectedOverlayPositions',] },],
+    'offsetX': [{ type: Input, args: ['cdkConnectedOverlayOffsetX',] },],
+    'offsetY': [{ type: Input, args: ['cdkConnectedOverlayOffsetY',] },],
+    'width': [{ type: Input, args: ['cdkConnectedOverlayWidth',] },],
+    'height': [{ type: Input, args: ['cdkConnectedOverlayHeight',] },],
+    'minWidth': [{ type: Input, args: ['cdkConnectedOverlayMinWidth',] },],
+    'minHeight': [{ type: Input, args: ['cdkConnectedOverlayMinHeight',] },],
+    'backdropClass': [{ type: Input, args: ['cdkConnectedOverlayBackdropClass',] },],
+    'scrollStrategy': [{ type: Input, args: ['cdkConnectedOverlayScrollStrategy',] },],
+    'open': [{ type: Input, args: ['cdkConnectedOverlayOpen',] },],
+    'hasBackdrop': [{ type: Input, args: ['cdkConnectedOverlayHasBackdrop',] },],
+    '_deprecatedOrigin': [{ type: Input, args: ['origin',] },],
+    '_deprecatedPositions': [{ type: Input, args: ['positions',] },],
+    '_deprecatedOffsetX': [{ type: Input, args: ['offsetX',] },],
+    '_deprecatedOffsetY': [{ type: Input, args: ['offsetY',] },],
+    '_deprecatedWidth': [{ type: Input, args: ['width',] },],
+    '_deprecatedHeight': [{ type: Input, args: ['height',] },],
+    '_deprecatedMinWidth': [{ type: Input, args: ['minWidth',] },],
+    '_deprecatedMinHeight': [{ type: Input, args: ['minHeight',] },],
+    '_deprecatedBackdropClass': [{ type: Input, args: ['backdropClass',] },],
+    '_deprecatedScrollStrategy': [{ type: Input, args: ['scrollStrategy',] },],
+    '_deprecatedOpen': [{ type: Input, args: ['open',] },],
+    '_deprecatedHasBackdrop': [{ type: Input, args: ['hasBackdrop',] },],
+    'backdropClick': [{ type: Output },],
+    'positionChange': [{ type: Output },],
+    'attach': [{ type: Output },],
+    'detach': [{ type: Output },],
+};
+
+const OVERLAY_PROVIDERS = [
+    Overlay,
+    OverlayPositionBuilder,
+    VIEWPORT_RULER_PROVIDER,
+    OVERLAY_CONTAINER_PROVIDER,
+    MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,
+];
+class OverlayModule {
+}
+OverlayModule.decorators = [
+    { type: NgModule, args: [{
+                imports: [PortalModule, ScrollDispatchModule],
+                exports: [ConnectedOverlayDirective, OverlayOrigin, ScrollDispatchModule],
+                declarations: [ConnectedOverlayDirective, OverlayOrigin],
+                providers: [OVERLAY_PROVIDERS, ScrollStrategyOptions],
+            },] },
+];
+/**
+ * @nocollapse
+ */
+OverlayModule.ctorParameters = () => [];
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { Overlay, OverlayContainer, FullscreenOverlayContainer, OverlayRef, ConnectedOverlayDirective, OverlayOrigin, ViewportRuler, GlobalPositionStrategy, ConnectedPositionStrategy, VIEWPORT_RULER_PROVIDER, OverlayConfig, ConnectionPositionPair, ScrollingVisibility, ConnectedOverlayPositionChange, Scrollable, ScrollDispatcher, ScrollStrategyOptions, RepositionScrollStrategy, CloseScrollStrategy, NoopScrollStrategy, BlockScrollStrategy, OVERLAY_PROVIDERS, OverlayModule, OVERLAY_CONTAINER_PROVIDER as ɵb, OVERLAY_CONTAINER_PROVIDER_FACTORY as ɵa, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY as ɵc, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER as ɵe, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY as ɵd, OverlayPositionBuilder as ɵf };
+//# sourceMappingURL=overlay.js.map


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/bundles/animations-browser.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations-browser.umd.js b/node_modules/@angular/animations/bundles/animations-browser.umd.js
new file mode 100644
index 0000000..7a11496
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations-browser.umd.js
@@ -0,0 +1,4926 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/animations')) :
+	typeof define === 'function' && define.amd ? define(['exports', '@angular/animations'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.animations = global.ng.animations || {}, global.ng.animations.browser = global.ng.animations.browser || {}),global.ng.animations));
+}(this, (function (exports,_angular_animations) { 'use strict';
+
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+/* global Reflect, Promise */
+
+var extendStatics = Object.setPrototypeOf ||
+    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+
+function __extends(d, b) {
+    extendStatics(d, b);
+    function __() { this.constructor = d; }
+    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+/**
+ * @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
+ */
+function optimizeGroupPlayer(players) {
+    switch (players.length) {
+        case 0:
+            return new _angular_animations.NoopAnimationPlayer();
+        case 1:
+            return players[0];
+        default:
+            return new _angular_animations.ɵAnimationGroupPlayer(players);
+    }
+}
+function normalizeKeyframes(driver, normalizer, element, keyframes, preStyles, postStyles) {
+    if (preStyles === void 0) { preStyles = {}; }
+    if (postStyles === void 0) { postStyles = {}; }
+    var errors = [];
+    var normalizedKeyframes = [];
+    var previousOffset = -1;
+    var previousKeyframe = null;
+    keyframes.forEach(function (kf) {
+        var offset = kf['offset'];
+        var isSameOffset = offset == previousOffset;
+        var normalizedKeyframe = (isSameOffset && previousKeyframe) || {};
+        Object.keys(kf).forEach(function (prop) {
+            var normalizedProp = prop;
+            var normalizedValue = kf[prop];
+            if (prop !== 'offset') {
+                normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);
+                switch (normalizedValue) {
+                    case _angular_animations.ɵPRE_STYLE:
+                        normalizedValue = preStyles[prop];
+                        break;
+                    case _angular_animations.AUTO_STYLE:
+                        normalizedValue = postStyles[prop];
+                        break;
+                    default:
+                        normalizedValue =
+                            normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);
+                        break;
+                }
+            }
+            normalizedKeyframe[normalizedProp] = normalizedValue;
+        });
+        if (!isSameOffset) {
+            normalizedKeyframes.push(normalizedKeyframe);
+        }
+        previousKeyframe = normalizedKeyframe;
+        previousOffset = offset;
+    });
+    if (errors.length) {
+        var LINE_START = '\n - ';
+        throw new Error("Unable to animate due to the following errors:" + LINE_START + errors.join(LINE_START));
+    }
+    return normalizedKeyframes;
+}
+function listenOnPlayer(player, eventName, event, callback) {
+    switch (eventName) {
+        case 'start':
+            player.onStart(function () { return callback(event && copyAnimationEvent(event, 'start', player.totalTime)); });
+            break;
+        case 'done':
+            player.onDone(function () { return callback(event && copyAnimationEvent(event, 'done', player.totalTime)); });
+            break;
+        case 'destroy':
+            player.onDestroy(function () { return callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)); });
+            break;
+    }
+}
+function copyAnimationEvent(e, phaseName, totalTime) {
+    var event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime);
+    var data = e['_data'];
+    if (data != null) {
+        event['_data'] = data;
+    }
+    return event;
+}
+function makeAnimationEvent(element, triggerName, fromState, toState, phaseName, totalTime) {
+    if (phaseName === void 0) { phaseName = ''; }
+    if (totalTime === void 0) { totalTime = 0; }
+    return { element: element, triggerName: triggerName, fromState: fromState, toState: toState, phaseName: phaseName, totalTime: totalTime };
+}
+function getOrSetAsInMap(map, key, defaultValue) {
+    var value;
+    if (map instanceof Map) {
+        value = map.get(key);
+        if (!value) {
+            map.set(key, value = defaultValue);
+        }
+    }
+    else {
+        value = map[key];
+        if (!value) {
+            value = map[key] = defaultValue;
+        }
+    }
+    return value;
+}
+function parseTimelineCommand(command) {
+    var separatorPos = command.indexOf(':');
+    var id = command.substring(1, separatorPos);
+    var action = command.substr(separatorPos + 1);
+    return [id, action];
+}
+var _contains = function (elm1, elm2) { return false; };
+var _matches = function (element, selector) { return false; };
+var _query = function (element, selector, multi) {
+    return [];
+};
+if (typeof Element != 'undefined') {
+    // this is well supported in all browsers
+    _contains = function (elm1, elm2) { return elm1.contains(elm2); };
+    if (Element.prototype.matches) {
+        _matches = function (element, selector) { return element.matches(selector); };
+    }
+    else {
+        var proto = Element.prototype;
+        var fn_1 = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||
+            proto.oMatchesSelector || proto.webkitMatchesSelector;
+        if (fn_1) {
+            _matches = function (element, selector) { return fn_1.apply(element, [selector]); };
+        }
+    }
+    _query = function (element, selector, multi) {
+        var results = [];
+        if (multi) {
+            results.push.apply(results, element.querySelectorAll(selector));
+        }
+        else {
+            var elm = element.querySelector(selector);
+            if (elm) {
+                results.push(elm);
+            }
+        }
+        return results;
+    };
+}
+var matchesElement = _matches;
+var containsElement = _contains;
+var invokeQuery = _query;
+/**
+ * @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
+ */
+/**
+ * @experimental
+ */
+var NoopAnimationDriver = (function () {
+    function NoopAnimationDriver() {
+    }
+    NoopAnimationDriver.prototype.matchesElement = function (element, selector) {
+        return matchesElement(element, selector);
+    };
+    NoopAnimationDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); };
+    NoopAnimationDriver.prototype.query = function (element, selector, multi) {
+        return invokeQuery(element, selector, multi);
+    };
+    NoopAnimationDriver.prototype.computeStyle = function (element, prop, defaultValue) {
+        return defaultValue || '';
+    };
+    NoopAnimationDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers) {
+        if (previousPlayers === void 0) { previousPlayers = []; }
+        return new _angular_animations.NoopAnimationPlayer();
+    };
+    return NoopAnimationDriver;
+}());
+/**
+ * @experimental
+ */
+var AnimationDriver = (function () {
+    function AnimationDriver() {
+    }
+    return AnimationDriver;
+}());
+AnimationDriver.NOOP = new NoopAnimationDriver();
+/**
+ * @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
+ */
+var ONE_SECOND = 1000;
+var SUBSTITUTION_EXPR_START = '{{';
+var SUBSTITUTION_EXPR_END = '}}';
+var ENTER_CLASSNAME = 'ng-enter';
+var LEAVE_CLASSNAME = 'ng-leave';
+var ENTER_SELECTOR = '.ng-enter';
+var LEAVE_SELECTOR = '.ng-leave';
+var NG_TRIGGER_CLASSNAME = 'ng-trigger';
+var NG_TRIGGER_SELECTOR = '.ng-trigger';
+var NG_ANIMATING_CLASSNAME = 'ng-animating';
+var NG_ANIMATING_SELECTOR = '.ng-animating';
+function resolveTimingValue(value) {
+    if (typeof value == 'number')
+        return value;
+    var matches = value.match(/^(-?[\.\d]+)(m?s)/);
+    if (!matches || matches.length < 2)
+        return 0;
+    return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);
+}
+function _convertTimeValueToMS(value, unit) {
+    switch (unit) {
+        case 's':
+            return value * ONE_SECOND;
+        default:
+            return value;
+    }
+}
+function resolveTiming(timings, errors, allowNegativeValues) {
+    return timings.hasOwnProperty('duration') ?
+        timings :
+        parseTimeExpression(timings, errors, allowNegativeValues);
+}
+function parseTimeExpression(exp, errors, allowNegativeValues) {
+    var regex = /^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;
+    var duration;
+    var delay = 0;
+    var easing = '';
+    if (typeof exp === 'string') {
+        var matches = exp.match(regex);
+        if (matches === null) {
+            errors.push("The provided timing value \"" + exp + "\" is invalid.");
+            return { duration: 0, delay: 0, easing: '' };
+        }
+        duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);
+        var delayMatch = matches[3];
+        if (delayMatch != null) {
+            delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]);
+        }
+        var easingVal = matches[5];
+        if (easingVal) {
+            easing = easingVal;
+        }
+    }
+    else {
+        duration = exp;
+    }
+    if (!allowNegativeValues) {
+        var containsErrors = false;
+        var startIndex = errors.length;
+        if (duration < 0) {
+            errors.push("Duration values below 0 are not allowed for this animation step.");
+            containsErrors = true;
+        }
+        if (delay < 0) {
+            errors.push("Delay values below 0 are not allowed for this animation step.");
+            containsErrors = true;
+        }
+        if (containsErrors) {
+            errors.splice(startIndex, 0, "The provided timing value \"" + exp + "\" is invalid.");
+        }
+    }
+    return { duration: duration, delay: delay, easing: easing };
+}
+function copyObj(obj, destination) {
+    if (destination === void 0) { destination = {}; }
+    Object.keys(obj).forEach(function (prop) { destination[prop] = obj[prop]; });
+    return destination;
+}
+function normalizeStyles(styles) {
+    var normalizedStyles = {};
+    if (Array.isArray(styles)) {
+        styles.forEach(function (data) { return copyStyles(data, false, normalizedStyles); });
+    }
+    else {
+        copyStyles(styles, false, normalizedStyles);
+    }
+    return normalizedStyles;
+}
+function copyStyles(styles, readPrototype, destination) {
+    if (destination === void 0) { destination = {}; }
+    if (readPrototype) {
+        // we make use of a for-in loop so that the
+        // prototypically inherited properties are
+        // revealed from the backFill map
+        for (var prop in styles) {
+            destination[prop] = styles[prop];
+        }
+    }
+    else {
+        copyObj(styles, destination);
+    }
+    return destination;
+}
+function setStyles(element, styles) {
+    if (element['style']) {
+        Object.keys(styles).forEach(function (prop) {
+            var camelProp = dashCaseToCamelCase(prop);
+            element.style[camelProp] = styles[prop];
+        });
+    }
+}
+function eraseStyles(element, styles) {
+    if (element['style']) {
+        Object.keys(styles).forEach(function (prop) {
+            var camelProp = dashCaseToCamelCase(prop);
+            element.style[camelProp] = '';
+        });
+    }
+}
+function normalizeAnimationEntry(steps) {
+    if (Array.isArray(steps)) {
+        if (steps.length == 1)
+            return steps[0];
+        return _angular_animations.sequence(steps);
+    }
+    return steps;
+}
+function validateStyleParams(value, options, errors) {
+    var params = options.params || {};
+    var matches = extractStyleParams(value);
+    if (matches.length) {
+        matches.forEach(function (varName) {
+            if (!params.hasOwnProperty(varName)) {
+                errors.push("Unable to resolve the local animation param " + varName + " in the given list of values");
+            }
+        });
+    }
+}
+var PARAM_REGEX = new RegExp(SUBSTITUTION_EXPR_START + "\\s*(.+?)\\s*" + SUBSTITUTION_EXPR_END, 'g');
+function extractStyleParams(value) {
+    var params = [];
+    if (typeof value === 'string') {
+        var val = value.toString();
+        var match = void 0;
+        while (match = PARAM_REGEX.exec(val)) {
+            params.push(match[1]);
+        }
+        PARAM_REGEX.lastIndex = 0;
+    }
+    return params;
+}
+function interpolateParams(value, params, errors) {
+    var original = value.toString();
+    var str = original.replace(PARAM_REGEX, function (_, varName) {
+        var localVal = params[varName];
+        // this means that the value was never overidden by the data passed in by the user
+        if (!params.hasOwnProperty(varName)) {
+            errors.push("Please provide a value for the animation param " + varName);
+            localVal = '';
+        }
+        return localVal.toString();
+    });
+    // we do this to assert that numeric values stay as they are
+    return str == original ? value : str;
+}
+function iteratorToArray(iterator) {
+    var arr = [];
+    var item = iterator.next();
+    while (!item.done) {
+        arr.push(item.value);
+        item = iterator.next();
+    }
+    return arr;
+}
+var DASH_CASE_REGEXP = /-+([a-z0-9])/g;
+function dashCaseToCamelCase(input) {
+    return input.replace(DASH_CASE_REGEXP, function () {
+        var m = [];
+        for (var _i = 0; _i < arguments.length; _i++) {
+            m[_i] = arguments[_i];
+        }
+        return m[1].toUpperCase();
+    });
+}
+function allowPreviousPlayerStylesMerge(duration, delay) {
+    return duration === 0 || delay === 0;
+}
+function visitDslNode(visitor, node, context) {
+    switch (node.type) {
+        case 7 /* Trigger */:
+            return visitor.visitTrigger(node, context);
+        case 0 /* State */:
+            return visitor.visitState(node, context);
+        case 1 /* Transition */:
+            return visitor.visitTransition(node, context);
+        case 2 /* Sequence */:
+            return visitor.visitSequence(node, context);
+        case 3 /* Group */:
+            return visitor.visitGroup(node, context);
+        case 4 /* Animate */:
+            return visitor.visitAnimate(node, context);
+        case 5 /* Keyframes */:
+            return visitor.visitKeyframes(node, context);
+        case 6 /* Style */:
+            return visitor.visitStyle(node, context);
+        case 8 /* Reference */:
+            return visitor.visitReference(node, context);
+        case 9 /* AnimateChild */:
+            return visitor.visitAnimateChild(node, context);
+        case 10 /* AnimateRef */:
+            return visitor.visitAnimateRef(node, context);
+        case 11 /* Query */:
+            return visitor.visitQuery(node, context);
+        case 12 /* Stagger */:
+            return visitor.visitStagger(node, context);
+        default:
+            throw new Error("Unable to resolve animation metadata node #" + node.type);
+    }
+}
+/**
+ * @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
+ */
+var ANY_STATE = '*';
+/**
+ * @param {?} transitionValue
+ * @param {?} errors
+ * @return {?}
+ */
+function parseTransitionExpr(transitionValue, errors) {
+    var /** @type {?} */ expressions = [];
+    if (typeof transitionValue == 'string') {
+        ((transitionValue))
+            .split(/\s*,\s*/)
+            .forEach(function (str) { return parseInnerTransitionStr(str, expressions, errors); });
+    }
+    else {
+        expressions.push(/** @type {?} */ (transitionValue));
+    }
+    return expressions;
+}
+/**
+ * @param {?} eventStr
+ * @param {?} expressions
+ * @param {?} errors
+ * @return {?}
+ */
+function parseInnerTransitionStr(eventStr, expressions, errors) {
+    if (eventStr[0] == ':') {
+        eventStr = parseAnimationAlias(eventStr, errors);
+    }
+    var /** @type {?} */ match = eventStr.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);
+    if (match == null || match.length < 4) {
+        errors.push("The provided transition expression \"" + eventStr + "\" is not supported");
+        return expressions;
+    }
+    var /** @type {?} */ fromState = match[1];
+    var /** @type {?} */ separator = match[2];
+    var /** @type {?} */ toState = match[3];
+    expressions.push(makeLambdaFromStates(fromState, toState));
+    var /** @type {?} */ isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;
+    if (separator[0] == '<' && !isFullAnyStateExpr) {
+        expressions.push(makeLambdaFromStates(toState, fromState));
+    }
+}
+/**
+ * @param {?} alias
+ * @param {?} errors
+ * @return {?}
+ */
+function parseAnimationAlias(alias, errors) {
+    switch (alias) {
+        case ':enter':
+            return 'void => *';
+        case ':leave':
+            return '* => void';
+        default:
+            errors.push("The transition alias value \"" + alias + "\" is not supported");
+            return '* => *';
+    }
+}
+var TRUE_BOOLEAN_VALUES = new Set();
+TRUE_BOOLEAN_VALUES.add('true');
+TRUE_BOOLEAN_VALUES.add('1');
+var FALSE_BOOLEAN_VALUES = new Set();
+FALSE_BOOLEAN_VALUES.add('false');
+FALSE_BOOLEAN_VALUES.add('0');
+/**
+ * @param {?} lhs
+ * @param {?} rhs
+ * @return {?}
+ */
+function makeLambdaFromStates(lhs, rhs) {
+    var /** @type {?} */ LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);
+    var /** @type {?} */ RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);
+    return function (fromState, toState) {
+        var /** @type {?} */ lhsMatch = lhs == ANY_STATE || lhs == fromState;
+        var /** @type {?} */ rhsMatch = rhs == ANY_STATE || rhs == toState;
+        if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {
+            lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);
+        }
+        if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {
+            rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);
+        }
+        return lhsMatch && rhsMatch;
+    };
+}
+/**
+ * @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
+ */
+var SELF_TOKEN = ':self';
+var SELF_TOKEN_REGEX = new RegExp("s*" + SELF_TOKEN + "s*,?", 'g');
+/**
+ * @param {?} metadata
+ * @param {?} errors
+ * @return {?}
+ */
+function buildAnimationAst(metadata, errors) {
+    return new AnimationAstBuilderVisitor().build(metadata, errors);
+}
+var LEAVE_TOKEN = ':leave';
+var LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');
+var ENTER_TOKEN = ':enter';
+var ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');
+var ROOT_SELECTOR = '';
+var AnimationAstBuilderVisitor = (function () {
+    function AnimationAstBuilderVisitor() {
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} errors
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.build = function (metadata, errors) {
+        var /** @type {?} */ context = new AnimationAstBuilderContext(errors);
+        this._resetContextStyleTimingState(context);
+        return (visitDslNode(this, normalizeAnimationEntry(metadata), context));
+    };
+    /**
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype._resetContextStyleTimingState = function (context) {
+        context.currentQuerySelector = ROOT_SELECTOR;
+        context.collectedStyles = {};
+        context.collectedStyles[ROOT_SELECTOR] = {};
+        context.currentTime = 0;
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitTrigger = function (metadata, context) {
+        var _this = this;
+        var /** @type {?} */ queryCount = context.queryCount = 0;
+        var /** @type {?} */ depCount = context.depCount = 0;
+        var /** @type {?} */ states = [];
+        var /** @type {?} */ transitions = [];
+        metadata.definitions.forEach(function (def) {
+            _this._resetContextStyleTimingState(context);
+            if (def.type == 0 /* State */) {
+                var /** @type {?} */ stateDef_1 = (def);
+                var /** @type {?} */ name = stateDef_1.name;
+                name.split(/\s*,\s*/).forEach(function (n) {
+                    stateDef_1.name = n;
+                    states.push(_this.visitState(stateDef_1, context));
+                });
+                stateDef_1.name = name;
+            }
+            else if (def.type == 1 /* Transition */) {
+                var /** @type {?} */ transition = _this.visitTransition(/** @type {?} */ (def), context);
+                queryCount += transition.queryCount;
+                depCount += transition.depCount;
+                transitions.push(transition);
+            }
+            else {
+                context.errors.push('only state() and transition() definitions can sit inside of a trigger()');
+            }
+        });
+        return {
+            type: 7 /* Trigger */,
+            name: metadata.name, states: states, transitions: transitions, queryCount: queryCount, depCount: depCount,
+            options: null
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitState = function (metadata, context) {
+        var /** @type {?} */ styleAst = this.visitStyle(metadata.styles, context);
+        var /** @type {?} */ astParams = (metadata.options && metadata.options.params) || null;
+        if (styleAst.containsDynamicStyles) {
+            var /** @type {?} */ missingSubs_1 = new Set();
+            var /** @type {?} */ params_1 = astParams || {};
+            styleAst.styles.forEach(function (value) {
+                if (isObject(value)) {
+                    var /** @type {?} */ stylesObj_1 = (value);
+                    Object.keys(stylesObj_1).forEach(function (prop) {
+                        extractStyleParams(stylesObj_1[prop]).forEach(function (sub) {
+                            if (!params_1.hasOwnProperty(sub)) {
+                                missingSubs_1.add(sub);
+                            }
+                        });
+                    });
+                }
+            });
+            if (missingSubs_1.size) {
+                var /** @type {?} */ missingSubsArr = iteratorToArray(missingSubs_1.values());
+                context.errors.push("state(\"" + metadata.name + "\", ...) must define default values for all the following style substitutions: " + missingSubsArr.join(', '));
+            }
+        }
+        return {
+            type: 0 /* State */,
+            name: metadata.name,
+            style: styleAst,
+            options: astParams ? { params: astParams } : null
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitTransition = function (metadata, context) {
+        context.queryCount = 0;
+        context.depCount = 0;
+        var /** @type {?} */ animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);
+        var /** @type {?} */ matchers = parseTransitionExpr(metadata.expr, context.errors);
+        return {
+            type: 1 /* Transition */,
+            matchers: matchers,
+            animation: animation,
+            queryCount: context.queryCount,
+            depCount: context.depCount,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitSequence = function (metadata, context) {
+        var _this = this;
+        return {
+            type: 2 /* Sequence */,
+            steps: metadata.steps.map(function (s) { return visitDslNode(_this, s, context); }),
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitGroup = function (metadata, context) {
+        var _this = this;
+        var /** @type {?} */ currentTime = context.currentTime;
+        var /** @type {?} */ furthestTime = 0;
+        var /** @type {?} */ steps = metadata.steps.map(function (step) {
+            context.currentTime = currentTime;
+            var /** @type {?} */ innerAst = visitDslNode(_this, step, context);
+            furthestTime = Math.max(furthestTime, context.currentTime);
+            return innerAst;
+        });
+        context.currentTime = furthestTime;
+        return {
+            type: 3 /* Group */,
+            steps: steps,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitAnimate = function (metadata, context) {
+        var /** @type {?} */ timingAst = constructTimingAst(metadata.timings, context.errors);
+        context.currentAnimateTimings = timingAst;
+        var /** @type {?} */ styleAst;
+        var /** @type {?} */ styleMetadata = metadata.styles ? metadata.styles : _angular_animations.style({});
+        if (styleMetadata.type == 5 /* Keyframes */) {
+            styleAst = this.visitKeyframes(/** @type {?} */ (styleMetadata), context);
+        }
+        else {
+            var /** @type {?} */ styleMetadata_1 = (metadata.styles);
+            var /** @type {?} */ isEmpty = false;
+            if (!styleMetadata_1) {
+                isEmpty = true;
+                var /** @type {?} */ newStyleData = {};
+                if (timingAst.easing) {
+                    newStyleData['easing'] = timingAst.easing;
+                }
+                styleMetadata_1 = _angular_animations.style(newStyleData);
+            }
+            context.currentTime += timingAst.duration + timingAst.delay;
+            var /** @type {?} */ _styleAst = this.visitStyle(styleMetadata_1, context);
+            _styleAst.isEmptyStep = isEmpty;
+            styleAst = _styleAst;
+        }
+        context.currentAnimateTimings = null;
+        return {
+            type: 4 /* Animate */,
+            timings: timingAst,
+            style: styleAst,
+            options: null
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitStyle = function (metadata, context) {
+        var /** @type {?} */ ast = this._makeStyleAst(metadata, context);
+        this._validateStyleAst(ast, context);
+        return ast;
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype._makeStyleAst = function (metadata, context) {
+        var /** @type {?} */ styles = [];
+        if (Array.isArray(metadata.styles)) {
+            ((metadata.styles)).forEach(function (styleTuple) {
+                if (typeof styleTuple == 'string') {
+                    if (styleTuple == _angular_animations.AUTO_STYLE) {
+                        styles.push(/** @type {?} */ (styleTuple));
+                    }
+                    else {
+                        context.errors.push("The provided style string value " + styleTuple + " is not allowed.");
+                    }
+                }
+                else {
+                    styles.push(/** @type {?} */ (styleTuple));
+                }
+            });
+        }
+        else {
+            styles.push(metadata.styles);
+        }
+        var /** @type {?} */ containsDynamicStyles = false;
+        var /** @type {?} */ collectedEasing = null;
+        styles.forEach(function (styleData) {
+            if (isObject(styleData)) {
+                var /** @type {?} */ styleMap = (styleData);
+                var /** @type {?} */ easing = styleMap['easing'];
+                if (easing) {
+                    collectedEasing = (easing);
+                    delete styleMap['easing'];
+                }
+                if (!containsDynamicStyles) {
+                    for (var /** @type {?} */ prop in styleMap) {
+                        var /** @type {?} */ value = styleMap[prop];
+                        if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {
+                            containsDynamicStyles = true;
+                            break;
+                        }
+                    }
+                }
+            }
+        });
+        return {
+            type: 6 /* Style */,
+            styles: styles,
+            easing: collectedEasing,
+            offset: metadata.offset, containsDynamicStyles: containsDynamicStyles,
+            options: null
+        };
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype._validateStyleAst = function (ast, context) {
+        var /** @type {?} */ timings = context.currentAnimateTimings;
+        var /** @type {?} */ endTime = context.currentTime;
+        var /** @type {?} */ startTime = context.currentTime;
+        if (timings && startTime > 0) {
+            startTime -= timings.duration + timings.delay;
+        }
+        ast.styles.forEach(function (tuple) {
+            if (typeof tuple == 'string')
+                return;
+            Object.keys(tuple).forEach(function (prop) {
+                var /** @type {?} */ collectedStyles = context.collectedStyles[((context.currentQuerySelector))];
+                var /** @type {?} */ collectedEntry = collectedStyles[prop];
+                var /** @type {?} */ updateCollectedStyle = true;
+                if (collectedEntry) {
+                    if (startTime != endTime && startTime >= collectedEntry.startTime &&
+                        endTime <= collectedEntry.endTime) {
+                        context.errors.push("The CSS property \"" + prop + "\" that exists between the times of \"" + collectedEntry.startTime + "ms\" and \"" + collectedEntry.endTime + "ms\" is also being animated in a parallel animation between the times of \"" + startTime + "ms\" and \"" + endTime + "ms\"");
+                        updateCollectedStyle = false;
+                    }
+                    // we always choose the smaller start time value since we
+                    // want to have a record of the entire animation window where
+                    // the style property is being animated in between
+                    startTime = collectedEntry.startTime;
+                }
+                if (updateCollectedStyle) {
+                    collectedStyles[prop] = { startTime: startTime, endTime: endTime };
+                }
+                if (context.options) {
+                    validateStyleParams(tuple[prop], context.options, context.errors);
+                }
+            });
+        });
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitKeyframes = function (metadata, context) {
+        var _this = this;
+        var /** @type {?} */ ast = { type: 5 /* Keyframes */, styles: [], options: null };
+        if (!context.currentAnimateTimings) {
+            context.errors.push("keyframes() must be placed inside of a call to animate()");
+            return ast;
+        }
+        var /** @type {?} */ MAX_KEYFRAME_OFFSET = 1;
+        var /** @type {?} */ totalKeyframesWithOffsets = 0;
+        var /** @type {?} */ offsets = [];
+        var /** @type {?} */ offsetsOutOfOrder = false;
+        var /** @type {?} */ keyframesOutOfRange = false;
+        var /** @type {?} */ previousOffset = 0;
+        var /** @type {?} */ keyframes = metadata.steps.map(function (styles) {
+            var /** @type {?} */ style$$1 = _this._makeStyleAst(styles, context);
+            var /** @type {?} */ offsetVal = style$$1.offset != null ? style$$1.offset : consumeOffset(style$$1.styles);
+            var /** @type {?} */ offset = 0;
+            if (offsetVal != null) {
+                totalKeyframesWithOffsets++;
+                offset = style$$1.offset = offsetVal;
+            }
+            keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;
+            offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;
+            previousOffset = offset;
+            offsets.push(offset);
+            return style$$1;
+        });
+        if (keyframesOutOfRange) {
+            context.errors.push("Please ensure that all keyframe offsets are between 0 and 1");
+        }
+        if (offsetsOutOfOrder) {
+            context.errors.push("Please ensure that all keyframe offsets are in order");
+        }
+        var /** @type {?} */ length = metadata.steps.length;
+        var /** @type {?} */ generatedOffset = 0;
+        if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {
+            context.errors.push("Not all style() steps within the declared keyframes() contain offsets");
+        }
+        else if (totalKeyframesWithOffsets == 0) {
+            generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);
+        }
+        var /** @type {?} */ limit = length - 1;
+        var /** @type {?} */ currentTime = context.currentTime;
+        var /** @type {?} */ currentAnimateTimings = ((context.currentAnimateTimings));
+        var /** @type {?} */ animateDuration = currentAnimateTimings.duration;
+        keyframes.forEach(function (kf, i) {
+            var /** @type {?} */ offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];
+            var /** @type {?} */ durationUpToThisFrame = offset * animateDuration;
+            context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;
+            currentAnimateTimings.duration = durationUpToThisFrame;
+            _this._validateStyleAst(kf, context);
+            kf.offset = offset;
+            ast.styles.push(kf);
+        });
+        return ast;
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitReference = function (metadata, context) {
+        return {
+            type: 8 /* Reference */,
+            animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitAnimateChild = function (metadata, context) {
+        context.depCount++;
+        return {
+            type: 9 /* AnimateChild */,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitAnimateRef = function (metadata, context) {
+        return {
+            type: 10 /* AnimateRef */,
+            animation: this.visitReference(metadata.animation, context),
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitQuery = function (metadata, context) {
+        var /** @type {?} */ parentSelector = ((context.currentQuerySelector));
+        var /** @type {?} */ options = ((metadata.options || {}));
+        context.queryCount++;
+        context.currentQuery = metadata;
+        var _a = normalizeSelector(metadata.selector), selector = _a[0], includeSelf = _a[1];
+        context.currentQuerySelector =
+            parentSelector.length ? (parentSelector + ' ' + selector) : selector;
+        getOrSetAsInMap(context.collectedStyles, context.currentQuerySelector, {});
+        var /** @type {?} */ animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);
+        context.currentQuery = null;
+        context.currentQuerySelector = parentSelector;
+        return {
+            type: 11 /* Query */,
+            selector: selector,
+            limit: options.limit || 0,
+            optional: !!options.optional, includeSelf: includeSelf, animation: animation,
+            originalSelector: metadata.selector,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitStagger = function (metadata, context) {
+        if (!context.currentQuery) {
+            context.errors.push("stagger() can only be used inside of query()");
+        }
+        var /** @type {?} */ timings = metadata.timings === 'full' ?
+            { duration: 0, delay: 0, easing: 'full' } :
+            resolveTiming(metadata.timings, context.errors, true);
+        return {
+            type: 12 /* Stagger */,
+            animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context), timings: timings,
+            options: null
+        };
+    };
+    return AnimationAstBuilderVisitor;
+}());
+/**
+ * @param {?} selector
+ * @return {?}
+ */
+function normalizeSelector(selector) {
+    var /** @type {?} */ hasAmpersand = selector.split(/\s*,\s*/).find(function (token) { return token == SELF_TOKEN; }) ? true : false;
+    if (hasAmpersand) {
+        selector = selector.replace(SELF_TOKEN_REGEX, '');
+    }
+    selector = selector.replace(ENTER_TOKEN_REGEX, ENTER_SELECTOR)
+        .replace(LEAVE_TOKEN_REGEX, LEAVE_SELECTOR)
+        .replace(/@\*/g, NG_TRIGGER_SELECTOR)
+        .replace(/@\w+/g, function (match) { return NG_TRIGGER_SELECTOR + '-' + match.substr(1); })
+        .replace(/:animating/g, NG_ANIMATING_SELECTOR);
+    return [selector, hasAmpersand];
+}
+/**
+ * @param {?} obj
+ * @return {?}
+ */
+function normalizeParams(obj) {
+    return obj ? copyObj(obj) : null;
+}
+var AnimationAstBuilderContext = (function () {
+    /**
+     * @param {?} errors
+     */
+    function AnimationAstBuilderContext(errors) {
+        this.errors = errors;
+        this.queryCount = 0;
+        this.depCount = 0;
+        this.currentTransition = null;
+        this.currentQuery = null;
+        this.currentQuerySelector = null;
+        this.currentAnimateTimings = null;
+        this.currentTime = 0;
+        this.collectedStyles = {};
+        this.options = null;
+    }
+    return AnimationAstBuilderContext;
+}());
+/**
+ * @param {?} styles
+ * @return {?}
+ */
+function consumeOffset(styles) {
+    if (typeof styles == 'string')
+        return null;
+    var /** @type {?} */ offset = null;
+    if (Array.isArray(styles)) {
+        styles.forEach(function (styleTuple) {
+            if (isObject(styleTuple) && styleTuple.hasOwnProperty('offset')) {
+                var /** @type {?} */ obj = (styleTuple);
+                offset = parseFloat(/** @type {?} */ (obj['offset']));
+                delete obj['offset'];
+            }
+        });
+    }
+    else if (isObject(styles) && styles.hasOwnProperty('offset')) {
+        var /** @type {?} */ obj = (styles);
+        offset = parseFloat(/** @type {?} */ (obj['offset']));
+        delete obj['offset'];
+    }
+    return offset;
+}
+/**
+ * @param {?} value
+ * @return {?}
+ */
+function isObject(value) {
+    return !Array.isArray(value) && typeof value == 'object';
+}
+/**
+ * @param {?} value
+ * @param {?} errors
+ * @return {?}
+ */
+function constructTimingAst(value, errors) {
+    var /** @type {?} */ timings = null;
+    if (value.hasOwnProperty('duration')) {
+        timings = (value);
+    }
+    else if (typeof value == 'number') {
+        var /** @type {?} */ duration = resolveTiming(/** @type {?} */ (value), errors).duration;
+        return makeTimingAst(/** @type {?} */ (duration), 0, '');
+    }
+    var /** @type {?} */ strValue = (value);
+    var /** @type {?} */ isDynamic = strValue.split(/\s+/).some(function (v) { return v.charAt(0) == '{' && v.charAt(1) == '{'; });
+    if (isDynamic) {
+        var /** @type {?} */ ast = (makeTimingAst(0, 0, ''));
+        ast.dynamic = true;
+        ast.strValue = strValue;
+        return (ast);
+    }
+    timings = timings || resolveTiming(strValue, errors);
+    return makeTimingAst(timings.duration, timings.delay, timings.easing);
+}
+/**
+ * @param {?} options
+ * @return {?}
+ */
+function normalizeAnimationOptions(options) {
+    if (options) {
+        options = copyObj(options);
+        if (options['params']) {
+            options['params'] = ((normalizeParams(options['params'])));
+        }
+    }
+    else {
+        options = {};
+    }
+    return options;
+}
+/**
+ * @param {?} duration
+ * @param {?} delay
+ * @param {?} easing
+ * @return {?}
+ */
+function makeTimingAst(duration, delay, easing) {
+    return { duration: duration, delay: delay, easing: easing };
+}
+/**
+ * @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
+ */
+/**
+ * @param {?} element
+ * @param {?} keyframes
+ * @param {?} preStyleProps
+ * @param {?} postStyleProps
+ * @param {?} duration
+ * @param {?} delay
+ * @param {?=} easing
+ * @param {?=} subTimeline
+ * @return {?}
+ */
+function createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing, subTimeline) {
+    if (easing === void 0) { easing = null; }
+    if (subTimeline === void 0) { subTimeline = false; }
+    return {
+        type: 1 /* TimelineAnimation */,
+        element: element,
+        keyframes: keyframes,
+        preStyleProps: preStyleProps,
+        postStyleProps: postStyleProps,
+        duration: duration,
+        delay: delay,
+        totalTime: duration + delay, easing: easing, subTimeline: subTimeline
+    };
+}
+/**
+ * @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
+ */
+var ElementInstructionMap = (function () {
+    function ElementInstructionMap() {
+        this._map = new Map();
+    }
+    /**
+     * @param {?} element
+     * @return {?}
+     */
+    ElementInstructionMap.prototype.consume = function (element) {
+        var /** @type {?} */ instructions = this._map.get(element);
+        if (instructions) {
+            this._map.delete(element);
+        }
+        else {
+            instructions = [];
+        }
+        return instructions;
+    };
+    /**
+     * @param {?} element
+     * @param {?} instructions
+     * @return {?}
+     */
+    ElementInstructionMap.prototype.append = function (element, instructions) {
+        var /** @type {?} */ existingInstructions = this._map.get(element);
+        if (!existingInstructions) {
+            this._map.set(element, existingInstructions = []);
+        }
+        existingInstructions.push.apply(existingInstructions, instructions);
+    };
+    /**
+     * @param {?} element
+     * @return {?}
+     */
+    ElementInstructionMap.prototype.has = function (element) { return this._map.has(element); };
+    /**
+     * @return {?}
+     */
+    ElementInstructionMap.prototype.clear = function () { this._map.clear(); };
+    return ElementInstructionMap;
+}());
+/**
+ * @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
+ */
+var ONE_FRAME_IN_MILLISECONDS = 1;
+/**
+ * @param {?} driver
+ * @param {?} rootElement
+ * @param {?} ast
+ * @param {?=} startingStyles
+ * @param {?=} finalStyles
+ * @param {?=} options
+ * @param {?=} subInstructions
+ * @param {?=} errors
+ * @return {?}
+ */
+function buildAnimationTimelines(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) {
+    if (startingStyles === void 0) { startingStyles = {}; }
+    if (finalStyles === void 0) { finalStyles = {}; }
+    if (errors === void 0) { errors = []; }
+    return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors);
+}
+var AnimationTimelineBuilderVisitor = (function () {
+    function AnimationTimelineBuilderVisitor() {
+    }
+    /**
+     * @param {?} driver
+     * @param {?} rootElement
+     * @param {?} ast
+     * @param {?} startingStyles
+     * @param {?} finalStyles
+     * @param {?} options
+     * @param {?=} subInstructions
+     * @param {?=} errors
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.buildKeyframes = function (driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) {
+        if (errors === void 0) { errors = []; }
+        subInstructions = subInstructions || new ElementInstructionMap();
+        var /** @type {?} */ context = new AnimationTimelineContext(driver, rootElement, subInstructions, errors, []);
+        context.options = options;
+        context.currentTimeline.setStyles([startingStyles], null, context.errors, options);
+        visitDslNode(this, ast, context);
+        // this checks to see if an actual animation happened
+        var /** @type {?} */ timelines = context.timelines.filter(function (timeline) { return timeline.containsAnimation(); });
+        if (timelines.length && Object.keys(finalStyles).length) {
+            var /** @type {?} */ tl = timelines[timelines.length - 1];
+            if (!tl.allowOnlyTimelineStyles()) {
+                tl.setStyles([finalStyles], null, context.errors, options);
+            }
+        }
+        return timelines.length ? timelines.map(function (timeline) { return timeline.buildKeyframes(); }) :
+            [createTimelineInstruction(rootElement, [], [], [], 0, 0, '', false)];
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitTrigger = function (ast, context) {
+        // these values are not visited in this AST
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitState = function (ast, context) {
+        // these values are not visited in this AST
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitTransition = function (ast, context) {
+        // these values are not visited in this AST
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitAnimateChild = function (ast, context) {
+        var /** @type {?} */ elementInstructions = context.subInstructions.consume(context.element);
+        if (elementInstructions) {
+            var /** @type {?} */ innerContext = context.createSubContext(ast.options);
+            var /** @type {?} */ startTime = context.currentTimeline.currentTime;
+            var /** @type {?} */ endTime = this._visitSubInstructions(elementInstructions, innerContext, /** @type {?} */ (innerContext.options));
+            if (startTime != endTime) {
+                // we do this on the upper context because we created a sub context for
+                // the sub child animations
+                context.transformIntoNewTimeline(endTime);
+            }
+        }
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitAnimateRef = function (ast, context) {
+        var /** @type {?} */ innerContext = context.createSubContext(ast.options);
+        innerContext.transformIntoNewTimeline();
+        this.visitReference(ast.animation, innerContext);
+        context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} instructions
+     * @param {?} context
+     * @param {?} options
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype._visitSubInstructions = function (instructions, context, options) {
+        var /** @type {?} */ startTime = context.currentTimeline.currentTime;
+        var /** @type {?} */ furthestTime = startTime;
+        // this is a special-case for when a user wants to skip a sub
+        // animation from being fired entirely.
+        var /** @type {?} */ duration = options.duration != null ? resolveTimingValue(options.duration) : null;
+        var /** @type {?} */ delay = options.delay != null ? resolveTimingValue(options.delay) : null;
+        if (duration !== 0) {
+            instructions.forEach(function (instruction) {
+                var /** @type {?} */ instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);
+                furthestTime =
+                    Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);
+            });
+        }
+        return furthestTime;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitReference = function (ast, context) {
+        context.updateOptions(ast.options, true);
+        visitDslNode(this, ast.animation, context);
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitSequence = function (ast, context) {
+        var _this = this;
+        var /** @type {?} */ subContextCount = context.subContextCount;
+        var /** @type {?} */ ctx = context;
+        var /** @type {?} */ options = ast.options;
+        if (options && (options.params || options.delay)) {
+            ctx = context.createSubContext(options);
+            ctx.transformIntoNewTimeline();
+            if (options.delay != null) {
+                if (ctx.previousNode.type == 6 /* Style */) {
+                    ctx.currentTimeline.snapshotCurrentStyles();
+                    ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+                }
+                var /** @type {?} */ delay = resolveTimingValue(options.delay);
+                ctx.delayNextStep(delay);
+            }
+        }
+        if (ast.steps.length) {
+            ast.steps.forEach(function (s) { return visitDslNode(_this, s, ctx); });
+            // this is here just incase the inner steps only contain or end with a style() call
+            ctx.currentTimeline.applyStylesToKeyframe();
+            // this means that some animation function within the sequence
+            // ended up creating a sub timeline (which means the current
+            // timeline cannot overlap with the contents of the sequence)
+            if (ctx.subContextCount > subContextCount) {
+                ctx.transformIntoNewTimeline();
+            }
+        }
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitGroup = function (ast, context) {
+        var _this = this;
+        var /** @type {?} */ innerTimelines = [];
+        var /** @type {?} */ furthestTime = context.currentTimeline.currentTime;
+        var /** @type {?} */ delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;
+        ast.steps.forEach(function (s) {
+            var /** @type {?} */ innerContext = context.createSubContext(ast.options);
+            if (delay) {
+                innerContext.delayNextStep(delay);
+            }
+            visitDslNode(_this, s, innerContext);
+            furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);
+            innerTimelines.push(innerContext.currentTimeline);
+        });
+        // this operation is run after the AST loop because otherwise
+        // if the parent timeline's collected styles were updated then
+        // it would pass in invalid data into the new-to-be forked items
+        innerTimelines.forEach(function (timeline) { return context.currentTimeline.mergeTimelineCollectedStyles(timeline); });
+        context.transformIntoNewTimeline(furthestTime);
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype._visitTiming = function (ast, context) {
+        if (((ast)).dynamic) {
+            var /** @type {?} */ strValue = ((ast)).strValue;
+            var /** @type {?} */ timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;
+            return resolveTiming(timingValue, context.errors);
+        }
+        else {
+            return { duration: ast.duration, delay: ast.delay, easing: ast.easing };
+        }
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitAnimate = function (ast, context) {
+        var /** @type {?} */ timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);
+        var /** @type {?} */ timeline = context.currentTimeline;
+        if (timings.delay) {
+            context.incrementTime(timings.delay);
+            timeline.snapshotCurrentStyles();
+        }
+        var /** @type {?} */ style$$1 = ast.style;
+        if (style$$1.type == 5 /* Keyframes */) {
+            this.visitKeyframes(style$$1, context);
+        }
+        else {
+            context.incrementTime(timings.duration);
+            this.visitStyle(/** @type {?} */ (style$$1), context);
+            timeline.applyStylesToKeyframe();
+        }
+        context.currentAnimateTimings = null;
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitStyle = function (ast, context) {
+        var /** @type {?} */ timeline = context.currentTimeline;
+        var /** @type {?} */ timings = ((context.currentAnimateTimings));
+        // this is a special case for when a style() call
+        // directly follows  an animate() call (but not inside of an animate() call)
+        if (!timings && timeline.getCurrentStyleProperties().length) {
+            timeline.forwardFrame();
+        }
+        var /** @type {?} */ easing = (timings && timings.easing) || ast.easing;
+        if (ast.isEmptyStep) {
+            timeline.applyEmptyStep(easing);
+        }
+        else {
+            timeline.setStyles(ast.styles, easing, context.errors, context.options);
+        }
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitKeyframes = function (ast, context) {
+        var /** @type {?} */ currentAnimateTimings = ((context.currentAnimateTimings));
+        var /** @type {?} */ startTime = (((context.currentTimeline))).duration;
+        var /** @type {?} */ duration = currentAnimateTimings.duration;
+        var /** @type {?} */ innerContext = context.createSubContext();
+        var /** @type {?} */ innerTimeline = innerContext.currentTimeline;
+        innerTimeline.easing = currentAnimateTimings.easing;
+        ast.styles.forEach(function (step) {
+            var /** @type {?} */ offset = step.offset || 0;
+            innerTimeline.forwardTime(offset * duration);
+            innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);
+            innerTimeline.applyStylesToKeyframe();
+        });
+        // this will ensure that the parent timeline gets all the styles from
+        // the child even if the new timeline below is not used
+        context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);
+        // we do this because the window between this timeline and the sub timeline
+        // should ensure that the styles within are exactly the same as they were before
+        context.transformIntoNewTimeline(startTime + duration);
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitQuery = function (ast, context) {
+        var _this = this;
+        // in the event that the first step before this is a style step we need
+        // to ensure the styles are applied before the children are animated
+        var /** @type {?} */ startTime = context.currentTimeline.currentTime;
+        var /** @type {?} */ options = ((ast.options || {}));
+        var /** @type {?} */ delay = options.delay ? resolveTimingValue(options.delay) : 0;
+        if (delay && (context.previousNode.type === 6 /* Style */ ||
+            (startTime == 0 && context.currentTimeline.getCurrentStyleProperties().length))) {
+            context.currentTimeline.snapshotCurrentStyles();
+            context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+        }
+        var /** @type {?} */ furthestTime = startTime;
+        var /** @type {?} */ elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);
+        context.currentQueryTotal = elms.length;
+        var /** @type {?} */ sameElementTimeline = null;
+        elms.forEach(function (element, i) {
+            context.currentQueryIndex = i;
+            var /** @type {?} */ innerContext = context.createSubContext(ast.options, element);
+            if (delay) {
+                innerContext.delayNextStep(delay);
+            }
+            if (element === context.element) {
+                sameElementTimeline = innerContext.currentTimeline;
+            }
+            visitDslNode(_this, ast.animation, innerContext);
+            // this is here just incase the inner steps only contain or end
+            // with a style() call (which is here to signal that this is a preparatory
+            // call to style an element before it is animated again)
+            innerContext.currentTimeline.applyStylesToKeyframe();
+            var /** @type {?} */ endTime = innerContext.currentTimeline.currentTime;
+            furthestTime = Math.max(furthestTime, endTime);
+        });
+        context.currentQueryIndex = 0;
+        context.currentQueryTotal = 0;
+        context.transformIntoNewTimeline(furthestTime);
+        if (sameElementTimeline) {
+            context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);
+            context.currentTimeline.snapshotCurrentStyles();
+        }
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitStagger = function (ast, context) {
+        var /** @type {?} */ parentContext = ((context.parentContext));
+        var /** @type {?} */ tl = context.currentTimeline;
+        var /** @type {?} */ timings = ast.timings;
+        var /** @type {?} */ duration = Math.abs(timings.duration);
+        var /** @type {?} */ maxTime = duration * (context.currentQueryTotal - 1);
+        var /** @type {?} */ delay = duration * context.currentQueryIndex;
+        var /** @type {?} */ staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;
+        switch (staggerTransformer) {
+            case 'reverse':
+                delay = maxTime - delay;
+                break;
+            case 'full':
+                delay = parentContext.currentStaggerTime;
+                break;
+        }
+        var /** @type {?} */ timeline = context.currentTimeline;
+        if (delay) {
+            timeline.delayNextStep(delay);
+        }
+        var /** @type {?} */ startingTime = timeline.currentTime;
+        visitDslNode(this, ast.animation, context);
+        context.previousNode = ast;
+        // time = duration + delay
+        // the reason why this computation is so complex is because
+        // the inner timeline may either have a delay value or a stretched
+        // keyframe depending on if a subtimeline is not used or is used.
+        parentContext.currentStaggerTime =
+            (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);
+    };
+    return AnimationTimelineBuilderVisitor;
+}());
+var DEFAULT_NOOP_PREVIOUS_NODE = ({});
+var AnimationTimelineContext = (function () {
+    /**
+     * @param {?} _driver
+     * @param {?} element
+     * @param {?} subInstructions
+     * @param {?} errors
+     * @param {?} timelines
+     * @param {?=} initialTimeline
+     */
+    function AnimationTimelineContext(_driver, element, subInstructions, errors, timelines, initialTimeline) {
+        this._driver = _driver;
+        this.element = element;
+        this.subInstructions = subInstructions;
+        this.errors = errors;
+        this.timelines = timelines;
+        this.parentContext = null;
+        this.currentAnimateTimings = null;
+        this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+        this.subContextCount = 0;
+        this.options = {};
+        this.currentQueryIndex = 0;
+        this.currentQueryTotal = 0;
+        this.currentStaggerTime = 0;
+        this.currentTimeline = initialTimeline || new TimelineBuilder(element, 0);
+        timelines.push(this.currentTimeline);
+    }
+    Object.defineProperty(AnimationTimelineContext.prototype, "params", {
+        /**
+         * @return {?}
+         */
+        get: function () { return this.options.params; },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @param {?} options
+     * @param {?=} skipIfExists
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.updateOptions = function (options, skipIfExists) {
+        var _this = this;
+        if (!options)
+            return;
+        var /** @type {?} */ newOptions = (options);
+        var /** @type {?} */ optionsToUpdate = this.options;
+        // NOTE: this will get patched up when other animation methods support duration overrides
+        if (newOptions.duration != null) {
+            ((optionsToUpdate)).duration = resolveTimingValue(newOptions.duration);
+        }
+        if (newOptions.delay != null) {
+            optionsToUpdate.delay = resolveTimingValue(newOptions.delay);
+        }
+        var /** @type {?} */ newParams = newOptions.params;
+        if (newParams) {
+            var /** @type {?} */ paramsToUpdate_1 = ((optionsToUpdate.params));
+            if (!paramsToUpdate_1) {
+                paramsToUpdate_1 = this.options.params = {};
+            }
+            Object.keys(newParams).forEach(function (name) {
+                if (!skipIfExists || !paramsToUpdate_1.hasOwnProperty(name)) {
+                    paramsToUpdate_1[name] = interpolateParams(newParams[name], paramsToUpdate_1, _this.errors);
+                }
+            });
+        }
+    };
+    /**
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype._copyOptions = function () {
+        var /** @type {?} */ options = {};
+        if (this.options) {
+            var /** @type {?} */ oldParams_1 = this.options.params;
+            if (oldParams_1) {
+                var /** @type {?} */ params_2 = options['params'] = {};
+                Object.keys(oldParams_1).forEach(function (name) { params_2[name] = oldParams_1[name]; });
+            }
+        }
+        return options;
+    };
+    /**
+     * @param {?=} options
+     * @param {?=} element
+     * @param {?=} newTime
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.createSubContext = function (options, element, newTime) {
+        if (options === void 0) { options = null; }
+        var /** @type {?} */ target = element || this.element;
+        var /** @type {?} */ context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));
+        context.previousNode = this.previousNode;
+        context.currentAnimateTimings = this.currentAnimateTimings;
+        context.options = this._copyOptions();
+        context.updateOptions(options);
+        context.currentQueryIndex = this.currentQueryIndex;
+        context.currentQueryTotal = this.currentQueryTotal;
+        context.parentContext = this;
+        this.subContextCount++;
+        return context;
+    };
+    /**
+     * @param {?=} newTime
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.transformIntoNewTimeline = function (newTime) {
+        this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+        this.currentTimeline = this.currentTimeline.fork(this.element, newTime);
+        this.timelines.push(this.currentTimeline);
+        return this.currentTimeline;
+    };
+    /**
+     * @param {?} instruction
+     * @param {?} duration
+     * @param {?} delay
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.appendInstructionToTimeline = function (instruction, duration, delay) {
+        var /** @type {?} */ updatedTimings = {
+            duration: duration != null ? duration : instruction.duration,
+            delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,
+            easing: ''
+        };
+        var /** @type {?} */ builder = new SubTimelineBuilder(instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);
+        this.timelines.push(builder);
+        return updatedTimings;
+    };
+    /**
+     * @param {?} time
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.incrementTime = function (time) {
+        this.currentTimeline.forwardTime(this.currentTimeline.duration + time);
+    };
+    /**
+     * @param {?} delay
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.delayNextStep = function (delay) {
+        // negative delays are not yet supported
+        if (delay > 0) {
+            this.currentTimeline.delayNextStep(delay);
+        }
+    };
+    /**
+     * @param {?} selector
+     * @param {?} originalSelector
+     * @param {?} limit
+     * @param {?} includeSelf
+     * @param {?} optional
+     * @param {?} errors
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.invokeQuery = function (selector, originalSelector, limit, includeSelf, optional, errors) {
+        var /** @type {?} */ results = [];
+        if (includeSelf) {
+            results.push(this.element);
+        }
+        if (selector.length > 0) {
+            var /** @type {?} */ multi = limit != 1;
+            var /** @type {?} */ elements = this._driver.query(this.element, selector, multi);
+            if (limit !== 0) {
+                elements = elements.slice(0, limit);
+            }
+            results.push.apply(results, elements);
+        }
+        if (!optional && results.length == 0) {
+            errors.push("`query(\"" + originalSelector + "\")` returned zero elements. (Use `query(\"" + originalSelector + "\", { optional: true })` if you wish to allow this.)");
+        }
+        return results;
+    };
+    return AnimationTimelineContext;
+}());
+var TimelineBuilder = (function () {
+    /**
+     * @param {?} element
+     * @param {?} startTime
+     * @param {?=} _elementTimelineStylesLookup
+     */
+    function TimelineBuilder(element, startTime, _elementTimelineStylesLookup) {
+        this.element = element;
+        this.startTime = startTime;
+        this._elementTimelineStylesLookup = _elementTimelineStylesLookup;
+        this.duration = 0;
+        this._previousKeyframe = {};
+        this._currentKeyframe = {};
+        this._keyframes = new Map();
+        this._styleSummary = {};
+        this._pendingStyles = {};
+        this._backFill = {};
+        this._currentEmptyStepKeyframe = null;
+        if (!this._elementTimelineStylesLookup) {
+            this._elementTimelineStylesLookup = new Map();
+        }
+        this._localTimelineStyles = Object.create(this._backFill, {});
+        this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);
+        if (!this._globalTimelineStyles) {
+            this._globalTimelineStyles = this._localTimelineStyles;
+            this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);
+        }
+        this._loadKeyframe();
+    }
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.containsAnimation = function () {
+        switch (this._keyframes.size) {
+            case 0:
+                return false;
+            case 1:
+                return this.getCurrentStyleProperties().length > 0;
+            default:
+                return true;
+        }
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.getCurrentStyleProperties = function () { return Object.keys(this._currentKeyframe); };
+    Object.defineProperty(TimelineBuilder.prototype, "currentTime", {
+        /**
+         * @return {?}
+         */
+        get: function () { return this.startTime + this.duration; },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @param {?} delay
+     * @return {?}
+     */
+    TimelineBuilder.prototype.delayNextStep = function (delay) {
+        // in the event that a style() step is placed right before a stagger()
+        // and that style() step is the very first style() value in the animation
+        // then we need to make a copy of the keyframe [0, copy, 1] so that the delay
+        // properly applies the style() values to work with the stagger...
+        var /** @type {?} */ hasPreStyleStep = this._keyframes.size == 1 && Object.keys(this._pendingStyles).length;
+        if (this.duration || hasPreStyleStep) {
+            this.forwardTime(this.currentTime + delay);
+            if (hasPreStyleStep) {
+                this.snapshotCurrentStyles();
+            }
+        }
+        else {
+            this.startTime += delay;
+        }
+    };
+    /**
+     * @param {?} element
+     * @param {?=} currentTime
+     * @return {?}
+     */
+    TimelineBuilder.prototype.fork = function (element, currentTime) {
+        this.applyStylesToKeyframe();
+        return new TimelineBuilder(element, currentTime || this.currentTime, this._elementTimelineStylesLookup);
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype._loadKeyframe = function () {
+        if (this._currentKeyframe) {
+            this._previousKeyframe = this._currentKeyframe;
+        }
+        this._currentKeyframe = ((this._keyframes.get(this.duration)));
+        if (!this._currentKeyframe) {
+            this._currentKeyframe = Object.create(this._backFill, {});
+            this._keyframes.set(this.duration, this._currentKeyframe);
+        }
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.forwardFrame = function () {
+        this.duration += ONE_FRAME_IN_MILLISECONDS;
+        this._loadKeyframe();
+    };
+    /**
+     * @param {?} time
+     * @return {?}
+     */
+    TimelineBuilder.prototype.forwardTime = function (time) {
+        this.applyStylesToKeyframe();
+        this.duration = time;
+        this._loadKeyframe();
+    };
+    /**
+     * @param {?} prop
+     * @param {?} value
+     * @return {?}
+     */
+    TimelineBuilder.prototype._updateStyle = function (prop, value) {
+        this._localTimelineStyles[prop] = value;
+        this._globalTimelineStyles[prop] = value;
+        this._styleSummary[prop] = { time: this.currentTime, value: value };
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.allowOnlyTimelineStyles = function () { return this._currentEmptyStepKeyframe !== this._currentKeyframe; };
+    /**
+     * @param {?} easing
+     * @return {?}
+     */
+    TimelineBuilder.prototype.applyEmptyStep = function (easing) {
+        var _this = this;
+        if (easing) {
+            this._previousKeyframe['easing'] = easing;
+        }
+        // special case for animate(duration):
+        // all missing styles are filled with a `*` value then
+        // if any destination styles are filled in later on the same
+        // keyframe then they will override the overridden styles
+        // We use `_globalTimelineStyles` here because there may be
+        // styles in previous keyframes that are not present in this timeline
+        Object.keys(this._globalTimelineStyles).forEach(function (prop) {
+            _this._backFill[prop] = _this._globalTimelineStyles[prop] || _angular_animations.AUTO_STYLE;
+            _this._currentKeyframe[prop] = _angular_animations.AUTO_STYLE;
+        });
+        this._currentEmptyStepKeyframe = this._currentKeyframe;
+    };
+    /**
+     * @param {?} input
+     * @param {?} easing
+     * @param {?} errors
+     * @param {?=} options
+     * @return {?}
+     */
+    TimelineBuilder.prototype.setStyles = function (input, easing, errors, options) {
+        var _this = this;
+        if (easing) {
+            this._previousKeyframe['easing'] = easing;
+        }
+        var /** @type {?} */ params = (options && options.params) || {};
+        var /** @type {?} */ styles = flattenStyles(input, this._globalTimelineStyles);
+        Object.keys(styles).forEach(function (prop) {
+            var /** @type {?} */ val = interpolateParams(styles[prop], params, errors);
+            _this._pendingStyles[prop] = val;
+            if (!_this._localTimelineStyles.hasOwnProperty(prop)) {
+                _this._backFill[prop] = _this._globalTimelineStyles.hasOwnProperty(prop) ?
+                    _this._globalTimelineStyles[prop] :
+                    _angular_animations.AUTO_STYLE;
+            }
+            _this._updateStyle(prop, val);
+        });
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.applyStylesToKeyframe = function () {
+        var _this = this;
+        var /** @type {?} */ styles = this._pendingStyles;
+        var /** @type {?} */ props = Object.keys(styles);
+        if (props.length == 0)
+            return;
+        this._pendingStyles = {};
+        props.forEach(function (prop) {
+            var /** @type {?} */ val = styles[prop];
+            _this._currentKeyframe[prop] = val;
+        });
+        Object.keys(this._localTimelineStyles).forEach(function (prop) {
+            if (!_this._currentKeyframe.hasOwnProperty(prop)) {
+                _this._currentKeyframe[prop] = _this._localTimelineStyles[prop];
+            }
+        });
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.snapshotCurrentStyles = function () {
+        var _this = this;
+        Object.keys(this._localTimelineStyles).forEach(function (prop) {
+            var /** @type {?} */ val = _this._localTimelineStyles[prop];
+            _this._pendingStyles[prop] = val;
+            _this._updateStyle(prop, val);
+        });
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.getFinalKeyframe = function () { return this._keyframes.get(this.duration); };
+    Object.defineProperty(TimelineBuilder.prototype, "properties", {
+        /**
+         * @return {?}
+         */
+        get: function () {
+            var /** @type {?} */ properties = [];
+            for (var /** @type {?} */ prop in this._currentKeyframe) {
+                properties.push(prop);
+            }
+            return properties;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @param {?} timeline
+     * @return {?}
+     */
+    TimelineBuilder.prototype.mergeTimelineCollectedStyles = function (timeline) {
+        var _this = this;
+        Object.keys(timeline._styleSummary).forEach(function (prop) {
+            var /** @type {?} */ details0 = _this._styleSummary[prop];
+            var /** @type {?} */ details1 = timeline._styleSummary[prop];
+            if (!details0 || details1.time > details0.time) {
+                _this._updateStyle(prop, details1.value);
+            }
+        });
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.buildKeyframes = function () {
+        var _this = this;
+        this.applyStylesToKeyframe();
+        var /** @type {?} */ preStyleProps = new Set();
+        var /** @type {?} */ postStyleProps = new Set();
+        var /** @type {?} */ isEmpty = this._keyframes.size === 1 && this.duration === 0;
+        var /** @type {?} */ finalKeyframes = [];
+        this._keyframes.forEach(function (keyframe, time) {
+            var /** @type {?} */ finalKeyframe = copyStyles(keyframe, true);
+            Object.keys(finalKeyframe).forEach(function (prop) {
+                var /** @type {?} */ value = finalKeyframe[prop];
+                if (value == _angular_animations.ɵPRE_STYLE) {
+                    preStyleProps.add(prop);
+                }
+                else if (value == _angular_animations.AUTO_STYLE) {
+                    postStyleProps.add(prop);
+                }
+            });
+            if (!isEmpty) {
+                finalKeyframe['offset'] = time / _this.duration;
+            }
+            finalKeyframes.push(finalKeyframe);
+        });
+        var /** @type {?} */ preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];
+        var /** @type {?} */ postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];
+        // special case for a 0-second animation (which is designed just to place styles onscreen)
+        if (isEmpty) {
+            var /** @type {?} */ kf0 = finalKeyframes[0];
+            var /** @type {?} */ kf1 = copyObj(kf0);
+            kf0['offset'] = 0;
+            kf1['offset'] = 1;
+            finalKeyframes = [kf0, kf1];
+        }
+        return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);
+    };
+    return TimelineBuilder;
+}());
+var SubTimelineBuilder = (function (_super) {
+    __extends(SubTimelineBuilder, _super);
+    /**
+     * @param {?} element
+     * @param {?} keyframes
+     * @param {?} preStyleProps
+     * @param {?} postStyleProps
+     * @param {?} timings
+     * @param {?=} _stretchStartingKeyframe
+     */
+    function SubTimelineBuilder(element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe) {
+        if (_stretchStartingKeyframe === void 0) { _stretchStartingKeyframe = false; }
+        var _this = _super.call(this, element, timings.delay) || this;
+        _this.element = element;
+        _this.keyframes = keyframes;
+        _this.preStyleProps = preStyleProps;
+        _this.postStyleProps = postStyleProps;
+        _this._stretchStartingKeyframe = _stretchStartingKeyframe;
+        _this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };
+        return _this;
+    }
+    /**
+     * @return {?}
+     */
+    SubTimelineBuilder.prototype.containsAnimation = function () { return this.keyframes.length > 1; };
+    /**
+     * @return {?}
+     */
+    SubTimelineBuilder.prototype.buildKeyframes = function () {
+        var /** @type {?} */ keyframes = this.keyframes;
+        var _a = this.timings, delay = _a.delay, duration = _a.duration, easing = _a.easing;
+        if (this._stretchStartingKeyframe && delay) {
+            var /** @type {?} */ newKeyframes = [];
+            var /** @type {?} */ totalTime = duration + delay;
+            var /** @type {?} */ startingGap = delay / totalTime;
+            // the original starting keyframe now starts once the delay is done
+            var /** @type {?} */ newFirstKeyframe = copyStyles(keyframes[0], false);
+            newFirstKeyframe['offset'] = 0;
+            newKeyframes.push(newFirstKeyframe);
+            var /** @type {?} */ oldFirstKeyframe = copyStyles(keyframes[0], false);
+            oldFirstKeyframe['offset'] = roundOffset(startingGap);
+            newKeyframes.push(oldFirstKeyframe);
+            /*
+              When the keyframe is stretched then it means that the delay before the animation
+              starts is gone. Instead the first keyframe is placed at the start of the animation
+              and it is then copied to where it starts when the original delay is over. This basically
+              means nothing animates during that delay, but the styles are still renderered. For this
+              to work the original offset values that exist in the original keyframes must be "warped"
+              so that they can take the new keyframe + delay into account.
+      
+              delay=1000, duration=1000, keyframes = 0 .5 1
+      
+              turns into
+      
+              delay=0, duration=2000, keyframes = 0 .33 .66 1
+             */
+            // offsets between 1 ... n -1 are all warped by the keyframe stretch
+            var /** @type {?} */ limit = keyframes.length - 1;
+            for (var /** @type {?} */ i = 1; i <= limit; i++) {
+                var /** @type {?} */ kf = copyStyles(keyframes[i], false);
+                var /** @type {?} */ oldOffset = (kf['offset']);
+                var /** @type {?} */ timeAtKeyframe = delay + oldOffset * duration;
+                kf['offset'] = roundOffset(timeAtKeyframe / totalTime);
+                newKeyframes.push(kf);
+            }
+            // the new starting keyframe should be added at the start
+            duration = totalTime;
+            delay = 0;
+            easing = '';
+            keyframes = newKeyframes;
+        }
+        return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);
+    };
+    return SubTimelineBuilder;
+}(TimelineBuilder));
+/**
+ * @param {?} offset
+ * @param {?=} decimalPoints
+ * @return {?}
+ */
+function roundOffset(offset, decimalPoints) {
+    if (decimalPoints === void 0) { decimalPoints = 3; }
+    var /** @type {?} */ mult = Math.pow(10, decimalPoints - 1);
+    return Math.round(offset * mult) / mult;
+}
+/**
+ * @param {?} input
+ * @param {?} allStyles
+ * @return {?}
+ */
+function flattenStyles(input, allStyles) {
+    var /** @type {?} */ styles = {};
+    var /** @type {?} */ allProperties;
+    input.forEach(function (token) {
+        if (token === '*') {
+            allProperties = allProperties || Object.keys(allStyles);
+            allProperties.forEach(function (prop) { styles[prop] = _angular_animations.AUTO_STYLE; });
+        }
+        else {
+            copyStyles(/** @type {?} */ (token), false, styles);
+        }
+    });
+    return styles;
+}
+/**
+ * @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
+ */
+var Animation = (function () {
+    /**
+     * @param {?} _driver
+     * @param {?} input
+     */
+    function Animation(_driver, input) {
+        this._driver = _driver;
+        var errors = [];
+        var ast = buildAnimationAst(input, errors);
+        if (errors.length) {
+            var errorMessage = "animation validation failed:\n" + errors.join("\n");
+            throw new Error(errorMessage);
+        }
+        this._animationAst = ast;
+    }
+    /**
+     * @param {?} element
+     * @param {?} startingStyles
+     * @param {?} destinationStyles
+     * @param {?} options
+     * @param {?=} subInstructions
+     * @return {?}
+     */
+    Animation.prototype.buildTimelines = function (element, startingStyles, destinationStyles, options, subInstructions) {
+        var /** @type {?} */ start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : (startingStyles);
+        var /** @type {?} */ dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : (destinationStyles);
+        var /** @type {?} */ errors = [];
+        subInstructions = subInstructions || new ElementInstructionMap();
+        var /** @type {?} */ result = buildAnimationTimelines(this._driver, element, this._animationAst, start, dest, options, subInstructions, errors);
+        if (errors.length) {
+            var /** @type {?} */ errorMessage = "animation building failed:\n" + errors.join("\n");
+            throw new Error(errorMessage);
+        }
+        return result;
+    };
+    return Animation;
+}());
+/**
+ * @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
+ */
+/**
+ * @experimental Animation support is experimental.
+ */
+/**
+ * @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
+ */ var AnimationStyleNormalizer = (function () {
+    function AnimationStyleNormalizer() {
+    }
+    return AnimationStyleNormalizer;
+}());
+/**
+ * @experimental Animation support is experimental.
+ */
+var NoopAnimationStyleNormalizer = (function () {
+    function NoopAnimationStyleNormalizer() {
+    }
+    NoopAnimationStyleNormalizer.prototype.normalizePropertyName = function (propertyName, errors) { return propertyName; };
+    NoopAnimationStyleNormalizer.prototype.normalizeStyleValue = function (userProvidedProperty, normalizedProperty, value, errors) {
+        return value;
+    };
+    return NoopAnimationStyleNormalizer;
+}());
+/**
+ * @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
+ */
+var WebAnimationsStyleNormalizer = (function (_super) {
+    __extends(WebAnimations

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-a11y.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-a11y.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-a11y.umd.min.js
new file mode 100644
index 0000000..2b8d7fb
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-a11y.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("rxjs/Subject"),require("rxjs/Subscription"),require("@angular/cdk/keycodes"),require("@angular/cdk/rxjs"),require("@angular/core"),require("@angular/cdk/platform"),require("@angular/cdk/coercion"),require("rxjs/observable/of"),require("@angular/common")):"function"==typeof define&&define.amd?define(["exports","rxjs/Subject","rxjs/Subscription","@angular/cdk/keycodes","@angular/cdk/rxjs","@angular/core","@angular/cdk/platform","@angular/cdk/coercion","rxjs/observable/of","@angular/common"],t):t((e.ng=e.ng||{},e.ng.cdk=e.ng.cdk||{},e.ng.cdk.a11y=e.ng.cdk.a11y||{}),e.Rx,e.Rx,e.ng.cdk.keycodes,e.ng.cdk.rxjs,e.ng.core,e.ng.cdk.platform,e.ng.cdk.coercion,e.Rx.Observable,e.ng.common)}(this,function(e,t,n,r,i,o,s,c,a,u){"use strict";function l(e,t){function n(){this.constructor=e}j(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function f(e,t,n){var r=h(e,t);r.some(function(e){
 return e.trim()==n.trim()})||(r.push(n.trim()),e.setAttribute(t,r.join(K)))}function d(e,t,n){var r=h(e,t),i=r.filter(function(e){return e!=n.trim()});e.setAttribute(t,i.join(K))}function h(e,t){return(e.getAttribute(t)||"").match(/\S+/g)||[]}function p(e){var t=document.createElement("div");t.setAttribute("id",V+"-"+q++),t.appendChild(document.createTextNode(e)),Y||_(),Y.appendChild(t),U.set(e,{messageElement:t,referenceCount:0})}function m(e){var t=U.get(e),n=t&&t.messageElement;Y&&n&&Y.removeChild(n),U.delete(e)}function _(){Y=document.createElement("div"),Y.setAttribute("id",W),Y.setAttribute("aria-hidden","true"),Y.style.display="none",document.body.appendChild(Y)}function b(){document.body.removeChild(Y),Y=null}function y(e){var t=h(e,"aria-describedby").filter(function(e){return 0!=e.indexOf(V)});e.setAttribute("aria-describedby",t.join(" "))}function v(e,t){var n=U.get(t);f(e,"aria-describedby",n.messageElement.id),e.setAttribute(Z,""),n.referenceCount++}function g(e,t){var 
 n=U.get(t);n.referenceCount--,d(e,"aria-describedby",n.messageElement.id),e.removeAttribute(Z)}function I(e,t){var n=h(e,"aria-describedby"),r=U.get(t),i=r&&r.messageElement.id;return!!i&&-1!=n.indexOf(i)}function A(e,t){return e||new Q(t)}function E(e){return 0===e.buttons}function T(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)}function k(e){var t=e.nodeName.toLowerCase();return"input"===t||"select"===t||"button"===t||"textarea"===t}function O(e){return w(e)&&"hidden"==e.type}function C(e){return x(e)&&e.hasAttribute("href")}function w(e){return"input"==e.nodeName.toLowerCase()}function x(e){return"a"==e.nodeName.toLowerCase()}function F(e){if(!e.hasAttribute("tabindex")||void 0===e.tabIndex)return!1;var t=e.getAttribute("tabindex");return"-32768"!=t&&!(!t||isNaN(parseInt(t,10)))}function R(e){if(!F(e))return null;var t=parseInt(e.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}function N(e){var t=e.nodeName.toLowerCase(),n="input"===t&&e.type;return"
 text"===n||"password"===n||"select"===t||"textarea"===t}function L(e){return!O(e)&&(k(e)||C(e)||e.hasAttribute("contenteditable")||F(e))}function S(e){return e.ownerDocument.defaultView||window}function D(e,t,n){return e||new ne(t,n)}function B(e,t,n){return e||new ie(t,n)}var j=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},P=function(){function e(e){this._items=e,this._activeItemIndex=-1,this._wrap=!1,this._letterKeyStream=new t.Subject,this._typeaheadSubscription=n.Subscription.EMPTY,this._pressedLetters=[],this.tabOut=new t.Subject}return e.prototype.withWrap=function(){return this._wrap=!0,this},e.prototype.withTypeAhead=function(e){var t=this;if(void 0===e&&(e=200),this._items.length&&this._items.some(function(e){return"function"!=typeof e.getLabel}))throw Error("ListKeyManager items in typeahead mode must implement the `getLabel` method.");return this._typeaheadSubscription.un
 subscribe(),this._typeaheadSubscription=i.RxChain.from(this._letterKeyStream).call(i.doOperator,function(e){return t._pressedLetters.push(e)}).call(i.debounceTime,e).call(i.filter,function(){return t._pressedLetters.length>0}).call(i.map,function(){return t._pressedLetters.join("")}).subscribe(function(e){for(var n=t._items.toArray(),r=1;r<n.length+1;r++){var i=(t._activeItemIndex+r)%n.length,o=n[i];if(!o.disabled&&0===o.getLabel().toUpperCase().trim().indexOf(e)){t.setActiveItem(i);break}}t._pressedLetters=[]}),this},e.prototype.setActiveItem=function(e){this._activeItemIndex=e,this._activeItem=this._items.toArray()[e]},e.prototype.onKeydown=function(e){switch(e.keyCode){case r.DOWN_ARROW:this.setNextItemActive();break;case r.UP_ARROW:this.setPreviousItemActive();break;case r.TAB:return void this.tabOut.next();default:var t=e.keyCode;return void(e.key&&1===e.key.length?this._letterKeyStream.next(e.key.toLocaleUpperCase()):(t>=r.A&&t<=r.Z||t>=r.ZERO&&t<=r.NINE)&&this._letterKeyStrea
 m.next(String.fromCharCode(t)))}this._pressedLetters=[],e.preventDefault()},Object.defineProperty(e.prototype,"activeItemIndex",{get:function(){return this._activeItemIndex},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activeItem",{get:function(){return this._activeItem},enumerable:!0,configurable:!0}),e.prototype.setFirstItemActive=function(){this._setActiveItemByIndex(0,1)},e.prototype.setLastItemActive=function(){this._setActiveItemByIndex(this._items.length-1,-1)},e.prototype.setNextItemActive=function(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)},e.prototype.setPreviousItemActive=function(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)},e.prototype.updateActiveItemIndex=function(e){this._activeItemIndex=e},e.prototype._setActiveItemByDelta=function(e,t){void 0===t&&(t=this._items.toArray()),this._wrap?this._setActiveInWrapMode(e,t):this._setActiveInDefaultMode(e,t)},e.protot
 ype._setActiveInWrapMode=function(e,t){this._activeItemIndex=(this._activeItemIndex+e+t.length)%t.length,t[this._activeItemIndex].disabled?this._setActiveInWrapMode(e,t):this.setActiveItem(this._activeItemIndex)},e.prototype._setActiveInDefaultMode=function(e,t){this._setActiveItemByIndex(this._activeItemIndex+e,e,t)},e.prototype._setActiveItemByIndex=function(e,t,n){if(void 0===n&&(n=this._items.toArray()),n[e]){for(;n[e].disabled;)if(e+=t,!n[e])return;this.setActiveItem(e)}},e}(),M=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l(t,e),t.prototype.setActiveItem=function(t){this.activeItem&&this.activeItem.setInactiveStyles(),e.prototype.setActiveItem.call(this,t),this.activeItem&&this.activeItem.setActiveStyles()},t}(P),K=" ",W="cdk-describedby-message-container",V="cdk-describedby-message",Z="cdk-describedby-host",q=0,U=new Map,Y=null,Q=function(){function e(e){this._platform=e}return e.prototype.describe=function(e,t){this._platform.isBrowser&&t.tr
 im()&&(U.has(t)||p(t),I(e,t)||v(e,t))},e.prototype.removeDescription=function(e,t){if(this._platform.isBrowser&&t.trim()){I(e,t)&&g(e,t);var n=U.get(t);n&&0===n.referenceCount&&m(t),Y&&0===Y.childNodes.length&&b()}},e.prototype.ngOnDestroy=function(){if(this._platform.isBrowser){for(var e=document.querySelectorAll("["+Z+"]"),t=0;t<e.length;t++)y(e[t]),e[t].removeAttribute(Z);Y&&b(),U.clear()}},e.decorators=[{type:o.Injectable}],e.ctorParameters=function(){return[{type:s.Platform}]},e}(),H={provide:Q,deps:[[new o.Optional,new o.SkipSelf,Q],s.Platform],useFactory:A},X=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return l(t,e),t.prototype.setActiveItem=function(t){e.prototype.setActiveItem.call(this,t),this.activeItem&&this.activeItem.focus()},t}(P),G=function(){function e(e){this._platform=e}return e.prototype.isDisabled=function(e){return e.hasAttribute("disabled")},e.prototype.isVisible=function(e){return T(e)&&"visible"===getComputedStyle(e).visibility},e
 .prototype.isTabbable=function(e){if(!this._platform.isBrowser)return!1;var t=S(e).frameElement;if(t){var n=t&&t.nodeName.toLowerCase();if(-1===R(t))return!1;if((this._platform.BLINK||this._platform.WEBKIT)&&"object"===n)return!1;if((this._platform.BLINK||this._platform.WEBKIT)&&!this.isVisible(t))return!1}var r=e.nodeName.toLowerCase(),i=R(e);if(e.hasAttribute("contenteditable"))return-1!==i;if("iframe"===r)return!1;if("audio"===r){if(!e.hasAttribute("controls"))return!1;if(this._platform.BLINK)return!0}if("video"===r){if(!e.hasAttribute("controls")&&this._platform.TRIDENT)return!1;if(this._platform.BLINK||this._platform.FIREFOX)return!0}return("object"!==r||!this._platform.BLINK&&!this._platform.WEBKIT)&&(!(this._platform.WEBKIT&&this._platform.IOS&&!N(e))&&e.tabIndex>=0)},e.prototype.isFocusable=function(e){return L(e)&&!this.isDisabled(e)&&this.isVisible(e)},e.decorators=[{type:o.Injectable}],e.ctorParameters=function(){return[{type:s.Platform}]},e}(),z=function(){function e(e,t
 ,n,r,i){void 0===i&&(i=!1),this._element=e,this._platform=t,this._checker=n,this._ngZone=r,this._enabled=!0,i||this.attachAnchors()}return Object.defineProperty(e.prototype,"enabled",{get:function(){return this._enabled},set:function(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._startAnchor.tabIndex=this._endAnchor.tabIndex=this._enabled?0:-1)},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){this._startAnchor&&this._startAnchor.parentNode&&this._startAnchor.parentNode.removeChild(this._startAnchor),this._endAnchor&&this._endAnchor.parentNode&&this._endAnchor.parentNode.removeChild(this._endAnchor),this._startAnchor=this._endAnchor=null},e.prototype.attachAnchors=function(){var e=this;this._platform.isBrowser&&(this._startAnchor||(this._startAnchor=this._createAnchor()),this._endAnchor||(this._endAnchor=this._createAnchor()),this._ngZone.runOutsideAngular(function(){e._startAnchor.addEventListener("focus",function(){e.focusLastTabbableElement()}),e._end
 Anchor.addEventListener("focus",function(){e.focusFirstTabbableElement()}),e._element.parentNode&&(e._element.parentNode.insertBefore(e._startAnchor,e._element),e._element.parentNode.insertBefore(e._endAnchor,e._element.nextSibling))}))},e.prototype.focusInitialElementWhenReady=function(){var e=this;return new Promise(function(t){e._executeOnStable(function(){return t(e.focusInitialElement())})})},e.prototype.focusFirstTabbableElementWhenReady=function(){var e=this;return new Promise(function(t){e._executeOnStable(function(){return t(e.focusFirstTabbableElement())})})},e.prototype.focusLastTabbableElementWhenReady=function(){var e=this;return new Promise(function(t){e._executeOnStable(function(){return t(e.focusLastTabbableElement())})})},e.prototype._getRegionBoundary=function(e){for(var t=this._element.querySelectorAll("[cdk-focus-region-"+e+"], [cdk-focus-"+e+"]"),n=0;n<t.length;n++)t[n].hasAttribute("cdk-focus-"+e)&&console.warn("Found use of deprecated attribute 'cdk-focus-"+e+
 "', use 'cdk-focus-region-"+e+"' instead.",t[n]);return"start"==e?t.length?t[0]:this._getFirstTabbableElement(this._element):t.length?t[t.length-1]:this._getLastTabbableElement(this._element)},e.prototype.focusInitialElement=function(){var e=this._element.querySelector("[cdk-focus-initial]");return e?(e.focus(),!0):this.focusFirstTabbableElement()},e.prototype.focusFirstTabbableElement=function(){var e=this._getRegionBoundary("start");return e&&e.focus(),!!e},e.prototype.focusLastTabbableElement=function(){var e=this._getRegionBoundary("end");return e&&e.focus(),!!e},e.prototype._getFirstTabbableElement=function(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;for(var t=e.children||e.childNodes,n=0;n<t.length;n++){var r=t[n].nodeType===Node.ELEMENT_NODE?this._getFirstTabbableElement(t[n]):null;if(r)return r}return null},e.prototype._getLastTabbableElement=function(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;for(var t=e.children||e
 .childNodes,n=t.length-1;n>=0;n--){var r=t[n].nodeType===Node.ELEMENT_NODE?this._getLastTabbableElement(t[n]):null;if(r)return r}return null},e.prototype._createAnchor=function(){var e=document.createElement("div");return e.tabIndex=this._enabled?0:-1,e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e},e.prototype._executeOnStable=function(e){this._ngZone.isStable?e():i.first.call(this._ngZone.onStable.asObservable()).subscribe(e)},e}(),J=function(){function e(e,t,n){this._checker=e,this._platform=t,this._ngZone=n}return e.prototype.create=function(e,t){return void 0===t&&(t=!1),new z(e,this._platform,this._checker,this._ngZone,t)},e.decorators=[{type:o.Injectable}],e.ctorParameters=function(){return[{type:G},{type:s.Platform},{type:o.NgZone}]},e}(),$=function(){function e(e,t){this._elementRef=e,this._focusTrapFactory=t,this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0)}return Object.defineProperty(e.prototype,"disabled",{
 get:function(){return!this.focusTrap.enabled},set:function(e){this.focusTrap.enabled=!c.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.focusTrap.destroy()},e.prototype.ngAfterContentInit=function(){this.focusTrap.attachAnchors()},e.decorators=[{type:o.Directive,args:[{selector:"cdk-focus-trap"}]}],e.ctorParameters=function(){return[{type:o.ElementRef},{type:J}]},e.propDecorators={disabled:[{type:o.Input}]},e}(),ee=function(){function e(e,t){this._elementRef=e,this._focusTrapFactory=t,this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0)}return Object.defineProperty(e.prototype,"enabled",{get:function(){return this.focusTrap.enabled},set:function(e){this.focusTrap.enabled=c.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.focusTrap.destroy()},e.prototype.ngAfterContentInit=function(){this.focusTrap.attachAnchors()},e.decorators=[{type:o.Directive,args:[{select
 or:"[cdkTrapFocus]",exportAs:"cdkTrapFocus"}]}],e.ctorParameters=function(){return[{type:o.ElementRef},{type:J}]},e.propDecorators={enabled:[{type:o.Input,args:["cdkTrapFocus"]}]},e}(),te=new o.InjectionToken("liveAnnouncerElement"),ne=function(){function e(e,t){t.isBrowser&&(this._liveElement=e||this._createLiveElement())}return e.prototype.announce=function(e,t){var n=this;void 0===t&&(t="polite"),this._liveElement.textContent="",this._liveElement.setAttribute("aria-live",t),setTimeout(function(){return n._liveElement.textContent=e},100)},e.prototype.ngOnDestroy=function(){this._liveElement&&this._liveElement.parentNode&&this._liveElement.parentNode.removeChild(this._liveElement)},e.prototype._createLiveElement=function(){var e=document.createElement("div");return e.classList.add("cdk-visually-hidden"),e.setAttribute("aria-atomic","true"),e.setAttribute("aria-live","polite"),document.body.appendChild(e),e},e.decorators=[{type:o.Injectable}],e.ctorParameters=function(){return[{type
 :void 0,decorators:[{type:o.Optional},{type:o.Inject,args:[te]}]},{type:s.Platform}]},e}(),re={provide:ne,deps:[[new o.Optional,new o.SkipSelf,ne],[new o.Optional,new o.Inject(te)],s.Platform],useFactory:D},ie=function(){function e(e,t){var n=this;this._ngZone=e,this._platform=t,this._origin=null,this._windowFocused=!1,this._elementInfo=new WeakMap,this._ngZone.runOutsideAngular(function(){return n._registerDocumentEvents()})}return e.prototype.monitor=function(e,n,r){var i=this;if(!this._platform.isBrowser)return a.of(null);if(this._elementInfo.has(e)){var o=this._elementInfo.get(e);return o.checkChildren=r,o.subject.asObservable()}var s={unlisten:function(){},checkChildren:r,renderer:n,subject:new t.Subject};this._elementInfo.set(e,s);var c=function(t){return i._onFocus(t,e)},u=function(t){return i._onBlur(t,e)};return this._ngZone.runOutsideAngular(function(){e.addEventListener("focus",c,!0),e.addEventListener("blur",u,!0)}),s.unlisten=function(){e.removeEventListener("focus",c,!
 0),e.removeEventListener("blur",u,!0)},s.subject.asObservable()},e.prototype.stopMonitoring=function(e){var t=this._elementInfo.get(e);t&&(t.unlisten(),t.subject.complete(),this._setClasses(e),this._elementInfo.delete(e))},e.prototype.focusVia=function(e,t){this._setOriginForCurrentEventQueue(t),e.focus()},e.prototype._registerDocumentEvents=function(){var e=this;this._platform.isBrowser&&(document.addEventListener("keydown",function(){e._lastTouchTarget=null,e._setOriginForCurrentEventQueue("keyboard")},!0),document.addEventListener("mousedown",function(){e._lastTouchTarget||e._setOriginForCurrentEventQueue("mouse")},!0),document.addEventListener("touchstart",function(t){null!=e._touchTimeout&&clearTimeout(e._touchTimeout),e._lastTouchTarget=t.target,e._touchTimeout=setTimeout(function(){return e._lastTouchTarget=null},650)},!0),window.addEventListener("focus",function(){e._windowFocused=!0,setTimeout(function(){return e._windowFocused=!1},0)}))},e.prototype._setClasses=function(e,
 t){var n=this._elementInfo.get(e);if(n){var r=function(t,r){r?n.renderer.addClass(e,t):n.renderer.removeClass(e,t)};r("cdk-focused",!!t),r("cdk-touch-focused","touch"===t),r("cdk-keyboard-focused","keyboard"===t),r("cdk-mouse-focused","mouse"===t),r("cdk-program-focused","program"===t)}},e.prototype._setOriginForCurrentEventQueue=function(e){var t=this;this._origin=e,setTimeout(function(){return t._origin=null},0)},e.prototype._wasCausedByTouch=function(e){var t=e.target;return this._lastTouchTarget instanceof Node&&t instanceof Node&&(t===this._lastTouchTarget||t.contains(this._lastTouchTarget))},e.prototype._onFocus=function(e,t){var n=this._elementInfo.get(t);n&&(n.checkChildren||t===e.target)&&(this._origin||(this._windowFocused&&this._lastFocusOrigin?this._origin=this._lastFocusOrigin:this._wasCausedByTouch(e)?this._origin="touch":this._origin="program"),this._setClasses(t,this._origin),n.subject.next(this._origin),this._lastFocusOrigin=this._origin,this._origin=null)},e.protot
 ype._onBlur=function(e,t){var n=this._elementInfo.get(t);!n||n.checkChildren&&e.relatedTarget instanceof Node&&t.contains(e.relatedTarget)||(this._setClasses(t),n.subject.next(null))},e.decorators=[{type:o.Injectable}],e.ctorParameters=function(){return[{type:o.NgZone},{type:s.Platform}]},e}(),oe=function(){function e(e,t,n){var r=this;this._elementRef=e,this._focusMonitor=t,this.cdkFocusChange=new o.EventEmitter,this._monitorSubscription=this._focusMonitor.monitor(this._elementRef.nativeElement,n,this._elementRef.nativeElement.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(function(e){return r.cdkFocusChange.emit(e)})}return e.prototype.ngOnDestroy=function(){this._focusMonitor.stopMonitoring(this._elementRef.nativeElement),this._monitorSubscription.unsubscribe()},e.decorators=[{type:o.Directive,args:[{selector:"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]"}]}],e.ctorParameters=function(){return[{type:o.ElementRef},{type:ie},{type:o.Renderer2}]},e.propDecorators={cdkFocusC
 hange:[{type:o.Output}]},e}(),se={provide:ie,deps:[[new o.Optional,new o.SkipSelf,ie],o.NgZone,s.Platform],useFactory:B},ce=function(){function e(){}return e.decorators=[{type:o.NgModule,args:[{imports:[u.CommonModule,s.PlatformModule],declarations:[ee,$,oe],exports:[ee,$,oe],providers:[G,J,Q,re,H,se]}]}],e.ctorParameters=function(){return[]},e}();e.ActiveDescendantKeyManager=M,e.MESSAGES_CONTAINER_ID=W,e.CDK_DESCRIBEDBY_ID_PREFIX=V,e.CDK_DESCRIBEDBY_HOST_ATTRIBUTE=Z,e.AriaDescriber=Q,e.ARIA_DESCRIBER_PROVIDER_FACTORY=A,e.ARIA_DESCRIBER_PROVIDER=H,e.isFakeMousedownFromScreenReader=E,e.FocusKeyManager=X,e.FocusTrap=z,e.FocusTrapFactory=J,e.FocusTrapDeprecatedDirective=$,e.FocusTrapDirective=ee,e.InteractivityChecker=G,e.ListKeyManager=P,e.LIVE_ANNOUNCER_ELEMENT_TOKEN=te,e.LiveAnnouncer=ne,e.LIVE_ANNOUNCER_PROVIDER_FACTORY=D,e.LIVE_ANNOUNCER_PROVIDER=re,e.TOUCH_BUFFER_MS=650,e.FocusMonitor=ie,e.CdkMonitorFocus=oe,e.FOCUS_MONITOR_PROVIDER_FACTORY=B,e.FOCUS_MONITOR_PROVIDER=se,e.A11yMod
 ule=ce,Object.defineProperty(e,"__esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-a11y.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-a11y.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-a11y.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-a11y.umd.min.js.map
new file mode 100644
index 0000000..44053a7
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-a11y.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-a11y.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","a11y","Rx","keycodes","rxjs","core","platform","coercion","Observable","common","this","rxjs_Subject","rxjs_Subscription","_angular_cdk_keycodes","_angular_cdk_rxjs","_angular_core","_angular_cdk_platform","_angular_cdk_coercion","rxjs_observable_of","_angular_common","__extends","d","b","__","constructor","extendStatics","prototype","Object","create","addAriaReferencedId","el","attr","id","ids","getAriaReferenceIds","some","existingId","trim","push","setAttribute","join","ID_DELIMINATOR","removeAriaReferencedId","filteredIds","filter","val","getAttribute","match","createMessageElement","message","messageElement","document","createElement","CDK_DESCRIBEDBY_ID_PREFIX","nextId","appendChild","createTextNode","messagesContainer","createMessagesContainer","messageRegistry","set","referenceCount","deleteMessageElement"
 ,"registeredMessage","get","removeChild","delete","MESSAGES_CONTAINER_ID","style","display","body","deleteMessagesContainer","removeCdkDescribedByReferenceIds","element","originalReferenceIds","indexOf","addMessageReference","CDK_DESCRIBEDBY_HOST_ATTRIBUTE","removeMessageReference","removeAttribute","isElementDescribedByMessage","referenceIds","messageId","ARIA_DESCRIBER_PROVIDER_FACTORY","parentDispatcher","AriaDescriber","isFakeMousedownFromScreenReader","event","buttons","hasGeometry","offsetWidth","offsetHeight","getClientRects","length","isNativeFormElement","nodeName","toLowerCase","isHiddenInput","isInputElement","type","isAnchorWithHref","isAnchorElement","hasAttribute","hasValidTabIndex","undefined","tabIndex","isNaN","parseInt","getTabIndexValue","isPotentiallyTabbableIOS","inputType","isPotentiallyFocusable","getWindow","node","ownerDocument","defaultView","window","LIVE_ANNOUNCER_PROVIDER_FACTORY","liveElement","LiveAnnouncer","FOCUS_MONITOR_PROVIDER_FACTORY","ngZone","F
 ocusMonitor","setPrototypeOf","__proto__","Array","p","hasOwnProperty","ListKeyManager","_items","_activeItemIndex","_wrap","_letterKeyStream","Subject","_typeaheadSubscription","Subscription","EMPTY","_pressedLetters","tabOut","withWrap","withTypeAhead","debounceInterval","_this","item","getLabel","Error","unsubscribe","RxChain","from","call","doOperator","keyCode","debounceTime","map","subscribe","inputString","items","toArray","i","index","disabled","toUpperCase","setActiveItem","_activeItem","onKeydown","DOWN_ARROW","setNextItemActive","UP_ARROW","setPreviousItemActive","TAB","next","key","toLocaleUpperCase","A","Z","ZERO","NINE","String","fromCharCode","preventDefault","defineProperty","enumerable","configurable","setFirstItemActive","_setActiveItemByIndex","setLastItemActive","_setActiveItemByDelta","updateActiveItemIndex","delta","_setActiveInWrapMode","_setActiveInDefaultMode","fallbackDelta","ActiveDescendantKeyManager","_super","apply","arguments","activeItem","setInactive
 Styles","setActiveStyles","Map","_platform","describe","hostElement","isBrowser","has","removeDescription","childNodes","ngOnDestroy","describedElements","querySelectorAll","clear","decorators","Injectable","ctorParameters","Platform","ARIA_DESCRIBER_PROVIDER","provide","deps","Optional","SkipSelf","useFactory","FocusKeyManager","focus","InteractivityChecker","isDisabled","isVisible","getComputedStyle","visibility","isTabbable","frameElement","frameType","BLINK","WEBKIT","tabIndexValue","TRIDENT","FIREFOX","IOS","isFocusable","FocusTrap","_element","_checker","_ngZone","deferAnchors","_enabled","attachAnchors","_startAnchor","_endAnchor","destroy","parentNode","_createAnchor","runOutsideAngular","addEventListener","focusLastTabbableElement","focusFirstTabbableElement","insertBefore","nextSibling","focusInitialElementWhenReady","Promise","resolve","_executeOnStable","focusInitialElement","focusFirstTabbableElementWhenReady","focusLastTabbableElementWhenReady","_getRegionBoundary","bo
 und","markers","console","warn","_getFirstTabbableElement","_getLastTabbableElement","redirectToElement","querySelector","root","children","tabbableChild","nodeType","Node","ELEMENT_NODE","anchor","classList","add","fn","isStable","first","onStable","asObservable","FocusTrapFactory","NgZone","FocusTrapDeprecatedDirective","_elementRef","_focusTrapFactory","focusTrap","nativeElement","enabled","coerceBooleanProperty","ngAfterContentInit","Directive","args","selector","ElementRef","propDecorators","Input","FocusTrapDirective","value","exportAs","LIVE_ANNOUNCER_ELEMENT_TOKEN","InjectionToken","elementToken","_liveElement","_createLiveElement","announce","politeness","textContent","setTimeout","liveEl","Inject","LIVE_ANNOUNCER_PROVIDER","_origin","_windowFocused","_elementInfo","WeakMap","_registerDocumentEvents","monitor","renderer","checkChildren","of","cachedInfo","subject","info","unlisten","focusListener","_onFocus","blurListener","_onBlur","removeEventListener","stopMonitoring","e
 lementInfo","complete","_setClasses","focusVia","origin","_setOriginForCurrentEventQueue","_lastTouchTarget","_touchTimeout","clearTimeout","target","toggleClass","className","shouldSet","addClass","removeClass","_wasCausedByTouch","focusTarget","contains","_lastFocusOrigin","relatedTarget","CdkMonitorFocus","_focusMonitor","cdkFocusChange","EventEmitter","_monitorSubscription","emit","Renderer2","Output","FOCUS_MONITOR_PROVIDER","A11yModule","NgModule","imports","CommonModule","PlatformModule","declarations","providers","TOUCH_BUFFER_MS"],"mappings":"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","file":"/Users/karakara/repos/material2/dist/bun
 dles/cdk-a11y.umd.min.js"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-bidi.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-bidi.umd.js b/node_modules/@angular/cdk/bundles/cdk-bidi.umd.js
new file mode 100644
index 0000000..10d46d7
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-bidi.umd.js
@@ -0,0 +1,183 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser')) :
+	typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/platform-browser'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.bidi = global.ng.cdk.bidi || {}),global.ng.core,global.ng.platformBrowser));
+}(this, (function (exports,_angular_core,_angular_platformBrowser) { 'use strict';
+
+/**
+ * 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.
+ */
+var DIR_DOCUMENT = new _angular_core.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.
+ */
+var Directionality = (function () {
+    /**
+     * @param {?=} _document
+     */
+    function Directionality(_document) {
+        this.value = 'ltr';
+        this.change = new _angular_core.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
+            var bodyDir = _document.body ? _document.body.dir : null;
+            var htmlDir = _document.documentElement ? _document.documentElement.dir : null;
+            this.value = (bodyDir || htmlDir || 'ltr');
+        }
+    }
+    Directionality.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    Directionality.ctorParameters = function () { return [
+        { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Inject, args: [DIR_DOCUMENT,] },] },
+    ]; };
+    return Directionality;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentDirectionality
+ * @param {?} _document
+ * @return {?}
+ */
+function DIRECTIONALITY_PROVIDER_FACTORY(parentDirectionality, _document) {
+    return parentDirectionality || new Directionality(_document);
+}
+/**
+ * \@docs-private
+ */
+var DIRECTIONALITY_PROVIDER = {
+    // If there is already a Directionality available, use that. Otherwise, provide a new one.
+    provide: Directionality,
+    deps: [[new _angular_core.Optional(), new _angular_core.SkipSelf(), Directionality], [new _angular_core.Optional(), _angular_platformBrowser.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
+ */
+var Dir = (function () {
+    function Dir() {
+        /**
+         * 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 _angular_core.EventEmitter();
+    }
+    Object.defineProperty(Dir.prototype, "dir", {
+        /**
+         * \@docs-private
+         * @return {?}
+         */
+        get: function () {
+            return this._dir;
+        },
+        /**
+         * @param {?} v
+         * @return {?}
+         */
+        set: function (v) {
+            var /** @type {?} */ old = this._dir;
+            this._dir = v;
+            if (old !== this._dir && this._isInitialized) {
+                this.change.emit();
+            }
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(Dir.prototype, "value", {
+        /**
+         * Current layout direction of the element.
+         * @return {?}
+         */
+        get: function () { return this.dir; },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Initialize once default value has been set.
+     * @return {?}
+     */
+    Dir.prototype.ngAfterContentInit = function () {
+        this._isInitialized = true;
+    };
+    Dir.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: '[dir]',
+                    providers: [{ provide: Directionality, useExisting: Dir }],
+                    host: { '[dir]': 'dir' },
+                    exportAs: 'dir',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    Dir.ctorParameters = function () { return []; };
+    Dir.propDecorators = {
+        'change': [{ type: _angular_core.Output, args: ['dirChange',] },],
+        'dir': [{ type: _angular_core.Input, args: ['dir',] },],
+    };
+    return Dir;
+}());
+
+var BidiModule = (function () {
+    function BidiModule() {
+    }
+    BidiModule.decorators = [
+        { type: _angular_core.NgModule, args: [{
+                    exports: [Dir],
+                    declarations: [Dir],
+                    providers: [
+                        { provide: DIR_DOCUMENT, useExisting: _angular_platformBrowser.DOCUMENT },
+                        Directionality,
+                    ]
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    BidiModule.ctorParameters = function () { return []; };
+    return BidiModule;
+}());
+
+exports.Directionality = Directionality;
+exports.DIRECTIONALITY_PROVIDER_FACTORY = DIRECTIONALITY_PROVIDER_FACTORY;
+exports.DIRECTIONALITY_PROVIDER = DIRECTIONALITY_PROVIDER;
+exports.DIR_DOCUMENT = DIR_DOCUMENT;
+exports.Dir = Dir;
+exports.BidiModule = BidiModule;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-bidi.umd.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-bidi.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-bidi.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-bidi.umd.js.map
new file mode 100644
index 0000000..53180db
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-bidi.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-bidi.umd.js","sources":["cdk/bidi.es5.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, EventEmitter, Inject, Injectable, InjectionToken, Input, NgModule, Optional, Output, SkipSelf } from '@angular/core';\nimport { DOCUMENT } from '@angular/platform-browser';\n\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 code.\n */\nvar DIR_DOCUMENT = new InjectionToken('mat-dir-doc');\n/**\n * The directionali
 ty (LTR / RTL) context for the application (or a subtree of it).\n * Exposes the current direction and a stream of direction changes.\n */\nvar Directionality = (function () {\n    /**\n     * @param {?=} _document\n     */\n    function Directionality(_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            var bodyDir = _document.body ? _document.body.dir : null;\n            var htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n            this.value = (bodyDir || htmlDir || 'ltr');\n        }\n    }\n    Directionality.decorators = [\n        { type: Injectable },\n    ];\n    /**\n    
  * @nocollapse\n     */\n    Directionality.ctorParameters = function () { return [\n        { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DIR_DOCUMENT,] },] },\n    ]; };\n    return Directionality;\n}());\n/**\n * \\@docs-private\n * @param {?} parentDirectionality\n * @param {?} _document\n * @return {?}\n */\nfunction DIRECTIONALITY_PROVIDER_FACTORY(parentDirectionality, _document) {\n    return parentDirectionality || new Directionality(_document);\n}\n/**\n * \\@docs-private\n */\nvar DIRECTIONALITY_PROVIDER = {\n    // If there is already a Directionality available, use that. Otherwise, provide a new one.\n    provide: Directionality,\n    deps: [[new Optional(), new SkipSelf(), Directionality], [new Optional(), DOCUMENT]],\n    useFactory: DIRECTIONALITY_PROVIDER_FACTORY\n};\n\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 */\nvar Di
 r = (function () {\n    function Dir() {\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    Object.defineProperty(Dir.prototype, \"dir\", {\n        /**\n         * \\@docs-private\n         * @return {?}\n         */\n        get: function () {\n            return this._dir;\n        },\n        /**\n         * @param {?} v\n         * @return {?}\n         */\n        set: function (v) {\n            var /** @type {?} */ old = this._dir;\n            this._dir = v;\n            if (old !== this._dir && this._isInitialized) {\n                this.change.emit();\n            }\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProp
 erty(Dir.prototype, \"value\", {\n        /**\n         * Current layout direction of the element.\n         * @return {?}\n         */\n        get: function () { return this.dir; },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Initialize once default value has been set.\n     * @return {?}\n     */\n    Dir.prototype.ngAfterContentInit = function () {\n        this._isInitialized = true;\n    };\n    Dir.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     */\n    Dir.ctorParameters = function () { return []; };\n    Dir.propDecorators = {\n        'change': [{ type: Output, args: ['dirChange',] },],\n        'dir': [{ type: Input, args: ['dir',] },],\n    };\n    return Dir;\n}
 ());\n\nvar BidiModule = (function () {\n    function BidiModule() {\n    }\n    BidiModule.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     */\n    BidiModule.ctorParameters = function () { return []; };\n    return BidiModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Directionality, DIRECTIONALITY_PROVIDER_FACTORY, DIRECTIONALITY_PROVIDER, DIR_DOCUMENT, Dir, BidiModule };\n//# sourceMappingURL=bidi.es5.js.map\n"],"names":["InjectionToken","EventEmitter","Injectable","Optional","Inject","SkipSelf","DOCUMENT","Directive","Output","Input","NgModule"],"mappings":";;;;;;;;;;;;;AAUA;;;;;;;;;;AAUA,IAAI,YAAY,GAAG,IAAIA,4BAAc,CAAC,aAAa,CAAC,CAA
 C;;;;;AAKrD,IAAI,cAAc,IAAI,YAAY;;;;IAI9B,SAAS,cAAc,CAAC,SAAS,EAAE;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAIC,0BAAY,EAAE,CAAC;QACjC,IAAI,SAAS,EAAE;;;;;YAKX,IAAI,OAAO,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YACzD,IAAI,OAAO,GAAG,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC;YAC/E,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC;SAC9C;KACJ;IACD,cAAc,CAAC,UAAU,GAAG;QACxB,EAAE,IAAI,EAAEC,wBAAU,EAAE;KACvB,CAAC;;;;IAIF,cAAc,CAAC,cAAc,GAAG,YAAY,EAAE,OAAO;QACjD,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAEC,sBAAQ,EAAE,EAAE,EAAE,IAAI,EAAEC,oBAAM,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE;KAClG,CAAC,EAAE,CAAC;IACL,OAAO,cAAc,CAAC;CACzB,EAAE,CAAC,CAAC;;;;;;;AAOL,SAAS,+BAA+B,CAAC,oBAAoB,EAAE,SAAS,EAAE;IACtE,OAAO,oBAAoB,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;CAChE;;;;AAID,IAAI,uBAAuB,GAAG;;IAE1B,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,CAAC,CAAC,IAAID,sBAAQ,EAAE,EAAE,IAAIE,sBAAQ,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC,IAAIF,sBAAQ,EAAE,EAAEG,i
 CAAQ,CAAC,CAAC;IACpF,UAAU,EAAE,+BAA+B;CAC9C,CAAC;;;;;;;AAOF,IAAI,GAAG,IAAI,YAAY;IACnB,SAAS,GAAG,GAAG;;;;QAIX,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;;;;QAIlB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;;;;QAI5B,IAAI,CAAC,MAAM,GAAG,IAAIL,0BAAY,EAAE,CAAC;KACpC;IACD,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE;;;;;QAKxC,GAAG,EAAE,YAAY;YACb,OAAO,IAAI,CAAC,IAAI,CAAC;SACpB;;;;;QAKD,GAAG,EAAE,UAAU,CAAC,EAAE;YACd,qBAAqB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACd,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;gBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;aACtB;SACJ;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE;;;;;QAK1C,GAAG,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE;QACrC,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;;;;;IAKH,GAAG,CAAC,SAAS,CAAC,kBAAkB,GAAG,YAAY;QAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,GAAG,CAAC,UAAU,GAAG;QACb,EAAE,IAAI,EAAEM,uBAAS,EAAE,IAAI,EAAE,CAAC;oBACd,QAAQ,EAAE,OAAO;oBACj
 B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;oBAC1D,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;oBACxB,QAAQ,EAAE,KAAK;iBAClB,EAAE,EAAE;KAChB,CAAC;;;;IAIF,GAAG,CAAC,cAAc,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAChD,GAAG,CAAC,cAAc,GAAG;QACjB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAEC,oBAAM,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE;QACnD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAEC,mBAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE;KAC5C,CAAC;IACF,OAAO,GAAG,CAAC;CACd,EAAE,CAAC,CAAC;;AAEL,IAAI,UAAU,IAAI,YAAY;IAC1B,SAAS,UAAU,GAAG;KACrB;IACD,UAAU,CAAC,UAAU,GAAG;QACpB,EAAE,IAAI,EAAEC,sBAAQ,EAAE,IAAI,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC,GAAG,CAAC;oBACd,YAAY,EAAE,CAAC,GAAG,CAAC;oBACnB,SAAS,EAAE;wBACP,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAEJ,iCAAQ,EAAE;wBAChD,cAAc;qBACjB;iBACJ,EAAE,EAAE;KAChB,CAAC;;;;IAIF,UAAU,CAAC,cAAc,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACvD,OAAO,UAAU,CAAC;CACrB,EAAE,CAAC,CAAC,AAEL,AAImH,AACnH,AAAoC;;;;;;;;;;;"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-bidi.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-bidi.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-bidi.umd.min.js
new file mode 100644
index 0000000..91eb4a1
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-bidi.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/platform-browser")):"function"==typeof define&&define.amd?define(["exports","@angular/core","@angular/platform-browser"],t):t((e.ng=e.ng||{},e.ng.cdk=e.ng.cdk||{},e.ng.cdk.bidi=e.ng.cdk.bidi||{}),e.ng.core,e.ng.platformBrowser)}(this,function(e,t,r){"use strict";function n(e,t){return e||new o(t)}var i=new t.InjectionToken("mat-dir-doc"),o=function(){function e(e){if(this.value="ltr",this.change=new t.EventEmitter,e){var r=e.body?e.body.dir:null,n=e.documentElement?e.documentElement.dir:null;this.value=r||n||"ltr"}}return e.decorators=[{type:t.Injectable}],e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[i]}]}]},e}(),d={provide:o,deps:[[new t.Optional,new t.SkipSelf,o],[new t.Optional,r.DOCUMENT]],useFactory:n},a=function(){function e(){this._dir="ltr",this._isInitialized=!1,this.change=new t.EventEmitter}return Ob
 ject.defineProperty(e.prototype,"dir",{get:function(){return this._dir},set:function(e){var t=this._dir;this._dir=e,t!==this._dir&&this._isInitialized&&this.change.emit()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.dir},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){this._isInitialized=!0},e.decorators=[{type:t.Directive,args:[{selector:"[dir]",providers:[{provide:o,useExisting:e}],host:{"[dir]":"dir"},exportAs:"dir"}]}],e.ctorParameters=function(){return[]},e.propDecorators={change:[{type:t.Output,args:["dirChange"]}],dir:[{type:t.Input,args:["dir"]}]},e}(),u=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{exports:[a],declarations:[a],providers:[{provide:i,useExisting:r.DOCUMENT},o]}]}],e.ctorParameters=function(){return[]},e}();e.Directionality=o,e.DIRECTIONALITY_PROVIDER_FACTORY=n,e.DIRECTIONALITY_PROVIDER=d,e.DIR_DOCUMENT=i,e.Dir=a,e.BidiModule=u,Object.defineProperty(e,"_
 _esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-bidi.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-bidi.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-bidi.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-bidi.umd.min.js.map
new file mode 100644
index 0000000..ec6ae79
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-bidi.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-bidi.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","bidi","core","platformBrowser","this","_angular_core","_angular_platformBrowser","DIRECTIONALITY_PROVIDER_FACTORY","parentDirectionality","_document","Directionality","DIR_DOCUMENT","InjectionToken","value","change","EventEmitter","bodyDir","body","dir","htmlDir","documentElement","decorators","type","Injectable","ctorParameters","undefined","Optional","Inject","args","DIRECTIONALITY_PROVIDER","provide","deps","SkipSelf","DOCUMENT","useFactory","Dir","_dir","_isInitialized","Object","defineProperty","prototype","get","set","v","old","emit","enumerable","configurable","ngAfterContentInit","Directive","selector","providers","useExisting","host","[dir]","exportAs","propDecorators","Output","Input","BidiModule","NgModule","declarations"],"mappings":";;;;;;;CAOC,SAAUA,EAAQC,GACC,gBAAZC,UAA0C,mBAAXC,QAAyBF,EAAQC,QAASE,Q
 AAQ,iBAAkBA,QAAQ,8BAChG,kBAAXC,SAAyBA,OAAOC,IAAMD,QAAQ,UAAW,gBAAiB,6BAA8BJ,GAC9GA,GAASD,EAAOO,GAAKP,EAAOO,OAAUP,EAAOO,GAAGC,IAAMR,EAAOO,GAAGC,QAAWR,EAAOO,GAAGC,IAAIC,KAAOT,EAAOO,GAAGC,IAAIC,UAAYT,EAAOO,GAAGG,KAAKV,EAAOO,GAAGI,kBACnJC,KAAM,SAAWV,EAAQW,EAAcC,GAA4B,YAmDrE,SAASC,GAAgCC,EAAsBC,GAC3D,MAAOD,IAAwB,GAAIE,GAAeD,GAxCtD,GAAIE,GAAe,GAAIN,GAAcO,eAAe,eAKhDF,EAAkB,WAIlB,QAASA,GAAeD,GAGpB,GAFAL,KAAKS,MAAQ,MACbT,KAAKU,OAAS,GAAIT,GAAcU,aAC5BN,EAAW,CAKX,GAAIO,GAAUP,EAAUQ,KAAOR,EAAUQ,KAAKC,IAAM,KAChDC,EAAUV,EAAUW,gBAAkBX,EAAUW,gBAAgBF,IAAM,IAC1Ed,MAAKS,MAASG,GAAWG,GAAW,OAY5C,MATAT,GAAeW,aACTC,KAAMjB,EAAckB,aAK1Bb,EAAec,eAAiB,WAAc,QACxCF,SAAMG,GAAWJ,aAAeC,KAAMjB,EAAcqB,WAAcJ,KAAMjB,EAAcsB,OAAQC,MAAOjB,QAEpGD,KAcPmB,GAEAC,QAASpB,EACTqB,OAAQ,GAAI1B,GAAcqB,SAAY,GAAIrB,GAAc2B,SAAYtB,IAAkB,GAAIL,GAAcqB,SAAYpB,EAAyB2B,WAC7IC,WAAY3B,GAQZ4B,EAAO,WACP,QAASA,KAIL/B,KAAKgC,KAAO,MAIZhC,KAAKiC,gBAAiB,EAItBjC,KAAKU,OAAS,GAAIT,GAAcU,aAwDpC,MAtDAuB,QAAOC,eAAeJ,EAAIK,UAAW,OAKjCC,IAAK,WACD,MAAOrC,MAAKgC,M
 AMhBM,IAAK,SAAUC,GACX,GAAqBC,GAAMxC,KAAKgC,IAChChC,MAAKgC,KAAOO,EACRC,IAAQxC,KAAKgC,MAAQhC,KAAKiC,gBAC1BjC,KAAKU,OAAO+B,QAGpBC,YAAY,EACZC,cAAc,IAElBT,OAAOC,eAAeJ,EAAIK,UAAW,SAKjCC,IAAK,WAAc,MAAOrC,MAAKc,KAC/B4B,YAAY,EACZC,cAAc,IAMlBZ,EAAIK,UAAUQ,mBAAqB,WAC/B5C,KAAKiC,gBAAiB,GAE1BF,EAAId,aACEC,KAAMjB,EAAc4C,UAAWrB,OACrBsB,SAAU,QACVC,YAAcrB,QAASpB,EAAgB0C,YAAajB,IACpDkB,MAAQC,QAAS,OACjBC,SAAU,UAM1BpB,EAAIX,eAAiB,WAAc,UACnCW,EAAIqB,gBACA1C,SAAaQ,KAAMjB,EAAcoD,OAAQ7B,MAAO,eAChDV,MAAUI,KAAMjB,EAAcqD,MAAO9B,MAAO,UAEzCO,KAGPwB,EAAc,WACd,QAASA,MAgBT,MAdAA,GAAWtC,aACLC,KAAMjB,EAAcuD,SAAUhC,OACpBlC,SAAUyC,GACV0B,cAAe1B,GACfgB,YACMrB,QAASnB,EAAcyC,YAAa9C,EAAyB2B,UAC/DvB,OAOpBiD,EAAWnC,eAAiB,WAAc,UACnCmC,IAGXjE,GAAQgB,eAAiBA,EACzBhB,EAAQa,gCAAkCA,EAC1Cb,EAAQmC,wBAA0BA,EAClCnC,EAAQiB,aAAeA,EACvBjB,EAAQyC,IAAMA,EACdzC,EAAQiE,WAAaA,EAErBrB,OAAOC,eAAe7C,EAAS,cAAgBmB,OAAO","file":"/Users/karakara/repos/material2/dist/bundles/cdk-bidi.umd.min.js"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-coercion.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-coercion.umd.js b/node_modules/@angular/cdk/bundles/cdk-coercion.umd.js
new file mode 100644
index 0000000..03f2728
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-coercion.umd.js
@@ -0,0 +1,54 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+	typeof define === 'function' && define.amd ? define(['exports'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.coercion = global.ng.cdk.coercion || {})));
+}(this, (function (exports) { 'use strict';
+
+/**
+ * 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) {
+    if (fallbackValue === void 0) { 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];
+}
+
+exports.coerceBooleanProperty = coerceBooleanProperty;
+exports.coerceNumberProperty = coerceNumberProperty;
+exports.coerceArray = coerceArray;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-coercion.umd.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-coercion.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-coercion.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-coercion.umd.js.map
new file mode 100644
index 0000000..381c92c
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-coercion.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-coercion.umd.js","sources":["cdk/coercion.es5.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 * Coerces a data-bound value (typically a string) to a boolean.\n * @param {?} value\n * @return {?}\n */\nfunction coerceBooleanProperty(value) {\n    return value != null && \"\" + value !== 'false';\n}\n\n/**\n * Coerces a data-bound value (typically a string) to a number.\n * @param {?} value\n * @param {?=} fallbackValue\n * @return {?}\n */\nfunction coerceNumberProperty(value, fallbackValue) {\n    if (fallbackValue === void 0) { 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 b
 e a valid number. Therefore we also check if Number(value) is NaN.\n    return isNaN(parseFloat(/** @type {?} */ (value))) || isNaN(Number(value)) ? fallbackValue : Number(value);\n}\n\n/**\n * Wraps the provided value in an array, unless the provided value is an array.\n * @template T\n * @param {?} value\n * @return {?}\n */\nfunction coerceArray(value) {\n    return Array.isArray(value) ? value : [value];\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { coerceBooleanProperty, coerceNumberProperty, coerceArray };\n//# sourceMappingURL=coercion.es5.js.map\n"],"names":[],"mappings":";;;;;;;;;;;;;AAOA;;;;;AAKA,SAAS,qBAAqB,CAAC,KAAK,EAAE;IAClC,OAAO,KAAK,IAAI,IAAI,IAAI,EAAE,GAAG,KAAK,KAAK,OAAO,CAAC;CAClD;;;;;;;;AAQD,SAAS,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE;IAChD,IAAI,aAAa,KAAK,KAAK,CAAC,EAAE,EAAE,aAAa,GAAG,CAAC,CAAC,EAAE;;;;IAIpD,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;;;;;;;;AAQD,SAA
 S,WAAW,CAAC,KAAK,EAAE;IACxB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;CACjD,AAED,AAIoE,AACpE,AAAwC;;;;;;;;"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-coercion.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-coercion.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-coercion.umd.min.js
new file mode 100644
index 0000000..9533a8c
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-coercion.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e.ng=e.ng||{},e.ng.cdk=e.ng.cdk||{},e.ng.cdk.coercion=e.ng.cdk.coercion||{}))}(this,function(e){"use strict";function n(e){return null!=e&&""+e!="false"}function r(e,n){return void 0===n&&(n=0),isNaN(parseFloat(e))||isNaN(Number(e))?n:Number(e)}function o(e){return Array.isArray(e)?e:[e]}e.coerceBooleanProperty=n,e.coerceNumberProperty=r,e.coerceArray=o,Object.defineProperty(e,"__esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-coercion.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-coercion.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-coercion.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-coercion.umd.min.js.map
new file mode 100644
index 0000000..fa57505
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-coercion.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-coercion.umd.js"],"names":["global","factory","exports","module","define","amd","ng","cdk","coercion","this","coerceBooleanProperty","value","coerceNumberProperty","fallbackValue","isNaN","parseFloat","Number","coerceArray","Array","isArray","Object","defineProperty"],"mappings":";;;;;;;CAOC,SAAUA,EAAQC,GACC,gBAAZC,UAA0C,mBAAXC,QAAyBF,EAAQC,SACrD,kBAAXE,SAAyBA,OAAOC,IAAMD,QAAQ,WAAYH,GAChEA,GAASD,EAAOM,GAAKN,EAAOM,OAAUN,EAAOM,GAAGC,IAAMP,EAAOM,GAAGC,QAAWP,EAAOM,GAAGC,IAAIC,SAAWR,EAAOM,GAAGC,IAAIC,gBAClHC,KAAM,SAAWP,GAAW,YAO9B,SAASQ,GAAsBC,GAC3B,MAAgB,OAATA,GAAiB,GAAKA,GAAU,QAS3C,QAASC,GAAqBD,EAAOE,GAKjC,WAJsB,KAAlBA,IAA4BA,EAAgB,GAIzCC,MAAMC,WAA4B,KAAaD,MAAME,OAAOL,IAAUE,EAAgBG,OAAOL,GASxG,QAASM,GAAYN,GACjB,MAAOO,OAAMC,QAAQR,GAASA,GAASA,GAG3CT,EAAQQ,sBAAwBA,EAChCR,EAAQU,qBAAuBA,EAC/BV,EAAQe,YAAcA,EAEtBG,OAAOC,eAAenB,EAAS,cAAgBS,OAAO","file":"/Users/karakara/repos/material2/dist/bundles/cdk-coercion.umd.min.js"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-collections.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-collections.umd.js b/node_modules/@angular/cdk/bundles/cdk-collections.umd.js
new file mode 100644
index 0000000..cf26c46
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-collections.umd.js
@@ -0,0 +1,345 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rxjs/Subject'), require('@angular/core')) :
+	typeof define === 'function' && define.amd ? define(['exports', 'rxjs/Subject', '@angular/core'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.collections = global.ng.cdk.collections || {}),global.Rx,global.ng.core));
+}(this, (function (exports,rxjs_Subject,_angular_core) { 'use strict';
+
+/**
+ * @abstract
+ */
+var DataSource = (function () {
+    function 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.
+     */
+    DataSource.prototype.connect = function (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 {?}
+     */
+    DataSource.prototype.disconnect = function (collectionViewer) { };
+    return DataSource;
+}());
+
+/**
+ * Class to be used to power selecting one or more options from a list.
+ */
+var SelectionModel = (function () {
+    /**
+     * @param {?=} _isMulti
+     * @param {?=} initiallySelectedValues
+     * @param {?=} _emitChanges
+     */
+    function SelectionModel(_isMulti, initiallySelectedValues, _emitChanges) {
+        if (_isMulti === void 0) { _isMulti = false; }
+        if (_emitChanges === void 0) { _emitChanges = true; }
+        var _this = this;
+        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 rxjs_Subject.Subject() : null;
+        if (initiallySelectedValues) {
+            if (_isMulti) {
+                initiallySelectedValues.forEach(function (value) { return _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;
+        }
+    }
+    Object.defineProperty(SelectionModel.prototype, "selected", {
+        /**
+         * Selected value(s).
+         * @return {?}
+         */
+        get: function () {
+            if (!this._selected) {
+                this._selected = Array.from(this._selection.values());
+            }
+            return this._selected;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Selects a value or an array of values.
+     * @param {...?} values
+     * @return {?}
+     */
+    SelectionModel.prototype.select = function () {
+        var _this = this;
+        var values = [];
+        for (var _i = 0; _i < arguments.length; _i++) {
+            values[_i] = arguments[_i];
+        }
+        this._verifyValueAssignment(values);
+        values.forEach(function (value) { return _this._markSelected(value); });
+        this._emitChangeEvent();
+    };
+    /**
+     * Deselects a value or an array of values.
+     * @param {...?} values
+     * @return {?}
+     */
+    SelectionModel.prototype.deselect = function () {
+        var _this = this;
+        var values = [];
+        for (var _i = 0; _i < arguments.length; _i++) {
+            values[_i] = arguments[_i];
+        }
+        this._verifyValueAssignment(values);
+        values.forEach(function (value) { return _this._unmarkSelected(value); });
+        this._emitChangeEvent();
+    };
+    /**
+     * Toggles a value between selected and deselected.
+     * @param {?} value
+     * @return {?}
+     */
+    SelectionModel.prototype.toggle = function (value) {
+        this.isSelected(value) ? this.deselect(value) : this.select(value);
+    };
+    /**
+     * Clears all of the selected values.
+     * @return {?}
+     */
+    SelectionModel.prototype.clear = function () {
+        this._unmarkAll();
+        this._emitChangeEvent();
+    };
+    /**
+     * Determines whether a value is selected.
+     * @param {?} value
+     * @return {?}
+     */
+    SelectionModel.prototype.isSelected = function (value) {
+        return this._selection.has(value);
+    };
+    /**
+     * Determines whether the model does not have a value.
+     * @return {?}
+     */
+    SelectionModel.prototype.isEmpty = function () {
+        return this._selection.size === 0;
+    };
+    /**
+     * Determines whether the model has a value.
+     * @return {?}
+     */
+    SelectionModel.prototype.hasValue = function () {
+        return !this.isEmpty();
+    };
+    /**
+     * Sorts the selected values based on a predicate function.
+     * @param {?=} predicate
+     * @return {?}
+     */
+    SelectionModel.prototype.sort = function (predicate) {
+        if (this._isMulti && this._selected) {
+            this._selected.sort(predicate);
+        }
+    };
+    /**
+     * Emits a change event and clears the records of selected and deselected values.
+     * @return {?}
+     */
+    SelectionModel.prototype._emitChangeEvent = function () {
+        if (this._selectedToEmit.length || this._deselectedToEmit.length) {
+            var /** @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 {?}
+     */
+    SelectionModel.prototype._markSelected = function (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 {?}
+     */
+    SelectionModel.prototype._unmarkSelected = function (value) {
+        if (this.isSelected(value)) {
+            this._selection.delete(value);
+            if (this._emitChanges) {
+                this._deselectedToEmit.push(value);
+            }
+        }
+    };
+    /**
+     * Clears out the selected values.
+     * @return {?}
+     */
+    SelectionModel.prototype._unmarkAll = function () {
+        var _this = this;
+        if (!this.isEmpty()) {
+            this._selection.forEach(function (value) { return _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 {?}
+     */
+    SelectionModel.prototype._verifyValueAssignment = function (values) {
+        if (values.length > 1 && !this._isMulti) {
+            throw getMultipleValuesInSingleSelectionError();
+        }
+    };
+    return SelectionModel;
+}());
+/**
+ * Describes an event emitted when the value of a MatSelectionModel has changed.
+ * \@docs-private
+ */
+var SelectionChange = (function () {
+    /**
+     * @param {?=} added
+     * @param {?=} removed
+     */
+    function SelectionChange(added, removed) {
+        this.added = added;
+        this.removed = removed;
+    }
+    return SelectionChange;
+}());
+/**
+ * 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.
+ */
+var UniqueSelectionDispatcher = (function () {
+    function UniqueSelectionDispatcher() {
+        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 {?}
+     */
+    UniqueSelectionDispatcher.prototype.notify = function (id, name) {
+        for (var _i = 0, _a = this._listeners; _i < _a.length; _i++) {
+            var listener = _a[_i];
+            listener(id, name);
+        }
+    };
+    /**
+     * Listen for future changes to item selection.
+     * @param {?} listener
+     * @return {?} Function used to deregister listener
+     */
+    UniqueSelectionDispatcher.prototype.listen = function (listener) {
+        var _this = this;
+        this._listeners.push(listener);
+        return function () {
+            _this._listeners = _this._listeners.filter(function (registered) {
+                return listener !== registered;
+            });
+        };
+    };
+    UniqueSelectionDispatcher.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    UniqueSelectionDispatcher.ctorParameters = function () { return []; };
+    return UniqueSelectionDispatcher;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @return {?}
+ */
+function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {
+    return parentDispatcher || new UniqueSelectionDispatcher();
+}
+/**
+ * \@docs-private
+ */
+var UNIQUE_SELECTION_DISPATCHER_PROVIDER = {
+    // If there is already a dispatcher available, use that. Otherwise, provide a new one.
+    provide: UniqueSelectionDispatcher,
+    deps: [[new _angular_core.Optional(), new _angular_core.SkipSelf(), UniqueSelectionDispatcher]],
+    useFactory: UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY
+};
+
+exports.UniqueSelectionDispatcher = UniqueSelectionDispatcher;
+exports.UNIQUE_SELECTION_DISPATCHER_PROVIDER = UNIQUE_SELECTION_DISPATCHER_PROVIDER;
+exports.DataSource = DataSource;
+exports.SelectionModel = SelectionModel;
+exports.SelectionChange = SelectionChange;
+exports.getMultipleValuesInSingleSelectionError = getMultipleValuesInSingleSelectionError;
+exports.ɵa = UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-collections.umd.js.map


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/bundles/animations-browser.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations-browser.umd.min.js b/node_modules/@angular/animations/bundles/animations-browser.umd.min.js
new file mode 100644
index 0000000..f9d5f0e
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations-browser.umd.min.js
@@ -0,0 +1,56 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("@angular/animations")):"function"==typeof define&&define.amd?define(["exports","@angular/animations"],factory):factory((global.ng=global.ng||{},global.ng.animations=global.ng.animations||{},global.ng.animations.browser=global.ng.animations.browser||{}),global.ng.animations)}(this,function(exports,_angular_animations){"use strict";function __extends(d,b){function __(){this.constructor=d}extendStatics(d,b),d.prototype=null===b?Object.create(b):(__.prototype=b.prototype,new __)}/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+/**
+ * @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
+ */
+function optimizeGroupPlayer(players){switch(players.length){case 0:return new _angular_animations.NoopAnimationPlayer;case 1:return players[0];default:return new _angular_animations.ɵAnimationGroupPlayer(players)}}function normalizeKeyframes(driver,normalizer,element,keyframes,preStyles,postStyles){void 0===preStyles&&(preStyles={}),void 0===postStyles&&(postStyles={});var errors=[],normalizedKeyframes=[],previousOffset=-1,previousKeyframe=null;if(keyframes.forEach(function(kf){var offset=kf.offset,isSameOffset=offset==previousOffset,normalizedKeyframe=isSameOffset&&previousKeyframe||{};Object.keys(kf).forEach(function(prop){var normalizedProp=prop,normalizedValue=kf[prop];if("offset"!==prop)switch(normalizedProp=normalizer.normalizePropertyName(normalizedProp,errors),normalizedValue){case _angular_animations.ɵPRE_STYLE:normalizedValue=preStyles[prop];break;case _angular_animations.AUTO_STYLE:normalizedValue=postStyles[prop];break;default:normalizedValue=normalizer.normalizeStyle
 Value(prop,normalizedProp,normalizedValue,errors)}normalizedKeyframe[normalizedProp]=normalizedValue}),isSameOffset||normalizedKeyframes.push(normalizedKeyframe),previousKeyframe=normalizedKeyframe,previousOffset=offset}),errors.length){throw new Error("Unable to animate due to the following errors:\n - "+errors.join("\n - "))}return normalizedKeyframes}function listenOnPlayer(player,eventName,event,callback){switch(eventName){case"start":player.onStart(function(){return callback(event&&copyAnimationEvent(event,"start",player.totalTime))});break;case"done":player.onDone(function(){return callback(event&&copyAnimationEvent(event,"done",player.totalTime))});break;case"destroy":player.onDestroy(function(){return callback(event&&copyAnimationEvent(event,"destroy",player.totalTime))})}}function copyAnimationEvent(e,phaseName,totalTime){var event=makeAnimationEvent(e.element,e.triggerName,e.fromState,e.toState,phaseName||e.phaseName,void 0==totalTime?e.totalTime:totalTime),data=e._data;re
 turn null!=data&&(event._data=data),event}function makeAnimationEvent(element,triggerName,fromState,toState,phaseName,totalTime){return void 0===phaseName&&(phaseName=""),void 0===totalTime&&(totalTime=0),{element:element,triggerName:triggerName,fromState:fromState,toState:toState,phaseName:phaseName,totalTime:totalTime}}function getOrSetAsInMap(map,key,defaultValue){var value;return map instanceof Map?(value=map.get(key))||map.set(key,value=defaultValue):(value=map[key])||(value=map[key]=defaultValue),value}function parseTimelineCommand(command){var separatorPos=command.indexOf(":");return[command.substring(1,separatorPos),command.substr(separatorPos+1)]}function resolveTimingValue(value){if("number"==typeof value)return value;var matches=value.match(/^(-?[\.\d]+)(m?s)/);return!matches||matches.length<2?0:_convertTimeValueToMS(parseFloat(matches[1]),matches[2])}function _convertTimeValueToMS(value,unit){switch(unit){case"s":return value*ONE_SECOND;default:return value}}function res
 olveTiming(timings,errors,allowNegativeValues){return timings.hasOwnProperty("duration")?timings:parseTimeExpression(timings,errors,allowNegativeValues)}function parseTimeExpression(exp,errors,allowNegativeValues){var duration,regex=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,delay=0,easing="";if("string"==typeof exp){var matches=exp.match(regex);if(null===matches)return errors.push('The provided timing value "'+exp+'" is invalid.'),{duration:0,delay:0,easing:""};duration=_convertTimeValueToMS(parseFloat(matches[1]),matches[2]);var delayMatch=matches[3];null!=delayMatch&&(delay=_convertTimeValueToMS(Math.floor(parseFloat(delayMatch)),matches[4]));var easingVal=matches[5];easingVal&&(easing=easingVal)}else duration=exp;if(!allowNegativeValues){var containsErrors=!1,startIndex=errors.length;duration<0&&(errors.push("Duration values below 0 are not allowed for this animation step."),containsErrors=!0),delay<0&&(errors.push("Delay values below 0 are not al
 lowed for this animation step."),containsErrors=!0),containsErrors&&errors.splice(startIndex,0,'The provided timing value "'+exp+'" is invalid.')}return{duration:duration,delay:delay,easing:easing}}function copyObj(obj,destination){return void 0===destination&&(destination={}),Object.keys(obj).forEach(function(prop){destination[prop]=obj[prop]}),destination}function normalizeStyles(styles){var normalizedStyles={};return Array.isArray(styles)?styles.forEach(function(data){return copyStyles(data,!1,normalizedStyles)}):copyStyles(styles,!1,normalizedStyles),normalizedStyles}function copyStyles(styles,readPrototype,destination){if(void 0===destination&&(destination={}),readPrototype)for(var prop in styles)destination[prop]=styles[prop];else copyObj(styles,destination);return destination}function setStyles(element,styles){element.style&&Object.keys(styles).forEach(function(prop){var camelProp=dashCaseToCamelCase(prop);element.style[camelProp]=styles[prop]})}function eraseStyles(element,s
 tyles){element.style&&Object.keys(styles).forEach(function(prop){var camelProp=dashCaseToCamelCase(prop);element.style[camelProp]=""})}function normalizeAnimationEntry(steps){return Array.isArray(steps)?1==steps.length?steps[0]:_angular_animations.sequence(steps):steps}function validateStyleParams(value,options,errors){var params=options.params||{},matches=extractStyleParams(value);matches.length&&matches.forEach(function(varName){params.hasOwnProperty(varName)||errors.push("Unable to resolve the local animation param "+varName+" in the given list of values")})}function extractStyleParams(value){var params=[];if("string"==typeof value){for(var val=value.toString(),match=void 0;match=PARAM_REGEX.exec(val);)params.push(match[1]);PARAM_REGEX.lastIndex=0}return params}function interpolateParams(value,params,errors){var original=value.toString(),str=original.replace(PARAM_REGEX,function(_,varName){var localVal=params[varName];return params.hasOwnProperty(varName)||(errors.push("Please pr
 ovide a value for the animation param "+varName),localVal=""),localVal.toString()});return str==original?value:str}function iteratorToArray(iterator){for(var arr=[],item=iterator.next();!item.done;)arr.push(item.value),item=iterator.next();return arr}function dashCaseToCamelCase(input){return input.replace(DASH_CASE_REGEXP,function(){for(var m=[],_i=0;_i<arguments.length;_i++)m[_i]=arguments[_i];return m[1].toUpperCase()})}function allowPreviousPlayerStylesMerge(duration,delay){return 0===duration||0===delay}function visitDslNode(visitor,node,context){switch(node.type){case 7:return visitor.visitTrigger(node,context);case 0:return visitor.visitState(node,context);case 1:return visitor.visitTransition(node,context);case 2:return visitor.visitSequence(node,context);case 3:return visitor.visitGroup(node,context);case 4:return visitor.visitAnimate(node,context);case 5:return visitor.visitKeyframes(node,context);case 6:return visitor.visitStyle(node,context);case 8:return visitor.visitRe
 ference(node,context);case 9:return visitor.visitAnimateChild(node,context);case 10:return visitor.visitAnimateRef(node,context);case 11:return visitor.visitQuery(node,context);case 12:return visitor.visitStagger(node,context);default:throw new Error("Unable to resolve animation metadata node #"+node.type)}}function parseTransitionExpr(transitionValue,errors){var expressions=[];return"string"==typeof transitionValue?transitionValue.split(/\s*,\s*/).forEach(function(str){return parseInnerTransitionStr(str,expressions,errors)}):expressions.push(transitionValue),expressions}function parseInnerTransitionStr(eventStr,expressions,errors){":"==eventStr[0]&&(eventStr=parseAnimationAlias(eventStr,errors));var match=eventStr.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(null==match||match.length<4)return errors.push('The provided transition expression "'+eventStr+'" is not supported'),expressions;var fromState=match[1],separator=match[2],toState=match[3];expressions.push(makeLambdaFromS
 tates(fromState,toState));var isFullAnyStateExpr=fromState==ANY_STATE&&toState==ANY_STATE;"<"!=separator[0]||isFullAnyStateExpr||expressions.push(makeLambdaFromStates(toState,fromState))}function parseAnimationAlias(alias,errors){switch(alias){case":enter":return"void => *";case":leave":return"* => void";default:return errors.push('The transition alias value "'+alias+'" is not supported'),"* => *"}}function makeLambdaFromStates(lhs,rhs){var LHS_MATCH_BOOLEAN=TRUE_BOOLEAN_VALUES.has(lhs)||FALSE_BOOLEAN_VALUES.has(lhs),RHS_MATCH_BOOLEAN=TRUE_BOOLEAN_VALUES.has(rhs)||FALSE_BOOLEAN_VALUES.has(rhs);return function(fromState,toState){var lhsMatch=lhs==ANY_STATE||lhs==fromState,rhsMatch=rhs==ANY_STATE||rhs==toState;return!lhsMatch&&LHS_MATCH_BOOLEAN&&"boolean"==typeof fromState&&(lhsMatch=fromState?TRUE_BOOLEAN_VALUES.has(lhs):FALSE_BOOLEAN_VALUES.has(lhs)),!rhsMatch&&RHS_MATCH_BOOLEAN&&"boolean"==typeof toState&&(rhsMatch=toState?TRUE_BOOLEAN_VALUES.has(rhs):FALSE_BOOLEAN_VALUES.has(rhs))
 ,lhsMatch&&rhsMatch}}function buildAnimationAst(metadata,errors){return(new AnimationAstBuilderVisitor).build(metadata,errors)}function normalizeSelector(selector){var hasAmpersand=!!selector.split(/\s*,\s*/).find(function(token){return token==SELF_TOKEN});return hasAmpersand&&(selector=selector.replace(SELF_TOKEN_REGEX,"")),selector=selector.replace(ENTER_TOKEN_REGEX,ENTER_SELECTOR).replace(LEAVE_TOKEN_REGEX,LEAVE_SELECTOR).replace(/@\*/g,NG_TRIGGER_SELECTOR).replace(/@\w+/g,function(match){return NG_TRIGGER_SELECTOR+"-"+match.substr(1)}).replace(/:animating/g,NG_ANIMATING_SELECTOR),[selector,hasAmpersand]}function normalizeParams(obj){return obj?copyObj(obj):null}function consumeOffset(styles){if("string"==typeof styles)return null;var offset=null;if(Array.isArray(styles))styles.forEach(function(styleTuple){if(isObject(styleTuple)&&styleTuple.hasOwnProperty("offset")){var obj=styleTuple;offset=parseFloat(obj.offset),delete obj.offset}});else if(isObject(styles)&&styles.hasOwnPrope
 rty("offset")){var obj=styles;offset=parseFloat(obj.offset),delete obj.offset}return offset}function isObject(value){return!Array.isArray(value)&&"object"==typeof value}function constructTimingAst(value,errors){var timings=null;if(value.hasOwnProperty("duration"))timings=value;else if("number"==typeof value){var duration=resolveTiming(value,errors).duration;return makeTimingAst(duration,0,"")}var strValue=value;if(strValue.split(/\s+/).some(function(v){return"{"==v.charAt(0)&&"{"==v.charAt(1)})){var ast=makeTimingAst(0,0,"");return ast.dynamic=!0,ast.strValue=strValue,ast}return timings=timings||resolveTiming(strValue,errors),makeTimingAst(timings.duration,timings.delay,timings.easing)}function normalizeAnimationOptions(options){return options?(options=copyObj(options),options.params&&(options.params=normalizeParams(options.params))):options={},options}function makeTimingAst(duration,delay,easing){return{duration:duration,delay:delay,easing:easing}}/**
+ * @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
+ */
+function createTimelineInstruction(element,keyframes,preStyleProps,postStyleProps,duration,delay,easing,subTimeline){return void 0===easing&&(easing=null),void 0===subTimeline&&(subTimeline=!1),{type:1,element:element,keyframes:keyframes,preStyleProps:preStyleProps,postStyleProps:postStyleProps,duration:duration,delay:delay,totalTime:duration+delay,easing:easing,subTimeline:subTimeline}}function buildAnimationTimelines(driver,rootElement,ast,startingStyles,finalStyles,options,subInstructions,errors){return void 0===startingStyles&&(startingStyles={}),void 0===finalStyles&&(finalStyles={}),void 0===errors&&(errors=[]),(new AnimationTimelineBuilderVisitor).buildKeyframes(driver,rootElement,ast,startingStyles,finalStyles,options,subInstructions,errors)}function roundOffset(offset,decimalPoints){void 0===decimalPoints&&(decimalPoints=3);var mult=Math.pow(10,decimalPoints-1);return Math.round(offset*mult)/mult}function flattenStyles(input,allStyles){var allProperties,styles={};return inp
 ut.forEach(function(token){"*"===token?(allProperties=allProperties||Object.keys(allStyles),allProperties.forEach(function(prop){styles[prop]=_angular_animations.AUTO_STYLE})):copyStyles(token,!1,styles)}),styles}/**
+ * @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
+ */
+function createTransitionInstruction(element,triggerName,fromState,toState,isRemovalTransition,fromStyles,toStyles,timelines,queriedElements,preStyleProps,postStyleProps,errors){return{type:0,element:element,triggerName:triggerName,isRemovalTransition:isRemovalTransition,fromState:fromState,fromStyles:fromStyles,toState:toState,toStyles:toStyles,timelines:timelines,queriedElements:queriedElements,preStyleProps:preStyleProps,postStyleProps:postStyleProps,errors:errors}}function oneOrMoreTransitionsMatch(matchFns,currentState,nextState){return matchFns.some(function(fn){return fn(currentState,nextState)})}/**
+ * @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
+ */
+function buildTrigger(name,ast){return new AnimationTrigger(name,ast)}function createFallbackTransition(triggerName,states){return new AnimationTransitionFactory(triggerName,{type:1,animation:{type:2,steps:[],options:null},matchers:[function(fromState,toState){return!0}],options:null,queryCount:0,depCount:0},states)}function balanceProperties(obj,key1,key2){obj.hasOwnProperty(key1)?obj.hasOwnProperty(key2)||(obj[key2]=obj[key1]):obj.hasOwnProperty(key2)&&(obj[key1]=obj[key2])}function deleteOrUnsetInMap(map,key,value){var currentValues;if(map instanceof Map){if(currentValues=map.get(key)){if(currentValues.length){var index=currentValues.indexOf(value);currentValues.splice(index,1)}0==currentValues.length&&map.delete(key)}}else if(currentValues=map[key]){if(currentValues.length){var index=currentValues.indexOf(value);currentValues.splice(index,1)}0==currentValues.length&&delete map[key]}return currentValues}function normalizeTriggerValue(value){return null!=value?value:null}function 
 isElementNode(node){return node&&1===node.nodeType}function isTriggerEventValid(eventName){return"start"==eventName||"done"==eventName}function cloakElement(element,value){var oldValue=element.style.display;return element.style.display=null!=value?value:"none",oldValue}function cloakAndComputeStyles(driver,elements,elementPropsMap,defaultStyle){var cloakVals=[];elements.forEach(function(element){return cloakVals.push(cloakElement(element))});var valuesMap=new Map,failedElements=[];elementPropsMap.forEach(function(props,element){var styles={};props.forEach(function(prop){var value=styles[prop]=driver.computeStyle(element,prop,defaultStyle);value&&0!=value.length||(element[REMOVAL_FLAG]=NULL_REMOVED_QUERIED_STATE,failedElements.push(element))}),valuesMap.set(element,styles)});var i=0;return elements.forEach(function(element){return cloakElement(element,cloakVals[i++])}),[valuesMap,failedElements]}function createIsRootFilterFn(nodes){var isRoot,nodeSet=new Set(nodes),knownRootContainer
 =new Set;return isRoot=function(node){return!node||!nodeSet.has(node.parentNode)&&(!!knownRootContainer.has(node.parentNode)||!!isRoot(node.parentNode)&&(knownRootContainer.add(node),!0))}}function containsClass(element,className){if(element.classList)return element.classList.contains(className);var classes=element[CLASSES_CACHE_KEY];return classes&&classes[className]}function addClass(element,className){if(element.classList)element.classList.add(className);else{var classes=element[CLASSES_CACHE_KEY];classes||(classes=element[CLASSES_CACHE_KEY]={}),classes[className]=!0}}function removeClass(element,className){if(element.classList)element.classList.remove(className);else{var classes=element[CLASSES_CACHE_KEY];classes&&delete classes[className]}}function getBodyNode(){return"undefined"!=typeof document?document.body:null}function removeNodesAfterAnimationDone(engine,element,players){optimizeGroupPlayer(players).onDone(function(){return engine.processLeaveNode(element)})}function flat
 tenGroupPlayers(players){var finalPlayers=[];return _flattenGroupPlayersRecur(players,finalPlayers),finalPlayers}function _flattenGroupPlayersRecur(players,finalPlayers){for(var i=0;i<players.length;i++){var player=players[i];player instanceof _angular_animations.ɵAnimationGroupPlayer?_flattenGroupPlayersRecur(player.players,finalPlayers):finalPlayers.push(player)}}function objEquals(a,b){var k1=Object.keys(a),k2=Object.keys(b);if(k1.length!=k2.length)return!1;for(var i=0;i<k1.length;i++){var prop=k1[i];if(!b.hasOwnProperty(prop)||a[prop]!==b[prop])return!1}return!0}function replacePostStylesAsPre(element,allPreStyleElements,allPostStyleElements){var postEntry=allPostStyleElements.get(element);if(!postEntry)return!1;var preEntry=allPreStyleElements.get(element);return preEntry?postEntry.forEach(function(data){return preEntry.add(data)}):allPreStyleElements.set(element,postEntry),allPostStyleElements.delete(element),!0}function _computeStyle(element,prop){return window.getComputedSt
 yle(element)[prop]}function supportsWebAnimations(){return"undefined"!=typeof Element&&"function"==typeof Element.prototype.animate}var extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)b.hasOwnProperty(p)&&(d[p]=b[p])},_contains=function(elm1,elm2){return!1},_matches=function(element,selector){return!1},_query=function(element,selector,multi){return[]};if("undefined"!=typeof Element){if(_contains=function(elm1,elm2){return elm1.contains(elm2)},Element.prototype.matches)_matches=function(element,selector){return element.matches(selector)};else{var proto=Element.prototype,fn_1=proto.matchesSelector||proto.mozMatchesSelector||proto.msMatchesSelector||proto.oMatchesSelector||proto.webkitMatchesSelector;fn_1&&(_matches=function(element,selector){return fn_1.apply(element,[selector])})}_query=function(element,selector,multi){var results=[];if(multi)results.push.apply(results,element.querySelectorAll(selector));
 else{var elm=element.querySelector(selector);elm&&results.push(elm)}return results}}var matchesElement=_matches,containsElement=_contains,invokeQuery=_query,NoopAnimationDriver=function(){function NoopAnimationDriver(){}return NoopAnimationDriver.prototype.matchesElement=function(element,selector){return matchesElement(element,selector)},NoopAnimationDriver.prototype.containsElement=function(elm1,elm2){return containsElement(elm1,elm2)},NoopAnimationDriver.prototype.query=function(element,selector,multi){return invokeQuery(element,selector,multi)},NoopAnimationDriver.prototype.computeStyle=function(element,prop,defaultValue){return defaultValue||""},NoopAnimationDriver.prototype.animate=function(element,keyframes,duration,delay,easing,previousPlayers){return void 0===previousPlayers&&(previousPlayers=[]),new _angular_animations.NoopAnimationPlayer},NoopAnimationDriver}(),AnimationDriver=function(){function AnimationDriver(){}return AnimationDriver}();AnimationDriver.NOOP=new NoopAni
 mationDriver;/**
+ * @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
+ */
+var ONE_SECOND=1e3,ENTER_SELECTOR=".ng-enter",LEAVE_SELECTOR=".ng-leave",NG_TRIGGER_SELECTOR=".ng-trigger",NG_ANIMATING_SELECTOR=".ng-animating",PARAM_REGEX=new RegExp("{{\\s*(.+?)\\s*}}","g"),DASH_CASE_REGEXP=/-+([a-z0-9])/g,ANY_STATE="*",TRUE_BOOLEAN_VALUES=new Set;TRUE_BOOLEAN_VALUES.add("true"),TRUE_BOOLEAN_VALUES.add("1");var FALSE_BOOLEAN_VALUES=new Set;FALSE_BOOLEAN_VALUES.add("false"),FALSE_BOOLEAN_VALUES.add("0");/**
+ * @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
+ */
+var SELF_TOKEN=":self",SELF_TOKEN_REGEX=new RegExp("s*"+SELF_TOKEN+"s*,?","g"),LEAVE_TOKEN_REGEX=new RegExp(":leave","g"),ENTER_TOKEN_REGEX=new RegExp(":enter","g"),AnimationAstBuilderVisitor=function(){function AnimationAstBuilderVisitor(){}return AnimationAstBuilderVisitor.prototype.build=function(metadata,errors){var context=new AnimationAstBuilderContext(errors);return this._resetContextStyleTimingState(context),visitDslNode(this,normalizeAnimationEntry(metadata),context)},AnimationAstBuilderVisitor.prototype._resetContextStyleTimingState=function(context){context.currentQuerySelector="",context.collectedStyles={},context.collectedStyles[""]={},context.currentTime=0},AnimationAstBuilderVisitor.prototype.visitTrigger=function(metadata,context){var _this=this,queryCount=context.queryCount=0,depCount=context.depCount=0,states=[],transitions=[];return metadata.definitions.forEach(function(def){if(_this._resetContextStyleTimingState(context),0==def.type){var stateDef_1=def,name=state
 Def_1.name;name.split(/\s*,\s*/).forEach(function(n){stateDef_1.name=n,states.push(_this.visitState(stateDef_1,context))}),stateDef_1.name=name}else if(1==def.type){var transition=_this.visitTransition(def,context);queryCount+=transition.queryCount,depCount+=transition.depCount,transitions.push(transition)}else context.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:metadata.name,states:states,transitions:transitions,queryCount:queryCount,depCount:depCount,options:null}},AnimationAstBuilderVisitor.prototype.visitState=function(metadata,context){var styleAst=this.visitStyle(metadata.styles,context),astParams=metadata.options&&metadata.options.params||null;if(styleAst.containsDynamicStyles){var missingSubs_1=new Set,params_1=astParams||{};if(styleAst.styles.forEach(function(value){if(isObject(value)){var stylesObj_1=value;Object.keys(stylesObj_1).forEach(function(prop){extractStyleParams(stylesObj_1[prop]).forEach(function(sub){par
 ams_1.hasOwnProperty(sub)||missingSubs_1.add(sub)})})}}),missingSubs_1.size){var missingSubsArr=iteratorToArray(missingSubs_1.values());context.errors.push('state("'+metadata.name+'", ...) must define default values for all the following style substitutions: '+missingSubsArr.join(", "))}}return{type:0,name:metadata.name,style:styleAst,options:astParams?{params:astParams}:null}},AnimationAstBuilderVisitor.prototype.visitTransition=function(metadata,context){context.queryCount=0,context.depCount=0;var animation=visitDslNode(this,normalizeAnimationEntry(metadata.animation),context);return{type:1,matchers:parseTransitionExpr(metadata.expr,context.errors),animation:animation,queryCount:context.queryCount,depCount:context.depCount,options:normalizeAnimationOptions(metadata.options)}},AnimationAstBuilderVisitor.prototype.visitSequence=function(metadata,context){var _this=this;return{type:2,steps:metadata.steps.map(function(s){return visitDslNode(_this,s,context)}),options:normalizeAnimatio
 nOptions(metadata.options)}},AnimationAstBuilderVisitor.prototype.visitGroup=function(metadata,context){var _this=this,currentTime=context.currentTime,furthestTime=0,steps=metadata.steps.map(function(step){context.currentTime=currentTime;var innerAst=visitDslNode(_this,step,context);return furthestTime=Math.max(furthestTime,context.currentTime),innerAst});return context.currentTime=furthestTime,{type:3,steps:steps,options:normalizeAnimationOptions(metadata.options)}},AnimationAstBuilderVisitor.prototype.visitAnimate=function(metadata,context){var timingAst=constructTimingAst(metadata.timings,context.errors);context.currentAnimateTimings=timingAst;var styleAst,styleMetadata=metadata.styles?metadata.styles:_angular_animations.style({});if(5==styleMetadata.type)styleAst=this.visitKeyframes(styleMetadata,context);else{var styleMetadata_1=metadata.styles,isEmpty=!1;if(!styleMetadata_1){isEmpty=!0;var newStyleData={};timingAst.easing&&(newStyleData.easing=timingAst.easing),styleMetadata_1
 =_angular_animations.style(newStyleData)}context.currentTime+=timingAst.duration+timingAst.delay;var _styleAst=this.visitStyle(styleMetadata_1,context);_styleAst.isEmptyStep=isEmpty,styleAst=_styleAst}return context.currentAnimateTimings=null,{type:4,timings:timingAst,style:styleAst,options:null}},AnimationAstBuilderVisitor.prototype.visitStyle=function(metadata,context){var ast=this._makeStyleAst(metadata,context);return this._validateStyleAst(ast,context),ast},AnimationAstBuilderVisitor.prototype._makeStyleAst=function(metadata,context){var styles=[];Array.isArray(metadata.styles)?metadata.styles.forEach(function(styleTuple){"string"==typeof styleTuple?styleTuple==_angular_animations.AUTO_STYLE?styles.push(styleTuple):context.errors.push("The provided style string value "+styleTuple+" is not allowed."):styles.push(styleTuple)}):styles.push(metadata.styles);var containsDynamicStyles=!1,collectedEasing=null;return styles.forEach(function(styleData){if(isObject(styleData)){var styleM
 ap=styleData,easing=styleMap.easing;if(easing&&(collectedEasing=easing,delete styleMap.easing),!containsDynamicStyles)for(var prop in styleMap){var value=styleMap[prop];if(value.toString().indexOf("{{")>=0){containsDynamicStyles=!0;break}}}}),{type:6,styles:styles,easing:collectedEasing,offset:metadata.offset,containsDynamicStyles:containsDynamicStyles,options:null}},AnimationAstBuilderVisitor.prototype._validateStyleAst=function(ast,context){var timings=context.currentAnimateTimings,endTime=context.currentTime,startTime=context.currentTime;timings&&startTime>0&&(startTime-=timings.duration+timings.delay),ast.styles.forEach(function(tuple){"string"!=typeof tuple&&Object.keys(tuple).forEach(function(prop){var collectedStyles=context.collectedStyles[context.currentQuerySelector],collectedEntry=collectedStyles[prop],updateCollectedStyle=!0;collectedEntry&&(startTime!=endTime&&startTime>=collectedEntry.startTime&&endTime<=collectedEntry.endTime&&(context.errors.push('The CSS property "'
 +prop+'" that exists between the times of "'+collectedEntry.startTime+'ms" and "'+collectedEntry.endTime+'ms" is also being animated in a parallel animation between the times of "'+startTime+'ms" and "'+endTime+'ms"'),updateCollectedStyle=!1),startTime=collectedEntry.startTime),updateCollectedStyle&&(collectedStyles[prop]={startTime:startTime,endTime:endTime}),context.options&&validateStyleParams(tuple[prop],context.options,context.errors)})})},AnimationAstBuilderVisitor.prototype.visitKeyframes=function(metadata,context){var _this=this,ast={type:5,styles:[],options:null};if(!context.currentAnimateTimings)return context.errors.push("keyframes() must be placed inside of a call to animate()"),ast;var totalKeyframesWithOffsets=0,offsets=[],offsetsOutOfOrder=!1,keyframesOutOfRange=!1,previousOffset=0,keyframes=metadata.steps.map(function(styles){var style$$1=_this._makeStyleAst(styles,context),offsetVal=null!=style$$1.offset?style$$1.offset:consumeOffset(style$$1.styles),offset=0;return
  null!=offsetVal&&(totalKeyframesWithOffsets++,offset=style$$1.offset=offsetVal),keyframesOutOfRange=keyframesOutOfRange||offset<0||offset>1,offsetsOutOfOrder=offsetsOutOfOrder||offset<previousOffset,previousOffset=offset,offsets.push(offset),style$$1});keyframesOutOfRange&&context.errors.push("Please ensure that all keyframe offsets are between 0 and 1"),offsetsOutOfOrder&&context.errors.push("Please ensure that all keyframe offsets are in order");var length=metadata.steps.length,generatedOffset=0;totalKeyframesWithOffsets>0&&totalKeyframesWithOffsets<length?context.errors.push("Not all style() steps within the declared keyframes() contain offsets"):0==totalKeyframesWithOffsets&&(generatedOffset=1/(length-1));var limit=length-1,currentTime=context.currentTime,currentAnimateTimings=context.currentAnimateTimings,animateDuration=currentAnimateTimings.duration;return keyframes.forEach(function(kf,i){var offset=generatedOffset>0?i==limit?1:generatedOffset*i:offsets[i],durationUpToThisFr
 ame=offset*animateDuration;context.currentTime=currentTime+currentAnimateTimings.delay+durationUpToThisFrame,currentAnimateTimings.duration=durationUpToThisFrame,_this._validateStyleAst(kf,context),kf.offset=offset,ast.styles.push(kf)}),ast},AnimationAstBuilderVisitor.prototype.visitReference=function(metadata,context){return{type:8,animation:visitDslNode(this,normalizeAnimationEntry(metadata.animation),context),options:normalizeAnimationOptions(metadata.options)}},AnimationAstBuilderVisitor.prototype.visitAnimateChild=function(metadata,context){return context.depCount++,{type:9,options:normalizeAnimationOptions(metadata.options)}},AnimationAstBuilderVisitor.prototype.visitAnimateRef=function(metadata,context){return{type:10,animation:this.visitReference(metadata.animation,context),options:normalizeAnimationOptions(metadata.options)}},AnimationAstBuilderVisitor.prototype.visitQuery=function(metadata,context){var parentSelector=context.currentQuerySelector,options=metadata.options||{
 };context.queryCount++,context.currentQuery=metadata;var _a=normalizeSelector(metadata.selector),selector=_a[0],includeSelf=_a[1];context.currentQuerySelector=parentSelector.length?parentSelector+" "+selector:selector,getOrSetAsInMap(context.collectedStyles,context.currentQuerySelector,{});var animation=visitDslNode(this,normalizeAnimationEntry(metadata.animation),context);return context.currentQuery=null,context.currentQuerySelector=parentSelector,{type:11,selector:selector,limit:options.limit||0,optional:!!options.optional,includeSelf:includeSelf,animation:animation,originalSelector:metadata.selector,options:normalizeAnimationOptions(metadata.options)}},AnimationAstBuilderVisitor.prototype.visitStagger=function(metadata,context){context.currentQuery||context.errors.push("stagger() can only be used inside of query()");var timings="full"===metadata.timings?{duration:0,delay:0,easing:"full"}:resolveTiming(metadata.timings,context.errors,!0);return{type:12,animation:visitDslNode(this,
 normalizeAnimationEntry(metadata.animation),context),timings:timings,options:null}},AnimationAstBuilderVisitor}(),AnimationAstBuilderContext=function(){function AnimationAstBuilderContext(errors){this.errors=errors,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null}return AnimationAstBuilderContext}(),ElementInstructionMap=function(){function ElementInstructionMap(){this._map=new Map}return ElementInstructionMap.prototype.consume=function(element){var instructions=this._map.get(element);return instructions?this._map.delete(element):instructions=[],instructions},ElementInstructionMap.prototype.append=function(element,instructions){var existingInstructions=this._map.get(element);existingInstructions||this._map.set(element,existingInstructions=[]),existingInstructions.push.apply(existingInstructions,instructions)},ElementInstructi
 onMap.prototype.has=function(element){return this._map.has(element)},ElementInstructionMap.prototype.clear=function(){this._map.clear()},ElementInstructionMap}(),AnimationTimelineBuilderVisitor=function(){function AnimationTimelineBuilderVisitor(){}return AnimationTimelineBuilderVisitor.prototype.buildKeyframes=function(driver,rootElement,ast,startingStyles,finalStyles,options,subInstructions,errors){void 0===errors&&(errors=[]),subInstructions=subInstructions||new ElementInstructionMap;var context=new AnimationTimelineContext(driver,rootElement,subInstructions,errors,[]);context.options=options,context.currentTimeline.setStyles([startingStyles],null,context.errors,options),visitDslNode(this,ast,context);var timelines=context.timelines.filter(function(timeline){return timeline.containsAnimation()});if(timelines.length&&Object.keys(finalStyles).length){var tl=timelines[timelines.length-1];tl.allowOnlyTimelineStyles()||tl.setStyles([finalStyles],null,context.errors,options)}return tim
 elines.length?timelines.map(function(timeline){return timeline.buildKeyframes()}):[createTimelineInstruction(rootElement,[],[],[],0,0,"",!1)]},AnimationTimelineBuilderVisitor.prototype.visitTrigger=function(ast,context){},AnimationTimelineBuilderVisitor.prototype.visitState=function(ast,context){},AnimationTimelineBuilderVisitor.prototype.visitTransition=function(ast,context){},AnimationTimelineBuilderVisitor.prototype.visitAnimateChild=function(ast,context){var elementInstructions=context.subInstructions.consume(context.element);if(elementInstructions){var innerContext=context.createSubContext(ast.options),startTime=context.currentTimeline.currentTime,endTime=this._visitSubInstructions(elementInstructions,innerContext,innerContext.options);startTime!=endTime&&context.transformIntoNewTimeline(endTime)}context.previousNode=ast},AnimationTimelineBuilderVisitor.prototype.visitAnimateRef=function(ast,context){var innerContext=context.createSubContext(ast.options);innerContext.transformI
 ntoNewTimeline(),this.visitReference(ast.animation,innerContext),context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime),context.previousNode=ast},AnimationTimelineBuilderVisitor.prototype._visitSubInstructions=function(instructions,context,options){var startTime=context.currentTimeline.currentTime,furthestTime=startTime,duration=null!=options.duration?resolveTimingValue(options.duration):null,delay=null!=options.delay?resolveTimingValue(options.delay):null;return 0!==duration&&instructions.forEach(function(instruction){var instructionTimings=context.appendInstructionToTimeline(instruction,duration,delay);furthestTime=Math.max(furthestTime,instructionTimings.duration+instructionTimings.delay)}),furthestTime},AnimationTimelineBuilderVisitor.prototype.visitReference=function(ast,context){context.updateOptions(ast.options,!0),visitDslNode(this,ast.animation,context),context.previousNode=ast},AnimationTimelineBuilderVisitor.prototype.visitSequence=function(ast,context
 ){var _this=this,subContextCount=context.subContextCount,ctx=context,options=ast.options;if(options&&(options.params||options.delay)&&(ctx=context.createSubContext(options),ctx.transformIntoNewTimeline(),null!=options.delay)){6==ctx.previousNode.type&&(ctx.currentTimeline.snapshotCurrentStyles(),ctx.previousNode=DEFAULT_NOOP_PREVIOUS_NODE);var delay=resolveTimingValue(options.delay);ctx.delayNextStep(delay)}ast.steps.length&&(ast.steps.forEach(function(s){return visitDslNode(_this,s,ctx)}),ctx.currentTimeline.applyStylesToKeyframe(),ctx.subContextCount>subContextCount&&ctx.transformIntoNewTimeline()),context.previousNode=ast},AnimationTimelineBuilderVisitor.prototype.visitGroup=function(ast,context){var _this=this,innerTimelines=[],furthestTime=context.currentTimeline.currentTime,delay=ast.options&&ast.options.delay?resolveTimingValue(ast.options.delay):0;ast.steps.forEach(function(s){var innerContext=context.createSubContext(ast.options);delay&&innerContext.delayNextStep(delay),vis
 itDslNode(_this,s,innerContext),furthestTime=Math.max(furthestTime,innerContext.currentTimeline.currentTime),innerTimelines.push(innerContext.currentTimeline)}),innerTimelines.forEach(function(timeline){return context.currentTimeline.mergeTimelineCollectedStyles(timeline)}),context.transformIntoNewTimeline(furthestTime),context.previousNode=ast},AnimationTimelineBuilderVisitor.prototype._visitTiming=function(ast,context){if(ast.dynamic){var strValue=ast.strValue;return resolveTiming(context.params?interpolateParams(strValue,context.params,context.errors):strValue,context.errors)}return{duration:ast.duration,delay:ast.delay,easing:ast.easing}},AnimationTimelineBuilderVisitor.prototype.visitAnimate=function(ast,context){var timings=context.currentAnimateTimings=this._visitTiming(ast.timings,context),timeline=context.currentTimeline;timings.delay&&(context.incrementTime(timings.delay),timeline.snapshotCurrentStyles());var style$$1=ast.style;5==style$$1.type?this.visitKeyframes(style$$1
 ,context):(context.incrementTime(timings.duration),this.visitStyle(style$$1,context),timeline.applyStylesToKeyframe()),context.currentAnimateTimings=null,context.previousNode=ast},AnimationTimelineBuilderVisitor.prototype.visitStyle=function(ast,context){var timeline=context.currentTimeline,timings=context.currentAnimateTimings;!timings&&timeline.getCurrentStyleProperties().length&&timeline.forwardFrame();var easing=timings&&timings.easing||ast.easing;ast.isEmptyStep?timeline.applyEmptyStep(easing):timeline.setStyles(ast.styles,easing,context.errors,context.options),context.previousNode=ast},AnimationTimelineBuilderVisitor.prototype.visitKeyframes=function(ast,context){var currentAnimateTimings=context.currentAnimateTimings,startTime=context.currentTimeline.duration,duration=currentAnimateTimings.duration,innerContext=context.createSubContext(),innerTimeline=innerContext.currentTimeline;innerTimeline.easing=currentAnimateTimings.easing,ast.styles.forEach(function(step){var offset=st
 ep.offset||0;innerTimeline.forwardTime(offset*duration),innerTimeline.setStyles(step.styles,step.easing,context.errors,context.options),innerTimeline.applyStylesToKeyframe()}),context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline),context.transformIntoNewTimeline(startTime+duration),context.previousNode=ast},AnimationTimelineBuilderVisitor.prototype.visitQuery=function(ast,context){var _this=this,startTime=context.currentTimeline.currentTime,options=ast.options||{},delay=options.delay?resolveTimingValue(options.delay):0;delay&&(6===context.previousNode.type||0==startTime&&context.currentTimeline.getCurrentStyleProperties().length)&&(context.currentTimeline.snapshotCurrentStyles(),context.previousNode=DEFAULT_NOOP_PREVIOUS_NODE);var furthestTime=startTime,elms=context.invokeQuery(ast.selector,ast.originalSelector,ast.limit,ast.includeSelf,!!options.optional,context.errors);context.currentQueryTotal=elms.length;var sameElementTimeline=null;elms.forEach(function(element,i)
 {context.currentQueryIndex=i;var innerContext=context.createSubContext(ast.options,element);delay&&innerContext.delayNextStep(delay),element===context.element&&(sameElementTimeline=innerContext.currentTimeline),visitDslNode(_this,ast.animation,innerContext),innerContext.currentTimeline.applyStylesToKeyframe();var endTime=innerContext.currentTimeline.currentTime;furthestTime=Math.max(furthestTime,endTime)}),context.currentQueryIndex=0,context.currentQueryTotal=0,context.transformIntoNewTimeline(furthestTime),sameElementTimeline&&(context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline),context.currentTimeline.snapshotCurrentStyles()),context.previousNode=ast},AnimationTimelineBuilderVisitor.prototype.visitStagger=function(ast,context){var parentContext=context.parentContext,tl=context.currentTimeline,timings=ast.timings,duration=Math.abs(timings.duration),maxTime=duration*(context.currentQueryTotal-1),delay=duration*context.currentQueryIndex;switch(timings.duration<0
 ?"reverse":timings.easing){case"reverse":delay=maxTime-delay;break;case"full":delay=parentContext.currentStaggerTime}var timeline=context.currentTimeline;delay&&timeline.delayNextStep(delay);var startingTime=timeline.currentTime;visitDslNode(this,ast.animation,context),context.previousNode=ast,parentContext.currentStaggerTime=tl.currentTime-startingTime+(tl.startTime-parentContext.currentTimeline.startTime)},AnimationTimelineBuilderVisitor}(),DEFAULT_NOOP_PREVIOUS_NODE={},AnimationTimelineContext=function(){function AnimationTimelineContext(_driver,element,subInstructions,errors,timelines,initialTimeline){this._driver=_driver,this.element=element,this.subInstructions=subInstructions,this.errors=errors,this.timelines=timelines,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=DEFAULT_NOOP_PREVIOUS_NODE,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=initialTimeline||new Tim
 elineBuilder(element,0),timelines.push(this.currentTimeline)}return Object.defineProperty(AnimationTimelineContext.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),AnimationTimelineContext.prototype.updateOptions=function(options,skipIfExists){var _this=this;if(options){var newOptions=options,optionsToUpdate=this.options;null!=newOptions.duration&&(optionsToUpdate.duration=resolveTimingValue(newOptions.duration)),null!=newOptions.delay&&(optionsToUpdate.delay=resolveTimingValue(newOptions.delay));var newParams=newOptions.params;if(newParams){var paramsToUpdate_1=optionsToUpdate.params;paramsToUpdate_1||(paramsToUpdate_1=this.options.params={}),Object.keys(newParams).forEach(function(name){skipIfExists&&paramsToUpdate_1.hasOwnProperty(name)||(paramsToUpdate_1[name]=interpolateParams(newParams[name],paramsToUpdate_1,_this.errors))})}}},AnimationTimelineContext.prototype._copyOptions=function(){var options={};if(this.options){var oldParams_
 1=this.options.params;if(oldParams_1){var params_2=options.params={};Object.keys(oldParams_1).forEach(function(name){params_2[name]=oldParams_1[name]})}}return options},AnimationTimelineContext.prototype.createSubContext=function(options,element,newTime){void 0===options&&(options=null);var target=element||this.element,context=new AnimationTimelineContext(this._driver,target,this.subInstructions,this.errors,this.timelines,this.currentTimeline.fork(target,newTime||0));return context.previousNode=this.previousNode,context.currentAnimateTimings=this.currentAnimateTimings,context.options=this._copyOptions(),context.updateOptions(options),context.currentQueryIndex=this.currentQueryIndex,context.currentQueryTotal=this.currentQueryTotal,context.parentContext=this,this.subContextCount++,context},AnimationTimelineContext.prototype.transformIntoNewTimeline=function(newTime){return this.previousNode=DEFAULT_NOOP_PREVIOUS_NODE,this.currentTimeline=this.currentTimeline.fork(this.element,newTime)
 ,this.timelines.push(this.currentTimeline),this.currentTimeline},AnimationTimelineContext.prototype.appendInstructionToTimeline=function(instruction,duration,delay){var updatedTimings={duration:null!=duration?duration:instruction.duration,delay:this.currentTimeline.currentTime+(null!=delay?delay:0)+instruction.delay,easing:""},builder=new SubTimelineBuilder(instruction.element,instruction.keyframes,instruction.preStyleProps,instruction.postStyleProps,updatedTimings,instruction.stretchStartingKeyframe);return this.timelines.push(builder),updatedTimings},AnimationTimelineContext.prototype.incrementTime=function(time){this.currentTimeline.forwardTime(this.currentTimeline.duration+time)},AnimationTimelineContext.prototype.delayNextStep=function(delay){delay>0&&this.currentTimeline.delayNextStep(delay)},AnimationTimelineContext.prototype.invokeQuery=function(selector,originalSelector,limit,includeSelf,optional,errors){var results=[];if(includeSelf&&results.push(this.element),selector.len
 gth>0){var multi=1!=limit,elements=this._driver.query(this.element,selector,multi);0!==limit&&(elements=elements.slice(0,limit)),results.push.apply(results,elements)}return optional||0!=results.length||errors.push('`query("'+originalSelector+'")` returned zero elements. (Use `query("'+originalSelector+'", { optional: true })` if you wish to allow this.)'),results},AnimationTimelineContext}(),TimelineBuilder=function(){function TimelineBuilder(element,startTime,_elementTimelineStylesLookup){this.element=element,this.startTime=startTime,this._elementTimelineStylesLookup=_elementTimelineStylesLookup,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(
 element),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(element,this._localTimelineStyles)),this._loadKeyframe()}return TimelineBuilder.prototype.containsAnimation=function(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}},TimelineBuilder.prototype.getCurrentStyleProperties=function(){return Object.keys(this._currentKeyframe)},Object.defineProperty(TimelineBuilder.prototype,"currentTime",{get:function(){return this.startTime+this.duration},enumerable:!0,configurable:!0}),TimelineBuilder.prototype.delayNextStep=function(delay){var hasPreStyleStep=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||hasPreStyleStep?(this.forwardTime(this.currentTime+delay),hasPreStyleStep&&this.snapshotCurrentStyles()):this.startTime+=delay},TimelineBuilder.prototype.fork=function(element,currentTime){return this.applyStylesToKeyfra
 me(),new TimelineBuilder(element,currentTime||this.currentTime,this._elementTimelineStylesLookup)},TimelineBuilder.prototype._loadKeyframe=function(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))},TimelineBuilder.prototype.forwardFrame=function(){this.duration+=1,this._loadKeyframe()},TimelineBuilder.prototype.forwardTime=function(time){this.applyStylesToKeyframe(),this.duration=time,this._loadKeyframe()},TimelineBuilder.prototype._updateStyle=function(prop,value){this._localTimelineStyles[prop]=value,this._globalTimelineStyles[prop]=value,this._styleSummary[prop]={time:this.currentTime,value:value}},TimelineBuilder.prototype.allowOnlyTimelineStyles=function(){return this._currentEmptyStepKeyframe!==this._currentKeyframe},TimelineBuilder.prototype.applyEmptyStep=functi
 on(easing){var _this=this;easing&&(this._previousKeyframe.easing=easing),Object.keys(this._globalTimelineStyles).forEach(function(prop){_this._backFill[prop]=_this._globalTimelineStyles[prop]||_angular_animations.AUTO_STYLE,_this._currentKeyframe[prop]=_angular_animations.AUTO_STYLE}),this._currentEmptyStepKeyframe=this._currentKeyframe},TimelineBuilder.prototype.setStyles=function(input,easing,errors,options){var _this=this;easing&&(this._previousKeyframe.easing=easing);var params=options&&options.params||{},styles=flattenStyles(input,this._globalTimelineStyles);Object.keys(styles).forEach(function(prop){var val=interpolateParams(styles[prop],params,errors);_this._pendingStyles[prop]=val,_this._localTimelineStyles.hasOwnProperty(prop)||(_this._backFill[prop]=_this._globalTimelineStyles.hasOwnProperty(prop)?_this._globalTimelineStyles[prop]:_angular_animations.AUTO_STYLE),_this._updateStyle(prop,val)})},TimelineBuilder.prototype.applyStylesToKeyframe=function(){var _this=this,styles
 =this._pendingStyles,props=Object.keys(styles);0!=props.length&&(this._pendingStyles={},props.forEach(function(prop){var val=styles[prop];_this._currentKeyframe[prop]=val}),Object.keys(this._localTimelineStyles).forEach(function(prop){_this._currentKeyframe.hasOwnProperty(prop)||(_this._currentKeyframe[prop]=_this._localTimelineStyles[prop])}))},TimelineBuilder.prototype.snapshotCurrentStyles=function(){var _this=this;Object.keys(this._localTimelineStyles).forEach(function(prop){var val=_this._localTimelineStyles[prop];_this._pendingStyles[prop]=val,_this._updateStyle(prop,val)})},TimelineBuilder.prototype.getFinalKeyframe=function(){return this._keyframes.get(this.duration)},Object.defineProperty(TimelineBuilder.prototype,"properties",{get:function(){var properties=[];for(var prop in this._currentKeyframe)properties.push(prop);return properties},enumerable:!0,configurable:!0}),TimelineBuilder.prototype.mergeTimelineCollectedStyles=function(timeline){var _this=this;Object.keys(timel
 ine._styleSummary).forEach(function(prop){var details0=_this._styleSummary[prop],details1=timeline._styleSummary[prop];(!details0||details1.time>details0.time)&&_this._updateStyle(prop,details1.value)})},TimelineBuilder.prototype.buildKeyframes=function(){var _this=this;this.applyStylesToKeyframe();var preStyleProps=new Set,postStyleProps=new Set,isEmpty=1===this._keyframes.size&&0===this.duration,finalKeyframes=[];this._keyframes.forEach(function(keyframe,time){var finalKeyframe=copyStyles(keyframe,!0);Object.keys(finalKeyframe).forEach(function(prop){var value=finalKeyframe[prop];value==_angular_animations.ɵPRE_STYLE?preStyleProps.add(prop):value==_angular_animations.AUTO_STYLE&&postStyleProps.add(prop)}),isEmpty||(finalKeyframe.offset=time/_this.duration),finalKeyframes.push(finalKeyframe)});var preProps=preStyleProps.size?iteratorToArray(preStyleProps.values()):[],postProps=postStyleProps.size?iteratorToArray(postStyleProps.values()):[];if(isEmpty){var kf0=finalKeyframes[0],kf1
 =copyObj(kf0);kf0.offset=0,kf1.offset=1,finalKeyframes=[kf0,kf1]}return createTimelineInstruction(this.element,finalKeyframes,preProps,postProps,this.duration,this.startTime,this.easing,!1)},TimelineBuilder}(),SubTimelineBuilder=function(_super){function SubTimelineBuilder(element,keyframes,preStyleProps,postStyleProps,timings,_stretchStartingKeyframe){void 0===_stretchStartingKeyframe&&(_stretchStartingKeyframe=!1);var _this=_super.call(this,element,timings.delay)||this;return _this.element=element,_this.keyframes=keyframes,_this.preStyleProps=preStyleProps,_this.postStyleProps=postStyleProps,_this._stretchStartingKeyframe=_stretchStartingKeyframe,_this.timings={duration:timings.duration,delay:timings.delay,easing:timings.easing},_this}return __extends(SubTimelineBuilder,_super),SubTimelineBuilder.prototype.containsAnimation=function(){return this.keyframes.length>1},SubTimelineBuilder.prototype.buildKeyframes=function(){var keyframes=this.keyframes,_a=this.timings,delay=_a.delay,d
 uration=_a.duration,easing=_a.easing;if(this._stretchStartingKeyframe&&delay){var newKeyframes=[],totalTime=duration+delay,startingGap=delay/totalTime,newFirstKeyframe=copyStyles(keyframes[0],!1);newFirstKeyframe.offset=0,newKeyframes.push(newFirstKeyframe);var oldFirstKeyframe=copyStyles(keyframes[0],!1);oldFirstKeyframe.offset=roundOffset(startingGap),newKeyframes.push(oldFirstKeyframe);for(var limit=keyframes.length-1,i=1;i<=limit;i++){var kf=copyStyles(keyframes[i],!1),oldOffset=kf.offset,timeAtKeyframe=delay+oldOffset*duration;kf.offset=roundOffset(timeAtKeyframe/totalTime),newKeyframes.push(kf)}duration=totalTime,delay=0,easing="",keyframes=newKeyframes}return createTimelineInstruction(this.element,keyframes,this.preStyleProps,this.postStyleProps,duration,delay,easing,!0)},SubTimelineBuilder}(TimelineBuilder),Animation=function(){function Animation(_driver,input){this._driver=_driver;var errors=[],ast=buildAnimationAst(input,errors);if(errors.length){var errorMessage="animatio
 n validation failed:\n"+errors.join("\n");throw new Error(errorMessage)}this._animationAst=ast}return Animation.prototype.buildTimelines=function(element,startingStyles,destinationStyles,options,subInstructions){var start=Array.isArray(startingStyles)?normalizeStyles(startingStyles):startingStyles,dest=Array.isArray(destinationStyles)?normalizeStyles(destinationStyles):destinationStyles,errors=[];subInstructions=subInstructions||new ElementInstructionMap;var result=buildAnimationTimelines(this._driver,element,this._animationAst,start,dest,options,subInstructions,errors);if(errors.length){var errorMessage="animation building failed:\n"+errors.join("\n");throw new Error(errorMessage)}return result},Animation}(),AnimationStyleNormalizer=function(){function AnimationStyleNormalizer(){}return AnimationStyleNormalizer}(),NoopAnimationStyleNormalizer=function(){function NoopAnimationStyleNormalizer(){}return NoopAnimationStyleNormalizer.prototype.normalizePropertyName=function(propertyName
 ,errors){return propertyName},
+NoopAnimationStyleNormalizer.prototype.normalizeStyleValue=function(userProvidedProperty,normalizedProperty,value,errors){return value},NoopAnimationStyleNormalizer}(),WebAnimationsStyleNormalizer=function(_super){function WebAnimationsStyleNormalizer(){return null!==_super&&_super.apply(this,arguments)||this}return __extends(WebAnimationsStyleNormalizer,_super),WebAnimationsStyleNormalizer.prototype.normalizePropertyName=function(propertyName,errors){return dashCaseToCamelCase(propertyName)},WebAnimationsStyleNormalizer.prototype.normalizeStyleValue=function(userProvidedProperty,normalizedProperty,value,errors){var unit="",strVal=value.toString().trim();if(DIMENSIONAL_PROP_MAP[normalizedProperty]&&0!==value&&"0"!==value)if("number"==typeof value)unit="px";else{var valAndSuffixMatch=value.match(/^[+-]?[\d\.]+([a-z]*)$/);valAndSuffixMatch&&0==valAndSuffixMatch[1].length&&errors.push("Please provide a CSS unit value for "+userProvidedProperty+":"+value)}return strVal+unit},WebAnimatio
 nsStyleNormalizer}(AnimationStyleNormalizer),DIMENSIONAL_PROP_MAP=function(keys){var map={};return keys.forEach(function(key){return map[key]=!0}),map}("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(",")),EMPTY_OBJECT={},AnimationTransitionFactory=function(){function AnimationTransitionFactory(_triggerName,ast,_stateStyles){this._triggerName=_triggerName,this.ast=ast,this._stateStyles=_stateStyles}return AnimationTransitionFactory.prototype.match=function(currentState,nextState){return oneOrMoreTransitionsMatch(this.ast.matchers,currentState,nextState)},AnimationTransitionFactory.prototype.buildStyles=function(stateName,params,errors){var backupStateStyler=this._stateStyles["*"],stateStyler=this._stateStyles
 [stateName],backupStyles=backupStateStyler?backupStateStyler.buildStyles(params,errors):{};return stateStyler?stateStyler.buildStyles(params,errors):backupStyles},AnimationTransitionFactory.prototype.build=function(driver,element,currentState,nextState,currentOptions,nextOptions,subInstructions){var errors=[],transitionAnimationParams=this.ast.options&&this.ast.options.params||EMPTY_OBJECT,currentAnimationParams=currentOptions&&currentOptions.params||EMPTY_OBJECT,currentStateStyles=this.buildStyles(currentState,currentAnimationParams,errors),nextAnimationParams=nextOptions&&nextOptions.params||EMPTY_OBJECT,nextStateStyles=this.buildStyles(nextState,nextAnimationParams,errors),queriedElements=new Set,preStyleMap=new Map,postStyleMap=new Map,isRemoval="void"===nextState,animationOptions={params:Object.assign({},transitionAnimationParams,nextAnimationParams)},timelines=buildAnimationTimelines(driver,element,this.ast.animation,currentStateStyles,nextStateStyles,animationOptions,subInstr
 uctions,errors);if(errors.length)return createTransitionInstruction(element,this._triggerName,currentState,nextState,isRemoval,currentStateStyles,nextStateStyles,[],[],preStyleMap,postStyleMap,errors);timelines.forEach(function(tl){var elm=tl.element,preProps=getOrSetAsInMap(preStyleMap,elm,{});tl.preStyleProps.forEach(function(prop){return preProps[prop]=!0});var postProps=getOrSetAsInMap(postStyleMap,elm,{});tl.postStyleProps.forEach(function(prop){return postProps[prop]=!0}),elm!==element&&queriedElements.add(elm)});var queriedElementsList=iteratorToArray(queriedElements.values());return createTransitionInstruction(element,this._triggerName,currentState,nextState,isRemoval,currentStateStyles,nextStateStyles,timelines,queriedElementsList,preStyleMap,postStyleMap)},AnimationTransitionFactory}(),AnimationStateStyles=function(){function AnimationStateStyles(styles,defaultParams){this.styles=styles,this.defaultParams=defaultParams}return AnimationStateStyles.prototype.buildStyles=func
 tion(params,errors){var finalStyles={},combinedParams=copyObj(this.defaultParams);return Object.keys(params).forEach(function(key){var value=params[key];null!=value&&(combinedParams[key]=value)}),this.styles.styles.forEach(function(value){if("string"!=typeof value){var styleObj_1=value;Object.keys(styleObj_1).forEach(function(prop){var val=styleObj_1[prop];val.length>1&&(val=interpolateParams(val,combinedParams,errors)),finalStyles[prop]=val})}}),finalStyles},AnimationStateStyles}(),AnimationTrigger=function(){function AnimationTrigger(name,ast){var _this=this;this.name=name,this.ast=ast,this.transitionFactories=[],this.states={},ast.states.forEach(function(ast){var defaultParams=ast.options&&ast.options.params||{};_this.states[ast.name]=new AnimationStateStyles(ast.style,defaultParams)}),balanceProperties(this.states,"true","1"),balanceProperties(this.states,"false","0"),ast.transitions.forEach(function(ast){_this.transitionFactories.push(new AnimationTransitionFactory(name,ast,_th
 is.states))}),this.fallbackTransition=createFallbackTransition(name,this.states)}return Object.defineProperty(AnimationTrigger.prototype,"containsQueries",{get:function(){return this.ast.queryCount>0},enumerable:!0,configurable:!0}),AnimationTrigger.prototype.matchTransition=function(currentState,nextState){return this.transitionFactories.find(function(f){return f.match(currentState,nextState)})||null},AnimationTrigger.prototype.matchStyles=function(currentState,params,errors){return this.fallbackTransition.buildStyles(currentState,params,errors)},AnimationTrigger}(),EMPTY_INSTRUCTION_MAP=new ElementInstructionMap,TimelineAnimationEngine=function(){function TimelineAnimationEngine(_driver,_normalizer){this._driver=_driver,this._normalizer=_normalizer,this._animations={},this._playersById={},this.players=[]}return TimelineAnimationEngine.prototype.register=function(id,metadata){var errors=[],ast=buildAnimationAst(metadata,errors);if(errors.length)throw new Error("Unable to build the 
 animation due to the following errors: "+errors.join("\n"));this._animations[id]=ast},TimelineAnimationEngine.prototype._buildPlayer=function(i,preStyles,postStyles){var element=i.element,keyframes=normalizeKeyframes(this._driver,this._normalizer,element,i.keyframes,preStyles,postStyles);return this._driver.animate(element,keyframes,i.duration,i.delay,i.easing,[])},TimelineAnimationEngine.prototype.create=function(id,element,options){var _this=this;void 0===options&&(options={});var instructions,errors=[],ast=this._animations[id],autoStylesMap=new Map;if(ast?(instructions=buildAnimationTimelines(this._driver,element,ast,{},{},options,EMPTY_INSTRUCTION_MAP,errors),instructions.forEach(function(inst){var styles=getOrSetAsInMap(autoStylesMap,inst.element,{});inst.postStyleProps.forEach(function(prop){return styles[prop]=null})})):(errors.push("The requested animation doesn't exist or has already been destroyed"),instructions=[]),errors.length)throw new Error("Unable to create the anima
 tion due to the following errors: "+errors.join("\n"));autoStylesMap.forEach(function(styles,element){Object.keys(styles).forEach(function(prop){styles[prop]=_this._driver.computeStyle(element,prop,_angular_animations.AUTO_STYLE)})});var players=instructions.map(function(i){var styles=autoStylesMap.get(i.element);return _this._buildPlayer(i,{},styles)}),player=optimizeGroupPlayer(players);return this._playersById[id]=player,player.onDestroy(function(){return _this.destroy(id)}),this.players.push(player),player},TimelineAnimationEngine.prototype.destroy=function(id){var player=this._getPlayer(id);player.destroy(),delete this._playersById[id];var index=this.players.indexOf(player);index>=0&&this.players.splice(index,1)},TimelineAnimationEngine.prototype._getPlayer=function(id){var player=this._playersById[id];if(!player)throw new Error("Unable to find the timeline player referenced by "+id);return player},TimelineAnimationEngine.prototype.listen=function(id,element,eventName,callback)
 {var baseEvent=makeAnimationEvent(element,"","","");return listenOnPlayer(this._getPlayer(id),eventName,baseEvent,callback),function(){}},TimelineAnimationEngine.prototype.command=function(id,element,command,args){if("register"==command)return void this.register(id,args[0]);if("create"==command){var options=args[0]||{};return void this.create(id,element,options)}var player=this._getPlayer(id);switch(command){case"play":player.play();break;case"pause":player.pause();break;case"reset":player.reset();break;case"restart":player.restart();break;case"finish":player.finish();break;case"init":player.init();break;case"setPosition":player.setPosition(parseFloat(args[0]));break;case"destroy":this.destroy(id)}},TimelineAnimationEngine}(),EMPTY_PLAYER_ARRAY=[],NULL_REMOVAL_STATE={namespaceId:"",setForRemoval:null,hasAnimation:!1,removedBeforeQueried:!1},NULL_REMOVED_QUERIED_STATE={namespaceId:"",setForRemoval:null,hasAnimation:!1,removedBeforeQueried:!0},REMOVAL_FLAG="__ng_removed",StateValue=fu
 nction(){function StateValue(input){var isObj=input&&input.hasOwnProperty("value"),value=isObj?input.value:input;if(this.value=normalizeTriggerValue(value),isObj){var options=copyObj(input);delete options.value,this.options=options}else this.options={};this.options.params||(this.options.params={})}return Object.defineProperty(StateValue.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),StateValue.prototype.absorbOptions=function(options){var newParams=options.params;if(newParams){var oldParams_2=this.options.params;Object.keys(newParams).forEach(function(prop){null==oldParams_2[prop]&&(oldParams_2[prop]=newParams[prop])})}},StateValue}(),DEFAULT_STATE_VALUE=new StateValue("void"),DELETED_STATE_VALUE=new StateValue("DELETED"),AnimationTransitionNamespace=function(){function AnimationTransitionNamespace(id,hostElement,_engine){this.id=id,this.hostElement=hostElement,this._engine=_engine,this.players=[],this._triggers={},this._queue=[],this.
 _elementListeners=new Map,this._hostClassName="ng-tns-"+id,addClass(hostElement,this._hostClassName)}return AnimationTransitionNamespace.prototype.listen=function(element,name,phase,callback){var _this=this;if(!this._triggers.hasOwnProperty(name))throw new Error('Unable to listen on the animation trigger event "'+phase+'" because the animation trigger "'+name+"\" doesn't exist!");if(null==phase||0==phase.length)throw new Error('Unable to listen on the animation trigger "'+name+'" because the provided event is undefined!');if(!isTriggerEventValid(phase))throw new Error('The provided animation trigger event "'+phase+'" for the animation trigger "'+name+'" is not supported!');var listeners=getOrSetAsInMap(this._elementListeners,element,[]),data={name:name,phase:phase,callback:callback};listeners.push(data);var triggersWithStates=getOrSetAsInMap(this._engine.statesByElement,element,{});return triggersWithStates.hasOwnProperty(name)||(addClass(element,"ng-trigger"),addClass(element,"ng-t
 rigger-"+name),triggersWithStates[name]=null),function(){_this._engine.afterFlush(function(){var index=listeners.indexOf(data);index>=0&&listeners.splice(index,1),_this._triggers[name]||delete triggersWithStates[name]})}},AnimationTransitionNamespace.prototype.register=function(name,ast){return!this._triggers[name]&&(this._triggers[name]=ast,!0)},AnimationTransitionNamespace.prototype._getTrigger=function(name){var trigger=this._triggers[name];if(!trigger)throw new Error('The provided animation trigger "'+name+'" has not been registered!');return trigger},AnimationTransitionNamespace.prototype.trigger=function(element,triggerName,value,defaultToFallback){var _this=this;void 0===defaultToFallback&&(defaultToFallback=!0);var trigger=this._getTrigger(triggerName),player=new TransitionAnimationPlayer(this.id,triggerName,element),triggersWithStates=this._engine.statesByElement.get(element);triggersWithStates||(addClass(element,"ng-trigger"),addClass(element,"ng-trigger-"+triggerName),thi
 s._engine.statesByElement.set(element,triggersWithStates={}));var fromState=triggersWithStates[triggerName],toState=new StateValue(value);if(!(value&&value.hasOwnProperty("value"))&&fromState&&toState.absorbOptions(fromState.options),triggersWithStates[triggerName]=toState,fromState){if(fromState===DELETED_STATE_VALUE)return player}else fromState=DEFAULT_STATE_VALUE;if("void"===toState.value||fromState.value!==toState.value){var playersOnElement=getOrSetAsInMap(this._engine.playersByElement,element,[]);playersOnElement.forEach(function(player){player.namespaceId==_this.id&&player.triggerName==triggerName&&player.queued&&player.destroy()});var transition=trigger.matchTransition(fromState.value,toState.value),isFallbackTransition=!1;if(!transition){if(!defaultToFallback)return;transition=trigger.fallbackTransition,isFallbackTransition=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:element,triggerName:triggerName,transition:transition,fromState:fromState,toState:
 toState,player:player,isFallbackTransition:isFallbackTransition}),isFallbackTransition||(addClass(element,"ng-animate-queued"),player.onStart(function(){removeClass(element,"ng-animate-queued")})),player.onDone(function(){var index=_this.players.indexOf(player);index>=0&&_this.players.splice(index,1);var players=_this._engine.playersByElement.get(element);if(players){var index_1=players.indexOf(player);index_1>=0&&players.splice(index_1,1)}}),this.players.push(player),playersOnElement.push(player),player}if(!objEquals(fromState.params,toState.params)){var errors=[],fromStyles_1=trigger.matchStyles(fromState.value,fromState.params,errors),toStyles_1=trigger.matchStyles(toState.value,toState.params,errors);errors.length?this._engine.reportError(errors):this._engine.afterFlush(function(){eraseStyles(element,fromStyles_1),setStyles(element,toStyles_1)})}},AnimationTransitionNamespace.prototype.deregister=function(name){var _this=this;delete this._triggers[name],this._engine.statesByElem
 ent.forEach(function(stateMap,element){delete stateMap[name]}),this._elementListeners.forEach(function(listeners,element){_this._elementListeners.set(element,listeners.filter(function(entry){return entry.name!=name}))})},AnimationTransitionNamespace.prototype.clearElementCache=function(element){this._engine.statesByElement.delete(element),this._elementListeners.delete(element);var elementPlayers=this._engine.playersByElement.get(element);elementPlayers&&(elementPlayers.forEach(function(player){return player.destroy()}),this._engine.playersByElement.delete(element))},AnimationTransitionNamespace.prototype._destroyInnerNodes=function(rootElement,context,animate){var _this=this;void 0===animate&&(animate=!1),this._engine.driver.query(rootElement,NG_TRIGGER_SELECTOR,!0).forEach(function(elm){if(animate&&containsClass(elm,_this._hostClassName)){var innerNs=_this._engine.namespacesByHostElement.get(elm);innerNs&&innerNs.removeNode(elm,context,!0),_this.removeNode(elm,context,!0)}else _thi
 s.clearElementCache(elm)})},AnimationTransitionNamespace.prototype.removeNode=function(element,context,doNotRecurse){var _this=this,engine=this._engine;!doNotRecurse&&element.childElementCount&&this._destroyInnerNodes(element,context,!0);var triggerStates=engine.statesByElement.get(element);if(triggerStates){var players_1=[];if(Object.keys(triggerStates).forEach(function(triggerName){if(_this._triggers[triggerName]){var player=_this.trigger(element,triggerName,"void",!1);player&&players_1.push(player)}}),players_1.length)return engine.markElementAsRemoved(this.id,element,!0,context),void optimizeGroupPlayer(players_1).onDone(function(){return engine.processLeaveNode(element)})}var containsPotentialParentTransition=!1;if(engine.totalAnimations){var currentPlayers=engine.players.length?engine.playersByQueriedElement.get(element):[];if(currentPlayers&&currentPlayers.length)containsPotentialParentTransition=!0;else for(var parent=element;parent=parent.parentNode;){var triggers=engine.st
 atesByElement.get(parent);if(triggers){containsPotentialParentTransition=!0;break}}}var listeners=this._elementListeners.get(element);if(listeners){var visitedTriggers_1=new Set;listeners.forEach(function(listener){var triggerName=listener.name;if(!visitedTriggers_1.has(triggerName)){visitedTriggers_1.add(triggerName);var trigger=_this._triggers[triggerName],transition=trigger.fallbackTransition,elementStates=engine.statesByElement.get(element),fromState=elementStates[triggerName]||DEFAULT_STATE_VALUE,toState=new StateValue("void"),player=new TransitionAnimationPlayer(_this.id,triggerName,element);_this._engine.totalQueuedPlayers++,_this._queue.push({element:element,triggerName:triggerName,transition:transition,fromState:fromState,toState:toState,player:player,isFallbackTransition:!0})}})}containsPotentialParentTransition?engine.markElementAsRemoved(this.id,element,!1,context):(engine.afterFlush(function(){return _this.clearElementCache(element)}),engine.destroyInnerAnimations(eleme
 nt),engine._onRemovalComplete(element,context))},AnimationTransitionNamespace.prototype.insertNode=function(element,parent){addClass(element,this._hostClassName)},AnimationTransitionNamespace.prototype.drainQueuedTransitions=function(microtaskId){var _this=this,instructions=[];return this._queue.forEach(function(entry){var player=entry.player;if(!player.destroyed){var element=entry.element,listeners=_this._elementListeners.get(element);listeners&&listeners.forEach(function(listener){if(listener.name==entry.triggerName){var baseEvent=makeAnimationEvent(element,entry.triggerName,entry.fromState.value,entry.toState.value);baseEvent._data=microtaskId,listenOnPlayer(entry.player,listener.phase,baseEvent,listener.callback)}}),player.markedForDestroy?_this._engine.afterFlush(function(){player.destroy()}):instructions.push(entry)}}),this._queue=[],instructions.sort(function(a,b){var d0=a.transition.ast.depCount,d1=b.transition.ast.depCount;return 0==d0||0==d1?d0-d1:_this._engine.driver.cont
 ainsElement(a.element,b.element)?1:-1})},AnimationTransitionNamespace.prototype.destroy=function(context){this.players.forEach(function(p){return p.destroy()}),this._destroyInnerNodes(this.hostElement,context)},AnimationTransitionNamespace.prototype.elementContainsData=function(element){var containsData=!1;return this._elementListeners.has(element)&&(containsData=!0),containsData=!!this._queue.find(function(entry){return entry.element===element})||containsData},AnimationTransitionNamespace}(),TransitionAnimationEngine=function(){function TransitionAnimationEngine(driver,_normalizer){this.driver=driver,this._normalizer=_normalizer,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnt
 erElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=function(element,context){}}return TransitionAnimationEngine.prototype._onRemovalComplete=function(element,context){this.onRemovalComplete(element,context)},Object.defineProperty(TransitionAnimationEngine.prototype,"queuedPlayers",{get:function(){var players=[];return this._namespaceList.forEach(function(ns){ns.players.forEach(function(player){player.queued&&players.push(player)})}),players},enumerable:!0,configurable:!0}),TransitionAnimationEngine.prototype.createNamespace=function(namespaceId,hostElement){var ns=new AnimationTransitionNamespace(namespaceId,hostElement,this);return hostElement.parentNode?this._balanceNamespaceList(ns,hostElement):(this.newHostElements.set(hostElement,ns),this.collectEnterElement(hostElement)),this._namespaceLookup[namespaceId]=ns},TransitionAnimationEngine.prototype._balanceNamespaceList=function(ns,hostElement){var limit=this._namespaceList.length-1;if(limit>=0){for(var found=!1,i
 =limit;i>=0;i--){var nextNamespace=this._namespaceList[i];if(this.driver.containsElement(nextNamespace.hostElement,hostElement)){this._namespaceList.splice(i+1,0,ns),found=!0;break}}found||this._namespaceList.splice(0,0,ns)}else this._namespaceList.push(ns);return this.namespacesByHostElement.set(hostElement,ns),ns},TransitionAnimationEngine.prototype.register=function(namespaceId,hostElement){var ns=this._namespaceLookup[namespaceId];return ns||(ns=this.createNamespace(namespaceId,hostElement)),ns},TransitionAnimationEngine.prototype.registerTrigger=function(namespaceId,name,trigger){var ns=this._namespaceLookup[namespaceId];ns&&ns.register(name,trigger)&&this.totalAnimations++},TransitionAnimationEngine.prototype.destroy=function(namespaceId,context){var _this=this;if(namespaceId){var ns=this._fetchNamespace(namespaceId);this.afterFlush(function(){_this.namespacesByHostElement.delete(ns.hostElement),delete _this._namespaceLookup[namespaceId];var index=_this._namespaceList.indexOf(
 ns);index>=0&&_this._namespaceList.splice(index,1)}),this.afterFlushAnimationsDone(function(){return ns.destroy(context)})}},TransitionAnimationEngine.prototype._fetchNamespace=function(id){return this._namespaceLookup[id]},TransitionAnimationEngine.prototype.trigger=function(namespaceId,element,name,value){return!!isElementNode(element)&&(this._fetchNamespace(namespaceId).trigger(element,name,value),!0)},TransitionAnimationEngine.prototype.insertNode=function(namespaceId,element,parent,insertBefore){if(isElementNode(element)){var details=element[REMOVAL_FLAG];details&&details.setForRemoval&&(details.setForRemoval=!1),namespaceId&&this._fetchNamespace(namespaceId).insertNode(element,parent),insertBefore&&this.collectEnterElement(element)}},TransitionAnimationEngine.prototype.collectEnterElement=function(element){this.collectedEnterElements.push(element)},TransitionAnimationEngine.prototype.markElementAsDisabled=function(element,value){value?this.disabledNodes.has(element)||(this.dis
 abledNodes.add(element),addClass(element,"ng-animate-disabled")):this.disabledNodes.has(element)&&(this.disabledNodes.delete(element),removeClass(element,"ng-animate-disabled"))},TransitionAnimationEngine.prototype.removeNode=function(namespaceId,element,context,doNotRecurse){if(!isElementNode(element))return void this._onRemovalComplete(element,context);var ns=namespaceId?this._fetchNamespace(namespaceId):null;ns?ns.removeNode(element,context,doNotRecurse):this.markElementAsRemoved(namespaceId,element,!1,context)},TransitionAnimationEngine.prototype.markElementAsRemoved=function(namespaceId,element,hasAnimation,context){this.collectedLeaveElements.push(element),element[REMOVAL_FLAG]={namespaceId:namespaceId,setForRemoval:context,hasAnimation:hasAnimation,removedBeforeQueried:!1}},TransitionAnimationEngine.prototype.listen=function(namespaceId,element,name,phase,callback){return isElementNode(element)?this._fetchNamespace(namespaceId).listen(element,name,phase,callback):function(){}
 },TransitionAnimationEngine.prototype._buildInstruction=function(entry,subTimelines){return entry.transition.build(this.driver,entry.element,entry.fromState.value,entry.toState.value,entry.fromState.options,entry.toState.options,subTimelines)},TransitionAnimationEngine.prototype.destroyInnerAnimations=function(containerElement){var _this=this,elements=this.driver.query(containerElement,NG_TRIGGER_SELECTOR,!0);elements.forEach(function(element){var players=_this.playersByElement.get(element);players&&players.forEach(function(player){player.queued?player.markedForDestroy=!0:player.destroy()});var stateMap=_this.statesByElement.get(element);stateMap&&Object.keys(stateMap).forEach(function(triggerName){return stateMap[triggerName]=DELETED_STATE_VALUE})}),0!=this.playersByQueriedElement.size&&(elements=this.driver.query(containerElement,NG_ANIMATING_SELECTOR,!0),elements.length&&elements.forEach(function(element){var players=_this.playersByQueriedElement.get(element);players&&players.for
 Each(function(player){return player.finish()})}))},TransitionAnimationEngine.prototype.whenRenderingDone=function(){var _this=this;return new Promise(function(resolve){if(_this.players.length)return optimizeGroupPlayer(_this.players).onDone(function(){return resolve()});resolve()})},TransitionAnimationEngine.prototype.processLeaveNode=function(element){var _this=this,details=element[REMOVAL_FLAG];if(details&&details.setForRemoval){if(element[REMOVAL_FLAG]=NULL_REMOVAL_STATE,details.namespaceId){this.destroyInnerAnimations(element);var ns=this._fetchNamespace(details.namespaceId);ns&&ns.clearElementCache(element)}this._onRemovalComplete(element,details.setForRemoval)}this.driver.matchesElement(element,".ng-animate-disabled")&&this.markElementAsDisabled(element,!1),this.driver.query(element,".ng-animate-disabled",!0).forEach(function(node){_this.markElementAsDisabled(element,!1)})},TransitionAnimationEngine.prototype.flush=function(microtaskId){var _this=this;void 0===microtaskId&&(mi
 crotaskId=-1);var players=[];if(this.newHostElements.size&&(this.newHostElements.forEach(function(ns,element){return _this._balanceNamespaceList(ns,element)}),this.newHostElements.clear()),this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){var cleanupFns=[];try{players=this._flushAnimations(cleanupFns,microtaskId)}finally{for(var i=0;i<cleanupFns.length;i++)cleanupFns[i]()}}else for(var i=0;i<this.collectedLeaveElements.length;i++){var element=this.collectedLeaveElements[i];this.processLeaveNode(element)}if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(function(fn){return fn()}),this._flushFns=[],this._whenQuietFns.length){var quietFns_1=this._whenQuietFns;this._whenQuietFns=[],players.length?optimizeGroupPlayer(players).onDone(function(){quietFns_1.forEach(function(fn){return fn()})}):quietFns_1.forEach(function(fn){return fn()})}},TransitionAnimationEngine.prototype
 .reportError=function(errors){throw new Error("Unable to process animations due to the following failed trigger transitions\n "+errors.join("\n"))},TransitionAnimationEngine.prototype._flushAnimations=function(cleanupFns,microtaskId){var _this=this,subTimelines=new ElementInstructionMap,skippedPlayers=[],skippedPlayersMap=new Map,queuedInstructions=[],queriedElements=new Map,allPreStyleElements=new Map,allPostStyleElements=new Map,disabledElementsSet=new Set;this.disabledNodes.forEach(function(node){disabledElementsSet.add(node);for(var nodesThatAreDisabled=_this.driver.query(node,".ng-animate-queued",!0),i=0;i<nodesThatAreDisabled.length;i++)disabledElementsSet.add(nodesThatAreDisabled[i])});for(var bodyNode=getBodyNode(),allEnterNodes=this.collectedEnterElements.length?this.collectedEnterElements.filter(createIsRootFilterFn(this.collectedEnterElements)):[],i=0;i<allEnterNodes.length;i++)addClass(allEnterNodes[i],"ng-enter");for(var allLeaveNodes=[],leaveNodesWithoutAnimations=new 
 Set,i=0;i<this.collectedLeaveElements.length;i++){var element=this.collectedLeaveElements[i],details=element[REMOVAL_FLAG];details&&details.setForRemoval&&(addClass(element,"ng-leave"),allLeaveNodes.push(element),details.hasAnimation||leaveNodesWithoutAnimations.add(element))}cleanupFns.push(function(){allEnterNodes.forEach(function(element){return removeClass(element,"ng-enter")}),allLeaveNodes.forEach(function(element){removeClass(element,"ng-leave"),_this.processLeaveNode(element)})});for(var allPlayers=[],erroneousTransitions=[],i=this._namespaceList.length-1;i>=0;i--){this._namespaceList[i].drainQueuedTransitions(microtaskId).forEach(function(entry){var player=entry.player;allPlayers.push(player);var element=entry.element;if(!bodyNode||!_this.driver.containsElement(bodyNode,element))return void player.destroy();var instruction=_this._buildInstruction(entry,subTimelines);if(instruction.errors&&instruction.errors.length)return void erroneousTransitions.push(instruction);if(entry.
 isFallbackTransition)return player.onStart(function(){return eraseStyles(element,instruction.fromStyles)}),player.onDestroy(function(){return setStyles(element,instruction.toStyles)}),void skippedPlayers.push(player);instruction.timelines.forEach(function(tl){return tl.stretchStartingKeyframe=!0}),subTimelines.append(element,instruction.timelines);var tuple={instruction:instruction,player:player,element:element};queuedInstructions.push(tuple),instruction.queriedElements.forEach(function(element){return getOrSetAsInMap(queriedElements,element,[]).push(player)}),instruction.preStyleProps.forEach(function(stringMap,element){var props=Object.keys(stringMap);if(props.length){var setVal_1=allPreStyleElements.get(element);setVal_1||allPreStyleElements.set(element,setVal_1=new Set),props.forEach(function(prop){return setVal_1.add(prop)})}}),instruction.postStyleProps.forEach(function(stringMap,element){var props=Object.keys(stringMap),setVal=allPostStyleElements.get(element);setVal||allPost
 StyleElements.set(element,setVal=new Set),props.forEach(function(prop){return setVal.add(prop)})})})}if(erroneousTransitions.length){var errors_1=[];erroneousTransitions.forEach(function(instruction){errors_1.push("@"+instruction.triggerName+" has failed due to:\n"),instruction.errors.forEach(function(error){return errors_1.push("- "+error+"\n")})}),allPlayers.forEach(function(player){return player.destroy()}),this.reportError(errors_1)}for(var enterNodesWithoutAnimations=new Set,i=0;i<allEnterNodes.length;i++){var element=allEnterNodes[i];subTimelines.has(element)||enterNodesWithoutAnimations.add(element)}var allPreviousPlayersMap=new Map,sortedParentElements=[];queuedInstructions.forEach(function(entry){var element=entry.element;subTimelines.has(element)&&(sortedParentElements.unshift(element),_this._beforeAnimationBuild(entry.player.namespaceId,entry.instruction,allPreviousPlayersMap))}),skippedPlayers.forEach(function(player){var element=player.element;_this._getPreviousPlayers(
 element,!1,player.namespaceId,player.triggerName,null).forEach(function(prevPlayer){getOrSetAsInMap(allPreviousPlayersMap,element,[]).push(prevPlayer),prevPlayer.destroy()})});var replaceNodes=allLeaveNodes.filter(function(node){return replacePostStylesAsPre(node,allPreStyleElements,allPostStyleElements)}),_a=cloakAndComputeStyles(this.driver,leaveNodesWithoutAnimations,allPostStyleElements,_angular_animations.AUTO_STYLE),postStylesMap=_a[0];_a[1].forEach(function(node){replacePostStylesAsPre(node,allPreStyleElements,allPostStyleElements)&&replaceNodes.push(node)});var preStylesMap=(allPreStyleElements.size?cloakAndComputeStyles(this.driver,enterNodesWithoutAnimations,allPreStyleElements,_angular_animations.ɵPRE_STYLE):[new Map])[0];replaceNodes.forEach(function(node){var post=postStylesMap.get(node),pre=preStylesMap.get(node);postStylesMap.set(node,Object.assign({},post,pre))});var rootPlayers=[],subPlayers=[];queuedInstructions.forEach(function(entry){var element=entry.element,pl
 ayer=entry.player,instruction=entry.instruction;if(subTimelines.has(element)){if(disabledElementsSet.has(element))return void skippedPlayers.push(player);var innerPlayer=_this._buildAnimation(player.namespaceId,instruction,allPreviousPlayersMap,skippedPlayersMap,preStylesMap,postStylesMap);player.setRealPlayer(innerPlayer);for(var parentHasPriority=null,i=0;i<sortedParentElements.length;i++){var parent=sortedParentElements[i];if(parent===element)break;if(_this.driver.containsElement(parent,element)){parentHasPriority=parent;break}}if(parentHasPriority){var parentPlayers=_this.playersByElement.get(parentHasPriority);parentPlayers&&parentPlayers.length&&(player.parentPlayer=optimizeGroupPlayer(parentPlayers)),skippedPlayers.push(player)}else rootPlayers.push(player)}else eraseStyles(element,instruction.fromStyles),player.onDestroy(function(){return setStyles(element,instruction.toStyles)}),subPlayers.push(player),disabledElementsSet.has(element)&&skippedPlayers.push(player)}),subPlaye
 rs.forEach(function(player){var playersForElement=skippedPlayersMap.get(player.element)
+;if(playersForElement&&playersForElement.length){var innerPlayer=optimizeGroupPlayer(playersForElement);player.setRealPlayer(innerPlayer)}}),skippedPlayers.forEach(function(player){player.parentPlayer?player.parentPlayer.onDestroy(function(){return player.destroy()}):player.destroy()});for(var i=0;i<allLeaveNodes.length;i++){var element=allLeaveNodes[i],details=element[REMOVAL_FLAG];if(removeClass(element,"ng-leave"),!details||!details.hasAnimation){var players=[];if(queriedElements.size){var queriedPlayerResults=queriedElements.get(element);queriedPlayerResults&&queriedPlayerResults.length&&players.push.apply(players,queriedPlayerResults);for(var queriedInnerElements=this.driver.query(element,NG_ANIMATING_SELECTOR,!0),j=0;j<queriedInnerElements.length;j++){var queriedPlayers=queriedElements.get(queriedInnerElements[j]);queriedPlayers&&queriedPlayers.length&&players.push.apply(players,queriedPlayers)}}var activePlayers=players.filter(function(p){return!p.destroyed});activePlayers.le
 ngth?removeNodesAfterAnimationDone(this,element,activePlayers):this.processLeaveNode(element)}}return allLeaveNodes.length=0,rootPlayers.forEach(function(player){_this.players.push(player),player.onDone(function(){player.destroy();var index=_this.players.indexOf(player);_this.players.splice(index,1)}),player.play()}),rootPlayers},TransitionAnimationEngine.prototype.elementContainsData=function(namespaceId,element){var containsData=!1,details=element[REMOVAL_FLAG];return details&&details.setForRemoval&&(containsData=!0),this.playersByElement.has(element)&&(containsData=!0),this.playersByQueriedElement.has(element)&&(containsData=!0),this.statesByElement.has(element)&&(containsData=!0),this._fetchNamespace(namespaceId).elementContainsData(element)||containsData},TransitionAnimationEngine.prototype.afterFlush=function(callback){this._flushFns.push(callback)},TransitionAnimationEngine.prototype.afterFlushAnimationsDone=function(callback){this._whenQuietFns.push(callback)},TransitionAnim
 ationEngine.prototype._getPreviousPlayers=function(element,isQueriedElement,namespaceId,triggerName,toStateValue){var players=[];if(isQueriedElement){var queriedElementPlayers=this.playersByQueriedElement.get(element);queriedElementPlayers&&(players=queriedElementPlayers)}else{var elementPlayers=this.playersByElement.get(element);if(elementPlayers){var isRemovalAnimation_1=!toStateValue||"void"==toStateValue;elementPlayers.forEach(function(player){player.queued||(isRemovalAnimation_1||player.triggerName==triggerName)&&players.push(player)})}}return(namespaceId||triggerName)&&(players=players.filter(function(player){return(!namespaceId||namespaceId==player.namespaceId)&&(!triggerName||triggerName==player.triggerName)})),players},TransitionAnimationEngine.prototype._beforeAnimationBuild=function(namespaceId,instruction,allPreviousPlayersMap){var _this=this,triggerName=instruction.triggerName,rootElement=instruction.element,targetNameSpaceId=instruction.isRemovalTransition?void 0:names
 paceId,targetTriggerName=instruction.isRemovalTransition?void 0:triggerName;instruction.timelines.map(function(timelineInstruction){var element=timelineInstruction.element,isQueriedElement=element!==rootElement,players=getOrSetAsInMap(allPreviousPlayersMap,element,[]);_this._getPreviousPlayers(element,isQueriedElement,targetNameSpaceId,targetTriggerName,instruction.toState).forEach(function(player){var realPlayer=player.getRealPlayer();realPlayer.beforeDestroy&&realPlayer.beforeDestroy(),player.destroy(),players.push(player)})}),eraseStyles(rootElement,instruction.fromStyles)},TransitionAnimationEngine.prototype._buildAnimation=function(namespaceId,instruction,allPreviousPlayersMap,skippedPlayersMap,preStylesMap,postStylesMap){var _this=this,triggerName=instruction.triggerName,rootElement=instruction.element,allQueri

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/platform.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/platform.es5.js b/node_modules/@angular/cdk/esm5/platform.es5.js
new file mode 100644
index 0000000..80c6698
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/platform.es5.js
@@ -0,0 +1,137 @@
+/**
+ * @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 } from '@angular/core';
+
+// Whether the current platform supports the V8 Break Iterator. The V8 check
+// is necessary to detect all Blink based browsers.
+var hasV8BreakIterator = (typeof (Intl) !== 'undefined' && ((Intl)).v8BreakIterator);
+/**
+ * Service to detect the current platform by comparing the userAgent strings and
+ * checking browser-specific global properties.
+ * \@docs-private
+ */
+var Platform = (function () {
+    function Platform() {
+        this.isBrowser = typeof document === 'object' && !!document;
+        /**
+         * Layout Engines
+         */
+        this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);
+        this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);
+        // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.
+        this.BLINK = this.isBrowser &&
+            (!!(((window)).chrome || hasV8BreakIterator) && !!CSS && !this.EDGE && !this.TRIDENT);
+        // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to
+        // ensure that Webkit runs standalone and is not used as another engine's base.
+        this.WEBKIT = this.isBrowser &&
+            /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;
+        /**
+         * Browsers and Platform Types
+         */
+        this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
+        // It's difficult to detect the plain Gecko engine, because most of the browsers identify
+        // them self as Gecko-like browsers and modify the userAgent's according to that.
+        // Since we only cover one explicit Firefox case, we can simply check for Firefox
+        // instead of having an unstable check for Gecko.
+        this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);
+        // Trident on mobile adds the android platform to the userAgent to trick detections.
+        this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;
+        // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake
+        // this and just place the Safari keyword in the userAgent. To be more safe about Safari every
+        // Safari browser should also use Webkit as its layout engine.
+        this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;
+    }
+    Platform.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    Platform.ctorParameters = function () { return []; };
+    return Platform;
+}());
+
+/**
+ * Cached result Set of input types support by the current browser.
+ */
+var supportedInputTypes;
+/**
+ * Types of <input> that *might* be supported.
+ */
+var candidateInputTypes = [
+    // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after
+    // first changing it to something else:
+    // The specified value "" does not conform to the required format.
+    // The format is "#rrggbb" where rr, gg, bb are two-digit hexadecimal numbers.
+    'color',
+    'button',
+    'checkbox',
+    'date',
+    'datetime-local',
+    'email',
+    'file',
+    'hidden',
+    'image',
+    'month',
+    'number',
+    'password',
+    'radio',
+    'range',
+    'reset',
+    'search',
+    'submit',
+    'tel',
+    'text',
+    'time',
+    'url',
+    'week',
+];
+/**
+ * @return {?} The input types supported by this browser.
+ */
+function getSupportedInputTypes() {
+    // Result is cached.
+    if (supportedInputTypes) {
+        return supportedInputTypes;
+    }
+    // We can't check if an input type is not supported until we're on the browser, so say that
+    // everything is supported when not on the browser. We don't use `Platform` here since it's
+    // just a helper function and can't inject it.
+    if (typeof document !== 'object' || !document) {
+        supportedInputTypes = new Set(candidateInputTypes);
+        return supportedInputTypes;
+    }
+    var /** @type {?} */ featureTestInput = document.createElement('input');
+    supportedInputTypes = new Set(candidateInputTypes.filter(function (value) {
+        featureTestInput.setAttribute('type', value);
+        return featureTestInput.type === value;
+    }));
+    return supportedInputTypes;
+}
+
+var PlatformModule = (function () {
+    function PlatformModule() {
+    }
+    PlatformModule.decorators = [
+        { type: NgModule, args: [{
+                    providers: [Platform]
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    PlatformModule.ctorParameters = function () { return []; };
+    return PlatformModule;
+}());
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { Platform, getSupportedInputTypes, PlatformModule };
+//# sourceMappingURL=platform.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/platform.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/platform.es5.js.map b/node_modules/@angular/cdk/esm5/platform.es5.js.map
new file mode 100644
index 0000000..d821a5d
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/platform.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"platform.es5.js","sources":["../../packages/cdk/esm5/platform/platform.js","../../packages/cdk/esm5/platform/features.js","../../packages/cdk/esm5/platform/platform-module.js","../../packages/cdk/esm5/platform/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';\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nvar /** @type {?} */ hasV8BreakIterator = (typeof (Intl) !== 'undefined' && ((Intl)).v8BreakIterator);\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n * \\@docs-private\n */\nvar Platform = (function () {\n    function Platform() {\n        this.isBrowser = ty
 peof document === 'object' && !!document;\n        /**\n         * Layout Engines\n         */\n        this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n        this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n        // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n        this.BLINK = this.isBrowser &&\n            (!!(((window)).chrome || hasV8BreakIterator) && !!CSS && !this.EDGE && !this.TRIDENT);\n        // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n        // ensure that Webkit runs standalone and is not used as another engine's base.\n        this.WEBKIT = this.isBrowser &&\n            /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n        /**\n         * Browsers and Platform Types\n         */\n        this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\
 n        // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n        // them self as Gecko-like browsers and modify the userAgent's according to that.\n        // Since we only cover one explicit Firefox case, we can simply check for Firefox\n        // instead of having an unstable check for Gecko.\n        this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n        // Trident on mobile adds the android platform to the userAgent to trick detections.\n        this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n        // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n        // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n        // Safari browser should also use Webkit as its layout engine.\n        this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n 
    }\n    Platform.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    Platform.ctorParameters = function () { return []; };\n    return Platform;\n}());\nexport { Platform };\nfunction Platform_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Platform.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    Platform.ctorParameters;\n    /** @type {?} */\n    Platform.prototype.isBrowser;\n    /**\n     * Layout Engines\n     * @type {?}\n     */\n    Platform.prototype.EDGE;\n    /** @type {?} */\n    Platform.prototype.TRIDENT;\n    /** @type {?} */\n    Platform.prototype.BLINK;\n    /** @type {?} */\n    Platform.prototype.WEBKIT;\n    /**\n     * Browsers and Platform Types\n     * @type {?}\n     */\n    Platform.prototype.IOS;\n    /** @type {?} */\n    Platform.prototype.FIREFOX;\n    /** @type {?} */\n    Platform.prototype.ANDROID;\n    /** @type {?} */\n    Platform.prototype.SAFARI;\n}\n//# sourceMap
 pingURL=platform.js.map","/**\n * Cached result Set of input types support by the current browser.\n */\nvar supportedInputTypes;\n/**\n * Types of <input> that *might* be supported.\n */\nvar candidateInputTypes = [\n    // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n    // first changing it to something else:\n    // The specified value \"\" does not conform to the required format.\n    // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n    'color',\n    'button',\n    'checkbox',\n    'date',\n    'datetime-local',\n    'email',\n    'file',\n    'hidden',\n    'image',\n    'month',\n    'number',\n    'password',\n    'radio',\n    'range',\n    'reset',\n    'search',\n    'submit',\n    'tel',\n    'text',\n    'time',\n    'url',\n    'week',\n];\n/**\n * @return {?} The input types supported by this browser.\n */\nexport function getSupportedInputTypes() {\n    // Result is cached.\n    if (suppor
 tedInputTypes) {\n        return supportedInputTypes;\n    }\n    // We can't check if an input type is not supported until we're on the browser, so say that\n    // everything is supported when not on the browser. We don't use `Platform` here since it's\n    // just a helper function and can't inject it.\n    if (typeof document !== 'object' || !document) {\n        supportedInputTypes = new Set(candidateInputTypes);\n        return supportedInputTypes;\n    }\n    var /** @type {?} */ featureTestInput = document.createElement('input');\n    supportedInputTypes = new Set(candidateInputTypes.filter(function (value) {\n        featureTestInput.setAttribute('type', value);\n        return featureTestInput.type === value;\n    }));\n    return supportedInputTypes;\n}\n//# sourceMappingURL=features.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 { Platform } from './platform';\nvar PlatformModule = (function () {\n    function PlatformModule() {\n    }\n    PlatformModule.decorators = [\n        { type: NgModule, args: [{\n                    providers: [Platform]\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    PlatformModule.ctorParameters = function () { return []; };\n    return PlatformModule;\n}());\nexport { PlatformModule };\nfunction PlatformModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    PlatformModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    PlatformModule.ctorParameters;\n}\n//# sourceMappingURL=platform-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { Platform, getSupportedInputTypes, PlatformModule } 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/esm5/portal.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/portal.es5.js b/node_modules/@angular/cdk/esm5/portal.es5.js
new file mode 100644
index 0000000..8016784
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/portal.es5.js
@@ -0,0 +1,589 @@
+/**
+ * @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 { __extends } from 'tslib';
+import * as tslib_1 from 'tslib';
+import { ComponentFactoryResolver, Directive, Input, NgModule, TemplateRef, ViewContainerRef } from '@angular/core';
+
+/**
+ * Throws an exception when attempting to attach a null portal to a host.
+ * \@docs-private
+ * @return {?}
+ */
+function throwNullPortalError() {
+    throw Error('Must provide a portal to attach');
+}
+/**
+ * Throws an exception when attempting to attach a portal to a host that is already attached.
+ * \@docs-private
+ * @return {?}
+ */
+function throwPortalAlreadyAttachedError() {
+    throw Error('Host already has a portal attached');
+}
+/**
+ * Throws an exception when attempting to attach a portal to an already-disposed host.
+ * \@docs-private
+ * @return {?}
+ */
+function throwPortalHostAlreadyDisposedError() {
+    throw Error('This PortalHost has already been disposed');
+}
+/**
+ * Throws an exception when attempting to attach an unknown portal type.
+ * \@docs-private
+ * @return {?}
+ */
+function throwUnknownPortalTypeError() {
+    throw Error('Attempting to attach an unknown Portal type. BasePortalHost accepts either ' +
+        'a ComponentPortal or a TemplatePortal.');
+}
+/**
+ * Throws an exception when attempting to attach a portal to a null host.
+ * \@docs-private
+ * @return {?}
+ */
+function throwNullPortalHostError() {
+    throw Error('Attempting to attach a portal to a null PortalHost');
+}
+/**
+ * Throws an exception when attempting to detach a portal that is not attached.
+ * \@docs-privatew
+ * @return {?}
+ */
+function throwNoPortalAttachedError() {
+    throw Error('Attempting to detach a portal that is not attached to a host');
+}
+
+/**
+ * A `Portal` is something that you want to render somewhere else.
+ * It can be attach to / detached from a `PortalHost`.
+ * @abstract
+ */
+var Portal = (function () {
+    function Portal() {
+    }
+    /**
+     * Attach this portal to a host.
+     * @param {?} host
+     * @return {?}
+     */
+    Portal.prototype.attach = function (host) {
+        if (host == null) {
+            throwNullPortalHostError();
+        }
+        if (host.hasAttached()) {
+            throwPortalAlreadyAttachedError();
+        }
+        this._attachedHost = host;
+        return (host.attach(this));
+    };
+    /**
+     * Detach this portal from its host
+     * @return {?}
+     */
+    Portal.prototype.detach = function () {
+        var /** @type {?} */ host = this._attachedHost;
+        if (host == null) {
+            throwNoPortalAttachedError();
+        }
+        else {
+            this._attachedHost = null;
+            host.detach();
+        }
+    };
+    Object.defineProperty(Portal.prototype, "isAttached", {
+        /**
+         * Whether this portal is attached to a host.
+         * @return {?}
+         */
+        get: function () {
+            return this._attachedHost != null;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Sets the PortalHost reference without performing `attach()`. This is used directly by
+     * the PortalHost when it is performing an `attach()` or `detach()`.
+     * @param {?} host
+     * @return {?}
+     */
+    Portal.prototype.setAttachedHost = function (host) {
+        this._attachedHost = host;
+    };
+    return Portal;
+}());
+/**
+ * A `ComponentPortal` is a portal that instantiates some Component upon attachment.
+ */
+var ComponentPortal = (function (_super) {
+    __extends(ComponentPortal, _super);
+    /**
+     * @param {?} component
+     * @param {?=} viewContainerRef
+     * @param {?=} injector
+     */
+    function ComponentPortal(component, viewContainerRef, injector) {
+        var _this = _super.call(this) || this;
+        _this.component = component;
+        _this.viewContainerRef = viewContainerRef;
+        _this.injector = injector;
+        return _this;
+    }
+    return ComponentPortal;
+}(Portal));
+/**
+ * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).
+ */
+var TemplatePortal = (function (_super) {
+    __extends(TemplatePortal, _super);
+    /**
+     * @param {?} template
+     * @param {?} viewContainerRef
+     * @param {?=} context
+     */
+    function TemplatePortal(template, viewContainerRef, context) {
+        var _this = _super.call(this) || this;
+        _this.templateRef = template;
+        _this.viewContainerRef = viewContainerRef;
+        if (context) {
+            _this.context = context;
+        }
+        return _this;
+    }
+    Object.defineProperty(TemplatePortal.prototype, "origin", {
+        /**
+         * @return {?}
+         */
+        get: function () {
+            return this.templateRef.elementRef;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Attach the the portal to the provided `PortalHost`.
+     * When a context is provided it will override the `context` property of the `TemplatePortal`
+     * instance.
+     * @param {?} host
+     * @param {?=} context
+     * @return {?}
+     */
+    TemplatePortal.prototype.attach = function (host, context) {
+        if (context === void 0) { context = this.context; }
+        this.context = context;
+        return _super.prototype.attach.call(this, host);
+    };
+    /**
+     * @return {?}
+     */
+    TemplatePortal.prototype.detach = function () {
+        this.context = undefined;
+        return _super.prototype.detach.call(this);
+    };
+    return TemplatePortal;
+}(Portal));
+/**
+ * Partial implementation of PortalHost that only deals with attaching either a
+ * ComponentPortal or a TemplatePortal.
+ * @abstract
+ */
+var BasePortalHost = (function () {
+    function BasePortalHost() {
+        /**
+         * Whether this host has already been permanently disposed.
+         */
+        this._isDisposed = false;
+    }
+    /**
+     * Whether this host has an attached portal.
+     * @return {?}
+     */
+    BasePortalHost.prototype.hasAttached = function () {
+        return !!this._attachedPortal;
+    };
+    /**
+     * @param {?} portal
+     * @return {?}
+     */
+    BasePortalHost.prototype.attach = function (portal) {
+        if (!portal) {
+            throwNullPortalError();
+        }
+        if (this.hasAttached()) {
+            throwPortalAlreadyAttachedError();
+        }
+        if (this._isDisposed) {
+            throwPortalHostAlreadyDisposedError();
+        }
+        if (portal instanceof ComponentPortal) {
+            this._attachedPortal = portal;
+            return this.attachComponentPortal(portal);
+        }
+        else if (portal instanceof TemplatePortal) {
+            this._attachedPortal = portal;
+            return this.attachTemplatePortal(portal);
+        }
+        throwUnknownPortalTypeError();
+    };
+    /**
+     * @abstract
+     * @template T
+     * @param {?} portal
+     * @return {?}
+     */
+    BasePortalHost.prototype.attachComponentPortal = function (portal) { };
+    /**
+     * @abstract
+     * @template C
+     * @param {?} portal
+     * @return {?}
+     */
+    BasePortalHost.prototype.attachTemplatePortal = function (portal) { };
+    /**
+     * @return {?}
+     */
+    BasePortalHost.prototype.detach = function () {
+        if (this._attachedPortal) {
+            this._attachedPortal.setAttachedHost(null);
+            this._attachedPortal = null;
+        }
+        this._invokeDisposeFn();
+    };
+    /**
+     * @return {?}
+     */
+    BasePortalHost.prototype.dispose = function () {
+        if (this.hasAttached()) {
+            this.detach();
+        }
+        this._invokeDisposeFn();
+        this._isDisposed = true;
+    };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    BasePortalHost.prototype.setDisposeFn = function (fn) {
+        this._disposeFn = fn;
+    };
+    /**
+     * @return {?}
+     */
+    BasePortalHost.prototype._invokeDisposeFn = function () {
+        if (this._disposeFn) {
+            this._disposeFn();
+            this._disposeFn = null;
+        }
+    };
+    return BasePortalHost;
+}());
+
+/**
+ * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular
+ * application context.
+ *
+ * This is the only part of the portal core that directly touches the DOM.
+ */
+var DomPortalHost = (function (_super) {
+    __extends(DomPortalHost, _super);
+    /**
+     * @param {?} _hostDomElement
+     * @param {?} _componentFactoryResolver
+     * @param {?} _appRef
+     * @param {?} _defaultInjector
+     */
+    function DomPortalHost(_hostDomElement, _componentFactoryResolver, _appRef, _defaultInjector) {
+        var _this = _super.call(this) || this;
+        _this._hostDomElement = _hostDomElement;
+        _this._componentFactoryResolver = _componentFactoryResolver;
+        _this._appRef = _appRef;
+        _this._defaultInjector = _defaultInjector;
+        return _this;
+    }
+    /**
+     * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.
+     * @template T
+     * @param {?} portal Portal to be attached
+     * @return {?}
+     */
+    DomPortalHost.prototype.attachComponentPortal = function (portal) {
+        var _this = this;
+        var /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);
+        var /** @type {?} */ componentRef;
+        // If the portal specifies a ViewContainerRef, we will use that as the attachment point
+        // for the component (in terms of Angular's component tree, not rendering).
+        // When the ViewContainerRef is missing, we use the factory to create the component directly
+        // and then manually attach the view to the application.
+        if (portal.viewContainerRef) {
+            componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.parentInjector);
+            this.setDisposeFn(function () { return componentRef.destroy(); });
+        }
+        else {
+            componentRef = componentFactory.create(portal.injector || this._defaultInjector);
+            this._appRef.attachView(componentRef.hostView);
+            this.setDisposeFn(function () {
+                _this._appRef.detachView(componentRef.hostView);
+                componentRef.destroy();
+            });
+        }
+        // At this point the component has been instantiated, so we move it to the location in the DOM
+        // where we want it to be rendered.
+        this._hostDomElement.appendChild(this._getComponentRootNode(componentRef));
+        return componentRef;
+    };
+    /**
+     * Attaches a template portal to the DOM as an embedded view.
+     * @template C
+     * @param {?} portal Portal to be attached.
+     * @return {?}
+     */
+    DomPortalHost.prototype.attachTemplatePortal = function (portal) {
+        var _this = this;
+        var /** @type {?} */ viewContainer = portal.viewContainerRef;
+        var /** @type {?} */ viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);
+        viewRef.detectChanges();
+        // The method `createEmbeddedView` will add the view as a child of the viewContainer.
+        // But for the DomPortalHost the view can be added everywhere in the DOM (e.g Overlay Container)
+        // To move the view to the specified host element. We just re-append the existing root nodes.
+        viewRef.rootNodes.forEach(function (rootNode) { return _this._hostDomElement.appendChild(rootNode); });
+        this.setDisposeFn((function () {
+            var /** @type {?} */ index = viewContainer.indexOf(viewRef);
+            if (index !== -1) {
+                viewContainer.remove(index);
+            }
+        }));
+        // TODO(jelbourn): Return locals from view.
+        return viewRef;
+    };
+    /**
+     * Clears out a portal from the DOM.
+     * @return {?}
+     */
+    DomPortalHost.prototype.dispose = function () {
+        _super.prototype.dispose.call(this);
+        if (this._hostDomElement.parentNode != null) {
+            this._hostDomElement.parentNode.removeChild(this._hostDomElement);
+        }
+    };
+    /**
+     * Gets the root HTMLElement for an instantiated component.
+     * @param {?} componentRef
+     * @return {?}
+     */
+    DomPortalHost.prototype._getComponentRootNode = function (componentRef) {
+        return (((componentRef.hostView)).rootNodes[0]);
+    };
+    return DomPortalHost;
+}(BasePortalHost));
+
+/**
+ * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,
+ * the directive instance itself can be attached to a host, enabling declarative use of portals.
+ *
+ * Usage:
+ * <ng-template portal #greeting>
+ *   <p> Hello {{name}} </p>
+ * </ng-template>
+ */
+var TemplatePortalDirective = (function (_super) {
+    __extends(TemplatePortalDirective, _super);
+    /**
+     * @param {?} templateRef
+     * @param {?} viewContainerRef
+     */
+    function TemplatePortalDirective(templateRef, viewContainerRef) {
+        return _super.call(this, templateRef, viewContainerRef) || this;
+    }
+    TemplatePortalDirective.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdk-portal], [cdkPortal], [portal]',
+                    exportAs: 'cdkPortal',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    TemplatePortalDirective.ctorParameters = function () { return [
+        { type: TemplateRef, },
+        { type: ViewContainerRef, },
+    ]; };
+    return TemplatePortalDirective;
+}(TemplatePortal));
+/**
+ * Directive version of a PortalHost. Because the directive *is* a PortalHost, portals can be
+ * directly attached to it, enabling declarative use.
+ *
+ * Usage:
+ * <ng-template [cdkPortalHost]="greeting"></ng-template>
+ */
+var PortalHostDirective = (function (_super) {
+    __extends(PortalHostDirective, _super);
+    /**
+     * @param {?} _componentFactoryResolver
+     * @param {?} _viewContainerRef
+     */
+    function PortalHostDirective(_componentFactoryResolver, _viewContainerRef) {
+        var _this = _super.call(this) || this;
+        _this._componentFactoryResolver = _componentFactoryResolver;
+        _this._viewContainerRef = _viewContainerRef;
+        /**
+         * The attached portal.
+         */
+        _this._portal = null;
+        return _this;
+    }
+    Object.defineProperty(PortalHostDirective.prototype, "_deprecatedPortal", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.portal; },
+        /**
+         * @param {?} v
+         * @return {?}
+         */
+        set: function (v) { this.portal = v; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(PortalHostDirective.prototype, "portal", {
+        /**
+         * Portal associated with the Portal host.
+         * @return {?}
+         */
+        get: function () {
+            return this._portal;
+        },
+        /**
+         * @param {?} portal
+         * @return {?}
+         */
+        set: function (portal) {
+            if (this.hasAttached()) {
+                _super.prototype.detach.call(this);
+            }
+            if (portal) {
+                _super.prototype.attach.call(this, portal);
+            }
+            this._portal = portal;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    PortalHostDirective.prototype.ngOnDestroy = function () {
+        _super.prototype.dispose.call(this);
+        this._portal = null;
+    };
+    /**
+     * Attach the given ComponentPortal to this PortalHost using the ComponentFactoryResolver.
+     *
+     * @template T
+     * @param {?} portal Portal to be attached to the portal host.
+     * @return {?}
+     */
+    PortalHostDirective.prototype.attachComponentPortal = function (portal) {
+        portal.setAttachedHost(this);
+        // If the portal specifies an origin, use that as the logical location of the component
+        // in the application tree. Otherwise use the location of this PortalHost.
+        var /** @type {?} */ viewContainerRef = portal.viewContainerRef != null ?
+            portal.viewContainerRef :
+            this._viewContainerRef;
+        var /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);
+        var /** @type {?} */ ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.parentInjector);
+        _super.prototype.setDisposeFn.call(this, function () { return ref.destroy(); });
+        this._portal = portal;
+        return ref;
+    };
+    /**
+     * Attach the given TemplatePortal to this PortlHost as an embedded View.
+     * @template C
+     * @param {?} portal Portal to be attached.
+     * @return {?}
+     */
+    PortalHostDirective.prototype.attachTemplatePortal = function (portal) {
+        var _this = this;
+        portal.setAttachedHost(this);
+        var /** @type {?} */ viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);
+        _super.prototype.setDisposeFn.call(this, function () { return _this._viewContainerRef.clear(); });
+        this._portal = portal;
+        return viewRef;
+    };
+    PortalHostDirective.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdkPortalHost], [portalHost]',
+                    exportAs: 'cdkPortalHost',
+                    inputs: ['portal: cdkPortalHost']
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    PortalHostDirective.ctorParameters = function () { return [
+        { type: ComponentFactoryResolver, },
+        { type: ViewContainerRef, },
+    ]; };
+    PortalHostDirective.propDecorators = {
+        '_deprecatedPortal': [{ type: Input, args: ['portalHost',] },],
+    };
+    return PortalHostDirective;
+}(BasePortalHost));
+var PortalModule = (function () {
+    function PortalModule() {
+    }
+    PortalModule.decorators = [
+        { type: NgModule, args: [{
+                    exports: [TemplatePortalDirective, PortalHostDirective],
+                    declarations: [TemplatePortalDirective, PortalHostDirective],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    PortalModule.ctorParameters = function () { return []; };
+    return PortalModule;
+}());
+
+/**
+ * Custom injector to be used when providing custom
+ * injection tokens to components inside a portal.
+ * \@docs-private
+ */
+var PortalInjector = (function () {
+    /**
+     * @param {?} _parentInjector
+     * @param {?} _customTokens
+     */
+    function PortalInjector(_parentInjector, _customTokens) {
+        this._parentInjector = _parentInjector;
+        this._customTokens = _customTokens;
+    }
+    /**
+     * @param {?} token
+     * @param {?=} notFoundValue
+     * @return {?}
+     */
+    PortalInjector.prototype.get = function (token, notFoundValue) {
+        var /** @type {?} */ value = this._customTokens.get(token);
+        if (typeof value !== 'undefined') {
+            return value;
+        }
+        return this._parentInjector.get(token, notFoundValue);
+    };
+    return PortalInjector;
+}());
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { Portal, ComponentPortal, TemplatePortal, BasePortalHost, DomPortalHost, TemplatePortalDirective, PortalHostDirective, PortalModule, PortalInjector };
+//# sourceMappingURL=portal.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/portal.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/portal.es5.js.map b/node_modules/@angular/cdk/esm5/portal.es5.js.map
new file mode 100644
index 0000000..5076bc1
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/portal.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"portal.es5.js","sources":["../../packages/cdk/esm5/portal/portal-errors.js","../../packages/cdk/esm5/portal/portal.js","../../packages/cdk/esm5/portal/dom-portal-host.js","../../packages/cdk/esm5/portal/portal-directives.js","../../packages/cdk/esm5/portal/portal-injector.js","../../packages/cdk/esm5/portal/index.js"],"sourcesContent":["/**\n * Throws an exception when attempting to attach a null portal to a host.\n * \\@docs-private\n * @return {?}\n */\nexport function throwNullPortalError() {\n    throw Error('Must provide a portal to attach');\n}\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * \\@docs-private\n * @return {?}\n */\nexport function throwPortalAlreadyAttachedError() {\n    throw Error('Host already has a portal attached');\n}\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * \\@docs-private\n * @return {?}\n */\nexport function throwPortalHost
 AlreadyDisposedError() {\n    throw Error('This PortalHost has already been disposed');\n}\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * \\@docs-private\n * @return {?}\n */\nexport function throwUnknownPortalTypeError() {\n    throw Error('Attempting to attach an unknown Portal type. BasePortalHost accepts either ' +\n        'a ComponentPortal or a TemplatePortal.');\n}\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * \\@docs-private\n * @return {?}\n */\nexport function throwNullPortalHostError() {\n    throw Error('Attempting to attach a portal to a null PortalHost');\n}\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * \\@docs-privatew\n * @return {?}\n */\nexport function throwNoPortalAttachedError() {\n    throw Error('Attempting to detach a portal that is not attached to a host');\n}\n//# sourceMappingURL=portal-errors.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 * as tslib_1 from \"tslib\";\nimport { throwNullPortalHostError, throwPortalAlreadyAttachedError, throwNoPortalAttachedError, throwNullPortalError, throwPortalHostAlreadyDisposedError, throwUnknownPortalTypeError } from './portal-errors';\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalHost`.\n * @abstract\n */\nvar Portal = (function () {\n    function Portal() {\n    }\n    /**\n     * Attach this portal to a host.\n     * @param {?} host\n     * @return {?}\n     */\n    Portal.prototype.attach = function (host) {\n        if (host == null) {\n            throwNullPortalHostError();\n        }\n        if (host.hasAttached()) {\n            throwPortalAlreadyAttachedError();\n        }\n        this._attachedHost = host;\n        
 return (host.attach(this));\n    };\n    /**\n     * Detach this portal from its host\n     * @return {?}\n     */\n    Portal.prototype.detach = function () {\n        var /** @type {?} */ host = this._attachedHost;\n        if (host == null) {\n            throwNoPortalAttachedError();\n        }\n        else {\n            this._attachedHost = null;\n            host.detach();\n        }\n    };\n    Object.defineProperty(Portal.prototype, \"isAttached\", {\n        /**\n         * Whether this portal is attached to a host.\n         * @return {?}\n         */\n        get: function () {\n            return this._attachedHost != null;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Sets the PortalHost reference without performing `attach()`. This is used directly by\n     * the PortalHost when it is performing an `attach()` or `detach()`.\n     * @param {?} host\n     * @return {?}\n     */\n    Portal.prototype.setAttachedHost = func
 tion (host) {\n        this._attachedHost = host;\n    };\n    return Portal;\n}());\nexport { Portal };\nfunction Portal_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Portal.prototype._attachedHost;\n}\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nvar ComponentPortal = (function (_super) {\n    tslib_1.__extends(ComponentPortal, _super);\n    /**\n     * @param {?} component\n     * @param {?=} viewContainerRef\n     * @param {?=} injector\n     */\n    function ComponentPortal(component, viewContainerRef, injector) {\n        var _this = _super.call(this) || this;\n        _this.component = component;\n        _this.viewContainerRef = viewContainerRef;\n        _this.injector = injector;\n        return _this;\n    }\n    return ComponentPortal;\n}(Portal));\nexport { ComponentPortal };\nfunction ComponentPortal_tsickle_Closure_declarations() {\n    /**\n     * The type of the component that will be instantiated for 
 attachment.\n     * @type {?}\n     */\n    ComponentPortal.prototype.component;\n    /**\n     * [Optional] Where the attached component should live in Angular's *logical* component tree.\n     * This is different from where the component *renders*, which is determined by the PortalHost.\n     * The origin is necessary when the host is outside of the Angular application context.\n     * @type {?}\n     */\n    ComponentPortal.prototype.viewContainerRef;\n    /**\n     * [Optional] Injector used for the instantiation of the component.\n     * @type {?}\n     */\n    ComponentPortal.prototype.injector;\n}\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nvar TemplatePortal = (function (_super) {\n    tslib_1.__extends(TemplatePortal, _super);\n    /**\n     * @param {?} template\n     * @param {?} viewContainerRef\n     * @param {?=} context\n     */\n    function TemplatePortal(template, viewContainerRef, context) {\n        var _thi
 s = _super.call(this) || this;\n        _this.templateRef = template;\n        _this.viewContainerRef = viewContainerRef;\n        if (context) {\n            _this.context = context;\n        }\n        return _this;\n    }\n    Object.defineProperty(TemplatePortal.prototype, \"origin\", {\n        /**\n         * @return {?}\n         */\n        get: function () {\n            return this.templateRef.elementRef;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Attach the the portal to the provided `PortalHost`.\n     * When a context is provided it will override the `context` property of the `TemplatePortal`\n     * instance.\n     * @param {?} host\n     * @param {?=} context\n     * @return {?}\n     */\n    TemplatePortal.prototype.attach = function (host, context) {\n        if (context === void 0) { context = this.context; }\n        this.context = context;\n        return _super.prototype.attach.call(this, host);\n    };\n    /**\
 n     * @return {?}\n     */\n    TemplatePortal.prototype.detach = function () {\n        this.context = undefined;\n        return _super.prototype.detach.call(this);\n    };\n    return TemplatePortal;\n}(Portal));\nexport { TemplatePortal };\nfunction TemplatePortal_tsickle_Closure_declarations() {\n    /**\n     * The embedded template that will be used to instantiate an embedded View in the host.\n     * @type {?}\n     */\n    TemplatePortal.prototype.templateRef;\n    /**\n     * Reference to the ViewContainer into which the template will be stamped out.\n     * @type {?}\n     */\n    TemplatePortal.prototype.viewContainerRef;\n    /** @type {?} */\n    TemplatePortal.prototype.context;\n}\n/**\n * Partial implementation of PortalHost that only deals with attaching either a\n * ComponentPortal or a TemplatePortal.\n * @abstract\n */\nvar BasePortalHost = (function () {\n    function BasePortalHost() {\n        /**\n         * Whether this host has already been permanently d
 isposed.\n         */\n        this._isDisposed = false;\n    }\n    /**\n     * Whether this host has an attached portal.\n     * @return {?}\n     */\n    BasePortalHost.prototype.hasAttached = function () {\n        return !!this._attachedPortal;\n    };\n    /**\n     * @param {?} portal\n     * @return {?}\n     */\n    BasePortalHost.prototype.attach = function (portal) {\n        if (!portal) {\n            throwNullPortalError();\n        }\n        if (this.hasAttached()) {\n            throwPortalAlreadyAttachedError();\n        }\n        if (this._isDisposed) {\n            throwPortalHostAlreadyDisposedError();\n        }\n        if (portal instanceof ComponentPortal) {\n            this._attachedPortal = portal;\n            return this.attachComponentPortal(portal);\n        }\n        else if (portal instanceof TemplatePortal) {\n            this._attachedPortal = portal;\n            return this.attachTemplatePortal(portal);\n        }\n        throwUnknownPortalTy
 peError();\n    };\n    /**\n     * @abstract\n     * @template T\n     * @param {?} portal\n     * @return {?}\n     */\n    BasePortalHost.prototype.attachComponentPortal = function (portal) { };\n    /**\n     * @abstract\n     * @template C\n     * @param {?} portal\n     * @return {?}\n     */\n    BasePortalHost.prototype.attachTemplatePortal = function (portal) { };\n    /**\n     * @return {?}\n     */\n    BasePortalHost.prototype.detach = function () {\n        if (this._attachedPortal) {\n            this._attachedPortal.setAttachedHost(null);\n            this._attachedPortal = null;\n        }\n        this._invokeDisposeFn();\n    };\n    /**\n     * @return {?}\n     */\n    BasePortalHost.prototype.dispose = function () {\n        if (this.hasAttached()) {\n            this.detach();\n        }\n        this._invokeDisposeFn();\n        this._isDisposed = true;\n    };\n    /**\n     * @param {?} fn\n     * @return {?}\n     */\n    BasePortalHost.prototype.setDispos
 eFn = function (fn) {\n        this._disposeFn = fn;\n    };\n    /**\n     * @return {?}\n     */\n    BasePortalHost.prototype._invokeDisposeFn = function () {\n        if (this._disposeFn) {\n            this._disposeFn();\n            this._disposeFn = null;\n        }\n    };\n    return BasePortalHost;\n}());\nexport { BasePortalHost };\nfunction BasePortalHost_tsickle_Closure_declarations() {\n    /**\n     * The portal currently attached to the host.\n     * @type {?}\n     */\n    BasePortalHost.prototype._attachedPortal;\n    /**\n     * A function that will permanently dispose this host.\n     * @type {?}\n     */\n    BasePortalHost.prototype._disposeFn;\n    /**\n     * Whether this host has already been permanently disposed.\n     * @type {?}\n     */\n    BasePortalHost.prototype._isDisposed;\n}\n//# sourceMappingURL=portal.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 * as tslib_1 from \"tslib\";\nimport { BasePortalHost } from './portal';\n/**\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n *\n * This is the only part of the portal core that directly touches the DOM.\n */\nvar DomPortalHost = (function (_super) {\n    tslib_1.__extends(DomPortalHost, _super);\n    /**\n     * @param {?} _hostDomElement\n     * @param {?} _componentFactoryResolver\n     * @param {?} _appRef\n     * @param {?} _defaultInjector\n     */\n    function DomPortalHost(_hostDomElement, _componentFactoryResolver, _appRef, _defaultInjector) {\n        var _this = _super.call(this) || this;\n        _this._hostDomElement = _hostDomElement;\n        _this._componentFactoryResolver = _componentFactoryResolver;\n        _this._appRef = _appRef;\n        _this._defaultInjector = _defaultInjector;\n        return _this;\n    }\n   
  /**\n     * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n     * @template T\n     * @param {?} portal Portal to be attached\n     * @return {?}\n     */\n    DomPortalHost.prototype.attachComponentPortal = function (portal) {\n        var _this = this;\n        var /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n        var /** @type {?} */ componentRef;\n        // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n        // for the component (in terms of Angular's component tree, not rendering).\n        // When the ViewContainerRef is missing, we use the factory to create the component directly\n        // and then manually attach the view to the application.\n        if (portal.viewContainerRef) {\n            componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.vi
 ewContainerRef.parentInjector);\n            this.setDisposeFn(function () { return componentRef.destroy(); });\n        }\n        else {\n            componentRef = componentFactory.create(portal.injector || this._defaultInjector);\n            this._appRef.attachView(componentRef.hostView);\n            this.setDisposeFn(function () {\n                _this._appRef.detachView(componentRef.hostView);\n                componentRef.destroy();\n            });\n        }\n        // At this point the component has been instantiated, so we move it to the location in the DOM\n        // where we want it to be rendered.\n        this._hostDomElement.appendChild(this._getComponentRootNode(componentRef));\n        return componentRef;\n    };\n    /**\n     * Attaches a template portal to the DOM as an embedded view.\n     * @template C\n     * @param {?} portal Portal to be attached.\n     * @return {?}\n     */\n    DomPortalHost.prototype.attachTemplatePortal = function (portal) {\n   
      var _this = this;\n        var /** @type {?} */ viewContainer = portal.viewContainerRef;\n        var /** @type {?} */ viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n        viewRef.detectChanges();\n        // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n        // But for the DomPortalHost the view can be added everywhere in the DOM (e.g Overlay Container)\n        // To move the view to the specified host element. We just re-append the existing root nodes.\n        viewRef.rootNodes.forEach(function (rootNode) { return _this._hostDomElement.appendChild(rootNode); });\n        this.setDisposeFn((function () {\n            var /** @type {?} */ index = viewContainer.indexOf(viewRef);\n            if (index !== -1) {\n                viewContainer.remove(index);\n            }\n        }));\n        // TODO(jelbourn): Return locals from view.\n        return viewRef;\n    };\n    /**\n     * Clears out a po
 rtal from the DOM.\n     * @return {?}\n     */\n    DomPortalHost.prototype.dispose = function () {\n        _super.prototype.dispose.call(this);\n        if (this._hostDomElement.parentNode != null) {\n            this._hostDomElement.parentNode.removeChild(this._hostDomElement);\n        }\n    };\n    /**\n     * Gets the root HTMLElement for an instantiated component.\n     * @param {?} componentRef\n     * @return {?}\n     */\n    DomPortalHost.prototype._getComponentRootNode = function (componentRef) {\n        return (((componentRef.hostView)).rootNodes[0]);\n    };\n    return DomPortalHost;\n}(BasePortalHost));\nexport { DomPortalHost };\nfunction DomPortalHost_tsickle_Closure_declarations() {\n    /** @type {?} */\n    DomPortalHost.prototype._hostDomElement;\n    /** @type {?} */\n    DomPortalHost.prototype._componentFactoryResolver;\n    /** @type {?} */\n    DomPortalHost.prototype._appRef;\n    /** @type {?} */\n    DomPortalHost.prototype._defaultInjector;\n}\n//# 
 sourceMappingURL=dom-portal-host.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 * as tslib_1 from \"tslib\";\nimport { NgModule, Directive, TemplateRef, ComponentFactoryResolver, ViewContainerRef, Input, } from '@angular/core';\nimport { TemplatePortal, BasePortalHost } from './portal';\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n *\n * Usage:\n * <ng-template portal #greeting>\n *   <p> Hello {{name}} </p>\n * </ng-template>\n */\nvar TemplatePortalDirective = (function (_super) {\n    tslib_1.__extends(TemplatePortalDirective, _super);\n    /**\n     * @param {?} templateRef\n     * @param {?} viewContainerRef\n     */\n    function TemplatePortalDirective(t
 emplateRef, viewContainerRef) {\n        return _super.call(this, templateRef, viewContainerRef) || this;\n    }\n    TemplatePortalDirective.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdk-portal], [cdkPortal], [portal]',\n                    exportAs: 'cdkPortal',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    TemplatePortalDirective.ctorParameters = function () { return [\n        { type: TemplateRef, },\n        { type: ViewContainerRef, },\n    ]; };\n    return TemplatePortalDirective;\n}(TemplatePortal));\nexport { TemplatePortalDirective };\nfunction TemplatePortalDirective_tsickle_Closure_declarations() {\n    /** @type {?} */\n    TemplatePortalDirective.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    TemplatePortalDirective.ctorParameters;\n}\n/**\n * Directive version of a PortalHost. Because the directive *is* a PortalHost, portals can be\n * directly attached to it, enabling d
 eclarative use.\n *\n * Usage:\n * <ng-template [cdkPortalHost]=\"greeting\"></ng-template>\n */\nvar PortalHostDirective = (function (_super) {\n    tslib_1.__extends(PortalHostDirective, _super);\n    /**\n     * @param {?} _componentFactoryResolver\n     * @param {?} _viewContainerRef\n     */\n    function PortalHostDirective(_componentFactoryResolver, _viewContainerRef) {\n        var _this = _super.call(this) || this;\n        _this._componentFactoryResolver = _componentFactoryResolver;\n        _this._viewContainerRef = _viewContainerRef;\n        /**\n         * The attached portal.\n         */\n        _this._portal = null;\n        return _this;\n    }\n    Object.defineProperty(PortalHostDirective.prototype, \"_deprecatedPortal\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.portal; },\n        /**\n         * @param {?} v\n         * @return {?}\n         */\n        set: function (v) { this.portal =
  v; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(PortalHostDirective.prototype, \"portal\", {\n        /**\n         * Portal associated with the Portal host.\n         * @return {?}\n         */\n        get: function () {\n            return this._portal;\n        },\n        /**\n         * @param {?} portal\n         * @return {?}\n         */\n        set: function (portal) {\n            if (this.hasAttached()) {\n                _super.prototype.detach.call(this);\n            }\n            if (portal) {\n                _super.prototype.attach.call(this, portal);\n            }\n            this._portal = portal;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * @return {?}\n     */\n    PortalHostDirective.prototype.ngOnDestroy = function () {\n        _super.prototype.dispose.call(this);\n        this._portal = null;\n    };\n    /**\n     * Attach the given ComponentPortal to this
  PortalHost using the ComponentFactoryResolver.\n     *\n     * @template T\n     * @param {?} portal Portal to be attached to the portal host.\n     * @return {?}\n     */\n    PortalHostDirective.prototype.attachComponentPortal = function (portal) {\n        portal.setAttachedHost(this);\n        // If the portal specifies an origin, use that as the logical location of the component\n        // in the application tree. Otherwise use the location of this PortalHost.\n        var /** @type {?} */ viewContainerRef = portal.viewContainerRef != null ?\n            portal.viewContainerRef :\n            this._viewContainerRef;\n        var /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n        var /** @type {?} */ ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.parentInjector);\n        _super.prototype.setDisposeFn.call(this, function () { return ref.des
 troy(); });\n        this._portal = portal;\n        return ref;\n    };\n    /**\n     * Attach the given TemplatePortal to this PortlHost as an embedded View.\n     * @template C\n     * @param {?} portal Portal to be attached.\n     * @return {?}\n     */\n    PortalHostDirective.prototype.attachTemplatePortal = function (portal) {\n        var _this = this;\n        portal.setAttachedHost(this);\n        var /** @type {?} */ viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n        _super.prototype.setDisposeFn.call(this, function () { return _this._viewContainerRef.clear(); });\n        this._portal = portal;\n        return viewRef;\n    };\n    PortalHostDirective.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkPortalHost], [portalHost]',\n                    exportAs: 'cdkPortalHost',\n                    inputs: ['portal: cdkPortalHost']\n                },] },\n    ];\n    /**\n     * @nocollap
 se\n     */\n    PortalHostDirective.ctorParameters = function () { return [\n        { type: ComponentFactoryResolver, },\n        { type: ViewContainerRef, },\n    ]; };\n    PortalHostDirective.propDecorators = {\n        '_deprecatedPortal': [{ type: Input, args: ['portalHost',] },],\n    };\n    return PortalHostDirective;\n}(BasePortalHost));\nexport { PortalHostDirective };\nfunction PortalHostDirective_tsickle_Closure_declarations() {\n    /** @type {?} */\n    PortalHostDirective.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    PortalHostDirective.ctorParameters;\n    /** @type {?} */\n    PortalHostDirective.propDecorators;\n    /**\n     * The attached portal.\n     * @type {?}\n     */\n    PortalHostDirective.prototype._portal;\n    /** @type {?} */\n    PortalHostDirective.prototype._componentFactoryResolver;\n    /** @type {?} */\n    PortalHostDirective.prototype._viewContainerRef;\n}\nvar PortalModule = (function () {\n    function PortalModu
 le() {\n    }\n    PortalModule.decorators = [\n        { type: NgModule, args: [{\n                    exports: [TemplatePortalDirective, PortalHostDirective],\n                    declarations: [TemplatePortalDirective, PortalHostDirective],\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    PortalModule.ctorParameters = function () { return []; };\n    return PortalModule;\n}());\nexport { PortalModule };\nfunction PortalModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    PortalModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    PortalModule.ctorParameters;\n}\n//# sourceMappingURL=portal-directives.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/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a 
 portal.\n * \\@docs-private\n */\nvar PortalInjector = (function () {\n    /**\n     * @param {?} _parentInjector\n     * @param {?} _customTokens\n     */\n    function PortalInjector(_parentInjector, _customTokens) {\n        this._parentInjector = _parentInjector;\n        this._customTokens = _customTokens;\n    }\n    /**\n     * @param {?} token\n     * @param {?=} notFoundValue\n     * @return {?}\n     */\n    PortalInjector.prototype.get = function (token, notFoundValue) {\n        var /** @type {?} */ value = this._customTokens.get(token);\n        if (typeof value !== 'undefined') {\n            return value;\n        }\n        return this._parentInjector.get(token, notFoundValue);\n    };\n    return PortalInjector;\n}());\nexport { PortalInjector };\nfunction PortalInjector_tsickle_Closure_declarations() {\n    /** @type {?} */\n    PortalInjector.prototype._parentInjector;\n    /** @type {?} */\n    PortalInjector.prototype._customTokens;\n}\n//# sourceMappingURL=port
 al-injector.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { Portal, ComponentPortal, TemplatePortal, BasePortalHost, DomPortalHost, TemplatePortalDirective, PortalHostDirective, PortalModule, PortalInjector } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["tslib_1.__extends"],"mappings":"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"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/rxjs.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/rxjs.es5.js b/node_modules/@angular/cdk/esm5/rxjs.es5.js
new file mode 100644
index 0000000..a0b92e9
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/rxjs.es5.js
@@ -0,0 +1,165 @@
+/**
+ * @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 { _finally } from 'rxjs/operator/finally';
+import { _catch } from 'rxjs/operator/catch';
+import { _do } from 'rxjs/operator/do';
+import { map } from 'rxjs/operator/map';
+import { filter } from 'rxjs/operator/filter';
+import { share } from 'rxjs/operator/share';
+import { first } from 'rxjs/operator/first';
+import { switchMap } from 'rxjs/operator/switchMap';
+import { startWith } from 'rxjs/operator/startWith';
+import { debounceTime } from 'rxjs/operator/debounceTime';
+import { auditTime } from 'rxjs/operator/auditTime';
+import { takeUntil } from 'rxjs/operator/takeUntil';
+import { delay } from 'rxjs/operator/delay';
+
+/**
+ * Utility class used to chain RxJS operators.
+ *
+ * This class is the concrete implementation, but the type used by the user when chaining
+ * is StrictRxChain. The strict chain enforces types on the operators to the same level as
+ * the prototype-added equivalents.
+ */
+var RxChain = (function () {
+    /**
+     * @param {?} _context
+     */
+    function RxChain(_context) {
+        this._context = _context;
+    }
+    /**
+     * Starts a new chain and specifies the initial `this` value.
+     * @template O
+     * @param {?} context Initial `this` value for the chain.
+     * @return {?}
+     */
+    RxChain.from = function (context) {
+        return new RxChain(context);
+    };
+    /**
+     * Invokes an RxJS operator as a part of the chain.
+     * @param {?} operator Operator to be invoked.
+     * @param {...?} args Arguments to be passed to the operator.
+     * @return {?}
+     */
+    RxChain.prototype.call = function (operator) {
+        var args = [];
+        for (var _i = 1; _i < arguments.length; _i++) {
+            args[_i - 1] = arguments[_i];
+        }
+        this._context = operator.call.apply(operator, [this._context].concat(args));
+        return this;
+    };
+    /**
+     * Subscribes to the result of the chain.
+     * @param {?} fn Callback to be invoked when the result emits a value.
+     * @return {?}
+     */
+    RxChain.prototype.subscribe = function (fn) {
+        return this._context.subscribe(fn);
+    };
+    /**
+     * Returns the result of the chain.
+     * @return {?}
+     */
+    RxChain.prototype.result = function () {
+        return this._context;
+    };
+    return RxChain;
+}());
+
+var FinallyBrand = (function () {
+    function FinallyBrand() {
+    }
+    return FinallyBrand;
+}());
+var CatchBrand = (function () {
+    function CatchBrand() {
+    }
+    return CatchBrand;
+}());
+var DoBrand = (function () {
+    function DoBrand() {
+    }
+    return DoBrand;
+}());
+var MapBrand = (function () {
+    function MapBrand() {
+    }
+    return MapBrand;
+}());
+var FilterBrand = (function () {
+    function FilterBrand() {
+    }
+    return FilterBrand;
+}());
+var ShareBrand = (function () {
+    function ShareBrand() {
+    }
+    return ShareBrand;
+}());
+var FirstBrand = (function () {
+    function FirstBrand() {
+    }
+    return FirstBrand;
+}());
+var SwitchMapBrand = (function () {
+    function SwitchMapBrand() {
+    }
+    return SwitchMapBrand;
+}());
+var StartWithBrand = (function () {
+    function StartWithBrand() {
+    }
+    return StartWithBrand;
+}());
+var DebounceTimeBrand = (function () {
+    function DebounceTimeBrand() {
+    }
+    return DebounceTimeBrand;
+}());
+var AuditTimeBrand = (function () {
+    function AuditTimeBrand() {
+    }
+    return AuditTimeBrand;
+}());
+var TakeUntilBrand = (function () {
+    function TakeUntilBrand() {
+    }
+    return TakeUntilBrand;
+}());
+var DelayBrand = (function () {
+    function DelayBrand() {
+    }
+    return DelayBrand;
+}());
+// We add `Function` to the type intersection to make this nomically different from
+// `finallyOperatorType` while still being structurally the same. Without this, TypeScript tries to
+// reduce `typeof _finallyOperator & FinallyBrand` to `finallyOperatorType<T>` and then fails
+// because `T` isn't known.
+var finallyOperator = (_finally);
+var catchOperator = (_catch);
+var doOperator = (_do);
+var map$1 = (map);
+var filter$1 = (filter);
+var share$1 = (share);
+var first$1 = (first);
+var switchMap$1 = (switchMap);
+var startWith$1 = (startWith);
+var debounceTime$1 = (debounceTime);
+var auditTime$1 = (auditTime);
+var takeUntil$1 = (takeUntil);
+var delay$1 = (delay);
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { RxChain, FinallyBrand, CatchBrand, DoBrand, MapBrand, FilterBrand, ShareBrand, FirstBrand, SwitchMapBrand, StartWithBrand, DebounceTimeBrand, AuditTimeBrand, TakeUntilBrand, DelayBrand, finallyOperator, catchOperator, doOperator, map$1 as map, filter$1 as filter, share$1 as share, first$1 as first, switchMap$1 as switchMap, startWith$1 as startWith, debounceTime$1 as debounceTime, auditTime$1 as auditTime, takeUntil$1 as takeUntil, delay$1 as delay };
+//# sourceMappingURL=rxjs.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/rxjs.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/rxjs.es5.js.map b/node_modules/@angular/cdk/esm5/rxjs.es5.js.map
new file mode 100644
index 0000000..69c3e79
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/rxjs.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"rxjs.es5.js","sources":["../../packages/cdk/esm5/rxjs/rx-chain.js","../../packages/cdk/esm5/rxjs/rx-operators.js","../../packages/cdk/esm5/rxjs/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 * Utility class used to chain RxJS operators.\n *\n * This class is the concrete implementation, but the type used by the user when chaining\n * is StrictRxChain. The strict chain enforces types on the operators to the same level as\n * the prototype-added equivalents.\n */\nvar RxChain = (function () {\n    /**\n     * @param {?} _context\n     */\n    function RxChain(_context) {\n        this._context = _context;\n    }\n    /**\n     * Starts a new chain and specifies the initial `this` value.\n     * @template O\n     * @param {?} context Initial `this` value for the chain.\
 n     * @return {?}\n     */\n    RxChain.from = function (context) {\n        return new RxChain(context);\n    };\n    /**\n     * Invokes an RxJS operator as a part of the chain.\n     * @param {?} operator Operator to be invoked.\n     * @param {...?} args Arguments to be passed to the operator.\n     * @return {?}\n     */\n    RxChain.prototype.call = function (operator) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        this._context = operator.call.apply(operator, [this._context].concat(args));\n        return this;\n    };\n    /**\n     * Subscribes to the result of the chain.\n     * @param {?} fn Callback to be invoked when the result emits a value.\n     * @return {?}\n     */\n    RxChain.prototype.subscribe = function (fn) {\n        return this._context.subscribe(fn);\n    };\n    /**\n     * Returns the result of the chain.\n     * @return {?}\n     */\n    RxChain.prototy
 pe.result = function () {\n        return this._context;\n    };\n    return RxChain;\n}());\nexport { RxChain };\nfunction RxChain_tsickle_Closure_declarations() {\n    /** @type {?} */\n    RxChain.prototype._context;\n}\n//# sourceMappingURL=rx-chain.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 { _finally as _finallyOperator } from 'rxjs/operator/finally';\nimport { _catch as _catchOperator } from 'rxjs/operator/catch';\nimport { _do as _doOperator } from 'rxjs/operator/do';\nimport { map as mapOperator } from 'rxjs/operator/map';\nimport { filter as filterOperator } from 'rxjs/operator/filter';\nimport { share as shareOperator } from 'rxjs/operator/share';\nimport { first as firstOperator } from 'rxjs/operator/first';\nimport { switchMap as switchMapOperator } from 'rxjs/operator/switchMap';\nimport {
  startWith as startWithOperator } from 'rxjs/operator/startWith';\nimport { debounceTime as debounceTimeOperator } from 'rxjs/operator/debounceTime';\nimport { auditTime as auditTimeOperator } from 'rxjs/operator/auditTime';\nimport { takeUntil as takeUntilOperator } from 'rxjs/operator/takeUntil';\nimport { delay as delayOperator } from 'rxjs/operator/delay';\nvar FinallyBrand = (function () {\n    function FinallyBrand() {\n    }\n    return FinallyBrand;\n}());\nexport { FinallyBrand };\nfunction FinallyBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FinallyBrand.prototype._;\n}\nvar CatchBrand = (function () {\n    function CatchBrand() {\n    }\n    return CatchBrand;\n}());\nexport { CatchBrand };\nfunction CatchBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CatchBrand.prototype._;\n}\nvar DoBrand = (function () {\n    function DoBrand() {\n    }\n    return DoBrand;\n}());\nexport { DoBrand };\nfunction DoBrand_tsickle_Closure_declarations
 () {\n    /** @type {?} */\n    DoBrand.prototype._;\n}\nvar MapBrand = (function () {\n    function MapBrand() {\n    }\n    return MapBrand;\n}());\nexport { MapBrand };\nfunction MapBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    MapBrand.prototype._;\n}\nvar FilterBrand = (function () {\n    function FilterBrand() {\n    }\n    return FilterBrand;\n}());\nexport { FilterBrand };\nfunction FilterBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FilterBrand.prototype._;\n}\nvar ShareBrand = (function () {\n    function ShareBrand() {\n    }\n    return ShareBrand;\n}());\nexport { ShareBrand };\nfunction ShareBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ShareBrand.prototype._;\n}\nvar FirstBrand = (function () {\n    function FirstBrand() {\n    }\n    return FirstBrand;\n}());\nexport { FirstBrand };\nfunction FirstBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FirstBrand.prototype._;\n}\nvar SwitchMapBrand
  = (function () {\n    function SwitchMapBrand() {\n    }\n    return SwitchMapBrand;\n}());\nexport { SwitchMapBrand };\nfunction SwitchMapBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    SwitchMapBrand.prototype._;\n}\nvar StartWithBrand = (function () {\n    function StartWithBrand() {\n    }\n    return StartWithBrand;\n}());\nexport { StartWithBrand };\nfunction StartWithBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    StartWithBrand.prototype._;\n}\nvar DebounceTimeBrand = (function () {\n    function DebounceTimeBrand() {\n    }\n    return DebounceTimeBrand;\n}());\nexport { DebounceTimeBrand };\nfunction DebounceTimeBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    DebounceTimeBrand.prototype._;\n}\nvar AuditTimeBrand = (function () {\n    function AuditTimeBrand() {\n    }\n    return AuditTimeBrand;\n}());\nexport { AuditTimeBrand };\nfunction AuditTimeBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Audit
 TimeBrand.prototype._;\n}\nvar TakeUntilBrand = (function () {\n    function TakeUntilBrand() {\n    }\n    return TakeUntilBrand;\n}());\nexport { TakeUntilBrand };\nfunction TakeUntilBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    TakeUntilBrand.prototype._;\n}\nvar DelayBrand = (function () {\n    function DelayBrand() {\n    }\n    return DelayBrand;\n}());\nexport { DelayBrand };\nfunction DelayBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    DelayBrand.prototype._;\n}\n// We add `Function` to the type intersection to make this nomically different from\n// `finallyOperatorType` while still being structurally the same. Without this, TypeScript tries to\n// reduce `typeof _finallyOperator & FinallyBrand` to `finallyOperatorType<T>` and then fails\n// because `T` isn't known.\nexport var /** @type {?} */ finallyOperator = (_finallyOperator);\nexport var /** @type {?} */ catchOperator = (_catchOperator);\nexport var /** @type {?} */ doOperator = (
 _doOperator);\nexport var /** @type {?} */ map = (mapOperator);\nexport var /** @type {?} */ filter = (filterOperator);\nexport var /** @type {?} */ share = (shareOperator);\nexport var /** @type {?} */ first = (firstOperator);\nexport var /** @type {?} */ switchMap = (switchMapOperator);\nexport var /** @type {?} */ startWith = (startWithOperator);\nexport var /** @type {?} */ debounceTime = (debounceTimeOperator);\nexport var /** @type {?} */ auditTime = (auditTimeOperator);\nexport var /** @type {?} */ takeUntil = (takeUntilOperator);\nexport var /** @type {?} */ delay = (delayOperator);\n//# sourceMappingURL=rx-operators.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { RxChain, FinallyBrand, CatchBrand, DoBrand, MapBrand, FilterBrand, ShareBrand, FirstBrand, SwitchMapBrand, StartWithBrand, DebounceTimeBrand, AuditTimeBrand, TakeUntilBrand, DelayBrand, finallyOperator, catchOperator, doOperator, map, filter, share, first, switchMap, startWith, debounceTime, au
 ditTime, takeUntil, delay } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["_finallyOperator","_catchOperator","_doOperator","map","mapOperator","filter","filterOperator","share","shareOperator","first","firstOperator","switchMap","switchMapOperator","startWith","startWithOperator","debounceTime","debounceTimeOperator","auditTime","auditTimeOperator","takeUntil","takeUntilOperator","delay","delayOperator"],"mappings":"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"}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/overlay.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/overlay.es5.js b/node_modules/@angular/cdk/esm5/overlay.es5.js
new file mode 100644
index 0000000..ac4223f
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/overlay.es5.js
@@ -0,0 +1,2041 @@
+/**
+ * @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 { ApplicationRef, ComponentFactoryResolver, Directive, ElementRef, EventEmitter, Inject, Injectable, InjectionToken, Injector, Input, NgModule, NgZone, Optional, Output, Renderer2, SkipSelf, TemplateRef, ViewContainerRef } from '@angular/core';
+import { DomPortalHost, PortalModule, TemplatePortal } from '@angular/cdk/portal';
+import { Subject } from 'rxjs/Subject';
+import { ScrollDispatchModule, ScrollDispatcher, Scrollable, VIEWPORT_RULER_PROVIDER, ViewportRuler } from '@angular/cdk/scrolling';
+import { Subscription } from 'rxjs/Subscription';
+import { __extends } from 'tslib';
+import * as tslib_1 from 'tslib';
+import { Directionality } from '@angular/cdk/bidi';
+import { coerceBooleanProperty } from '@angular/cdk/coercion';
+import { ESCAPE } from '@angular/cdk/keycodes';
+
+/**
+ * Scroll strategy that doesn't do anything.
+ */
+var NoopScrollStrategy = (function () {
+    function NoopScrollStrategy() {
+    }
+    /**
+     * @return {?}
+     */
+    NoopScrollStrategy.prototype.enable = function () { };
+    /**
+     * @return {?}
+     */
+    NoopScrollStrategy.prototype.disable = function () { };
+    /**
+     * @return {?}
+     */
+    NoopScrollStrategy.prototype.attach = function () { };
+    return NoopScrollStrategy;
+}());
+
+/**
+ * OverlayConfig captures the initial configuration used when opening an overlay.
+ */
+var OverlayConfig = (function () {
+    /**
+     * @param {?=} config
+     */
+    function OverlayConfig(config) {
+        var _this = this;
+        /**
+         * Strategy to be used when handling scroll events while the overlay is open.
+         */
+        this.scrollStrategy = new NoopScrollStrategy();
+        /**
+         * Custom class to add to the overlay pane.
+         */
+        this.panelClass = '';
+        /**
+         * Whether the overlay has a backdrop.
+         */
+        this.hasBackdrop = false;
+        /**
+         * Custom class to add to the backdrop
+         */
+        this.backdropClass = 'cdk-overlay-dark-backdrop';
+        /**
+         * The direction of the text in the overlay panel.
+         */
+        this.direction = 'ltr';
+        if (config) {
+            Object.keys(config).forEach(function (key) { return _this[key] = config[key]; });
+        }
+    }
+    return OverlayConfig;
+}());
+
+/**
+ * Reference to an overlay that has been created with the Overlay service.
+ * Used to manipulate or dispose of said overlay.
+ */
+var OverlayRef = (function () {
+    /**
+     * @param {?} _portalHost
+     * @param {?} _pane
+     * @param {?} _config
+     * @param {?} _ngZone
+     */
+    function OverlayRef(_portalHost, _pane, _config, _ngZone) {
+        this._portalHost = _portalHost;
+        this._pane = _pane;
+        this._config = _config;
+        this._ngZone = _ngZone;
+        this._backdropElement = null;
+        this._backdropClick = new Subject();
+        this._attachments = new Subject();
+        this._detachments = new Subject();
+        if (_config.scrollStrategy) {
+            _config.scrollStrategy.attach(this);
+        }
+    }
+    Object.defineProperty(OverlayRef.prototype, "overlayElement", {
+        /**
+         * The overlay's HTML element
+         * @return {?}
+         */
+        get: function () {
+            return this._pane;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Attaches the overlay to a portal instance and adds the backdrop.
+     * @param {?} portal Portal instance to which to attach the overlay.
+     * @return {?} The portal attachment result.
+     */
+    OverlayRef.prototype.attach = function (portal) {
+        var _this = this;
+        var /** @type {?} */ attachResult = this._portalHost.attach(portal);
+        if (this._config.positionStrategy) {
+            this._config.positionStrategy.attach(this);
+        }
+        // Update the pane element with the given configuration.
+        this._updateStackingOrder();
+        this.updateSize();
+        this.updateDirection();
+        this.updatePosition();
+        if (this._config.scrollStrategy) {
+            this._config.scrollStrategy.enable();
+        }
+        // Enable pointer events for the overlay pane element.
+        this._togglePointerEvents(true);
+        if (this._config.hasBackdrop) {
+            this._attachBackdrop();
+        }
+        if (this._config.panelClass) {
+            // We can't do a spread here, because IE doesn't support setting multiple classes.
+            if (Array.isArray(this._config.panelClass)) {
+                this._config.panelClass.forEach(function (cls) { return _this._pane.classList.add(cls); });
+            }
+            else {
+                this._pane.classList.add(this._config.panelClass);
+            }
+        }
+        // Only emit the `attachments` event once all other setup is done.
+        this._attachments.next();
+        return attachResult;
+    };
+    /**
+     * Detaches an overlay from a portal.
+     * @return {?} The portal detachment result.
+     */
+    OverlayRef.prototype.detach = function () {
+        this.detachBackdrop();
+        // When the overlay is detached, the pane element should disable pointer events.
+        // This is necessary because otherwise the pane element will cover the page and disable
+        // pointer events therefore. Depends on the position strategy and the applied pane boundaries.
+        this._togglePointerEvents(false);
+        if (this._config.positionStrategy && this._config.positionStrategy.detach) {
+            this._config.positionStrategy.detach();
+        }
+        if (this._config.scrollStrategy) {
+            this._config.scrollStrategy.disable();
+        }
+        var /** @type {?} */ detachmentResult = this._portalHost.detach();
+        // Only emit after everything is detached.
+        this._detachments.next();
+        return detachmentResult;
+    };
+    /**
+     * Cleans up the overlay from the DOM.
+     * @return {?}
+     */
+    OverlayRef.prototype.dispose = function () {
+        if (this._config.positionStrategy) {
+            this._config.positionStrategy.dispose();
+        }
+        if (this._config.scrollStrategy) {
+            this._config.scrollStrategy.disable();
+        }
+        this.detachBackdrop();
+        this._portalHost.dispose();
+        this._attachments.complete();
+        this._backdropClick.complete();
+        this._detachments.next();
+        this._detachments.complete();
+    };
+    /**
+     * Checks whether the overlay has been attached.
+     * @return {?}
+     */
+    OverlayRef.prototype.hasAttached = function () {
+        return this._portalHost.hasAttached();
+    };
+    /**
+     * Returns an observable that emits when the backdrop has been clicked.
+     * @return {?}
+     */
+    OverlayRef.prototype.backdropClick = function () {
+        return this._backdropClick.asObservable();
+    };
+    /**
+     * Returns an observable that emits when the overlay has been attached.
+     * @return {?}
+     */
+    OverlayRef.prototype.attachments = function () {
+        return this._attachments.asObservable();
+    };
+    /**
+     * Returns an observable that emits when the overlay has been detached.
+     * @return {?}
+     */
+    OverlayRef.prototype.detachments = function () {
+        return this._detachments.asObservable();
+    };
+    /**
+     * Gets the current config of the overlay.
+     * @return {?}
+     */
+    OverlayRef.prototype.getConfig = function () {
+        return this._config;
+    };
+    /**
+     * Updates the position of the overlay based on the position strategy.
+     * @return {?}
+     */
+    OverlayRef.prototype.updatePosition = function () {
+        if (this._config.positionStrategy) {
+            this._config.positionStrategy.apply();
+        }
+    };
+    /**
+     * Updates the text direction of the overlay panel.
+     * @return {?}
+     */
+    OverlayRef.prototype.updateDirection = function () {
+        this._pane.setAttribute('dir', /** @type {?} */ ((this._config.direction)));
+    };
+    /**
+     * Updates the size of the overlay based on the overlay config.
+     * @return {?}
+     */
+    OverlayRef.prototype.updateSize = function () {
+        if (this._config.width || this._config.width === 0) {
+            this._pane.style.width = formatCssUnit(this._config.width);
+        }
+        if (this._config.height || this._config.height === 0) {
+            this._pane.style.height = formatCssUnit(this._config.height);
+        }
+        if (this._config.minWidth || this._config.minWidth === 0) {
+            this._pane.style.minWidth = formatCssUnit(this._config.minWidth);
+        }
+        if (this._config.minHeight || this._config.minHeight === 0) {
+            this._pane.style.minHeight = formatCssUnit(this._config.minHeight);
+        }
+        if (this._config.maxWidth || this._config.maxWidth === 0) {
+            this._pane.style.maxWidth = formatCssUnit(this._config.maxWidth);
+        }
+        if (this._config.maxHeight || this._config.maxHeight === 0) {
+            this._pane.style.maxHeight = formatCssUnit(this._config.maxHeight);
+        }
+    };
+    /**
+     * Toggles the pointer events for the overlay pane element.
+     * @param {?} enablePointer
+     * @return {?}
+     */
+    OverlayRef.prototype._togglePointerEvents = function (enablePointer) {
+        this._pane.style.pointerEvents = enablePointer ? 'auto' : 'none';
+    };
+    /**
+     * Attaches a backdrop for this overlay.
+     * @return {?}
+     */
+    OverlayRef.prototype._attachBackdrop = function () {
+        var _this = this;
+        this._backdropElement = document.createElement('div');
+        this._backdropElement.classList.add('cdk-overlay-backdrop');
+        if (this._config.backdropClass) {
+            this._backdropElement.classList.add(this._config.backdropClass);
+        } /** @type {?} */
+        ((
+        // Insert the backdrop before the pane in the DOM order,
+        // in order to handle stacked overlays properly.
+        this._pane.parentElement)).insertBefore(this._backdropElement, this._pane);
+        // Forward backdrop clicks such that the consumer of the overlay can perform whatever
+        // action desired when such a click occurs (usually closing the overlay).
+        this._backdropElement.addEventListener('click', function () { return _this._backdropClick.next(null); });
+        // Add class to fade-in the backdrop after one frame.
+        requestAnimationFrame(function () {
+            if (_this._backdropElement) {
+                _this._backdropElement.classList.add('cdk-overlay-backdrop-showing');
+            }
+        });
+    };
+    /**
+     * Updates the stacking order of the element, moving it to the top if necessary.
+     * This is required in cases where one overlay was detached, while another one,
+     * that should be behind it, was destroyed. The next time both of them are opened,
+     * the stacking will be wrong, because the detached element's pane will still be
+     * in its original DOM position.
+     * @return {?}
+     */
+    OverlayRef.prototype._updateStackingOrder = function () {
+        if (this._pane.nextSibling) {
+            ((this._pane.parentNode)).appendChild(this._pane);
+        }
+    };
+    /**
+     * Detaches the backdrop (if any) associated with the overlay.
+     * @return {?}
+     */
+    OverlayRef.prototype.detachBackdrop = function () {
+        var _this = this;
+        var /** @type {?} */ backdropToDetach = this._backdropElement;
+        if (backdropToDetach) {
+            var /** @type {?} */ finishDetach_1 = function () {
+                // It may not be attached to anything in certain cases (e.g. unit tests).
+                if (backdropToDetach && backdropToDetach.parentNode) {
+                    backdropToDetach.parentNode.removeChild(backdropToDetach);
+                }
+                // It is possible that a new portal has been attached to this overlay since we started
+                // removing the backdrop. If that is the case, only clear the backdrop reference if it
+                // is still the same instance that we started to remove.
+                if (_this._backdropElement == backdropToDetach) {
+                    _this._backdropElement = null;
+                }
+            };
+            backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');
+            if (this._config.backdropClass) {
+                backdropToDetach.classList.remove(this._config.backdropClass);
+            }
+            backdropToDetach.addEventListener('transitionend', finishDetach_1);
+            // If the backdrop doesn't have a transition, the `transitionend` event won't fire.
+            // In this case we make it unclickable and we try to remove it after a delay.
+            backdropToDetach.style.pointerEvents = 'none';
+            // Run this outside the Angular zone because there's nothing that Angular cares about.
+            // If it were to run inside the Angular zone, every test that used Overlay would have to be
+            // either async or fakeAsync.
+            this._ngZone.runOutsideAngular(function () {
+                setTimeout(finishDetach_1, 500);
+            });
+        }
+    };
+    return OverlayRef;
+}());
+/**
+ * @param {?} value
+ * @return {?}
+ */
+function formatCssUnit(value) {
+    return typeof value === 'string' ? (value) : value + "px";
+}
+
+/** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */
+/**
+ * The points of the origin element and the overlay element to connect.
+ */
+var ConnectionPositionPair = (function () {
+    /**
+     * @param {?} origin
+     * @param {?} overlay
+     */
+    function ConnectionPositionPair(origin, overlay) {
+        this.originX = origin.originX;
+        this.originY = origin.originY;
+        this.overlayX = overlay.overlayX;
+        this.overlayY = overlay.overlayY;
+    }
+    return ConnectionPositionPair;
+}());
+/**
+ * Set of properties regarding the position of the origin and overlay relative to the viewport
+ * with respect to the containing Scrollable elements.
+ *
+ * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the
+ * bounds of any one of the strategy's Scrollable's bounding client rectangle.
+ *
+ * The overlay and origin are outside view if there is no overlap between their bounding client
+ * rectangle and any one of the strategy's Scrollable's bounding client rectangle.
+ *
+ *       -----------                    -----------
+ *       | outside |                    | clipped |
+ *       |  view   |              --------------------------
+ *       |         |              |     |         |        |
+ *       ----------               |     -----------        |
+ *  --------------------------    |                        |
+ *  |                        |    |      Scrollable        |
+ *  |                        |    |                        |
+ *  |                        |     --------------------------
+ *  |      Scrollable        |
+ *  |                        |
+ *  --------------------------
+ */
+var ScrollingVisibility = (function () {
+    function ScrollingVisibility() {
+    }
+    return ScrollingVisibility;
+}());
+/**
+ * The change event emitted by the strategy when a fallback position is used.
+ */
+var ConnectedOverlayPositionChange = (function () {
+    /**
+     * @param {?} connectionPair
+     * @param {?} scrollableViewProperties
+     */
+    function ConnectedOverlayPositionChange(connectionPair, scrollableViewProperties) {
+        this.connectionPair = connectionPair;
+        this.scrollableViewProperties = scrollableViewProperties;
+    }
+    /**
+     * @nocollapse
+     */
+    ConnectedOverlayPositionChange.ctorParameters = function () { return [
+        { type: ConnectionPositionPair, },
+        { type: ScrollingVisibility, decorators: [{ type: Optional },] },
+    ]; };
+    return ConnectedOverlayPositionChange;
+}());
+
+/**
+ * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.
+ * \@docs-private
+ * @param {?} element Dimensions of the element (from getBoundingClientRect)
+ * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)
+ * @return {?} Whether the element is scrolled out of view
+ */
+function isElementScrolledOutsideView(element, scrollContainers) {
+    return scrollContainers.some(function (containerBounds) {
+        var /** @type {?} */ outsideAbove = element.bottom < containerBounds.top;
+        var /** @type {?} */ outsideBelow = element.top > containerBounds.bottom;
+        var /** @type {?} */ outsideLeft = element.right < containerBounds.left;
+        var /** @type {?} */ outsideRight = element.left > containerBounds.right;
+        return outsideAbove || outsideBelow || outsideLeft || outsideRight;
+    });
+}
+/**
+ * Gets whether an element is clipped by any of its scrolling containers.
+ * \@docs-private
+ * @param {?} element Dimensions of the element (from getBoundingClientRect)
+ * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)
+ * @return {?} Whether the element is clipped
+ */
+function isElementClippedByScrolling(element, scrollContainers) {
+    return scrollContainers.some(function (scrollContainerRect) {
+        var /** @type {?} */ clippedAbove = element.top < scrollContainerRect.top;
+        var /** @type {?} */ clippedBelow = element.bottom > scrollContainerRect.bottom;
+        var /** @type {?} */ clippedLeft = element.left < scrollContainerRect.left;
+        var /** @type {?} */ clippedRight = element.right > scrollContainerRect.right;
+        return clippedAbove || clippedBelow || clippedLeft || clippedRight;
+    });
+}
+
+/**
+ * A strategy for positioning overlays. Using this strategy, an overlay is given an
+ * implicit position relative some origin element. The relative position is defined in terms of
+ * a point on the origin element that is connected to a point on the overlay element. For example,
+ * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner
+ * of the overlay.
+ */
+var ConnectedPositionStrategy = (function () {
+    /**
+     * @param {?} originPos
+     * @param {?} overlayPos
+     * @param {?} _connectedTo
+     * @param {?} _viewportRuler
+     */
+    function ConnectedPositionStrategy(originPos, overlayPos, _connectedTo, _viewportRuler) {
+        this._connectedTo = _connectedTo;
+        this._viewportRuler = _viewportRuler;
+        /**
+         * Layout direction of the position strategy.
+         */
+        this._dir = 'ltr';
+        /**
+         * The offset in pixels for the overlay connection point on the x-axis
+         */
+        this._offsetX = 0;
+        /**
+         * The offset in pixels for the overlay connection point on the y-axis
+         */
+        this._offsetY = 0;
+        /**
+         * The Scrollable containers used to check scrollable view properties on position change.
+         */
+        this.scrollables = [];
+        /**
+         * Subscription to viewport resize events.
+         */
+        this._resizeSubscription = Subscription.EMPTY;
+        /**
+         * Ordered list of preferred positions, from most to least desirable.
+         */
+        this._preferredPositions = [];
+        this._onPositionChange = new Subject();
+        this._origin = this._connectedTo.nativeElement;
+        this.withFallbackPosition(originPos, overlayPos);
+    }
+    Object.defineProperty(ConnectedPositionStrategy.prototype, "_isRtl", {
+        /**
+         * Whether the we're dealing with an RTL context
+         * @return {?}
+         */
+        get: function () {
+            return this._dir === 'rtl';
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedPositionStrategy.prototype, "onPositionChange", {
+        /**
+         * Emits an event when the connection point changes.
+         * @return {?}
+         */
+        get: function () {
+            return this._onPositionChange.asObservable();
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedPositionStrategy.prototype, "positions", {
+        /**
+         * Ordered list of preferred positions, from most to least desirable.
+         * @return {?}
+         */
+        get: function () {
+            return this._preferredPositions;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.attach = function (overlayRef) {
+        var _this = this;
+        this._overlayRef = overlayRef;
+        this._pane = overlayRef.overlayElement;
+        this._resizeSubscription.unsubscribe();
+        this._resizeSubscription = this._viewportRuler.change().subscribe(function () { return _this.apply(); });
+    };
+    /**
+     * Performs any cleanup after the element is destroyed.
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.dispose = function () {
+        this._resizeSubscription.unsubscribe();
+    };
+    /**
+     * \@docs-private
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.detach = function () {
+        this._resizeSubscription.unsubscribe();
+    };
+    /**
+     * Updates the position of the overlay element, using whichever preferred position relative
+     * to the origin fits on-screen.
+     * \@docs-private
+     *
+     * @return {?} Resolves when the styles have been applied.
+     */
+    ConnectedPositionStrategy.prototype.apply = function () {
+        // We need the bounding rects for the origin and the overlay to determine how to position
+        // the overlay relative to the origin.
+        var /** @type {?} */ element = this._pane;
+        var /** @type {?} */ originRect = this._origin.getBoundingClientRect();
+        var /** @type {?} */ overlayRect = element.getBoundingClientRect();
+        // We use the viewport rect to determine whether a position would go off-screen.
+        var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();
+        // Fallback point if none of the fallbacks fit into the viewport.
+        var /** @type {?} */ fallbackPoint;
+        var /** @type {?} */ fallbackPosition;
+        // We want to place the overlay in the first of the preferred positions such that the
+        // overlay fits on-screen.
+        for (var _i = 0, _a = this._preferredPositions; _i < _a.length; _i++) {
+            var pos = _a[_i];
+            // Get the (x, y) point of connection on the origin, and then use that to get the
+            // (top, left) coordinate for the overlay at `pos`.
+            var /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, pos);
+            var /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, pos);
+            // If the overlay in the calculated position fits on-screen, put it there and we're done.
+            if (overlayPoint.fitsInViewport) {
+                this._setElementPosition(element, overlayRect, overlayPoint, pos);
+                // Save the last connected position in case the position needs to be re-calculated.
+                this._lastConnectedPosition = pos;
+                return;
+            }
+            else if (!fallbackPoint || fallbackPoint.visibleArea < overlayPoint.visibleArea) {
+                fallbackPoint = overlayPoint;
+                fallbackPosition = pos;
+            }
+        }
+        // If none of the preferred positions were in the viewport, take the one
+        // with the largest visible area.
+        this._setElementPosition(element, overlayRect, /** @type {?} */ ((fallbackPoint)), /** @type {?} */ ((fallbackPosition)));
+    };
+    /**
+     * This re-aligns the overlay element with the trigger in its last calculated position,
+     * even if a position higher in the "preferred positions" list would now fit. This
+     * allows one to re-align the panel without changing the orientation of the panel.
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.recalculateLastPosition = function () {
+        var /** @type {?} */ originRect = this._origin.getBoundingClientRect();
+        var /** @type {?} */ overlayRect = this._pane.getBoundingClientRect();
+        var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();
+        var /** @type {?} */ lastPosition = this._lastConnectedPosition || this._preferredPositions[0];
+        var /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, lastPosition);
+        var /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, lastPosition);
+        this._setElementPosition(this._pane, overlayRect, overlayPoint, lastPosition);
+    };
+    /**
+     * Sets the list of Scrollable containers that host the origin element so that
+     * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every
+     * Scrollable must be an ancestor element of the strategy's origin element.
+     * @param {?} scrollables
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.withScrollableContainers = function (scrollables) {
+        this.scrollables = scrollables;
+    };
+    /**
+     * Adds a new preferred fallback position.
+     * @param {?} originPos
+     * @param {?} overlayPos
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.withFallbackPosition = function (originPos, overlayPos) {
+        this._preferredPositions.push(new ConnectionPositionPair(originPos, overlayPos));
+        return this;
+    };
+    /**
+     * Sets the layout direction so the overlay's position can be adjusted to match.
+     * @param {?} dir New layout direction.
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.withDirection = function (dir) {
+        this._dir = dir;
+        return this;
+    };
+    /**
+     * Sets an offset for the overlay's connection point on the x-axis
+     * @param {?} offset New offset in the X axis.
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.withOffsetX = function (offset) {
+        this._offsetX = offset;
+        return this;
+    };
+    /**
+     * Sets an offset for the overlay's connection point on the y-axis
+     * @param {?} offset New offset in the Y axis.
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype.withOffsetY = function (offset) {
+        this._offsetY = offset;
+        return this;
+    };
+    /**
+     * Gets the horizontal (x) "start" dimension based on whether the overlay is in an RTL context.
+     * @param {?} rect
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._getStartX = function (rect) {
+        return this._isRtl ? rect.right : rect.left;
+    };
+    /**
+     * Gets the horizontal (x) "end" dimension based on whether the overlay is in an RTL context.
+     * @param {?} rect
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._getEndX = function (rect) {
+        return this._isRtl ? rect.left : rect.right;
+    };
+    /**
+     * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.
+     * @param {?} originRect
+     * @param {?} pos
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._getOriginConnectionPoint = function (originRect, pos) {
+        var /** @type {?} */ originStartX = this._getStartX(originRect);
+        var /** @type {?} */ originEndX = this._getEndX(originRect);
+        var /** @type {?} */ x;
+        if (pos.originX == 'center') {
+            x = originStartX + (originRect.width / 2);
+        }
+        else {
+            x = pos.originX == 'start' ? originStartX : originEndX;
+        }
+        var /** @type {?} */ y;
+        if (pos.originY == 'center') {
+            y = originRect.top + (originRect.height / 2);
+        }
+        else {
+            y = pos.originY == 'top' ? originRect.top : originRect.bottom;
+        }
+        return { x: x, y: y };
+    };
+    /**
+     * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and
+     * origin point to which the overlay should be connected, as well as how much of the element
+     * would be inside the viewport at that position.
+     * @param {?} originPoint
+     * @param {?} overlayRect
+     * @param {?} viewportRect
+     * @param {?} pos
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._getOverlayPoint = function (originPoint, overlayRect, viewportRect, pos) {
+        // Calculate the (overlayStartX, overlayStartY), the start of the potential overlay position
+        // relative to the origin point.
+        var /** @type {?} */ overlayStartX;
+        if (pos.overlayX == 'center') {
+            overlayStartX = -overlayRect.width / 2;
+        }
+        else if (pos.overlayX === 'start') {
+            overlayStartX = this._isRtl ? -overlayRect.width : 0;
+        }
+        else {
+            overlayStartX = this._isRtl ? 0 : -overlayRect.width;
+        }
+        var /** @type {?} */ overlayStartY;
+        if (pos.overlayY == 'center') {
+            overlayStartY = -overlayRect.height / 2;
+        }
+        else {
+            overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;
+        }
+        // The (x, y) coordinates of the overlay.
+        var /** @type {?} */ x = originPoint.x + overlayStartX + this._offsetX;
+        var /** @type {?} */ y = originPoint.y + overlayStartY + this._offsetY;
+        // How much the overlay would overflow at this position, on each side.
+        var /** @type {?} */ leftOverflow = 0 - x;
+        var /** @type {?} */ rightOverflow = (x + overlayRect.width) - viewportRect.width;
+        var /** @type {?} */ topOverflow = 0 - y;
+        var /** @type {?} */ bottomOverflow = (y + overlayRect.height) - viewportRect.height;
+        // Visible parts of the element on each axis.
+        var /** @type {?} */ visibleWidth = this._subtractOverflows(overlayRect.width, leftOverflow, rightOverflow);
+        var /** @type {?} */ visibleHeight = this._subtractOverflows(overlayRect.height, topOverflow, bottomOverflow);
+        // The area of the element that's within the viewport.
+        var /** @type {?} */ visibleArea = visibleWidth * visibleHeight;
+        var /** @type {?} */ fitsInViewport = (overlayRect.width * overlayRect.height) === visibleArea;
+        return { x: x, y: y, fitsInViewport: fitsInViewport, visibleArea: visibleArea };
+    };
+    /**
+     * Gets the view properties of the trigger and overlay, including whether they are clipped
+     * or completely outside the view of any of the strategy's scrollables.
+     * @param {?} overlay
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._getScrollVisibility = function (overlay) {
+        var /** @type {?} */ originBounds = this._origin.getBoundingClientRect();
+        var /** @type {?} */ overlayBounds = overlay.getBoundingClientRect();
+        var /** @type {?} */ scrollContainerBounds = this.scrollables.map(function (s) { return s.getElementRef().nativeElement.getBoundingClientRect(); });
+        return {
+            isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),
+            isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),
+            isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),
+            isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),
+        };
+    };
+    /**
+     * Physically positions the overlay element to the given coordinate.
+     * @param {?} element
+     * @param {?} overlayRect
+     * @param {?} overlayPoint
+     * @param {?} pos
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._setElementPosition = function (element, overlayRect, overlayPoint, pos) {
+        // We want to set either `top` or `bottom` based on whether the overlay wants to appear above
+        // or below the origin and the direction in which the element will expand.
+        var /** @type {?} */ verticalStyleProperty = pos.overlayY === 'bottom' ? 'bottom' : 'top';
+        // When using `bottom`, we adjust the y position such that it is the distance
+        // from the bottom of the viewport rather than the top.
+        var /** @type {?} */ y = verticalStyleProperty === 'top' ?
+            overlayPoint.y :
+            document.documentElement.clientHeight - (overlayPoint.y + overlayRect.height);
+        // We want to set either `left` or `right` based on whether the overlay wants to appear "before"
+        // or "after" the origin, which determines the direction in which the element will expand.
+        // For the horizontal axis, the meaning of "before" and "after" change based on whether the
+        // page is in RTL or LTR.
+        var /** @type {?} */ horizontalStyleProperty;
+        if (this._dir === 'rtl') {
+            horizontalStyleProperty = pos.overlayX === 'end' ? 'left' : 'right';
+        }
+        else {
+            horizontalStyleProperty = pos.overlayX === 'end' ? 'right' : 'left';
+        }
+        // When we're setting `right`, we adjust the x position such that it is the distance
+        // from the right edge of the viewport rather than the left edge.
+        var /** @type {?} */ x = horizontalStyleProperty === 'left' ?
+            overlayPoint.x :
+            document.documentElement.clientWidth - (overlayPoint.x + overlayRect.width);
+        // Reset any existing styles. This is necessary in case the preferred position has
+        // changed since the last `apply`.
+        ['top', 'bottom', 'left', 'right'].forEach(function (p) { return element.style[p] = null; });
+        element.style[verticalStyleProperty] = y + "px";
+        element.style[horizontalStyleProperty] = x + "px";
+        // Notify that the position has been changed along with its change properties.
+        var /** @type {?} */ scrollableViewProperties = this._getScrollVisibility(element);
+        var /** @type {?} */ positionChange = new ConnectedOverlayPositionChange(pos, scrollableViewProperties);
+        this._onPositionChange.next(positionChange);
+    };
+    /**
+     * Subtracts the amount that an element is overflowing on an axis from it's length.
+     * @param {?} length
+     * @param {...?} overflows
+     * @return {?}
+     */
+    ConnectedPositionStrategy.prototype._subtractOverflows = function (length) {
+        var overflows = [];
+        for (var _i = 1; _i < arguments.length; _i++) {
+            overflows[_i - 1] = arguments[_i];
+        }
+        return overflows.reduce(function (currentValue, currentOverflow) {
+            return currentValue - Math.max(currentOverflow, 0);
+        }, length);
+    };
+    return ConnectedPositionStrategy;
+}());
+
+/**
+ * A strategy for positioning overlays. Using this strategy, an overlay is given an
+ * explicit position relative to the browser's viewport. We use flexbox, instead of
+ * transforms, in order to avoid issues with subpixel rendering which can cause the
+ * element to become blurry.
+ */
+var GlobalPositionStrategy = (function () {
+    function GlobalPositionStrategy() {
+        this._cssPosition = 'static';
+        this._topOffset = '';
+        this._bottomOffset = '';
+        this._leftOffset = '';
+        this._rightOffset = '';
+        this._alignItems = '';
+        this._justifyContent = '';
+        this._width = '';
+        this._height = '';
+        this._wrapper = null;
+    }
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.attach = function (overlayRef) {
+        this._overlayRef = overlayRef;
+    };
+    /**
+     * Sets the top position of the overlay. Clears any previously set vertical position.
+     * @param {?=} value New top offset.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.top = function (value) {
+        if (value === void 0) { value = ''; }
+        this._bottomOffset = '';
+        this._topOffset = value;
+        this._alignItems = 'flex-start';
+        return this;
+    };
+    /**
+     * Sets the left position of the overlay. Clears any previously set horizontal position.
+     * @param {?=} value New left offset.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.left = function (value) {
+        if (value === void 0) { value = ''; }
+        this._rightOffset = '';
+        this._leftOffset = value;
+        this._justifyContent = 'flex-start';
+        return this;
+    };
+    /**
+     * Sets the bottom position of the overlay. Clears any previously set vertical position.
+     * @param {?=} value New bottom offset.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.bottom = function (value) {
+        if (value === void 0) { value = ''; }
+        this._topOffset = '';
+        this._bottomOffset = value;
+        this._alignItems = 'flex-end';
+        return this;
+    };
+    /**
+     * Sets the right position of the overlay. Clears any previously set horizontal position.
+     * @param {?=} value New right offset.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.right = function (value) {
+        if (value === void 0) { value = ''; }
+        this._leftOffset = '';
+        this._rightOffset = value;
+        this._justifyContent = 'flex-end';
+        return this;
+    };
+    /**
+     * Sets the overlay width and clears any previously set width.
+     * @param {?=} value New width for the overlay
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.width = function (value) {
+        if (value === void 0) { value = ''; }
+        this._width = value;
+        // When the width is 100%, we should reset the `left` and the offset,
+        // in order to ensure that the element is flush against the viewport edge.
+        if (value === '100%') {
+            this.left('0px');
+        }
+        return this;
+    };
+    /**
+     * Sets the overlay height and clears any previously set height.
+     * @param {?=} value New height for the overlay
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.height = function (value) {
+        if (value === void 0) { value = ''; }
+        this._height = value;
+        // When the height is 100%, we should reset the `top` and the offset,
+        // in order to ensure that the element is flush against the viewport edge.
+        if (value === '100%') {
+            this.top('0px');
+        }
+        return this;
+    };
+    /**
+     * Centers the overlay horizontally with an optional offset.
+     * Clears any previously set horizontal position.
+     *
+     * @param {?=} offset Overlay offset from the horizontal center.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.centerHorizontally = function (offset) {
+        if (offset === void 0) { offset = ''; }
+        this.left(offset);
+        this._justifyContent = 'center';
+        return this;
+    };
+    /**
+     * Centers the overlay vertically with an optional offset.
+     * Clears any previously set vertical position.
+     *
+     * @param {?=} offset Overlay offset from the vertical center.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.centerVertically = function (offset) {
+        if (offset === void 0) { offset = ''; }
+        this.top(offset);
+        this._alignItems = 'center';
+        return this;
+    };
+    /**
+     * Apply the position to the element.
+     * \@docs-private
+     *
+     * @return {?} Resolved when the styles have been applied.
+     */
+    GlobalPositionStrategy.prototype.apply = function () {
+        var /** @type {?} */ element = this._overlayRef.overlayElement;
+        if (!this._wrapper && element.parentNode) {
+            this._wrapper = document.createElement('div');
+            this._wrapper.classList.add('cdk-global-overlay-wrapper');
+            element.parentNode.insertBefore(this._wrapper, element);
+            this._wrapper.appendChild(element);
+        }
+        var /** @type {?} */ styles = element.style;
+        var /** @type {?} */ parentStyles = ((element.parentNode)).style;
+        styles.position = this._cssPosition;
+        styles.marginTop = this._topOffset;
+        styles.marginLeft = this._leftOffset;
+        styles.marginBottom = this._bottomOffset;
+        styles.marginRight = this._rightOffset;
+        styles.width = this._width;
+        styles.height = this._height;
+        parentStyles.justifyContent = this._justifyContent;
+        parentStyles.alignItems = this._alignItems;
+    };
+    /**
+     * Removes the wrapper element from the DOM.
+     * @return {?}
+     */
+    GlobalPositionStrategy.prototype.dispose = function () {
+        if (this._wrapper && this._wrapper.parentNode) {
+            this._wrapper.parentNode.removeChild(this._wrapper);
+            this._wrapper = null;
+        }
+    };
+    return GlobalPositionStrategy;
+}());
+
+/**
+ * Builder for overlay position strategy.
+ */
+var OverlayPositionBuilder = (function () {
+    /**
+     * @param {?} _viewportRuler
+     */
+    function OverlayPositionBuilder(_viewportRuler) {
+        this._viewportRuler = _viewportRuler;
+    }
+    /**
+     * Creates a global position strategy.
+     * @return {?}
+     */
+    OverlayPositionBuilder.prototype.global = function () {
+        return new GlobalPositionStrategy();
+    };
+    /**
+     * Creates a relative position strategy.
+     * @param {?} elementRef
+     * @param {?} originPos
+     * @param {?} overlayPos
+     * @return {?}
+     */
+    OverlayPositionBuilder.prototype.connectedTo = function (elementRef, originPos, overlayPos) {
+        return new ConnectedPositionStrategy(originPos, overlayPos, elementRef, this._viewportRuler);
+    };
+    OverlayPositionBuilder.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    OverlayPositionBuilder.ctorParameters = function () { return [
+        { type: ViewportRuler, },
+    ]; };
+    return OverlayPositionBuilder;
+}());
+
+/**
+ * The OverlayContainer is the container in which all overlays will load.
+ * It should be provided in the root component to ensure it is properly shared.
+ */
+var OverlayContainer = (function () {
+    function OverlayContainer() {
+    }
+    /**
+     * @return {?}
+     */
+    OverlayContainer.prototype.ngOnDestroy = function () {
+        if (this._containerElement && this._containerElement.parentNode) {
+            this._containerElement.parentNode.removeChild(this._containerElement);
+        }
+    };
+    /**
+     * This method returns the overlay container element. It will lazily
+     * create the element the first time  it is called to facilitate using
+     * the container in non-browser environments.
+     * @return {?} the container element
+     */
+    OverlayContainer.prototype.getContainerElement = function () {
+        if (!this._containerElement) {
+            this._createContainer();
+        }
+        return this._containerElement;
+    };
+    /**
+     * Create the overlay container element, which is simply a div
+     * with the 'cdk-overlay-container' class on the document body.
+     * @return {?}
+     */
+    OverlayContainer.prototype._createContainer = function () {
+        var /** @type {?} */ container = document.createElement('div');
+        container.classList.add('cdk-overlay-container');
+        document.body.appendChild(container);
+        this._containerElement = container;
+    };
+    OverlayContainer.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    OverlayContainer.ctorParameters = function () { return []; };
+    return OverlayContainer;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentContainer
+ * @return {?}
+ */
+function OVERLAY_CONTAINER_PROVIDER_FACTORY(parentContainer) {
+    return parentContainer || new OverlayContainer();
+}
+/**
+ * \@docs-private
+ */
+var OVERLAY_CONTAINER_PROVIDER = {
+    // If there is already an OverlayContainer available, use that. Otherwise, provide a new one.
+    provide: OverlayContainer,
+    deps: [[new Optional(), new SkipSelf(), OverlayContainer]],
+    useFactory: OVERLAY_CONTAINER_PROVIDER_FACTORY
+};
+
+/**
+ * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.
+ * @return {?}
+ */
+function getMatScrollStrategyAlreadyAttachedError() {
+    return Error("Scroll strategy has already been attached.");
+}
+
+/**
+ * Strategy that will close the overlay as soon as the user starts scrolling.
+ */
+var CloseScrollStrategy = (function () {
+    /**
+     * @param {?} _scrollDispatcher
+     */
+    function CloseScrollStrategy(_scrollDispatcher) {
+        this._scrollDispatcher = _scrollDispatcher;
+        this._scrollSubscription = null;
+    }
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    CloseScrollStrategy.prototype.attach = function (overlayRef) {
+        if (this._overlayRef) {
+            throw getMatScrollStrategyAlreadyAttachedError();
+        }
+        this._overlayRef = overlayRef;
+    };
+    /**
+     * @return {?}
+     */
+    CloseScrollStrategy.prototype.enable = function () {
+        var _this = this;
+        if (!this._scrollSubscription) {
+            this._scrollSubscription = this._scrollDispatcher.scrolled(0, function () {
+                if (_this._overlayRef.hasAttached()) {
+                    _this._overlayRef.detach();
+                }
+                _this.disable();
+            });
+        }
+    };
+    /**
+     * @return {?}
+     */
+    CloseScrollStrategy.prototype.disable = function () {
+        if (this._scrollSubscription) {
+            this._scrollSubscription.unsubscribe();
+            this._scrollSubscription = null;
+        }
+    };
+    return CloseScrollStrategy;
+}());
+
+/**
+ * Strategy that will prevent the user from scrolling while the overlay is visible.
+ */
+var BlockScrollStrategy = (function () {
+    /**
+     * @param {?} _viewportRuler
+     */
+    function BlockScrollStrategy(_viewportRuler) {
+        this._viewportRuler = _viewportRuler;
+        this._previousHTMLStyles = { top: '', left: '' };
+        this._isEnabled = false;
+    }
+    /**
+     * @return {?}
+     */
+    BlockScrollStrategy.prototype.attach = function () { };
+    /**
+     * @return {?}
+     */
+    BlockScrollStrategy.prototype.enable = function () {
+        if (this._canBeEnabled()) {
+            var /** @type {?} */ root = document.documentElement;
+            this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();
+            // Cache the previous inline styles in case the user had set them.
+            this._previousHTMLStyles.left = root.style.left || '';
+            this._previousHTMLStyles.top = root.style.top || '';
+            // Note: we're using the `html` node, instead of the `body`, because the `body` may
+            // have the user agent margin, whereas the `html` is guaranteed not to have one.
+            root.style.left = -this._previousScrollPosition.left + "px";
+            root.style.top = -this._previousScrollPosition.top + "px";
+            root.classList.add('cdk-global-scrollblock');
+            this._isEnabled = true;
+        }
+    };
+    /**
+     * @return {?}
+     */
+    BlockScrollStrategy.prototype.disable = function () {
+        if (this._isEnabled) {
+            this._isEnabled = false;
+            document.documentElement.style.left = this._previousHTMLStyles.left;
+            document.documentElement.style.top = this._previousHTMLStyles.top;
+            document.documentElement.classList.remove('cdk-global-scrollblock');
+            window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);
+        }
+    };
+    /**
+     * @return {?}
+     */
+    BlockScrollStrategy.prototype._canBeEnabled = function () {
+        // Since the scroll strategies can't be singletons, we have to use a global CSS class
+        // (`cdk-global-scrollblock`) to make sure that we don't try to disable global
+        // scrolling multiple times.
+        if (document.documentElement.classList.contains('cdk-global-scrollblock') || this._isEnabled) {
+            return false;
+        }
+        var /** @type {?} */ body = document.body;
+        var /** @type {?} */ viewport = this._viewportRuler.getViewportRect();
+        return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;
+    };
+    return BlockScrollStrategy;
+}());
+
+/**
+ * Strategy that will update the element position as the user is scrolling.
+ */
+var RepositionScrollStrategy = (function () {
+    /**
+     * @param {?} _scrollDispatcher
+     * @param {?=} _config
+     */
+    function RepositionScrollStrategy(_scrollDispatcher, _config) {
+        this._scrollDispatcher = _scrollDispatcher;
+        this._config = _config;
+        this._scrollSubscription = null;
+    }
+    /**
+     * @param {?} overlayRef
+     * @return {?}
+     */
+    RepositionScrollStrategy.prototype.attach = function (overlayRef) {
+        if (this._overlayRef) {
+            throw getMatScrollStrategyAlreadyAttachedError();
+        }
+        this._overlayRef = overlayRef;
+    };
+    /**
+     * @return {?}
+     */
+    RepositionScrollStrategy.prototype.enable = function () {
+        var _this = this;
+        if (!this._scrollSubscription) {
+            var /** @type {?} */ throttle = this._config ? this._config.scrollThrottle : 0;
+            this._scrollSubscription = this._scrollDispatcher.scrolled(throttle, function () {
+                _this._overlayRef.updatePosition();
+            });
+        }
+    };
+    /**
+     * @return {?}
+     */
+    RepositionScrollStrategy.prototype.disable = function () {
+        if (this._scrollSubscription) {
+            this._scrollSubscription.unsubscribe();
+            this._scrollSubscription = null;
+        }
+    };
+    return RepositionScrollStrategy;
+}());
+
+/**
+ * Options for how an overlay will handle scrolling.
+ *
+ * Users can provide a custom value for `ScrollStrategyOptions` to replace the default
+ * behaviors. This class primarily acts as a factory for ScrollStrategy instances.
+ */
+var ScrollStrategyOptions = (function () {
+    /**
+     * @param {?} _scrollDispatcher
+     * @param {?} _viewportRuler
+     */
+    function ScrollStrategyOptions(_scrollDispatcher, _viewportRuler) {
+        var _this = this;
+        this._scrollDispatcher = _scrollDispatcher;
+        this._viewportRuler = _viewportRuler;
+        /**
+         * Do nothing on scroll.
+         */
+        this.noop = function () { return new NoopScrollStrategy(); };
+        /**
+         * Close the overlay as soon as the user scrolls.
+         */
+        this.close = function () { return new CloseScrollStrategy(_this._scrollDispatcher); };
+        /**
+         * Block scrolling.
+         */
+        this.block = function () { return new BlockScrollStrategy(_this._viewportRuler); };
+        /**
+         * Update the overlay's position on scroll.
+         * @param config Configuration to be used inside the scroll strategy.
+         * Allows debouncing the reposition calls.
+         */
+        this.reposition = function (config) {
+            return new RepositionScrollStrategy(_this._scrollDispatcher, config);
+        };
+    }
+    ScrollStrategyOptions.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    ScrollStrategyOptions.ctorParameters = function () { return [
+        { type: ScrollDispatcher, },
+        { type: ViewportRuler, },
+    ]; };
+    return ScrollStrategyOptions;
+}());
+
+/**
+ * Next overlay unique ID.
+ */
+var nextUniqueId = 0;
+/**
+ * The default config for newly created overlays.
+ */
+var defaultConfig = new OverlayConfig();
+/**
+ * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be
+ * used as a low-level building building block for other components. Dialogs, tooltips, menus,
+ * selects, etc. can all be built using overlays. The service should primarily be used by authors
+ * of re-usable components rather than developers building end-user applications.
+ *
+ * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.
+ */
+var Overlay = (function () {
+    /**
+     * @param {?} scrollStrategies
+     * @param {?} _overlayContainer
+     * @param {?} _componentFactoryResolver
+     * @param {?} _positionBuilder
+     * @param {?} _appRef
+     * @param {?} _injector
+     * @param {?} _ngZone
+     */
+    function Overlay(scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _appRef, _injector, _ngZone) {
+        this.scrollStrategies = scrollStrategies;
+        this._overlayContainer = _overlayContainer;
+        this._componentFactoryResolver = _componentFactoryResolver;
+        this._positionBuilder = _positionBuilder;
+        this._appRef = _appRef;
+        this._injector = _injector;
+        this._ngZone = _ngZone;
+    }
+    /**
+     * Creates an overlay.
+     * @param {?=} config Config to apply to the overlay.
+     * @return {?} Reference to the created overlay.
+     */
+    Overlay.prototype.create = function (config) {
+        if (config === void 0) { config = defaultConfig; }
+        var /** @type {?} */ pane = this._createPaneElement();
+        var /** @type {?} */ portalHost = this._createPortalHost(pane);
+        return new OverlayRef(portalHost, pane, config, this._ngZone);
+    };
+    /**
+     * Returns a position builder that can be used, via fluent API,
+     * to construct and configure a position strategy.
+     * @return {?}
+     */
+    Overlay.prototype.position = function () {
+        return this._positionBuilder;
+    };
+    /**
+     * Creates the DOM element for an overlay and appends it to the overlay container.
+     * @return {?} Newly-created pane element
+     */
+    Overlay.prototype._createPaneElement = function () {
+        var /** @type {?} */ pane = document.createElement('div');
+        pane.id = "cdk-overlay-" + nextUniqueId++;
+        pane.classList.add('cdk-overlay-pane');
+        this._overlayContainer.getContainerElement().appendChild(pane);
+        return pane;
+    };
+    /**
+     * Create a DomPortalHost into which the overlay content can be loaded.
+     * @param {?} pane The DOM element to turn into a portal host.
+     * @return {?} A portal host for the given DOM element.
+     */
+    Overlay.prototype._createPortalHost = function (pane) {
+        return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef, this._injector);
+    };
+    Overlay.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    Overlay.ctorParameters = function () { return [
+        { type: ScrollStrategyOptions, },
+        { type: OverlayContainer, },
+        { type: ComponentFactoryResolver, },
+        { type: OverlayPositionBuilder, },
+        { type: ApplicationRef, },
+        { type: Injector, },
+        { type: NgZone, },
+    ]; };
+    return Overlay;
+}());
+
+/**
+ * The FullscreenOverlayContainer is the alternative to OverlayContainer
+ * that supports correct displaying of overlay elements in Fullscreen mode
+ * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen
+ * It should be provided in the root component that way:
+ * providers: [
+ *   {provide: OverlayContainer, useClass: FullscreenOverlayContainer}
+ * ],
+ */
+var FullscreenOverlayContainer = (function (_super) {
+    __extends(FullscreenOverlayContainer, _super);
+    function FullscreenOverlayContainer() {
+        return _super !== null && _super.apply(this, arguments) || this;
+    }
+    /**
+     * @return {?}
+     */
+    FullscreenOverlayContainer.prototype._createContainer = function () {
+        var _this = this;
+        _super.prototype._createContainer.call(this);
+        this._adjustParentForFullscreenChange();
+        this._addFullscreenChangeListener(function () { return _this._adjustParentForFullscreenChange(); });
+    };
+    /**
+     * @return {?}
+     */
+    FullscreenOverlayContainer.prototype._adjustParentForFullscreenChange = function () {
+        if (!this._containerElement) {
+            return;
+        }
+        var /** @type {?} */ fullscreenElement = this.getFullscreenElement();
+        var /** @type {?} */ parent = fullscreenElement || document.body;
+        parent.appendChild(this._containerElement);
+    };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    FullscreenOverlayContainer.prototype._addFullscreenChangeListener = function (fn) {
+        if (document.fullscreenEnabled) {
+            document.addEventListener('fullscreenchange', fn);
+        }
+        else if (document.webkitFullscreenEnabled) {
+            document.addEventListener('webkitfullscreenchange', fn);
+        }
+        else if (((document)).mozFullScreenEnabled) {
+            document.addEventListener('mozfullscreenchange', fn);
+        }
+        else if (((document)).msFullscreenEnabled) {
+            document.addEventListener('MSFullscreenChange', fn);
+        }
+    };
+    /**
+     * When the page is put into fullscreen mode, a specific element is specified.
+     * Only that element and its children are visible when in fullscreen mode.
+     * @return {?}
+     */
+    FullscreenOverlayContainer.prototype.getFullscreenElement = function () {
+        return document.fullscreenElement ||
+            document.webkitFullscreenElement ||
+            ((document)).mozFullScreenElement ||
+            ((document)).msFullscreenElement ||
+            null;
+    };
+    FullscreenOverlayContainer.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    FullscreenOverlayContainer.ctorParameters = function () { return []; };
+    return FullscreenOverlayContainer;
+}(OverlayContainer));
+
+/**
+ * Default set of positions for the overlay. Follows the behavior of a dropdown.
+ */
+var defaultPositionList = [
+    new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }),
+    new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }),
+];
+/**
+ * Injection token that determines the scroll handling while the connected overlay is open.
+ */
+var MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY = new InjectionToken('mat-connected-overlay-scroll-strategy');
+/**
+ * \@docs-private
+ * @param {?} overlay
+ * @return {?}
+ */
+function MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {
+    return function () { return overlay.scrollStrategies.reposition(); };
+}
+/**
+ * \@docs-private
+ */
+var MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {
+    provide: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,
+    deps: [Overlay],
+    useFactory: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,
+};
+/**
+ * Directive applied to an element to make it usable as an origin for an Overlay using a
+ * ConnectedPositionStrategy.
+ */
+var OverlayOrigin = (function () {
+    /**
+     * @param {?} elementRef
+     */
+    function OverlayOrigin(elementRef) {
+        this.elementRef = elementRef;
+    }
+    OverlayOrigin.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',
+                    exportAs: 'cdkOverlayOrigin',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    OverlayOrigin.ctorParameters = function () { return [
+        { type: ElementRef, },
+    ]; };
+    return OverlayOrigin;
+}());
+/**
+ * Directive to facilitate declarative creation of an Overlay using a ConnectedPositionStrategy.
+ */
+var ConnectedOverlayDirective = (function () {
+    /**
+     * @param {?} _overlay
+     * @param {?} _renderer
+     * @param {?} templateRef
+     * @param {?} viewContainerRef
+     * @param {?} _scrollStrategy
+     * @param {?} _dir
+     */
+    function ConnectedOverlayDirective(_overlay, _renderer, templateRef, viewContainerRef, _scrollStrategy, _dir) {
+        this._overlay = _overlay;
+        this._renderer = _renderer;
+        this._scrollStrategy = _scrollStrategy;
+        this._dir = _dir;
+        this._hasBackdrop = false;
+        this._backdropSubscription = Subscription.EMPTY;
+        this._positionSubscription = Subscription.EMPTY;
+        this._offsetX = 0;
+        this._offsetY = 0;
+        this._escapeListener = function () { };
+        /**
+         * Strategy to be used when handling scroll events while the overlay is open.
+         */
+        this.scrollStrategy = this._scrollStrategy();
+        /**
+         * Whether the overlay is open.
+         */
+        this.open = false;
+        /**
+         * Event emitted when the backdrop is clicked.
+         */
+        this.backdropClick = new EventEmitter();
+        /**
+         * Event emitted when the position has changed.
+         */
+        this.positionChange = new EventEmitter();
+        /**
+         * Event emitted when the overlay has been attached.
+         */
+        this.attach = new EventEmitter();
+        /**
+         * Event emitted when the overlay has been detached.
+         */
+        this.detach = new EventEmitter();
+        this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);
+    }
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "offsetX", {
+        /**
+         * The offset in pixels for the overlay connection point on the x-axis
+         * @return {?}
+         */
+        get: function () { return this._offsetX; },
+        /**
+         * @param {?} offsetX
+         * @return {?}
+         */
+        set: function (offsetX) {
+            this._offsetX = offsetX;
+            if (this._position) {
+                this._position.withOffsetX(offsetX);
+            }
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "offsetY", {
+        /**
+         * The offset in pixels for the overlay connection point on the y-axis
+         * @return {?}
+         */
+        get: function () { return this._offsetY; },
+        /**
+         * @param {?} offsetY
+         * @return {?}
+         */
+        set: function (offsetY) {
+            this._offsetY = offsetY;
+            if (this._position) {
+                this._position.withOffsetY(offsetY);
+            }
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "hasBackdrop", {
+        /**
+         * Whether or not the overlay should attach a backdrop.
+         * @return {?}
+         */
+        get: function () { return this._hasBackdrop; },
+        /**
+         * @param {?} value
+         * @return {?}
+         */
+        set: function (value) { this._hasBackdrop = coerceBooleanProperty(value); },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedOrigin", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.origin; },
+        /**
+         * @param {?} _origin
+         * @return {?}
+         */
+        set: function (_origin) { this.origin = _origin; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedPositions", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.positions; },
+        /**
+         * @param {?} _positions
+         * @return {?}
+         */
+        set: function (_positions) { this.positions = _positions; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedOffsetX", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.offsetX; },
+        /**
+         * @param {?} _offsetX
+         * @return {?}
+         */
+        set: function (_offsetX) { this.offsetX = _offsetX; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedOffsetY", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.offsetY; },
+        /**
+         * @param {?} _offsetY
+         * @return {?}
+         */
+        set: function (_offsetY) { this.offsetY = _offsetY; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedWidth", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.width; },
+        /**
+         * @param {?} _width
+         * @return {?}
+         */
+        set: function (_width) { this.width = _width; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedHeight", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.height; },
+        /**
+         * @param {?} _height
+         * @return {?}
+         */
+        set: function (_height) { this.height = _height; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedMinWidth", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.minWidth; },
+        /**
+         * @param {?} _minWidth
+         * @return {?}
+         */
+        set: function (_minWidth) { this.minWidth = _minWidth; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedMinHeight", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.minHeight; },
+        /**
+         * @param {?} _minHeight
+         * @return {?}
+         */
+        set: function (_minHeight) { this.minHeight = _minHeight; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedBackdropClass", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.backdropClass; },
+        /**
+         * @param {?} _backdropClass
+         * @return {?}
+         */
+        set: function (_backdropClass) { this.backdropClass = _backdropClass; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedScrollStrategy", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.scrollStrategy; },
+        /**
+         * @param {?} _scrollStrategy
+         * @return {?}
+         */
+        set: function (_scrollStrategy) {
+            this.scrollStrategy = _scrollStrategy;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedOpen", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.open; },
+        /**
+         * @param {?} _open
+         * @return {?}
+         */
+        set: function (_open) { this.open = _open; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "_deprecatedHasBackdrop", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.hasBackdrop; },
+        /**
+         * @param {?} _hasBackdrop
+         * @return {?}
+         */
+        set: function (_hasBackdrop) { this.hasBackdrop = _hasBackdrop; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "overlayRef", {
+        /**
+         * The associated overlay reference.
+         * @return {?}
+         */
+        get: function () {
+            return this._overlayRef;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ConnectedOverlayDirective.prototype, "dir", {
+        /**
+         * The element's layout direction.
+         * @return {?}
+         */
+        get: function () {
+            return this._dir ? this._dir.value : 'ltr';
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype.ngOnDestroy = function () {
+        this._destroyOverlay();
+    };
+    /**
+     * @param {?} changes
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype.ngOnChanges = function (changes) {
+        if (changes['open'] || changes['_deprecatedOpen']) {
+            this.open ? this._attachOverlay() : this._detachOverlay();
+        }
+    };
+    /**
+     * Creates an overlay
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._createOverlay = function () {
+        if (!this.positions || !this.positions.length) {
+            this.positions = defaultPositionList;
+        }
+        this._overlayRef = this._overlay.create(this._buildConfig());
+    };
+    /**
+     * Builds the overlay config based on the directive's inputs
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._buildConfig = function () {
+        var /** @type {?} */ positionStrategy = this._position = this._createPositionStrategy();
+        var /** @type {?} */ overlayConfig = new OverlayConfig({
+            positionStrategy: positionStrategy,
+            scrollStrategy: this.scrollStrategy,
+            hasBackdrop: this.hasBackdrop
+        });
+        if (this.width || this.width === 0) {
+            overlayConfig.width = this.width;
+        }
+        if (this.height || this.height === 0) {
+            overlayConfig.height = this.height;
+        }
+        if (this.minWidth || this.minWidth === 0) {
+            overlayConfig.minWidth = this.minWidth;
+        }
+        if (this.minHeight || this.minHeight === 0) {
+            overlayConfig.minHeight = this.minHeight;
+        }
+        if (this.backdropClass) {
+            overlayConfig.backdropClass = this.backdropClass;
+        }
+        return overlayConfig;
+    };
+    /**
+     * Returns the position strategy of the overlay to be set on the overlay config
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._createPositionStrategy = function () {
+        var /** @type {?} */ pos = this.positions[0];
+        var /** @type {?} */ originPoint = { originX: pos.originX, originY: pos.originY };
+        var /** @type {?} */ overlayPoint = { overlayX: pos.overlayX, overlayY: pos.overlayY };
+        var /** @type {?} */ strategy = this._overlay.position()
+            .connectedTo(this.origin.elementRef, originPoint, overlayPoint)
+            .withOffsetX(this.offsetX)
+            .withOffsetY(this.offsetY);
+        this._handlePositionChanges(strategy);
+        return strategy;
+    };
+    /**
+     * @param {?} strategy
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._handlePositionChanges = function (strategy) {
+        var _this = this;
+        for (var /** @type {?} */ i = 1; i < this.positions.length; i++) {
+            strategy.withFallbackPosition({ originX: this.positions[i].originX, originY: this.positions[i].originY }, { overlayX: this.positions[i].overlayX, overlayY: this.positions[i].overlayY });
+        }
+        this._positionSubscription =
+            strategy.onPositionChange.subscribe(function (pos) { return _this.positionChange.emit(pos); });
+    };
+    /**
+     * Attaches the overlay and subscribes to backdrop clicks if backdrop exists
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._attachOverlay = function () {
+        var _this = this;
+        if (!this._overlayRef) {
+            this._createOverlay();
+        }
+        this._position.withDirection(this.dir);
+        this._overlayRef.getConfig().direction = this.dir;
+        this._initEscapeListener();
+        if (!this._overlayRef.hasAttached()) {
+            this._overlayRef.attach(this._templatePortal);
+            this.attach.emit();
+        }
+        if (this.hasBackdrop) {
+            this._backdropSubscription = this._overlayRef.backdropClick().subscribe(function () {
+                _this.backdropClick.emit();
+            });
+        }
+    };
+    /**
+     * Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._detachOverlay = function () {
+        if (this._overlayRef) {
+            this._overlayRef.detach();
+            this.detach.emit();
+        }
+        this._backdropSubscription.unsubscribe();
+        this._escapeListener();
+    };
+    /**
+     * Destroys the overlay created by this directive.
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._destroyOverlay = function () {
+        if (this._overlayRef) {
+            this._overlayRef.dispose();
+        }
+        this._backdropSubscription.unsubscribe();
+        this._positionSubscription.unsubscribe();
+        this._escapeListener();
+    };
+    /**
+     * Sets the event listener that closes the overlay when pressing Escape.
+     * @return {?}
+     */
+    ConnectedOverlayDirective.prototype._initEscapeListener = function () {
+        var _this = this;
+        this._escapeListener = this._renderer.listen('document', 'keydown', function (event) {
+            if (event.keyCode === ESCAPE) {
+                _this._detachOverlay();
+            }
+        });
+    };
+    ConnectedOverlayDirective.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',
+                    exportAs: 'cdkConnectedOverlay'
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    ConnectedOverlayDirective.ctorParameters = function () { return [
+        { type: Overlay, },
+        { type: Renderer2, },
+        { type: TemplateRef, },
+        { type: ViewContainerRef, },
+        { type: undefined, decorators: [{ type: Inject, args: [MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,] },] },
+        { type: Directionality, decorators: [{ type: Optional },] },
+    ]; };
+    ConnectedOverlayDirective.propDecorators = {
+        'origin': [{ type: Input, args: ['cdkConnectedOverlayOrigin',] },],
+        'positions': [{ type: Input, args: ['cdkConnectedOverlayPositions',] },],
+        'offsetX': [{ type: Input, args: ['cdkConnectedOverlayOffsetX',] },],
+        'offsetY': [{ type: Input, args: ['cdkConnectedOverlayOffsetY',] },],
+        'width': [{ type: Input, args: ['cdkConnectedOverlayWidth',] },],
+        'height': [{ type: Input, args: ['cdkConnectedOverlayHeight',] },],
+        'minWidth': [{ type: Input, args: ['cdkConnectedOverlayMinWidth',] },],
+        'minHeight': [{ type: Input, args: ['cdkConnectedOverlayMinHeight',] },],
+        'backdropClass': [{ type: Input, args: ['cdkConnectedOverlayBackdropClass',] },],
+        'scrollStrategy': [{ type: Input, args: ['cdkConnectedOverlayScrollStrategy',] },],
+        'open': [{ type: Input, args: ['cdkConnectedOverlayOpen',] },],
+        'hasBackdrop': [{ type: Input, args: ['cdkConnectedOverlayHasBackdrop',] },],
+        '_deprecatedOrigin': [{ type: Input, args: ['origin',] },],
+        '_deprecatedPositions': [{ type: Input, args: ['positions',] },],
+        '_deprecatedOffsetX': [{ type: Input, args: ['offsetX',] },],
+        '_deprecatedOffsetY': [{ type: Input, args: ['offsetY',] },],
+        '_deprecatedWidth': [{ type: Input, args: ['width',] },],
+        '_deprecatedHeight': [{ type: Input, args: ['height',] },],
+        '_deprecatedMinWidth': [{ type: Input, args: ['minWidth',] },],
+        '_deprecatedMinHeight': [{ type: Input, args: ['minHeight',] },],
+        '_deprecatedBackdropClass': [{ type: Input, args: ['backdropClass',] },],
+        '_deprecatedScrollStrategy': [{ type: Input, args: ['scrollStrategy',] },],
+        '_deprecatedOpen': [{ type: Input, args: ['open',] },],
+        '_deprecatedHasBackdrop': [{ type: Input, args: ['hasBackdrop',] },],
+        'backdropClick': [{ type: Output },],
+        'positionChange': [{ type: Output },],
+        'attach': [{ type: Output },],
+        'detach': [{ type: Output },],
+    };
+    return ConnectedOverlayDirective;
+}());
+
+var OVERLAY_PROVIDERS = [
+    Overlay,
+    OverlayPositionBuilder,
+    VIEWPORT_RULER_PROVIDER,
+    OVERLAY_CONTAINER_PROVIDER,
+    MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,
+];
+var OverlayModule = (function () {
+    function OverlayModule() {
+    }
+    OverlayModule.decorators = [
+        { type: NgModule, args: [{
+                    imports: [PortalModule, ScrollDispatchModule],
+                    exports: [ConnectedOverlayDirective, OverlayOrigin, ScrollDispatchModule],
+                    declarations: [ConnectedOverlayDirective, OverlayOrigin],
+                    providers: [OVERLAY_PROVIDERS, ScrollStrategyOptions],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    OverlayModule.ctorParameters = function () { return []; };
+    return OverlayModule;
+}());
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { Overlay, OverlayContainer, FullscreenOverlayContainer, OverlayRef, ConnectedOverlayDirective, OverlayOrigin, ViewportRuler, GlobalPositionStrategy, ConnectedPositionStrategy, VIEWPORT_RULER_PROVIDER, OverlayConfig, ConnectionPositionPair, ScrollingVisibility, ConnectedOverlayPositionChange, Scrollable, ScrollDispatcher, ScrollStrategyOptions, RepositionScrollStrategy, CloseScrollStrategy, NoopScrollStrategy, BlockScrollStrategy, OVERLAY_PROVIDERS, OverlayModule, OVERLAY_CONTAINER_PROVIDER as ɵb, OVERLAY_CONTAINER_PROVIDER_FACTORY as ɵa, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY as ɵc, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER as ɵe, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY as ɵd, OverlayPositionBuilder as ɵf };
+//# sourceMappingURL=overlay.es5.js.map


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/bidi.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/bidi.es5.js b/node_modules/@angular/cdk/esm5/bidi.es5.js
new file mode 100644
index 0000000..c40f7bc
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/bidi.es5.js
@@ -0,0 +1,175 @@
+/**
+ * @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.
+ */
+var 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.
+ */
+var Directionality = (function () {
+    /**
+     * @param {?=} _document
+     */
+    function Directionality(_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
+            var bodyDir = _document.body ? _document.body.dir : null;
+            var htmlDir = _document.documentElement ? _document.documentElement.dir : null;
+            this.value = (bodyDir || htmlDir || 'ltr');
+        }
+    }
+    Directionality.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    Directionality.ctorParameters = function () { return [
+        { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DIR_DOCUMENT,] },] },
+    ]; };
+    return Directionality;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentDirectionality
+ * @param {?} _document
+ * @return {?}
+ */
+function DIRECTIONALITY_PROVIDER_FACTORY(parentDirectionality, _document) {
+    return parentDirectionality || new Directionality(_document);
+}
+/**
+ * \@docs-private
+ */
+var 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
+ */
+var Dir = (function () {
+    function Dir() {
+        /**
+         * 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();
+    }
+    Object.defineProperty(Dir.prototype, "dir", {
+        /**
+         * \@docs-private
+         * @return {?}
+         */
+        get: function () {
+            return this._dir;
+        },
+        /**
+         * @param {?} v
+         * @return {?}
+         */
+        set: function (v) {
+            var /** @type {?} */ old = this._dir;
+            this._dir = v;
+            if (old !== this._dir && this._isInitialized) {
+                this.change.emit();
+            }
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(Dir.prototype, "value", {
+        /**
+         * Current layout direction of the element.
+         * @return {?}
+         */
+        get: function () { return this.dir; },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Initialize once default value has been set.
+     * @return {?}
+     */
+    Dir.prototype.ngAfterContentInit = function () {
+        this._isInitialized = true;
+    };
+    Dir.decorators = [
+        { type: Directive, args: [{
+                    selector: '[dir]',
+                    providers: [{ provide: Directionality, useExisting: Dir }],
+                    host: { '[dir]': 'dir' },
+                    exportAs: 'dir',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    Dir.ctorParameters = function () { return []; };
+    Dir.propDecorators = {
+        'change': [{ type: Output, args: ['dirChange',] },],
+        'dir': [{ type: Input, args: ['dir',] },],
+    };
+    return Dir;
+}());
+
+var BidiModule = (function () {
+    function BidiModule() {
+    }
+    BidiModule.decorators = [
+        { type: NgModule, args: [{
+                    exports: [Dir],
+                    declarations: [Dir],
+                    providers: [
+                        { provide: DIR_DOCUMENT, useExisting: DOCUMENT },
+                        Directionality,
+                    ]
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    BidiModule.ctorParameters = function () { return []; };
+    return BidiModule;
+}());
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { Directionality, DIRECTIONALITY_PROVIDER_FACTORY, DIRECTIONALITY_PROVIDER, DIR_DOCUMENT, Dir, BidiModule };
+//# sourceMappingURL=bidi.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/bidi.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/bidi.es5.js.map b/node_modules/@angular/cdk/esm5/bidi.es5.js.map
new file mode 100644
index 0000000..5b13877
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/bidi.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"bidi.es5.js","sources":["../../packages/cdk/esm5/bidi/directionality.js","../../packages/cdk/esm5/bidi/dir.js","../../packages/cdk/esm5/bidi/bidi-module.js","../../packages/cdk/esm5/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 code.\n */\nexport var 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 */\nvar Directionality = (function () {\n    /**\n     * @param {?=} _document\n     */\n    function Directionality(_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            var bodyDir = _document.body ? _document.body.dir : null;\n            var htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n            this.value = (bodyDir || html
 Dir || 'ltr');\n        }\n    }\n    Directionality.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    Directionality.ctorParameters = function () { return [\n        { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DIR_DOCUMENT,] },] },\n    ]; };\n    return Directionality;\n}());\nexport { Directionality };\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 var DIRECTIONALITY_PROVIDER = {\n    // If there is already a Directionality available, use that. Otherwise, provide a new one.\n    provide: 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 */\nvar Dir = (function () {\n    function Dir() {\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    Object.defineProperty(Dir.prototype, \"dir\", {\n        /**\n         * \\@docs-private\n         * @return {?}\n         */\n        get: function () {\n            return this._dir;\n        },\n        /**\n         * @param {?} v\n         * @return {?}\n         */\n        set: function (v) {\n            var /** @type {?} */ old = this._dir;\n            this._dir = v;\n            if (old !== this._dir && this._isInitialized) {\n                this.change.emit();\n            }\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(Dir.prototype, \"value\", {\n        /**\n         * Current layout direction of the element.\n         * @return {?}\n      
    */\n        get: function () { return this.dir; },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Initialize once default value has been set.\n     * @return {?}\n     */\n    Dir.prototype.ngAfterContentInit = function () {\n        this._isInitialized = true;\n    };\n    Dir.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     */\n    Dir.ctorParameters = function () { return []; };\n    Dir.propDecorators = {\n        'change': [{ type: Output, args: ['dirChange',] },],\n        'dir': [{ type: Input, args: ['dir',] },],\n    };\n    return Dir;\n}());\nexport { Dir };\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 in 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';\nvar BidiModule = (function () {\n    function BidiModule() {\n    }\n    BidiModule.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     */\n    BidiModule.ctorParameters = function () { return []; };\n    return BidiModule;\n}());\nexport { BidiModule };\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_FACTORY, DIRECTIONALITY_PROVIDER, DIR_DOCUMENT, Dir, BidiModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;;;;;;AASA;;;;;;;;;;AAUA,AAAO,I
 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"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/cdk.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/cdk.es5.js b/node_modules/@angular/cdk/esm5/cdk.es5.js
new file mode 100644
index 0000000..0b41e50
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/cdk.es5.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.
+ */
+var VERSION = new Version('0.0.0-PLACEHOLDER');
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { VERSION };
+//# sourceMappingURL=cdk.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/cdk.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/cdk.es5.js.map b/node_modules/@angular/cdk/esm5/cdk.es5.js.map
new file mode 100644
index 0000000..f70f8a0
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/cdk.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk.es5.js","sources":["../packages/cdk/esm5/version.js","../packages/cdk/esm5/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 var 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,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC,AACtD;;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/esm5/coercion.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/coercion.es5.js b/node_modules/@angular/cdk/esm5/coercion.es5.js
new file mode 100644
index 0000000..56f650c
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/coercion.es5.js
@@ -0,0 +1,46 @@
+/**
+ * @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) {
+    if (fallbackValue === void 0) { 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.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/coercion.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/coercion.es5.js.map b/node_modules/@angular/cdk/esm5/coercion.es5.js.map
new file mode 100644
index 0000000..122702e
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/coercion.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"coercion.es5.js","sources":["../../packages/cdk/esm5/coercion/boolean-property.js","../../packages/cdk/esm5/coercion/number-property.js","../../packages/cdk/esm5/coercion/array.js","../../packages/cdk/esm5/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) {\n    if (fallbackValue === void 0) { 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) is 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,EAAE,GAAG,KAAK,KAAK,OAAO,CAAC;CAClD,AACD;;ACRA;;;;;;AAMA,AAAO,SAAS,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE;IACvD,IAAI,aAAa,KAAK,KAAK,CAAC,EAAE,EAAE,aAAa,GAAG,CAAC,CAAC,EAAE;;;;IAIpD,OAAO,KAAK,CAAC,U
 AAU,mBAAmB,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;CAC9G,AACD;;ACbA;;;;;;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/esm5/collections.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/collections.es5.js b/node_modules/@angular/cdk/esm5/collections.es5.js
new file mode 100644
index 0000000..e4610b6
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/collections.es5.js
@@ -0,0 +1,336 @@
+/**
+ * @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
+ */
+var DataSource = (function () {
+    function 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.
+     */
+    DataSource.prototype.connect = function (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 {?}
+     */
+    DataSource.prototype.disconnect = function (collectionViewer) { };
+    return DataSource;
+}());
+
+/**
+ * Class to be used to power selecting one or more options from a list.
+ */
+var SelectionModel = (function () {
+    /**
+     * @param {?=} _isMulti
+     * @param {?=} initiallySelectedValues
+     * @param {?=} _emitChanges
+     */
+    function SelectionModel(_isMulti, initiallySelectedValues, _emitChanges) {
+        if (_isMulti === void 0) { _isMulti = false; }
+        if (_emitChanges === void 0) { _emitChanges = true; }
+        var _this = this;
+        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(function (value) { return _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;
+        }
+    }
+    Object.defineProperty(SelectionModel.prototype, "selected", {
+        /**
+         * Selected value(s).
+         * @return {?}
+         */
+        get: function () {
+            if (!this._selected) {
+                this._selected = Array.from(this._selection.values());
+            }
+            return this._selected;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Selects a value or an array of values.
+     * @param {...?} values
+     * @return {?}
+     */
+    SelectionModel.prototype.select = function () {
+        var _this = this;
+        var values = [];
+        for (var _i = 0; _i < arguments.length; _i++) {
+            values[_i] = arguments[_i];
+        }
+        this._verifyValueAssignment(values);
+        values.forEach(function (value) { return _this._markSelected(value); });
+        this._emitChangeEvent();
+    };
+    /**
+     * Deselects a value or an array of values.
+     * @param {...?} values
+     * @return {?}
+     */
+    SelectionModel.prototype.deselect = function () {
+        var _this = this;
+        var values = [];
+        for (var _i = 0; _i < arguments.length; _i++) {
+            values[_i] = arguments[_i];
+        }
+        this._verifyValueAssignment(values);
+        values.forEach(function (value) { return _this._unmarkSelected(value); });
+        this._emitChangeEvent();
+    };
+    /**
+     * Toggles a value between selected and deselected.
+     * @param {?} value
+     * @return {?}
+     */
+    SelectionModel.prototype.toggle = function (value) {
+        this.isSelected(value) ? this.deselect(value) : this.select(value);
+    };
+    /**
+     * Clears all of the selected values.
+     * @return {?}
+     */
+    SelectionModel.prototype.clear = function () {
+        this._unmarkAll();
+        this._emitChangeEvent();
+    };
+    /**
+     * Determines whether a value is selected.
+     * @param {?} value
+     * @return {?}
+     */
+    SelectionModel.prototype.isSelected = function (value) {
+        return this._selection.has(value);
+    };
+    /**
+     * Determines whether the model does not have a value.
+     * @return {?}
+     */
+    SelectionModel.prototype.isEmpty = function () {
+        return this._selection.size === 0;
+    };
+    /**
+     * Determines whether the model has a value.
+     * @return {?}
+     */
+    SelectionModel.prototype.hasValue = function () {
+        return !this.isEmpty();
+    };
+    /**
+     * Sorts the selected values based on a predicate function.
+     * @param {?=} predicate
+     * @return {?}
+     */
+    SelectionModel.prototype.sort = function (predicate) {
+        if (this._isMulti && this._selected) {
+            this._selected.sort(predicate);
+        }
+    };
+    /**
+     * Emits a change event and clears the records of selected and deselected values.
+     * @return {?}
+     */
+    SelectionModel.prototype._emitChangeEvent = function () {
+        if (this._selectedToEmit.length || this._deselectedToEmit.length) {
+            var /** @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 {?}
+     */
+    SelectionModel.prototype._markSelected = function (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 {?}
+     */
+    SelectionModel.prototype._unmarkSelected = function (value) {
+        if (this.isSelected(value)) {
+            this._selection.delete(value);
+            if (this._emitChanges) {
+                this._deselectedToEmit.push(value);
+            }
+        }
+    };
+    /**
+     * Clears out the selected values.
+     * @return {?}
+     */
+    SelectionModel.prototype._unmarkAll = function () {
+        var _this = this;
+        if (!this.isEmpty()) {
+            this._selection.forEach(function (value) { return _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 {?}
+     */
+    SelectionModel.prototype._verifyValueAssignment = function (values) {
+        if (values.length > 1 && !this._isMulti) {
+            throw getMultipleValuesInSingleSelectionError();
+        }
+    };
+    return SelectionModel;
+}());
+/**
+ * Describes an event emitted when the value of a MatSelectionModel has changed.
+ * \@docs-private
+ */
+var SelectionChange = (function () {
+    /**
+     * @param {?=} added
+     * @param {?=} removed
+     */
+    function SelectionChange(added, removed) {
+        this.added = added;
+        this.removed = removed;
+    }
+    return SelectionChange;
+}());
+/**
+ * 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.
+ */
+var UniqueSelectionDispatcher = (function () {
+    function UniqueSelectionDispatcher() {
+        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 {?}
+     */
+    UniqueSelectionDispatcher.prototype.notify = function (id, name) {
+        for (var _i = 0, _a = this._listeners; _i < _a.length; _i++) {
+            var listener = _a[_i];
+            listener(id, name);
+        }
+    };
+    /**
+     * Listen for future changes to item selection.
+     * @param {?} listener
+     * @return {?} Function used to deregister listener
+     */
+    UniqueSelectionDispatcher.prototype.listen = function (listener) {
+        var _this = this;
+        this._listeners.push(listener);
+        return function () {
+            _this._listeners = _this._listeners.filter(function (registered) {
+                return listener !== registered;
+            });
+        };
+    };
+    UniqueSelectionDispatcher.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    UniqueSelectionDispatcher.ctorParameters = function () { return []; };
+    return UniqueSelectionDispatcher;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @return {?}
+ */
+function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {
+    return parentDispatcher || new UniqueSelectionDispatcher();
+}
+/**
+ * \@docs-private
+ */
+var 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.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/collections.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/collections.es5.js.map b/node_modules/@angular/cdk/esm5/collections.es5.js.map
new file mode 100644
index 0000000..16a4b09
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/collections.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"collections.es5.js","sources":["../../packages/cdk/esm5/collections/data-source.js","../../packages/cdk/esm5/collections/selection.js","../../packages/cdk/esm5/collections/unique-selection-dispatcher.js","../../packages/cdk/esm5/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 */\nvar DataSource = (function () {\n    function DataSource() {\n    }\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     * @r
 eturn {?} Observable that emits a new value when the data changes.\n     */\n    DataSource.prototype.connect = function (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    DataSource.prototype.disconnect = function (collectionViewer) { };\n    return DataSource;\n}());\nexport { DataSource };\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 */\nvar SelectionModel = (function () {\n    /**\n     * @param {?=} _isMulti\n     * @param {?=} initiallySelectedValues\n     * @param {?=} _emitChanges\n     */\n    function SelectionModel(_isMulti, initiallySelectedValues, _emitChanges) {\n        if (_isMulti === void 0) { _isMulti = false; }\n        if (_emitChanges === void 0) { _emitChanges = true; }\n        var _this = this;\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(function (value) { return _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    Object.defineProperty(SelectionModel.prototype, \"selected\", {\n        /**\n         * Selected value(s).\n         * @return {?}\n         */\n        get: function () {\n            if (!this._selected) {\n                this._selected = Array.from(this._selection.values());\n            }\n            return this._selected;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Selects a value or an array of values.\n     * @para
 m {...?} values\n     * @return {?}\n     */\n    SelectionModel.prototype.select = function () {\n        var _this = this;\n        var values = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            values[_i] = arguments[_i];\n        }\n        this._verifyValueAssignment(values);\n        values.forEach(function (value) { return _this._markSelected(value); });\n        this._emitChangeEvent();\n    };\n    /**\n     * Deselects a value or an array of values.\n     * @param {...?} values\n     * @return {?}\n     */\n    SelectionModel.prototype.deselect = function () {\n        var _this = this;\n        var values = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            values[_i] = arguments[_i];\n        }\n        this._verifyValueAssignment(values);\n        values.forEach(function (value) { return _this._unmarkSelected(value); });\n        this._emitChangeEvent();\n    };\n    /**\n     * Toggles a value between selected and deselect
 ed.\n     * @param {?} value\n     * @return {?}\n     */\n    SelectionModel.prototype.toggle = function (value) {\n        this.isSelected(value) ? this.deselect(value) : this.select(value);\n    };\n    /**\n     * Clears all of the selected values.\n     * @return {?}\n     */\n    SelectionModel.prototype.clear = function () {\n        this._unmarkAll();\n        this._emitChangeEvent();\n    };\n    /**\n     * Determines whether a value is selected.\n     * @param {?} value\n     * @return {?}\n     */\n    SelectionModel.prototype.isSelected = function (value) {\n        return this._selection.has(value);\n    };\n    /**\n     * Determines whether the model does not have a value.\n     * @return {?}\n     */\n    SelectionModel.prototype.isEmpty = function () {\n        return this._selection.size === 0;\n    };\n    /**\n     * Determines whether the model has a value.\n     * @return {?}\n     */\n    SelectionModel.prototype.hasValue = function () {\n        return !this
 .isEmpty();\n    };\n    /**\n     * Sorts the selected values based on a predicate function.\n     * @param {?=} predicate\n     * @return {?}\n     */\n    SelectionModel.prototype.sort = function (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    SelectionModel.prototype._emitChangeEvent = function () {\n        if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n            var /** @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    SelectionModel.prototype._markSelected = function (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    SelectionModel.prototype._unmarkSelected = function (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    SelectionModel.prototype._unmarkAll = function () {\n        var _this = this;\n        if (!this.isEmpty()) {\n            this._selection.forEach(function (value) { ret
 urn _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    SelectionModel.prototype._verifyValueAssignment = function (values) {\n        if (values.length > 1 && !this._isMulti) {\n            throw getMultipleValuesInSingleSelectionError();\n        }\n    };\n    return SelectionModel;\n}());\nexport { SelectionModel };\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 e
 mitted 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._emitChanges;\n}\n/**\n * Describes an event emitted when the value of a MatSelectionModel has changed.\n * \\@docs-private\n */\nvar SelectionChange = (function () {\n    /**\n     * @param {?=} added\n     * @param {?=} removed\n     */\n    function SelectionChange(added, removed) {\n        this.added = added;\n        this.removed = removed;\n    }\n    return SelectionChange;\n}());\nexport { SelectionChange };\nfunction SelectionChange_tsickle_Closure_declarations() {\n    /** @type {?} */\n    SelectionChang
 e.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 ser
 vice 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 */\nvar UniqueSelectionDispatcher = (function () {\n    function UniqueSelectionDispatcher() {\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    UniqueSelectionDispatcher.prototype.notify = function (id, name) {\n        for (var _i = 0, _a = this._listeners; _i < _a.length; _i++) {\n            var listener = _a[_i];\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    UniqueSelectionDispatcher.prototype.listen = function (listener) {\n        var _this = this;\n        this._lis
 teners.push(listener);\n        return function () {\n            _this._listeners = _this._listeners.filter(function (registered) {\n                return listener !== registered;\n            });\n        };\n    };\n    UniqueSelectionDispatcher.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    UniqueSelectionDispatcher.ctorParameters = function () { return []; };\n    return UniqueSelectionDispatcher;\n}());\nexport { UniqueSelectionDispatcher };\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 parentD
 ispatcher || new UniqueSelectionDispatcher();\n}\n/**\n * \\@docs-private\n */\nexport var 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/esm5/keycodes.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/keycodes.es5.js b/node_modules/@angular/cdk/esm5/keycodes.es5.js
new file mode 100644
index 0000000..bb039ca
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/keycodes.es5.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
+ */
+var UP_ARROW = 38;
+var DOWN_ARROW = 40;
+var RIGHT_ARROW = 39;
+var LEFT_ARROW = 37;
+var PAGE_UP = 33;
+var PAGE_DOWN = 34;
+var HOME = 36;
+var END = 35;
+var ENTER = 13;
+var SPACE = 32;
+var TAB = 9;
+var ESCAPE = 27;
+var BACKSPACE = 8;
+var DELETE = 46;
+var A = 65;
+var Z = 90;
+var ZERO = 48;
+var 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.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/keycodes.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/keycodes.es5.js.map b/node_modules/@angular/cdk/esm5/keycodes.es5.js.map
new file mode 100644
index 0000000..8e8ee76
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/keycodes.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"keycodes.es5.js","sources":["../../packages/cdk/esm5/keycodes/keycodes.js","../../packages/cdk/esm5/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 var UP_ARROW = 38;\nexport var /** @type {?} */ DOWN_ARROW = 40;\nexport var /** @type {?} */ RIGHT_ARROW = 39;\nexport var /** @type {?} */ LEFT_ARROW = 37;\nexport var /** @type {?} */ PAGE_UP = 33;\nexport var /** @type {?} */ PAGE_DOWN = 34;\nexport var /** @type {?} */ HOME = 36;\nexport var /** @type {?} */ END = 35;\nexport var /** @type {?} */ ENTER = 13;\nexport var /** @type {?} */ SPACE = 32;\nexport var /** @type {?} */ TAB = 9;\nexport var /** @type {?} */ ESCAPE = 27;\nexport var /** @type {?} */ BACKSPACE = 8;\nexport var /** @type {?} */ DELETE = 46;\nexport var /** @type {?} */ A = 65;\nexport va
 r /** @type {?} */ Z = 90;\nexport var /** @type {?} */ ZERO = 48;\nexport var /** @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,IAAI,QAAQ,GAAG,EAAE,CAAC;AACzB,AAAO,IAAqB,UAAU,GAAG,EAAE,CAAC;AAC5C,AAAO,IAAqB,WAAW,GAAG,EAAE,CAAC;AAC7C,AAAO,IAAqB,UAAU,GAAG,EAAE,CAAC;AAC5C,AAAO,IAAqB,OAAO,GAAG,EAAE,CAAC;AACzC,AAAO,IAAqB,SAAS,GAAG,EAAE,CAAC;AAC3C,AAAO,IAAqB,IAAI,GAAG,EAAE,CAAC;AACtC,AAAO,IAAqB,GAAG,GAAG,EAAE,CAAC;AACrC,AAAO,IAAqB,KAAK,GAAG,EAAE,CAAC;AACvC,AAAO,IAAqB,KAAK,GAAG,EAAE,CAAC;AACvC,AAAO,IAAqB,GAAG,GAAG,CAAC,CAAC;AACpC,AAAO,IAAqB,MAAM,GAAG,EAAE,CAAC;AACxC,AAAO,IAAqB,SAAS,GAAG,CAAC,CAAC;AAC1C,AAAO,IAAqB,MAAM,GAAG,EAAE,CAAC;AACxC,AAAO,IAAqB,CAAC,GAAG,EAAE,CAAC;AACnC,AAAO,
 IAAqB,CAAC,GAAG,EAAE,CAAC;AACnC,AAAO,IAAqB,IAAI,GAAG,EAAE,CAAC;AACtC,AAAO,IAAqB,IAAI,GAAG,EAAE,CAAC,AACtC;;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/esm5/layout.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/layout.es5.js b/node_modules/@angular/cdk/esm5/layout.es5.js
new file mode 100644
index 0000000..f77aa96
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/layout.es5.js
@@ -0,0 +1,234 @@
+/**
+ * @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.
+ */
+var styleElementForWebkitCompatibility = new Map();
+/**
+ * A utility for calling matchMedia queries.
+ */
+var MediaMatcher = (function () {
+    /**
+     * @param {?} platform
+     */
+    function MediaMatcher(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 {?}
+     */
+    MediaMatcher.prototype.matchMedia = function (query) {
+        if (this.platform.WEBKIT) {
+            createEmptyStyleRule(query);
+        }
+        return this._matchMedia(query);
+    };
+    MediaMatcher.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    MediaMatcher.ctorParameters = function () { return [
+        { type: Platform, },
+    ]; };
+    return MediaMatcher;
+}());
+/**
+ * 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 {
+            var /** @type {?} */ style = document.createElement('style');
+            style.setAttribute('type', 'text/css');
+            if (!style.sheet) {
+                var /** @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: function () { },
+        removeListener: function () { }
+    };
+}
+
+/**
+ * Utility for checking the matching state of \@media queries.
+ */
+var BreakpointObserver = (function () {
+    /**
+     * @param {?} mediaMatcher
+     * @param {?} zone
+     */
+    function BreakpointObserver(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 {?}
+     */
+    BreakpointObserver.prototype.ngOnDestroy = function () {
+        this._destroySubject.next();
+        this._destroySubject.complete();
+    };
+    /**
+     * Whether the query currently is matched.
+     * @param {?} value
+     * @return {?}
+     */
+    BreakpointObserver.prototype.isMatched = function (value) {
+        var _this = this;
+        var /** @type {?} */ queries = coerceArray(value);
+        return queries.some(function (mediaQuery) { return _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 {?}
+     */
+    BreakpointObserver.prototype.observe = function (value) {
+        var _this = this;
+        var /** @type {?} */ queries = coerceArray(value);
+        var /** @type {?} */ observables = queries.map(function (query) { return _this._registerQuery(query).observable; });
+        return combineLatest(observables, function (a, b) {
+            return {
+                matches: !!((a && a.matches) || (b && b.matches)),
+            };
+        });
+    };
+    /**
+     * Registers a specific query to be listened for.
+     * @param {?} query
+     * @return {?}
+     */
+    BreakpointObserver.prototype._registerQuery = function (query) {
+        var _this = this;
+        // Only set up a new MediaQueryList if it is not already being listened for.
+        if (this._queries.has(query)) {
+            return ((this._queries.get(query)));
+        }
+        var /** @type {?} */ mql = this.mediaMatcher.matchMedia(query);
+        // Create callback for match changes and add it is as a listener.
+        var /** @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.
+        function (listener) {
+            mql.addListener(function (e) { return _this.zone.run(function () { return listener(e); }); });
+        }, function (listener) {
+            mql.removeListener(function (e) { return _this.zone.run(function () { return listener(e); }); });
+        }))
+            .call(takeUntil, this._destroySubject)
+            .call(startWith, mql)
+            .call(map, function (nextMql) { return ({ matches: nextMql.matches }); })
+            .result();
+        // Add the MediaQueryList to the set of queries.
+        var /** @type {?} */ output = { observable: queryObservable, mql: mql };
+        this._queries.set(query, output);
+        return output;
+    };
+    BreakpointObserver.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    BreakpointObserver.ctorParameters = function () { return [
+        { type: MediaMatcher, },
+        { type: NgZone, },
+    ]; };
+    return BreakpointObserver;
+}());
+
+// PascalCase is being used as Breakpoints is used like an enum.
+// tslint:disable-next-line:variable-name
+var 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)',
+};
+
+var LayoutModule = (function () {
+    function LayoutModule() {
+    }
+    LayoutModule.decorators = [
+        { type: NgModule, args: [{
+                    providers: [BreakpointObserver, MediaMatcher],
+                    imports: [PlatformModule],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    LayoutModule.ctorParameters = function () { return []; };
+    return LayoutModule;
+}());
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { LayoutModule, BreakpointObserver, Breakpoints, MediaMatcher };
+//# sourceMappingURL=layout.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/layout.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/layout.es5.js.map b/node_modules/@angular/cdk/esm5/layout.es5.js.map
new file mode 100644
index 0000000..daa006b
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/layout.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"layout.es5.js","sources":["../../packages/cdk/esm5/layout/media-matcher.js","../../packages/cdk/esm5/layout/breakpoints-observer.js","../../packages/cdk/esm5/layout/breakpoints.js","../../packages/cdk/esm5/layout/public-api.js","../../packages/cdk/esm5/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 */\nvar styleElementForWebkitCompatibility = new Map();\n/**\n * A utility for calling matchMedia queries.\n */\nvar MediaMatcher = (function () {\n    /**\n     * @param {?} platform\n     */\n    function MediaMatcher(platform) {\n        this.platform = platform;\n        this._matchMedia = this.plat
 form.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    MediaMatcher.prototype.matchMedia = function (query) {\n        if (this.platform.WEBKIT) {\n            createEmptyStyleRule(query);\n        }\n        return this._matchMedia(query);\n    };\n    MediaMatcher.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    MediaMatcher.ctorParameters = function () { return [\n        { type: Platform, },\n    ]; };\n    return MediaMatcher;\n}());\nexport { MediaMatcher };\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            var /** @type {?} */ style = document.createElement('style');\n            style.setAttribute('type', 'text/css');\n            if (!style.sheet) {\n                var /** @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: function () { },\n        removeListener: function () { }\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 { fromEventPattern } from 'rxjs/observable/fromEventPattern';\n/**\n * Utility for checking the matching state of \\@media queries.\n */\nvar BreakpointObserver = (function () {\n    /**\n     * @param {?} mediaMatcher\n     * @param {?} zone\n     */\n    function BreakpointObserver(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    BreakpointObserv
 er.prototype.ngOnDestroy = function () {\n        this._destroySubject.next();\n        this._destroySubject.complete();\n    };\n    /**\n     * Whether the query currently is matched.\n     * @param {?} value\n     * @return {?}\n     */\n    BreakpointObserver.prototype.isMatched = function (value) {\n        var _this = this;\n        var /** @type {?} */ queries = coerceArray(value);\n        return queries.some(function (mediaQuery) { return _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    BreakpointObserver.prototype.observe = function (value) {\n        var _this = this;\n        var /** @type {?} */ queries = coerceArray(value);\n        var /** @type {?} */ observables = queries.map(function (query) { return _this._registerQuery(query).observable; });\n  
       return combineLatest(observables, function (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    BreakpointObserver.prototype._registerQuery = function (query) {\n        var _this = this;\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        var /** @type {?} */ mql = this.mediaMatcher.matchMedia(query);\n        // Create callback for match changes and add it is as a listener.\n        var /** @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        function (listener) {\n            mql.addListener(function (e) { return _this.zone.run(function () { return listener(e); }); });\n        }, function (listener) {\n            mql.removeListener(function (e) { return _this.zone.run(function () { return listener(e); }); });\n        }))\n            .call(takeUntil, this._destroySubject)\n            .call(startWith, mql)\n            .call(map, function (nextMql) { return ({ matches: nextMql.matches }); })\n            .result();\n        // Add the MediaQueryList to the set of queries.\n        var /** @type {?} */ output = { observable: queryObservable, mql: mql };\n        this._queries.set(query, output);\n        return output;\n    };\n    BreakpointObserver.decorators = [\n  
       { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    BreakpointObserver.ctorParameters = function () { return [\n        { type: MediaMatcher, },\n        { type: NgZone, },\n    ]; };\n    return BreakpointObserver;\n}());\nexport { BreakpointObserver };\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    BreakpointObserver.prototype._destroySubject;\n    /** @type {?} */\n    BreakpointObserver.prototype.mediaMatcher;\n    /** @type {?} */\n    BreakpointObserver.prototype.zone;\n}\n//# sourceMappingURL=breakpoints-observer.js.map","/**\n * @lice
 nse\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 var /** @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 (orientation: 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: p
 ortrait)',\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';\nvar LayoutModule = (function () {\n    function LayoutModule() {\n    }\n    LayoutModule.decorators = [\n        { type: NgModule, args: [{\n                    providers: [BreakpointObserver, MediaMatcher],\n                    imports: [PlatformModule],\n                },
 ] },\n    ];\n    /**\n     * @nocollapse\n     */\n    LayoutModule.ctorParameters = function () { return []; };\n    return LayoutModule;\n}());\nexport { LayoutModule };\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


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/@angular/animations/browser.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser.js b/node_modules/@angular/animations/@angular/animations/browser.js
new file mode 100644
index 0000000..36c981b
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser.js
@@ -0,0 +1,4774 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+import { AUTO_STYLE, NoopAnimationPlayer, sequence, style, ɵAnimationGroupPlayer, ɵPRE_STYLE } from '@angular/animations';
+
+/**
+ * @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
+ */
+function optimizeGroupPlayer(players) {
+    switch (players.length) {
+        case 0:
+            return new NoopAnimationPlayer();
+        case 1:
+            return players[0];
+        default:
+            return new ɵAnimationGroupPlayer(players);
+    }
+}
+function normalizeKeyframes(driver, normalizer, element, keyframes, preStyles = {}, postStyles = {}) {
+    const errors = [];
+    const normalizedKeyframes = [];
+    let previousOffset = -1;
+    let previousKeyframe = null;
+    keyframes.forEach(kf => {
+        const offset = kf['offset'];
+        const isSameOffset = offset == previousOffset;
+        const normalizedKeyframe = (isSameOffset && previousKeyframe) || {};
+        Object.keys(kf).forEach(prop => {
+            let normalizedProp = prop;
+            let normalizedValue = kf[prop];
+            if (prop !== 'offset') {
+                normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);
+                switch (normalizedValue) {
+                    case ɵPRE_STYLE:
+                        normalizedValue = preStyles[prop];
+                        break;
+                    case AUTO_STYLE:
+                        normalizedValue = postStyles[prop];
+                        break;
+                    default:
+                        normalizedValue =
+                            normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);
+                        break;
+                }
+            }
+            normalizedKeyframe[normalizedProp] = normalizedValue;
+        });
+        if (!isSameOffset) {
+            normalizedKeyframes.push(normalizedKeyframe);
+        }
+        previousKeyframe = normalizedKeyframe;
+        previousOffset = offset;
+    });
+    if (errors.length) {
+        const LINE_START = '\n - ';
+        throw new Error(`Unable to animate due to the following errors:${LINE_START}${errors.join(LINE_START)}`);
+    }
+    return normalizedKeyframes;
+}
+function listenOnPlayer(player, eventName, event, callback) {
+    switch (eventName) {
+        case 'start':
+            player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player.totalTime)));
+            break;
+        case 'done':
+            player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player.totalTime)));
+            break;
+        case 'destroy':
+            player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)));
+            break;
+    }
+}
+function copyAnimationEvent(e, phaseName, totalTime) {
+    const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime);
+    const data = e['_data'];
+    if (data != null) {
+        event['_data'] = data;
+    }
+    return event;
+}
+function makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0) {
+    return { element, triggerName, fromState, toState, phaseName, totalTime };
+}
+function getOrSetAsInMap(map, key, defaultValue) {
+    let value;
+    if (map instanceof Map) {
+        value = map.get(key);
+        if (!value) {
+            map.set(key, value = defaultValue);
+        }
+    }
+    else {
+        value = map[key];
+        if (!value) {
+            value = map[key] = defaultValue;
+        }
+    }
+    return value;
+}
+function parseTimelineCommand(command) {
+    const separatorPos = command.indexOf(':');
+    const id = command.substring(1, separatorPos);
+    const action = command.substr(separatorPos + 1);
+    return [id, action];
+}
+let _contains = (elm1, elm2) => false;
+let _matches = (element, selector) => false;
+let _query = (element, selector, multi) => {
+    return [];
+};
+if (typeof Element != 'undefined') {
+    // this is well supported in all browsers
+    _contains = (elm1, elm2) => { return elm1.contains(elm2); };
+    if (Element.prototype.matches) {
+        _matches = (element, selector) => element.matches(selector);
+    }
+    else {
+        const proto = Element.prototype;
+        const fn = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||
+            proto.oMatchesSelector || proto.webkitMatchesSelector;
+        if (fn) {
+            _matches = (element, selector) => fn.apply(element, [selector]);
+        }
+    }
+    _query = (element, selector, multi) => {
+        let results = [];
+        if (multi) {
+            results.push(...element.querySelectorAll(selector));
+        }
+        else {
+            const elm = element.querySelector(selector);
+            if (elm) {
+                results.push(elm);
+            }
+        }
+        return results;
+    };
+}
+const matchesElement = _matches;
+const containsElement = _contains;
+const invokeQuery = _query;
+
+/**
+ * @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
+ */
+/**
+ * @experimental
+ */
+class NoopAnimationDriver {
+    matchesElement(element, selector) {
+        return matchesElement(element, selector);
+    }
+    containsElement(elm1, elm2) { return containsElement(elm1, elm2); }
+    query(element, selector, multi) {
+        return invokeQuery(element, selector, multi);
+    }
+    computeStyle(element, prop, defaultValue) {
+        return defaultValue || '';
+    }
+    animate(element, keyframes, duration, delay, easing, previousPlayers = []) {
+        return new NoopAnimationPlayer();
+    }
+}
+/**
+ * @experimental
+ */
+class AnimationDriver {
+}
+AnimationDriver.NOOP = new NoopAnimationDriver();
+
+/**
+ * @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 ONE_SECOND = 1000;
+const SUBSTITUTION_EXPR_START = '{{';
+const SUBSTITUTION_EXPR_END = '}}';
+const ENTER_CLASSNAME = 'ng-enter';
+const LEAVE_CLASSNAME = 'ng-leave';
+const ENTER_SELECTOR = '.ng-enter';
+const LEAVE_SELECTOR = '.ng-leave';
+const NG_TRIGGER_CLASSNAME = 'ng-trigger';
+const NG_TRIGGER_SELECTOR = '.ng-trigger';
+const NG_ANIMATING_CLASSNAME = 'ng-animating';
+const NG_ANIMATING_SELECTOR = '.ng-animating';
+function resolveTimingValue(value) {
+    if (typeof value == 'number')
+        return value;
+    const matches = value.match(/^(-?[\.\d]+)(m?s)/);
+    if (!matches || matches.length < 2)
+        return 0;
+    return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);
+}
+function _convertTimeValueToMS(value, unit) {
+    switch (unit) {
+        case 's':
+            return value * ONE_SECOND;
+        default:
+            return value;
+    }
+}
+function resolveTiming(timings, errors, allowNegativeValues) {
+    return timings.hasOwnProperty('duration') ?
+        timings :
+        parseTimeExpression(timings, errors, allowNegativeValues);
+}
+function parseTimeExpression(exp, errors, allowNegativeValues) {
+    const regex = /^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;
+    let duration;
+    let delay = 0;
+    let easing = '';
+    if (typeof exp === 'string') {
+        const matches = exp.match(regex);
+        if (matches === null) {
+            errors.push(`The provided timing value "${exp}" is invalid.`);
+            return { duration: 0, delay: 0, easing: '' };
+        }
+        duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);
+        const delayMatch = matches[3];
+        if (delayMatch != null) {
+            delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]);
+        }
+        const easingVal = matches[5];
+        if (easingVal) {
+            easing = easingVal;
+        }
+    }
+    else {
+        duration = exp;
+    }
+    if (!allowNegativeValues) {
+        let containsErrors = false;
+        let startIndex = errors.length;
+        if (duration < 0) {
+            errors.push(`Duration values below 0 are not allowed for this animation step.`);
+            containsErrors = true;
+        }
+        if (delay < 0) {
+            errors.push(`Delay values below 0 are not allowed for this animation step.`);
+            containsErrors = true;
+        }
+        if (containsErrors) {
+            errors.splice(startIndex, 0, `The provided timing value "${exp}" is invalid.`);
+        }
+    }
+    return { duration, delay, easing };
+}
+function copyObj(obj, destination = {}) {
+    Object.keys(obj).forEach(prop => { destination[prop] = obj[prop]; });
+    return destination;
+}
+function normalizeStyles(styles) {
+    const normalizedStyles = {};
+    if (Array.isArray(styles)) {
+        styles.forEach(data => copyStyles(data, false, normalizedStyles));
+    }
+    else {
+        copyStyles(styles, false, normalizedStyles);
+    }
+    return normalizedStyles;
+}
+function copyStyles(styles, readPrototype, destination = {}) {
+    if (readPrototype) {
+        // we make use of a for-in loop so that the
+        // prototypically inherited properties are
+        // revealed from the backFill map
+        for (let prop in styles) {
+            destination[prop] = styles[prop];
+        }
+    }
+    else {
+        copyObj(styles, destination);
+    }
+    return destination;
+}
+function setStyles(element, styles) {
+    if (element['style']) {
+        Object.keys(styles).forEach(prop => {
+            const camelProp = dashCaseToCamelCase(prop);
+            element.style[camelProp] = styles[prop];
+        });
+    }
+}
+function eraseStyles(element, styles) {
+    if (element['style']) {
+        Object.keys(styles).forEach(prop => {
+            const camelProp = dashCaseToCamelCase(prop);
+            element.style[camelProp] = '';
+        });
+    }
+}
+function normalizeAnimationEntry(steps) {
+    if (Array.isArray(steps)) {
+        if (steps.length == 1)
+            return steps[0];
+        return sequence(steps);
+    }
+    return steps;
+}
+function validateStyleParams(value, options, errors) {
+    const params = options.params || {};
+    const matches = extractStyleParams(value);
+    if (matches.length) {
+        matches.forEach(varName => {
+            if (!params.hasOwnProperty(varName)) {
+                errors.push(`Unable to resolve the local animation param ${varName} in the given list of values`);
+            }
+        });
+    }
+}
+const PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\s*(.+?)\\s*${SUBSTITUTION_EXPR_END}`, 'g');
+function extractStyleParams(value) {
+    let params = [];
+    if (typeof value === 'string') {
+        const val = value.toString();
+        let match;
+        while (match = PARAM_REGEX.exec(val)) {
+            params.push(match[1]);
+        }
+        PARAM_REGEX.lastIndex = 0;
+    }
+    return params;
+}
+function interpolateParams(value, params, errors) {
+    const original = value.toString();
+    const str = original.replace(PARAM_REGEX, (_, varName) => {
+        let localVal = params[varName];
+        // this means that the value was never overidden by the data passed in by the user
+        if (!params.hasOwnProperty(varName)) {
+            errors.push(`Please provide a value for the animation param ${varName}`);
+            localVal = '';
+        }
+        return localVal.toString();
+    });
+    // we do this to assert that numeric values stay as they are
+    return str == original ? value : str;
+}
+function iteratorToArray(iterator) {
+    const arr = [];
+    let item = iterator.next();
+    while (!item.done) {
+        arr.push(item.value);
+        item = iterator.next();
+    }
+    return arr;
+}
+
+const DASH_CASE_REGEXP = /-+([a-z0-9])/g;
+function dashCaseToCamelCase(input) {
+    return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());
+}
+function allowPreviousPlayerStylesMerge(duration, delay) {
+    return duration === 0 || delay === 0;
+}
+function visitDslNode(visitor, node, context) {
+    switch (node.type) {
+        case 7 /* Trigger */:
+            return visitor.visitTrigger(node, context);
+        case 0 /* State */:
+            return visitor.visitState(node, context);
+        case 1 /* Transition */:
+            return visitor.visitTransition(node, context);
+        case 2 /* Sequence */:
+            return visitor.visitSequence(node, context);
+        case 3 /* Group */:
+            return visitor.visitGroup(node, context);
+        case 4 /* Animate */:
+            return visitor.visitAnimate(node, context);
+        case 5 /* Keyframes */:
+            return visitor.visitKeyframes(node, context);
+        case 6 /* Style */:
+            return visitor.visitStyle(node, context);
+        case 8 /* Reference */:
+            return visitor.visitReference(node, context);
+        case 9 /* AnimateChild */:
+            return visitor.visitAnimateChild(node, context);
+        case 10 /* AnimateRef */:
+            return visitor.visitAnimateRef(node, context);
+        case 11 /* Query */:
+            return visitor.visitQuery(node, context);
+        case 12 /* Stagger */:
+            return visitor.visitStagger(node, context);
+        default:
+            throw new Error(`Unable to resolve animation metadata node #${node.type}`);
+    }
+}
+
+/**
+ * @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 ANY_STATE = '*';
+/**
+ * @param {?} transitionValue
+ * @param {?} errors
+ * @return {?}
+ */
+function parseTransitionExpr(transitionValue, errors) {
+    const /** @type {?} */ expressions = [];
+    if (typeof transitionValue == 'string') {
+        ((transitionValue))
+            .split(/\s*,\s*/)
+            .forEach(str => parseInnerTransitionStr(str, expressions, errors));
+    }
+    else {
+        expressions.push(/** @type {?} */ (transitionValue));
+    }
+    return expressions;
+}
+/**
+ * @param {?} eventStr
+ * @param {?} expressions
+ * @param {?} errors
+ * @return {?}
+ */
+function parseInnerTransitionStr(eventStr, expressions, errors) {
+    if (eventStr[0] == ':') {
+        eventStr = parseAnimationAlias(eventStr, errors);
+    }
+    const /** @type {?} */ match = eventStr.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);
+    if (match == null || match.length < 4) {
+        errors.push(`The provided transition expression "${eventStr}" is not supported`);
+        return expressions;
+    }
+    const /** @type {?} */ fromState = match[1];
+    const /** @type {?} */ separator = match[2];
+    const /** @type {?} */ toState = match[3];
+    expressions.push(makeLambdaFromStates(fromState, toState));
+    const /** @type {?} */ isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;
+    if (separator[0] == '<' && !isFullAnyStateExpr) {
+        expressions.push(makeLambdaFromStates(toState, fromState));
+    }
+}
+/**
+ * @param {?} alias
+ * @param {?} errors
+ * @return {?}
+ */
+function parseAnimationAlias(alias, errors) {
+    switch (alias) {
+        case ':enter':
+            return 'void => *';
+        case ':leave':
+            return '* => void';
+        default:
+            errors.push(`The transition alias value "${alias}" is not supported`);
+            return '* => *';
+    }
+}
+const TRUE_BOOLEAN_VALUES = new Set();
+TRUE_BOOLEAN_VALUES.add('true');
+TRUE_BOOLEAN_VALUES.add('1');
+const FALSE_BOOLEAN_VALUES = new Set();
+FALSE_BOOLEAN_VALUES.add('false');
+FALSE_BOOLEAN_VALUES.add('0');
+/**
+ * @param {?} lhs
+ * @param {?} rhs
+ * @return {?}
+ */
+function makeLambdaFromStates(lhs, rhs) {
+    const /** @type {?} */ LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);
+    const /** @type {?} */ RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);
+    return (fromState, toState) => {
+        let /** @type {?} */ lhsMatch = lhs == ANY_STATE || lhs == fromState;
+        let /** @type {?} */ rhsMatch = rhs == ANY_STATE || rhs == toState;
+        if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {
+            lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);
+        }
+        if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {
+            rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);
+        }
+        return lhsMatch && rhsMatch;
+    };
+}
+
+/**
+ * @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 SELF_TOKEN = ':self';
+const SELF_TOKEN_REGEX = new RegExp(`\s*${SELF_TOKEN}\s*,?`, 'g');
+/**
+ * @param {?} metadata
+ * @param {?} errors
+ * @return {?}
+ */
+function buildAnimationAst(metadata, errors) {
+    return new AnimationAstBuilderVisitor().build(metadata, errors);
+}
+const LEAVE_TOKEN = ':leave';
+const LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');
+const ENTER_TOKEN = ':enter';
+const ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');
+const ROOT_SELECTOR = '';
+class AnimationAstBuilderVisitor {
+    /**
+     * @param {?} metadata
+     * @param {?} errors
+     * @return {?}
+     */
+    build(metadata, errors) {
+        const /** @type {?} */ context = new AnimationAstBuilderContext(errors);
+        this._resetContextStyleTimingState(context);
+        return (visitDslNode(this, normalizeAnimationEntry(metadata), context));
+    }
+    /**
+     * @param {?} context
+     * @return {?}
+     */
+    _resetContextStyleTimingState(context) {
+        context.currentQuerySelector = ROOT_SELECTOR;
+        context.collectedStyles = {};
+        context.collectedStyles[ROOT_SELECTOR] = {};
+        context.currentTime = 0;
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitTrigger(metadata, context) {
+        let /** @type {?} */ queryCount = context.queryCount = 0;
+        let /** @type {?} */ depCount = context.depCount = 0;
+        const /** @type {?} */ states = [];
+        const /** @type {?} */ transitions = [];
+        metadata.definitions.forEach(def => {
+            this._resetContextStyleTimingState(context);
+            if (def.type == 0 /* State */) {
+                const /** @type {?} */ stateDef = (def);
+                const /** @type {?} */ name = stateDef.name;
+                name.split(/\s*,\s*/).forEach(n => {
+                    stateDef.name = n;
+                    states.push(this.visitState(stateDef, context));
+                });
+                stateDef.name = name;
+            }
+            else if (def.type == 1 /* Transition */) {
+                const /** @type {?} */ transition = this.visitTransition(/** @type {?} */ (def), context);
+                queryCount += transition.queryCount;
+                depCount += transition.depCount;
+                transitions.push(transition);
+            }
+            else {
+                context.errors.push('only state() and transition() definitions can sit inside of a trigger()');
+            }
+        });
+        return {
+            type: 7 /* Trigger */,
+            name: metadata.name, states, transitions, queryCount, depCount,
+            options: null
+        };
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitState(metadata, context) {
+        const /** @type {?} */ styleAst = this.visitStyle(metadata.styles, context);
+        const /** @type {?} */ astParams = (metadata.options && metadata.options.params) || null;
+        if (styleAst.containsDynamicStyles) {
+            const /** @type {?} */ missingSubs = new Set();
+            const /** @type {?} */ params = astParams || {};
+            styleAst.styles.forEach(value => {
+                if (isObject(value)) {
+                    const /** @type {?} */ stylesObj = (value);
+                    Object.keys(stylesObj).forEach(prop => {
+                        extractStyleParams(stylesObj[prop]).forEach(sub => {
+                            if (!params.hasOwnProperty(sub)) {
+                                missingSubs.add(sub);
+                            }
+                        });
+                    });
+                }
+            });
+            if (missingSubs.size) {
+                const /** @type {?} */ missingSubsArr = iteratorToArray(missingSubs.values());
+                context.errors.push(`state("${metadata.name}", ...) must define default values for all the following style substitutions: ${missingSubsArr.join(', ')}`);
+            }
+        }
+        return {
+            type: 0 /* State */,
+            name: metadata.name,
+            style: styleAst,
+            options: astParams ? { params: astParams } : null
+        };
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitTransition(metadata, context) {
+        context.queryCount = 0;
+        context.depCount = 0;
+        const /** @type {?} */ animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);
+        const /** @type {?} */ matchers = parseTransitionExpr(metadata.expr, context.errors);
+        return {
+            type: 1 /* Transition */,
+            matchers,
+            animation,
+            queryCount: context.queryCount,
+            depCount: context.depCount,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitSequence(metadata, context) {
+        return {
+            type: 2 /* Sequence */,
+            steps: metadata.steps.map(s => visitDslNode(this, s, context)),
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitGroup(metadata, context) {
+        const /** @type {?} */ currentTime = context.currentTime;
+        let /** @type {?} */ furthestTime = 0;
+        const /** @type {?} */ steps = metadata.steps.map(step => {
+            context.currentTime = currentTime;
+            const /** @type {?} */ innerAst = visitDslNode(this, step, context);
+            furthestTime = Math.max(furthestTime, context.currentTime);
+            return innerAst;
+        });
+        context.currentTime = furthestTime;
+        return {
+            type: 3 /* Group */,
+            steps,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitAnimate(metadata, context) {
+        const /** @type {?} */ timingAst = constructTimingAst(metadata.timings, context.errors);
+        context.currentAnimateTimings = timingAst;
+        let /** @type {?} */ styleAst;
+        let /** @type {?} */ styleMetadata = metadata.styles ? metadata.styles : style({});
+        if (styleMetadata.type == 5 /* Keyframes */) {
+            styleAst = this.visitKeyframes(/** @type {?} */ (styleMetadata), context);
+        }
+        else {
+            let /** @type {?} */ styleMetadata = (metadata.styles);
+            let /** @type {?} */ isEmpty = false;
+            if (!styleMetadata) {
+                isEmpty = true;
+                const /** @type {?} */ newStyleData = {};
+                if (timingAst.easing) {
+                    newStyleData['easing'] = timingAst.easing;
+                }
+                styleMetadata = style(newStyleData);
+            }
+            context.currentTime += timingAst.duration + timingAst.delay;
+            const /** @type {?} */ _styleAst = this.visitStyle(styleMetadata, context);
+            _styleAst.isEmptyStep = isEmpty;
+            styleAst = _styleAst;
+        }
+        context.currentAnimateTimings = null;
+        return {
+            type: 4 /* Animate */,
+            timings: timingAst,
+            style: styleAst,
+            options: null
+        };
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitStyle(metadata, context) {
+        const /** @type {?} */ ast = this._makeStyleAst(metadata, context);
+        this._validateStyleAst(ast, context);
+        return ast;
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    _makeStyleAst(metadata, context) {
+        const /** @type {?} */ styles = [];
+        if (Array.isArray(metadata.styles)) {
+            ((metadata.styles)).forEach(styleTuple => {
+                if (typeof styleTuple == 'string') {
+                    if (styleTuple == AUTO_STYLE) {
+                        styles.push(/** @type {?} */ (styleTuple));
+                    }
+                    else {
+                        context.errors.push(`The provided style string value ${styleTuple} is not allowed.`);
+                    }
+                }
+                else {
+                    styles.push(/** @type {?} */ (styleTuple));
+                }
+            });
+        }
+        else {
+            styles.push(metadata.styles);
+        }
+        let /** @type {?} */ containsDynamicStyles = false;
+        let /** @type {?} */ collectedEasing = null;
+        styles.forEach(styleData => {
+            if (isObject(styleData)) {
+                const /** @type {?} */ styleMap = (styleData);
+                const /** @type {?} */ easing = styleMap['easing'];
+                if (easing) {
+                    collectedEasing = (easing);
+                    delete styleMap['easing'];
+                }
+                if (!containsDynamicStyles) {
+                    for (let /** @type {?} */ prop in styleMap) {
+                        const /** @type {?} */ value = styleMap[prop];
+                        if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {
+                            containsDynamicStyles = true;
+                            break;
+                        }
+                    }
+                }
+            }
+        });
+        return {
+            type: 6 /* Style */,
+            styles,
+            easing: collectedEasing,
+            offset: metadata.offset, containsDynamicStyles,
+            options: null
+        };
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    _validateStyleAst(ast, context) {
+        const /** @type {?} */ timings = context.currentAnimateTimings;
+        let /** @type {?} */ endTime = context.currentTime;
+        let /** @type {?} */ startTime = context.currentTime;
+        if (timings && startTime > 0) {
+            startTime -= timings.duration + timings.delay;
+        }
+        ast.styles.forEach(tuple => {
+            if (typeof tuple == 'string')
+                return;
+            Object.keys(tuple).forEach(prop => {
+                const /** @type {?} */ collectedStyles = context.collectedStyles[((context.currentQuerySelector))];
+                const /** @type {?} */ collectedEntry = collectedStyles[prop];
+                let /** @type {?} */ updateCollectedStyle = true;
+                if (collectedEntry) {
+                    if (startTime != endTime && startTime >= collectedEntry.startTime &&
+                        endTime <= collectedEntry.endTime) {
+                        context.errors.push(`The CSS property "${prop}" that exists between the times of "${collectedEntry.startTime}ms" and "${collectedEntry.endTime}ms" is also being animated in a parallel animation between the times of "${startTime}ms" and "${endTime}ms"`);
+                        updateCollectedStyle = false;
+                    }
+                    // we always choose the smaller start time value since we
+                    // want to have a record of the entire animation window where
+                    // the style property is being animated in between
+                    startTime = collectedEntry.startTime;
+                }
+                if (updateCollectedStyle) {
+                    collectedStyles[prop] = { startTime, endTime };
+                }
+                if (context.options) {
+                    validateStyleParams(tuple[prop], context.options, context.errors);
+                }
+            });
+        });
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitKeyframes(metadata, context) {
+        const /** @type {?} */ ast = { type: 5 /* Keyframes */, styles: [], options: null };
+        if (!context.currentAnimateTimings) {
+            context.errors.push(`keyframes() must be placed inside of a call to animate()`);
+            return ast;
+        }
+        const /** @type {?} */ MAX_KEYFRAME_OFFSET = 1;
+        let /** @type {?} */ totalKeyframesWithOffsets = 0;
+        const /** @type {?} */ offsets = [];
+        let /** @type {?} */ offsetsOutOfOrder = false;
+        let /** @type {?} */ keyframesOutOfRange = false;
+        let /** @type {?} */ previousOffset = 0;
+        const /** @type {?} */ keyframes = metadata.steps.map(styles => {
+            const /** @type {?} */ style$$1 = this._makeStyleAst(styles, context);
+            let /** @type {?} */ offsetVal = style$$1.offset != null ? style$$1.offset : consumeOffset(style$$1.styles);
+            let /** @type {?} */ offset = 0;
+            if (offsetVal != null) {
+                totalKeyframesWithOffsets++;
+                offset = style$$1.offset = offsetVal;
+            }
+            keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;
+            offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;
+            previousOffset = offset;
+            offsets.push(offset);
+            return style$$1;
+        });
+        if (keyframesOutOfRange) {
+            context.errors.push(`Please ensure that all keyframe offsets are between 0 and 1`);
+        }
+        if (offsetsOutOfOrder) {
+            context.errors.push(`Please ensure that all keyframe offsets are in order`);
+        }
+        const /** @type {?} */ length = metadata.steps.length;
+        let /** @type {?} */ generatedOffset = 0;
+        if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {
+            context.errors.push(`Not all style() steps within the declared keyframes() contain offsets`);
+        }
+        else if (totalKeyframesWithOffsets == 0) {
+            generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);
+        }
+        const /** @type {?} */ limit = length - 1;
+        const /** @type {?} */ currentTime = context.currentTime;
+        const /** @type {?} */ currentAnimateTimings = ((context.currentAnimateTimings));
+        const /** @type {?} */ animateDuration = currentAnimateTimings.duration;
+        keyframes.forEach((kf, i) => {
+            const /** @type {?} */ offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];
+            const /** @type {?} */ durationUpToThisFrame = offset * animateDuration;
+            context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;
+            currentAnimateTimings.duration = durationUpToThisFrame;
+            this._validateStyleAst(kf, context);
+            kf.offset = offset;
+            ast.styles.push(kf);
+        });
+        return ast;
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitReference(metadata, context) {
+        return {
+            type: 8 /* Reference */,
+            animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitAnimateChild(metadata, context) {
+        context.depCount++;
+        return {
+            type: 9 /* AnimateChild */,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitAnimateRef(metadata, context) {
+        return {
+            type: 10 /* AnimateRef */,
+            animation: this.visitReference(metadata.animation, context),
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitQuery(metadata, context) {
+        const /** @type {?} */ parentSelector = ((context.currentQuerySelector));
+        const /** @type {?} */ options = ((metadata.options || {}));
+        context.queryCount++;
+        context.currentQuery = metadata;
+        const [selector, includeSelf] = normalizeSelector(metadata.selector);
+        context.currentQuerySelector =
+            parentSelector.length ? (parentSelector + ' ' + selector) : selector;
+        getOrSetAsInMap(context.collectedStyles, context.currentQuerySelector, {});
+        const /** @type {?} */ animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);
+        context.currentQuery = null;
+        context.currentQuerySelector = parentSelector;
+        return {
+            type: 11 /* Query */,
+            selector,
+            limit: options.limit || 0,
+            optional: !!options.optional, includeSelf, animation,
+            originalSelector: metadata.selector,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    visitStagger(metadata, context) {
+        if (!context.currentQuery) {
+            context.errors.push(`stagger() can only be used inside of query()`);
+        }
+        const /** @type {?} */ timings = metadata.timings === 'full' ?
+            { duration: 0, delay: 0, easing: 'full' } :
+            resolveTiming(metadata.timings, context.errors, true);
+        return {
+            type: 12 /* Stagger */,
+            animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context), timings,
+            options: null
+        };
+    }
+}
+/**
+ * @param {?} selector
+ * @return {?}
+ */
+function normalizeSelector(selector) {
+    const /** @type {?} */ hasAmpersand = selector.split(/\s*,\s*/).find(token => token == SELF_TOKEN) ? true : false;
+    if (hasAmpersand) {
+        selector = selector.replace(SELF_TOKEN_REGEX, '');
+    }
+    selector = selector.replace(ENTER_TOKEN_REGEX, ENTER_SELECTOR)
+        .replace(LEAVE_TOKEN_REGEX, LEAVE_SELECTOR)
+        .replace(/@\*/g, NG_TRIGGER_SELECTOR)
+        .replace(/@\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.substr(1))
+        .replace(/:animating/g, NG_ANIMATING_SELECTOR);
+    return [selector, hasAmpersand];
+}
+/**
+ * @param {?} obj
+ * @return {?}
+ */
+function normalizeParams(obj) {
+    return obj ? copyObj(obj) : null;
+}
+class AnimationAstBuilderContext {
+    /**
+     * @param {?} errors
+     */
+    constructor(errors) {
+        this.errors = errors;
+        this.queryCount = 0;
+        this.depCount = 0;
+        this.currentTransition = null;
+        this.currentQuery = null;
+        this.currentQuerySelector = null;
+        this.currentAnimateTimings = null;
+        this.currentTime = 0;
+        this.collectedStyles = {};
+        this.options = null;
+    }
+}
+/**
+ * @param {?} styles
+ * @return {?}
+ */
+function consumeOffset(styles) {
+    if (typeof styles == 'string')
+        return null;
+    let /** @type {?} */ offset = null;
+    if (Array.isArray(styles)) {
+        styles.forEach(styleTuple => {
+            if (isObject(styleTuple) && styleTuple.hasOwnProperty('offset')) {
+                const /** @type {?} */ obj = (styleTuple);
+                offset = parseFloat(/** @type {?} */ (obj['offset']));
+                delete obj['offset'];
+            }
+        });
+    }
+    else if (isObject(styles) && styles.hasOwnProperty('offset')) {
+        const /** @type {?} */ obj = (styles);
+        offset = parseFloat(/** @type {?} */ (obj['offset']));
+        delete obj['offset'];
+    }
+    return offset;
+}
+/**
+ * @param {?} value
+ * @return {?}
+ */
+function isObject(value) {
+    return !Array.isArray(value) && typeof value == 'object';
+}
+/**
+ * @param {?} value
+ * @param {?} errors
+ * @return {?}
+ */
+function constructTimingAst(value, errors) {
+    let /** @type {?} */ timings = null;
+    if (value.hasOwnProperty('duration')) {
+        timings = (value);
+    }
+    else if (typeof value == 'number') {
+        const /** @type {?} */ duration = resolveTiming(/** @type {?} */ (value), errors).duration;
+        return makeTimingAst(/** @type {?} */ (duration), 0, '');
+    }
+    const /** @type {?} */ strValue = (value);
+    const /** @type {?} */ isDynamic = strValue.split(/\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');
+    if (isDynamic) {
+        const /** @type {?} */ ast = (makeTimingAst(0, 0, ''));
+        ast.dynamic = true;
+        ast.strValue = strValue;
+        return (ast);
+    }
+    timings = timings || resolveTiming(strValue, errors);
+    return makeTimingAst(timings.duration, timings.delay, timings.easing);
+}
+/**
+ * @param {?} options
+ * @return {?}
+ */
+function normalizeAnimationOptions(options) {
+    if (options) {
+        options = copyObj(options);
+        if (options['params']) {
+            options['params'] = ((normalizeParams(options['params'])));
+        }
+    }
+    else {
+        options = {};
+    }
+    return options;
+}
+/**
+ * @param {?} duration
+ * @param {?} delay
+ * @param {?} easing
+ * @return {?}
+ */
+function makeTimingAst(duration, delay, easing) {
+    return { duration, delay, easing };
+}
+
+/**
+ * @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
+ */
+/**
+ * @param {?} element
+ * @param {?} keyframes
+ * @param {?} preStyleProps
+ * @param {?} postStyleProps
+ * @param {?} duration
+ * @param {?} delay
+ * @param {?=} easing
+ * @param {?=} subTimeline
+ * @return {?}
+ */
+function createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {
+    return {
+        type: 1 /* TimelineAnimation */,
+        element,
+        keyframes,
+        preStyleProps,
+        postStyleProps,
+        duration,
+        delay,
+        totalTime: duration + delay, easing, subTimeline
+    };
+}
+
+/**
+ * @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
+ */
+class ElementInstructionMap {
+    constructor() {
+        this._map = new Map();
+    }
+    /**
+     * @param {?} element
+     * @return {?}
+     */
+    consume(element) {
+        let /** @type {?} */ instructions = this._map.get(element);
+        if (instructions) {
+            this._map.delete(element);
+        }
+        else {
+            instructions = [];
+        }
+        return instructions;
+    }
+    /**
+     * @param {?} element
+     * @param {?} instructions
+     * @return {?}
+     */
+    append(element, instructions) {
+        let /** @type {?} */ existingInstructions = this._map.get(element);
+        if (!existingInstructions) {
+            this._map.set(element, existingInstructions = []);
+        }
+        existingInstructions.push(...instructions);
+    }
+    /**
+     * @param {?} element
+     * @return {?}
+     */
+    has(element) { return this._map.has(element); }
+    /**
+     * @return {?}
+     */
+    clear() { this._map.clear(); }
+}
+
+/**
+ * @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 ONE_FRAME_IN_MILLISECONDS = 1;
+/**
+ * @param {?} driver
+ * @param {?} rootElement
+ * @param {?} ast
+ * @param {?=} startingStyles
+ * @param {?=} finalStyles
+ * @param {?=} options
+ * @param {?=} subInstructions
+ * @param {?=} errors
+ * @return {?}
+ */
+function buildAnimationTimelines(driver, rootElement, ast, startingStyles = {}, finalStyles = {}, options, subInstructions, errors = []) {
+    return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors);
+}
+class AnimationTimelineBuilderVisitor {
+    /**
+     * @param {?} driver
+     * @param {?} rootElement
+     * @param {?} ast
+     * @param {?} startingStyles
+     * @param {?} finalStyles
+     * @param {?} options
+     * @param {?=} subInstructions
+     * @param {?=} errors
+     * @return {?}
+     */
+    buildKeyframes(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors = []) {
+        subInstructions = subInstructions || new ElementInstructionMap();
+        const /** @type {?} */ context = new AnimationTimelineContext(driver, rootElement, subInstructions, errors, []);
+        context.options = options;
+        context.currentTimeline.setStyles([startingStyles], null, context.errors, options);
+        visitDslNode(this, ast, context);
+        // this checks to see if an actual animation happened
+        const /** @type {?} */ timelines = context.timelines.filter(timeline => timeline.containsAnimation());
+        if (timelines.length && Object.keys(finalStyles).length) {
+            const /** @type {?} */ tl = timelines[timelines.length - 1];
+            if (!tl.allowOnlyTimelineStyles()) {
+                tl.setStyles([finalStyles], null, context.errors, options);
+            }
+        }
+        return timelines.length ? timelines.map(timeline => timeline.buildKeyframes()) :
+            [createTimelineInstruction(rootElement, [], [], [], 0, 0, '', false)];
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitTrigger(ast, context) {
+        // these values are not visited in this AST
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitState(ast, context) {
+        // these values are not visited in this AST
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitTransition(ast, context) {
+        // these values are not visited in this AST
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitAnimateChild(ast, context) {
+        const /** @type {?} */ elementInstructions = context.subInstructions.consume(context.element);
+        if (elementInstructions) {
+            const /** @type {?} */ innerContext = context.createSubContext(ast.options);
+            const /** @type {?} */ startTime = context.currentTimeline.currentTime;
+            const /** @type {?} */ endTime = this._visitSubInstructions(elementInstructions, innerContext, /** @type {?} */ (innerContext.options));
+            if (startTime != endTime) {
+                // we do this on the upper context because we created a sub context for
+                // the sub child animations
+                context.transformIntoNewTimeline(endTime);
+            }
+        }
+        context.previousNode = ast;
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitAnimateRef(ast, context) {
+        const /** @type {?} */ innerContext = context.createSubContext(ast.options);
+        innerContext.transformIntoNewTimeline();
+        this.visitReference(ast.animation, innerContext);
+        context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);
+        context.previousNode = ast;
+    }
+    /**
+     * @param {?} instructions
+     * @param {?} context
+     * @param {?} options
+     * @return {?}
+     */
+    _visitSubInstructions(instructions, context, options) {
+        const /** @type {?} */ startTime = context.currentTimeline.currentTime;
+        let /** @type {?} */ furthestTime = startTime;
+        // this is a special-case for when a user wants to skip a sub
+        // animation from being fired entirely.
+        const /** @type {?} */ duration = options.duration != null ? resolveTimingValue(options.duration) : null;
+        const /** @type {?} */ delay = options.delay != null ? resolveTimingValue(options.delay) : null;
+        if (duration !== 0) {
+            instructions.forEach(instruction => {
+                const /** @type {?} */ instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);
+                furthestTime =
+                    Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);
+            });
+        }
+        return furthestTime;
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitReference(ast, context) {
+        context.updateOptions(ast.options, true);
+        visitDslNode(this, ast.animation, context);
+        context.previousNode = ast;
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitSequence(ast, context) {
+        const /** @type {?} */ subContextCount = context.subContextCount;
+        let /** @type {?} */ ctx = context;
+        const /** @type {?} */ options = ast.options;
+        if (options && (options.params || options.delay)) {
+            ctx = context.createSubContext(options);
+            ctx.transformIntoNewTimeline();
+            if (options.delay != null) {
+                if (ctx.previousNode.type == 6 /* Style */) {
+                    ctx.currentTimeline.snapshotCurrentStyles();
+                    ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+                }
+                const /** @type {?} */ delay = resolveTimingValue(options.delay);
+                ctx.delayNextStep(delay);
+            }
+        }
+        if (ast.steps.length) {
+            ast.steps.forEach(s => visitDslNode(this, s, ctx));
+            // this is here just incase the inner steps only contain or end with a style() call
+            ctx.currentTimeline.applyStylesToKeyframe();
+            // this means that some animation function within the sequence
+            // ended up creating a sub timeline (which means the current
+            // timeline cannot overlap with the contents of the sequence)
+            if (ctx.subContextCount > subContextCount) {
+                ctx.transformIntoNewTimeline();
+            }
+        }
+        context.previousNode = ast;
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitGroup(ast, context) {
+        const /** @type {?} */ innerTimelines = [];
+        let /** @type {?} */ furthestTime = context.currentTimeline.currentTime;
+        const /** @type {?} */ delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;
+        ast.steps.forEach(s => {
+            const /** @type {?} */ innerContext = context.createSubContext(ast.options);
+            if (delay) {
+                innerContext.delayNextStep(delay);
+            }
+            visitDslNode(this, s, innerContext);
+            furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);
+            innerTimelines.push(innerContext.currentTimeline);
+        });
+        // this operation is run after the AST loop because otherwise
+        // if the parent timeline's collected styles were updated then
+        // it would pass in invalid data into the new-to-be forked items
+        innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));
+        context.transformIntoNewTimeline(furthestTime);
+        context.previousNode = ast;
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    _visitTiming(ast, context) {
+        if (((ast)).dynamic) {
+            const /** @type {?} */ strValue = ((ast)).strValue;
+            const /** @type {?} */ timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;
+            return resolveTiming(timingValue, context.errors);
+        }
+        else {
+            return { duration: ast.duration, delay: ast.delay, easing: ast.easing };
+        }
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitAnimate(ast, context) {
+        const /** @type {?} */ timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);
+        const /** @type {?} */ timeline = context.currentTimeline;
+        if (timings.delay) {
+            context.incrementTime(timings.delay);
+            timeline.snapshotCurrentStyles();
+        }
+        const /** @type {?} */ style$$1 = ast.style;
+        if (style$$1.type == 5 /* Keyframes */) {
+            this.visitKeyframes(style$$1, context);
+        }
+        else {
+            context.incrementTime(timings.duration);
+            this.visitStyle(/** @type {?} */ (style$$1), context);
+            timeline.applyStylesToKeyframe();
+        }
+        context.currentAnimateTimings = null;
+        context.previousNode = ast;
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitStyle(ast, context) {
+        const /** @type {?} */ timeline = context.currentTimeline;
+        const /** @type {?} */ timings = ((context.currentAnimateTimings));
+        // this is a special case for when a style() call
+        // directly follows  an animate() call (but not inside of an animate() call)
+        if (!timings && timeline.getCurrentStyleProperties().length) {
+            timeline.forwardFrame();
+        }
+        const /** @type {?} */ easing = (timings && timings.easing) || ast.easing;
+        if (ast.isEmptyStep) {
+            timeline.applyEmptyStep(easing);
+        }
+        else {
+            timeline.setStyles(ast.styles, easing, context.errors, context.options);
+        }
+        context.previousNode = ast;
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitKeyframes(ast, context) {
+        const /** @type {?} */ currentAnimateTimings = ((context.currentAnimateTimings));
+        const /** @type {?} */ startTime = (((context.currentTimeline))).duration;
+        const /** @type {?} */ duration = currentAnimateTimings.duration;
+        const /** @type {?} */ innerContext = context.createSubContext();
+        const /** @type {?} */ innerTimeline = innerContext.currentTimeline;
+        innerTimeline.easing = currentAnimateTimings.easing;
+        ast.styles.forEach(step => {
+            const /** @type {?} */ offset = step.offset || 0;
+            innerTimeline.forwardTime(offset * duration);
+            innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);
+            innerTimeline.applyStylesToKeyframe();
+        });
+        // this will ensure that the parent timeline gets all the styles from
+        // the child even if the new timeline below is not used
+        context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);
+        // we do this because the window between this timeline and the sub timeline
+        // should ensure that the styles within are exactly the same as they were before
+        context.transformIntoNewTimeline(startTime + duration);
+        context.previousNode = ast;
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitQuery(ast, context) {
+        // in the event that the first step before this is a style step we need
+        // to ensure the styles are applied before the children are animated
+        const /** @type {?} */ startTime = context.currentTimeline.currentTime;
+        const /** @type {?} */ options = ((ast.options || {}));
+        const /** @type {?} */ delay = options.delay ? resolveTimingValue(options.delay) : 0;
+        if (delay && (context.previousNode.type === 6 /* Style */ ||
+            (startTime == 0 && context.currentTimeline.getCurrentStyleProperties().length))) {
+            context.currentTimeline.snapshotCurrentStyles();
+            context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+        }
+        let /** @type {?} */ furthestTime = startTime;
+        const /** @type {?} */ elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);
+        context.currentQueryTotal = elms.length;
+        let /** @type {?} */ sameElementTimeline = null;
+        elms.forEach((element, i) => {
+            context.currentQueryIndex = i;
+            const /** @type {?} */ innerContext = context.createSubContext(ast.options, element);
+            if (delay) {
+                innerContext.delayNextStep(delay);
+            }
+            if (element === context.element) {
+                sameElementTimeline = innerContext.currentTimeline;
+            }
+            visitDslNode(this, ast.animation, innerContext);
+            // this is here just incase the inner steps only contain or end
+            // with a style() call (which is here to signal that this is a preparatory
+            // call to style an element before it is animated again)
+            innerContext.currentTimeline.applyStylesToKeyframe();
+            const /** @type {?} */ endTime = innerContext.currentTimeline.currentTime;
+            furthestTime = Math.max(furthestTime, endTime);
+        });
+        context.currentQueryIndex = 0;
+        context.currentQueryTotal = 0;
+        context.transformIntoNewTimeline(furthestTime);
+        if (sameElementTimeline) {
+            context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);
+            context.currentTimeline.snapshotCurrentStyles();
+        }
+        context.previousNode = ast;
+    }
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    visitStagger(ast, context) {
+        const /** @type {?} */ parentContext = ((context.parentContext));
+        const /** @type {?} */ tl = context.currentTimeline;
+        const /** @type {?} */ timings = ast.timings;
+        const /** @type {?} */ duration = Math.abs(timings.duration);
+        const /** @type {?} */ maxTime = duration * (context.currentQueryTotal - 1);
+        let /** @type {?} */ delay = duration * context.currentQueryIndex;
+        let /** @type {?} */ staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;
+        switch (staggerTransformer) {
+            case 'reverse':
+                delay = maxTime - delay;
+                break;
+            case 'full':
+                delay = parentContext.currentStaggerTime;
+                break;
+        }
+        const /** @type {?} */ timeline = context.currentTimeline;
+        if (delay) {
+            timeline.delayNextStep(delay);
+        }
+        const /** @type {?} */ startingTime = timeline.currentTime;
+        visitDslNode(this, ast.animation, context);
+        context.previousNode = ast;
+        // time = duration + delay
+        // the reason why this computation is so complex is because
+        // the inner timeline may either have a delay value or a stretched
+        // keyframe depending on if a subtimeline is not used or is used.
+        parentContext.currentStaggerTime =
+            (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);
+    }
+}
+const DEFAULT_NOOP_PREVIOUS_NODE = ({});
+class AnimationTimelineContext {
+    /**
+     * @param {?} _driver
+     * @param {?} element
+     * @param {?} subInstructions
+     * @param {?} errors
+     * @param {?} timelines
+     * @param {?=} initialTimeline
+     */
+    constructor(_driver, element, subInstructions, errors, timelines, initialTimeline) {
+        this._driver = _driver;
+        this.element = element;
+        this.subInstructions = subInstructions;
+        this.errors = errors;
+        this.timelines = timelines;
+        this.parentContext = null;
+        this.currentAnimateTimings = null;
+        this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+        this.subContextCount = 0;
+        this.options = {};
+        this.currentQueryIndex = 0;
+        this.currentQueryTotal = 0;
+        this.currentStaggerTime = 0;
+        this.currentTimeline = initialTimeline || new TimelineBuilder(element, 0);
+        timelines.push(this.currentTimeline);
+    }
+    /**
+     * @return {?}
+     */
+    get params() { return this.options.params; }
+    /**
+     * @param {?} options
+     * @param {?=} skipIfExists
+     * @return {?}
+     */
+    updateOptions(options, skipIfExists) {
+        if (!options)
+            return;
+        const /** @type {?} */ newOptions = (options);
+        let /** @type {?} */ optionsToUpdate = this.options;
+        // NOTE: this will get patched up when other animation methods support duration overrides
+        if (newOptions.duration != null) {
+            ((optionsToUpdate)).duration = resolveTimingValue(newOptions.duration);
+        }
+        if (newOptions.delay != null) {
+            optionsToUpdate.delay = resolveTimingValue(newOptions.delay);
+        }
+        const /** @type {?} */ newParams = newOptions.params;
+        if (newParams) {
+            let /** @type {?} */ paramsToUpdate = ((optionsToUpdate.params));
+            if (!paramsToUpdate) {
+                paramsToUpdate = this.options.params = {};
+            }
+            Object.keys(newParams).forEach(name => {
+                if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {
+                    paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);
+                }
+            });
+        }
+    }
+    /**
+     * @return {?}
+     */
+    _copyOptions() {
+        const /** @type {?} */ options = {};
+        if (this.options) {
+            const /** @type {?} */ oldParams = this.options.params;
+            if (oldParams) {
+                const /** @type {?} */ params = options['params'] = {};
+                Object.keys(oldParams).forEach(name => { params[name] = oldParams[name]; });
+            }
+        }
+        return options;
+    }
+    /**
+     * @param {?=} options
+     * @param {?=} element
+     * @param {?=} newTime
+     * @return {?}
+     */
+    createSubContext(options = null, element, newTime) {
+        const /** @type {?} */ target = element || this.element;
+        const /** @type {?} */ context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));
+        context.previousNode = this.previousNode;
+        context.currentAnimateTimings = this.currentAnimateTimings;
+        context.options = this._copyOptions();
+        context.updateOptions(options);
+        context.currentQueryIndex = this.currentQueryIndex;
+        context.currentQueryTotal = this.currentQueryTotal;
+        context.parentContext = this;
+        this.subContextCount++;
+        return context;
+    }
+    /**
+     * @param {?=} newTime
+     * @return {?}
+     */
+    transformIntoNewTimeline(newTime) {
+        this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+        this.currentTimeline = this.currentTimeline.fork(this.element, newTime);
+        this.timelines.push(this.currentTimeline);
+        return this.currentTimeline;
+    }
+    /**
+     * @param {?} instruction
+     * @param {?} duration
+     * @param {?} delay
+     * @return {?}
+     */
+    appendInstructionToTimeline(instruction, duration, delay) {
+        const /** @type {?} */ updatedTimings = {
+            duration: duration != null ? duration : instruction.duration,
+            delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,
+            easing: ''
+        };
+        const /** @type {?} */ builder = new SubTimelineBuilder(instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);
+        this.timelines.push(builder);
+        return updatedTimings;
+    }
+    /**
+     * @param {?} time
+     * @return {?}
+     */
+    incrementTime(time) {
+        this.currentTimeline.forwardTime(this.currentTimeline.duration + time);
+    }
+    /**
+     * @param {?} delay
+     * @return {?}
+     */
+    delayNextStep(delay) {
+        // negative delays are not yet supported
+        if (delay > 0) {
+            this.currentTimeline.delayNextStep(delay);
+        }
+    }
+    /**
+     * @param {?} selector
+     * @param {?} originalSelector
+     * @param {?} limit
+     * @param {?} includeSelf
+     * @param {?} optional
+     * @param {?} errors
+     * @return {?}
+     */
+    invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {
+        let /** @type {?} */ results = [];
+        if (includeSelf) {
+            results.push(this.element);
+        }
+        if (selector.length > 0) {
+            const /** @type {?} */ multi = limit != 1;
+            let /** @type {?} */ elements = this._driver.query(this.element, selector, multi);
+            if (limit !== 0) {
+                elements = elements.slice(0, limit);
+            }
+            results.push(...elements);
+        }
+        if (!optional && results.length == 0) {
+            errors.push(`\`query("${originalSelector}")\` returned zero elements. (Use \`query("${originalSelector}", { optional: true })\` if you wish to allow this.)`);
+        }
+        return results;
+    }
+}
+class TimelineBuilder {
+    /**
+     * @param {?} element
+     * @param {?} startTime
+     * @param {?=} _elementTimelineStylesLookup
+     */
+    constructor(element, startTime, _elementTimelineStylesLookup) {
+        this.element = element;
+        this.startTime = startTime;
+        this._elementTimelineStylesLookup = _elementTimelineStylesLookup;
+        this.duration = 0;
+        this._previousKeyframe = {};
+        this._currentKeyframe = {};
+        this._keyframes = new Map();
+        this._styleSummary = {};
+        this._pendingStyles = {};
+        this._backFill = {};
+        this._currentEmptyStepKeyframe = null;
+        if (!this._elementTimelineStylesLookup) {
+            this._elementTimelineStylesLookup = new Map();
+        }
+        this._localTimelineStyles = Object.create(this._backFill, {});
+        this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);
+        if (!this._globalTimelineStyles) {
+            this._globalTimelineStyles = this._localTimelineStyles;
+            this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);
+        }
+        this._loadKeyframe();
+    }
+    /**
+     * @return {?}
+     */
+    containsAnimation() {
+        switch (this._keyframes.size) {
+            case 0:
+                return false;
+            case 1:
+                return this.getCurrentStyleProperties().length > 0;
+            default:
+                return true;
+        }
+    }
+    /**
+     * @return {?}
+     */
+    getCurrentStyleProperties() { return Object.keys(this._currentKeyframe); }
+    /**
+     * @return {?}
+     */
+    get currentTime() { return this.startTime + this.duration; }
+    /**
+     * @param {?} delay
+     * @return {?}
+     */
+    delayNextStep(delay) {
+        // in the event that a style() step is placed right before a stagger()
+        // and that style() step is the very first style() value in the animation
+        // then we need to make a copy of the keyframe [0, copy, 1] so that the delay
+        // properly applies the style() values to work with the stagger...
+        const /** @type {?} */ hasPreStyleStep = this._keyframes.size == 1 && Object.keys(this._pendingStyles).length;
+        if (this.duration || hasPreStyleStep) {
+            this.forwardTime(this.currentTime + delay);
+            if (hasPreStyleStep) {
+                this.snapshotCurrentStyles();
+            }
+        }
+        else {
+            this.startTime += delay;
+        }
+    }
+    /**
+     * @param {?} element
+     * @param {?=} currentTime
+     * @return {?}
+     */
+    fork(element, currentTime) {
+        this.applyStylesToKeyframe();
+        return new TimelineBuilder(element, currentTime || this.currentTime, this._elementTimelineStylesLookup);
+    }
+    /**
+     * @return {?}
+     */
+    _loadKeyframe() {
+        if (this._currentKeyframe) {
+            this._previousKeyframe = this._currentKeyframe;
+        }
+        this._currentKeyframe = ((this._keyframes.get(this.duration)));
+        if (!this._currentKeyframe) {
+            this._currentKeyframe = Object.create(this._backFill, {});
+            this._keyframes.set(this.duration, this._currentKeyframe);
+        }
+    }
+    /**
+     * @return {?}
+     */
+    forwardFrame() {
+        this.duration += ONE_FRAME_IN_MILLISECONDS;
+        this._loadKeyframe();
+    }
+    /**
+     * @param {?} time
+     * @return {?}
+     */
+    forwardTime(time) {
+        this.applyStylesToKeyframe();
+        this.duration = time;
+        this._loadKeyframe();
+    }
+    /**
+     * @param {?} prop
+     * @param {?} value
+     * @return {?}
+     */
+    _updateStyle(prop, value) {
+        this._localTimelineStyles[prop] = value;
+        this._globalTimelineStyles[prop] = value;
+        this._styleSummary[prop] = { time: this.currentTime, value };
+    }
+    /**
+     * @return {?}
+     */
+    allowOnlyTimelineStyles() { return this._currentEmptyStepKeyframe !== this._currentKeyframe; }
+    /**
+     * @param {?} easing
+     * @return {?}
+     */
+    applyEmptyStep(easing) {
+        if (easing) {
+            this._previousKeyframe['easing'] = easing;
+        }
+        // special case for animate(duration):
+        // all missing styles are filled with a `*` value then
+        // if any destination styles are filled in later on the same
+        // keyframe then they will override the overridden styles
+        // We use `_globalTimelineStyles` here because there may be
+        // styles in previous keyframes that are not present in this timeline
+        Object.keys(this._globalTimelineStyles).forEach(prop => {
+            this._backFill[prop] = this._globalTimelineStyles[prop] || AUTO_STYLE;
+            this._currentKeyframe[prop] = AUTO_STYLE;
+        });
+        this._currentEmptyStepKeyframe = this._currentKeyframe;
+    }
+    /**
+     * @param {?} input
+     * @param {?} easing
+     * @param {?} errors
+     * @param {?=} options
+     * @return {?}
+     */
+    setStyles(input, easing, errors, options) {
+        if (easing) {
+            this._previousKeyframe['easing'] = easing;
+        }
+        const /** @type {?} */ params = (options && options.params) || {};
+        const /** @type {?} */ styles = flattenStyles(input, this._globalTimelineStyles);
+        Object.keys(styles).forEach(prop => {
+            const /** @type {?} */ val = interpolateParams(styles[prop], params, errors);
+            this._pendingStyles[prop] = val;
+            if (!this._localTimelineStyles.hasOwnProperty(prop)) {
+                this._backFill[prop] = this._globalTimelineStyles.hasOwnProperty(prop) ?
+                    this._globalTimelineStyles[prop] :
+                    AUTO_STYLE;
+            }
+            this._updateStyle(prop, val);
+        });
+    }
+    /**
+     * @return {?}
+     */
+    applyStylesToKeyframe() {
+        const /** @type {?} */ styles = this._pendingStyles;
+        const /** @type {?} */ props = Object.keys(styles);
+        if (props.length == 0)
+            return;
+        this._pendingStyles = {};
+        props.forEach(prop => {
+            const /** @type {?} */ val = styles[prop];
+            this._currentKeyframe[prop] = val;
+        });
+        Object.keys(this._localTimelineStyles).forEach(prop => {
+            if (!this._currentKeyframe.hasOwnProperty(prop)) {
+                this._currentKeyframe[prop] = this._localTimelineStyles[prop];
+            }
+        });
+    }
+    /**
+     * @return {?}
+     */
+    snapshotCurrentStyles() {
+        Object.keys(this._localTimelineStyles).forEach(prop => {
+            const /** @type {?} */ val = this._localTimelineStyles[prop];
+            this._pendingStyles[prop] = val;
+            this._updateStyle(prop, val);
+        });
+    }
+    /**
+     * @return {?}
+     */
+    getFinalKeyframe() { return this._keyframes.get(this.duration); }
+    /**
+     * @return {?}
+     */
+    get properties() {
+        const /** @type {?} */ properties = [];
+        for (let /** @type {?} */ prop in this._currentKeyframe) {
+            properties.push(prop);
+        }
+        return properties;
+    }
+    /**
+     * @param {?} timeline
+     * @return {?}
+     */
+    mergeTimelineCollectedStyles(timeline) {
+        Object.keys(timeline._styleSummary).forEach(prop => {
+            const /** @type {?} */ details0 = this._styleSummary[prop];
+            const /** @type {?} */ details1 = timeline._styleSummary[prop];
+            if (!details0 || details1.time > details0.time) {
+                this._updateStyle(prop, details1.value);
+            }
+        });
+    }
+    /**
+     * @return {?}
+     */
+    buildKeyframes() {
+        this.applyStylesToKeyframe();
+        const /** @type {?} */ preStyleProps = new Set();
+        const /** @type {?} */ postStyleProps = new Set();
+        const /** @type {?} */ isEmpty = this._keyframes.size === 1 && this.duration === 0;
+        let /** @type {?} */ finalKeyframes = [];
+        this._keyframes.forEach((keyframe, time) => {
+            const /** @type {?} */ finalKeyframe = copyStyles(keyframe, true);
+            Object.keys(finalKeyframe).forEach(prop => {
+                const /** @type {?} */ value = finalKeyframe[prop];
+                if (value == ɵPRE_STYLE) {
+                    preStyleProps.add(prop);
+                }
+                else if (value == AUTO_STYLE) {
+                    postStyleProps.add(prop);
+                }
+            });
+            if (!isEmpty) {
+                finalKeyframe['offset'] = time / this.duration;
+            }
+            finalKeyframes.push(finalKeyframe);
+        });
+        const /** @type {?} */ preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];
+        const /** @type {?} */ postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];
+        // special case for a 0-second animation (which is designed just to place styles onscreen)
+        if (isEmpty) {
+            const /** @type {?} */ kf0 = finalKeyframes[0];
+            const /** @type {?} */ kf1 = copyObj(kf0);
+            kf0['offset'] = 0;
+            kf1['offset'] = 1;
+            finalKeyframes = [kf0, kf1];
+        }
+        return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);
+    }
+}
+class SubTimelineBuilder extends TimelineBuilder {
+    /**
+     * @param {?} element
+     * @param {?} keyframes
+     * @param {?} preStyleProps
+     * @param {?} postStyleProps
+     * @param {?} timings
+     * @param {?=} _stretchStartingKeyframe
+     */
+    constructor(element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {
+        super(element, timings.delay);
+        this.element = element;
+        this.keyframes = keyframes;
+        this.preStyleProps = preStyleProps;
+        this.postStyleProps = postStyleProps;
+        this._stretchStartingKeyframe = _stretchStartingKeyframe;
+        this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };
+    }
+    /**
+     * @return {?}
+     */
+    containsAnimation() { return this.keyframes.length > 1; }
+    /**
+     * @return {?}
+     */
+    buildKeyframes() {
+        let /** @type {?} */ keyframes = this.keyframes;
+        let { delay, duration, easing } = this.timings;
+        if (this._stretchStartingKeyframe && delay) {
+            const /** @type {?} */ newKeyframes = [];
+            const /** @type {?} */ totalTime = duration + delay;
+            const /** @type {?} */ startingGap = delay / totalTime;
+            // the original starting keyframe now starts once the delay is done
+            const /** @type {?} */ newFirstKeyframe = copyStyles(keyframes[0], false);
+            newFirstKeyframe['offset'] = 0;
+            newKeyframes.push(newFirstKeyframe);
+            const /** @type {?} */ oldFirstKeyframe = copyStyles(keyframes[0], false);
+            oldFirstKeyframe['offset'] = roundOffset(startingGap);
+            newKeyframes.push(oldFirstKeyframe);
+            /*
+              When the keyframe is stretched then it means that the delay before the animation
+              starts is gone. Instead the first keyframe is placed at the start of the animation
+              and it is then copied to where it starts when the original delay is over. This basically
+              means nothing animates during that delay, but the styles are still renderered. For this
+              to work the original offset values that exist in the original keyframes must be "warped"
+              so that they can take the new keyframe + delay into account.
+      
+              delay=1000, duration=1000, keyframes = 0 .5 1
+      
+              turns into
+      
+              delay=0, duration=2000, keyframes = 0 .33 .66 1
+             */
+            // offsets between 1 ... n -1 are all warped by the keyframe stretch
+            const /** @type {?} */ limit = keyframes.length - 1;
+            for (let /** @type {?} */ i = 1; i <= limit; i++) {
+                let /** @type {?} */ kf = copyStyles(keyframes[i], false);
+                const /** @type {?} */ oldOffset = (kf['offset']);
+                const /** @type {?} */ timeAtKeyframe = delay + oldOffset * duration;
+                kf['offset'] = roundOffset(timeAtKeyframe / totalTime);
+                newKeyframes.push(kf);
+            }
+            // the new starting keyframe should be added at the start
+            duration = totalTime;
+            delay = 0;
+            easing = '';
+            keyframes = newKeyframes;
+        }
+        return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);
+    }
+}
+/**
+ * @param {?} offset
+ * @param {?=} decimalPoints
+ * @return {?}
+ */
+function roundOffset(offset, decimalPoints = 3) {
+    const /** @type {?} */ mult = Math.pow(10, decimalPoints - 1);
+    return Math.round(offset * mult) / mult;
+}
+/**
+ * @param {?} input
+ * @param {?} allStyles
+ * @return {?}
+ */
+function flattenStyles(input, allStyles) {
+    const /** @type {?} */ styles = {};
+    let /** @type {?} */ allProperties;
+    input.forEach(token => {
+        if (token === '*') {
+            allProperties = allProperties || Object.keys(allStyles);
+            allProperties.forEach(prop => { styles[prop] = AUTO_STYLE; });
+        }
+        else {
+            copyStyles(/** @type {?} */ (token), false, styles);
+        }
+    });
+    return styles;
+}
+
+/**
+ * @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
+ */
+class Animation {
+    /**
+     * @param {?} _driver
+     * @param {?} input
+     */
+    constructor(_driver, input) {
+        this._driver = _driver;
+        const errors = [];
+        const ast = buildAnimationAst(input, errors);
+        if (errors.length) {
+            const errorMessage = `animation validation failed:\n${errors.join("\n")}`;
+            throw new Error(errorMessage);
+        }
+        this._animationAst = ast;
+    }
+    /**
+     * @param {?} element
+     * @param {?} startingStyles
+     * @param {?} destinationStyles
+     * @param {?} options
+     * @param {?=} subInstructions
+     * @return {?}
+     */
+    buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {
+        const /** @type {?} */ start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : (startingStyles);
+        const /** @type {?} */ dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : (destinationStyles);
+        const /** @type {?} */ errors = [];
+        subInstructions = subInstructions || new ElementInstructionMap();
+        const /** @type {?} */ result = buildAnimationTimelines(this._driver, element, this._animationAst, start, dest, options, subInstructions, errors);
+        if (errors.length) {
+            const /** @type {?} */ errorMessage = `animation building failed:\n${errors.join("\n")}`;
+            throw new Error(errorMessage);
+        }
+        return result;
+    }
+}
+
+/**
+ * @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
+ */
+/**
+ * @experimental Animation support is experimental.
+ */
+/**
+ * @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
+ */ class AnimationStyleNormalizer {
+}
+/**
+ * @experimental Animation support is experimental.
+ */
+class NoopAnimationStyleNormalizer {
+    normalizePropertyName(propertyName, errors) { return propertyName; }
+    normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {
+        return value;
+    }
+}
+
+/**
+ * @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
+ */
+class WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {
+    /**
+     * @param {?} propertyName
+     * @param {?} errors
+     * @return {?}
+     */
+    normalizePropertyName(propertyName, errors) {
+        return dashCaseToCamelCase(propertyName);
+    }
+    /**
+     * @param {?} userProvidedProperty
+     * @param {?} normalizedProperty
+     * @param {?} value
+     * @param {?} errors
+     * @return {?}
+     */
+    normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {
+        let /** @type {?} */ unit = '';
+        const /** @type {?} */ strVal = value.toString().trim();
+        if (DIMENSIONAL_PROP_MAP[normalizedProperty] && value !== 0 && value !== '0') {
+            if (typeof value === 'number') {
+                unit = 'px';
+            }
+            else {
+                const /** @type {?} */ valAndSuffixMatch = value.match(/^[+-]?[\d\.]+([a-z]*)$/);
+                if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {
+                    errors.push(`Please provide a CSS unit value for ${userProvidedProperty}:${value}`);
+                }
+            }
+        }
+        return strVal + unit;
+    }
+}
+const DIMENSIONAL_PROP_MAP = makeBooleanMap('width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective'
+    .split(','));
+/**
+ * @param {?} keys
+ * @return {?}
+ */
+function makeBooleanMap(keys) {
+    const /** @type {?} */ map = {};
+    keys.forEach(key => map[key] = true);
+    return map;
+}
+
+/**
+ * @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
+ */
+/**
+ * @param {?} element
+ * @param {?} triggerName
+ * @param {?} fromState
+ * @param {?} toState
+ * @param {?} isRemovalTransition
+ * @param {?} fromStyles
+ * @param {?} toStyles
+ * @param {?} timelines
+ * @param {?} queriedElements
+ * @param {?} preStyleProps
+ * @param {?} postStyleProps
+ * @param {?=} errors
+ * @return {?}
+ */
+function createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, errors) {
+    return {
+        type: 0 /* TransitionAnimation */,
+        element,
+        triggerName,
+        isRemovalTransition,
+        fromState,
+        fromStyles,
+        toState,
+        toStyles,
+        timelines,
+        queriedElements,
+        preStyleProps,
+        postStyleProps,
+        errors
+    };
+}
+
+/**
+ * @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 EMPTY_OBJECT = {};
+class AnimationTransitionFactory {
+    /**
+     * @param {?} _triggerName
+     * @param {?} ast
+     * @param {?} _stateStyles
+     */
+    constructor(_triggerName, ast, _stateStyles) {
+        this._triggerName = _triggerName;
+        this.ast = ast;
+        this._stateStyles = _stateStyles;
+    }
+    /**
+     * @param {?} currentState
+     * @param {?} nextState
+     * @return {?}
+     */
+    match(currentState, nextState) {
+        return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState);
+    }
+    /**
+     * @param {?} stateName
+     * @param {?} params
+     * @param {?} errors
+     * @return {?}
+     */
+    buildStyles(stateName, params, errors) {
+        const /** @type {?} */ backupStateStyler = this._stateStyles['*'];
+        const /** @type {?} */ stateStyler = this._stateStyles[stateName];
+        const /** @type {?} */ backupStyles = backupStateStyler ? backupStateStyler.buildStyles(params, errors) : {};
+        return stateStyler ? stateStyler.buildStyles(params, errors) : backupStyles;
+    }
+    /**
+     * @param {?} driver
+     * @param {?} element
+     * @param {?} currentState
+     * @param {?} nextState
+     * @param {?=} currentOptions
+     * @param {?=} nextOptions
+     * @param {?=} subInstructions
+     * @return {?}
+     */
+    build(driver, element, currentState, nextState, currentOptions, nextOptions, subInstructions) {
+        const /** @type {?} */ errors = [];
+        const /** @type {?} */ transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;
+        const /** @type {?} */ currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;
+        const /** @type {?} */ currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);
+        const /** @type {?} */ nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;
+        const /** @type {?} */ nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);
+        const /** @type {?} */ queriedElements = new Set();
+        const /** @type {?} */ preStyleMap = new Map();
+        const /** @type {?} */ postStyleMap = new Map();
+        const /** @type {?} */ isRemoval = nextState === 'void';
+        const /** @type {?} */ animationOptions = { params: Object.assign({}, transitionAnimationParams, nextAnimationParams) };
+        const /** @type {?} */ timelines = buildAnimationTimelines(driver, element, this.ast.animation, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);
+        if (errors.length) {
+            return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, errors);
+        }
+        timelines.forEach(tl => {
+            const /** @type {?} */ elm = tl.element;
+            const /** @type {?} */ preProps = getOrSetAsInMap(preStyleMap, elm, {});
+            tl.preStyleProps.forEach(prop => preProps[prop] = true);
+            const /** @type {?} */ postProps = getOrSetAsInMap(postStyleMap, elm, {});
+            tl.postStyleProps.forEach(prop => postProps[prop] = true);
+            if (elm !== element) {
+                queriedElements.add(elm);
+            }
+        });
+        const /** @type {?} */ queriedElementsList = iteratorToArray(queriedElements.values());
+        return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap);
+    }
+}
+/**
+ * @param {?} matchFns
+ * @param {?} currentState
+ * @param {?} nextState
+ * @return {?}
+ */
+function oneOrMoreTransitionsMatch(matchFns, currentState, nextState) {
+    return matchFns.some(fn => fn(currentState, nextState));
+}
+class AnimationStateStyles {
+    /**
+     * @param {?} styles
+     * @param {?} defaultParams
+     */
+    constructor(styles, defaultParams) {
+        this.styles = styles;
+        this.defaultParams = defaultParams;
+    }
+    /**
+     * @param {?} params
+     * @param {?} errors
+     * @return {?}
+     */
+    buildStyles(params, errors) {
+        const /** @type {?} */ finalStyles = {};
+        const /** @type {?} */ combinedParams = copyObj(this.defaultParams);
+        Object.keys(params).forEach(key => {
+            const /** @type {?} */ value = params[key];
+            if (value != null) {
+                combinedParams[key] = value;
+            }
+        });
+        this.styles.styles.forEach(value => {
+            if (typeof value !== 'string') {
+                const /** @type {?} */ styleObj = (value);
+                Object.keys(styleObj).forEach(prop => {
+                    let /** @type {?} */ val = styleObj[prop];
+                    if (val.length > 1) {
+                        val = interpolateParams(val, combinedParams, errors);
+                    }
+                    finalStyles[prop] = val;
+                });
+            }
+        });
+        return finalStyles;
+    }
+}
+
+/**
+ * @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
+ */
+/**
+ * \@experimental Animation support is experimental.
+ * @param {?} name
+ * @param {?} ast
+ * @return {?}
+ */
+function buildTrigger(name, ast) {
+    return new AnimationTrigger(name, ast);
+}
+/**
+ * \@experimental Animation support is experimental.
+ */
+class AnimationTrigger {
+    /**
+     * @param {?} name
+     * @param {?} ast
+     */
+    constructor(name, ast) {
+        this.name = name;
+        this.ast = ast;
+        this.transitionFactories = [];
+        this.states = {};
+        ast.states.forEach(ast => {
+            const defaultParams = (ast.options && ast.options.params) || {};
+            this.states[ast.name] = new AnimationStateStyles(ast.style, defaultParams);
+        });
+        balanceProperties(this.states, 'true', '1');
+        balanceProperties(this.states, 'false', '0');
+        ast.transitions.forEach(ast => {
+            this.transitio

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/overlay.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/overlay.es5.js.map b/node_modules/@angular/cdk/esm5/overlay.es5.js.map
new file mode 100644
index 0000000..3f626a8
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/overlay.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"overlay.es5.js","sources":["../../packages/cdk/esm5/overlay/scroll/noop-scroll-strategy.js","../../packages/cdk/esm5/overlay/overlay-config.js","../../packages/cdk/esm5/overlay/overlay-ref.js","../../packages/cdk/esm5/overlay/position/connected-position.js","../../packages/cdk/esm5/overlay/position/scroll-clip.js","../../packages/cdk/esm5/overlay/position/connected-position-strategy.js","../../packages/cdk/esm5/overlay/position/global-position-strategy.js","../../packages/cdk/esm5/overlay/position/overlay-position-builder.js","../../packages/cdk/esm5/overlay/overlay-container.js","../../packages/cdk/esm5/overlay/scroll/scroll-strategy.js","../../packages/cdk/esm5/overlay/scroll/close-scroll-strategy.js","../../packages/cdk/esm5/overlay/scroll/block-scroll-strategy.js","../../packages/cdk/esm5/overlay/scroll/reposition-scroll-strategy.js","../../packages/cdk/esm5/overlay/scroll/scroll-strategy-options.js","../../packages/cdk/esm5/overlay/overlay.js","../../packag
 es/cdk/esm5/overlay/fullscreen-overlay-container.js","../../packages/cdk/esm5/overlay/overlay-directives.js","../../packages/cdk/esm5/overlay/overlay-module.js","../../packages/cdk/esm5/overlay/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 * Scroll strategy that doesn't do anything.\n */\nvar NoopScrollStrategy = (function () {\n    function NoopScrollStrategy() {\n    }\n    /**\n     * @return {?}\n     */\n    NoopScrollStrategy.prototype.enable = function () { };\n    /**\n     * @return {?}\n     */\n    NoopScrollStrategy.prototype.disable = function () { };\n    /**\n     * @return {?}\n     */\n    NoopScrollStrategy.prototype.attach = function () { };\n    return NoopScrollStrategy;\n}());\nexport { NoopScrollStrategy };\n//# sourceMappingURL=noop-scroll-strategy.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 { NoopScrollStrategy } from './scroll/noop-scroll-strategy';\n/**\n * OverlayConfig captures the initial configuration used when opening an overlay.\n */\nvar OverlayConfig = (function () {\n    /**\n     * @param {?=} config\n     */\n    function OverlayConfig(config) {\n        var _this = this;\n        /**\n         * Strategy to be used when handling scroll events while the overlay is open.\n         */\n        this.scrollStrategy = new NoopScrollStrategy();\n        /**\n         * Custom class to add to the overlay pane.\n         */\n        this.panelClass = '';\n        /**\n         * Whether the overlay has a backdrop.\n         */\n        this.hasBackdrop = false;\n        /**\n         * Custom class to add to the backdrop\n         */\n        this.backdrop
 Class = 'cdk-overlay-dark-backdrop';\n        /**\n         * The direction of the text in the overlay panel.\n         */\n        this.direction = 'ltr';\n        if (config) {\n            Object.keys(config).forEach(function (key) { return _this[key] = config[key]; });\n        }\n    }\n    return OverlayConfig;\n}());\nexport { OverlayConfig };\nfunction OverlayConfig_tsickle_Closure_declarations() {\n    /**\n     * Strategy with which to position the overlay.\n     * @type {?}\n     */\n    OverlayConfig.prototype.positionStrategy;\n    /**\n     * Strategy to be used when handling scroll events while the overlay is open.\n     * @type {?}\n     */\n    OverlayConfig.prototype.scrollStrategy;\n    /**\n     * Custom class to add to the overlay pane.\n     * @type {?}\n     */\n    OverlayConfig.prototype.panelClass;\n    /**\n     * Whether the overlay has a backdrop.\n     * @type {?}\n     */\n    OverlayConfig.prototype.hasBackdrop;\n    /**\n     * Custom class to add to
  the backdrop\n     * @type {?}\n     */\n    OverlayConfig.prototype.backdropClass;\n    /**\n     * The width of the overlay panel. If a number is provided, pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.width;\n    /**\n     * The height of the overlay panel. If a number is provided, pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.height;\n    /**\n     * The min-width of the overlay panel. If a number is provided, pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.minWidth;\n    /**\n     * The min-height of the overlay panel. If a number is provided, pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.minHeight;\n    /**\n     * The max-width of the overlay panel. If a number is provided, pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.maxWidth;\n    /**\n     * The max-height of the overlay panel. If a number is provided
 , pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.maxHeight;\n    /**\n     * The direction of the text in the overlay panel.\n     * @type {?}\n     */\n    OverlayConfig.prototype.direction;\n}\n//# sourceMappingURL=overlay-config.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 * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nvar OverlayRef = (function () {\n    /**\n     * @param {?} _portalHost\n     * @param {?} _pane\n     * @param {?} _config\n     * @param {?} _ngZone\n     */\n    function OverlayRef(_portalHost, _pane, _config, _ngZone) {\n        this._portalHost = _portalHost;\n        this._pane = _pane;\n        this._config = _config;\n     
    this._ngZone = _ngZone;\n        this._backdropElement = null;\n        this._backdropClick = new Subject();\n        this._attachments = new Subject();\n        this._detachments = new Subject();\n        if (_config.scrollStrategy) {\n            _config.scrollStrategy.attach(this);\n        }\n    }\n    Object.defineProperty(OverlayRef.prototype, \"overlayElement\", {\n        /**\n         * The overlay's HTML element\n         * @return {?}\n         */\n        get: function () {\n            return this._pane;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Attaches the overlay to a portal instance and adds the backdrop.\n     * @param {?} portal Portal instance to which to attach the overlay.\n     * @return {?} The portal attachment result.\n     */\n    OverlayRef.prototype.attach = function (portal) {\n        var _this = this;\n        var /** @type {?} */ attachResult = this._portalHost.attach(portal);\n        if (this._
 config.positionStrategy) {\n            this._config.positionStrategy.attach(this);\n        }\n        // Update the pane element with the given configuration.\n        this._updateStackingOrder();\n        this.updateSize();\n        this.updateDirection();\n        this.updatePosition();\n        if (this._config.scrollStrategy) {\n            this._config.scrollStrategy.enable();\n        }\n        // Enable pointer events for the overlay pane element.\n        this._togglePointerEvents(true);\n        if (this._config.hasBackdrop) {\n            this._attachBackdrop();\n        }\n        if (this._config.panelClass) {\n            // We can't do a spread here, because IE doesn't support setting multiple classes.\n            if (Array.isArray(this._config.panelClass)) {\n                this._config.panelClass.forEach(function (cls) { return _this._pane.classList.add(cls); });\n            }\n            else {\n                this._pane.classList.add(this._config.panelClass
 );\n            }\n        }\n        // Only emit the `attachments` event once all other setup is done.\n        this._attachments.next();\n        return attachResult;\n    };\n    /**\n     * Detaches an overlay from a portal.\n     * @return {?} The portal detachment result.\n     */\n    OverlayRef.prototype.detach = function () {\n        this.detachBackdrop();\n        // When the overlay is detached, the pane element should disable pointer events.\n        // This is necessary because otherwise the pane element will cover the page and disable\n        // pointer events therefore. Depends on the position strategy and the applied pane boundaries.\n        this._togglePointerEvents(false);\n        if (this._config.positionStrategy && this._config.positionStrategy.detach) {\n            this._config.positionStrategy.detach();\n        }\n        if (this._config.scrollStrategy) {\n            this._config.scrollStrategy.disable();\n        }\n        var /** @type {?} */ detach
 mentResult = this._portalHost.detach();\n        // Only emit after everything is detached.\n        this._detachments.next();\n        return detachmentResult;\n    };\n    /**\n     * Cleans up the overlay from the DOM.\n     * @return {?}\n     */\n    OverlayRef.prototype.dispose = function () {\n        if (this._config.positionStrategy) {\n            this._config.positionStrategy.dispose();\n        }\n        if (this._config.scrollStrategy) {\n            this._config.scrollStrategy.disable();\n        }\n        this.detachBackdrop();\n        this._portalHost.dispose();\n        this._attachments.complete();\n        this._backdropClick.complete();\n        this._detachments.next();\n        this._detachments.complete();\n    };\n    /**\n     * Checks whether the overlay has been attached.\n     * @return {?}\n     */\n    OverlayRef.prototype.hasAttached = function () {\n        return this._portalHost.hasAttached();\n    };\n    /**\n     * Returns an observable that e
 mits when the backdrop has been clicked.\n     * @return {?}\n     */\n    OverlayRef.prototype.backdropClick = function () {\n        return this._backdropClick.asObservable();\n    };\n    /**\n     * Returns an observable that emits when the overlay has been attached.\n     * @return {?}\n     */\n    OverlayRef.prototype.attachments = function () {\n        return this._attachments.asObservable();\n    };\n    /**\n     * Returns an observable that emits when the overlay has been detached.\n     * @return {?}\n     */\n    OverlayRef.prototype.detachments = function () {\n        return this._detachments.asObservable();\n    };\n    /**\n     * Gets the current config of the overlay.\n     * @return {?}\n     */\n    OverlayRef.prototype.getConfig = function () {\n        return this._config;\n    };\n    /**\n     * Updates the position of the overlay based on the position strategy.\n     * @return {?}\n     */\n    OverlayRef.prototype.updatePosition = function () {\n        i
 f (this._config.positionStrategy) {\n            this._config.positionStrategy.apply();\n        }\n    };\n    /**\n     * Updates the text direction of the overlay panel.\n     * @return {?}\n     */\n    OverlayRef.prototype.updateDirection = function () {\n        this._pane.setAttribute('dir', /** @type {?} */ ((this._config.direction)));\n    };\n    /**\n     * Updates the size of the overlay based on the overlay config.\n     * @return {?}\n     */\n    OverlayRef.prototype.updateSize = function () {\n        if (this._config.width || this._config.width === 0) {\n            this._pane.style.width = formatCssUnit(this._config.width);\n        }\n        if (this._config.height || this._config.height === 0) {\n            this._pane.style.height = formatCssUnit(this._config.height);\n        }\n        if (this._config.minWidth || this._config.minWidth === 0) {\n            this._pane.style.minWidth = formatCssUnit(this._config.minWidth);\n        }\n        if (this._config.
 minHeight || this._config.minHeight === 0) {\n            this._pane.style.minHeight = formatCssUnit(this._config.minHeight);\n        }\n        if (this._config.maxWidth || this._config.maxWidth === 0) {\n            this._pane.style.maxWidth = formatCssUnit(this._config.maxWidth);\n        }\n        if (this._config.maxHeight || this._config.maxHeight === 0) {\n            this._pane.style.maxHeight = formatCssUnit(this._config.maxHeight);\n        }\n    };\n    /**\n     * Toggles the pointer events for the overlay pane element.\n     * @param {?} enablePointer\n     * @return {?}\n     */\n    OverlayRef.prototype._togglePointerEvents = function (enablePointer) {\n        this._pane.style.pointerEvents = enablePointer ? 'auto' : 'none';\n    };\n    /**\n     * Attaches a backdrop for this overlay.\n     * @return {?}\n     */\n    OverlayRef.prototype._attachBackdrop = function () {\n        var _this = this;\n        this._backdropElement = document.createElement('div');\n 
        this._backdropElement.classList.add('cdk-overlay-backdrop');\n        if (this._config.backdropClass) {\n            this._backdropElement.classList.add(this._config.backdropClass);\n        } /** @type {?} */\n        ((\n        // Insert the backdrop before the pane in the DOM order,\n        // in order to handle stacked overlays properly.\n        this._pane.parentElement)).insertBefore(this._backdropElement, this._pane);\n        // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n        // action desired when such a click occurs (usually closing the overlay).\n        this._backdropElement.addEventListener('click', function () { return _this._backdropClick.next(null); });\n        // Add class to fade-in the backdrop after one frame.\n        requestAnimationFrame(function () {\n            if (_this._backdropElement) {\n                _this._backdropElement.classList.add('cdk-overlay-backdrop-showing');\n            }\n        });\
 n    };\n    /**\n     * Updates the stacking order of the element, moving it to the top if necessary.\n     * This is required in cases where one overlay was detached, while another one,\n     * that should be behind it, was destroyed. The next time both of them are opened,\n     * the stacking will be wrong, because the detached element's pane will still be\n     * in its original DOM position.\n     * @return {?}\n     */\n    OverlayRef.prototype._updateStackingOrder = function () {\n        if (this._pane.nextSibling) {\n            ((this._pane.parentNode)).appendChild(this._pane);\n        }\n    };\n    /**\n     * Detaches the backdrop (if any) associated with the overlay.\n     * @return {?}\n     */\n    OverlayRef.prototype.detachBackdrop = function () {\n        var _this = this;\n        var /** @type {?} */ backdropToDetach = this._backdropElement;\n        if (backdropToDetach) {\n            var /** @type {?} */ finishDetach_1 = function () {\n                // It 
 may not be attached to anything in certain cases (e.g. unit tests).\n                if (backdropToDetach && backdropToDetach.parentNode) {\n                    backdropToDetach.parentNode.removeChild(backdropToDetach);\n                }\n                // It is possible that a new portal has been attached to this overlay since we started\n                // removing the backdrop. If that is the case, only clear the backdrop reference if it\n                // is still the same instance that we started to remove.\n                if (_this._backdropElement == backdropToDetach) {\n                    _this._backdropElement = null;\n                }\n            };\n            backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n            if (this._config.backdropClass) {\n                backdropToDetach.classList.remove(this._config.backdropClass);\n            }\n            backdropToDetach.addEventListener('transitionend', finishDetach_1);\n            // If 
 the backdrop doesn't have a transition, the `transitionend` event won't fire.\n            // In this case we make it unclickable and we try to remove it after a delay.\n            backdropToDetach.style.pointerEvents = 'none';\n            // Run this outside the Angular zone because there's nothing that Angular cares about.\n            // If it were to run inside the Angular zone, every test that used Overlay would have to be\n            // either async or fakeAsync.\n            this._ngZone.runOutsideAngular(function () {\n                setTimeout(finishDetach_1, 500);\n            });\n        }\n    };\n    return OverlayRef;\n}());\nexport { OverlayRef };\nfunction OverlayRef_tsickle_Closure_declarations() {\n    /** @type {?} */\n    OverlayRef.prototype._backdropElement;\n    /** @type {?} */\n    OverlayRef.prototype._backdropClick;\n    /** @type {?} */\n    OverlayRef.prototype._attachments;\n    /** @type {?} */\n    OverlayRef.prototype._detachments;\n    /** @typ
 e {?} */\n    OverlayRef.prototype._portalHost;\n    /** @type {?} */\n    OverlayRef.prototype._pane;\n    /** @type {?} */\n    OverlayRef.prototype._config;\n    /** @type {?} */\n    OverlayRef.prototype._ngZone;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction formatCssUnit(value) {\n    return typeof value === 'string' ? (value) : value + \"px\";\n}\n//# sourceMappingURL=overlay-ref.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/** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */\nimport { Optional } from '@angular/core';\n/**\n * The points of the origin element and the overlay element to connect.\n */\nvar ConnectionPositionPair = (function () {\n    /**\n     * @param {?} origin\n     * @param {?} overlay\n     */\n    function ConnectionPosition
 Pair(origin, overlay) {\n        this.originX = origin.originX;\n        this.originY = origin.originY;\n        this.overlayX = overlay.overlayX;\n        this.overlayY = overlay.overlayY;\n    }\n    return ConnectionPositionPair;\n}());\nexport { ConnectionPositionPair };\nfunction ConnectionPositionPair_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ConnectionPositionPair.prototype.originX;\n    /** @type {?} */\n    ConnectionPositionPair.prototype.originY;\n    /** @type {?} */\n    ConnectionPositionPair.prototype.overlayX;\n    /** @type {?} */\n    ConnectionPositionPair.prototype.overlayY;\n}\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are 
 outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n *       -----------                    -----------\n *       | outside |                    | clipped |\n *       |  view   |              --------------------------\n *       |         |              |     |         |        |\n *       ----------               |     -----------        |\n *  --------------------------    |                        |\n *  |                        |    |      Scrollable        |\n *  |                        |    |                        |\n *  |                        |     --------------------------\n *  |      Scrollable        |\n *  |                        |\n *  --------------------------\n */\nvar ScrollingVisibility = (function () {\n    function ScrollingVisibility() {\n    }\n    return ScrollingVisibility;\n}());\nexport { ScrollingVisibility };\nfunction ScrollingVisibility_tsickle_Clo
 sure_declarations() {\n    /** @type {?} */\n    ScrollingVisibility.prototype.isOriginClipped;\n    /** @type {?} */\n    ScrollingVisibility.prototype.isOriginOutsideView;\n    /** @type {?} */\n    ScrollingVisibility.prototype.isOverlayClipped;\n    /** @type {?} */\n    ScrollingVisibility.prototype.isOverlayOutsideView;\n}\n/**\n * The change event emitted by the strategy when a fallback position is used.\n */\nvar ConnectedOverlayPositionChange = (function () {\n    /**\n     * @param {?} connectionPair\n     * @param {?} scrollableViewProperties\n     */\n    function ConnectedOverlayPositionChange(connectionPair, scrollableViewProperties) {\n        this.connectionPair = connectionPair;\n        this.scrollableViewProperties = scrollableViewProperties;\n    }\n    /**\n     * @nocollapse\n     */\n    ConnectedOverlayPositionChange.ctorParameters = function () { return [\n        { type: ConnectionPositionPair, },\n        { type: ScrollingVisibility, decorators: [{ type: O
 ptional },] },\n    ]; };\n    return ConnectedOverlayPositionChange;\n}());\nexport { ConnectedOverlayPositionChange };\nfunction ConnectedOverlayPositionChange_tsickle_Closure_declarations() {\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ConnectedOverlayPositionChange.ctorParameters;\n    /** @type {?} */\n    ConnectedOverlayPositionChange.prototype.connectionPair;\n    /** @type {?} */\n    ConnectedOverlayPositionChange.prototype.scrollableViewProperties;\n}\n//# sourceMappingURL=connected-position.js.map","/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * \\@docs-private\n * @param {?} element Dimensions of the element (from getBoundingClientRect)\n * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @return {?} Whether the element is scrolled out of view\n */\nexport function isElementScrolledOutsideView(element, scrollContainers) {\n    return scro
 llContainers.some(function (containerBounds) {\n        var /** @type {?} */ outsideAbove = element.bottom < containerBounds.top;\n        var /** @type {?} */ outsideBelow = element.top > containerBounds.bottom;\n        var /** @type {?} */ outsideLeft = element.right < containerBounds.left;\n        var /** @type {?} */ outsideRight = element.left > containerBounds.right;\n        return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n    });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * \\@docs-private\n * @param {?} element Dimensions of the element (from getBoundingClientRect)\n * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @return {?} Whether the element is clipped\n */\nexport function isElementClippedByScrolling(element, scrollContainers) {\n    return scrollContainers.some(function (scrollContainerRect) {\n        var /** @type {?} */ clippedAbove = element.
 top < scrollContainerRect.top;\n        var /** @type {?} */ clippedBelow = element.bottom > scrollContainerRect.bottom;\n        var /** @type {?} */ clippedLeft = element.left < scrollContainerRect.left;\n        var /** @type {?} */ clippedRight = element.right > scrollContainerRect.right;\n        return clippedAbove || clippedBelow || clippedLeft || clippedRight;\n    });\n}\n//# sourceMappingURL=scroll-clip.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 { ConnectionPositionPair, ConnectedOverlayPositionChange, } from './connected-position';\nimport { Subject } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { isElementScrolledOutsideView, isElementClippedByScrolling } from './scroll-clip';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is 
 given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nvar ConnectedPositionStrategy = (function () {\n    /**\n     * @param {?} originPos\n     * @param {?} overlayPos\n     * @param {?} _connectedTo\n     * @param {?} _viewportRuler\n     */\n    function ConnectedPositionStrategy(originPos, overlayPos, _connectedTo, _viewportRuler) {\n        this._connectedTo = _connectedTo;\n        this._viewportRuler = _viewportRuler;\n        /**\n         * Layout direction of the position strategy.\n         */\n        this._dir = 'ltr';\n        /**\n         * The offset in pixels for the overlay connection point on the x-axis\n         */\n        this._offsetX = 0;\n        /**\n         * The offset in pixels for th
 e overlay connection point on the y-axis\n         */\n        this._offsetY = 0;\n        /**\n         * The Scrollable containers used to check scrollable view properties on position change.\n         */\n        this.scrollables = [];\n        /**\n         * Subscription to viewport resize events.\n         */\n        this._resizeSubscription = Subscription.EMPTY;\n        /**\n         * Ordered list of preferred positions, from most to least desirable.\n         */\n        this._preferredPositions = [];\n        this._onPositionChange = new Subject();\n        this._origin = this._connectedTo.nativeElement;\n        this.withFallbackPosition(originPos, overlayPos);\n    }\n    Object.defineProperty(ConnectedPositionStrategy.prototype, \"_isRtl\", {\n        /**\n         * Whether the we're dealing with an RTL context\n         * @return {?}\n         */\n        get: function () {\n            return this._dir === 'rtl';\n        },\n        enumerable: true,\n        conf
 igurable: true\n    });\n    Object.defineProperty(ConnectedPositionStrategy.prototype, \"onPositionChange\", {\n        /**\n         * Emits an event when the connection point changes.\n         * @return {?}\n         */\n        get: function () {\n            return this._onPositionChange.asObservable();\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedPositionStrategy.prototype, \"positions\", {\n        /**\n         * Ordered list of preferred positions, from most to least desirable.\n         * @return {?}\n         */\n        get: function () {\n            return this._preferredPositions;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.attach = function (overlayRef) {\n        var _this = this;\n        this._overlayRef = overlayRef;\n        this._pane = overlayRef.overlayE
 lement;\n        this._resizeSubscription.unsubscribe();\n        this._resizeSubscription = this._viewportRuler.change().subscribe(function () { return _this.apply(); });\n    };\n    /**\n     * Performs any cleanup after the element is destroyed.\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.dispose = function () {\n        this._resizeSubscription.unsubscribe();\n    };\n    /**\n     * \\@docs-private\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.detach = function () {\n        this._resizeSubscription.unsubscribe();\n    };\n    /**\n     * Updates the position of the overlay element, using whichever preferred position relative\n     * to the origin fits on-screen.\n     * \\@docs-private\n     *\n     * @return {?} Resolves when the styles have been applied.\n     */\n    ConnectedPositionStrategy.prototype.apply = function () {\n        // We need the bounding rects for the origin and the overlay to determine how to position\n 
        // the overlay relative to the origin.\n        var /** @type {?} */ element = this._pane;\n        var /** @type {?} */ originRect = this._origin.getBoundingClientRect();\n        var /** @type {?} */ overlayRect = element.getBoundingClientRect();\n        // We use the viewport rect to determine whether a position would go off-screen.\n        var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n        // Fallback point if none of the fallbacks fit into the viewport.\n        var /** @type {?} */ fallbackPoint;\n        var /** @type {?} */ fallbackPosition;\n        // We want to place the overlay in the first of the preferred positions such that the\n        // overlay fits on-screen.\n        for (var _i = 0, _a = this._preferredPositions; _i < _a.length; _i++) {\n            var pos = _a[_i];\n            // Get the (x, y) point of connection on the origin, and then use that to get the\n            // (top, left) coordinate for the overlay at `po
 s`.\n            var /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, pos);\n            var /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, pos);\n            // If the overlay in the calculated position fits on-screen, put it there and we're done.\n            if (overlayPoint.fitsInViewport) {\n                this._setElementPosition(element, overlayRect, overlayPoint, pos);\n                // Save the last connected position in case the position needs to be re-calculated.\n                this._lastConnectedPosition = pos;\n                return;\n            }\n            else if (!fallbackPoint || fallbackPoint.visibleArea < overlayPoint.visibleArea) {\n                fallbackPoint = overlayPoint;\n                fallbackPosition = pos;\n            }\n        }\n        // If none of the preferred positions were in the viewport, take the one\n        // with the largest visible area.\n        this._s
 etElementPosition(element, overlayRect, /** @type {?} */ ((fallbackPoint)), /** @type {?} */ ((fallbackPosition)));\n    };\n    /**\n     * This re-aligns the overlay element with the trigger in its last calculated position,\n     * even if a position higher in the \"preferred positions\" list would now fit. This\n     * allows one to re-align the panel without changing the orientation of the panel.\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.recalculateLastPosition = function () {\n        var /** @type {?} */ originRect = this._origin.getBoundingClientRect();\n        var /** @type {?} */ overlayRect = this._pane.getBoundingClientRect();\n        var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n        var /** @type {?} */ lastPosition = this._lastConnectedPosition || this._preferredPositions[0];\n        var /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, lastPosition);\n        var /** @type {?} */ o
 verlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, lastPosition);\n        this._setElementPosition(this._pane, overlayRect, overlayPoint, lastPosition);\n    };\n    /**\n     * Sets the list of Scrollable containers that host the origin element so that\n     * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n     * Scrollable must be an ancestor element of the strategy's origin element.\n     * @param {?} scrollables\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.withScrollableContainers = function (scrollables) {\n        this.scrollables = scrollables;\n    };\n    /**\n     * Adds a new preferred fallback position.\n     * @param {?} originPos\n     * @param {?} overlayPos\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.withFallbackPosition = function (originPos, overlayPos) {\n        this._preferredPositions.push(new ConnectionPositionPair(originPos, overlayPos));\
 n        return this;\n    };\n    /**\n     * Sets the layout direction so the overlay's position can be adjusted to match.\n     * @param {?} dir New layout direction.\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.withDirection = function (dir) {\n        this._dir = dir;\n        return this;\n    };\n    /**\n     * Sets an offset for the overlay's connection point on the x-axis\n     * @param {?} offset New offset in the X axis.\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.withOffsetX = function (offset) {\n        this._offsetX = offset;\n        return this;\n    };\n    /**\n     * Sets an offset for the overlay's connection point on the y-axis\n     * @param {?} offset New offset in the Y axis.\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.withOffsetY = function (offset) {\n        this._offsetY = offset;\n        return this;\n    };\n    /**\n     * Gets the horizontal (x) \"start\" dimension based o
 n whether the overlay is in an RTL context.\n     * @param {?} rect\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._getStartX = function (rect) {\n        return this._isRtl ? rect.right : rect.left;\n    };\n    /**\n     * Gets the horizontal (x) \"end\" dimension based on whether the overlay is in an RTL context.\n     * @param {?} rect\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._getEndX = function (rect) {\n        return this._isRtl ? rect.left : rect.right;\n    };\n    /**\n     * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n     * @param {?} originRect\n     * @param {?} pos\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._getOriginConnectionPoint = function (originRect, pos) {\n        var /** @type {?} */ originStartX = this._getStartX(originRect);\n        var /** @type {?} */ originEndX = this._getEndX(originRect);\n        var /** @type {?} */ x;\n   
      if (pos.originX == 'center') {\n            x = originStartX + (originRect.width / 2);\n        }\n        else {\n            x = pos.originX == 'start' ? originStartX : originEndX;\n        }\n        var /** @type {?} */ y;\n        if (pos.originY == 'center') {\n            y = originRect.top + (originRect.height / 2);\n        }\n        else {\n            y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n        }\n        return { x: x, y: y };\n    };\n    /**\n     * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n     * origin point to which the overlay should be connected, as well as how much of the element\n     * would be inside the viewport at that position.\n     * @param {?} originPoint\n     * @param {?} overlayRect\n     * @param {?} viewportRect\n     * @param {?} pos\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._getOverlayPoint = function (originPoint, overlayRect, viewport
 Rect, pos) {\n        // Calculate the (overlayStartX, overlayStartY), the start of the potential overlay position\n        // relative to the origin point.\n        var /** @type {?} */ overlayStartX;\n        if (pos.overlayX == 'center') {\n            overlayStartX = -overlayRect.width / 2;\n        }\n        else if (pos.overlayX === 'start') {\n            overlayStartX = this._isRtl ? -overlayRect.width : 0;\n        }\n        else {\n            overlayStartX = this._isRtl ? 0 : -overlayRect.width;\n        }\n        var /** @type {?} */ overlayStartY;\n        if (pos.overlayY == 'center') {\n            overlayStartY = -overlayRect.height / 2;\n        }\n        else {\n            overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n        }\n        // The (x, y) coordinates of the overlay.\n        var /** @type {?} */ x = originPoint.x + overlayStartX + this._offsetX;\n        var /** @type {?} */ y = originPoint.y + overlayStartY + this._offsetY;\n  
       // How much the overlay would overflow at this position, on each side.\n        var /** @type {?} */ leftOverflow = 0 - x;\n        var /** @type {?} */ rightOverflow = (x + overlayRect.width) - viewportRect.width;\n        var /** @type {?} */ topOverflow = 0 - y;\n        var /** @type {?} */ bottomOverflow = (y + overlayRect.height) - viewportRect.height;\n        // Visible parts of the element on each axis.\n        var /** @type {?} */ visibleWidth = this._subtractOverflows(overlayRect.width, leftOverflow, rightOverflow);\n        var /** @type {?} */ visibleHeight = this._subtractOverflows(overlayRect.height, topOverflow, bottomOverflow);\n        // The area of the element that's within the viewport.\n        var /** @type {?} */ visibleArea = visibleWidth * visibleHeight;\n        var /** @type {?} */ fitsInViewport = (overlayRect.width * overlayRect.height) === visibleArea;\n        return { x: x, y: y, fitsInViewport: fitsInViewport, visibleArea: visibleArea };\n   
  };\n    /**\n     * Gets the view properties of the trigger and overlay, including whether they are clipped\n     * or completely outside the view of any of the strategy's scrollables.\n     * @param {?} overlay\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._getScrollVisibility = function (overlay) {\n        var /** @type {?} */ originBounds = this._origin.getBoundingClientRect();\n        var /** @type {?} */ overlayBounds = overlay.getBoundingClientRect();\n        var /** @type {?} */ scrollContainerBounds = this.scrollables.map(function (s) { return s.getElementRef().nativeElement.getBoundingClientRect(); });\n        return {\n            isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n            isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n            isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n            isOverlayOutsideView: is
 ElementScrolledOutsideView(overlayBounds, scrollContainerBounds),\n        };\n    };\n    /**\n     * Physically positions the overlay element to the given coordinate.\n     * @param {?} element\n     * @param {?} overlayRect\n     * @param {?} overlayPoint\n     * @param {?} pos\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._setElementPosition = function (element, overlayRect, overlayPoint, pos) {\n        // We want to set either `top` or `bottom` based on whether the overlay wants to appear above\n        // or below the origin and the direction in which the element will expand.\n        var /** @type {?} */ verticalStyleProperty = pos.overlayY === 'bottom' ? 'bottom' : 'top';\n        // When using `bottom`, we adjust the y position such that it is the distance\n        // from the bottom of the viewport rather than the top.\n        var /** @type {?} */ y = verticalStyleProperty === 'top' ?\n            overlayPoint.y :\n            document.documentEle
 ment.clientHeight - (overlayPoint.y + overlayRect.height);\n        // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n        // or \"after\" the origin, which determines the direction in which the element will expand.\n        // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n        // page is in RTL or LTR.\n        var /** @type {?} */ horizontalStyleProperty;\n        if (this._dir === 'rtl') {\n            horizontalStyleProperty = pos.overlayX === 'end' ? 'left' : 'right';\n        }\n        else {\n            horizontalStyleProperty = pos.overlayX === 'end' ? 'right' : 'left';\n        }\n        // When we're setting `right`, we adjust the x position such that it is the distance\n        // from the right edge of the viewport rather than the left edge.\n        var /** @type {?} */ x = horizontalStyleProperty === 'left' ?\n            overlayPoint.x :\n            document.doc
 umentElement.clientWidth - (overlayPoint.x + overlayRect.width);\n        // Reset any existing styles. This is necessary in case the preferred position has\n        // changed since the last `apply`.\n        ['top', 'bottom', 'left', 'right'].forEach(function (p) { return element.style[p] = null; });\n        element.style[verticalStyleProperty] = y + \"px\";\n        element.style[horizontalStyleProperty] = x + \"px\";\n        // Notify that the position has been changed along with its change properties.\n        var /** @type {?} */ scrollableViewProperties = this._getScrollVisibility(element);\n        var /** @type {?} */ positionChange = new ConnectedOverlayPositionChange(pos, scrollableViewProperties);\n        this._onPositionChange.next(positionChange);\n    };\n    /**\n     * Subtracts the amount that an element is overflowing on an axis from it's length.\n     * @param {?} length\n     * @param {...?} overflows\n     * @return {?}\n     */\n    ConnectedPositionStrateg
 y.prototype._subtractOverflows = function (length) {\n        var overflows = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            overflows[_i - 1] = arguments[_i];\n        }\n        return overflows.reduce(function (currentValue, currentOverflow) {\n            return currentValue - Math.max(currentOverflow, 0);\n        }, length);\n    };\n    return ConnectedPositionStrategy;\n}());\nexport { ConnectedPositionStrategy };\nfunction ConnectedPositionStrategy_tsickle_Closure_declarations() {\n    /**\n     * The overlay to which this strategy is attached.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._overlayRef;\n    /**\n     * Layout direction of the position strategy.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._dir;\n    /**\n     * The offset in pixels for the overlay connection point on the x-axis\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._offsetX;\n    /**\n     * The offset in p
 ixels for the overlay connection point on the y-axis\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._offsetY;\n    /**\n     * The Scrollable containers used to check scrollable view properties on position change.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype.scrollables;\n    /**\n     * Subscription to viewport resize events.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._resizeSubscription;\n    /**\n     * Ordered list of preferred positions, from most to least desirable.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._preferredPositions;\n    /**\n     * The origin element against which the overlay will be positioned.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._origin;\n    /**\n     * The overlay pane element.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._pane;\n    /**\n     * The last position to have been calculated as the best fit position.\
 n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._lastConnectedPosition;\n    /** @type {?} */\n    ConnectedPositionStrategy.prototype._onPositionChange;\n    /** @type {?} */\n    ConnectedPositionStrategy.prototype._connectedTo;\n    /** @type {?} */\n    ConnectedPositionStrategy.prototype._viewportRuler;\n}\n//# sourceMappingURL=connected-position-strategy.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/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nvar GlobalPositionStrategy = (function () {\n    function GlobalPositionStrategy() {\n        this._
 cssPosition = 'static';\n        this._topOffset = '';\n        this._bottomOffset = '';\n        this._leftOffset = '';\n        this._rightOffset = '';\n        this._alignItems = '';\n        this._justifyContent = '';\n        this._width = '';\n        this._height = '';\n        this._wrapper = null;\n    }\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.attach = function (overlayRef) {\n        this._overlayRef = overlayRef;\n    };\n    /**\n     * Sets the top position of the overlay. Clears any previously set vertical position.\n     * @param {?=} value New top offset.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.top = function (value) {\n        if (value === void 0) { value = ''; }\n        this._bottomOffset = '';\n        this._topOffset = value;\n        this._alignItems = 'flex-start';\n        return this;\n    };\n    /**\n     * Sets the left position of the overlay. Clears any previou
 sly set horizontal position.\n     * @param {?=} value New left offset.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.left = function (value) {\n        if (value === void 0) { value = ''; }\n        this._rightOffset = '';\n        this._leftOffset = value;\n        this._justifyContent = 'flex-start';\n        return this;\n    };\n    /**\n     * Sets the bottom position of the overlay. Clears any previously set vertical position.\n     * @param {?=} value New bottom offset.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.bottom = function (value) {\n        if (value === void 0) { value = ''; }\n        this._topOffset = '';\n        this._bottomOffset = value;\n        this._alignItems = 'flex-end';\n        return this;\n    };\n    /**\n     * Sets the right position of the overlay. Clears any previously set horizontal position.\n     * @param {?=} value New right offset.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototyp
 e.right = function (value) {\n        if (value === void 0) { value = ''; }\n        this._leftOffset = '';\n        this._rightOffset = value;\n        this._justifyContent = 'flex-end';\n        return this;\n    };\n    /**\n     * Sets the overlay width and clears any previously set width.\n     * @param {?=} value New width for the overlay\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.width = function (value) {\n        if (value === void 0) { value = ''; }\n        this._width = value;\n        // When the width is 100%, we should reset the `left` and the offset,\n        // in order to ensure that the element is flush against the viewport edge.\n        if (value === '100%') {\n            this.left('0px');\n        }\n        return this;\n    };\n    /**\n     * Sets the overlay height and clears any previously set height.\n     * @param {?=} value New height for the overlay\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.height = fun
 ction (value) {\n        if (value === void 0) { value = ''; }\n        this._height = value;\n        // When the height is 100%, we should reset the `top` and the offset,\n        // in order to ensure that the element is flush against the viewport edge.\n        if (value === '100%') {\n            this.top('0px');\n        }\n        return this;\n    };\n    /**\n     * Centers the overlay horizontally with an optional offset.\n     * Clears any previously set horizontal position.\n     *\n     * @param {?=} offset Overlay offset from the horizontal center.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.centerHorizontally = function (offset) {\n        if (offset === void 0) { offset = ''; }\n        this.left(offset);\n        this._justifyContent = 'center';\n        return this;\n    };\n    /**\n     * Centers the overlay vertically with an optional offset.\n     * Clears any previously set vertical position.\n     *\n     * @param {?=} offset Overlay of
 fset from the vertical center.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.centerVertically = function (offset) {\n        if (offset === void 0) { offset = ''; }\n        this.top(offset);\n        this._alignItems = 'center';\n        return this;\n    };\n    /**\n     * Apply the position to the element.\n     * \\@docs-private\n     *\n     * @return {?} Resolved when the styles have been applied.\n     */\n    GlobalPositionStrategy.prototype.apply = function () {\n        var /** @type {?} */ element = this._overlayRef.overlayElement;\n        if (!this._wrapper && element.parentNode) {\n            this._wrapper = document.createElement('div');\n            this._wrapper.classList.add('cdk-global-overlay-wrapper');\n            element.parentNode.insertBefore(this._wrapper, element);\n            this._wrapper.appendChild(element);\n        }\n        var /** @type {?} */ styles = element.style;\n        var /** @type {?} */ parentStyles = ((element.pa
 rentNode)).style;\n        styles.position = this._cssPosition;\n        styles.marginTop = this._topOffset;\n        styles.marginLeft = this._leftOffset;\n        styles.marginBottom = this._bottomOffset;\n        styles.marginRight = this._rightOffset;\n        styles.width = this._width;\n        styles.height = this._height;\n        parentStyles.justifyContent = this._justifyContent;\n        parentStyles.alignItems = this._alignItems;\n    };\n    /**\n     * Removes the wrapper element from the DOM.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.dispose = function () {\n        if (this._wrapper && this._wrapper.parentNode) {\n            this._wrapper.parentNode.removeChild(this._wrapper);\n            this._wrapper = null;\n        }\n    };\n    return GlobalPositionStrategy;\n}());\nexport { GlobalPositionStrategy };\nfunction GlobalPositionStrategy_tsickle_Closure_declarations() {\n    /**\n     * The overlay to which this strategy is attached.\n    
  * @type {?}\n     */\n    GlobalPositionStrategy.prototype._overlayRef;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._cssPosition;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._topOffset;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._bottomOffset;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._leftOffset;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._rightOffset;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._alignItems;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._justifyContent;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._width;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._height;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._wrapper;\n}\n//# sourceMappingURL=global-position-strategy.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 } from '@angular/core';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { ConnectedPositionStrategy } from './connected-position-strategy';\nimport { GlobalPositionStrategy } from './global-position-strategy';\n/**\n * Builder for overlay position strategy.\n */\nvar OverlayPositionBuilder = (function () {\n    /**\n     * @param {?} _viewportRuler\n     */\n    function OverlayPositionBuilder(_viewportRuler) {\n        this._viewportRuler = _viewportRuler;\n    }\n    /**\n     * Creates a global position strategy.\n     * @return {?}\n     */\n    OverlayPositionBuilder.prototype.global = function () {\n        return new GlobalPositionStrategy();\n    };\n    /**\n     * Creates a relative position strategy.\n     * @param {?} elementRef\n     * @param {?} originPos\n     * @param {?} overlayPos\n     * @return {?}\n     */\n    OverlayPositionBuilder.prototype.connectedTo =
  function (elementRef, originPos, overlayPos) {\n        return new ConnectedPositionStrategy(originPos, overlayPos, elementRef, this._viewportRuler);\n    };\n    OverlayPositionBuilder.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    OverlayPositionBuilder.ctorParameters = function () { return [\n        { type: ViewportRuler, },\n    ]; };\n    return OverlayPositionBuilder;\n}());\nexport { OverlayPositionBuilder };\nfunction OverlayPositionBuilder_tsickle_Closure_declarations() {\n    /** @type {?} */\n    OverlayPositionBuilder.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    OverlayPositionBuilder.ctorParameters;\n    /** @type {?} */\n    OverlayPositionBuilder.prototype._viewportRuler;\n}\n//# sourceMappingURL=overlay-position-builder.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 L
 ICENSE file at https://angular.io/license\n */\nimport { Injectable, Optional, SkipSelf } from '@angular/core';\n/**\n * The OverlayContainer is the container in which all overlays will load.\n * It should be provided in the root component to ensure it is properly shared.\n */\nvar OverlayContainer = (function () {\n    function OverlayContainer() {\n    }\n    /**\n     * @return {?}\n     */\n    OverlayContainer.prototype.ngOnDestroy = function () {\n        if (this._containerElement && this._containerElement.parentNode) {\n            this._containerElement.parentNode.removeChild(this._containerElement);\n        }\n    };\n    /**\n     * This method returns the overlay container element. It will lazily\n     * create the element the first time  it is called to facilitate using\n     * the container in non-browser environments.\n     * @return {?} the container element\n     */\n    OverlayContainer.prototype.getContainerElement = function () {\n        if (!this._containerEle
 ment) {\n            this._createContainer();\n        }\n        return this._containerElement;\n    };\n    /**\n     * Create the overlay container element, which is simply a div\n     * with the 'cdk-overlay-container' class on the document body.\n     * @return {?}\n     */\n    OverlayContainer.prototype._createContainer = function () {\n        var /** @type {?} */ container = document.createElement('div');\n        container.classList.add('cdk-overlay-container');\n        document.body.appendChild(container);\n        this._containerElement = container;\n    };\n    OverlayContainer.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    OverlayContainer.ctorParameters = function () { return []; };\n    return OverlayContainer;\n}());\nexport { OverlayContainer };\nfunction OverlayContainer_tsickle_Closure_declarations() {\n    /** @type {?} */\n    OverlayContainer.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\
 n    OverlayContainer.ctorParameters;\n    /** @type {?} */\n    OverlayContainer.prototype._containerElement;\n}\n/**\n * \\@docs-private\n * @param {?} parentContainer\n * @return {?}\n */\nexport function OVERLAY_CONTAINER_PROVIDER_FACTORY(parentContainer) {\n    return parentContainer || new OverlayContainer();\n}\n/**\n * \\@docs-private\n */\nexport var OVERLAY_CONTAINER_PROVIDER = {\n    // If there is already an OverlayContainer available, use that. Otherwise, provide a new one.\n    provide: OverlayContainer,\n    deps: [[new Optional(), new SkipSelf(), OverlayContainer]],\n    useFactory: OVERLAY_CONTAINER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=overlay-container.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/**\n * Returns an error to be thrown when attempting to attach an already-attached scroll st
 rategy.\n * @return {?}\n */\nexport function getMatScrollStrategyAlreadyAttachedError() {\n    return Error(\"Scroll strategy has already been attached.\");\n}\n//# sourceMappingURL=scroll-strategy.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 { getMatScrollStrategyAlreadyAttachedError } from './scroll-strategy';\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nvar CloseScrollStrategy = (function () {\n    /**\n     * @param {?} _scrollDispatcher\n     */\n    function CloseScrollStrategy(_scrollDispatcher) {\n        this._scrollDispatcher = _scrollDispatcher;\n        this._scrollSubscription = null;\n    }\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    CloseScrollStrategy.prototype.attach = function (overlayRef) {\n        if (this._ove
 rlayRef) {\n            throw getMatScrollStrategyAlreadyAttachedError();\n        }\n        this._overlayRef = overlayRef;\n    };\n    /**\n     * @return {?}\n     */\n    CloseScrollStrategy.prototype.enable = function () {\n        var _this = this;\n        if (!this._scrollSubscription) {\n            this._scrollSubscription = this._scrollDispatcher.scrolled(0, function () {\n                if (_this._overlayRef.hasAttached()) {\n                    _this._overlayRef.detach();\n                }\n                _this.disable();\n            });\n        }\n    };\n    /**\n     * @return {?}\n     */\n    CloseScrollStrategy.prototype.disable = function () {\n        if (this._scrollSubscription) {\n            this._scrollSubscription.unsubscribe();\n            this._scrollSubscription = null;\n        }\n    };\n    return CloseScrollStrategy;\n}());\nexport { CloseScrollStrategy };\nfunction CloseScrollStrategy_tsickle_Closure_declarations() {\n    /** @type {?} */\n 
    CloseScrollStrategy.prototype._scrollSubscription;\n    /** @type {?} */\n    CloseScrollStrategy.prototype._overlayRef;\n    /** @type {?} */\n    CloseScrollStrategy.prototype._scrollDispatcher;\n}\n//# sourceMappingURL=close-scroll-strategy.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/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nvar BlockScrollStrategy = (function () {\n    /**\n     * @param {?} _viewportRuler\n     */\n    function BlockScrollStrategy(_viewportRuler) {\n        this._viewportRuler = _viewportRuler;\n        this._previousHTMLStyles = { top: '', left: '' };\n        this._isEnabled = false;\n    }\n    /**\n     * @return {?}\n     */\n    BlockScrollStrategy.prototype.attach = function () { };\n    /**\n     * @return {?}\n     */\n    Bl
 ockScrollStrategy.prototype.enable = function () {\n        if (this._canBeEnabled()) {\n            var /** @type {?} */ root = document.documentElement;\n            this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n            // Cache the previous inline styles in case the user had set them.\n            this._previousHTMLStyles.left = root.style.left || '';\n            this._previousHTMLStyles.top = root.style.top || '';\n            // Note: we're using the `html` node, instead of the `body`, because the `body` may\n            // have the user agent margin, whereas the `html` is guaranteed not to have one.\n            root.style.left = -this._previousScrollPosition.left + \"px\";\n            root.style.top = -this._previousScrollPosition.top + \"px\";\n            root.classList.add('cdk-global-scrollblock');\n            this._isEnabled = true;\n        }\n    };\n    /**\n     * @return {?}\n     */\n    BlockScrollStrategy.prototype.disabl
 e = function () {\n        if (this._isEnabled) {\n            this._isEnabled = false;\n            document.documentElement.style.left = this._previousHTMLStyles.left;\n            document.documentElement.style.top = this._previousHTMLStyles.top;\n            document.documentElement.classList.remove('cdk-global-scrollblock');\n            window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);\n        }\n    };\n    /**\n     * @return {?}\n     */\n    BlockScrollStrategy.prototype._canBeEnabled = function () {\n        // Since the scroll strategies can't be singletons, we have to use a global CSS class\n        // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n        // scrolling multiple times.\n        if (document.documentElement.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n            return false;\n        }\n        var /** @type {?} */ body = document.body;\n        var /** @type {?} */ 
 viewport = this._viewportRuler.getViewportRect();\n        return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;\n    };\n    return BlockScrollStrategy;\n}());\nexport { BlockScrollStrategy };\nfunction BlockScrollStrategy_tsickle_Closure_declarations() {\n    /** @type {?} */\n    BlockScrollStrategy.prototype._previousHTMLStyles;\n    /** @type {?} */\n    BlockScrollStrategy.prototype._previousScrollPosition;\n    /** @type {?} */\n    BlockScrollStrategy.prototype._isEnabled;\n    /** @type {?} */\n    BlockScrollStrategy.prototype._viewportRuler;\n}\n//# sourceMappingURL=block-scroll-strategy.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 { getMatScrollStrategyAlreadyAttachedError } from './scroll-strategy';\n/**\n * Strategy that will update the element position as the user
  is scrolling.\n */\nvar RepositionScrollStrategy = (function () {\n    /**\n     * @param {?} _scrollDispatcher\n     * @param {?=} _config\n     */\n    function RepositionScrollStrategy(_scrollDispatcher, _config) {\n        this._scrollDispatcher = _scrollDispatcher;\n        this._config = _config;\n        this._scrollSubscription = null;\n    }\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    RepositionScrollStrategy.prototype.attach = function (overlayRef) {\n        if (this._overlayRef) {\n            throw getMatScrollStrategyAlreadyAttachedError();\n        }\n        this._overlayRef = overlayRef;\n    };\n    /**\n     * @return {?}\n     */\n    RepositionScrollStrategy.prototype.enable = function () {\n        var _this = this;\n        if (!this._scrollSubscription) {\n            var /** @type {?} */ throttle = this._config ? this._config.scrollThrottle : 0;\n            this._scrollSubscription = this._scrollDispatcher.scrolled(throttle, fu
 nction () {\n                _this._overlayRef.updatePosition();\n            });\n        }\n    };\n    /**\n     * @return {?}\n     */\n    RepositionScrollStrategy.prototype.disable = function () {\n        if (this._scrollSubscription) {\n            this._scrollSubscription.unsubscribe();\n            this._scrollSubscription = null;\n        }\n    };\n    return RepositionScrollStrategy;\n}());\nexport { RepositionScrollStrategy };\nfunction RepositionScrollStrategy_tsickle_Closure_declarations() {\n    /** @type {?} */\n    RepositionScrollStrategy.prototype._scrollSubscription;\n    /** @type {?} */\n    RepositionScrollStrategy.prototype._overlayRef;\n    /** @type {?} */\n    RepositionScrollStrategy.prototype._scrollDispatcher;\n    /** @type {?} */\n    RepositionScrollStrategy.prototype._config;\n}\n//# sourceMappingURL=reposition-scroll-strategy.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 } from '@angular/core';\nimport { CloseScrollStrategy } from './close-scroll-strategy';\nimport { NoopScrollStrategy } from './noop-scroll-strategy';\nimport { BlockScrollStrategy } from './block-scroll-strategy';\nimport { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { RepositionScrollStrategy, } from './reposition-scroll-strategy';\n/**\n * Options for how an overlay will handle scrolling.\n *\n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nvar ScrollStrategyOptions = (function () {\n    /**\n     * @param {?} _scrollDispatcher\n     * @param {?} _viewportRuler\n     */\n    function ScrollStrategyOptions(_scrollDispatcher, _viewportRuler) {\n        var _this = this;\n
         this._scrollDispatcher = _scrollDispatcher;\n        this._viewportRuler = _viewportRuler;\n        /**\n         * Do nothing on scroll.\n         */\n        this.noop = function () { return new NoopScrollStrategy(); };\n        /**\n         * Close the overlay as soon as the user scrolls.\n         */\n        this.close = function () { return new CloseScrollStrategy(_this._scrollDispatcher); };\n        /**\n         * Block scrolling.\n         */\n        this.block = function () { return new BlockScrollStrategy(_this._viewportRuler); };\n        /**\n         * Update the overlay's position on scroll.\n         * @param config Configuration to be used inside the scroll strategy.\n         * Allows debouncing the reposition calls.\n         */\n        this.reposition = function (config) {\n            return new RepositionScrollStrategy(_this._scrollDispatcher, config);\n        };\n    }\n    ScrollStrategyOptions.decorators = [\n        { type: Injectable },\n    ]
 ;\n    /**\n     * @nocollapse\n     */\n    ScrollStrategyOptions.ctorParameters = function () { return [\n        { type: ScrollDispatcher, },\n        { type: ViewportRuler, },\n    ]; };\n    return ScrollStrategyOptions;\n}());\nexport { ScrollStrategyOptions };\nfunction ScrollStrategyOptions_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ScrollStrategyOptions.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ScrollStrategyOptions.ctorParameters;\n    /**\n     * Do nothing on scroll.\n     * @type {?}\n     */\n    ScrollStrategyOptions.prototype.noop;\n    /**\n     * Close the overlay as soon as the user scrolls.\n     * @type {?}\n     */\n    ScrollStrategyOptions.prototype.close;\n    /**\n     * Block scrolling.\n     * @type {?}\n     */\n    ScrollStrategyOptions.prototype.block;\n    /**\n     * Update the overlay's position on scroll.\n     * \\@param config Configuration to be used inside the scroll strategy.\n     * Allows debou
 ncing the reposition calls.\n     * @type {?}\n     */\n    ScrollStrategyOptions.prototype.reposition;\n    /** @type {?} */\n    ScrollStrategyOptions.prototype._scrollDispatcher;\n    /** @type {?} */\n    ScrollStrategyOptions.prototype._viewportRuler;\n}\n//# sourceMappingURL=scroll-strategy-options.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 { ComponentFactoryResolver, Injectable, ApplicationRef, Injector, NgZone, } from '@angular/core';\nimport { DomPortalHost } from '@angular/cdk/portal';\nimport { OverlayConfig } from './overlay-config';\nimport { OverlayRef } from './overlay-ref';\nimport { OverlayPositionBuilder } from './position/overlay-position-builder';\nimport { OverlayContainer } from './overlay-container';\nimport { ScrollStrategyOptions } from './scroll/index';\n/**\n * Next overlay un
 ique ID.\n */\nvar nextUniqueId = 0;\n/**\n * The default config for newly created overlays.\n */\nvar defaultConfig = new OverlayConfig();\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\nvar Overlay = (function () {\n    /**\n     * @param {?} scrollStrategies\n     * @param {?} _overlayContainer\n     * @param {?} _componentFactoryResolver\n     * @param {?} _positionBuilder\n     * @param {?} _appRef\n     * @param {?} _injector\n     * @param {?} _ngZone\n     */\n    function Overlay(scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder
 , _appRef, _injector, _ngZone) {\n        this.scrollStrategies = scrollStrategies;\n        this._overlayContainer = _overlayContainer;\n        this._componentFactoryResolver = _componentFactoryResolver;\n        this._positionBuilder = _positionBuilder;\n        this._appRef = _appRef;\n        this._injector = _injector;\n        this._ngZone = _ngZone;\n    }\n    /**\n     * Creates an overlay.\n     * @param {?=} config Config to apply to the overlay.\n     * @return {?} Reference to the created overlay.\n     */\n    Overlay.prototype.create = function (config) {\n        if (config === void 0) { config = defaultConfig; }\n        var /** @type {?} */ pane = this._createPaneElement();\n        var /** @type {?} */ portalHost = this._createPortalHost(pane);\n        return new OverlayRef(portalHost, pane, config, this._ngZone);\n    };\n    /**\n     * Returns a position builder that can be used, via fluent API,\n     * to construct and configure a position strategy.\n     * 
 @return {?}\n     */\n    Overlay.prototype.position = function () {\n        return this._positionBuilder;\n    };\n    /**\n     * Creates the DOM element for an overlay and appends it to the overlay container.\n     * @return {?} Newly-created pane element\n     */\n    Overlay.prototype._createPaneElement = function () {\n        var /** @type {?} */ pane = document.createElement('div');\n        pane.id = \"cdk-overlay-\" + nextUniqueId++;\n        pane.classList.add('cdk-overlay-pane');\n        this._overlayContainer.getContainerElement().appendChild(pane);\n        return pane;\n    };\n    /**\n     * Create a DomPortalHost into which the overlay content can be loaded.\n     * @param {?} pane The DOM element to turn into a portal host.\n     * @return {?} A portal host for the given DOM element.\n     */\n    Overlay.prototype._createPortalHost = function (pane) {\n        return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef, this._injector);\n    };\
 n    Overlay.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    Overlay.ctorParameters = function () { return [\n        { type: ScrollStrategyOptions, },\n        { type: OverlayContainer, },\n        { type: ComponentFactoryResolver, },\n        { type: OverlayPositionBuilder, },\n        { type: ApplicationRef, },\n        { type: Injector, },\n        { type: NgZone, },\n    ]; };\n    return Overlay;\n}());\nexport { Overlay };\nfunction Overlay_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Overlay.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    Overlay.ctorParameters;\n    /** @type {?} */\n    Overlay.prototype.scrollStrategies;\n    /** @type {?} */\n    Overlay.prototype._overlayContainer;\n    /** @type {?} */\n    Overlay.prototype._componentFactoryResolver;\n    /** @type {?} */\n    Overlay.prototype._positionBuilder;\n    /** @type {?} */\n    Overlay.prototype._appRef;\n    /** @type 
 {?} */\n    Overlay.prototype._injector;\n    /** @type {?} */\n    Overlay.prototype._ngZone;\n}\n//# sourceMappingURL=overlay.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 * as tslib_1 from \"tslib\";\nimport { Injectable } from '@angular/core';\nimport { OverlayContainer } from './overlay-container';\n/**\n * The FullscreenOverlayContainer is the alternative to OverlayContainer\n * that supports correct displaying of overlay elements in Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n * It should be provided in the root component that way:\n * providers: [\n *   {provide: OverlayContainer, useClass: FullscreenOverlayContainer}\n * ],\n */\nvar FullscreenOverlayContainer = (function (_super) {\n    tslib_1.__extends(FullscreenOverlayContainer, _super);\n   
  function FullscreenOverlayContainer() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /**\n     * @return {?}\n     */\n    FullscreenOverlayContainer.prototype._createContainer = function () {\n        var _this = this;\n        _super.prototype._createContainer.call(this);\n        this._adjustParentForFullscreenChange();\n        this._addFullscreenChangeListener(function () { return _this._adjustParentForFullscreenChange(); });\n    };\n    /**\n     * @return {?}\n     */\n    FullscreenOverlayContainer.prototype._adjustParentForFullscreenChange = function () {\n        if (!this._containerElement) {\n            return;\n        }\n        var /** @type {?} */ fullscreenElement = this.getFullscreenElement();\n        var /** @type {?} */ parent = fullscreenElement || document.body;\n        parent.appendChild(this._containerElement);\n    };\n    /**\n     * @param {?} fn\n     * @return {?}\n     */\n    FullscreenOverlayContainer.prot
 otype._addFullscreenChangeListener = function (fn) {\n        if (document.fullscreenEnabled) {\n            document.addEventListener('fullscreenchange', fn);\n        }\n        else if (document.webkitFullscreenEnabled) {\n            document.addEventListener('webkitfullscreenchange', fn);\n        }\n        else if (((document)).mozFullScreenEnabled) {\n            document.addEventListener('mozfullscreenchange', fn);\n        }\n        else if (((document)).msFullscreenEnabled) {\n            document.addEventListener('MSFullscreenChange', fn);\n        }\n    };\n    /**\n     * When the page is put into fullscreen mode, a specific element is specified.\n     * Only that element and its children are visible when in fullscreen mode.\n     * @return {?}\n     */\n    FullscreenOverlayContainer.prototype.getFullscreenElement = function () {\n        return document.fullscreenElement ||\n            document.webkitFullscreenElement ||\n            ((document)).mozFullScreenElem
 ent ||\n            ((document)).msFullscreenElement ||\n            null;\n    };\n    FullscreenOverlayContainer.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    FullscreenOverlayContainer.ctorParameters = function () { return []; };\n    return FullscreenOverlayContainer;\n}(OverlayContainer));\nexport { FullscreenOverlayContainer };\nfunction FullscreenOverlayContainer_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FullscreenOverlayContainer.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    FullscreenOverlayContainer.ctorParameters;\n}\n//# sourceMappingURL=fullscreen-overlay-container.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directive, ElementRef, EventEmitter, Inject, InjectionToken, Input, Optional, Output, Re
 nderer2, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Overlay } from './overlay';\nimport { OverlayConfig } from './overlay-config';\nimport { ConnectionPositionPair, } from './position/connected-position';\nimport { Subscription } from 'rxjs/Subscription';\n/**\n * Default set of positions for the overlay. Follows the behavior of a dropdown.\n */\nvar defaultPositionList = [\n    new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }),\n    new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }),\n];\n/**\n * Injection token that determines the scroll handling while the connected overlay is open.\n */\nexport var MAT_CONNECTED_OVERLAY_SCROLL_S
 TRATEGY = new InjectionToken('mat-connected-overlay-scroll-strategy');\n/**\n * \\@docs-private\n * @param {?} overlay\n * @return {?}\n */\nexport function MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n    return function () { return overlay.scrollStrategies.reposition(); };\n}\n/**\n * \\@docs-private\n */\nexport var MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n    provide: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n    deps: [Overlay],\n    useFactory: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nvar OverlayOrigin = (function () {\n    /**\n     * @param {?} elementRef\n     */\n    function OverlayOrigin(elementRef) {\n        this.elementRef = elementRef;\n    }\n    OverlayOrigin.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdk-overlay-origin], [overlay-origin], [cdkO
 verlayOrigin]',\n                    exportAs: 'cdkOverlayOrigin',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    OverlayOrigin.ctorParameters = function () { return [\n        { type: ElementRef, },\n    ]; };\n    return OverlayOrigin;\n}());\nexport { OverlayOrigin };\nfunction OverlayOrigin_tsickle_Closure_declarations() {\n    /** @type {?} */\n    OverlayOrigin.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    OverlayOrigin.ctorParameters;\n    /** @type {?} */\n    OverlayOrigin.prototype.elementRef;\n}\n/**\n * Directive to facilitate declarative creation of an Overlay using a ConnectedPositionStrategy.\n */\nvar ConnectedOverlayDirective = (function () {\n    /**\n     * @param {?} _overlay\n     * @param {?} _renderer\n     * @param {?} templateRef\n     * @param {?} viewContainerRef\n     * @param {?} _scrollStrategy\n     * @param {?} _dir\n     */\n    function ConnectedOverlayDirective(_overlay, _renderer, templateRef,
  viewContainerRef, _scrollStrategy, _dir) {\n        this._overlay = _overlay;\n        this._renderer = _renderer;\n        this._scrollStrategy = _scrollStrategy;\n        this._dir = _dir;\n        this._hasBackdrop = false;\n        this._backdropSubscription = Subscription.EMPTY;\n        this._positionSubscription = Subscription.EMPTY;\n        this._offsetX = 0;\n        this._offsetY = 0;\n        this._escapeListener = function () { };\n        /**\n         * Strategy to be used when handling scroll events while the overlay is open.\n         */\n        this.scrollStrategy = this._scrollStrategy();\n        /**\n         * Whether the overlay is open.\n         */\n        this.open = false;\n        /**\n         * Event emitted when the backdrop is clicked.\n         */\n        this.backdropClick = new EventEmitter();\n        /**\n         * Event emitted when the position has changed.\n         */\n        this.positionChange = new EventEmitter();\n        /**\n     
     * Event emitted when the overlay has been attached.\n         */\n        this.attach = new EventEmitter();\n        /**\n         * Event emitted when the overlay has been detached.\n         */\n        this.detach = new EventEmitter();\n        this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n    }\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"offsetX\", {\n        /**\n         * The offset in pixels for the overlay connection point on the x-axis\n         * @return {?}\n         */\n        get: function () { return this._offsetX; },\n        /**\n         * @param {?} offsetX\n         * @return {?}\n         */\n        set: function (offsetX) {\n            this._offsetX = offsetX;\n            if (this._position) {\n                this._position.withOffsetX(offsetX);\n            }\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"of
 fsetY\", {\n        /**\n         * The offset in pixels for the overlay connection point on the y-axis\n         * @return {?}\n         */\n        get: function () { return this._offsetY; },\n        /**\n         * @param {?} offsetY\n         * @return {?}\n         */\n        set: function (offsetY) {\n            this._offsetY = offsetY;\n            if (this._position) {\n                this._position.withOffsetY(offsetY);\n            }\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"hasBackdrop\", {\n        /**\n         * Whether or not the overlay should attach a backdrop.\n         * @return {?}\n         */\n        get: function () { return this._hasBackdrop; },\n        /**\n         * @param {?} value\n         * @return {?}\n         */\n        set: function (value) { this._hasBackdrop = coerceBooleanProperty(value); },\n        enumerable: true,\n        configurable:
  true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOrigin\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.origin; },\n        /**\n         * @param {?} _origin\n         * @return {?}\n         */\n        set: function (_origin) { this.origin = _origin; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedPositions\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.positions; },\n        /**\n         * @param {?} _positions\n         * @return {?}\n         */\n        set: function (_positions) { this.positions = _positions; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOffsetX\", {\n        /**\n         * @deprecat
 ed\n         * @return {?}\n         */\n        get: function () { return this.offsetX; },\n        /**\n         * @param {?} _offsetX\n         * @return {?}\n         */\n        set: function (_offsetX) { this.offsetX = _offsetX; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOffsetY\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.offsetY; },\n        /**\n         * @param {?} _offsetY\n         * @return {?}\n         */\n        set: function (_offsetY) { this.offsetY = _offsetY; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedWidth\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.width; },\n        /**\n         * @param {?} _width\n         * @r
 eturn {?}\n         */\n        set: function (_width) { this.width = _width; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedHeight\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.height; },\n        /**\n         * @param {?} _height\n         * @return {?}\n         */\n        set: function (_height) { this.height = _height; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedMinWidth\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.minWidth; },\n        /**\n         * @param {?} _minWidth\n         * @return {?}\n         */\n        set: function (_minWidth) { this.minWidth = _minWidth; },\n        enumerable: true,\n        configurable: true\n    });\
 n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedMinHeight\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.minHeight; },\n        /**\n         * @param {?} _minHeight\n         * @return {?}\n         */\n        set: function (_minHeight) { this.minHeight = _minHeight; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedBackdropClass\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.backdropClass; },\n        /**\n         * @param {?} _backdropClass\n         * @return {?}\n         */\n        set: function (_backdropClass) { this.backdropClass = _backdropClass; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedScrollStrategy\", {\
 n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.scrollStrategy; },\n        /**\n         * @param {?} _scrollStrategy\n         * @return {?}\n         */\n        set: function (_scrollStrategy) {\n            this.scrollStrategy = _scrollStrategy;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOpen\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.open; },\n        /**\n         * @param {?} _open\n         * @return {?}\n         */\n        set: function (_open) { this.open = _open; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedHasBackdrop\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { 
 return this.hasBackdrop; },\n        /**\n         * @param {?} _hasBackdrop\n         * @return {?}\n         */\n        set: function (_hasBackdrop) { this.hasBackdrop = _hasBackdrop; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"overlayRef\", {\n        /**\n         * The associated overlay reference.\n         * @return {?}\n         */\n        get: function () {\n            return this._overlayRef;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"dir\", {\n        /**\n         * The element's layout direction.\n         * @return {?}\n         */\n        get: function () {\n            return this._dir ? this._dir.value : 'ltr';\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype.ngOnDestroy = 
 function () {\n        this._destroyOverlay();\n    };\n    /**\n     * @param {?} changes\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype.ngOnChanges = function (changes) {\n        if (changes['open'] || changes['_deprecatedOpen']) {\n            this.open ? this._attachOverlay() : this._detachOverlay();\n        }\n    };\n    /**\n     * Creates an overlay\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype._createOverlay = function () {\n        if (!this.positions || !this.positions.length) {\n            this.positions = defaultPositionList;\n        }\n        this._overlayRef = this._overlay.create(this._buildConfig());\n    };\n    /**\n     * Builds the overlay config based on the directive's inputs\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype._buildConfig = function () {\n        var /** @type {?} */ positionStrategy = this._position = this._createPositionStrategy();\n        var /** @type {?} */ overlayCon
 fig = new OverlayConfig({\n            positionStrategy: positionStrategy,\n            scrollStrategy: this.scrollStrategy,\n            hasBackdrop: this.hasBackdrop\n        });\n        if (this.width || this.width === 0) {\n            overlayConfig.width = this.width;\n        }\n        if (this.height || this.height ==

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js b/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js
new file mode 100644
index 0000000..a130af9
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js
@@ -0,0 +1,187 @@
+import * as tslib_1 from "tslib";
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+import { AUTO_STYLE, NoopAnimationPlayer } from '@angular/animations';
+/**
+ * @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
+ */
+var _contains = function (elm1, elm2) { return false; };
+var _matches = function (element, selector) { return false; };
+var _query = function (element, selector, multi) {
+    return [];
+};
+if (typeof Element != 'undefined') {
+    // this is well supported in all browsers
+    _contains = function (elm1, elm2) { return elm1.contains(elm2); };
+    if (Element.prototype.matches) {
+        _matches = function (element, selector) { return element.matches(selector); };
+    }
+    else {
+        var proto = Element.prototype;
+        var fn_1 = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||
+            proto.oMatchesSelector || proto.webkitMatchesSelector;
+        if (fn_1) {
+            _matches = function (element, selector) { return fn_1.apply(element, [selector]); };
+        }
+    }
+    _query = function (element, selector, multi) {
+        var results = [];
+        if (multi) {
+            results.push.apply(results, element.querySelectorAll(selector));
+        }
+        else {
+            var elm = element.querySelector(selector);
+            if (elm) {
+                results.push(elm);
+            }
+        }
+        return results;
+    };
+}
+var matchesElement = _matches;
+var containsElement = _contains;
+var invokeQuery = _query;
+/**
+ * @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
+ */
+function allowPreviousPlayerStylesMerge(duration, delay) {
+    return duration === 0 || delay === 0;
+}
+/**
+ * @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
+ */
+/**
+ * @experimental Animation support is experimental.
+ */
+var MockAnimationDriver = (function () {
+    function MockAnimationDriver() {
+    }
+    MockAnimationDriver.prototype.matchesElement = function (element, selector) {
+        return matchesElement(element, selector);
+    };
+    MockAnimationDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); };
+    MockAnimationDriver.prototype.query = function (element, selector, multi) {
+        return invokeQuery(element, selector, multi);
+    };
+    MockAnimationDriver.prototype.computeStyle = function (element, prop, defaultValue) {
+        return defaultValue || '';
+    };
+    MockAnimationDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers) {
+        if (previousPlayers === void 0) { previousPlayers = []; }
+        var player = new MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers);
+        MockAnimationDriver.log.push(player);
+        return player;
+    };
+    return MockAnimationDriver;
+}());
+MockAnimationDriver.log = [];
+/**
+ * @experimental Animation support is experimental.
+ */
+var MockAnimationPlayer = (function (_super) {
+    tslib_1.__extends(MockAnimationPlayer, _super);
+    function MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers) {
+        var _this = _super.call(this) || this;
+        _this.element = element;
+        _this.keyframes = keyframes;
+        _this.duration = duration;
+        _this.delay = delay;
+        _this.easing = easing;
+        _this.previousPlayers = previousPlayers;
+        _this.__finished = false;
+        _this.__started = false;
+        _this.previousStyles = {};
+        _this._onInitFns = [];
+        _this.currentSnapshot = {};
+        if (allowPreviousPlayerStylesMerge(duration, delay)) {
+            previousPlayers.forEach(function (player) {
+                if (player instanceof MockAnimationPlayer) {
+                    var styles_1 = player.currentSnapshot;
+                    Object.keys(styles_1).forEach(function (prop) { return _this.previousStyles[prop] = styles_1[prop]; });
+                }
+            });
+        }
+        _this.totalTime = delay + duration;
+        return _this;
+    }
+    /* @internal */
+    MockAnimationPlayer.prototype.onInit = function (fn) { this._onInitFns.push(fn); };
+    /* @internal */
+    MockAnimationPlayer.prototype.init = function () {
+        _super.prototype.init.call(this);
+        this._onInitFns.forEach(function (fn) { return fn(); });
+        this._onInitFns = [];
+    };
+    MockAnimationPlayer.prototype.finish = function () {
+        _super.prototype.finish.call(this);
+        this.__finished = true;
+    };
+    MockAnimationPlayer.prototype.destroy = function () {
+        _super.prototype.destroy.call(this);
+        this.__finished = true;
+    };
+    /* @internal */
+    MockAnimationPlayer.prototype.triggerMicrotask = function () { };
+    MockAnimationPlayer.prototype.play = function () {
+        _super.prototype.play.call(this);
+        this.__started = true;
+    };
+    MockAnimationPlayer.prototype.hasStarted = function () { return this.__started; };
+    MockAnimationPlayer.prototype.beforeDestroy = function () {
+        var _this = this;
+        var captures = {};
+        Object.keys(this.previousStyles).forEach(function (prop) {
+            captures[prop] = _this.previousStyles[prop];
+        });
+        if (this.hasStarted()) {
+            // when assembling the captured styles, it's important that
+            // we build the keyframe styles in the following order:
+            // {other styles within keyframes, ... previousStyles }
+            this.keyframes.forEach(function (kf) {
+                Object.keys(kf).forEach(function (prop) {
+                    if (prop != 'offset') {
+                        captures[prop] = _this.__finished ? kf[prop] : AUTO_STYLE;
+                    }
+                });
+            });
+        }
+        this.currentSnapshot = captures;
+    };
+    return MockAnimationPlayer;
+}(NoopAnimationPlayer));
+/**
+ * @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
+ */
+/**
+ * @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
+ */
+/**
+ * @module
+ * @description
+ * Entry point for all public APIs of the platform-browser/animations/testing package.
+ */
+export { MockAnimationDriver, MockAnimationPlayer };
+//# sourceMappingURL=testing.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js.map b/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js.map
new file mode 100644
index 0000000..11208a9
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"testing.es5.js","sources":["../../../../../../packages/animations/browser/testing/index.ts","../../../../../../packages/animations/browser/testing/src/mock_animation_driver.ts","../../../../../../packages/animations/browser/testing/src/testing.ts","../../../../../../packages/animations/browser/src/util.ts","../../../../../../packages/animations/browser/src/render/shared.ts"],"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/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser/animations/testing package.\n */\n\nexport * from './src/testing';\n","/**\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 {AUTO_STYLE, AnimationPlayer, NoopAnimationPlayer, ɵStyleData} from '@angular/animations';\n\nimport {AnimationDriver} from '../../src/render/animation_driver';\nimport {containsElement, invokeQuery, matchesElement} from '../../src/render/shared';\nimport {allowPreviousPlayerStylesMerge} from '../../src/util';\n\n/**\n * @experimental Animation support is experimental.\n */\nexport class MockAnimationDriver implements AnimationDriver {\n  static log: AnimationPlayer[] = [];\n\n  matchesElement(element: any, selector: string): boolean {\n    return matchesElement(element, selector);\n  }\n\n  containsElement(elm1: any, elm2: any): boolean { return containsElement(elm1, elm2); }\n\n  query(element: any, selector: string, multi: boolean): any[] {\n    return invokeQuery(element, selector, multi);\n  }\n\n  computeStyle(element: any, prop: string, defaultValue?: string): string {\n    return defaultValue || '';\n  }\n\n  animate(\n      element: any, keyframes: {[key: str
 ing]: string | number}[], duration: number, delay: number,\n      easing: string, previousPlayers: any[] = []): MockAnimationPlayer {\n    const player =\n        new MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers);\n    MockAnimationDriver.log.push(<AnimationPlayer>player);\n    return player;\n  }\n}\n\n/**\n * @experimental Animation support is experimental.\n */\nexport class MockAnimationPlayer extends NoopAnimationPlayer {\n  private __finished = false;\n  private __started = false;\n  public previousStyles: {[key: string]: string | number} = {};\n  private _onInitFns: (() => any)[] = [];\n  public currentSnapshot: ɵStyleData = {};\n\n  constructor(\n      public element: any, public keyframes: {[key: string]: string | number}[],\n      public duration: number, public delay: number, public easing: string,\n      public previousPlayers: any[]) {\n    super();\n\n    if (allowPreviousPlayerStylesMerge(duration, delay)) {\n      previousPlayers.
 forEach(player => {\n        if (player instanceof MockAnimationPlayer) {\n          const styles = player.currentSnapshot;\n          Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]);\n        }\n      });\n    }\n\n    this.totalTime = delay + duration;\n  }\n\n  /* @internal */\n  onInit(fn: () => any) { this._onInitFns.push(fn); }\n\n  /* @internal */\n  init() {\n    super.init();\n    this._onInitFns.forEach(fn => fn());\n    this._onInitFns = [];\n  }\n\n  finish(): void {\n    super.finish();\n    this.__finished = true;\n  }\n\n  destroy(): void {\n    super.destroy();\n    this.__finished = true;\n  }\n\n  /* @internal */\n  triggerMicrotask() {}\n\n  play(): void {\n    super.play();\n    this.__started = true;\n  }\n\n  hasStarted() { return this.__started; }\n\n  beforeDestroy() {\n    const captures: ɵStyleData = {};\n\n    Object.keys(this.previousStyles).forEach(prop => {\n      captures[prop] = this.previousStyles[prop];\n    });\n\n   
  if (this.hasStarted()) {\n      // when assembling the captured styles, it's important that\n      // we build the keyframe styles in the following order:\n      // {other styles within keyframes, ... previousStyles }\n      this.keyframes.forEach(kf => {\n        Object.keys(kf).forEach(prop => {\n          if (prop != 'offset') {\n            captures[prop] = this.__finished ? kf[prop] : AUTO_STYLE;\n          }\n        });\n      });\n    }\n\n    this.currentSnapshot = captures;\n  }\n}\n","/**\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 {MockAnimationDriver, MockAnimationPlayer} from './mock_animation_driver';\n","/**\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/lic
 ense\n */\nimport {AnimateTimings, AnimationMetadata, AnimationMetadataType, AnimationOptions, sequence, ɵStyleData} from '@angular/animations';\nimport {Ast as AnimationAst, AstVisitor as AnimationAstVisitor} from './dsl/animation_ast';\nimport {AnimationDslVisitor} from './dsl/animation_dsl_visitor';\n\nexport const ONE_SECOND = 1000;\n\nexport const SUBSTITUTION_EXPR_START = '{{';\nexport const SUBSTITUTION_EXPR_END = '}}';\nexport const ENTER_CLASSNAME = 'ng-enter';\nexport const LEAVE_CLASSNAME = 'ng-leave';\nexport const ENTER_SELECTOR = '.ng-enter';\nexport const LEAVE_SELECTOR = '.ng-leave';\nexport const NG_TRIGGER_CLASSNAME = 'ng-trigger';\nexport const NG_TRIGGER_SELECTOR = '.ng-trigger';\nexport const NG_ANIMATING_CLASSNAME = 'ng-animating';\nexport const NG_ANIMATING_SELECTOR = '.ng-animating';\n\nexport function resolveTimingValue(value: string | number) {\n  if (typeof value == 'number') return value;\n\n  const matches = (value as string).match(/^(-?[\\.\\d]+)(m?s)/
 );\n  if (!matches || matches.length < 2) return 0;\n\n  return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\n\nfunction _convertTimeValueToMS(value: number, unit: string): number {\n  switch (unit) {\n    case 's':\n      return value * ONE_SECOND;\n    default:  // ms or something else\n      return value;\n  }\n}\n\nexport function resolveTiming(\n    timings: string | number | AnimateTimings, errors: any[], allowNegativeValues?: boolean) {\n  return timings.hasOwnProperty('duration') ?\n      <AnimateTimings>timings :\n      parseTimeExpression(<string|number>timings, errors, allowNegativeValues);\n}\n\nfunction parseTimeExpression(\n    exp: string | number, errors: string[], allowNegativeValues?: boolean): AnimateTimings {\n  const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n  let duration: number;\n  let delay: number = 0;\n  let easing: string = '';\n  if (typeof exp === 'string') {\n    const matches = exp.ma
 tch(regex);\n    if (matches === null) {\n      errors.push(`The provided timing value \"${exp}\" is invalid.`);\n      return {duration: 0, delay: 0, easing: ''};\n    }\n\n    duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n\n    const delayMatch = matches[3];\n    if (delayMatch != null) {\n      delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]);\n    }\n\n    const easingVal = matches[5];\n    if (easingVal) {\n      easing = easingVal;\n    }\n  } else {\n    duration = <number>exp;\n  }\n\n  if (!allowNegativeValues) {\n    let containsErrors = false;\n    let startIndex = errors.length;\n    if (duration < 0) {\n      errors.push(`Duration values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (delay < 0) {\n      errors.push(`Delay values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (containsErrors) {\n      errors.splice(sta
 rtIndex, 0, `The provided timing value \"${exp}\" is invalid.`);\n    }\n  }\n\n  return {duration, delay, easing};\n}\n\nexport function copyObj(\n    obj: {[key: string]: any}, destination: {[key: string]: any} = {}): {[key: string]: any} {\n  Object.keys(obj).forEach(prop => { destination[prop] = obj[prop]; });\n  return destination;\n}\n\nexport function normalizeStyles(styles: ɵStyleData | ɵStyleData[]): ɵStyleData {\n  const normalizedStyles: ɵStyleData = {};\n  if (Array.isArray(styles)) {\n    styles.forEach(data => copyStyles(data, false, normalizedStyles));\n  } else {\n    copyStyles(styles, false, normalizedStyles);\n  }\n  return normalizedStyles;\n}\n\nexport function copyStyles(\n    styles: ɵStyleData, readPrototype: boolean, destination: ɵStyleData = {}): ɵStyleData {\n  if (readPrototype) {\n    // we make use of a for-in loop so that the\n    // prototypically inherited properties are\n    // revealed from the backFill map\n    for (let prop in styles) {\n 
      destination[prop] = styles[prop];\n    }\n  } else {\n    copyObj(styles, destination);\n  }\n  return destination;\n}\n\nexport function setStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = styles[prop];\n    });\n  }\n}\n\nexport function eraseStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = '';\n    });\n  }\n}\n\nexport function normalizeAnimationEntry(steps: AnimationMetadata | AnimationMetadata[]):\n    AnimationMetadata {\n  if (Array.isArray(steps)) {\n    if (steps.length == 1) return steps[0];\n    return sequence(steps);\n  }\n  return steps as AnimationMetadata;\n}\n\nexport function validateStyleParams(\n    value: string | number, options: AnimationOptions, errors: any
 []) {\n  const params = options.params || {};\n  const matches = extractStyleParams(value);\n  if (matches.length) {\n    matches.forEach(varName => {\n      if (!params.hasOwnProperty(varName)) {\n        errors.push(\n            `Unable to resolve the local animation param ${varName} in the given list of values`);\n      }\n    });\n  }\n}\n\nconst PARAM_REGEX =\n    new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nexport function extractStyleParams(value: string | number): string[] {\n  let params: string[] = [];\n  if (typeof value === 'string') {\n    const val = value.toString();\n\n    let match: any;\n    while (match = PARAM_REGEX.exec(val)) {\n      params.push(match[1] as string);\n    }\n    PARAM_REGEX.lastIndex = 0;\n  }\n  return params;\n}\n\nexport function interpolateParams(\n    value: string | number, params: {[name: string]: any}, errors: any[]): string|number {\n  const original = value.toString();\n  const str = origina
 l.replace(PARAM_REGEX, (_, varName) => {\n    let localVal = params[varName];\n    // this means that the value was never overidden by the data passed in by the user\n    if (!params.hasOwnProperty(varName)) {\n      errors.push(`Please provide a value for the animation param ${varName}`);\n      localVal = '';\n    }\n    return localVal.toString();\n  });\n\n  // we do this to assert that numeric values stay as they are\n  return str == original ? value : str;\n}\n\nexport function iteratorToArray(iterator: any): any[] {\n  const arr: any[] = [];\n  let item = iterator.next();\n  while (!item.done) {\n    arr.push(item.value);\n    item = iterator.next();\n  }\n  return arr;\n}\n\nexport function mergeAnimationOptions(\n    source: AnimationOptions, destination: AnimationOptions): AnimationOptions {\n  if (source.params) {\n    const p0 = source.params;\n    if (!destination.params) {\n      destination.params = {};\n    }\n    const p1 = destination.params;\n    Object.keys(p0).f
 orEach(param => {\n      if (!p1.hasOwnProperty(param)) {\n        p1[param] = p0[param];\n      }\n    });\n  }\n  return destination;\n}\n\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: any[]) => m[1].toUpperCase());\n}\n\nexport function allowPreviousPlayerStylesMerge(duration: number, delay: number) {\n  return duration === 0 || delay === 0;\n}\n\nexport function visitDslNode(\n    visitor: AnimationDslVisitor, node: AnimationMetadata, context: any): any;\nexport function visitDslNode(\n    visitor: AnimationAstVisitor, node: AnimationAst<AnimationMetadataType>, context: any): any;\nexport function visitDslNode(visitor: any, node: any, context: any): any {\n  switch (node.type) {\n    case AnimationMetadataType.Trigger:\n      return visitor.visitTrigger(node, context);\n    case AnimationMetadataType.State:\n      return visitor.visitState(node, context);\n    case Animati
 onMetadataType.Transition:\n      return visitor.visitTransition(node, context);\n    case AnimationMetadataType.Sequence:\n      return visitor.visitSequence(node, context);\n    case AnimationMetadataType.Group:\n      return visitor.visitGroup(node, context);\n    case AnimationMetadataType.Animate:\n      return visitor.visitAnimate(node, context);\n    case AnimationMetadataType.Keyframes:\n      return visitor.visitKeyframes(node, context);\n    case AnimationMetadataType.Style:\n      return visitor.visitStyle(node, context);\n    case AnimationMetadataType.Reference:\n      return visitor.visitReference(node, context);\n    case AnimationMetadataType.AnimateChild:\n      return visitor.visitAnimateChild(node, context);\n    case AnimationMetadataType.AnimateRef:\n      return visitor.visitAnimateRef(node, context);\n    case AnimationMetadataType.Query:\n      return visitor.visitQuery(node, context);\n    case AnimationMetadataType.Stagger:\n      return visitor.visitStagge
 r(node, context);\n    default:\n      throw new Error(`Unable to resolve animation metadata node #${node.type}`);\n  }\n}\n","/**\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 {AUTO_STYLE, AnimationEvent, AnimationPlayer, NoopAnimationPlayer, ɵAnimationGroupPlayer, ɵPRE_STYLE as PRE_STYLE, ɵStyleData} from '@angular/animations';\n\nimport {AnimationStyleNormalizer} from '../../src/dsl/style_normalization/animation_style_normalizer';\nimport {AnimationDriver} from '../../src/render/animation_driver';\n\nexport function optimizeGroupPlayer(players: AnimationPlayer[]): AnimationPlayer {\n  switch (players.length) {\n    case 0:\n      return new NoopAnimationPlayer();\n    case 1:\n      return players[0];\n    default:\n      return new ɵAnimationGroupPlayer(players);\n  }\n}\n\nexport function normalizeKeyframes(\n
     driver: AnimationDriver, normalizer: AnimationStyleNormalizer, element: any,\n    keyframes: ɵStyleData[], preStyles: ɵStyleData = {},\n    postStyles: ɵStyleData = {}): ɵStyleData[] {\n  const errors: string[] = [];\n  const normalizedKeyframes: ɵStyleData[] = [];\n  let previousOffset = -1;\n  let previousKeyframe: ɵStyleData|null = null;\n  keyframes.forEach(kf => {\n    const offset = kf['offset'] as number;\n    const isSameOffset = offset == previousOffset;\n    const normalizedKeyframe: ɵStyleData = (isSameOffset && previousKeyframe) || {};\n    Object.keys(kf).forEach(prop => {\n      let normalizedProp = prop;\n      let normalizedValue = kf[prop];\n      if (prop !== 'offset') {\n        normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n        switch (normalizedValue) {\n          case PRE_STYLE:\n            normalizedValue = preStyles[prop];\n            break;\n\n          case AUTO_STYLE:\n            normalizedValue = postStyles[p
 rop];\n            break;\n\n          default:\n            normalizedValue =\n                normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n            break;\n        }\n      }\n      normalizedKeyframe[normalizedProp] = normalizedValue;\n    });\n    if (!isSameOffset) {\n      normalizedKeyframes.push(normalizedKeyframe);\n    }\n    previousKeyframe = normalizedKeyframe;\n    previousOffset = offset;\n  });\n  if (errors.length) {\n    const LINE_START = '\\n - ';\n    throw new Error(\n        `Unable to animate due to the following errors:${LINE_START}${errors.join(LINE_START)}`);\n  }\n\n  return normalizedKeyframes;\n}\n\nexport function listenOnPlayer(\n    player: AnimationPlayer, eventName: string, event: AnimationEvent | undefined,\n    callback: (event: any) => any) {\n  switch (eventName) {\n    case 'start':\n      player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player.totalTime)));\n      break;\n    case
  'done':\n      player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player.totalTime)));\n      break;\n    case 'destroy':\n      player.onDestroy(\n          () => callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)));\n      break;\n  }\n}\n\nexport function copyAnimationEvent(\n    e: AnimationEvent, phaseName?: string, totalTime?: number): AnimationEvent {\n  const event = makeAnimationEvent(\n      e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName,\n      totalTime == undefined ? e.totalTime : totalTime);\n  const data = (e as any)['_data'];\n  if (data != null) {\n    (event as any)['_data'] = data;\n  }\n  return event;\n}\n\nexport function makeAnimationEvent(\n    element: any, triggerName: string, fromState: string, toState: string, phaseName: string = '',\n    totalTime: number = 0): AnimationEvent {\n  return {element, triggerName, fromState, toState, phaseName, totalTime};\n}\n\nexport function getOrSetA
 sInMap(\n    map: Map<any, any>| {[key: string]: any}, key: any, defaultValue: any) {\n  let value: any;\n  if (map instanceof Map) {\n    value = map.get(key);\n    if (!value) {\n      map.set(key, value = defaultValue);\n    }\n  } else {\n    value = map[key];\n    if (!value) {\n      value = map[key] = defaultValue;\n    }\n  }\n  return value;\n}\n\nexport function parseTimelineCommand(command: string): [string, string] {\n  const separatorPos = command.indexOf(':');\n  const id = command.substring(1, separatorPos);\n  const action = command.substr(separatorPos + 1);\n  return [id, action];\n}\n\nlet _contains: (elm1: any, elm2: any) => boolean = (elm1: any, elm2: any) => false;\nlet _matches: (element: any, selector: string) => boolean = (element: any, selector: string) =>\n    false;\nlet _query: (element: any, selector: string, multi: boolean) => any[] =\n    (element: any, selector: string, multi: boolean) => {\n      return [];\n    };\n\nif (typeof Element != 'undefined
 ') {\n  // this is well supported in all browsers\n  _contains = (elm1: any, elm2: any) => { return elm1.contains(elm2) as boolean; };\n\n  if (Element.prototype.matches) {\n    _matches = (element: any, selector: string) => element.matches(selector);\n  } else {\n    const proto = Element.prototype as any;\n    const fn = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||\n        proto.oMatchesSelector || proto.webkitMatchesSelector;\n    if (fn) {\n      _matches = (element: any, selector: string) => fn.apply(element, [selector]);\n    }\n  }\n\n  _query = (element: any, selector: string, multi: boolean): any[] => {\n    let results: any[] = [];\n    if (multi) {\n      results.push(...element.querySelectorAll(selector));\n    } else {\n      const elm = element.querySelector(selector);\n      if (elm) {\n        results.push(elm);\n      }\n    }\n    return results;\n  };\n}\n\nexport const matchesElement = _matches;\nexport const containsElement = 
 _contains;\nexport const invokeQuery = _query;\n"],"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/animations/@angular/animations/browser/testing.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser/testing.js b/node_modules/@angular/animations/@angular/animations/browser/testing.js
new file mode 100644
index 0000000..5d60b4d
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser/testing.js
@@ -0,0 +1,216 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+import { AUTO_STYLE, NoopAnimationPlayer } from '@angular/animations';
+
+/**
+ * @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
+ */
+
+
+
+
+
+
+
+let _contains = (elm1, elm2) => false;
+let _matches = (element, selector) => false;
+let _query = (element, selector, multi) => {
+    return [];
+};
+if (typeof Element != 'undefined') {
+    // this is well supported in all browsers
+    _contains = (elm1, elm2) => { return elm1.contains(elm2); };
+    if (Element.prototype.matches) {
+        _matches = (element, selector) => element.matches(selector);
+    }
+    else {
+        const proto = Element.prototype;
+        const fn = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||
+            proto.oMatchesSelector || proto.webkitMatchesSelector;
+        if (fn) {
+            _matches = (element, selector) => fn.apply(element, [selector]);
+        }
+    }
+    _query = (element, selector, multi) => {
+        let results = [];
+        if (multi) {
+            results.push(...element.querySelectorAll(selector));
+        }
+        else {
+            const elm = element.querySelector(selector);
+            if (elm) {
+                results.push(elm);
+            }
+        }
+        return results;
+    };
+}
+const matchesElement = _matches;
+const containsElement = _contains;
+const invokeQuery = _query;
+
+/**
+ * @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
+ */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+function allowPreviousPlayerStylesMerge(duration, delay) {
+    return duration === 0 || delay === 0;
+}
+
+/**
+ * @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
+ */
+/**
+ * @experimental Animation support is experimental.
+ */
+class MockAnimationDriver {
+    matchesElement(element, selector) {
+        return matchesElement(element, selector);
+    }
+    containsElement(elm1, elm2) { return containsElement(elm1, elm2); }
+    query(element, selector, multi) {
+        return invokeQuery(element, selector, multi);
+    }
+    computeStyle(element, prop, defaultValue) {
+        return defaultValue || '';
+    }
+    animate(element, keyframes, duration, delay, easing, previousPlayers = []) {
+        const player = new MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers);
+        MockAnimationDriver.log.push(player);
+        return player;
+    }
+}
+MockAnimationDriver.log = [];
+/**
+ * @experimental Animation support is experimental.
+ */
+class MockAnimationPlayer extends NoopAnimationPlayer {
+    constructor(element, keyframes, duration, delay, easing, previousPlayers) {
+        super();
+        this.element = element;
+        this.keyframes = keyframes;
+        this.duration = duration;
+        this.delay = delay;
+        this.easing = easing;
+        this.previousPlayers = previousPlayers;
+        this.__finished = false;
+        this.__started = false;
+        this.previousStyles = {};
+        this._onInitFns = [];
+        this.currentSnapshot = {};
+        if (allowPreviousPlayerStylesMerge(duration, delay)) {
+            previousPlayers.forEach(player => {
+                if (player instanceof MockAnimationPlayer) {
+                    const styles = player.currentSnapshot;
+                    Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]);
+                }
+            });
+        }
+        this.totalTime = delay + duration;
+    }
+    /* @internal */
+    onInit(fn) { this._onInitFns.push(fn); }
+    /* @internal */
+    init() {
+        super.init();
+        this._onInitFns.forEach(fn => fn());
+        this._onInitFns = [];
+    }
+    finish() {
+        super.finish();
+        this.__finished = true;
+    }
+    destroy() {
+        super.destroy();
+        this.__finished = true;
+    }
+    /* @internal */
+    triggerMicrotask() { }
+    play() {
+        super.play();
+        this.__started = true;
+    }
+    hasStarted() { return this.__started; }
+    beforeDestroy() {
+        const captures = {};
+        Object.keys(this.previousStyles).forEach(prop => {
+            captures[prop] = this.previousStyles[prop];
+        });
+        if (this.hasStarted()) {
+            // when assembling the captured styles, it's important that
+            // we build the keyframe styles in the following order:
+            // {other styles within keyframes, ... previousStyles }
+            this.keyframes.forEach(kf => {
+                Object.keys(kf).forEach(prop => {
+                    if (prop != 'offset') {
+                        captures[prop] = this.__finished ? kf[prop] : AUTO_STYLE;
+                    }
+                });
+            });
+        }
+        this.currentSnapshot = captures;
+    }
+}
+
+/**
+ * @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
+ */
+
+/**
+ * @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
+ */
+/**
+ * @module
+ * @description
+ * Entry point for all public APIs of the platform-browser/animations/testing package.
+ */
+
+export { MockAnimationDriver, MockAnimationPlayer };
+//# sourceMappingURL=testing.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/@angular/animations/browser/testing.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser/testing.js.map b/node_modules/@angular/animations/@angular/animations/browser/testing.js.map
new file mode 100644
index 0000000..3e6b6b5
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser/testing.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"testing.js","sources":["../../../../../../packages/animations/browser/testing/index.ts","../../../../../../packages/animations/browser/testing/src/testing.ts","../../../../../../packages/animations/browser/testing/src/mock_animation_driver.ts","../../../../../../packages/animations/browser/src/util.ts","../../../../../../packages/animations/browser/src/render/shared.ts"],"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/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser/animations/testing package.\n */\n\nexport * from './src/testing';\n","/**\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 {MockAnimationDriver, MockAnimationPlayer} from './mock_animation_driver';\n","/**\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 {AUTO_STYLE, AnimationPlayer, NoopAnimationPlayer, ɵStyleData} from '@angular/animations';\n\nimport {AnimationDriver} from '../../src/render/animation_driver';\nimport {containsElement, invokeQuery, matchesElement} from '../../src/render/shared';\nimport {allowPreviousPlayerStylesMerge} from '../../src/util';\n\n/**\n * @experimental Animation support is experimental.\n */\nexport class MockAnimationDriver implements AnimationDriver {\n  static log: AnimationPlayer[] = [];\n\n  matchesElement(element: any, selector: string): boolean {\n    return matchesElement(element, selector);\n  }\n\n  containsElement(elm1: any, elm2: any): boolean { return containsElement(elm1, elm2); }\n\n 
  query(element: any, selector: string, multi: boolean): any[] {\n    return invokeQuery(element, selector, multi);\n  }\n\n  computeStyle(element: any, prop: string, defaultValue?: string): string {\n    return defaultValue || '';\n  }\n\n  animate(\n      element: any, keyframes: {[key: string]: string | number}[], duration: number, delay: number,\n      easing: string, previousPlayers: any[] = []): MockAnimationPlayer {\n    const player =\n        new MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers);\n    MockAnimationDriver.log.push(<AnimationPlayer>player);\n    return player;\n  }\n}\n\n/**\n * @experimental Animation support is experimental.\n */\nexport class MockAnimationPlayer extends NoopAnimationPlayer {\n  private __finished = false;\n  private __started = false;\n  public previousStyles: {[key: string]: string | number} = {};\n  private _onInitFns: (() => any)[] = [];\n  public currentSnapshot: ɵStyleData = {};\n\n  constructor(\n     
  public element: any, public keyframes: {[key: string]: string | number}[],\n      public duration: number, public delay: number, public easing: string,\n      public previousPlayers: any[]) {\n    super();\n\n    if (allowPreviousPlayerStylesMerge(duration, delay)) {\n      previousPlayers.forEach(player => {\n        if (player instanceof MockAnimationPlayer) {\n          const styles = player.currentSnapshot;\n          Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]);\n        }\n      });\n    }\n\n    this.totalTime = delay + duration;\n  }\n\n  /* @internal */\n  onInit(fn: () => any) { this._onInitFns.push(fn); }\n\n  /* @internal */\n  init() {\n    super.init();\n    this._onInitFns.forEach(fn => fn());\n    this._onInitFns = [];\n  }\n\n  finish(): void {\n    super.finish();\n    this.__finished = true;\n  }\n\n  destroy(): void {\n    super.destroy();\n    this.__finished = true;\n  }\n\n  /* @internal */\n  triggerMicrotask() {}\n\n  play()
 : void {\n    super.play();\n    this.__started = true;\n  }\n\n  hasStarted() { return this.__started; }\n\n  beforeDestroy() {\n    const captures: ɵStyleData = {};\n\n    Object.keys(this.previousStyles).forEach(prop => {\n      captures[prop] = this.previousStyles[prop];\n    });\n\n    if (this.hasStarted()) {\n      // when assembling the captured styles, it's important that\n      // we build the keyframe styles in the following order:\n      // {other styles within keyframes, ... previousStyles }\n      this.keyframes.forEach(kf => {\n        Object.keys(kf).forEach(prop => {\n          if (prop != 'offset') {\n            captures[prop] = this.__finished ? kf[prop] : AUTO_STYLE;\n          }\n        });\n      });\n    }\n\n    this.currentSnapshot = captures;\n  }\n}\n","/**\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 {AnimateTimings, AnimationMetadata, AnimationMetadataType, AnimationOptions, sequence, ɵStyleData} from '@angular/animations';\nimport {Ast as AnimationAst, AstVisitor as AnimationAstVisitor} from './dsl/animation_ast';\nimport {AnimationDslVisitor} from './dsl/animation_dsl_visitor';\n\nexport const ONE_SECOND = 1000;\n\nexport const SUBSTITUTION_EXPR_START = '{{';\nexport const SUBSTITUTION_EXPR_END = '}}';\nexport const ENTER_CLASSNAME = 'ng-enter';\nexport const LEAVE_CLASSNAME = 'ng-leave';\nexport const ENTER_SELECTOR = '.ng-enter';\nexport const LEAVE_SELECTOR = '.ng-leave';\nexport const NG_TRIGGER_CLASSNAME = 'ng-trigger';\nexport const NG_TRIGGER_SELECTOR = '.ng-trigger';\nexport const NG_ANIMATING_CLASSNAME = 'ng-animating';\nexport const NG_ANIMATING_SELECTOR = '.ng-animating';\n\nexport function resolveTimingValue(value: string | number) {\n  if (typeof value == 'number') return value;\n\n  const matches = (value as string).match(/^(-?[\\.\\d]+)(m?s)/);\n
   if (!matches || matches.length < 2) return 0;\n\n  return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\n\nfunction _convertTimeValueToMS(value: number, unit: string): number {\n  switch (unit) {\n    case 's':\n      return value * ONE_SECOND;\n    default:  // ms or something else\n      return value;\n  }\n}\n\nexport function resolveTiming(\n    timings: string | number | AnimateTimings, errors: any[], allowNegativeValues?: boolean) {\n  return timings.hasOwnProperty('duration') ?\n      <AnimateTimings>timings :\n      parseTimeExpression(<string|number>timings, errors, allowNegativeValues);\n}\n\nfunction parseTimeExpression(\n    exp: string | number, errors: string[], allowNegativeValues?: boolean): AnimateTimings {\n  const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n  let duration: number;\n  let delay: number = 0;\n  let easing: string = '';\n  if (typeof exp === 'string') {\n    const matches = exp.match(
 regex);\n    if (matches === null) {\n      errors.push(`The provided timing value \"${exp}\" is invalid.`);\n      return {duration: 0, delay: 0, easing: ''};\n    }\n\n    duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n\n    const delayMatch = matches[3];\n    if (delayMatch != null) {\n      delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]);\n    }\n\n    const easingVal = matches[5];\n    if (easingVal) {\n      easing = easingVal;\n    }\n  } else {\n    duration = <number>exp;\n  }\n\n  if (!allowNegativeValues) {\n    let containsErrors = false;\n    let startIndex = errors.length;\n    if (duration < 0) {\n      errors.push(`Duration values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (delay < 0) {\n      errors.push(`Delay values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (containsErrors) {\n      errors.splice(startIn
 dex, 0, `The provided timing value \"${exp}\" is invalid.`);\n    }\n  }\n\n  return {duration, delay, easing};\n}\n\nexport function copyObj(\n    obj: {[key: string]: any}, destination: {[key: string]: any} = {}): {[key: string]: any} {\n  Object.keys(obj).forEach(prop => { destination[prop] = obj[prop]; });\n  return destination;\n}\n\nexport function normalizeStyles(styles: ɵStyleData | ɵStyleData[]): ɵStyleData {\n  const normalizedStyles: ɵStyleData = {};\n  if (Array.isArray(styles)) {\n    styles.forEach(data => copyStyles(data, false, normalizedStyles));\n  } else {\n    copyStyles(styles, false, normalizedStyles);\n  }\n  return normalizedStyles;\n}\n\nexport function copyStyles(\n    styles: ɵStyleData, readPrototype: boolean, destination: ɵStyleData = {}): ɵStyleData {\n  if (readPrototype) {\n    // we make use of a for-in loop so that the\n    // prototypically inherited properties are\n    // revealed from the backFill map\n    for (let prop in styles) {\n     
  destination[prop] = styles[prop];\n    }\n  } else {\n    copyObj(styles, destination);\n  }\n  return destination;\n}\n\nexport function setStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = styles[prop];\n    });\n  }\n}\n\nexport function eraseStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = '';\n    });\n  }\n}\n\nexport function normalizeAnimationEntry(steps: AnimationMetadata | AnimationMetadata[]):\n    AnimationMetadata {\n  if (Array.isArray(steps)) {\n    if (steps.length == 1) return steps[0];\n    return sequence(steps);\n  }\n  return steps as AnimationMetadata;\n}\n\nexport function validateStyleParams(\n    value: string | number, options: AnimationOptions, errors: any[]) 
 {\n  const params = options.params || {};\n  const matches = extractStyleParams(value);\n  if (matches.length) {\n    matches.forEach(varName => {\n      if (!params.hasOwnProperty(varName)) {\n        errors.push(\n            `Unable to resolve the local animation param ${varName} in the given list of values`);\n      }\n    });\n  }\n}\n\nconst PARAM_REGEX =\n    new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nexport function extractStyleParams(value: string | number): string[] {\n  let params: string[] = [];\n  if (typeof value === 'string') {\n    const val = value.toString();\n\n    let match: any;\n    while (match = PARAM_REGEX.exec(val)) {\n      params.push(match[1] as string);\n    }\n    PARAM_REGEX.lastIndex = 0;\n  }\n  return params;\n}\n\nexport function interpolateParams(\n    value: string | number, params: {[name: string]: any}, errors: any[]): string|number {\n  const original = value.toString();\n  const str = original.re
 place(PARAM_REGEX, (_, varName) => {\n    let localVal = params[varName];\n    // this means that the value was never overidden by the data passed in by the user\n    if (!params.hasOwnProperty(varName)) {\n      errors.push(`Please provide a value for the animation param ${varName}`);\n      localVal = '';\n    }\n    return localVal.toString();\n  });\n\n  // we do this to assert that numeric values stay as they are\n  return str == original ? value : str;\n}\n\nexport function iteratorToArray(iterator: any): any[] {\n  const arr: any[] = [];\n  let item = iterator.next();\n  while (!item.done) {\n    arr.push(item.value);\n    item = iterator.next();\n  }\n  return arr;\n}\n\nexport function mergeAnimationOptions(\n    source: AnimationOptions, destination: AnimationOptions): AnimationOptions {\n  if (source.params) {\n    const p0 = source.params;\n    if (!destination.params) {\n      destination.params = {};\n    }\n    const p1 = destination.params;\n    Object.keys(p0).forEa
 ch(param => {\n      if (!p1.hasOwnProperty(param)) {\n        p1[param] = p0[param];\n      }\n    });\n  }\n  return destination;\n}\n\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: any[]) => m[1].toUpperCase());\n}\n\nexport function allowPreviousPlayerStylesMerge(duration: number, delay: number) {\n  return duration === 0 || delay === 0;\n}\n\nexport function visitDslNode(\n    visitor: AnimationDslVisitor, node: AnimationMetadata, context: any): any;\nexport function visitDslNode(\n    visitor: AnimationAstVisitor, node: AnimationAst<AnimationMetadataType>, context: any): any;\nexport function visitDslNode(visitor: any, node: any, context: any): any {\n  switch (node.type) {\n    case AnimationMetadataType.Trigger:\n      return visitor.visitTrigger(node, context);\n    case AnimationMetadataType.State:\n      return visitor.visitState(node, context);\n    case AnimationMe
 tadataType.Transition:\n      return visitor.visitTransition(node, context);\n    case AnimationMetadataType.Sequence:\n      return visitor.visitSequence(node, context);\n    case AnimationMetadataType.Group:\n      return visitor.visitGroup(node, context);\n    case AnimationMetadataType.Animate:\n      return visitor.visitAnimate(node, context);\n    case AnimationMetadataType.Keyframes:\n      return visitor.visitKeyframes(node, context);\n    case AnimationMetadataType.Style:\n      return visitor.visitStyle(node, context);\n    case AnimationMetadataType.Reference:\n      return visitor.visitReference(node, context);\n    case AnimationMetadataType.AnimateChild:\n      return visitor.visitAnimateChild(node, context);\n    case AnimationMetadataType.AnimateRef:\n      return visitor.visitAnimateRef(node, context);\n    case AnimationMetadataType.Query:\n      return visitor.visitQuery(node, context);\n    case AnimationMetadataType.Stagger:\n      return visitor.visitStagger(no
 de, context);\n    default:\n      throw new Error(`Unable to resolve animation metadata node #${node.type}`);\n  }\n}\n","/**\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 {AUTO_STYLE, AnimationEvent, AnimationPlayer, NoopAnimationPlayer, ɵAnimationGroupPlayer, ɵPRE_STYLE as PRE_STYLE, ɵStyleData} from '@angular/animations';\n\nimport {AnimationStyleNormalizer} from '../../src/dsl/style_normalization/animation_style_normalizer';\nimport {AnimationDriver} from '../../src/render/animation_driver';\n\nexport function optimizeGroupPlayer(players: AnimationPlayer[]): AnimationPlayer {\n  switch (players.length) {\n    case 0:\n      return new NoopAnimationPlayer();\n    case 1:\n      return players[0];\n    default:\n      return new ɵAnimationGroupPlayer(players);\n  }\n}\n\nexport function normalizeKeyframes(\n    
 driver: AnimationDriver, normalizer: AnimationStyleNormalizer, element: any,\n    keyframes: ɵStyleData[], preStyles: ɵStyleData = {},\n    postStyles: ɵStyleData = {}): ɵStyleData[] {\n  const errors: string[] = [];\n  const normalizedKeyframes: ɵStyleData[] = [];\n  let previousOffset = -1;\n  let previousKeyframe: ɵStyleData|null = null;\n  keyframes.forEach(kf => {\n    const offset = kf['offset'] as number;\n    const isSameOffset = offset == previousOffset;\n    const normalizedKeyframe: ɵStyleData = (isSameOffset && previousKeyframe) || {};\n    Object.keys(kf).forEach(prop => {\n      let normalizedProp = prop;\n      let normalizedValue = kf[prop];\n      if (prop !== 'offset') {\n        normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n        switch (normalizedValue) {\n          case PRE_STYLE:\n            normalizedValue = preStyles[prop];\n            break;\n\n          case AUTO_STYLE:\n            normalizedValue = postStyles[prop]
 ;\n            break;\n\n          default:\n            normalizedValue =\n                normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n            break;\n        }\n      }\n      normalizedKeyframe[normalizedProp] = normalizedValue;\n    });\n    if (!isSameOffset) {\n      normalizedKeyframes.push(normalizedKeyframe);\n    }\n    previousKeyframe = normalizedKeyframe;\n    previousOffset = offset;\n  });\n  if (errors.length) {\n    const LINE_START = '\\n - ';\n    throw new Error(\n        `Unable to animate due to the following errors:${LINE_START}${errors.join(LINE_START)}`);\n  }\n\n  return normalizedKeyframes;\n}\n\nexport function listenOnPlayer(\n    player: AnimationPlayer, eventName: string, event: AnimationEvent | undefined,\n    callback: (event: any) => any) {\n  switch (eventName) {\n    case 'start':\n      player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player.totalTime)));\n      break;\n    case 'do
 ne':\n      player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player.totalTime)));\n      break;\n    case 'destroy':\n      player.onDestroy(\n          () => callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)));\n      break;\n  }\n}\n\nexport function copyAnimationEvent(\n    e: AnimationEvent, phaseName?: string, totalTime?: number): AnimationEvent {\n  const event = makeAnimationEvent(\n      e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName,\n      totalTime == undefined ? e.totalTime : totalTime);\n  const data = (e as any)['_data'];\n  if (data != null) {\n    (event as any)['_data'] = data;\n  }\n  return event;\n}\n\nexport function makeAnimationEvent(\n    element: any, triggerName: string, fromState: string, toState: string, phaseName: string = '',\n    totalTime: number = 0): AnimationEvent {\n  return {element, triggerName, fromState, toState, phaseName, totalTime};\n}\n\nexport function getOrSetAsInM
 ap(\n    map: Map<any, any>| {[key: string]: any}, key: any, defaultValue: any) {\n  let value: any;\n  if (map instanceof Map) {\n    value = map.get(key);\n    if (!value) {\n      map.set(key, value = defaultValue);\n    }\n  } else {\n    value = map[key];\n    if (!value) {\n      value = map[key] = defaultValue;\n    }\n  }\n  return value;\n}\n\nexport function parseTimelineCommand(command: string): [string, string] {\n  const separatorPos = command.indexOf(':');\n  const id = command.substring(1, separatorPos);\n  const action = command.substr(separatorPos + 1);\n  return [id, action];\n}\n\nlet _contains: (elm1: any, elm2: any) => boolean = (elm1: any, elm2: any) => false;\nlet _matches: (element: any, selector: string) => boolean = (element: any, selector: string) =>\n    false;\nlet _query: (element: any, selector: string, multi: boolean) => any[] =\n    (element: any, selector: string, multi: boolean) => {\n      return [];\n    };\n\nif (typeof Element != 'undefined') {
 \n  // this is well supported in all browsers\n  _contains = (elm1: any, elm2: any) => { return elm1.contains(elm2) as boolean; };\n\n  if (Element.prototype.matches) {\n    _matches = (element: any, selector: string) => element.matches(selector);\n  } else {\n    const proto = Element.prototype as any;\n    const fn = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||\n        proto.oMatchesSelector || proto.webkitMatchesSelector;\n    if (fn) {\n      _matches = (element: any, selector: string) => fn.apply(element, [selector]);\n    }\n  }\n\n  _query = (element: any, selector: string, multi: boolean): any[] => {\n    let results: any[] = [];\n    if (multi) {\n      results.push(...element.querySelectorAll(selector));\n    } else {\n      const elm = element.querySelector(selector);\n      if (elm) {\n        results.push(elm);\n      }\n    }\n    return results;\n  };\n}\n\nexport const matchesElement = _matches;\nexport const containsElement = _con
 tains;\nexport const invokeQuery = _query;\n"],"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/animations/animations.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/animations.d.ts b/node_modules/@angular/animations/animations.d.ts
new file mode 100644
index 0000000..7417cc8
--- /dev/null
+++ b/node_modules/@angular/animations/animations.d.ts
@@ -0,0 +1,4 @@
+/**
+ * Generated bundle index. Do not edit.
+ */
+export * from './public_api';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/animations.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/animations.metadata.json b/node_modules/@angular/animations/animations.metadata.json
new file mode 100644
index 0000000..2b5c2e0
--- /dev/null
+++ b/node_modules/@angular/animations/animations.metadata.json
@@ -0,0 +1 @@
+{"__symbolic":"module","version":3,"metadata":{"AnimationBuilder":{"__symbolic":"class","members":{"build":[{"__symbolic":"method"}]}},"AnimationFactory":{"__symbolic":"class","members":{"create":[{"__symbolic":"method"}]}},"AnimationEvent":{"__symbolic":"interface"},"AUTO_STYLE":"*","AnimateChildOptions":{"__symbolic":"interface"},"AnimateTimings":{"__symbolic":"interface"},"AnimationAnimateChildMetadata":{"__symbolic":"interface"},"AnimationAnimateMetadata":{"__symbolic":"interface"},"AnimationAnimateRefMetadata":{"__symbolic":"interface"},"AnimationGroupMetadata":{"__symbolic":"interface"},"AnimationKeyframesSequenceMetadata":{"__symbolic":"interface"},"AnimationMetadata":{"__symbolic":"interface"},"AnimationMetadataType":{"State":0,"Transition":1,"Sequence":2,"Group":3,"Animate":4,"Keyframes":5,"Style":6,"Trigger":7,"Reference":8,"AnimateChild":9,"AnimateRef":10,"Query":11,"Stagger":12},"AnimationOptions":{"__symbolic":"interface"},"AnimationQueryMetadata":{"__symbolic":"interfa
 ce"},"AnimationQueryOptions":{"__symbolic":"interface"},"AnimationReferenceMetadata":{"__symbolic":"interface"},"AnimationSequenceMetadata":{"__symbolic":"interface"},"AnimationStaggerMetadata":{"__symbolic":"interface"},"AnimationStateMetadata":{"__symbolic":"interface"},"AnimationStyleMetadata":{"__symbolic":"interface"},"AnimationTransitionMetadata":{"__symbolic":"interface"},"AnimationTriggerMetadata":{"__symbolic":"interface"},"animate":{"__symbolic":"function","parameters":["timings","styles"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Animate"},"styles":{"__symbolic":"reference","name":"styles"},"timings":{"__symbolic":"reference","name":"timings"}}},"animateChild":{"__symbolic":"function","parameters":["options"],"defaults":[null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"AnimateChild"},"options":{"_
 _symbolic":"reference","name":"options"}}},"animation":{"__symbolic":"function","parameters":["steps","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Reference"},"animation":{"__symbolic":"reference","name":"steps"},"options":{"__symbolic":"reference","name":"options"}}},"group":{"__symbolic":"function","parameters":["steps","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Group"},"steps":{"__symbolic":"reference","name":"steps"},"options":{"__symbolic":"reference","name":"options"}}},"keyframes":{"__symbolic":"function","parameters":["steps"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Keyframes"},"steps":{"__symbolic":"reference","name":"steps"}}},"query":{"__symbolic":"function","parameters":["sele
 ctor","animation","options"],"defaults":[null,null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Query"},"selector":{"__symbolic":"reference","name":"selector"},"animation":{"__symbolic":"reference","name":"animation"},"options":{"__symbolic":"reference","name":"options"}}},"sequence":{"__symbolic":"function","parameters":["steps","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Sequence"},"steps":{"__symbolic":"reference","name":"steps"},"options":{"__symbolic":"reference","name":"options"}}},"stagger":{"__symbolic":"function","parameters":["timings","animation"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Stagger"},"timings":{"__symbolic":"reference","name":"timings"},"animation":{"__symbolic":"reference","name":"animation"}
 }},"state":{"__symbolic":"function","parameters":["name","styles","options"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"State"},"name":{"__symbolic":"reference","name":"name"},"styles":{"__symbolic":"reference","name":"styles"},"options":{"__symbolic":"reference","name":"options"}}},"style":{"__symbolic":"function","parameters":["tokens"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Style"},"styles":{"__symbolic":"reference","name":"tokens"},"offset":null}},"transition":{"__symbolic":"function","parameters":["stateChangeExpr","steps","options"],"defaults":[null,null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Transition"},"expr":{"__symbolic":"reference","name":"stateChangeExpr"},"animation":{"__symbolic":"reference","name":"steps"},"options":{"__symbol
 ic":"reference","name":"options"}}},"trigger":{"__symbolic":"function","parameters":["name","definitions"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Trigger"},"name":{"__symbolic":"reference","name":"name"},"definitions":{"__symbolic":"reference","name":"definitions"},"options":{}}},"useAnimation":{"__symbolic":"function","parameters":["animation","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"AnimateRef"},"animation":{"__symbolic":"reference","name":"animation"},"options":{"__symbolic":"reference","name":"options"}}},"ɵStyleData":{"__symbolic":"interface"},"AnimationPlayer":{"__symbolic":"interface"},"NoopAnimationPlayer":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"_onFinish":[{"__symbolic":"method"}],"onStart":[{"__symbolic":"method"}],"onDone":[{"__symbolic":"method
 "}],"onDestroy":[{"__symbolic":"method"}],"hasStarted":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"triggerMicrotask":[{"__symbolic":"method"}],"_onStart":[{"__symbolic":"method"}],"pause":[{"__symbolic":"method"}],"restart":[{"__symbolic":"method"}],"finish":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setPosition":[{"__symbolic":"method"}],"getPosition":[{"__symbolic":"method"}]}},"ɵPRE_STYLE":"!","ɵAnimationGroupPlayer":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AnimationPlayer"}]}]}],"_onFinish":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"onStart":[{"__symbolic":"method"}],"_onStart":[{"__symbolic":"method"}],"onDone":[{"__symbolic":"method"}],"onDestroy":[{"__symbolic":"method"}],"hasStarted":[{"__symbolic":"method"}],"play":[{"__sy
 mbolic":"method"}],"pause":[{"__symbolic":"method"}],"restart":[{"__symbolic":"method"}],"finish":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"_onDestroy":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setPosition":[{"__symbolic":"method"}],"getPosition":[{"__symbolic":"method"}],"beforeDestroy":[{"__symbolic":"method"}]}}},"origins":{"AnimationBuilder":"./src/animation_builder","AnimationFactory":"./src/animation_builder","AnimationEvent":"./src/animation_event","AUTO_STYLE":"./src/animation_metadata","AnimateChildOptions":"./src/animation_metadata","AnimateTimings":"./src/animation_metadata","AnimationAnimateChildMetadata":"./src/animation_metadata","AnimationAnimateMetadata":"./src/animation_metadata","AnimationAnimateRefMetadata":"./src/animation_metadata","AnimationGroupMetadata":"./src/animation_metadata","AnimationKeyframesSequenceMetadata":"./src/animation_metadata","AnimationMetadata":"./src/animation_metadata","AnimationMetadataType":"./src/
 animation_metadata","AnimationOptions":"./src/animation_metadata","AnimationQueryMetadata":"./src/animation_metadata","AnimationQueryOptions":"./src/animation_metadata","AnimationReferenceMetadata":"./src/animation_metadata","AnimationSequenceMetadata":"./src/animation_metadata","AnimationStaggerMetadata":"./src/animation_metadata","AnimationStateMetadata":"./src/animation_metadata","AnimationStyleMetadata":"./src/animation_metadata","AnimationTransitionMetadata":"./src/animation_metadata","AnimationTriggerMetadata":"./src/animation_metadata","animate":"./src/animation_metadata","animateChild":"./src/animation_metadata","animation":"./src/animation_metadata","group":"./src/animation_metadata","keyframes":"./src/animation_metadata","query":"./src/animation_metadata","sequence":"./src/animation_metadata","stagger":"./src/animation_metadata","state":"./src/animation_metadata","style":"./src/animation_metadata","transition":"./src/animation_metadata","trigger":"./src/animation_metadata"
 ,"useAnimation":"./src/animation_metadata","ɵStyleData":"./src/animation_metadata","AnimationPlayer":"./src/players/animation_player","NoopAnimationPlayer":"./src/players/animation_player","ɵPRE_STYLE":"./src/private_export","ɵAnimationGroupPlayer":"./src/players/animation_group_player"},"importAs":"@angular/animations"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser.d.ts b/node_modules/@angular/animations/browser.d.ts
new file mode 100644
index 0000000..16a14fb
--- /dev/null
+++ b/node_modules/@angular/animations/browser.d.ts
@@ -0,0 +1,6 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */ 
+ export * from './browser/index'

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser.metadata.json b/node_modules/@angular/animations/browser.metadata.json
new file mode 100644
index 0000000..69ecc18
--- /dev/null
+++ b/node_modules/@angular/animations/browser.metadata.json
@@ -0,0 +1 @@
+{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./browser/index"}],"flatModuleIndexRedirect":true}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/index.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/index.d.ts b/node_modules/@angular/animations/browser/index.d.ts
new file mode 100644
index 0000000..7417cc8
--- /dev/null
+++ b/node_modules/@angular/animations/browser/index.d.ts
@@ -0,0 +1,4 @@
+/**
+ * Generated bundle index. Do not edit.
+ */
+export * from './public_api';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/index.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/index.metadata.json b/node_modules/@angular/animations/browser/index.metadata.json
new file mode 100644
index 0000000..fcc916a
--- /dev/null
+++ b/node_modules/@angular/animations/browser/index.metadata.json
@@ -0,0 +1 @@
+{"__symbolic":"module","version":3,"metadata":{"AnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]},"statics":{"NOOP":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NoopAnimationDriver"}}}},"ɵAnimation":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AnimationDriver"},{"__symbolic":"reference","module":"@angular/animations","name":"AnimationMetadata"}]}],"buildTimelines":[{"__symbolic":"method"}]}},"ɵAnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"ɵNoopAnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"_
 _symbolic":"method"}]}},"ɵWebAnimationsStyleNormalizer":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵAnimationStyleNormalizer"},"members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"ɵNoopAnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]}},"ɵAnimationEngine":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AnimationDriver"},{"__symbolic":"reference","name":"ɵAnimationStyleNormalizer"}]}],"registerTrigger":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"onInsert":[{"__symbolic":"method"}],"onRemove":[{"__symbolic":"method"}],"disableAnimations":[{"__symbolic":"method"}],"process":[{"__
 symbolic":"method"}],"listen":[{"__symbolic":"method"}],"flush":[{"__symbolic":"method"}],"whenRenderingDone":[{"__symbolic":"method"}]}},"ɵWebAnimationsDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]}},"ɵsupportsWebAnimations":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"error","message":"Expression form not supported","line":48,"character":9,"module":"./src/render/web_animations/web_animations_driver"},"right":"undefined"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":48,"character":43,"module":"./src/render/web_animations/web_animations_driver"},"right":"function"}}},"ɵWebAnimationsPlayer":{"__symbolic":
 "class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":32,"character":45,"module":"./src/render/web_animations/web_animations_player"}]},{"__symbolic":"error","message":"Expression form not supported","line":33,"character":22,"module":"./src/render/web_animations/web_animations_player"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ɵWebAnimationsPlayer"}]}]}],"_onFinish":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"_buildPlayer":[{"__symbolic":"method"}],"_preparePlayerBeforeStart":[{"__symbolic":"method"}],"_triggerWebAnimation":[{"__symbolic":"method"}],"onStart":[{"__symbolic":"method"}],"onDone":[{"__symbolic":"method"}],"onDestroy":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"pause":[{"__symbolic":"method"}],"finish":[{"__symb
 olic":"method"}],"reset":[{"__symbolic":"method"}],"_resetDomPlayerState":[{"__symbolic":"method"}],"restart":[{"__symbolic":"method"}],"hasStarted":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"setPosition":[{"__symbolic":"method"}],"getPosition":[{"__symbolic":"method"}],"beforeDestroy":[{"__symbolic":"method"}]}}},"origins":{"AnimationDriver":"./src/render/animation_driver","ɵAnimation":"./src/dsl/animation","ɵAnimationStyleNormalizer":"./src/dsl/style_normalization/animation_style_normalizer","ɵNoopAnimationStyleNormalizer":"./src/dsl/style_normalization/animation_style_normalizer","ɵWebAnimationsStyleNormalizer":"./src/dsl/style_normalization/web_animations_style_normalizer","ɵNoopAnimationDriver":"./src/render/animation_driver","ɵAnimationEngine":"./src/render/animation_engine_next","ɵWebAnimationsDriver":"./src/render/web_animations/web_animations_driver","ɵsupportsWebAnimations":"./src/render/web_animations/web_animations_driver","ɵWebAnimationsPlay
 er":"./src/render/web_animations/web_animations_player"},"importAs":"@angular/animations/browser"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/package.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/package.json b/node_modules/@angular/animations/browser/package.json
new file mode 100644
index 0000000..b9d1595
--- /dev/null
+++ b/node_modules/@angular/animations/browser/package.json
@@ -0,0 +1,7 @@
+{
+  "name": "@angular/animations/browser",
+  "typings": "../browser.d.ts",
+  "main": "../bundles/animations-browser.umd.js",
+  "module": "../@angular/animations/browser.es5.js",
+  "es2015": "../@angular/animations/browser.js"
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/public_api.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/public_api.d.ts b/node_modules/@angular/animations/browser/public_api.d.ts
new file mode 100644
index 0000000..2af4ec6
--- /dev/null
+++ b/node_modules/@angular/animations/browser/public_api.d.ts
@@ -0,0 +1,13 @@
+/**
+ * @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
+ */
+/**
+ * @module
+ * @description
+ * Entry point for all public APIs of the animation package.
+ */
+export * from './src/browser';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/browser.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/browser.d.ts b/node_modules/@angular/animations/browser/src/browser.d.ts
new file mode 100644
index 0000000..bdbe837
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/browser.d.ts
@@ -0,0 +1,14 @@
+/**
+ * @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
+ */
+/**
+ * @module
+ * @description
+ * Entry point for all animation APIs of the animation browser package.
+ */
+export { AnimationDriver } from './render/animation_driver';
+export * from './private_export';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation.d.ts
new file mode 100644
index 0000000..395228f
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation.d.ts
@@ -0,0 +1,17 @@
+/**
+ * @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 { AnimationMetadata, AnimationOptions, ɵStyleData } from '@angular/animations';
+import { AnimationDriver } from '../render/animation_driver';
+import { AnimationTimelineInstruction } from './animation_timeline_instruction';
+import { ElementInstructionMap } from './element_instruction_map';
+export declare class Animation {
+    private _driver;
+    private _animationAst;
+    constructor(_driver: AnimationDriver, input: AnimationMetadata | AnimationMetadata[]);
+    buildTimelines(element: any, startingStyles: ɵStyleData | ɵStyleData[], destinationStyles: ɵStyleData | ɵStyleData[], options: AnimationOptions, subInstructions?: ElementInstructionMap): AnimationTimelineInstruction[];
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_ast.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_ast.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation_ast.d.ts
new file mode 100644
index 0000000..83080f4
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_ast.d.ts
@@ -0,0 +1,96 @@
+/**
+ * @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 { AnimateTimings, AnimationMetadataType, AnimationOptions, ɵStyleData } from '@angular/animations';
+export interface AstVisitor {
+    visitTrigger(ast: TriggerAst, context: any): any;
+    visitState(ast: StateAst, context: any): any;
+    visitTransition(ast: TransitionAst, context: any): any;
+    visitSequence(ast: SequenceAst, context: any): any;
+    visitGroup(ast: GroupAst, context: any): any;
+    visitAnimate(ast: AnimateAst, context: any): any;
+    visitStyle(ast: StyleAst, context: any): any;
+    visitKeyframes(ast: KeyframesAst, context: any): any;
+    visitReference(ast: ReferenceAst, context: any): any;
+    visitAnimateChild(ast: AnimateChildAst, context: any): any;
+    visitAnimateRef(ast: AnimateRefAst, context: any): any;
+    visitQuery(ast: QueryAst, context: any): any;
+    visitStagger(ast: StaggerAst, context: any): any;
+}
+export interface Ast<T extends AnimationMetadataType> {
+    type: T;
+    options: AnimationOptions | null;
+}
+export interface TriggerAst extends Ast<AnimationMetadataType.Trigger> {
+    type: AnimationMetadataType.Trigger;
+    name: string;
+    states: StateAst[];
+    transitions: TransitionAst[];
+    queryCount: number;
+    depCount: number;
+}
+export interface StateAst extends Ast<AnimationMetadataType.State> {
+    type: AnimationMetadataType.State;
+    name: string;
+    style: StyleAst;
+}
+export interface TransitionAst extends Ast<AnimationMetadataType.Transition> {
+    matchers: ((fromState: string, toState: string) => boolean)[];
+    animation: Ast<AnimationMetadataType>;
+    queryCount: number;
+    depCount: number;
+}
+export interface SequenceAst extends Ast<AnimationMetadataType.Sequence> {
+    steps: Ast<AnimationMetadataType>[];
+}
+export interface GroupAst extends Ast<AnimationMetadataType.Group> {
+    steps: Ast<AnimationMetadataType>[];
+}
+export interface AnimateAst extends Ast<AnimationMetadataType.Animate> {
+    timings: TimingAst;
+    style: StyleAst | KeyframesAst;
+}
+export interface StyleAst extends Ast<AnimationMetadataType.Style> {
+    styles: (ɵStyleData | string)[];
+    easing: string | null;
+    offset: number | null;
+    containsDynamicStyles: boolean;
+    isEmptyStep?: boolean;
+}
+export interface KeyframesAst extends Ast<AnimationMetadataType.Keyframes> {
+    styles: StyleAst[];
+}
+export interface ReferenceAst extends Ast<AnimationMetadataType.Reference> {
+    animation: Ast<AnimationMetadataType>;
+}
+export interface AnimateChildAst extends Ast<AnimationMetadataType.AnimateChild> {
+}
+export interface AnimateRefAst extends Ast<AnimationMetadataType.AnimateRef> {
+    animation: ReferenceAst;
+}
+export interface QueryAst extends Ast<AnimationMetadataType.Query> {
+    selector: string;
+    limit: number;
+    optional: boolean;
+    includeSelf: boolean;
+    animation: Ast<AnimationMetadataType>;
+    originalSelector: string;
+}
+export interface StaggerAst extends Ast<AnimationMetadataType.Stagger> {
+    timings: AnimateTimings;
+    animation: Ast<AnimationMetadataType>;
+}
+export interface TimingAst {
+    duration: number;
+    delay: number;
+    easing: string | null;
+    dynamic?: boolean;
+}
+export interface DynamicTimingAst extends TimingAst {
+    strValue: string;
+    dynamic: true;
+}


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/@angular/animations.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations.js b/node_modules/@angular/animations/@angular/animations.js
new file mode 100644
index 0000000..c2aa7cf
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations.js
@@ -0,0 +1,1301 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+/**
+ * @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
+ */
+/**
+ * AnimationBuilder is an injectable service that is available when the {\@link
+ * BrowserAnimationsModule BrowserAnimationsModule} or {\@link NoopAnimationsModule
+ * NoopAnimationsModule} modules are used within an application.
+ *
+ * The purpose if this service is to produce an animation sequence programmatically within an
+ * angular component or directive.
+ *
+ * Programmatic animations are first built and then a player is created when the build animation is
+ * attached to an element.
+ *
+ * ```ts
+ * // remember to include the BrowserAnimationsModule module for this to work...
+ * import {AnimationBuilder} from '\@angular/animations';
+ *
+ * class MyCmp {
+ *   constructor(private _builder: AnimationBuilder) {}
+ *
+ *   makeAnimation(element: any) {
+ *     // first build the animation
+ *     const myAnimation = this._builder.build([
+ *       style({ width: 0 }),
+ *       animate(1000, style({ width: '100px' }))
+ *     ]);
+ *
+ *     // then create a player from it
+ *     const player = myAnimation.create(element);
+ *
+ *     player.play();
+ *   }
+ * }
+ * ```
+ *
+ * When an animation is built an instance of {\@link AnimationFactory AnimationFactory} will be
+ * returned. Using that an {\@link AnimationPlayer AnimationPlayer} can be created which can then be
+ * used to start the animation.
+ *
+ * \@experimental Animation support is experimental.
+ * @abstract
+ */
+class AnimationBuilder {
+    /**
+     * @abstract
+     * @param {?} animation
+     * @return {?}
+     */
+    build(animation) { }
+}
+/**
+ * An instance of `AnimationFactory` is returned from {\@link AnimationBuilder#build
+ * AnimationBuilder.build}.
+ *
+ * \@experimental Animation support is experimental.
+ * @abstract
+ */
+class AnimationFactory {
+    /**
+     * @abstract
+     * @param {?} element
+     * @param {?=} options
+     * @return {?}
+     */
+    create(element, options) { }
+}
+
+/**
+ * \@experimental Animation support is experimental.
+ */
+const AUTO_STYLE = '*';
+/**
+ * `trigger` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the
+ * {\@link Component#animations component animations metadata page} to gain a better
+ * understanding of how animations in Angular are used.
+ *
+ * `trigger` Creates an animation trigger which will a list of {\@link state state} and
+ * {\@link transition transition} entries that will be evaluated when the expression
+ * bound to the trigger changes.
+ *
+ * Triggers are registered within the component annotation data under the
+ * {\@link Component#animations animations section}. An animation trigger can be placed on an element
+ * within a template by referencing the name of the trigger followed by the expression value that
+ * the
+ * trigger is bound to (in the form of `[\@triggerName]="expression"`.
+ *
+ * Animation trigger bindings strigify values and then match the previous and current values against
+ * any linked transitions. If a boolean value is provided into the trigger binding then it will both
+ * be represented as `1` or `true` and `0` or `false` for a true and false boolean values
+ * respectively.
+ *
+ * ### Usage
+ *
+ * `trigger` will create an animation trigger reference based on the provided `name` value. The
+ * provided `animation` value is expected to be an array consisting of {\@link state state} and
+ * {\@link transition transition} declarations.
+ *
+ * ```typescript
+ * \@Component({
+ *   selector: 'my-component',
+ *   templateUrl: 'my-component-tpl.html',
+ *   animations: [
+ *     trigger("myAnimationTrigger", [
+ *       state(...),
+ *       state(...),
+ *       transition(...),
+ *       transition(...)
+ *     ])
+ *   ]
+ * })
+ * class MyComponent {
+ *   myStatusExp = "something";
+ * }
+ * ```
+ *
+ * The template associated with this component will make use of the `myAnimationTrigger` animation
+ * trigger by binding to an element within its template code.
+ *
+ * ```html
+ * <!-- somewhere inside of my-component-tpl.html -->
+ * <div [\@myAnimationTrigger]="myStatusExp">...</div>
+ * ```
+ *
+ * ## Disable Animations
+ * A special animation control binding called `\@.disabled` can be placed on an element which will
+ * then disable animations for any inner animation triggers situated within the element as well as
+ * any animations on the element itself.
+ *
+ * When true, the `\@.disabled` binding will prevent all animations from rendering. The example
+ * below shows how to use this feature:
+ *
+ * ```ts
+ * \@Component({
+ *   selector: 'my-component',
+ *   template: `
+ *     <div [\@.disabled]="isDisabled">
+ *       <div [\@childAnimation]="exp"></div>
+ *     </div>
+ *   `,
+ *   animations: [
+ *     trigger("childAnimation", [
+ *       // ...
+ *     ])
+ *   ]
+ * })
+ * class MyComponent {
+ *   isDisabled = true;
+ *   exp = '...';
+ * }
+ * ```
+ *
+ * The `\@childAnimation` trigger will not animate because `\@.disabled` prevents it from happening
+ * (when true).
+ *
+ * Note that `\@.disbled` will only disable all animations (this means any animations running on
+ * the same element will also be disabled).
+ *
+ * ### Disabling Animations Application-wide
+ * When an area of the template is set to have animations disabled, **all** inner components will
+ * also have their animations disabled as well. This means that all animations for an angular
+ * application can be disabled by placing a host binding set on `\@.disabled` on the topmost Angular
+ * component.
+ *
+ * ```ts
+ * import {Component, HostBinding} from '\@angular/core';
+ *
+ * \@Component({
+ *   selector: 'app-component',
+ *   templateUrl: 'app.component.html',
+ * })
+ * class AppComponent {
+ *   \@HostBinding('\@.disabled')
+ *   public animationsDisabled = true;
+ * }
+ * ```
+ *
+ * ### What about animations that us `query()` and `animateChild()`?
+ * Despite inner animations being disabled, a parent animation can {\@link query query} for inner
+ * elements located in disabled areas of the template and still animate them as it sees fit. This is
+ * also the case for when a sub animation is queried by a parent and then later animated using {\@link
+ * animateChild animateChild}.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} name
+ * @param {?} definitions
+ * @return {?}
+ */
+function trigger(name, definitions) {
+    return { type: 7 /* Trigger */, name, definitions, options: {} };
+}
+/**
+ * `animate` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `animate` specifies an animation step that will apply the provided `styles` data for a given
+ * amount of time based on the provided `timing` expression value. Calls to `animate` are expected
+ * to be used within {\@link sequence an animation sequence}, {\@link group group}, or {\@link
+ * transition transition}.
+ *
+ * ### Usage
+ *
+ * The `animate` function accepts two input parameters: `timing` and `styles`:
+ *
+ * - `timing` is a string based value that can be a combination of a duration with optional delay
+ * and easing values. The format for the expression breaks down to `duration delay easing`
+ * (therefore a value such as `1s 100ms ease-out` will be parse itself into `duration=1000,
+ * delay=100, easing=ease-out`. If a numeric value is provided then that will be used as the
+ * `duration` value in millisecond form.
+ * - `styles` is the style input data which can either be a call to {\@link style style} or {\@link
+ * keyframes keyframes}. If left empty then the styles from the destination state will be collected
+ * and used (this is useful when describing an animation step that will complete an animation by
+ * {\@link transition#the-final-animate-call animating to the final state}).
+ *
+ * ```typescript
+ * // various functions for specifying timing data
+ * animate(500, style(...))
+ * animate("1s", style(...))
+ * animate("100ms 0.5s", style(...))
+ * animate("5s ease", style(...))
+ * animate("5s 10ms cubic-bezier(.17,.67,.88,.1)", style(...))
+ *
+ * // either style() of keyframes() can be used
+ * animate(500, style({ background: "red" }))
+ * animate(500, keyframes([
+ *   style({ background: "blue" })),
+ *   style({ background: "red" }))
+ * ])
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} timings
+ * @param {?=} styles
+ * @return {?}
+ */
+function animate(timings, styles = null) {
+    return { type: 4 /* Animate */, styles, timings };
+}
+/**
+ * `group` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `group` specifies a list of animation steps that are all run in parallel. Grouped animations are
+ * useful when a series of styles must be animated/closed off at different starting/ending times.
+ *
+ * The `group` function can either be used within a {\@link sequence sequence} or a {\@link transition
+ * transition} and it will only continue to the next instruction once all of the inner animation
+ * steps have completed.
+ *
+ * ### Usage
+ *
+ * The `steps` data that is passed into the `group` animation function can either consist of {\@link
+ * style style} or {\@link animate animate} function calls. Each call to `style()` or `animate()`
+ * within a group will be executed instantly (use {\@link keyframes keyframes} or a {\@link
+ * animate#usage animate() with a delay value} to offset styles to be applied at a later time).
+ *
+ * ```typescript
+ * group([
+ *   animate("1s", { background: "black" }))
+ *   animate("2s", { color: "white" }))
+ * ])
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function group(steps, options = null) {
+    return { type: 3 /* Group */, steps, options };
+}
+/**
+ * `sequence` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used by
+ * default when an array is passed as animation data into {\@link transition transition}.)
+ *
+ * The `sequence` function can either be used within a {\@link group group} or a {\@link transition
+ * transition} and it will only continue to the next instruction once each of the inner animation
+ * steps have completed.
+ *
+ * To perform animation styling in parallel with other animation steps then have a look at the
+ * {\@link group group} animation function.
+ *
+ * ### Usage
+ *
+ * The `steps` data that is passed into the `sequence` animation function can either consist of
+ * {\@link style style} or {\@link animate animate} function calls. A call to `style()` will apply the
+ * provided styling data immediately while a call to `animate()` will apply its styling data over a
+ * given time depending on its timing data.
+ *
+ * ```typescript
+ * sequence([
+ *   style({ opacity: 0 })),
+ *   animate("1s", { opacity: 1 }))
+ * ])
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function sequence(steps, options = null) {
+    return { type: 2 /* Sequence */, steps, options };
+}
+/**
+ * `style` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `style` declares a key/value object containing CSS properties/styles that can then be used for
+ * {\@link state animation states}, within an {\@link sequence animation sequence}, or as styling data
+ * for both {\@link animate animate} and {\@link keyframes keyframes}.
+ *
+ * ### Usage
+ *
+ * `style` takes in a key/value string map as data and expects one or more CSS property/value pairs
+ * to be defined.
+ *
+ * ```typescript
+ * // string values are used for css properties
+ * style({ background: "red", color: "blue" })
+ *
+ * // numerical (pixel) values are also supported
+ * style({ width: 100, height: 0 })
+ * ```
+ *
+ * #### Auto-styles (using `*`)
+ *
+ * When an asterix (`*`) character is used as a value then it will be detected from the element
+ * being animated and applied as animation data when the animation starts.
+ *
+ * This feature proves useful for a state depending on layout and/or environment factors; in such
+ * cases the styles are calculated just before the animation starts.
+ *
+ * ```typescript
+ * // the steps below will animate from 0 to the
+ * // actual height of the element
+ * style({ height: 0 }),
+ * animate("1s", style({ height: "*" }))
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} tokens
+ * @return {?}
+ */
+function style(tokens) {
+    return { type: 6 /* Style */, styles: tokens, offset: null };
+}
+/**
+ * `state` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `state` declares an animation state within the given trigger. When a state is active within a
+ * component then its associated styles will persist on the element that the trigger is attached to
+ * (even when the animation ends).
+ *
+ * To animate between states, have a look at the animation {\@link transition transition} DSL
+ * function. To register states to an animation trigger please have a look at the {\@link trigger
+ * trigger} function.
+ *
+ * #### The `void` state
+ *
+ * The `void` state value is a reserved word that angular uses to determine when the element is not
+ * apart of the application anymore (e.g. when an `ngIf` evaluates to false then the state of the
+ * associated element is void).
+ *
+ * #### The `*` (default) state
+ *
+ * The `*` state (when styled) is a fallback state that will be used if the state that is being
+ * animated is not declared within the trigger.
+ *
+ * ### Usage
+ *
+ * `state` will declare an animation state with its associated styles
+ * within the given trigger.
+ *
+ * - `stateNameExpr` can be one or more state names separated by commas.
+ * - `styles` refers to the {\@link style styling data} that will be persisted on the element once
+ * the state has been reached.
+ *
+ * ```typescript
+ * // "void" is a reserved name for a state and is used to represent
+ * // the state in which an element is detached from from the application.
+ * state("void", style({ height: 0 }))
+ *
+ * // user-defined states
+ * state("closed", style({ height: 0 }))
+ * state("open, visible", style({ height: "*" }))
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} name
+ * @param {?} styles
+ * @param {?=} options
+ * @return {?}
+ */
+function state(name, styles, options) {
+    return { type: 0 /* State */, name, styles, options };
+}
+/**
+ * `keyframes` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `keyframes` specifies a collection of {\@link style style} entries each optionally characterized
+ * by an `offset` value.
+ *
+ * ### Usage
+ *
+ * The `keyframes` animation function is designed to be used alongside the {\@link animate animate}
+ * animation function. Instead of applying animations from where they are currently to their
+ * destination, keyframes can describe how each style entry is applied and at what point within the
+ * animation arc (much like CSS Keyframe Animations do).
+ *
+ * For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at what
+ * percentage of the animate time the styles will be applied.
+ *
+ * ```typescript
+ * // the provided offset values describe when each backgroundColor value is applied.
+ * animate("5s", keyframes([
+ *   style({ backgroundColor: "red", offset: 0 }),
+ *   style({ backgroundColor: "blue", offset: 0.2 }),
+ *   style({ backgroundColor: "orange", offset: 0.3 }),
+ *   style({ backgroundColor: "black", offset: 1 })
+ * ]))
+ * ```
+ *
+ * Alternatively, if there are no `offset` values used within the style entries then the offsets
+ * will be calculated automatically.
+ *
+ * ```typescript
+ * animate("5s", keyframes([
+ *   style({ backgroundColor: "red" }) // offset = 0
+ *   style({ backgroundColor: "blue" }) // offset = 0.33
+ *   style({ backgroundColor: "orange" }) // offset = 0.66
+ *   style({ backgroundColor: "black" }) // offset = 1
+ * ]))
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @return {?}
+ */
+function keyframes(steps) {
+    return { type: 5 /* Keyframes */, steps };
+}
+/**
+ * `transition` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `transition` declares the {\@link sequence sequence of animation steps} that will be run when the
+ * provided `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 =>
+ * state2` which consists of two known states (use an asterix (`*`) to refer to a dynamic starting
+ * and/or ending state).
+ *
+ * A function can also be provided as the `stateChangeExpr` argument for a transition and this
+ * function will be executed each time a state change occurs. If the value returned within the
+ * function is true then the associated animation will be run.
+ *
+ * Animation transitions are placed within an {\@link trigger animation trigger}. For an transition
+ * to animate to a state value and persist its styles then one or more {\@link state animation
+ * states} is expected to be defined.
+ *
+ * ### Usage
+ *
+ * An animation transition is kicked off the `stateChangeExpr` predicate evaluates to true based on
+ * what the previous state is and what the current state has become. In other words, if a transition
+ * is defined that matches the old/current state criteria then the associated animation will be
+ * triggered.
+ *
+ * ```typescript
+ * // all transition/state changes are defined within an animation trigger
+ * trigger("myAnimationTrigger", [
+ *   // if a state is defined then its styles will be persisted when the
+ *   // animation has fully completed itself
+ *   state("on", style({ background: "green" })),
+ *   state("off", style({ background: "grey" })),
+ *
+ *   // a transition animation that will be kicked off when the state value
+ *   // bound to "myAnimationTrigger" changes from "on" to "off"
+ *   transition("on => off", animate(500)),
+ *
+ *   // it is also possible to do run the same animation for both directions
+ *   transition("on <=> off", animate(500)),
+ *
+ *   // or to define multiple states pairs separated by commas
+ *   transition("on => off, off => void", animate(500)),
+ *
+ *   // this is a catch-all state change for when an element is inserted into
+ *   // the page and the destination state is unknown
+ *   transition("void => *", [
+ *     style({ opacity: 0 }),
+ *     animate(500)
+ *   ]),
+ *
+ *   // this will capture a state change between any states
+ *   transition("* => *", animate("1s 0s")),
+ *
+ *   // you can also go full out and include a function
+ *   transition((fromState, toState) => {
+ *     // when `true` then it will allow the animation below to be invoked
+ *     return fromState == "off" && toState == "on";
+ *   }, animate("1s 0s"))
+ * ])
+ * ```
+ *
+ * The template associated with this component will make use of the `myAnimationTrigger` animation
+ * trigger by binding to an element within its template code.
+ *
+ * ```html
+ * <!-- somewhere inside of my-component-tpl.html -->
+ * <div [\@myAnimationTrigger]="myStatusExp">...</div>
+ * ```
+ *
+ * #### The final `animate` call
+ *
+ * If the final step within the transition steps is a call to `animate()` that **only** uses a
+ * timing value with **no style data** then it will be automatically used as the final animation arc
+ * for the element to animate itself to the final state. This involves an automatic mix of
+ * adding/removing CSS styles so that the element will be in the exact state it should be for the
+ * applied state to be presented correctly.
+ *
+ * ```
+ * // start off by hiding the element, but make sure that it animates properly to whatever state
+ * // is currently active for "myAnimationTrigger"
+ * transition("void => *", [
+ *   style({ opacity: 0 }),
+ *   animate(500)
+ * ])
+ * ```
+ *
+ * ### Transition Aliases (`:enter` and `:leave`)
+ *
+ * Given that enter (insertion) and leave (removal) animations are so common, the `transition`
+ * function accepts both `:enter` and `:leave` values which are aliases for the `void => *` and `*
+ * => void` state changes.
+ *
+ * ```
+ * transition(":enter", [
+ *   style({ opacity: 0 }),
+ *   animate(500, style({ opacity: 1 }))
+ * ])
+ * transition(":leave", [
+ *   animate(500, style({ opacity: 0 }))
+ * ])
+ * ```
+ *
+ * ### Boolean values
+ * if a trigger binding value is a boolean value then it can be matched using a transition
+ * expression that compares `true` and `false` or `1` and `0`.
+ *
+ * ```
+ * // in the template
+ * <div [\@openClose]="open ? true : false">...</div>
+ *
+ * // in the component metadata
+ * trigger('openClose', [
+ *   state('true', style({ height: '*' })),
+ *   state('false', style({ height: '0px' })),
+ *   transition('false <=> true', animate(500))
+ * ])
+ * ```
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} stateChangeExpr
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function transition(stateChangeExpr, steps, options = null) {
+    return { type: 1 /* Transition */, expr: stateChangeExpr, animation: steps, options };
+}
+/**
+ * `animation` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language.
+ *
+ * `var myAnimation = animation(...)` is designed to produce a reusable animation that can be later
+ * invoked in another animation or sequence. Reusable animations are designed to make use of
+ * animation parameters and the produced animation can be used via the `useAnimation` method.
+ *
+ * ```
+ * var fadeAnimation = animation([
+ *   style({ opacity: '{{ start }}' }),
+ *   animate('{{ time }}',
+ *     style({ opacity: '{{ end }}'}))
+ * ], { params: { time: '1000ms', start: 0, end: 1 }});
+ * ```
+ *
+ * If parameters are attached to an animation then they act as **default parameter values**. When an
+ * animation is invoked via `useAnimation` then parameter values are allowed to be passed in
+ * directly. If any of the passed in parameter values are missing then the default values will be
+ * used.
+ *
+ * ```
+ * useAnimation(fadeAnimation, {
+ *   params: {
+ *     time: '2s',
+ *     start: 1,
+ *     end: 0
+ *   }
+ * })
+ * ```
+ *
+ * If one or more parameter values are missing before animated then an error will be thrown.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function animation(steps, options = null) {
+    return { type: 8 /* Reference */, animation: steps, options };
+}
+/**
+ * `animateChild` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It works by allowing a queried element to execute its own
+ * animation within the animation sequence.
+ *
+ * Each time an animation is triggered in angular, the parent animation
+ * will always get priority and any child animations will be blocked. In order
+ * for a child animation to run, the parent animation must query each of the elements
+ * containing child animations and then allow the animations to run using `animateChild`.
+ *
+ * The example HTML code below shows both parent and child elements that have animation
+ * triggers that will execute at the same time.
+ *
+ * ```html
+ * <!-- parent-child.component.html -->
+ * <button (click)="exp =! exp">Toggle</button>
+ * <hr>
+ *
+ * <div [\@parentAnimation]="exp">
+ *   <header>Hello</header>
+ *   <div [\@childAnimation]="exp">
+ *       one
+ *   </div>
+ *   <div [\@childAnimation]="exp">
+ *       two
+ *   </div>
+ *   <div [\@childAnimation]="exp">
+ *       three
+ *   </div>
+ * </div>
+ * ```
+ *
+ * Now when the `exp` value changes to true, only the `parentAnimation` animation will animate
+ * because it has priority. However, using `query` and `animateChild` each of the inner animations
+ * can also fire:
+ *
+ * ```ts
+ * // parent-child.component.ts
+ * import {trigger, transition, animate, style, query, animateChild} from '\@angular/animations';
+ * \@Component({
+ *   selector: 'parent-child-component',
+ *   animations: [
+ *     trigger('parentAnimation', [
+ *       transition('false => true', [
+ *         query('header', [
+ *           style({ opacity: 0 }),
+ *           animate(500, style({ opacity: 1 }))
+ *         ]),
+ *         query('\@childAnimation', [
+ *           animateChild()
+ *         ])
+ *       ])
+ *     ]),
+ *     trigger('childAnimation', [
+ *       transition('false => true', [
+ *         style({ opacity: 0 }),
+ *         animate(500, style({ opacity: 1 }))
+ *       ])
+ *     ])
+ *   ]
+ * })
+ * class ParentChildCmp {
+ *   exp: boolean = false;
+ * }
+ * ```
+ *
+ * In the animation code above, when the `parentAnimation` transition kicks off it first queries to
+ * find the header element and fades it in. It then finds each of the sub elements that contain the
+ * `\@childAnimation` trigger and then allows for their animations to fire.
+ *
+ * This example can be further extended by using stagger:
+ *
+ * ```ts
+ * query('\@childAnimation', stagger(100, [
+ *   animateChild()
+ * ]))
+ * ```
+ *
+ * Now each of the sub animations start off with respect to the `100ms` staggering step.
+ *
+ * ## The first frame of child animations
+ * When sub animations are executed using `animateChild` the animation engine will always apply the
+ * first frame of every sub animation immediately at the start of the animation sequence. This way
+ * the parent animation does not need to set any initial styling data on the sub elements before the
+ * sub animations kick off.
+ *
+ * In the example above the first frame of the `childAnimation`'s `false => true` transition
+ * consists of a style of `opacity: 0`. This is applied immediately when the `parentAnimation`
+ * animation transition sequence starts. Only then when the `\@childAnimation` is queried and called
+ * with `animateChild` will it then animate to its destination of `opacity: 1`.
+ *
+ * Note that this feature designed to be used alongside {\@link query query()} and it will only work
+ * with animations that are assigned using the Angular animation DSL (this means that CSS keyframes
+ * and transitions are not handled by this API).
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?=} options
+ * @return {?}
+ */
+function animateChild(options = null) {
+    return { type: 9 /* AnimateChild */, options };
+}
+/**
+ * `useAnimation` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It is used to kick off a reusable animation that is created using {\@link
+ * animation animation()}.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} animation
+ * @param {?=} options
+ * @return {?}
+ */
+function useAnimation(animation, options = null) {
+    return { type: 10 /* AnimateRef */, animation, options };
+}
+/**
+ * `query` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language.
+ *
+ * query() is used to find one or more inner elements within the current element that is
+ * being animated within the sequence. The provided animation steps are applied
+ * to the queried element (by default, an array is provided, then this will be
+ * treated as an animation sequence).
+ *
+ * ### Usage
+ *
+ * query() is designed to collect mutiple elements and works internally by using
+ * `element.querySelectorAll`. An additional options object can be provided which
+ * can be used to limit the total amount of items to be collected.
+ *
+ * ```js
+ * query('div', [
+ *   animate(...),
+ *   animate(...)
+ * ], { limit: 1 })
+ * ```
+ *
+ * query(), by default, will throw an error when zero items are found. If a query
+ * has the `optional` flag set to true then this error will be ignored.
+ *
+ * ```js
+ * query('.some-element-that-may-not-be-there', [
+ *   animate(...),
+ *   animate(...)
+ * ], { optional: true })
+ * ```
+ *
+ * ### Special Selector Values
+ *
+ * The selector value within a query can collect elements that contain angular-specific
+ * characteristics
+ * using special pseudo-selectors tokens.
+ *
+ * These include:
+ *
+ *  - Querying for newly inserted/removed elements using `query(":enter")`/`query(":leave")`
+ *  - Querying all currently animating elements using `query(":animating")`
+ *  - Querying elements that contain an animation trigger using `query("\@triggerName")`
+ *  - Querying all elements that contain an animation triggers using `query("\@*")`
+ *  - Including the current element into the animation sequence using `query(":self")`
+ *
+ *
+ *  Each of these pseudo-selector tokens can be merged together into a combined query selector
+ * string:
+ *
+ *  ```
+ *  query(':self, .record:enter, .record:leave, \@subTrigger', [...])
+ *  ```
+ *
+ * ### Demo
+ *
+ * ```
+ * \@Component({
+ *   selector: 'inner',
+ *   template: `
+ *     <div [\@queryAnimation]="exp">
+ *       <h1>Title</h1>
+ *       <div class="content">
+ *         Blah blah blah
+ *       </div>
+ *     </div>
+ *   `,
+ *   animations: [
+ *    trigger('queryAnimation', [
+ *      transition('* => goAnimate', [
+ *        // hide the inner elements
+ *        query('h1', style({ opacity: 0 })),
+ *        query('.content', style({ opacity: 0 })),
+ *
+ *        // animate the inner elements in, one by one
+ *        query('h1', animate(1000, style({ opacity: 1 })),
+ *        query('.content', animate(1000, style({ opacity: 1 })),
+ *      ])
+ *    ])
+ *  ]
+ * })
+ * class Cmp {
+ *   exp = '';
+ *
+ *   goAnimate() {
+ *     this.exp = 'goAnimate';
+ *   }
+ * }
+ * ```
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} selector
+ * @param {?} animation
+ * @param {?=} options
+ * @return {?}
+ */
+function query(selector, animation, options = null) {
+    return { type: 11 /* Query */, selector, animation, options };
+}
+/**
+ * `stagger` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It is designed to be used inside of an animation {\@link query query()}
+ * and works by issuing a timing gap between after each queried item is animated.
+ *
+ * ### Usage
+ *
+ * In the example below there is a container element that wraps a list of items stamped out
+ * by an ngFor. The container element contains an animation trigger that will later be set
+ * to query for each of the inner items.
+ *
+ * ```html
+ * <!-- list.component.html -->
+ * <button (click)="toggle()">Show / Hide Items</button>
+ * <hr />
+ * <div [\@listAnimation]="items.length">
+ *   <div *ngFor="let item of items">
+ *     {{ item }}
+ *   </div>
+ * </div>
+ * ```
+ *
+ * The component code for this looks as such:
+ *
+ * ```ts
+ * import {trigger, transition, style, animate, query, stagger} from '\@angular/animations';
+ * \@Component({
+ *   templateUrl: 'list.component.html',
+ *   animations: [
+ *     trigger('listAnimation', [
+ *        //...
+ *     ])
+ *   ]
+ * })
+ * class ListComponent {
+ *   items = [];
+ *
+ *   showItems() {
+ *     this.items = [0,1,2,3,4];
+ *   }
+ *
+ *   hideItems() {
+ *     this.items = [];
+ *   }
+ *
+ *   toggle() {
+ *     this.items.length ? this.hideItems() : this.showItems();
+ *   }
+ * }
+ * ```
+ *
+ * And now for the animation trigger code:
+ *
+ * ```ts
+ * trigger('listAnimation', [
+ *   transition('* => *', [ // each time the binding value changes
+ *     query(':leave', [
+ *       stagger(100, [
+ *         animate('0.5s', style({ opacity: 0 }))
+ *       ])
+ *     ]),
+ *     query(':enter', [
+ *       style({ opacity: 0 }),
+ *       stagger(100, [
+ *         animate('0.5s', style({ opacity: 1 }))
+ *       ])
+ *     ])
+ *   ])
+ * ])
+ * ```
+ *
+ * Now each time the items are added/removed then either the opacity
+ * fade-in animation will run or each removed item will be faded out.
+ * When either of these animations occur then a stagger effect will be
+ * applied after each item's animation is started.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} timings
+ * @param {?} animation
+ * @return {?}
+ */
+function stagger(timings, animation) {
+    return { type: 12 /* Stagger */, timings, animation };
+}
+
+/**
+ * @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
+ * @param {?} cb
+ * @return {?}
+ */
+function scheduleMicroTask(cb) {
+    Promise.resolve(null).then(cb);
+}
+
+/**
+ * @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
+ */
+/**
+ * \@experimental Animation support is experimental.
+ */
+class NoopAnimationPlayer {
+    constructor() {
+        this._onDoneFns = [];
+        this._onStartFns = [];
+        this._onDestroyFns = [];
+        this._started = false;
+        this._destroyed = false;
+        this._finished = false;
+        this.parentPlayer = null;
+        this.totalTime = 0;
+    }
+    /**
+     * @return {?}
+     */
+    _onFinish() {
+        if (!this._finished) {
+            this._finished = true;
+            this._onDoneFns.forEach(fn => fn());
+            this._onDoneFns = [];
+        }
+    }
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    onStart(fn) { this._onStartFns.push(fn); }
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    onDone(fn) { this._onDoneFns.push(fn); }
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    onDestroy(fn) { this._onDestroyFns.push(fn); }
+    /**
+     * @return {?}
+     */
+    hasStarted() { return this._started; }
+    /**
+     * @return {?}
+     */
+    init() { }
+    /**
+     * @return {?}
+     */
+    play() {
+        if (!this.hasStarted()) {
+            this.triggerMicrotask();
+            this._onStart();
+        }
+        this._started = true;
+    }
+    /**
+     * @return {?}
+     */
+    triggerMicrotask() { scheduleMicroTask(() => this._onFinish()); }
+    /**
+     * @return {?}
+     */
+    _onStart() {
+        this._onStartFns.forEach(fn => fn());
+        this._onStartFns = [];
+    }
+    /**
+     * @return {?}
+     */
+    pause() { }
+    /**
+     * @return {?}
+     */
+    restart() { }
+    /**
+     * @return {?}
+     */
+    finish() { this._onFinish(); }
+    /**
+     * @return {?}
+     */
+    destroy() {
+        if (!this._destroyed) {
+            this._destroyed = true;
+            if (!this.hasStarted()) {
+                this._onStart();
+            }
+            this.finish();
+            this._onDestroyFns.forEach(fn => fn());
+            this._onDestroyFns = [];
+        }
+    }
+    /**
+     * @return {?}
+     */
+    reset() { }
+    /**
+     * @param {?} p
+     * @return {?}
+     */
+    setPosition(p) { }
+    /**
+     * @return {?}
+     */
+    getPosition() { return 0; }
+}
+
+/**
+ * @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
+ */
+class AnimationGroupPlayer {
+    /**
+     * @param {?} _players
+     */
+    constructor(_players) {
+        this._players = _players;
+        this._onDoneFns = [];
+        this._onStartFns = [];
+        this._finished = false;
+        this._started = false;
+        this._destroyed = false;
+        this._onDestroyFns = [];
+        this.parentPlayer = null;
+        this.totalTime = 0;
+        let doneCount = 0;
+        let destroyCount = 0;
+        let startCount = 0;
+        const total = this._players.length;
+        if (total == 0) {
+            scheduleMicroTask(() => this._onFinish());
+        }
+        else {
+            this._players.forEach(player => {
+                player.parentPlayer = this;
+                player.onDone(() => {
+                    if (++doneCount >= total) {
+                        this._onFinish();
+                    }
+                });
+                player.onDestroy(() => {
+                    if (++destroyCount >= total) {
+                        this._onDestroy();
+                    }
+                });
+                player.onStart(() => {
+                    if (++startCount >= total) {
+                        this._onStart();
+                    }
+                });
+            });
+        }
+        this.totalTime = this._players.reduce((time, player) => Math.max(time, player.totalTime), 0);
+    }
+    /**
+     * @return {?}
+     */
+    _onFinish() {
+        if (!this._finished) {
+            this._finished = true;
+            this._onDoneFns.forEach(fn => fn());
+            this._onDoneFns = [];
+        }
+    }
+    /**
+     * @return {?}
+     */
+    init() { this._players.forEach(player => player.init()); }
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    onStart(fn) { this._onStartFns.push(fn); }
+    /**
+     * @return {?}
+     */
+    _onStart() {
+        if (!this.hasStarted()) {
+            this._onStartFns.forEach(fn => fn());
+            this._onStartFns = [];
+            this._started = true;
+        }
+    }
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    onDone(fn) { this._onDoneFns.push(fn); }
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    onDestroy(fn) { this._onDestroyFns.push(fn); }
+    /**
+     * @return {?}
+     */
+    hasStarted() { return this._started; }
+    /**
+     * @return {?}
+     */
+    play() {
+        if (!this.parentPlayer) {
+            this.init();
+        }
+        this._onStart();
+        this._players.forEach(player => player.play());
+    }
+    /**
+     * @return {?}
+     */
+    pause() { this._players.forEach(player => player.pause()); }
+    /**
+     * @return {?}
+     */
+    restart() { this._players.forEach(player => player.restart()); }
+    /**
+     * @return {?}
+     */
+    finish() {
+        this._onFinish();
+        this._players.forEach(player => player.finish());
+    }
+    /**
+     * @return {?}
+     */
+    destroy() { this._onDestroy(); }
+    /**
+     * @return {?}
+     */
+    _onDestroy() {
+        if (!this._destroyed) {
+            this._destroyed = true;
+            this._onFinish();
+            this._players.forEach(player => player.destroy());
+            this._onDestroyFns.forEach(fn => fn());
+            this._onDestroyFns = [];
+        }
+    }
+    /**
+     * @return {?}
+     */
+    reset() {
+        this._players.forEach(player => player.reset());
+        this._destroyed = false;
+        this._finished = false;
+        this._started = false;
+    }
+    /**
+     * @param {?} p
+     * @return {?}
+     */
+    setPosition(p) {
+        const /** @type {?} */ timeAtPosition = p * this.totalTime;
+        this._players.forEach(player => {
+            const /** @type {?} */ position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;
+            player.setPosition(position);
+        });
+    }
+    /**
+     * @return {?}
+     */
+    getPosition() {
+        let /** @type {?} */ min = 0;
+        this._players.forEach(player => {
+            const /** @type {?} */ p = player.getPosition();
+            min = Math.min(p, min);
+        });
+        return min;
+    }
+    /**
+     * @return {?}
+     */
+    get players() { return this._players; }
+    /**
+     * @return {?}
+     */
+    beforeDestroy() {
+        this.players.forEach(player => {
+            if (player.beforeDestroy) {
+                player.beforeDestroy();
+            }
+        });
+    }
+}
+
+/**
+ * @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 ɵPRE_STYLE = '!';
+
+/**
+ * @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
+ */
+/**
+ * @module
+ * @description
+ * Entry point for all animation APIs of the animation package.
+ */
+
+/**
+ * @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
+ */
+/**
+ * @module
+ * @description
+ * Entry point for all public APIs of the animation package.
+ */
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { AnimationBuilder, AnimationFactory, AUTO_STYLE, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, NoopAnimationPlayer, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE };
+//# sourceMappingURL=animations.js.map


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/bundles/animations-browser.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations-browser.umd.js.map b/node_modules/@angular/animations/bundles/animations-browser.umd.js.map
new file mode 100644
index 0000000..5c373e9
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations-browser.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"animations-browser.umd.js","sources":["../../../../packages/animations/browser/src/render/web_animations/web_animations_driver.ts","../../../../packages/animations/browser/src/render/web_animations/web_animations_player.ts","../../../../packages/animations/browser/src/render/animation_engine_next.ts","../../../../packages/animations/browser/src/render/transition_animation_engine.ts","../../../../packages/animations/browser/src/render/timeline_animation_engine.ts","../../../../packages/animations/browser/src/dsl/animation_trigger.ts","../../../../packages/animations/browser/src/dsl/animation_transition_factory.ts","../../../../packages/animations/browser/src/dsl/animation_transition_instruction.ts","../../../../packages/animations/browser/src/dsl/style_normalization/web_animations_style_normalizer.ts","../../../../packages/animations/browser/src/dsl/style_normalization/animation_style_normalizer.ts","../../../../packages/animations/browser/src/dsl/animation.ts","
 ../../../../packages/animations/browser/src/dsl/animation_timeline_builder.ts","../../../../packages/animations/browser/src/dsl/element_instruction_map.ts","../../../../packages/animations/browser/src/dsl/animation_timeline_instruction.ts","../../../../packages/animations/browser/src/dsl/animation_ast_builder.ts","../../../../packages/animations/browser/src/dsl/animation_transition_expr.ts","../../../../packages/animations/browser/src/util.ts","../../../../packages/animations/browser/src/render/animation_driver.ts","../../../../packages/animations/browser/src/render/shared.ts","../../../../node_modules/tslib/tslib.es6.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\nimport {AnimationPlayer, ɵStyleData} from '@angular/animations';\n\nimport {AnimationDriver} from '../animation_driver';\nimport {cont
 ainsElement, invokeQuery, matchesElement} from '../shared';\n\nimport {WebAnimationsPlayer} from './web_animations_player';\nexport class WebAnimationsDriver implements AnimationDriver {\n/**\n * @param {?} element\n * @param {?} selector\n * @return {?}\n */\nmatchesElement(element: any, selector: string): boolean {\n    return matchesElement(element, selector);\n  }\n/**\n * @param {?} elm1\n * @param {?} elm2\n * @return {?}\n */\ncontainsElement(elm1: any, elm2: any): boolean { return containsElement(elm1, elm2); }\n/**\n * @param {?} element\n * @param {?} selector\n * @param {?} multi\n * @return {?}\n */\nquery(element: any, selector: string, multi: boolean): any[] {\n    return invokeQuery(element, selector, multi);\n  }\n/**\n * @param {?} element\n * @param {?} prop\n * @param {?=} defaultValue\n * @return {?}\n */\ncomputeStyle(element: any, prop: string, defaultValue?: string): string {\n    return /** @type {?} */(( ( /** @type {?} */((window.getComputedStyle(element) a
 s any)))[prop] as string));\n  }\n/**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} duration\n * @param {?} delay\n * @param {?} easing\n * @param {?=} previousPlayers\n * @return {?}\n */\nanimate(\n      element: any, keyframes: ɵStyleData[], duration: number, delay: number, easing: string,\n      previousPlayers: AnimationPlayer[] = []): WebAnimationsPlayer {\n    const /** @type {?} */ fill = delay == 0 ? 'both' : 'forwards';\n    const /** @type {?} */ playerOptions: {[key: string]: string | number} = {duration, delay, fill};\n\n    // we check for this to avoid having a null|undefined value be present\n    // for the easing (which results in an error for certain browsers #9752)\n    if (easing) {\n      playerOptions['easing'] = easing;\n    }\n\n    const /** @type {?} */ previousWebAnimationPlayers = /** @type {?} */(( <WebAnimationsPlayer[]>previousPlayers.filter(\n        player => { return player instanceof WebAnimationsPlayer; })));\n    return new WebA
 nimationsPlayer(element, keyframes, playerOptions, previousWebAnimationPlayers);\n  }\n}\n/**\n * @return {?}\n */\nexport function supportsWebAnimations() {\n  return typeof Element !== 'undefined' && typeof( /** @type {?} */((<any>Element))).prototype['animate'] === 'function';\n}\n","/**\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\nimport {AnimationPlayer} from '@angular/animations';\n\nimport {allowPreviousPlayerStylesMerge, copyStyles} from '../../util';\n\nimport {DOMAnimation} from './dom_animation';\nexport class WebAnimationsPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _onDestroyFns: Function[] = [];\nprivate _player: DOMAnimation;\nprivate _duration: number;\nprivate _delay: number;\nprivate _initialized = false;\nprivate _finished = fal
 se;\nprivate _started = false;\nprivate _destroyed = false;\nprivate _finalKeyframe: {[key: string]: string | number};\npublic time = 0;\npublic parentPlayer: AnimationPlayer|null = null;\npublic previousStyles: {[styleName: string]: string | number} = {};\npublic currentSnapshot: {[styleName: string]: string | number} = {};\n/**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} options\n * @param {?=} previousPlayers\n */\nconstructor(\npublic element: any,\npublic keyframes: {[key: string]: string | number}[],\npublic options: {[key: string]: string | number},\nprivate previousPlayers: WebAnimationsPlayer[] = []) {\n    this._duration = <number>options['duration'];\n    this._delay = <number>options['delay'] || 0;\n    this.time = this._duration + this._delay;\n\n    if (allowPreviousPlayerStylesMerge(this._duration, this._delay)) {\n      previousPlayers.forEach(player => {\n        let styles = player.currentSnapshot;\n        Object.keys(styles).forEach(prop => thi
 s.previousStyles[prop] = styles[prop]);\n      });\n    }\n  }\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._finished) {\n      this._finished = true;\n      this._onDoneFns.forEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @return {?}\n */\ninit(): void {\n    this._buildPlayer();\n    this._preparePlayerBeforeStart();\n  }\n/**\n * @return {?}\n */\nprivate _buildPlayer(): void {\n    if (this._initialized) return;\n    this._initialized = true;\n\n    const /** @type {?} */ keyframes = this.keyframes.map(styles => copyStyles(styles, false));\n    const /** @type {?} */ previousStyleProps = Object.keys(this.previousStyles);\n    if (previousStyleProps.length) {\n      let /** @type {?} */ startingKeyframe = keyframes[0];\n      let /** @type {?} */ missingStyleProps: string[] = [];\n      previousStyleProps.forEach(prop => {\n        if (!startingKeyframe.hasOwnProperty(prop)) {\n          missingStyleProps.push(prop);\n        }\n        st
 artingKeyframe[prop] = this.previousStyles[prop];\n      });\n\n      if (missingStyleProps.length) {\n        const /** @type {?} */ self = this;\n        // tslint:disable-next-line\n        for (var /** @type {?} */ i = 1; i < keyframes.length; i++) {\n          let /** @type {?} */ kf = keyframes[i];\n          missingStyleProps.forEach(function(prop) {\n            kf[prop] = _computeStyle(self.element, prop);\n          });\n        }\n      }\n    }\n\n    this._player = this._triggerWebAnimation(this.element, keyframes, this.options);\n    this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : {};\n    this._player.addEventListener('finish', () => this._onFinish());\n  }\n/**\n * @return {?}\n */\nprivate _preparePlayerBeforeStart() {\n    // this is required so that the player doesn't start to animate right away\n    if (this._delay) {\n      this._resetDomPlayerState();\n    } else {\n      this._player.pause();\n    }\n  }\n/**\n * \\@internal\n * @par
 am {?} element\n * @param {?} keyframes\n * @param {?} options\n * @return {?}\n */\n_triggerWebAnimation(element: any, keyframes: any[], options: any): DOMAnimation {\n    // jscompiler doesn't seem to know animate is a native property because it's not fully\n    // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n    return /** @type {?} */(( element['animate'](keyframes, options) as DOMAnimation));\n  }\n/**\n * @return {?}\n */\nget domPlayer() { return this._player; }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void { this._onStartFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void { this._onDoneFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void { this._onDestroyFns.push(fn); }\n/**\n * @return {?}\n */\nplay(): void {\n    this._buildPlayer();\n    if (!this.hasStarted()) {\n      this._onStartFns.forEach(fn => fn());\n      this._onSt
 artFns = [];\n      this._started = true;\n    }\n    this._player.play();\n  }\n/**\n * @return {?}\n */\npause(): void {\n    this.init();\n    this._player.pause();\n  }\n/**\n * @return {?}\n */\nfinish(): void {\n    this.init();\n    this._onFinish();\n    this._player.finish();\n  }\n/**\n * @return {?}\n */\nreset(): void {\n    this._resetDomPlayerState();\n    this._destroyed = false;\n    this._finished = false;\n    this._started = false;\n  }\n/**\n * @return {?}\n */\nprivate _resetDomPlayerState() {\n    if (this._player) {\n      this._player.cancel();\n    }\n  }\n/**\n * @return {?}\n */\nrestart(): void {\n    this.reset();\n    this.play();\n  }\n/**\n * @return {?}\n */\nhasStarted(): boolean { return this._started; }\n/**\n * @return {?}\n */\ndestroy(): void {\n    if (!this._destroyed) {\n      this._destroyed = true;\n      this._resetDomPlayerState();\n      this._onFinish();\n      this._onDestroyFns.forEach(fn => fn());\n      this._onDestroyFns = [];\n  
   }\n  }\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: number): void { this._player.currentTime = p * this.time; }\n/**\n * @return {?}\n */\ngetPosition(): number { return this._player.currentTime / this.time; }\n/**\n * @return {?}\n */\nget totalTime(): number { return this._delay + this._duration; }\n/**\n * @return {?}\n */\nbeforeDestroy() {\n    const /** @type {?} */ styles: {[key: string]: string | number} = {};\n    if (this.hasStarted()) {\n      Object.keys(this._finalKeyframe).forEach(prop => {\n        if (prop != 'offset') {\n          styles[prop] =\n              this._finished ? this._finalKeyframe[prop] : _computeStyle(this.element, prop);\n        }\n      });\n    }\n    this.currentSnapshot = styles;\n  }\n}\n\nfunction WebAnimationsPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nWebAnimationsPlayer.prototype._onDoneFns;\n/** @type {?} */\nWebAnimationsPlayer.prototype._onStartFns;\n/** @type {?} */\nWebAnimationsPlayer.prototype._onDest
 royFns;\n/** @type {?} */\nWebAnimationsPlayer.prototype._player;\n/** @type {?} */\nWebAnimationsPlayer.prototype._duration;\n/** @type {?} */\nWebAnimationsPlayer.prototype._delay;\n/** @type {?} */\nWebAnimationsPlayer.prototype._initialized;\n/** @type {?} */\nWebAnimationsPlayer.prototype._finished;\n/** @type {?} */\nWebAnimationsPlayer.prototype._started;\n/** @type {?} */\nWebAnimationsPlayer.prototype._destroyed;\n/** @type {?} */\nWebAnimationsPlayer.prototype._finalKeyframe;\n/** @type {?} */\nWebAnimationsPlayer.prototype.time;\n/** @type {?} */\nWebAnimationsPlayer.prototype.parentPlayer;\n/** @type {?} */\nWebAnimationsPlayer.prototype.previousStyles;\n/** @type {?} */\nWebAnimationsPlayer.prototype.currentSnapshot;\n/** @type {?} */\nWebAnimationsPlayer.prototype.element;\n/** @type {?} */\nWebAnimationsPlayer.prototype.keyframes;\n/** @type {?} */\nWebAnimationsPlayer.prototype.options;\n/** @type {?} */\nWebAnimationsPlayer.prototype.previousPlayers;\n}\n\n/**\n * @
 param {?} element\n * @param {?} prop\n * @return {?}\n */\nfunction _computeStyle(element: any, prop: string): string {\n  return ( /** @type {?} */((<any>window.getComputedStyle(element))))[prop];\n}\n","/**\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\nimport {AnimationMetadata, AnimationPlayer, AnimationTriggerMetadata} from '@angular/animations';\nimport {TriggerAst} from '../dsl/animation_ast';\nimport {buildAnimationAst} from '../dsl/animation_ast_builder';\nimport {AnimationTrigger, buildTrigger} from '../dsl/animation_trigger';\nimport {AnimationStyleNormalizer} from '../dsl/style_normalization/animation_style_normalizer';\n\nimport {AnimationDriver} from './animation_driver';\nimport {parseTimelineCommand} from './shared';\nimport {TimelineAnimationEngine} from './timeline_animation_engine';\nimport {TransitionAni
 mationEngine} from './transition_animation_engine';\nexport class AnimationEngine {\nprivate _transitionEngine: TransitionAnimationEngine;\nprivate _timelineEngine: TimelineAnimationEngine;\nprivate _triggerCache: {[key: string]: AnimationTrigger} = {};\npublic onRemovalComplete = (element: any, context: any) => {};\n/**\n * @param {?} driver\n * @param {?} normalizer\n */\nconstructor(driver: AnimationDriver, normalizer: AnimationStyleNormalizer) {\n    this._transitionEngine = new TransitionAnimationEngine(driver, normalizer);\n    this._timelineEngine = new TimelineAnimationEngine(driver, normalizer);\n\n    this._transitionEngine.onRemovalComplete = (element: any, context: any) =>\n        this.onRemovalComplete(element, context);\n  }\n/**\n * @param {?} componentId\n * @param {?} namespaceId\n * @param {?} hostElement\n * @param {?} name\n * @param {?} metadata\n * @return {?}\n */\nregisterTrigger(\n      componentId: string, namespaceId: string, hostElement: any, name: strin
 g,\n      metadata: AnimationTriggerMetadata): void {\n    const /** @type {?} */ cacheKey = componentId + '-' + name;\n    let /** @type {?} */ trigger = this._triggerCache[cacheKey];\n    if (!trigger) {\n      const /** @type {?} */ errors: any[] = [];\n      const /** @type {?} */ ast = /** @type {?} */(( buildAnimationAst( /** @type {?} */((metadata as AnimationMetadata)), errors) as TriggerAst));\n      if (errors.length) {\n        throw new Error(\n            `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.join(\"\\n - \")}`);\n      }\n      trigger = buildTrigger(name, ast);\n      this._triggerCache[cacheKey] = trigger;\n    }\n    this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\nregister(namespaceId: string, hostElement: any) {\n    this._transitionEngine.register(namespaceId, hostElement);\n  }\n/**\n * @param {?} na
 mespaceId\n * @param {?} context\n * @return {?}\n */\ndestroy(namespaceId: string, context: any) {\n    this._transitionEngine.destroy(namespaceId, context);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\nonInsert(namespaceId: string, element: any, parent: any, insertBefore: boolean): void {\n    this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\nonRemove(namespaceId: string, element: any, context: any): void {\n    this._transitionEngine.removeNode(namespaceId, element, context);\n  }\n/**\n * @param {?} element\n * @param {?} disable\n * @return {?}\n */\ndisableAnimations(element: any, disable: boolean) {\n    this._transitionEngine.markElementAsDisabled(element, disable);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} property\n * @para
 m {?} value\n * @return {?}\n */\nprocess(namespaceId: string, element: any, property: string, value: any) {\n    if (property.charAt(0) == '@') {\n      const [id, action] = parseTimelineCommand(property);\n      const /** @type {?} */ args = /** @type {?} */(( value as any[]));\n      this._timelineEngine.command(id, element, action, args);\n    } else {\n      this._transitionEngine.trigger(namespaceId, element, property, value);\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} eventName\n * @param {?} eventPhase\n * @param {?} callback\n * @return {?}\n */\nlisten(\n      namespaceId: string, element: any, eventName: string, eventPhase: string,\n      callback: (event: any) => any): () => any {\n    // @@listen\n    if (eventName.charAt(0) == '@') {\n      const [id, action] = parseTimelineCommand(eventName);\n      return this._timelineEngine.listen(id, element, action, callback);\n    }\n    return this._transitionEngine.listen(namespaceId, ele
 ment, eventName, eventPhase, callback);\n  }\n/**\n * @param {?=} microtaskId\n * @return {?}\n */\nflush(microtaskId: number = -1): void { this._transitionEngine.flush(microtaskId); }\n/**\n * @return {?}\n */\nget players(): AnimationPlayer[] {\n    return ( /** @type {?} */((this._transitionEngine.players as AnimationPlayer[])))\n        .concat( /** @type {?} */((this._timelineEngine.players as AnimationPlayer[])));\n  }\n/**\n * @return {?}\n */\nwhenRenderingDone(): Promise<any> { return this._transitionEngine.whenRenderingDone(); }\n}\n\nfunction AnimationEngine_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationEngine.prototype._transitionEngine;\n/** @type {?} */\nAnimationEngine.prototype._timelineEngine;\n/** @type {?} */\nAnimationEngine.prototype._triggerCache;\n/** @type {?} */\nAnimationEngine.prototype.onRemovalComplete;\n}\n\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style licen
 se that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {AUTO_STYLE, AnimationOptions, AnimationPlayer, NoopAnimationPlayer, ɵAnimationGroupPlayer as AnimationGroupPlayer, ɵPRE_STYLE as PRE_STYLE, ɵStyleData} from '@angular/animations';\n\nimport {AnimationTimelineInstruction} from '../dsl/animation_timeline_instruction';\nimport {AnimationTransitionFactory} from '../dsl/animation_transition_factory';\nimport {AnimationTransitionInstruction} from '../dsl/animation_transition_instruction';\nimport {AnimationTrigger} from '../dsl/animation_trigger';\nimport {ElementInstructionMap} from '../dsl/element_instruction_map';\nimport {AnimationStyleNormalizer} from '../dsl/style_normalization/animation_style_normalizer';\nimport {ENTER_CLASSNAME, LEAVE_CLASSNAME, NG_ANIMATING_CLASSNAME, NG_ANIMATING_SELECTOR, NG_TRIGGER_CLASSNAME, NG_TRIGGER_SELECTOR, copyObj, eraseStyles, setStyles} from '../util';\n\nimport {AnimationDriver} from './animation_driver';\n
 import {getOrSetAsInMap, listenOnPlayer, makeAnimationEvent, normalizeKeyframes, optimizeGroupPlayer} from './shared';\n\nconst /** @type {?} */ QUEUED_CLASSNAME = 'ng-animate-queued';\nconst /** @type {?} */ QUEUED_SELECTOR = '.ng-animate-queued';\nconst /** @type {?} */ DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst /** @type {?} */ DISABLED_SELECTOR = '.ng-animate-disabled';\n\nconst /** @type {?} */ EMPTY_PLAYER_ARRAY: TransitionAnimationPlayer[] = [];\nconst /** @type {?} */ NULL_REMOVAL_STATE: ElementAnimationState = {\n  namespaceId: '',\n  setForRemoval: null,\n  hasAnimation: false,\n  removedBeforeQueried: false\n};\nconst /** @type {?} */ NULL_REMOVED_QUERIED_STATE: ElementAnimationState = {\n  namespaceId: '',\n  setForRemoval: null,\n  hasAnimation: false,\n  removedBeforeQueried: true\n};\n\ninterface TriggerListener {\n  name: string;\n  phase: string;\n  callback: (event: any) => any;\n}\n\nexport interface QueueInstruction {\n  element: any;\n  triggerName: stri
 ng;\n  fromState: StateValue;\n  toState: StateValue;\n  transition: AnimationTransitionFactory;\n  player: TransitionAnimationPlayer;\n  isFallbackTransition: boolean;\n}\n\nexport const /** @type {?} */ REMOVAL_FLAG = '__ng_removed';\n\nexport interface ElementAnimationState {\n  setForRemoval: any;\n  hasAnimation: boolean;\n  namespaceId: string;\n  removedBeforeQueried: boolean;\n}\nexport class StateValue {\npublic value: string;\npublic options: AnimationOptions;\n/**\n * @return {?}\n */\nget params(): {[key: string]: any} { return /** @type {?} */(( this.options.params as{[key: string]: any})); }\n/**\n * @param {?} input\n */\nconstructor(input: any) {\n    const isObj = input && input.hasOwnProperty('value');\n    const value = isObj ? input['value'] : input;\n    this.value = normalizeTriggerValue(value);\n    if (isObj) {\n      const options = copyObj(input as any);\n      delete options['value'];\n      this.options = options as AnimationOptions;\n    } else {\n      
 this.options = {};\n    }\n    if (!this.options.params) {\n      this.options.params = {};\n    }\n  }\n/**\n * @param {?} options\n * @return {?}\n */\nabsorbOptions(options: AnimationOptions) {\n    const /** @type {?} */ newParams = options.params;\n    if (newParams) {\n      const /** @type {?} */ oldParams = /** @type {?} */(( this.options.params));\n      Object.keys(newParams).forEach(prop => {\n        if (oldParams[prop] == null) {\n          oldParams[prop] = newParams[prop];\n        }\n      });\n    }\n  }\n}\n\nfunction StateValue_tsickle_Closure_declarations() {\n/** @type {?} */\nStateValue.prototype.value;\n/** @type {?} */\nStateValue.prototype.options;\n}\n\n\nexport const /** @type {?} */ VOID_VALUE = 'void';\nexport const /** @type {?} */ DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nexport const /** @type {?} */ DELETED_STATE_VALUE = new StateValue('DELETED');\nexport class AnimationTransitionNamespace {\npublic players: TransitionAnimationPlayer[] = [];
 \nprivate _triggers: {[triggerName: string]: AnimationTrigger} = {};\nprivate _queue: QueueInstruction[] = [];\nprivate _elementListeners = new Map<any, TriggerListener[]>();\nprivate _hostClassName: string;\n/**\n * @param {?} id\n * @param {?} hostElement\n * @param {?} _engine\n */\nconstructor(\npublic id: string,\npublic hostElement: any,\nprivate _engine: TransitionAnimationEngine) {\n    this._hostClassName = 'ng-tns-' + id;\n    addClass(hostElement, this._hostClassName);\n  }\n/**\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\nlisten(element: any, name: string, phase: string, callback: (event: any) => boolean): () => any {\n    if (!this._triggers.hasOwnProperty(name)) {\n      throw new Error(`Unable to listen on the animation trigger event \"${\n          phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n    }\n\n    if (phase == null || phase.length == 0) {\n      throw new Error(`Unable
  to listen on the animation trigger \"${\n          name}\" because the provided event is undefined!`);\n    }\n\n    if (!isTriggerEventValid(phase)) {\n      throw new Error(`The provided animation trigger event \"${phase}\" for the animation trigger \"${\n          name}\" is not supported!`);\n    }\n\n    const /** @type {?} */ listeners = getOrSetAsInMap(this._elementListeners, element, []);\n    const /** @type {?} */ data = {name, phase, callback};\n    listeners.push(data);\n\n    const /** @type {?} */ triggersWithStates = getOrSetAsInMap(this._engine.statesByElement, element, {});\n    if (!triggersWithStates.hasOwnProperty(name)) {\n      addClass(element, NG_TRIGGER_CLASSNAME);\n      addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n      triggersWithStates[name] = null;\n    }\n\n    return () => {\n      // the event listener is removed AFTER the flush has occurred such\n      // that leave animations callbacks can fire (otherwise if the node\n      // is remove
 d in between then the listeners would be deregistered)\n      this._engine.afterFlush(() => {\n        const /** @type {?} */ index = listeners.indexOf(data);\n        if (index >= 0) {\n          listeners.splice(index, 1);\n        }\n\n        if (!this._triggers[name]) {\n          delete triggersWithStates[name];\n        }\n      });\n    };\n  }\n/**\n * @param {?} name\n * @param {?} ast\n * @return {?}\n */\nregister(name: string, ast: AnimationTrigger): boolean {\n    if (this._triggers[name]) {\n      // throw\n      return false;\n    } else {\n      this._triggers[name] = ast;\n      return true;\n    }\n  }\n/**\n * @param {?} name\n * @return {?}\n */\nprivate _getTrigger(name: string) {\n    const /** @type {?} */ trigger = this._triggers[name];\n    if (!trigger) {\n      throw new Error(`The provided animation trigger \"${name}\" has not been registered!`);\n    }\n    return trigger;\n  }\n/**\n * @param {?} element\n * @param {?} triggerName\n * @param {?} value\
 n * @param {?=} defaultToFallback\n * @return {?}\n */\ntrigger(element: any, triggerName: string, value: any, defaultToFallback: boolean = true):\n      TransitionAnimationPlayer|undefined {\n    const /** @type {?} */ trigger = this._getTrigger(triggerName);\n    const /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element);\n\n    let /** @type {?} */ triggersWithStates = this._engine.statesByElement.get(element);\n    if (!triggersWithStates) {\n      addClass(element, NG_TRIGGER_CLASSNAME);\n      addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n      this._engine.statesByElement.set(element, triggersWithStates = {});\n    }\n\n    let /** @type {?} */ fromState = triggersWithStates[triggerName];\n    const /** @type {?} */ toState = new StateValue(value);\n\n    const /** @type {?} */ isObj = value && value.hasOwnProperty('value');\n    if (!isObj && fromState) {\n      toState.absorbOptions(fromState.options);\n    }\n\n    triggers
 WithStates[triggerName] = toState;\n\n    if (!fromState) {\n      fromState = DEFAULT_STATE_VALUE;\n    } else if (fromState === DELETED_STATE_VALUE) {\n      return player;\n    }\n\n    const /** @type {?} */ isRemoval = toState.value === VOID_VALUE;\n\n    // normally this isn't reached by here, however, if an object expression\n    // is passed in then it may be a new object each time. Comparing the value\n    // is important since that will stay the same despite there being a new object.\n    // The removal arc here is special cased because the same element is triggered\n    // twice in the event that it contains animations on the outer/inner portions\n    // of the host container\n    if (!isRemoval && fromState.value === toState.value) {\n      // this means that despite the value not changing, some inner params\n      // have changed which means that the animation final styles need to be applied\n      if (!objEquals(fromState.params, toState.params)) {\n        const /** @
 type {?} */ errors: any[] = [];\n        const /** @type {?} */ fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n        const /** @type {?} */ toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n        if (errors.length) {\n          this._engine.reportError(errors);\n        } else {\n          this._engine.afterFlush(() => {\n            eraseStyles(element, fromStyles);\n            setStyles(element, toStyles);\n          });\n        }\n      }\n      return;\n    }\n\n    const /** @type {?} */ playersOnElement: TransitionAnimationPlayer[] =\n        getOrSetAsInMap(this._engine.playersByElement, element, []);\n    playersOnElement.forEach(player => {\n      // only remove the player if it is queued on the EXACT same trigger/namespace\n      // we only also deal with queued players here because if the animation has\n      // started then we want to keep the player alive until the flush happens\n      // (which is where the pre
 viousPlayers are passed into the new palyer)\n      if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n        player.destroy();\n      }\n    });\n\n    let /** @type {?} */ transition = trigger.matchTransition(fromState.value, toState.value);\n    let /** @type {?} */ isFallbackTransition = false;\n    if (!transition) {\n      if (!defaultToFallback) return;\n      transition = trigger.fallbackTransition;\n      isFallbackTransition = true;\n    }\n\n    this._engine.totalQueuedPlayers++;\n    this._queue.push(\n        {element, triggerName, transition, fromState, toState, player, isFallbackTransition});\n\n    if (!isFallbackTransition) {\n      addClass(element, QUEUED_CLASSNAME);\n      player.onStart(() => { removeClass(element, QUEUED_CLASSNAME); });\n    }\n\n    player.onDone(() => {\n      let /** @type {?} */ index = this.players.indexOf(player);\n      if (index >= 0) {\n        this.players.splice(index, 1);\n      }\n\n      c
 onst /** @type {?} */ players = this._engine.playersByElement.get(element);\n      if (players) {\n        let /** @type {?} */ index = players.indexOf(player);\n        if (index >= 0) {\n          players.splice(index, 1);\n        }\n      }\n    });\n\n    this.players.push(player);\n    playersOnElement.push(player);\n\n    return player;\n  }\n/**\n * @param {?} name\n * @return {?}\n */\nderegister(name: string) {\n    delete this._triggers[name];\n\n    this._engine.statesByElement.forEach((stateMap, element) => { delete stateMap[name]; });\n\n    this._elementListeners.forEach((listeners, element) => {\n      this._elementListeners.set(\n          element, listeners.filter(entry => { return entry.name != name; }));\n    });\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nclearElementCache(element: any) {\n    this._engine.statesByElement.delete(element);\n    this._elementListeners.delete(element);\n    const /** @type {?} */ elementPlayers = this._engine.playersByEl
 ement.get(element);\n    if (elementPlayers) {\n      elementPlayers.forEach(player => player.destroy());\n      this._engine.playersByElement.delete(element);\n    }\n  }\n/**\n * @param {?} rootElement\n * @param {?} context\n * @param {?=} animate\n * @return {?}\n */\nprivate _destroyInnerNodes(rootElement: any, context: any, animate: boolean = false) {\n    this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true).forEach(elm => {\n      if (animate && containsClass(elm, this._hostClassName)) {\n        const /** @type {?} */ innerNs = this._engine.namespacesByHostElement.get(elm);\n\n        // special case for a host element with animations on the same element\n        if (innerNs) {\n          innerNs.removeNode(elm, context, true);\n        }\n\n        this.removeNode(elm, context, true);\n      } else {\n        this.clearElementCache(elm);\n      }\n    });\n  }\n/**\n * @param {?} element\n * @param {?} context\n * @param {?=} doNotRecurse\n * @return {?}\n */\n
 removeNode(element: any, context: any, doNotRecurse?: boolean): void {\n    const /** @type {?} */ engine = this._engine;\n\n    if (!doNotRecurse && element.childElementCount) {\n      this._destroyInnerNodes(element, context, true);\n    }\n\n    const /** @type {?} */ triggerStates = engine.statesByElement.get(element);\n    if (triggerStates) {\n      const /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n      Object.keys(triggerStates).forEach(triggerName => {\n        // this check is here in the event that an element is removed\n        // twice (both on the host level and the component level)\n        if (this._triggers[triggerName]) {\n          const /** @type {?} */ player = this.trigger(element, triggerName, VOID_VALUE, false);\n          if (player) {\n            players.push(player);\n          }\n        }\n      });\n\n      if (players.length) {\n        engine.markElementAsRemoved(this.id, element, true, context);\n        optimizeGroupPlayer(players)
 .onDone(() => engine.processLeaveNode(element));\n        return;\n      }\n    }\n\n    // find the player that is animating and make sure that the\n    // removal is delayed until that player has completed\n    let /** @type {?} */ containsPotentialParentTransition = false;\n    if (engine.totalAnimations) {\n      const /** @type {?} */ currentPlayers =\n          engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n\n      // when this `if statement` does not continue forward it means that\n      // a previous animation query has selected the current element and\n      // is animating it. In this situation want to continue fowards and\n      // allow the element to be queued up for animation later.\n      if (currentPlayers && currentPlayers.length) {\n        containsPotentialParentTransition = true;\n      } else {\n        let /** @type {?} */ parent = element;\n        while (parent = parent.parentNode) {\n          const /** @type {?} */ triggers = eng
 ine.statesByElement.get(parent);\n          if (triggers) {\n            containsPotentialParentTransition = true;\n            break;\n          }\n        }\n      }\n    }\n\n    // at this stage we know that the element will either get removed\n    // during flush or will be picked up by a parent query. Either way\n    // we need to fire the listeners for this element when it DOES get\n    // removed (once the query parent animation is done or after flush)\n    const /** @type {?} */ listeners = this._elementListeners.get(element);\n    if (listeners) {\n      const /** @type {?} */ visitedTriggers = new Set<string>();\n      listeners.forEach(listener => {\n        const /** @type {?} */ triggerName = listener.name;\n        if (visitedTriggers.has(triggerName)) return;\n        visitedTriggers.add(triggerName);\n\n        const /** @type {?} */ trigger = this._triggers[triggerName];\n        const /** @type {?} */ transition = trigger.fallbackTransition;\n        const /** @ty
 pe {?} */ elementStates = /** @type {?} */(( engine.statesByElement.get(element)));\n        const /** @type {?} */ fromState = elementStates[triggerName] || DEFAULT_STATE_VALUE;\n        const /** @type {?} */ toState = new StateValue(VOID_VALUE);\n        const /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element);\n\n        this._engine.totalQueuedPlayers++;\n        this._queue.push({\n          element,\n          triggerName,\n          transition,\n          fromState,\n          toState,\n          player,\n          isFallbackTransition: true\n        });\n      });\n    }\n\n    // whether or not a parent has an animation we need to delay the deferral of the leave\n    // operation until we have more information (which we do after flush() has been called)\n    if (containsPotentialParentTransition) {\n      engine.markElementAsRemoved(this.id, element, false, context);\n    } else {\n      // we do this after the flush has occurred such\n 
      // that the callbacks can be fired\n      engine.afterFlush(() => this.clearElementCache(element));\n      engine.destroyInnerAnimations(element);\n      engine._onRemovalComplete(element, context);\n    }\n  }\n/**\n * @param {?} element\n * @param {?} parent\n * @return {?}\n */\ninsertNode(element: any, parent: any): void { addClass(element, this._hostClassName); }\n/**\n * @param {?} microtaskId\n * @return {?}\n */\ndrainQueuedTransitions(microtaskId: number): QueueInstruction[] {\n    const /** @type {?} */ instructions: QueueInstruction[] = [];\n    this._queue.forEach(entry => {\n      const /** @type {?} */ player = entry.player;\n      if (player.destroyed) return;\n\n      const /** @type {?} */ element = entry.element;\n      const /** @type {?} */ listeners = this._elementListeners.get(element);\n      if (listeners) {\n        listeners.forEach((listener: TriggerListener) => {\n          if (listener.name == entry.triggerName) {\n            const /** @type {?} */
  baseEvent = makeAnimationEvent(\n                element, entry.triggerName, entry.fromState.value, entry.toState.value);\n            ( /** @type {?} */((baseEvent as any)))['_data'] = microtaskId;\n            listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n          }\n        });\n      }\n\n      if (player.markedForDestroy) {\n        this._engine.afterFlush(() => {\n          // now we can destroy the element properly since the event listeners have\n          // been bound to the player\n          player.destroy();\n        });\n      } else {\n        instructions.push(entry);\n      }\n    });\n\n    this._queue = [];\n\n    return instructions.sort((a, b) => {\n      // if depCount == 0 them move to front\n      // otherwise if a contains b then move back\n      const /** @type {?} */ d0 = a.transition.ast.depCount;\n      const /** @type {?} */ d1 = b.transition.ast.depCount;\n      if (d0 == 0 || d1 == 0) {\n        return d0 - d1;\n      }\
 n      return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n    });\n  }\n/**\n * @param {?} context\n * @return {?}\n */\ndestroy(context: any) {\n    this.players.forEach(p => p.destroy());\n    this._destroyInnerNodes(this.hostElement, context);\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nelementContainsData(element: any): boolean {\n    let /** @type {?} */ containsData = false;\n    if (this._elementListeners.has(element)) containsData = true;\n    containsData =\n        (this._queue.find(entry => entry.element === element) ? true : false) || containsData;\n    return containsData;\n  }\n}\n\nfunction AnimationTransitionNamespace_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationTransitionNamespace.prototype.players;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._triggers;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._queue;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._elementListeners;\n/** @t
 ype {?} */\nAnimationTransitionNamespace.prototype._hostClassName;\n/** @type {?} */\nAnimationTransitionNamespace.prototype.id;\n/** @type {?} */\nAnimationTransitionNamespace.prototype.hostElement;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._engine;\n}\n\n\nexport interface QueuedTransition {\n  element: any;\n  instruction: AnimationTransitionInstruction;\n  player: TransitionAnimationPlayer;\n}\nexport class TransitionAnimationEngine {\npublic players: TransitionAnimationPlayer[] = [];\npublic newHostElements = new Map<any, AnimationTransitionNamespace>();\npublic playersByElement = new Map<any, TransitionAnimationPlayer[]>();\npublic playersByQueriedElement = new Map<any, TransitionAnimationPlayer[]>();\npublic statesByElement = new Map<any, {[triggerName: string]: StateValue}>();\npublic disabledNodes = new Set<any>();\npublic totalAnimations = 0;\npublic totalQueuedPlayers = 0;\nprivate _namespaceLookup: {[id: string]: AnimationTransitionNamespace} = {};\npriva
 te _namespaceList: AnimationTransitionNamespace[] = [];\nprivate _flushFns: (() => any)[] = [];\nprivate _whenQuietFns: (() => any)[] = [];\npublic namespacesByHostElement = new Map<any, AnimationTransitionNamespace>();\npublic collectedEnterElements: any[] = [];\npublic collectedLeaveElements: any[] = [];\npublic onRemovalComplete = (element: any, context: any) => {};\n/**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n_onRemovalComplete(element: any, context: any) { this.onRemovalComplete(element, context); }\n/**\n * @param {?} driver\n * @param {?} _normalizer\n */\nconstructor(public driver: AnimationDriver,\nprivate _normalizer: AnimationStyleNormalizer) {}\n/**\n * @return {?}\n */\nget queuedPlayers(): TransitionAnimationPlayer[] {\n    const /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n    this._namespaceList.forEach(ns => {\n      ns.players.forEach(player => {\n        if (player.queued) {\n          players.push(player);\n        }\n 
      });\n    });\n    return players;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\ncreateNamespace(namespaceId: string, hostElement: any) {\n    const /** @type {?} */ ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n    if (hostElement.parentNode) {\n      this._balanceNamespaceList(ns, hostElement);\n    } else {\n      // defer this later until flush during when the host element has\n      // been inserted so that we know exactly where to place it in\n      // the namespace list\n      this.newHostElements.set(hostElement, ns);\n\n      // given that this host element is apart of the animation code, it\n      // may or may not be inserted by a parent node that is an of an\n      // animation renderer type. If this happens then we can still have\n      // access to this item when we query for :enter nodes. If the parent\n      // is a renderer then the set data-structure will normalize the entry\n      this.collectEn
 terElement(hostElement);\n    }\n    return this._namespaceLookup[namespaceId] = ns;\n  }\n/**\n * @param {?} ns\n * @param {?} hostElement\n * @return {?}\n */\nprivate _balanceNamespaceList(ns: AnimationTransitionNamespace, hostElement: any) {\n    const /** @type {?} */ limit = this._namespaceList.length - 1;\n    if (limit >= 0) {\n      let /** @type {?} */ found = false;\n      for (let /** @type {?} */ i = limit; i >= 0; i--) {\n        const /** @type {?} */ nextNamespace = this._namespaceList[i];\n        if (this.driver.containsElement(nextNamespace.hostElement, hostElement)) {\n          this._namespaceList.splice(i + 1, 0, ns);\n          found = true;\n          break;\n        }\n      }\n      if (!found) {\n        this._namespaceList.splice(0, 0, ns);\n      }\n    } else {\n      this._namespaceList.push(ns);\n    }\n\n    this.namespacesByHostElement.set(hostElement, ns);\n    return ns;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {
 ?}\n */\nregister(namespaceId: string, hostElement: any) {\n    let /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n    if (!ns) {\n      ns = this.createNamespace(namespaceId, hostElement);\n    }\n    return ns;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} name\n * @param {?} trigger\n * @return {?}\n */\nregisterTrigger(namespaceId: string, name: string, trigger: AnimationTrigger) {\n    let /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n    if (ns && ns.register(name, trigger)) {\n      this.totalAnimations++;\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\ndestroy(namespaceId: string, context: any) {\n    if (!namespaceId) return;\n\n    const /** @type {?} */ ns = this._fetchNamespace(namespaceId);\n\n    this.afterFlush(() => {\n      this.namespacesByHostElement.delete(ns.hostElement);\n      delete this._namespaceLookup[namespaceId];\n      const /** @type {?} */ index = this._namespaceList.indexOf(ns);\
 n      if (index >= 0) {\n        this._namespaceList.splice(index, 1);\n      }\n    });\n\n    this.afterFlushAnimationsDone(() => ns.destroy(context));\n  }\n/**\n * @param {?} id\n * @return {?}\n */\nprivate _fetchNamespace(id: string) { return this._namespaceLookup[id]; }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\ntrigger(namespaceId: string, element: any, name: string, value: any): boolean {\n    if (isElementNode(element)) {\n      this._fetchNamespace(namespaceId).trigger(element, name, value);\n      return true;\n    }\n    return false;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\ninsertNode(namespaceId: string, element: any, parent: any, insertBefore: boolean): void {\n    if (!isElementNode(element)) return;\n\n    // special case for when an element is removed and reinserted (move operation)\n    // when this
  occurs we do not want to use the element for deletion later\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n    if (details && details.setForRemoval) {\n      details.setForRemoval = false;\n    }\n\n    // in the event that the namespaceId is blank then the caller\n    // code does not contain any animation code in it, but it is\n    // just being called so that the node is marked as being inserted\n    if (namespaceId) {\n      this._fetchNamespace(namespaceId).insertNode(element, parent);\n    }\n\n    // only *directives and host elements are inserted before\n    if (insertBefore) {\n      this.collectEnterElement(element);\n    }\n  }\n/**\n * @param {?} element\n * @return {?}\n */\ncollectEnterElement(element: any) { this.collectedEnterElements.push(element); }\n/**\n * @param {?} element\n * @param {?} value\n * @return {?}\n */\nmarkElementAsDisabled(element: any, value: boolean) {\n    if (value) {\n      if (!th
 is.disabledNodes.has(element)) {\n        this.disabledNodes.add(element);\n        addClass(element, DISABLED_CLASSNAME);\n      }\n    } else if (this.disabledNodes.has(element)) {\n      this.disabledNodes.delete(element);\n      removeClass(element, DISABLED_CLASSNAME);\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @param {?=} doNotRecurse\n * @return {?}\n */\nremoveNode(namespaceId: string, element: any, context: any, doNotRecurse?: boolean): void {\n    if (!isElementNode(element)) {\n      this._onRemovalComplete(element, context);\n      return;\n    }\n\n    const /** @type {?} */ ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n    if (ns) {\n      ns.removeNode(element, context, doNotRecurse);\n    } else {\n      this.markElementAsRemoved(namespaceId, element, false, context);\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?=} hasAnimation\n * @param {?=} context\n * @return {?}
 \n */\nmarkElementAsRemoved(namespaceId: string, element: any, hasAnimation?: boolean, context?: any) {\n    this.collectedLeaveElements.push(element);\n    element[REMOVAL_FLAG] = {\n      namespaceId,\n      setForRemoval: context, hasAnimation,\n      removedBeforeQueried: false\n    };\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\nlisten(\n      namespaceId: string, element: any, name: string, phase: string,\n      callback: (event: any) => boolean): () => any {\n    if (isElementNode(element)) {\n      return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n    }\n    return () => {};\n  }\n/**\n * @param {?} entry\n * @param {?} subTimelines\n * @return {?}\n */\nprivate _buildInstruction(entry: QueueInstruction, subTimelines: ElementInstructionMap) {\n    return entry.transition.build(\n        this.driver, entry.element, entry.fromState.value, entry.
 toState.value,\n        entry.fromState.options, entry.toState.options, subTimelines);\n  }\n/**\n * @param {?} containerElement\n * @return {?}\n */\ndestroyInnerAnimations(containerElement: any) {\n    let /** @type {?} */ elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n    elements.forEach(element => {\n      const /** @type {?} */ players = this.playersByElement.get(element);\n      if (players) {\n        players.forEach(player => {\n          // special case for when an element is set for destruction, but hasn't started.\n          // in this situation we want to delay the destruction until the flush occurs\n          // so that any event listeners attached to the player are triggered.\n          if (player.queued) {\n            player.markedForDestroy = true;\n          } else {\n            player.destroy();\n          }\n        });\n      }\n      const /** @type {?} */ stateMap = this.statesByElement.get(element);\n      if (stateMap) {\n     
    Object.keys(stateMap).forEach(triggerName => stateMap[triggerName] = DELETED_STATE_VALUE);\n      }\n    });\n\n    if (this.playersByQueriedElement.size == 0) return;\n\n    elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n    if (elements.length) {\n      elements.forEach(element => {\n        const /** @type {?} */ players = this.playersByQueriedElement.get(element);\n        if (players) {\n          players.forEach(player => player.finish());\n        }\n      });\n    }\n  }\n/**\n * @return {?}\n */\nwhenRenderingDone(): Promise<any> {\n    return new Promise(resolve => {\n      if (this.players.length) {\n        return optimizeGroupPlayer(this.players).onDone(() => resolve());\n      } else {\n        resolve();\n      }\n    });\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nprocessLeaveNode(element: any) {\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n    if (details && d
 etails.setForRemoval) {\n      // this will prevent it from removing it twice\n      element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n      if (details.namespaceId) {\n        this.destroyInnerAnimations(element);\n        const /** @type {?} */ ns = this._fetchNamespace(details.namespaceId);\n        if (ns) {\n          ns.clearElementCache(element);\n        }\n      }\n      this._onRemovalComplete(element, details.setForRemoval);\n    }\n\n    if (this.driver.matchesElement(element, DISABLED_SELECTOR)) {\n      this.markElementAsDisabled(element, false);\n    }\n\n    this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n      this.markElementAsDisabled(element, false);\n    });\n  }\n/**\n * @param {?=} microtaskId\n * @return {?}\n */\nflush(microtaskId: number = -1) {\n    let /** @type {?} */ players: AnimationPlayer[] = [];\n    if (this.newHostElements.size) {\n      this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n    
   this.newHostElements.clear();\n    }\n\n    if (this._namespaceList.length &&\n        (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n      const /** @type {?} */ cleanupFns: Function[] = [];\n      try {\n        players = this._flushAnimations(cleanupFns, microtaskId);\n      } finally {\n        for (let /** @type {?} */ i = 0; i < cleanupFns.length; i++) {\n          cleanupFns[i]();\n        }\n      }\n    } else {\n      for (let /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n        const /** @type {?} */ element = this.collectedLeaveElements[i];\n        this.processLeaveNode(element);\n      }\n    }\n\n    this.totalQueuedPlayers = 0;\n    this.collectedEnterElements.length = 0;\n    this.collectedLeaveElements.length = 0;\n    this._flushFns.forEach(fn => fn());\n    this._flushFns = [];\n\n    if (this._whenQuietFns.length) {\n      // we move these over to a variable so that\n      // if any new callbacks are registered i
 n another\n      // flush they do not populate the existing set\n      const /** @type {?} */ quietFns = this._whenQuietFns;\n      this._whenQuietFns = [];\n\n      if (players.length) {\n        optimizeGroupPlayer(players).onDone(() => { quietFns.forEach(fn => fn()); });\n      } else {\n        quietFns.forEach(fn => fn());\n      }\n    }\n  }\n/**\n * @param {?} errors\n * @return {?}\n */\nreportError(errors: string[]) {\n    throw new Error(\n        `Unable to process animations due to the following failed trigger transitions\\n ${\n            errors.join('\\n')}`);\n  }\n/**\n * @param {?} cleanupFns\n * @param {?} microtaskId\n * @return {?}\n */\nprivate _flushAnimations(cleanupFns: Function[], microtaskId: number):\n      TransitionAnimationPlayer[] {\n    const /** @type {?} */ subTimelines = new ElementInstructionMap();\n    const /** @type {?} */ skippedPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ skippedPlayersMap = new Map<any, AnimationP
 layer[]>();\n    const /** @type {?} */ queuedInstructions: QueuedTransition[] = [];\n    const /** @type {?} */ queriedElements = new Map<any, TransitionAnimationPlayer[]>();\n    const /** @type {?} */ allPreStyleElements = new Map<any, Set<string>>();\n    const /** @type {?} */ allPostStyleElements = new Map<any, Set<string>>();\n\n    const /** @type {?} */ disabledElementsSet = new Set<any>();\n    this.disabledNodes.forEach(node => {\n      disabledElementsSet.add(node);\n      const /** @type {?} */ nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n      for (let /** @type {?} */ i = 0; i < nodesThatAreDisabled.length; i++) {\n        disabledElementsSet.add(nodesThatAreDisabled[i]);\n      }\n    });\n\n    const /** @type {?} */ bodyNode = getBodyNode();\n    const /** @type {?} */ allEnterNodes: any[] = this.collectedEnterElements.length ?\n        this.collectedEnterElements.filter(createIsRootFilterFn(this.collectedEnterElements)) :\n        [];\n\
 n    // this must occur before the instructions are built below such that\n    // the :enter queries match the elements (since the timeline queries\n    // are fired during instruction building).\n    for (let /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n      addClass(allEnterNodes[i], ENTER_CLASSNAME);\n    }\n\n    const /** @type {?} */ allLeaveNodes: any[] = [];\n    const /** @type {?} */ leaveNodesWithoutAnimations = new Set<any>();\n    for (let /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n      const /** @type {?} */ element = this.collectedLeaveElements[i];\n      const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n      if (details && details.setForRemoval) {\n        addClass(element, LEAVE_CLASSNAME);\n        allLeaveNodes.push(element);\n        if (!details.hasAnimation) {\n          leaveNodesWithoutAnimations.add(element);\n        }\n      }\n    }\n\n    cleanupFns.push(() 
 => {\n      allEnterNodes.forEach(element => removeClass(element, ENTER_CLASSNAME));\n      allLeaveNodes.forEach(element => {\n        removeClass(element, LEAVE_CLASSNAME);\n        this.processLeaveNode(element);\n      });\n    });\n\n    const /** @type {?} */ allPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ erroneousTransitions: AnimationTransitionInstruction[] = [];\n    for (let /** @type {?} */ i = this._namespaceList.length - 1; i >= 0; i--) {\n      const /** @type {?} */ ns = this._namespaceList[i];\n      ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n        const /** @type {?} */ player = entry.player;\n        allPlayers.push(player);\n\n        const /** @type {?} */ element = entry.element;\n        if (!bodyNode || !this.driver.containsElement(bodyNode, element)) {\n          player.destroy();\n          return;\n        }\n\n        const /** @type {?} */ instruction = /** @type {?} */(( this._buildInstruction(entry, subTimeli
 nes)));\n        if (instruction.errors && instruction.errors.length) {\n          erroneousTransitions.push(instruction);\n          return;\n        }\n\n        // if a unmatched transition is queued to go then it SHOULD NOT render\n        // an animation and cancel the previously running animations.\n        if (entry.isFallbackTransition) {\n          player.onStart(() => eraseStyles(element, instruction.fromStyles));\n          player.onDestroy(() => setStyles(element, instruction.toStyles));\n          skippedPlayers.push(player);\n          return;\n        }\n\n        // this means that if a parent animation uses this animation as a sub trigger\n        // then it will instruct the timeline builder to not add a player delay, but\n        // instead stretch the first keyframe gap up until the animation starts. The\n        // reason this is important is to prevent extra initialization styles from being\n        // required by the user in the animation.\n        instruction
 .timelines.forEach(tl => tl.stretchStartingKeyframe = true);\n\n        subTimelines.append(element, instruction.timelines);\n\n        const /** @type {?} */ tuple = {instruction, player, element};\n\n        queuedInstructions.push(tuple);\n\n        instruction.queriedElements.forEach(\n            element => getOrSetAsInMap(queriedElements, element, []).push(player));\n\n        instruction.preStyleProps.forEach((stringMap, element) => {\n          const /** @type {?} */ props = Object.keys(stringMap);\n          if (props.length) {\n            let /** @type {?} */ setVal: Set<string> = /** @type {?} */(( allPreStyleElements.get(element)));\n            if (!setVal) {\n              allPreStyleElements.set(element, setVal = new Set<string>());\n            }\n            props.forEach(prop => setVal.add(prop));\n          }\n        });\n\n        instruction.postStyleProps.forEach((stringMap, element) => {\n          const /** @type {?} */ props = Object.keys(stringMap);\n    
       let /** @type {?} */ setVal: Set<string> = /** @type {?} */(( allPostStyleElements.get(element)));\n          if (!setVal) {\n            allPostStyleElements.set(element, setVal = new Set<string>());\n          }\n          props.forEach(prop => setVal.add(prop));\n        });\n      });\n    }\n\n    if (erroneousTransitions.length) {\n      const /** @type {?} */ errors: string[] = [];\n      erroneousTransitions.forEach(instruction => {\n        errors.push(`@${instruction.triggerName} has failed due to:\\n`); /** @type {?} */((\n        instruction.errors)).forEach(error => errors.push(`- ${error}\\n`));\n      });\n\n      allPlayers.forEach(player => player.destroy());\n      this.reportError(errors);\n    }\n\n    // these can only be detected here since we have a map of all the elements\n    // that have animations attached to them... We use a set here in the event\n    // multiple enter captures on the same element were caught in different\n    // renderer namespaces
  (e.g. when a @trigger was on a host binding that had *ngIf)\n    const /** @type {?} */ enterNodesWithoutAnimations = new Set<any>();\n    for (let /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n      const /** @type {?} */ element = allEnterNodes[i];\n      if (!subTimelines.has(element)) {\n        enterNodesWithoutAnimations.add(element);\n      }\n    }\n\n    const /** @type {?} */ allPreviousPlayersMap = new Map<any, TransitionAnimationPlayer[]>();\n    let /** @type {?} */ sortedParentElements: any[] = [];\n    queuedInstructions.forEach(entry => {\n      const /** @type {?} */ element = entry.element;\n      if (subTimelines.has(element)) {\n        sortedParentElements.unshift(element);\n        this._beforeAnimationBuild(\n            entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n      }\n    });\n\n    skippedPlayers.forEach(player => {\n      const /** @type {?} */ element = player.element;\n      const /** @type {?} */ previousPlayers
  =\n          this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n      previousPlayers.forEach(prevPlayer => {\n        getOrSetAsInMap(allPreviousPlayersMap, element, []).push(prevPlayer);\n        prevPlayer.destroy();\n      });\n    });\n\n    // this is a special case for nodes that will be removed (either by)\n    // having their own leave animations or by being queried in a container\n    // that will be removed once a parent animation is complete. The idea\n    // here is that * styles must be identical to ! styles because of\n    // backwards compatibility (* is also filled in by default in many places).\n    // Otherwise * styles will return an empty value or auto since the element\n    // that is being getComputedStyle'd will not be visible (since * = destination)\n    const /** @type {?} */ replaceNodes = allLeaveNodes.filter(node => {\n      return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n    });\n\n
     // POST STAGE: fill the * styles\n    const [postStylesMap, allLeaveQueriedNodes] = cloakAndComputeStyles(\n        this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n\n    allLeaveQueriedNodes.forEach(node => {\n      if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n        replaceNodes.push(node);\n      }\n    });\n\n    // PRE STAGE: fill the ! styles\n    const [preStylesMap] = allPreStyleElements.size ?\n        cloakAndComputeStyles(\n            this.driver, enterNodesWithoutAnimations, allPreStyleElements, PRE_STYLE) :\n        [new Map<any, ɵStyleData>()];\n\n    replaceNodes.forEach(node => {\n      const /** @type {?} */ post = postStylesMap.get(node);\n      const /** @type {?} */ pre = preStylesMap.get(node);\n      postStylesMap.set(node, /** @type {?} */(( { ...post, ...pre } as any)));\n    });\n\n    const /** @type {?} */ rootPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ subPla
 yers: TransitionAnimationPlayer[] = [];\n    queuedInstructions.forEach(entry => {\n      const {element, player, instruction} = entry;\n      // this means that it was never consumed by a parent animation which\n      // means that it is independent and therefore should be set for animation\n      if (subTimelines.has(element)) {\n        if (disabledElementsSet.has(element)) {\n          skippedPlayers.push(player);\n          return;\n        }\n\n        const /** @type {?} */ innerPlayer = this._buildAnimation(\n            player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap,\n            postStylesMap);\n        player.setRealPlayer(innerPlayer);\n\n        let /** @type {?} */ parentHasPriority: any = null;\n        for (let /** @type {?} */ i = 0; i < sortedParentElements.length; i++) {\n          const /** @type {?} */ parent = sortedParentElements[i];\n          if (parent === element) break;\n          if (this.driver.containsElement(pa
 rent, element)) {\n            parentHasPriority = parent;\n            break;\n          }\n        }\n\n        if (parentHasPriority) {\n          const /** @type {?} */ parentPlayers = this.playersByElement.get(parentHasPriority);\n          if (parentPlayers && parentPlayers.length) {\n            player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n          }\n          skippedPlayers.push(player);\n        } else {\n          rootPlayers.push(player);\n        }\n      } else {\n        eraseStyles(element, instruction.fromStyles);\n        player.onDestroy(() => setStyles(element, instruction.toStyles));\n        // there still might be a ancestor player animating this\n        // element therefore we will still add it as a sub player\n        // even if its animation may be disabled\n        subPlayers.push(player);\n        if (disabledElementsSet.has(element)) {\n          skippedPlayers.push(player);\n        }\n      }\n    });\n\n    // find all of the sub playe
 rs' corresponding inner animation player\n    subPlayers.forEach(player => {\n      // even if any players are not found for a sub animation then it\n      // will still complete itself after the next tick since it's Noop\n      const /** @type {?} */ playersForElement = skippedPlayersMap.get(player.element);\n      if (playersForElement && playersForElement.length) {\n        const /** @type {?} */ innerPlayer = optimizeGroupPlayer(playersForElement);\n        player.setRealPlayer(innerPlayer);\n      }\n    });\n\n    // the reason why we don't actually play the animation is\n    // because all that a skipped player is designed to do is to\n    // fire the start/done transition callback events\n    skippedPlayers.forEach(player => {\n      if (player.parentPlayer) {\n        player.parentPlayer.onDestroy(() => player.destroy());\n      } else {\n        player.destroy();\n      }\n    });\n\n    // run through all of the queued removals and see if they\n    // were picked up by a 
 query. If not then perform the removal\n    // operation right away unless a parent animation is ongoing.\n    for (let /** @type {?} */ i = 0; i < allLeaveNodes.length; i++) {\n      const /** @type {?} */ element = allLeaveNodes[i];\n      const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n      removeClass(element, LEAVE_CLASSNAME);\n\n      // this means the element has a removal animation that is being\n      // taken care of and therefore the inner elements will hang around\n      // until that animation is over (or the parent queried animation)\n      if (details && details.hasAnimation) continue;\n\n      let /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n\n      // if this element is queried or if it contains queried children\n      // then we want for the element not to be removed from the page\n      // until the queried animations have finished\n      if (queriedElements.size) {\n        let /** @type {?} 
 */ queriedPlayerResults = queriedElements.get(element);\n        if (queriedPlayerResults && queriedPlayerResults.length) {\n          players.push(...queriedPlayerResults);\n        }\n\n        let /** @type {?} */ queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n        for (let /** @type {?} */ j = 0; j < queriedInnerElements.length; j++) {\n          let /** @type {?} */ queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n          if (queriedPlayers && queriedPlayers.length) {\n            players.push(...queriedPlayers);\n          }\n        }\n      }\n\n      const /** @type {?} */ activePlayers = players.filter(p => !p.destroyed);\n      if (activePlayers.length) {\n        removeNodesAfterAnimationDone(this, element, activePlayers);\n      } else {\n        this.processLeaveNode(element);\n      }\n    }\n\n    // this is required so the cleanup method doesn't remove them\n    allLeaveNodes.length = 0;\n\n    rootPlayers.forEac
 h(player => {\n      this.players.push(player);\n      player.onDone(() => {\n        player.destroy();\n\n        const /** @type {?} */ index = this.players.indexOf(player);\n        this.players.splice(index, 1);\n      });\n      player.play();\n    });\n\n    return rootPlayers;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @return {?}\n */\nelementContainsData(namespaceId: string, element: any) {\n    let /** @type {?} */ containsData = false;\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n    if (details && details.setForRemoval) containsData = true;\n    if (this.playersByElement.has(element)) containsData = true;\n    if (this.playersByQueriedElement.has(element)) containsData = true;\n    if (this.statesByElement.has(element)) containsData = true;\n    return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n  }\n/**\n * @param {?} callback\n * @return {?}\n */\naf
 terFlush(callback: () => any) { this._flushFns.push(callback); }\n/**\n * @param {?} callback\n * @return {?}\n */\nafterFlushAnimationsDone(callback: () => any) { this._whenQuietFns.push(callback); }\n/**\n * @param {?} element\n * @param {?} isQueriedElement\n * @param {?=} namespaceId\n * @param {?=} triggerName\n * @param {?=} toStateValue\n * @return {?}\n */\nprivate _getPreviousPlayers(\n      element: string, isQueriedElement: boolean, namespaceId?: string, triggerName?: string,\n      toStateValue?: any): TransitionAnimationPlayer[] {\n    let /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n    if (isQueriedElement) {\n      const /** @type {?} */ queriedElementPlayers = this.playersByQueriedElement.get(element);\n      if (queriedElementPlayers) {\n        players = queriedElementPlayers;\n      }\n    } else {\n      const /** @type {?} */ elementPlayers = this.playersByElement.get(element);\n      if (elementPlayers) {\n        const /** @type {?} */ isRemov
 alAnimation = !toStateValue || toStateValue == VOID_VALUE;\n        elementPlayers.forEach(player => {\n          if (player.queued) return;\n          if (!isRemovalAnimation && player.triggerName != triggerName) return;\n          players.push(player);\n        });\n      }\n    }\n    if (namespaceId || triggerName) {\n      players = players.filter(player => {\n        if (namespaceId && namespaceId != player.namespaceId) return false;\n        if (triggerName && triggerName != player.triggerName) return false;\n        return true;\n      });\n    }\n    return players;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @return {?}\n */\nprivate _beforeAnimationBuild(\n      namespaceId: string, instruction: AnimationTransitionInstruction,\n      allPreviousPlayersMap: Map<any, TransitionAnimationPlayer[]>) {\n    const /** @type {?} */ triggerName = instruction.triggerName;\n    const /** @type {?} */ rootElement = instruct
 ion.element;\n\n    // when a removal animation occurs, ALL previous players are collected\n    // and destroyed (even if they are outside of the current namespace)\n    const /** @type {?} */ targetNameSpaceId: string|undefined =\n        instruction.isRemovalTransition ? undefined : namespaceId;\n    const /** @type {?} */ targetTriggerName: string|undefined =\n        instruction.isRemovalTransition ? undefined : triggerName;\n\n    instruction.timelines.map(timelineInstruction => {\n      const /** @type {?} */ element = timelineInstruction.element;\n      const /** @type {?} */ isQueriedElement = element !== rootElement;\n      const /** @type {?} */ players = getOrSetAsInMap(allPreviousPlayersMap, element, []);\n      const /** @type {?} */ previousPlayers = this._getPreviousPlayers(\n          element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n      previousPlayers.forEach(player => {\n        const /** @type {?} */ realPlayer = /** @type 
 {?} */(( player.getRealPlayer() as any));\n        if (realPlayer.beforeDestroy) {\n          realPlayer.beforeDestroy();\n        }\n        player.destroy();\n        players.push(player);\n      });\n    });\n\n    // this needs to be done so that the PRE/POST styles can be\n    // computed properly without interfering with the previous animation\n    eraseStyles(rootElement, instruction.fromStyles);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @param {?} skippedPlayersMap\n * @param {?} preStylesMap\n * @param {?} postStylesMap\n * @return {?}\n */\nprivate _buildAnimation(\n      namespaceId: string, instruction: AnimationTransitionInstruction,\n      allPreviousPlayersMap: Map<any, TransitionAnimationPlayer[]>,\n      skippedPlayersMap: Map<any, AnimationPlayer[]>, preStylesMap: Map<any, ɵStyleData>,\n      postStylesMap: Map<any, ɵStyleData>): AnimationPlayer {\n    const /** @type {?} */ triggerName = instruction.
 triggerName;\n    const /** @type {?} */ rootElement = instruction.element;\n\n    // we first run this so that the previous animation player\n    // data can be passed into the successive animation players\n    const /** @type {?} */ allQueriedPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ allConsumedElements = new Set<any>();\n    const /** @type {?} */ allSubElements = new Set<any>();\n    const /** @type {?} */ allNewPlayers = instruction.timelines.map(timelineInstruction => {\n      const /** @type {?} */ element = timelineInstruction.element;\n      allConsumedElements.add(element);\n\n      // FIXME (matsko): make sure to-be-removed animations are removed properly\n      const /** @type {?} */ details = element[REMOVAL_FLAG];\n      if (details && details.removedBeforeQueried) return new NoopAnimationPlayer();\n\n      const /** @type {?} */ isQueriedElement = element !== rootElement;\n      const /** @type {?} */ previousPlayers =\n          flattenGr
 oupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n                                  .map(p => p.getRealPlayer()))\n              .filter(p => {\n                // the `element` is not apart of the AnimationPlayer definition, but\n                // Mock/WebAnimations\n                // use the element within their implementation. This will be added in Angular5 to\n                // AnimationPlayer\n                const /** @type {?} */ pp = /** @type {?} */(( p as any));\n                return pp.element ? pp.element === element : false;\n              });\n\n      const /** @type {?} */ preStyles = preStylesMap.get(element);\n      const /** @type {?} */ postStyles = postStylesMap.get(element);\n      const /** @type {?} */ keyframes = normalizeKeyframes(\n          this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles,\n          postStyles);\n      const /** @type {?} */ player = this._buildPlayer(timelineInstruction, keyframes
 , previousPlayers);\n\n      // this means that this particular player belongs to a sub trigger. It is\n      // important that we match this player up with the corresponding (@trigger.listener)\n      if (timelineInstruction.subTimeline && skippedPlayersMap) {\n        allSubElements.add(element);\n      }\n\n      if (isQueriedElement) {\n        const /** @type {?} */ wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n        wrappedPlayer.setRealPlayer(player);\n        allQueriedPlayers.push(wrappedPlayer);\n      }\n\n      return player;\n    });\n\n    allQueriedPlayers.forEach(player => {\n      getOrSetAsInMap(this.playersByQueriedElement, player.element, []).push(player);\n      player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n    });\n\n    allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n    const /** @type {?} */ player = optimizeGroupPlayer(allNewPlayers);
 \n    player.onDestroy(() => {\n      allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n      setStyles(rootElement, instruction.toStyles);\n    });\n\n    // this basically makes all of the callbacks for sub element animations\n    // be dependent on the upper players for when they finish\n    allSubElements.forEach(\n        element => { getOrSetAsInMap(skippedPlayersMap, element, []).push(player); });\n\n    return player;\n  }\n/**\n * @param {?} instruction\n * @param {?} keyframes\n * @param {?} previousPlayers\n * @return {?}\n */\nprivate _buildPlayer(\n      instruction: AnimationTimelineInstruction, keyframes: ɵStyleData[],\n      previousPlayers: AnimationPlayer[]): AnimationPlayer {\n    if (keyframes.length > 0) {\n      return this.driver.animate(\n          instruction.element, keyframes, instruction.duration, instruction.delay,\n          instruction.easing, previousPlayers);\n    }\n\n    // special case for when an empty transi
 tion|definition is provided\n    // ... there is no point in rendering an empty animation\n    return new NoopAnimationPlayer();\n  }\n}\n\nfunction TransitionAnimationEngine_tsickle_Closure_declarations() {\n/** @type {?} */\nTransitionAnimationEngine.prototype.players;\n/** @type {?} */\nTransitionAnimationEngine.prototype.newHostElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.playersByElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.playersByQueriedElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.statesByElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.disabledNodes;\n/** @type {?} */\nTransitionAnimationEngine.prototype.totalAnimations;\n/** @type {?} */\nTransitionAnimationEngine.prototype.totalQueuedPlayers;\n/** @type {?} */\nTransitionAnimationEngine.prototype._namespaceLookup;\n/** @type {?} */\nTransitionAnimationEngine.prototype._namespaceList;\n/** @type {?} */\nTransitionAnimationEngine.prototype._flushFns;\n
 /** @type {?} */\nTransitionAnimationEngine.prototype._whenQuietFns;\n/** @type {?} */\nTransitionAnimationEngine.prototype.namespacesByHostElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.collectedEnterElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.collectedLeaveElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.onRemovalComplete;\n/** @type {?} */\nTransitionAnimationEngine.prototype.driver;\n/** @type {?} */\nTransitionAnimationEngine.prototype._normalizer;\n}\n\nexport class TransitionAnimationPlayer implements AnimationPlayer {\nprivate _player: AnimationPlayer = new NoopAnimationPlayer();\nprivate _containsRealPlayer = false;\nprivate _queuedCallbacks: {[name: string]: (() => any)[]} = {};\nprivate _destroyed = false;\npublic parentPlayer: AnimationPlayer;\npublic markedForDestroy: boolean = false;\n/**\n * @param {?} namespaceId\n * @param {?} triggerName\n * @param {?} element\n */\nconstructor(public namespaceId: string,\npubli
 c triggerName: string,\npublic element: any) {}\n/**\n * @return {?}\n */\nget queued() { return this._containsRealPlayer == false; }\n/**\n * @return {?}\n */\nget destroyed() { return this._destroyed; }\n/**\n * @param {?} player\n * @return {?}\n */\nsetRealPlayer(player: AnimationPlayer) {\n    if (this._containsRealPlayer) return;\n\n    this._player = player;\n    Object.keys(this._queuedCallbacks).forEach(phase => {\n      this._queuedCallbacks[phase].forEach(\n          callback => listenOnPlayer(player, phase, undefined, callback));\n    });\n    this._queuedCallbacks = {};\n    this._containsRealPlayer = true;\n  }\n/**\n * @return {?}\n */\ngetRealPlayer() { return this._player; }\n/**\n * @param {?} name\n * @param {?} callback\n * @return {?}\n */\nprivate _queueEvent(name: string, callback: (event: any) => any): void {\n    getOrSetAsInMap(this._queuedCallbacks, name, []).push(callback);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void {\n
     if (this.queued) {\n      this._queueEvent('done', fn);\n    }\n    this._player.onDone(fn);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void {\n    if (this.queued) {\n      this._queueEvent('start', fn);\n    }\n    this._player.onStart(fn);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void {\n    if (this.queued) {\n      this._queueEvent('destroy', fn);\n    }\n    this._player.onDestroy(fn);\n  }\n/**\n * @return {?}\n */\ninit(): void { this._player.init(); }\n/**\n * @return {?}\n */\nhasStarted(): boolean { return this.queued ? false : this._player.hasStarted(); }\n/**\n * @return {?}\n */\nplay(): void { !this.queued && this._player.play(); }\n/**\n * @return {?}\n */\npause(): void { !this.queued && this._player.pause(); }\n/**\n * @return {?}\n */\nrestart(): void { !this.queued && this._player.restart(); }\n/**\n * @return {?}\n */\nfinish(): void { this._player.finish(); }\n/**\n * @return {?}\n */\ndest
 roy(): void {\n    this._destroyed = true;\n    this._player.destroy();\n  }\n/**\n * @return {?}\n */\nreset(): void { !this.queued && this._player.reset(); }\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: any): void {\n    if (!this.queued) {\n      this._player.setPosition(p);\n    }\n  }\n/**\n * @return {?}\n */\ngetPosition(): number { return this.queued ? 0 : this._player.getPosition(); }\n/**\n * @return {?}\n */\nget totalTime(): number { return this._player.totalTime; }\n}\n\nfunction TransitionAnimationPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nTransitionAnimationPlayer.prototype._player;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._containsRealPlayer;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._queuedCallbacks;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._destroyed;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.parentPlayer;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.markedForDestroy;\n/**
  @type {?} */\nTransitionAnimationPlayer.prototype.namespaceId;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.triggerName;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.element;\n}\n\n/**\n * @param {?} map\n * @param {?} key\n * @param {?} value\n * @return {?}\n */\nfunction deleteOrUnsetInMap(map: Map<any, any[]>| {[key: string]: any}, key: any, value: any) {\n  let /** @type {?} */ currentValues: any[]|null|undefined;\n  if (map instanceof Map) {\n    currentValues = map.get(key);\n    if (currentValues) {\n      if (currentValues.length) {\n        const /** @type {?} */ index = currentValues.indexOf(value);\n        currentValues.splice(index, 1);\n      }\n      if (currentValues.length == 0) {\n        map.delete(key);\n      }\n    }\n  } else {\n    currentValues = map[key];\n    if (currentValues) {\n      if (currentValues.length) {\n        const /** @type {?} */ index = currentValues.indexOf(value);\n        currentValues.splice(index, 1);\n      }\n 
      if (currentValues.length == 0) {\n        delete map[key];\n      }\n    }\n  }\n  return currentValues;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction normalizeTriggerValue(value: any): any {\n  // we use `!= null` here because it's the most simple\n  // way to test against a \"falsy\" value without mixing\n  // in empty strings or a zero value. DO NOT OPTIMIZE.\n  return value != null ? value : null;\n}\n/**\n * @param {?} node\n * @return {?}\n */\nfunction isElementNode(node: any) {\n  return node && node['nodeType'] === 1;\n}\n/**\n * @param {?} eventName\n * @return {?}\n */\nfunction isTriggerEventValid(eventName: string): boolean {\n  return eventName == 'start' || eventName == 'done';\n}\n/**\n * @param {?} element\n * @param {?=} value\n * @return {?}\n */\nfunction cloakElement(element: any, value?: string) {\n  const /** @type {?} */ oldValue = element.style.display;\n  element.style.display = value != null ? value : 'none';\n  return oldValue;\n}\n/**\
 n * @param {?} driver\n * @param {?} elements\n * @param {?} elementPropsMap\n * @param {?} defaultStyle\n * @return {?}\n */\nfunction cloakAndComputeStyles(\n    driver: AnimationDriver, elements: Set<any>, elementPropsMap: Map<any, Set<string>>,\n    defaultStyle: string): [Map<any, ɵStyleData>, any[]] {\n  const /** @type {?} */ cloakVals: string[] = [];\n  elements.forEach(element => cloakVals.push(cloakElement(element)));\n\n  const /** @type {?} */ valuesMap = new Map<any, ɵStyleData>();\n  const /** @type {?} */ failedElements: any[] = [];\n\n  elementPropsMap.forEach((props: Set<string>, element: any) => {\n    const /** @type {?} */ styles: ɵStyleData = {};\n    props.forEach(prop => {\n      const /** @type {?} */ value = styles[prop] = driver.computeStyle(element, prop, defaultStyle);\n\n      // there is no easy way to detect this because a sub element could be removed\n      // by a parent animation element being detached.\n      if (!value || value.length == 0) {\n
         element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n        failedElements.push(element);\n      }\n    });\n    valuesMap.set(element, styles);\n  });\n\n  // we use a index variable here since Set.forEach(a, i) does not return\n  // an index value for the closure (but instead just the value)\n  let /** @type {?} */ i = 0;\n  elements.forEach(element => cloakElement(element, cloakVals[i++]));\n  return [valuesMap, failedElements];\n}\n/**\n * @param {?} nodes\n * @return {?}\n */\nfunction createIsRootFilterFn(nodes: any): (node: any) => boolean {\n  const /** @type {?} */ nodeSet = new Set(nodes);\n  const /** @type {?} */ knownRootContainer = new Set();\n  let /** @type {?} */ isRoot: (node: any) => boolean;\n  isRoot = node => {\n    if (!node) return true;\n    if (nodeSet.has(node.parentNode)) return false;\n    if (knownRootContainer.has(node.parentNode)) return true;\n    if (isRoot(node.parentNode)) {\n      knownRootContainer.add(node);\n      return true;\n    }\
 n    return false;\n  };\n  return isRoot;\n}\n\nconst /** @type {?} */ CLASSES_CACHE_KEY = '$$classes';\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction containsClass(element: any, className: string): boolean {\n  if (element.classList) {\n    return element.classList.contains(className);\n  } else {\n    const /** @type {?} */ classes = element[CLASSES_CACHE_KEY];\n    return classes && classes[className];\n  }\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction addClass(element: any, className: string) {\n  if (element.classList) {\n    element.classList.add(className);\n  } else {\n    let /** @type {?} */ classes: {[className: string]: boolean} = element[CLASSES_CACHE_KEY];\n    if (!classes) {\n      classes = element[CLASSES_CACHE_KEY] = {};\n    }\n    classes[className] = true;\n  }\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction removeClass(element: any, className: 
 string) {\n  if (element.classList) {\n    element.classList.remove(className);\n  } else {\n    let /** @type {?} */ classes: {[className: string]: boolean} = element[CLASSES_CACHE_KEY];\n    if (classes) {\n      delete classes[className];\n    }\n  }\n}\n/**\n * @return {?}\n */\nfunction getBodyNode(): any|null {\n  if (typeof document != 'undefined') {\n    return document.body;\n  }\n  return null;\n}\n/**\n * @param {?} engine\n * @param {?} element\n * @param {?} players\n * @return {?}\n */\nfunction removeNodesAfterAnimationDone(\n    engine: TransitionAnimationEngine, element: any, players: AnimationPlayer[]) {\n  optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\n/**\n * @param {?} players\n * @return {?}\n */\nfunction flattenGroupPlayers(players: AnimationPlayer[]): AnimationPlayer[] {\n  const /** @type {?} */ finalPlayers: AnimationPlayer[] = [];\n  _flattenGroupPlayersRecur(players, finalPlayers);\n  return finalPlayers;\n}\n/**\n * @pa
 ram {?} players\n * @param {?} finalPlayers\n * @return {?}\n */\nfunction _flattenGroupPlayersRecur(players: AnimationPlayer[], finalPlayers: AnimationPlayer[]) {\n  for (let /** @type {?} */ i = 0; i < players.length; i++) {\n    const /** @type {?} */ player = players[i];\n    if (player instanceof AnimationGroupPlayer) {\n      _flattenGroupPlayersRecur(player.players, finalPlayers);\n    } else {\n      finalPlayers.push( /** @type {?} */((player as AnimationPlayer)));\n    }\n  }\n}\n/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction objEquals(a: {[key: string]: any}, b: {[key: string]: any}): boolean {\n  const /** @type {?} */ k1 = Object.keys(a);\n  const /** @type {?} */ k2 = Object.keys(b);\n  if (k1.length != k2.length) return false;\n  for (let /** @type {?} */ i = 0; i < k1.length; i++) {\n    const /** @type {?} */ prop = k1[i];\n    if (!b.hasOwnProperty(prop) || a[prop] !== b[prop]) return false;\n  }\n  return true;\n}\n/**\n * @param {?} element\
 n * @param {?} allPreStyleElements\n * @param {?} allPostStyleElements\n * @return {?}\n */\nfunction replacePostStylesAsPre(\n    element: any, allPreStyleElements: Map<any, Set<string>>,\n    allPostStyleElements: Map<any, Set<string>>): boolean {\n  const /** @type {?} */ postEntry = allPostStyleElements.get(element);\n  if (!postEntry) return false;\n\n  let /** @type {?} */ preEntry = allPreStyleElements.get(element);\n  if (preEntry) {\n    postEntry.forEach(data => /** @type {?} */(( preEntry)).add(data));\n  } else {\n    allPreStyleElements.set(element, postEntry);\n  }\n\n  allPostStyleElements.delete(element);\n  return true;\n}\n","/**\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\nimport {AUTO_STYLE, AnimationMetadata, AnimationMetadataType, AnimationOptions, AnimationPlayer, ɵStyleData} from '@angular/animatio
 ns';\n\nimport {Ast} from '../dsl/animation_ast';\nimport {buildAnimationAst} from '../dsl/animation_ast_builder';\nimport {buildAnimationTimelines} from '../dsl/animation_timeline_builder';\nimport {AnimationTimelineInstruction} from '../dsl/animation_timeline_instruction';\nimport {ElementInstructionMap} from '../dsl/element_instruction_map';\nimport {AnimationStyleNormalizer} from '../dsl/style_normalization/animation_style_normalizer';\n\nimport {AnimationDriver} from './animation_driver';\nimport {getOrSetAsInMap, listenOnPlayer, makeAnimationEvent, normalizeKeyframes, optimizeGroupPlayer} from './shared';\n\nconst /** @type {?} */ EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nexport class TimelineAnimationEngine {\nprivate _animations: {[id: string]: Ast<AnimationMetadataType>} = {};\nprivate _playersById: {[id: string]: AnimationPlayer} = {};\npublic players: AnimationPlayer[] = [];\n/**\n * @param {?} _driver\n * @param {?} _normalizer\n */\nconstructor(private _driv
 er: AnimationDriver,\nprivate _normalizer: AnimationStyleNormalizer) {}\n/**\n * @param {?} id\n * @param {?} metadata\n * @return {?}\n */\nregister(id: string, metadata: AnimationMetadata|AnimationMetadata[]) {\n    const /** @type {?} */ errors: any[] = 

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-overlay.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-overlay.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-overlay.umd.js.map
new file mode 100644
index 0000000..7dde462
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-overlay.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-overlay.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","cdk/overlay.es5.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global
  Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n        s = arguments[i];\r\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n    }\r\n    return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n      
   for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n            t[p[i]] = s[p[i]];\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === 
 \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return t
 his; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [0, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[
 0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typ
 eof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    
 return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p)
  ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator];\r\n    return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}","/**\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 { ApplicationRef, ComponentFactoryResolver, Directive, ElementRef, EventEmitter, Inject, Injectable, InjectionToken, Injector, Input, NgModule, NgZone, Optional, Output, Renderer2, SkipSelf, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { DomPortalHost, PortalModule, TemplatePortal } from '@angular/cdk/portal';\nimport { Subject } from 'rxjs/Subject';\nimport { ScrollDispatchModule, ScrollDisp
 atcher, Scrollable, VIEWPORT_RULER_PROVIDER, ViewportRuler } from '@angular/cdk/scrolling';\nimport { Subscription } from 'rxjs/Subscription';\nimport { __extends } from 'tslib';\nimport * as tslib_1 from 'tslib';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE } from '@angular/cdk/keycodes';\n\n/**\n * Scroll strategy that doesn't do anything.\n */\nvar NoopScrollStrategy = (function () {\n    function NoopScrollStrategy() {\n    }\n    /**\n     * @return {?}\n     */\n    NoopScrollStrategy.prototype.enable = function () { };\n    /**\n     * @return {?}\n     */\n    NoopScrollStrategy.prototype.disable = function () { };\n    /**\n     * @return {?}\n     */\n    NoopScrollStrategy.prototype.attach = function () { };\n    return NoopScrollStrategy;\n}());\n\n/**\n * OverlayConfig captures the initial configuration used when opening an overlay.\n */\nvar OverlayConfig = (function () {\n    /**\
 n     * @param {?=} config\n     */\n    function OverlayConfig(config) {\n        var _this = this;\n        /**\n         * Strategy to be used when handling scroll events while the overlay is open.\n         */\n        this.scrollStrategy = new NoopScrollStrategy();\n        /**\n         * Custom class to add to the overlay pane.\n         */\n        this.panelClass = '';\n        /**\n         * Whether the overlay has a backdrop.\n         */\n        this.hasBackdrop = false;\n        /**\n         * Custom class to add to the backdrop\n         */\n        this.backdropClass = 'cdk-overlay-dark-backdrop';\n        /**\n         * The direction of the text in the overlay panel.\n         */\n        this.direction = 'ltr';\n        if (config) {\n            Object.keys(config).forEach(function (key) { return _this[key] = config[key]; });\n        }\n    }\n    return OverlayConfig;\n}());\n\n/**\n * Reference to an overlay that has been created with the Overlay service.\n 
 * Used to manipulate or dispose of said overlay.\n */\nvar OverlayRef = (function () {\n    /**\n     * @param {?} _portalHost\n     * @param {?} _pane\n     * @param {?} _config\n     * @param {?} _ngZone\n     */\n    function OverlayRef(_portalHost, _pane, _config, _ngZone) {\n        this._portalHost = _portalHost;\n        this._pane = _pane;\n        this._config = _config;\n        this._ngZone = _ngZone;\n        this._backdropElement = null;\n        this._backdropClick = new Subject();\n        this._attachments = new Subject();\n        this._detachments = new Subject();\n        if (_config.scrollStrategy) {\n            _config.scrollStrategy.attach(this);\n        }\n    }\n    Object.defineProperty(OverlayRef.prototype, \"overlayElement\", {\n        /**\n         * The overlay's HTML element\n         * @return {?}\n         */\n        get: function () {\n            return this._pane;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    
 /**\n     * Attaches the overlay to a portal instance and adds the backdrop.\n     * @param {?} portal Portal instance to which to attach the overlay.\n     * @return {?} The portal attachment result.\n     */\n    OverlayRef.prototype.attach = function (portal) {\n        var _this = this;\n        var /** @type {?} */ attachResult = this._portalHost.attach(portal);\n        if (this._config.positionStrategy) {\n            this._config.positionStrategy.attach(this);\n        }\n        // Update the pane element with the given configuration.\n        this._updateStackingOrder();\n        this.updateSize();\n        this.updateDirection();\n        this.updatePosition();\n        if (this._config.scrollStrategy) {\n            this._config.scrollStrategy.enable();\n        }\n        // Enable pointer events for the overlay pane element.\n        this._togglePointerEvents(true);\n        if (this._config.hasBackdrop) {\n            this._attachBackdrop();\n        }\n        if (th
 is._config.panelClass) {\n            // We can't do a spread here, because IE doesn't support setting multiple classes.\n            if (Array.isArray(this._config.panelClass)) {\n                this._config.panelClass.forEach(function (cls) { return _this._pane.classList.add(cls); });\n            }\n            else {\n                this._pane.classList.add(this._config.panelClass);\n            }\n        }\n        // Only emit the `attachments` event once all other setup is done.\n        this._attachments.next();\n        return attachResult;\n    };\n    /**\n     * Detaches an overlay from a portal.\n     * @return {?} The portal detachment result.\n     */\n    OverlayRef.prototype.detach = function () {\n        this.detachBackdrop();\n        // When the overlay is detached, the pane element should disable pointer events.\n        // This is necessary because otherwise the pane element will cover the page and disable\n        // pointer events therefore. Depends on th
 e position strategy and the applied pane boundaries.\n        this._togglePointerEvents(false);\n        if (this._config.positionStrategy && this._config.positionStrategy.detach) {\n            this._config.positionStrategy.detach();\n        }\n        if (this._config.scrollStrategy) {\n            this._config.scrollStrategy.disable();\n        }\n        var /** @type {?} */ detachmentResult = this._portalHost.detach();\n        // Only emit after everything is detached.\n        this._detachments.next();\n        return detachmentResult;\n    };\n    /**\n     * Cleans up the overlay from the DOM.\n     * @return {?}\n     */\n    OverlayRef.prototype.dispose = function () {\n        if (this._config.positionStrategy) {\n            this._config.positionStrategy.dispose();\n        }\n        if (this._config.scrollStrategy) {\n            this._config.scrollStrategy.disable();\n        }\n        this.detachBackdrop();\n        this._portalHost.dispose();\n        this._attac
 hments.complete();\n        this._backdropClick.complete();\n        this._detachments.next();\n        this._detachments.complete();\n    };\n    /**\n     * Checks whether the overlay has been attached.\n     * @return {?}\n     */\n    OverlayRef.prototype.hasAttached = function () {\n        return this._portalHost.hasAttached();\n    };\n    /**\n     * Returns an observable that emits when the backdrop has been clicked.\n     * @return {?}\n     */\n    OverlayRef.prototype.backdropClick = function () {\n        return this._backdropClick.asObservable();\n    };\n    /**\n     * Returns an observable that emits when the overlay has been attached.\n     * @return {?}\n     */\n    OverlayRef.prototype.attachments = function () {\n        return this._attachments.asObservable();\n    };\n    /**\n     * Returns an observable that emits when the overlay has been detached.\n     * @return {?}\n     */\n    OverlayRef.prototype.detachments = function () {\n        return this._deta
 chments.asObservable();\n    };\n    /**\n     * Gets the current config of the overlay.\n     * @return {?}\n     */\n    OverlayRef.prototype.getConfig = function () {\n        return this._config;\n    };\n    /**\n     * Updates the position of the overlay based on the position strategy.\n     * @return {?}\n     */\n    OverlayRef.prototype.updatePosition = function () {\n        if (this._config.positionStrategy) {\n            this._config.positionStrategy.apply();\n        }\n    };\n    /**\n     * Updates the text direction of the overlay panel.\n     * @return {?}\n     */\n    OverlayRef.prototype.updateDirection = function () {\n        this._pane.setAttribute('dir', /** @type {?} */ ((this._config.direction)));\n    };\n    /**\n     * Updates the size of the overlay based on the overlay config.\n     * @return {?}\n     */\n    OverlayRef.prototype.updateSize = function () {\n        if (this._config.width || this._config.width === 0) {\n            this._pane.style.w
 idth = formatCssUnit(this._config.width);\n        }\n        if (this._config.height || this._config.height === 0) {\n            this._pane.style.height = formatCssUnit(this._config.height);\n        }\n        if (this._config.minWidth || this._config.minWidth === 0) {\n            this._pane.style.minWidth = formatCssUnit(this._config.minWidth);\n        }\n        if (this._config.minHeight || this._config.minHeight === 0) {\n            this._pane.style.minHeight = formatCssUnit(this._config.minHeight);\n        }\n        if (this._config.maxWidth || this._config.maxWidth === 0) {\n            this._pane.style.maxWidth = formatCssUnit(this._config.maxWidth);\n        }\n        if (this._config.maxHeight || this._config.maxHeight === 0) {\n            this._pane.style.maxHeight = formatCssUnit(this._config.maxHeight);\n        }\n    };\n    /**\n     * Toggles the pointer events for the overlay pane element.\n     * @param {?} enablePointer\n     * @return {?}\n     */\n    
 OverlayRef.prototype._togglePointerEvents = function (enablePointer) {\n        this._pane.style.pointerEvents = enablePointer ? 'auto' : 'none';\n    };\n    /**\n     * Attaches a backdrop for this overlay.\n     * @return {?}\n     */\n    OverlayRef.prototype._attachBackdrop = function () {\n        var _this = this;\n        this._backdropElement = document.createElement('div');\n        this._backdropElement.classList.add('cdk-overlay-backdrop');\n        if (this._config.backdropClass) {\n            this._backdropElement.classList.add(this._config.backdropClass);\n        } /** @type {?} */\n        ((\n        // Insert the backdrop before the pane in the DOM order,\n        // in order to handle stacked overlays properly.\n        this._pane.parentElement)).insertBefore(this._backdropElement, this._pane);\n        // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n        // action desired when such a click occurs (usually closing the ov
 erlay).\n        this._backdropElement.addEventListener('click', function () { return _this._backdropClick.next(null); });\n        // Add class to fade-in the backdrop after one frame.\n        requestAnimationFrame(function () {\n            if (_this._backdropElement) {\n                _this._backdropElement.classList.add('cdk-overlay-backdrop-showing');\n            }\n        });\n    };\n    /**\n     * Updates the stacking order of the element, moving it to the top if necessary.\n     * This is required in cases where one overlay was detached, while another one,\n     * that should be behind it, was destroyed. The next time both of them are opened,\n     * the stacking will be wrong, because the detached element's pane will still be\n     * in its original DOM position.\n     * @return {?}\n     */\n    OverlayRef.prototype._updateStackingOrder = function () {\n        if (this._pane.nextSibling) {\n            ((this._pane.parentNode)).appendChild(this._pane);\n        }\n 
    };\n    /**\n     * Detaches the backdrop (if any) associated with the overlay.\n     * @return {?}\n     */\n    OverlayRef.prototype.detachBackdrop = function () {\n        var _this = this;\n        var /** @type {?} */ backdropToDetach = this._backdropElement;\n        if (backdropToDetach) {\n            var /** @type {?} */ finishDetach_1 = function () {\n                // It may not be attached to anything in certain cases (e.g. unit tests).\n                if (backdropToDetach && backdropToDetach.parentNode) {\n                    backdropToDetach.parentNode.removeChild(backdropToDetach);\n                }\n                // It is possible that a new portal has been attached to this overlay since we started\n                // removing the backdrop. If that is the case, only clear the backdrop reference if it\n                // is still the same instance that we started to remove.\n                if (_this._backdropElement == backdropToDetach) {\n                   
  _this._backdropElement = null;\n                }\n            };\n            backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n            if (this._config.backdropClass) {\n                backdropToDetach.classList.remove(this._config.backdropClass);\n            }\n            backdropToDetach.addEventListener('transitionend', finishDetach_1);\n            // If the backdrop doesn't have a transition, the `transitionend` event won't fire.\n            // In this case we make it unclickable and we try to remove it after a delay.\n            backdropToDetach.style.pointerEvents = 'none';\n            // Run this outside the Angular zone because there's nothing that Angular cares about.\n            // If it were to run inside the Angular zone, every test that used Overlay would have to be\n            // either async or fakeAsync.\n            this._ngZone.runOutsideAngular(function () {\n                setTimeout(finishDetach_1, 500);\n            });\n     
    }\n    };\n    return OverlayRef;\n}());\n/**\n * @param {?} value\n * @return {?}\n */\nfunction formatCssUnit(value) {\n    return typeof value === 'string' ? (value) : value + \"px\";\n}\n\n/** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */\n/**\n * The points of the origin element and the overlay element to connect.\n */\nvar ConnectionPositionPair = (function () {\n    /**\n     * @param {?} origin\n     * @param {?} overlay\n     */\n    function ConnectionPositionPair(origin, overlay) {\n        this.originX = origin.originX;\n        this.originY = origin.originY;\n        this.overlayX = overlay.overlayX;\n        this.overlayY = overlay.overlayY;\n    }\n    return ConnectionPositionPair;\n}());\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding
  client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n *       -----------                    -----------\n *       | outside |                    | clipped |\n *       |  view   |              --------------------------\n *       |         |              |     |         |        |\n *       ----------               |     -----------        |\n *  --------------------------    |                        |\n *  |                        |    |      Scrollable        |\n *  |                        |    |                        |\n *  |                        |     --------------------------\n *  |      Scrollable        |\n *  |                        |\n *  --------------------------\n */\nvar ScrollingVisibility = (function () {\n    function 
 ScrollingVisibility() {\n    }\n    return ScrollingVisibility;\n}());\n/**\n * The change event emitted by the strategy when a fallback position is used.\n */\nvar ConnectedOverlayPositionChange = (function () {\n    /**\n     * @param {?} connectionPair\n     * @param {?} scrollableViewProperties\n     */\n    function ConnectedOverlayPositionChange(connectionPair, scrollableViewProperties) {\n        this.connectionPair = connectionPair;\n        this.scrollableViewProperties = scrollableViewProperties;\n    }\n    /**\n     * @nocollapse\n     */\n    ConnectedOverlayPositionChange.ctorParameters = function () { return [\n        { type: ConnectionPositionPair, },\n        { type: ScrollingVisibility, decorators: [{ type: Optional },] },\n    ]; };\n    return ConnectedOverlayPositionChange;\n}());\n\n/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * \\@docs-private\n * @param {?} element Dimensions of the element (from ge
 tBoundingClientRect)\n * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @return {?} Whether the element is scrolled out of view\n */\nfunction isElementScrolledOutsideView(element, scrollContainers) {\n    return scrollContainers.some(function (containerBounds) {\n        var /** @type {?} */ outsideAbove = element.bottom < containerBounds.top;\n        var /** @type {?} */ outsideBelow = element.top > containerBounds.bottom;\n        var /** @type {?} */ outsideLeft = element.right < containerBounds.left;\n        var /** @type {?} */ outsideRight = element.left > containerBounds.right;\n        return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n    });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * \\@docs-private\n * @param {?} element Dimensions of the element (from getBoundingClientRect)\n * @param {?} scrollContainers Dimensions of element's scrolling containers
  (from getBoundingClientRect)\n * @return {?} Whether the element is clipped\n */\nfunction isElementClippedByScrolling(element, scrollContainers) {\n    return scrollContainers.some(function (scrollContainerRect) {\n        var /** @type {?} */ clippedAbove = element.top < scrollContainerRect.top;\n        var /** @type {?} */ clippedBelow = element.bottom > scrollContainerRect.bottom;\n        var /** @type {?} */ clippedLeft = element.left < scrollContainerRect.left;\n        var /** @type {?} */ clippedRight = element.right > scrollContainerRect.right;\n        return clippedAbove || clippedBelow || clippedLeft || clippedRight;\n    });\n}\n\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corne
 r of the origin to the top-left corner\n * of the overlay.\n */\nvar ConnectedPositionStrategy = (function () {\n    /**\n     * @param {?} originPos\n     * @param {?} overlayPos\n     * @param {?} _connectedTo\n     * @param {?} _viewportRuler\n     */\n    function ConnectedPositionStrategy(originPos, overlayPos, _connectedTo, _viewportRuler) {\n        this._connectedTo = _connectedTo;\n        this._viewportRuler = _viewportRuler;\n        /**\n         * Layout direction of the position strategy.\n         */\n        this._dir = 'ltr';\n        /**\n         * The offset in pixels for the overlay connection point on the x-axis\n         */\n        this._offsetX = 0;\n        /**\n         * The offset in pixels for the overlay connection point on the y-axis\n         */\n        this._offsetY = 0;\n        /**\n         * The Scrollable containers used to check scrollable view properties on position change.\n         */\n        this.scrollables = [];\n        /**\n         
 * Subscription to viewport resize events.\n         */\n        this._resizeSubscription = Subscription.EMPTY;\n        /**\n         * Ordered list of preferred positions, from most to least desirable.\n         */\n        this._preferredPositions = [];\n        this._onPositionChange = new Subject();\n        this._origin = this._connectedTo.nativeElement;\n        this.withFallbackPosition(originPos, overlayPos);\n    }\n    Object.defineProperty(ConnectedPositionStrategy.prototype, \"_isRtl\", {\n        /**\n         * Whether the we're dealing with an RTL context\n         * @return {?}\n         */\n        get: function () {\n            return this._dir === 'rtl';\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedPositionStrategy.prototype, \"onPositionChange\", {\n        /**\n         * Emits an event when the connection point changes.\n         * @return {?}\n         */\n        get: function () {\n         
    return this._onPositionChange.asObservable();\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedPositionStrategy.prototype, \"positions\", {\n        /**\n         * Ordered list of preferred positions, from most to least desirable.\n         * @return {?}\n         */\n        get: function () {\n            return this._preferredPositions;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.attach = function (overlayRef) {\n        var _this = this;\n        this._overlayRef = overlayRef;\n        this._pane = overlayRef.overlayElement;\n        this._resizeSubscription.unsubscribe();\n        this._resizeSubscription = this._viewportRuler.change().subscribe(function () { return _this.apply(); });\n    };\n    /**\n     * Performs any cleanup after the element is destroyed.\n     * @ret
 urn {?}\n     */\n    ConnectedPositionStrategy.prototype.dispose = function () {\n        this._resizeSubscription.unsubscribe();\n    };\n    /**\n     * \\@docs-private\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.detach = function () {\n        this._resizeSubscription.unsubscribe();\n    };\n    /**\n     * Updates the position of the overlay element, using whichever preferred position relative\n     * to the origin fits on-screen.\n     * \\@docs-private\n     *\n     * @return {?} Resolves when the styles have been applied.\n     */\n    ConnectedPositionStrategy.prototype.apply = function () {\n        // We need the bounding rects for the origin and the overlay to determine how to position\n        // the overlay relative to the origin.\n        var /** @type {?} */ element = this._pane;\n        var /** @type {?} */ originRect = this._origin.getBoundingClientRect();\n        var /** @type {?} */ overlayRect = element.getBoundingClientRect();\n     
    // We use the viewport rect to determine whether a position would go off-screen.\n        var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n        // Fallback point if none of the fallbacks fit into the viewport.\n        var /** @type {?} */ fallbackPoint;\n        var /** @type {?} */ fallbackPosition;\n        // We want to place the overlay in the first of the preferred positions such that the\n        // overlay fits on-screen.\n        for (var _i = 0, _a = this._preferredPositions; _i < _a.length; _i++) {\n            var pos = _a[_i];\n            // Get the (x, y) point of connection on the origin, and then use that to get the\n            // (top, left) coordinate for the overlay at `pos`.\n            var /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, pos);\n            var /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, pos);\n            // If the overlay in the calcul
 ated position fits on-screen, put it there and we're done.\n            if (overlayPoint.fitsInViewport) {\n                this._setElementPosition(element, overlayRect, overlayPoint, pos);\n                // Save the last connected position in case the position needs to be re-calculated.\n                this._lastConnectedPosition = pos;\n                return;\n            }\n            else if (!fallbackPoint || fallbackPoint.visibleArea < overlayPoint.visibleArea) {\n                fallbackPoint = overlayPoint;\n                fallbackPosition = pos;\n            }\n        }\n        // If none of the preferred positions were in the viewport, take the one\n        // with the largest visible area.\n        this._setElementPosition(element, overlayRect, /** @type {?} */ ((fallbackPoint)), /** @type {?} */ ((fallbackPosition)));\n    };\n    /**\n     * This re-aligns the overlay element with the trigger in its last calculated position,\n     * even if a position higher in
  the \"preferred positions\" list would now fit. This\n     * allows one to re-align the panel without changing the orientation of the panel.\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.recalculateLastPosition = function () {\n        var /** @type {?} */ originRect = this._origin.getBoundingClientRect();\n        var /** @type {?} */ overlayRect = this._pane.getBoundingClientRect();\n        var /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n        var /** @type {?} */ lastPosition = this._lastConnectedPosition || this._preferredPositions[0];\n        var /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, lastPosition);\n        var /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, lastPosition);\n        this._setElementPosition(this._pane, overlayRect, overlayPoint, lastPosition);\n    };\n    /**\n     * Sets the list of Scrollable containers that host the origi
 n element so that\n     * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n     * Scrollable must be an ancestor element of the strategy's origin element.\n     * @param {?} scrollables\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.withScrollableContainers = function (scrollables) {\n        this.scrollables = scrollables;\n    };\n    /**\n     * Adds a new preferred fallback position.\n     * @param {?} originPos\n     * @param {?} overlayPos\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.withFallbackPosition = function (originPos, overlayPos) {\n        this._preferredPositions.push(new ConnectionPositionPair(originPos, overlayPos));\n        return this;\n    };\n    /**\n     * Sets the layout direction so the overlay's position can be adjusted to match.\n     * @param {?} dir New layout direction.\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.withDirection = functi
 on (dir) {\n        this._dir = dir;\n        return this;\n    };\n    /**\n     * Sets an offset for the overlay's connection point on the x-axis\n     * @param {?} offset New offset in the X axis.\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.withOffsetX = function (offset) {\n        this._offsetX = offset;\n        return this;\n    };\n    /**\n     * Sets an offset for the overlay's connection point on the y-axis\n     * @param {?} offset New offset in the Y axis.\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype.withOffsetY = function (offset) {\n        this._offsetY = offset;\n        return this;\n    };\n    /**\n     * Gets the horizontal (x) \"start\" dimension based on whether the overlay is in an RTL context.\n     * @param {?} rect\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._getStartX = function (rect) {\n        return this._isRtl ? rect.right : rect.left;\n    };\n    /**\n     * Gets the horiz
 ontal (x) \"end\" dimension based on whether the overlay is in an RTL context.\n     * @param {?} rect\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._getEndX = function (rect) {\n        return this._isRtl ? rect.left : rect.right;\n    };\n    /**\n     * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n     * @param {?} originRect\n     * @param {?} pos\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._getOriginConnectionPoint = function (originRect, pos) {\n        var /** @type {?} */ originStartX = this._getStartX(originRect);\n        var /** @type {?} */ originEndX = this._getEndX(originRect);\n        var /** @type {?} */ x;\n        if (pos.originX == 'center') {\n            x = originStartX + (originRect.width / 2);\n        }\n        else {\n            x = pos.originX == 'start' ? originStartX : originEndX;\n        }\n        var /** @type {?} */ y;\n        if (pos.originY == 'c
 enter') {\n            y = originRect.top + (originRect.height / 2);\n        }\n        else {\n            y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n        }\n        return { x: x, y: y };\n    };\n    /**\n     * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n     * origin point to which the overlay should be connected, as well as how much of the element\n     * would be inside the viewport at that position.\n     * @param {?} originPoint\n     * @param {?} overlayRect\n     * @param {?} viewportRect\n     * @param {?} pos\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._getOverlayPoint = function (originPoint, overlayRect, viewportRect, pos) {\n        // Calculate the (overlayStartX, overlayStartY), the start of the potential overlay position\n        // relative to the origin point.\n        var /** @type {?} */ overlayStartX;\n        if (pos.overlayX == 'center') {\n            overla
 yStartX = -overlayRect.width / 2;\n        }\n        else if (pos.overlayX === 'start') {\n            overlayStartX = this._isRtl ? -overlayRect.width : 0;\n        }\n        else {\n            overlayStartX = this._isRtl ? 0 : -overlayRect.width;\n        }\n        var /** @type {?} */ overlayStartY;\n        if (pos.overlayY == 'center') {\n            overlayStartY = -overlayRect.height / 2;\n        }\n        else {\n            overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n        }\n        // The (x, y) coordinates of the overlay.\n        var /** @type {?} */ x = originPoint.x + overlayStartX + this._offsetX;\n        var /** @type {?} */ y = originPoint.y + overlayStartY + this._offsetY;\n        // How much the overlay would overflow at this position, on each side.\n        var /** @type {?} */ leftOverflow = 0 - x;\n        var /** @type {?} */ rightOverflow = (x + overlayRect.width) - viewportRect.width;\n        var /** @type {?} */ topOverflow
  = 0 - y;\n        var /** @type {?} */ bottomOverflow = (y + overlayRect.height) - viewportRect.height;\n        // Visible parts of the element on each axis.\n        var /** @type {?} */ visibleWidth = this._subtractOverflows(overlayRect.width, leftOverflow, rightOverflow);\n        var /** @type {?} */ visibleHeight = this._subtractOverflows(overlayRect.height, topOverflow, bottomOverflow);\n        // The area of the element that's within the viewport.\n        var /** @type {?} */ visibleArea = visibleWidth * visibleHeight;\n        var /** @type {?} */ fitsInViewport = (overlayRect.width * overlayRect.height) === visibleArea;\n        return { x: x, y: y, fitsInViewport: fitsInViewport, visibleArea: visibleArea };\n    };\n    /**\n     * Gets the view properties of the trigger and overlay, including whether they are clipped\n     * or completely outside the view of any of the strategy's scrollables.\n     * @param {?} overlay\n     * @return {?}\n     */\n    ConnectedPositi
 onStrategy.prototype._getScrollVisibility = function (overlay) {\n        var /** @type {?} */ originBounds = this._origin.getBoundingClientRect();\n        var /** @type {?} */ overlayBounds = overlay.getBoundingClientRect();\n        var /** @type {?} */ scrollContainerBounds = this.scrollables.map(function (s) { return s.getElementRef().nativeElement.getBoundingClientRect(); });\n        return {\n            isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n            isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n            isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n            isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),\n        };\n    };\n    /**\n     * Physically positions the overlay element to the given coordinate.\n     * @param {?} element\n     * @param {?} overlayRect\n     * @param {?} overlayPoint\n  
    * @param {?} pos\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._setElementPosition = function (element, overlayRect, overlayPoint, pos) {\n        // We want to set either `top` or `bottom` based on whether the overlay wants to appear above\n        // or below the origin and the direction in which the element will expand.\n        var /** @type {?} */ verticalStyleProperty = pos.overlayY === 'bottom' ? 'bottom' : 'top';\n        // When using `bottom`, we adjust the y position such that it is the distance\n        // from the bottom of the viewport rather than the top.\n        var /** @type {?} */ y = verticalStyleProperty === 'top' ?\n            overlayPoint.y :\n            document.documentElement.clientHeight - (overlayPoint.y + overlayRect.height);\n        // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n        // or \"after\" the origin, which determines the direction in which the element will e
 xpand.\n        // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n        // page is in RTL or LTR.\n        var /** @type {?} */ horizontalStyleProperty;\n        if (this._dir === 'rtl') {\n            horizontalStyleProperty = pos.overlayX === 'end' ? 'left' : 'right';\n        }\n        else {\n            horizontalStyleProperty = pos.overlayX === 'end' ? 'right' : 'left';\n        }\n        // When we're setting `right`, we adjust the x position such that it is the distance\n        // from the right edge of the viewport rather than the left edge.\n        var /** @type {?} */ x = horizontalStyleProperty === 'left' ?\n            overlayPoint.x :\n            document.documentElement.clientWidth - (overlayPoint.x + overlayRect.width);\n        // Reset any existing styles. This is necessary in case the preferred position has\n        // changed since the last `apply`.\n        ['top', 'bottom', 'left', 'right'].forEach(function 
 (p) { return element.style[p] = null; });\n        element.style[verticalStyleProperty] = y + \"px\";\n        element.style[horizontalStyleProperty] = x + \"px\";\n        // Notify that the position has been changed along with its change properties.\n        var /** @type {?} */ scrollableViewProperties = this._getScrollVisibility(element);\n        var /** @type {?} */ positionChange = new ConnectedOverlayPositionChange(pos, scrollableViewProperties);\n        this._onPositionChange.next(positionChange);\n    };\n    /**\n     * Subtracts the amount that an element is overflowing on an axis from it's length.\n     * @param {?} length\n     * @param {...?} overflows\n     * @return {?}\n     */\n    ConnectedPositionStrategy.prototype._subtractOverflows = function (length) {\n        var overflows = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            overflows[_i - 1] = arguments[_i];\n        }\n        return overflows.reduce(function (currentValue, current
 Overflow) {\n            return currentValue - Math.max(currentOverflow, 0);\n        }, length);\n    };\n    return ConnectedPositionStrategy;\n}());\n\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nvar GlobalPositionStrategy = (function () {\n    function GlobalPositionStrategy() {\n        this._cssPosition = 'static';\n        this._topOffset = '';\n        this._bottomOffset = '';\n        this._leftOffset = '';\n        this._rightOffset = '';\n        this._alignItems = '';\n        this._justifyContent = '';\n        this._width = '';\n        this._height = '';\n        this._wrapper = null;\n    }\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.attach = function (overlay
 Ref) {\n        this._overlayRef = overlayRef;\n    };\n    /**\n     * Sets the top position of the overlay. Clears any previously set vertical position.\n     * @param {?=} value New top offset.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.top = function (value) {\n        if (value === void 0) { value = ''; }\n        this._bottomOffset = '';\n        this._topOffset = value;\n        this._alignItems = 'flex-start';\n        return this;\n    };\n    /**\n     * Sets the left position of the overlay. Clears any previously set horizontal position.\n     * @param {?=} value New left offset.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.left = function (value) {\n        if (value === void 0) { value = ''; }\n        this._rightOffset = '';\n        this._leftOffset = value;\n        this._justifyContent = 'flex-start';\n        return this;\n    };\n    /**\n     * Sets the bottom position of the overlay. Clears any previously set vertica
 l position.\n     * @param {?=} value New bottom offset.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.bottom = function (value) {\n        if (value === void 0) { value = ''; }\n        this._topOffset = '';\n        this._bottomOffset = value;\n        this._alignItems = 'flex-end';\n        return this;\n    };\n    /**\n     * Sets the right position of the overlay. Clears any previously set horizontal position.\n     * @param {?=} value New right offset.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.right = function (value) {\n        if (value === void 0) { value = ''; }\n        this._leftOffset = '';\n        this._rightOffset = value;\n        this._justifyContent = 'flex-end';\n        return this;\n    };\n    /**\n     * Sets the overlay width and clears any previously set width.\n     * @param {?=} value New width for the overlay\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.width = function (value) {\n     
    if (value === void 0) { value = ''; }\n        this._width = value;\n        // When the width is 100%, we should reset the `left` and the offset,\n        // in order to ensure that the element is flush against the viewport edge.\n        if (value === '100%') {\n            this.left('0px');\n        }\n        return this;\n    };\n    /**\n     * Sets the overlay height and clears any previously set height.\n     * @param {?=} value New height for the overlay\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.height = function (value) {\n        if (value === void 0) { value = ''; }\n        this._height = value;\n        // When the height is 100%, we should reset the `top` and the offset,\n        // in order to ensure that the element is flush against the viewport edge.\n        if (value === '100%') {\n            this.top('0px');\n        }\n        return this;\n    };\n    /**\n     * Centers the overlay horizontally with an optional offset.\n     * Cle
 ars any previously set horizontal position.\n     *\n     * @param {?=} offset Overlay offset from the horizontal center.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.centerHorizontally = function (offset) {\n        if (offset === void 0) { offset = ''; }\n        this.left(offset);\n        this._justifyContent = 'center';\n        return this;\n    };\n    /**\n     * Centers the overlay vertically with an optional offset.\n     * Clears any previously set vertical position.\n     *\n     * @param {?=} offset Overlay offset from the vertical center.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.centerVertically = function (offset) {\n        if (offset === void 0) { offset = ''; }\n        this.top(offset);\n        this._alignItems = 'center';\n        return this;\n    };\n    /**\n     * Apply the position to the element.\n     * \\@docs-private\n     *\n     * @return {?} Resolved when the styles have been applied.\n     */\n    Glob
 alPositionStrategy.prototype.apply = function () {\n        var /** @type {?} */ element = this._overlayRef.overlayElement;\n        if (!this._wrapper && element.parentNode) {\n            this._wrapper = document.createElement('div');\n            this._wrapper.classList.add('cdk-global-overlay-wrapper');\n            element.parentNode.insertBefore(this._wrapper, element);\n            this._wrapper.appendChild(element);\n        }\n        var /** @type {?} */ styles = element.style;\n        var /** @type {?} */ parentStyles = ((element.parentNode)).style;\n        styles.position = this._cssPosition;\n        styles.marginTop = this._topOffset;\n        styles.marginLeft = this._leftOffset;\n        styles.marginBottom = this._bottomOffset;\n        styles.marginRight = this._rightOffset;\n        styles.width = this._width;\n        styles.height = this._height;\n        parentStyles.justifyContent = this._justifyContent;\n        parentStyles.alignItems = this._alignItems;\n
     };\n    /**\n     * Removes the wrapper element from the DOM.\n     * @return {?}\n     */\n    GlobalPositionStrategy.prototype.dispose = function () {\n        if (this._wrapper && this._wrapper.parentNode) {\n            this._wrapper.parentNode.removeChild(this._wrapper);\n            this._wrapper = null;\n        }\n    };\n    return GlobalPositionStrategy;\n}());\n\n/**\n * Builder for overlay position strategy.\n */\nvar OverlayPositionBuilder = (function () {\n    /**\n     * @param {?} _viewportRuler\n     */\n    function OverlayPositionBuilder(_viewportRuler) {\n        this._viewportRuler = _viewportRuler;\n    }\n    /**\n     * Creates a global position strategy.\n     * @return {?}\n     */\n    OverlayPositionBuilder.prototype.global = function () {\n        return new GlobalPositionStrategy();\n    };\n    /**\n     * Creates a relative position strategy.\n     * @param {?} elementRef\n     * @param {?} originPos\n     * @param {?} overlayPos\n     * @return {
 ?}\n     */\n    OverlayPositionBuilder.prototype.connectedTo = function (elementRef, originPos, overlayPos) {\n        return new ConnectedPositionStrategy(originPos, overlayPos, elementRef, this._viewportRuler);\n    };\n    OverlayPositionBuilder.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    OverlayPositionBuilder.ctorParameters = function () { return [\n        { type: ViewportRuler, },\n    ]; };\n    return OverlayPositionBuilder;\n}());\n\n/**\n * The OverlayContainer is the container in which all overlays will load.\n * It should be provided in the root component to ensure it is properly shared.\n */\nvar OverlayContainer = (function () {\n    function OverlayContainer() {\n    }\n    /**\n     * @return {?}\n     */\n    OverlayContainer.prototype.ngOnDestroy = function () {\n        if (this._containerElement && this._containerElement.parentNode) {\n            this._containerElement.parentNode.removeChild(this._containerE
 lement);\n        }\n    };\n    /**\n     * This method returns the overlay container element. It will lazily\n     * create the element the first time  it is called to facilitate using\n     * the container in non-browser environments.\n     * @return {?} the container element\n     */\n    OverlayContainer.prototype.getContainerElement = function () {\n        if (!this._containerElement) {\n            this._createContainer();\n        }\n        return this._containerElement;\n    };\n    /**\n     * Create the overlay container element, which is simply a div\n     * with the 'cdk-overlay-container' class on the document body.\n     * @return {?}\n     */\n    OverlayContainer.prototype._createContainer = function () {\n        var /** @type {?} */ container = document.createElement('div');\n        container.classList.add('cdk-overlay-container');\n        document.body.appendChild(container);\n        this._containerElement = container;\n    };\n    OverlayContainer.decorator
 s = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    OverlayContainer.ctorParameters = function () { return []; };\n    return OverlayContainer;\n}());\n/**\n * \\@docs-private\n * @param {?} parentContainer\n * @return {?}\n */\nfunction OVERLAY_CONTAINER_PROVIDER_FACTORY(parentContainer) {\n    return parentContainer || new OverlayContainer();\n}\n/**\n * \\@docs-private\n */\nvar OVERLAY_CONTAINER_PROVIDER = {\n    // If there is already an OverlayContainer available, use that. Otherwise, provide a new one.\n    provide: OverlayContainer,\n    deps: [[new Optional(), new SkipSelf(), OverlayContainer]],\n    useFactory: OVERLAY_CONTAINER_PROVIDER_FACTORY\n};\n\n/**\n * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.\n * @return {?}\n */\nfunction getMatScrollStrategyAlreadyAttachedError() {\n    return Error(\"Scroll strategy has already been attached.\");\n}\n\n/**\n * Strategy that will close the ove
 rlay as soon as the user starts scrolling.\n */\nvar CloseScrollStrategy = (function () {\n    /**\n     * @param {?} _scrollDispatcher\n     */\n    function CloseScrollStrategy(_scrollDispatcher) {\n        this._scrollDispatcher = _scrollDispatcher;\n        this._scrollSubscription = null;\n    }\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    CloseScrollStrategy.prototype.attach = function (overlayRef) {\n        if (this._overlayRef) {\n            throw getMatScrollStrategyAlreadyAttachedError();\n        }\n        this._overlayRef = overlayRef;\n    };\n    /**\n     * @return {?}\n     */\n    CloseScrollStrategy.prototype.enable = function () {\n        var _this = this;\n        if (!this._scrollSubscription) {\n            this._scrollSubscription = this._scrollDispatcher.scrolled(0, function () {\n                if (_this._overlayRef.hasAttached()) {\n                    _this._overlayRef.detach();\n                }\n                _this.dis
 able();\n            });\n        }\n    };\n    /**\n     * @return {?}\n     */\n    CloseScrollStrategy.prototype.disable = function () {\n        if (this._scrollSubscription) {\n            this._scrollSubscription.unsubscribe();\n            this._scrollSubscription = null;\n        }\n    };\n    return CloseScrollStrategy;\n}());\n\n/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nvar BlockScrollStrategy = (function () {\n    /**\n     * @param {?} _viewportRuler\n     */\n    function BlockScrollStrategy(_viewportRuler) {\n        this._viewportRuler = _viewportRuler;\n        this._previousHTMLStyles = { top: '', left: '' };\n        this._isEnabled = false;\n    }\n    /**\n     * @return {?}\n     */\n    BlockScrollStrategy.prototype.attach = function () { };\n    /**\n     * @return {?}\n     */\n    BlockScrollStrategy.prototype.enable = function () {\n        if (this._canBeEnabled()) {\n            var /** @type {?} */ r
 oot = document.documentElement;\n            this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n            // Cache the previous inline styles in case the user had set them.\n            this._previousHTMLStyles.left = root.style.left || '';\n            this._previousHTMLStyles.top = root.style.top || '';\n            // Note: we're using the `html` node, instead of the `body`, because the `body` may\n            // have the user agent margin, whereas the `html` is guaranteed not to have one.\n            root.style.left = -this._previousScrollPosition.left + \"px\";\n            root.style.top = -this._previousScrollPosition.top + \"px\";\n            root.classList.add('cdk-global-scrollblock');\n            this._isEnabled = true;\n        }\n    };\n    /**\n     * @return {?}\n     */\n    BlockScrollStrategy.prototype.disable = function () {\n        if (this._isEnabled) {\n            this._isEnabled = false;\n            document.documentEleme
 nt.style.left = this._previousHTMLStyles.left;\n            document.documentElement.style.top = this._previousHTMLStyles.top;\n            document.documentElement.classList.remove('cdk-global-scrollblock');\n            window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);\n        }\n    };\n    /**\n     * @return {?}\n     */\n    BlockScrollStrategy.prototype._canBeEnabled = function () {\n        // Since the scroll strategies can't be singletons, we have to use a global CSS class\n        // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n        // scrolling multiple times.\n        if (document.documentElement.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n            return false;\n        }\n        var /** @type {?} */ body = document.body;\n        var /** @type {?} */ viewport = this._viewportRuler.getViewportRect();\n        return body.scrollHeight > viewport.height || body.scrollWidth >
  viewport.width;\n    };\n    return BlockScrollStrategy;\n}());\n\n/**\n * Strategy that will update the element position as the user is scrolling.\n */\nvar RepositionScrollStrategy = (function () {\n    /**\n     * @param {?} _scrollDispatcher\n     * @param {?=} _config\n     */\n    function RepositionScrollStrategy(_scrollDispatcher, _config) {\n        this._scrollDispatcher = _scrollDispatcher;\n        this._config = _config;\n        this._scrollSubscription = null;\n    }\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    RepositionScrollStrategy.prototype.attach = function (overlayRef) {\n        if (this._overlayRef) {\n            throw getMatScrollStrategyAlreadyAttachedError();\n        }\n        this._overlayRef = overlayRef;\n    };\n    /**\n     * @return {?}\n     */\n    RepositionScrollStrategy.prototype.enable = function () {\n        var _this = this;\n        if (!this._scrollSubscription) {\n            var /** @type {?} */ throttle 
 = this._config ? this._config.scrollThrottle : 0;\n            this._scrollSubscription = this._scrollDispatcher.scrolled(throttle, function () {\n                _this._overlayRef.updatePosition();\n            });\n        }\n    };\n    /**\n     * @return {?}\n     */\n    RepositionScrollStrategy.prototype.disable = function () {\n        if (this._scrollSubscription) {\n            this._scrollSubscription.unsubscribe();\n            this._scrollSubscription = null;\n        }\n    };\n    return RepositionScrollStrategy;\n}());\n\n/**\n * Options for how an overlay will handle scrolling.\n *\n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nvar ScrollStrategyOptions = (function () {\n    /**\n     * @param {?} _scrollDispatcher\n     * @param {?} _viewportRuler\n     */\n    function ScrollStrategyOptions(_scrollDispatcher, _viewportRuler) {\n       
  var _this = this;\n        this._scrollDispatcher = _scrollDispatcher;\n        this._viewportRuler = _viewportRuler;\n        /**\n         * Do nothing on scroll.\n         */\n        this.noop = function () { return new NoopScrollStrategy(); };\n        /**\n         * Close the overlay as soon as the user scrolls.\n         */\n        this.close = function () { return new CloseScrollStrategy(_this._scrollDispatcher); };\n        /**\n         * Block scrolling.\n         */\n        this.block = function () { return new BlockScrollStrategy(_this._viewportRuler); };\n        /**\n         * Update the overlay's position on scroll.\n         * @param config Configuration to be used inside the scroll strategy.\n         * Allows debouncing the reposition calls.\n         */\n        this.reposition = function (config) {\n            return new RepositionScrollStrategy(_this._scrollDispatcher, config);\n        };\n    }\n    ScrollStrategyOptions.decorators = [\n        { type: 
 Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    ScrollStrategyOptions.ctorParameters = function () { return [\n        { type: ScrollDispatcher, },\n        { type: ViewportRuler, },\n    ]; };\n    return ScrollStrategyOptions;\n}());\n\n/**\n * Next overlay unique ID.\n */\nvar nextUniqueId = 0;\n/**\n * The default config for newly created overlays.\n */\nvar defaultConfig = new OverlayConfig();\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\nvar Overlay = (function () {\n    /**\n     * @param {?} scrollStrategies\n     * @param {?} _overlayContai
 ner\n     * @param {?} _componentFactoryResolver\n     * @param {?} _positionBuilder\n     * @param {?} _appRef\n     * @param {?} _injector\n     * @param {?} _ngZone\n     */\n    function Overlay(scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _appRef, _injector, _ngZone) {\n        this.scrollStrategies = scrollStrategies;\n        this._overlayContainer = _overlayContainer;\n        this._componentFactoryResolver = _componentFactoryResolver;\n        this._positionBuilder = _positionBuilder;\n        this._appRef = _appRef;\n        this._injector = _injector;\n        this._ngZone = _ngZone;\n    }\n    /**\n     * Creates an overlay.\n     * @param {?=} config Config to apply to the overlay.\n     * @return {?} Reference to the created overlay.\n     */\n    Overlay.prototype.create = function (config) {\n        if (config === void 0) { config = defaultConfig; }\n        var /** @type {?} */ pane = this._createPaneElement();\n        var /**
  @type {?} */ portalHost = this._createPortalHost(pane);\n        return new OverlayRef(portalHost, pane, config, this._ngZone);\n    };\n    /**\n     * Returns a position builder that can be used, via fluent API,\n     * to construct and configure a position strategy.\n     * @return {?}\n     */\n    Overlay.prototype.position = function () {\n        return this._positionBuilder;\n    };\n    /**\n     * Creates the DOM element for an overlay and appends it to the overlay container.\n     * @return {?} Newly-created pane element\n     */\n    Overlay.prototype._createPaneElement = function () {\n        var /** @type {?} */ pane = document.createElement('div');\n        pane.id = \"cdk-overlay-\" + nextUniqueId++;\n        pane.classList.add('cdk-overlay-pane');\n        this._overlayContainer.getContainerElement().appendChild(pane);\n        return pane;\n    };\n    /**\n     * Create a DomPortalHost into which the overlay content can be loaded.\n     * @param {?} pane The DOM
  element to turn into a portal host.\n     * @return {?} A portal host for the given DOM element.\n     */\n    Overlay.prototype._createPortalHost = function (pane) {\n        return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef, this._injector);\n    };\n    Overlay.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    Overlay.ctorParameters = function () { return [\n        { type: ScrollStrategyOptions, },\n        { type: OverlayContainer, },\n        { type: ComponentFactoryResolver, },\n        { type: OverlayPositionBuilder, },\n        { type: ApplicationRef, },\n        { type: Injector, },\n        { type: NgZone, },\n    ]; };\n    return Overlay;\n}());\n\n/**\n * The FullscreenOverlayContainer is the alternative to OverlayContainer\n * that supports correct displaying of overlay elements in Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n * It should be pro
 vided in the root component that way:\n * providers: [\n *   {provide: OverlayContainer, useClass: FullscreenOverlayContainer}\n * ],\n */\nvar FullscreenOverlayContainer = (function (_super) {\n    __extends(FullscreenOverlayContainer, _super);\n    function FullscreenOverlayContainer() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /**\n     * @return {?}\n     */\n    FullscreenOverlayContainer.prototype._createContainer = function () {\n        var _this = this;\n        _super.prototype._createContainer.call(this);\n        this._adjustParentForFullscreenChange();\n        this._addFullscreenChangeListener(function () { return _this._adjustParentForFullscreenChange(); });\n    };\n    /**\n     * @return {?}\n     */\n    FullscreenOverlayContainer.prototype._adjustParentForFullscreenChange = function () {\n        if (!this._containerElement) {\n            return;\n        }\n        var /** @type {?} */ fullscreenElement = this.getFul
 lscreenElement();\n        var /** @type {?} */ parent = fullscreenElement || document.body;\n        parent.appendChild(this._containerElement);\n    };\n    /**\n     * @param {?} fn\n     * @return {?}\n     */\n    FullscreenOverlayContainer.prototype._addFullscreenChangeListener = function (fn) {\n        if (document.fullscreenEnabled) {\n            document.addEventListener('fullscreenchange', fn);\n        }\n        else if (document.webkitFullscreenEnabled) {\n            document.addEventListener('webkitfullscreenchange', fn);\n        }\n        else if (((document)).mozFullScreenEnabled) {\n            document.addEventListener('mozfullscreenchange', fn);\n        }\n        else if (((document)).msFullscreenEnabled) {\n            document.addEventListener('MSFullscreenChange', fn);\n        }\n    };\n    /**\n     * When the page is put into fullscreen mode, a specific element is specified.\n     * Only that element and its children are visible when in fullscreen mo
 de.\n     * @return {?}\n     */\n    FullscreenOverlayContainer.prototype.getFullscreenElement = function () {\n        return document.fullscreenElement ||\n            document.webkitFullscreenElement ||\n            ((document)).mozFullScreenElement ||\n            ((document)).msFullscreenElement ||\n            null;\n    };\n    FullscreenOverlayContainer.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    FullscreenOverlayContainer.ctorParameters = function () { return []; };\n    return FullscreenOverlayContainer;\n}(OverlayContainer));\n\n/**\n * Default set of positions for the overlay. Follows the behavior of a dropdown.\n */\nvar defaultPositionList = [\n    new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }),\n    new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }),\n];\n/**\n * Injection token that determines the 
 scroll handling while the connected overlay is open.\n */\nvar MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY = new InjectionToken('mat-connected-overlay-scroll-strategy');\n/**\n * \\@docs-private\n * @param {?} overlay\n * @return {?}\n */\nfunction MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n    return function () { return overlay.scrollStrategies.reposition(); };\n}\n/**\n * \\@docs-private\n */\nvar MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n    provide: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n    deps: [Overlay],\n    useFactory: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nvar OverlayOrigin = (function () {\n    /**\n     * @param {?} elementRef\n     */\n    function OverlayOrigin(elementRef) {\n        this.elementRef = elementRef;\n    }\n    OverlayOrigin.decorators = [\n        { type: Directive, args: [
 {\n                    selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',\n                    exportAs: 'cdkOverlayOrigin',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    OverlayOrigin.ctorParameters = function () { return [\n        { type: ElementRef, },\n    ]; };\n    return OverlayOrigin;\n}());\n/**\n * Directive to facilitate declarative creation of an Overlay using a ConnectedPositionStrategy.\n */\nvar ConnectedOverlayDirective = (function () {\n    /**\n     * @param {?} _overlay\n     * @param {?} _renderer\n     * @param {?} templateRef\n     * @param {?} viewContainerRef\n     * @param {?} _scrollStrategy\n     * @param {?} _dir\n     */\n    function ConnectedOverlayDirective(_overlay, _renderer, templateRef, viewContainerRef, _scrollStrategy, _dir) {\n        this._overlay = _overlay;\n        this._renderer = _renderer;\n        this._scrollStrategy = _scrollStrategy;\n        this._dir = _dir;\n        this._hasBackd
 rop = false;\n        this._backdropSubscription = Subscription.EMPTY;\n        this._positionSubscription = Subscription.EMPTY;\n        this._offsetX = 0;\n        this._offsetY = 0;\n        this._escapeListener = function () { };\n        /**\n         * Strategy to be used when handling scroll events while the overlay is open.\n         */\n        this.scrollStrategy = this._scrollStrategy();\n        /**\n         * Whether the overlay is open.\n         */\n        this.open = false;\n        /**\n         * Event emitted when the backdrop is clicked.\n         */\n        this.backdropClick = new EventEmitter();\n        /**\n         * Event emitted when the position has changed.\n         */\n        this.positionChange = new EventEmitter();\n        /**\n         * Event emitted when the overlay has been attached.\n         */\n        this.attach = new EventEmitter();\n        /**\n         * Event emitted when the overlay has been detached.\n         */\n        this.d
 etach = new EventEmitter();\n        this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n    }\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"offsetX\", {\n        /**\n         * The offset in pixels for the overlay connection point on the x-axis\n         * @return {?}\n         */\n        get: function () { return this._offsetX; },\n        /**\n         * @param {?} offsetX\n         * @return {?}\n         */\n        set: function (offsetX) {\n            this._offsetX = offsetX;\n            if (this._position) {\n                this._position.withOffsetX(offsetX);\n            }\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"offsetY\", {\n        /**\n         * The offset in pixels for the overlay connection point on the y-axis\n         * @return {?}\n         */\n        get: function () { return this._offsetY; },\n        /**\n       
   * @param {?} offsetY\n         * @return {?}\n         */\n        set: function (offsetY) {\n            this._offsetY = offsetY;\n            if (this._position) {\n                this._position.withOffsetY(offsetY);\n            }\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"hasBackdrop\", {\n        /**\n         * Whether or not the overlay should attach a backdrop.\n         * @return {?}\n         */\n        get: function () { return this._hasBackdrop; },\n        /**\n         * @param {?} value\n         * @return {?}\n         */\n        set: function (value) { this._hasBackdrop = coerceBooleanProperty(value); },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOrigin\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return th
 is.origin; },\n        /**\n         * @param {?} _origin\n         * @return {?}\n         */\n        set: function (_origin) { this.origin = _origin; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedPositions\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.positions; },\n        /**\n         * @param {?} _positions\n         * @return {?}\n         */\n        set: function (_positions) { this.positions = _positions; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOffsetX\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.offsetX; },\n        /**\n         * @param {?} _offsetX\n         * @return {?}\n         */\n        set: function (_offsetX) { this.
 offsetX = _offsetX; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOffsetY\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.offsetY; },\n        /**\n         * @param {?} _offsetY\n         * @return {?}\n         */\n        set: function (_offsetY) { this.offsetY = _offsetY; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedWidth\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.width; },\n        /**\n         * @param {?} _width\n         * @return {?}\n         */\n        set: function (_width) { this.width = _width; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_dep
 recatedHeight\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.height; },\n        /**\n         * @param {?} _height\n         * @return {?}\n         */\n        set: function (_height) { this.height = _height; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedMinWidth\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.minWidth; },\n        /**\n         * @param {?} _minWidth\n         * @return {?}\n         */\n        set: function (_minWidth) { this.minWidth = _minWidth; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedMinHeight\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.minHeight
 ; },\n        /**\n         * @param {?} _minHeight\n         * @return {?}\n         */\n        set: function (_minHeight) { this.minHeight = _minHeight; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedBackdropClass\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.backdropClass; },\n        /**\n         * @param {?} _backdropClass\n         * @return {?}\n         */\n        set: function (_backdropClass) { this.backdropClass = _backdropClass; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedScrollStrategy\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.scrollStrategy; },\n        /**\n         * @param {?} _scrollStrategy\n         * @return {?}\n     
     */\n        set: function (_scrollStrategy) {\n            this.scrollStrategy = _scrollStrategy;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedOpen\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.open; },\n        /**\n         * @param {?} _open\n         * @return {?}\n         */\n        set: function (_open) { this.open = _open; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"_deprecatedHasBackdrop\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.hasBackdrop; },\n        /**\n         * @param {?} _hasBackdrop\n         * @return {?}\n         */\n        set: function (_hasBackdrop) { this.hasBackdrop = _hasBackdrop; },\n        enumerable: true
 ,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"overlayRef\", {\n        /**\n         * The associated overlay reference.\n         * @return {?}\n         */\n        get: function () {\n            return this._overlayRef;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ConnectedOverlayDirective.prototype, \"dir\", {\n        /**\n         * The element's layout direction.\n         * @return {?}\n         */\n        get: function () {\n            return this._dir ? this._dir.value : 'ltr';\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype.ngOnDestroy = function () {\n        this._destroyOverlay();\n    };\n    /**\n     * @param {?} changes\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype.ngOnChanges = function (changes) {\n        if (change
 s['open'] || changes['_deprecatedOpen']) {\n            this.open ? this._attachOverlay() : this._detachOverlay();\n        }\n    };\n    /**\n     * Creates an overlay\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype._createOverlay = function () {\n        if (!this.positions || !this.positions.length) {\n            this.positions = defaultPositionList;\n        }\n        this._overlayRef = this._overlay.create(this._buildConfig());\n    };\n    /**\n     * Builds the overlay config based on the directive's inputs\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype._buildConfig = function () {\n        var /** @type {?} */ positionStrategy = this._position = this._createPositionStrategy();\n        var /** @type {?} */ overlayConfig = new OverlayConfig({\n            positionStrategy: positionStrategy,\n            scrollStrategy: this.scrollStrategy,\n            hasBackdrop: this.hasBackdrop\n        });\n        if (this.width || this.wi
 dth === 0) {\n            overlayConfig.width = this.width;\n        }\n        if (this.height || this.height === 0) {\n            overlayConfig.height = this.height;\n        }\n        if (this.minWidth || this.minWidth === 0) {\n            overlayConfig.minWidth = this.minWidth;\n        }\n        if (this.minHeight || this.minHeight === 0) {\n            overlayConfig.minHeight = this.minHeight;\n        }\n        if (this.backdropClass) {\n            overlayConfig.backdropClass = this.backdropClass;\n        }\n        return overlayConfig;\n    };\n    /**\n     * Returns the position strategy of the overlay to be set on the overlay config\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype._createPositionStrategy = function () {\n        var /** @type {?} */ pos = this.positions[0];\n        var /** @type {?} */ originPoint = { originX: pos.originX, originY: pos.originY };\n        var /** @type {?} */ overlayPoint = { overlayX: pos.overlayX, overlayY:
  pos.overlayY };\n        var /** @type {?} */ strategy = this._overlay.position()\n            .connectedTo(this.origin.elementRef, originPoint, overlayPoint)\n            .withOffsetX(this.offsetX)\n            .withOffsetY(this.offsetY);\n        this._handlePositionChanges(strategy);\n        return strategy;\n    };\n    /**\n     * @param {?} strategy\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype._handlePositionChanges = function (strategy) {\n        var _this = this;\n        for (var /** @type {?} */ i = 1; i < this.positions.length; i++) {\n            strategy.withFallbackPosition({ originX: this.positions[i].originX, originY: this.positions[i].originY }, { overlayX: this.positions[i].overlayX, overlayY: this.positions[i].overlayY });\n        }\n        this._positionSubscription =\n            strategy.onPositionChange.subscribe(function (pos) { return _this.positionChange.emit(pos); });\n    };\n    /**\n     * Attaches the overlay and subscribe
 s to backdrop clicks if backdrop exists\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype._attachOverlay = function () {\n        var _this = this;\n        if (!this._overlayRef) {\n            this._createOverlay();\n        }\n        this._position.withDirection(this.dir);\n        this._overlayRef.getConfig().direction = this.dir;\n        this._initEscapeListener();\n        if (!this._overlayRef.hasAttached()) {\n            this._overlayRef.attach(this._templatePortal);\n            this.attach.emit();\n        }\n        if (this.hasBackdrop) {\n            this._backdropSubscription = this._overlayRef.backdropClick().subscribe(function () {\n                _this.backdropClick.emit();\n            });\n        }\n    };\n    /**\n     * Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype._detachOverlay = function () {\n        if (this._overlayRef) {\n         
    this._overlayRef.detach();\n            this.detach.emit();\n        }\n        this._backdropSubscription.unsubscribe();\n        this._escapeListener();\n    };\n    /**\n     * Destroys the overlay created by this directive.\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype._destroyOverlay = function () {\n        if (this._overlayRef) {\n            this._overlayRef.dispose();\n        }\n        this._backdropSubscription.unsubscribe();\n        this._positionSubscription.unsubscribe();\n        this._escapeListener();\n    };\n    /**\n     * Sets the event listener that closes the overlay when pressing Escape.\n     * @return {?}\n     */\n    ConnectedOverlayDirective.prototype._initEscapeListener = function () {\n        var _this = this;\n        this._escapeListener = this._renderer.listen('document', 'keydown', function (event) {\n            if (event.keyCode === ESCAPE) {\n                _this._detachOverlay();\n            }\n        });\n    }
 ;\n    ConnectedOverlayDirective.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',\n                    exportAs: 'cdkConnectedOverlay'\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    ConnectedOverlayDirective.ctorParameters = function () { return [\n        { type: Overlay, },\n        { type: Renderer2, },\n        { type: TemplateRef, },\n        { type: ViewContainerRef, },\n        { type: undefined, decorators: [{ type: Inject, args: [MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,] },] },\n        { type: Directionality, decorators: [{ type: Optional },] },\n    ]; };\n    ConnectedOverlayDirective.propDecorators = {\n        'origin': [{ type: Input, args: ['cdkConnectedOverlayOrigin',] },],\n        'positions': [{ type: Input, args: ['cdkConnectedOverlayPositions',] },],\n        'offsetX': [{ type: Input, args: ['cdkConnectedOverlayOffsetX',] },],\n   
      'offsetY': [{ type: Input, args: ['cdkConnectedOverlayOffsetY',] },],\n        'width': [{ type: Input, args: ['cdkConnectedOverlayWidth',] },],\n        'height': [{ type: Input, args: ['cdkConnectedOverlayHeight',] },],\n        'minWidth': [{ type: Input, args: ['cdkConnectedOverlayMinWidth',] },],\n        'minHeight': [{ type: Input, args: ['cdkConnectedOverlayMinHeight',] },],\n        'backdropClass': [{ type: Input, args: ['cdkConnectedOverlayBackdropClass',] },],\n        'scrollStrategy': [{ type: Input, args: ['cdkConnectedOverlayScrollStrategy',] },],\n        'open': [{ type: Input, args: ['cdkConnectedOverlayOpen',] },],\n        'hasBackdrop': [{ type: Input, args: ['cdkConnectedOverlayHasBackdrop',] },],\n        '_deprecatedOrigin': [{ type: Input, args: ['origin',] },],\n        '_deprecatedPositions': [{ type: Input, args: ['positions',] },],\n        '_deprecatedOffsetX': [{ type: Input, args: ['offsetX',] },],\n        '_deprecatedOffsetY': [{ type: Input, 
 args: ['offsetY',] },],\n        '_deprecatedWidth': [{ type: Input, args: ['width',] },],\n        '_deprecatedHeight': [{ type: Input, args: ['height',] },],\n        '_deprecatedMinWidth': [{ type: Input, args: ['minWidth',] },],\n        '_deprecatedMinHeight': [{ type: Input, args: ['minHeight',] },],\n        '_deprecatedBackdropClass': [{ type: Input, args: ['backdropClass',] },],\n        '_deprecatedScrollStrategy': [{ type: Input, args: ['scrollStrategy',] },],\n        '_deprecatedOpen': [{ type: Input, args: ['open',] },],\n        '_deprecatedHasBackdrop': [{ type: Input, args: ['hasBackdrop',] },],\n        'backdropClick': [{ type: Output },],\n        'positionChange': [{ type: Output },],\n        'attach': [{ type: Output },],\n        'detach': [{ type: Output },],\n    };\n    return ConnectedOverlayDirective;\n}());\n\nvar OVERLAY_PROVIDERS = [\n    Overlay,\n    OverlayPositionBuilder,\n    VIEWPORT_RULER_PROVIDER,\n    OVERLAY_CONTAINER_PROVIDER,\n    MAT_CONN
 ECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,\n];\nvar OverlayModule = (function () {\n    function OverlayModule() {\n    }\n    OverlayModule.decorators = [\n        { type: NgModule, args: [{\n                    imports: [PortalModule, ScrollDispatchModule],\n                    exports: [ConnectedOverlayDirective, OverlayOrigin, ScrollDispatchModule],\n                    declarations: [ConnectedOverlayDirective, OverlayOrigin],\n                    providers: [OVERLAY_PROVIDERS, ScrollStrategyOptions],\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    OverlayModule.ctorParameters = function () { return []; };\n    return OverlayModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Overlay, OverlayContainer, FullscreenOverlayContainer, OverlayRef, ConnectedOverlayDirective, OverlayOrigin, ViewportRuler, GlobalPositionStrategy, ConnectedPositionStrategy, VIEWPORT_RULER_PROVIDER, OverlayConfig, ConnectionPositionPair, ScrollingVisibili
 ty, ConnectedOverlayPositionChange, Scrollable, ScrollDispatcher, ScrollStrategyOptions, RepositionScrollStrategy, CloseScrollStrategy, NoopScrollStrategy, BlockScrollStrategy, OVERLAY_PROVIDERS, OverlayModule, OVERLAY_CONTAINER_PROVIDER as ɵb, OVERLAY_CONTAINER_PROVIDER_FACTORY as ɵa, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY as ɵc, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER as ɵe, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY as ɵd, OverlayPositionBuilder as ɵf };\n//# sourceMappingURL=overlay.es5.js.map\n"],"names":["Subject","Optional","Subscription","Injectable","ViewportRuler","SkipSelf","ScrollDispatcher","DomPortalHost","ComponentFactoryResolver","ApplicationRef","Injector","NgZone","InjectionToken","Directive","ElementRef","EventEmitter","TemplatePortal","coerceBooleanProperty","ESCAPE","Renderer2","TemplateRef","ViewContainerRef","Inject","Directionality","Input","Output","VIEWPORT_RULER_PROVIDER","NgModule","PortalModule","ScrollDispatchModule"],"mappings":
 ";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;AAgBA,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;KACpC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IAC5E,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/overlay.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/overlay.js.map b/node_modules/@angular/cdk/esm2015/overlay.js.map
new file mode 100644
index 0000000..895a969
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/overlay.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"overlay.js","sources":["../../packages/cdk/overlay/scroll/noop-scroll-strategy.js","../../packages/cdk/overlay/overlay-config.js","../../packages/cdk/overlay/overlay-ref.js","../../packages/cdk/overlay/position/connected-position.js","../../packages/cdk/overlay/position/scroll-clip.js","../../packages/cdk/overlay/position/connected-position-strategy.js","../../packages/cdk/overlay/position/global-position-strategy.js","../../packages/cdk/overlay/position/overlay-position-builder.js","../../packages/cdk/overlay/overlay-container.js","../../packages/cdk/overlay/scroll/scroll-strategy.js","../../packages/cdk/overlay/scroll/close-scroll-strategy.js","../../packages/cdk/overlay/scroll/block-scroll-strategy.js","../../packages/cdk/overlay/scroll/reposition-scroll-strategy.js","../../packages/cdk/overlay/scroll/scroll-strategy-options.js","../../packages/cdk/overlay/overlay.js","../../packages/cdk/overlay/fullscreen-overlay-container.js","../../packages/cdk/overlay/ove
 rlay-directives.js","../../packages/cdk/overlay/overlay-module.js","../../packages/cdk/overlay/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 * Scroll strategy that doesn't do anything.\n */\nexport class NoopScrollStrategy {\n    /**\n     * @return {?}\n     */\n    enable() { }\n    /**\n     * @return {?}\n     */\n    disable() { }\n    /**\n     * @return {?}\n     */\n    attach() { }\n}\n//# sourceMappingURL=noop-scroll-strategy.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 { NoopScrollStrategy } from './scroll/noop-scroll-strategy';\n/**\n * OverlayConfig captures the initial configuration used when op
 ening an overlay.\n */\nexport class OverlayConfig {\n    /**\n     * @param {?=} config\n     */\n    constructor(config) {\n        /**\n         * Strategy to be used when handling scroll events while the overlay is open.\n         */\n        this.scrollStrategy = new NoopScrollStrategy();\n        /**\n         * Custom class to add to the overlay pane.\n         */\n        this.panelClass = '';\n        /**\n         * Whether the overlay has a backdrop.\n         */\n        this.hasBackdrop = false;\n        /**\n         * Custom class to add to the backdrop\n         */\n        this.backdropClass = 'cdk-overlay-dark-backdrop';\n        /**\n         * The direction of the text in the overlay panel.\n         */\n        this.direction = 'ltr';\n        if (config) {\n            Object.keys(config).forEach(key => this[key] = config[key]);\n        }\n    }\n}\nfunction OverlayConfig_tsickle_Closure_declarations() {\n    /**\n     * Strategy with which to position the ove
 rlay.\n     * @type {?}\n     */\n    OverlayConfig.prototype.positionStrategy;\n    /**\n     * Strategy to be used when handling scroll events while the overlay is open.\n     * @type {?}\n     */\n    OverlayConfig.prototype.scrollStrategy;\n    /**\n     * Custom class to add to the overlay pane.\n     * @type {?}\n     */\n    OverlayConfig.prototype.panelClass;\n    /**\n     * Whether the overlay has a backdrop.\n     * @type {?}\n     */\n    OverlayConfig.prototype.hasBackdrop;\n    /**\n     * Custom class to add to the backdrop\n     * @type {?}\n     */\n    OverlayConfig.prototype.backdropClass;\n    /**\n     * The width of the overlay panel. If a number is provided, pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.width;\n    /**\n     * The height of the overlay panel. If a number is provided, pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.height;\n    /**\n     * The min-width of the overlay panel. If
  a number is provided, pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.minWidth;\n    /**\n     * The min-height of the overlay panel. If a number is provided, pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.minHeight;\n    /**\n     * The max-width of the overlay panel. If a number is provided, pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.maxWidth;\n    /**\n     * The max-height of the overlay panel. If a number is provided, pixel units are assumed.\n     * @type {?}\n     */\n    OverlayConfig.prototype.maxHeight;\n    /**\n     * The direction of the text in the overlay panel.\n     * @type {?}\n     */\n    OverlayConfig.prototype.direction;\n}\n//# sourceMappingURL=overlay-config.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://angula
 r.io/license\n */\nimport { Subject } from 'rxjs/Subject';\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nexport class OverlayRef {\n    /**\n     * @param {?} _portalHost\n     * @param {?} _pane\n     * @param {?} _config\n     * @param {?} _ngZone\n     */\n    constructor(_portalHost, _pane, _config, _ngZone) {\n        this._portalHost = _portalHost;\n        this._pane = _pane;\n        this._config = _config;\n        this._ngZone = _ngZone;\n        this._backdropElement = null;\n        this._backdropClick = new Subject();\n        this._attachments = new Subject();\n        this._detachments = new Subject();\n        if (_config.scrollStrategy) {\n            _config.scrollStrategy.attach(this);\n        }\n    }\n    /**\n     * The overlay's HTML element\n     * @return {?}\n     */\n    get overlayElement() {\n        return this._pane;\n    }\n    /**\n     * Attaches the overlay
  to a portal instance and adds the backdrop.\n     * @param {?} portal Portal instance to which to attach the overlay.\n     * @return {?} The portal attachment result.\n     */\n    attach(portal) {\n        let /** @type {?} */ attachResult = this._portalHost.attach(portal);\n        if (this._config.positionStrategy) {\n            this._config.positionStrategy.attach(this);\n        }\n        // Update the pane element with the given configuration.\n        this._updateStackingOrder();\n        this.updateSize();\n        this.updateDirection();\n        this.updatePosition();\n        if (this._config.scrollStrategy) {\n            this._config.scrollStrategy.enable();\n        }\n        // Enable pointer events for the overlay pane element.\n        this._togglePointerEvents(true);\n        if (this._config.hasBackdrop) {\n            this._attachBackdrop();\n        }\n        if (this._config.panelClass) {\n            // We can't do a spread here, because IE doesn't suppo
 rt setting multiple classes.\n            if (Array.isArray(this._config.panelClass)) {\n                this._config.panelClass.forEach(cls => this._pane.classList.add(cls));\n            }\n            else {\n                this._pane.classList.add(this._config.panelClass);\n            }\n        }\n        // Only emit the `attachments` event once all other setup is done.\n        this._attachments.next();\n        return attachResult;\n    }\n    /**\n     * Detaches an overlay from a portal.\n     * @return {?} The portal detachment result.\n     */\n    detach() {\n        this.detachBackdrop();\n        // When the overlay is detached, the pane element should disable pointer events.\n        // This is necessary because otherwise the pane element will cover the page and disable\n        // pointer events therefore. Depends on the position strategy and the applied pane boundaries.\n        this._togglePointerEvents(false);\n        if (this._config.positionStrategy && this.
 _config.positionStrategy.detach) {\n            this._config.positionStrategy.detach();\n        }\n        if (this._config.scrollStrategy) {\n            this._config.scrollStrategy.disable();\n        }\n        const /** @type {?} */ detachmentResult = this._portalHost.detach();\n        // Only emit after everything is detached.\n        this._detachments.next();\n        return detachmentResult;\n    }\n    /**\n     * Cleans up the overlay from the DOM.\n     * @return {?}\n     */\n    dispose() {\n        if (this._config.positionStrategy) {\n            this._config.positionStrategy.dispose();\n        }\n        if (this._config.scrollStrategy) {\n            this._config.scrollStrategy.disable();\n        }\n        this.detachBackdrop();\n        this._portalHost.dispose();\n        this._attachments.complete();\n        this._backdropClick.complete();\n        this._detachments.next();\n        this._detachments.complete();\n    }\n    /**\n     * Checks whether the ov
 erlay has been attached.\n     * @return {?}\n     */\n    hasAttached() {\n        return this._portalHost.hasAttached();\n    }\n    /**\n     * Returns an observable that emits when the backdrop has been clicked.\n     * @return {?}\n     */\n    backdropClick() {\n        return this._backdropClick.asObservable();\n    }\n    /**\n     * Returns an observable that emits when the overlay has been attached.\n     * @return {?}\n     */\n    attachments() {\n        return this._attachments.asObservable();\n    }\n    /**\n     * Returns an observable that emits when the overlay has been detached.\n     * @return {?}\n     */\n    detachments() {\n        return this._detachments.asObservable();\n    }\n    /**\n     * Gets the current config of the overlay.\n     * @return {?}\n     */\n    getConfig() {\n        return this._config;\n    }\n    /**\n     * Updates the position of the overlay based on the position strategy.\n     * @return {?}\n     */\n    updatePosition() {\n   
      if (this._config.positionStrategy) {\n            this._config.positionStrategy.apply();\n        }\n    }\n    /**\n     * Updates the text direction of the overlay panel.\n     * @return {?}\n     */\n    updateDirection() {\n        this._pane.setAttribute('dir', /** @type {?} */ ((this._config.direction)));\n    }\n    /**\n     * Updates the size of the overlay based on the overlay config.\n     * @return {?}\n     */\n    updateSize() {\n        if (this._config.width || this._config.width === 0) {\n            this._pane.style.width = formatCssUnit(this._config.width);\n        }\n        if (this._config.height || this._config.height === 0) {\n            this._pane.style.height = formatCssUnit(this._config.height);\n        }\n        if (this._config.minWidth || this._config.minWidth === 0) {\n            this._pane.style.minWidth = formatCssUnit(this._config.minWidth);\n        }\n        if (this._config.minHeight || this._config.minHeight === 0) {\n            this
 ._pane.style.minHeight = formatCssUnit(this._config.minHeight);\n        }\n        if (this._config.maxWidth || this._config.maxWidth === 0) {\n            this._pane.style.maxWidth = formatCssUnit(this._config.maxWidth);\n        }\n        if (this._config.maxHeight || this._config.maxHeight === 0) {\n            this._pane.style.maxHeight = formatCssUnit(this._config.maxHeight);\n        }\n    }\n    /**\n     * Toggles the pointer events for the overlay pane element.\n     * @param {?} enablePointer\n     * @return {?}\n     */\n    _togglePointerEvents(enablePointer) {\n        this._pane.style.pointerEvents = enablePointer ? 'auto' : 'none';\n    }\n    /**\n     * Attaches a backdrop for this overlay.\n     * @return {?}\n     */\n    _attachBackdrop() {\n        this._backdropElement = document.createElement('div');\n        this._backdropElement.classList.add('cdk-overlay-backdrop');\n        if (this._config.backdropClass) {\n            this._backdropElement.classList.a
 dd(this._config.backdropClass);\n        } /** @type {?} */\n        ((\n        // Insert the backdrop before the pane in the DOM order,\n        // in order to handle stacked overlays properly.\n        this._pane.parentElement)).insertBefore(this._backdropElement, this._pane);\n        // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n        // action desired when such a click occurs (usually closing the overlay).\n        this._backdropElement.addEventListener('click', () => this._backdropClick.next(null));\n        // Add class to fade-in the backdrop after one frame.\n        requestAnimationFrame(() => {\n            if (this._backdropElement) {\n                this._backdropElement.classList.add('cdk-overlay-backdrop-showing');\n            }\n        });\n    }\n    /**\n     * Updates the stacking order of the element, moving it to the top if necessary.\n     * This is required in cases where one overlay was detached, while another on
 e,\n     * that should be behind it, was destroyed. The next time both of them are opened,\n     * the stacking will be wrong, because the detached element's pane will still be\n     * in its original DOM position.\n     * @return {?}\n     */\n    _updateStackingOrder() {\n        if (this._pane.nextSibling) {\n            ((this._pane.parentNode)).appendChild(this._pane);\n        }\n    }\n    /**\n     * Detaches the backdrop (if any) associated with the overlay.\n     * @return {?}\n     */\n    detachBackdrop() {\n        let /** @type {?} */ backdropToDetach = this._backdropElement;\n        if (backdropToDetach) {\n            let /** @type {?} */ finishDetach = () => {\n                // It may not be attached to anything in certain cases (e.g. unit tests).\n                if (backdropToDetach && backdropToDetach.parentNode) {\n                    backdropToDetach.parentNode.removeChild(backdropToDetach);\n                }\n                // It is possible that a new po
 rtal has been attached to this overlay since we started\n                // removing the backdrop. If that is the case, only clear the backdrop reference if it\n                // is still the same instance that we started to remove.\n                if (this._backdropElement == backdropToDetach) {\n                    this._backdropElement = null;\n                }\n            };\n            backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n            if (this._config.backdropClass) {\n                backdropToDetach.classList.remove(this._config.backdropClass);\n            }\n            backdropToDetach.addEventListener('transitionend', finishDetach);\n            // If the backdrop doesn't have a transition, the `transitionend` event won't fire.\n            // In this case we make it unclickable and we try to remove it after a delay.\n            backdropToDetach.style.pointerEvents = 'none';\n            // Run this outside the Angular zone because ther
 e's nothing that Angular cares about.\n            // If it were to run inside the Angular zone, every test that used Overlay would have to be\n            // either async or fakeAsync.\n            this._ngZone.runOutsideAngular(() => {\n                setTimeout(finishDetach, 500);\n            });\n        }\n    }\n}\nfunction OverlayRef_tsickle_Closure_declarations() {\n    /** @type {?} */\n    OverlayRef.prototype._backdropElement;\n    /** @type {?} */\n    OverlayRef.prototype._backdropClick;\n    /** @type {?} */\n    OverlayRef.prototype._attachments;\n    /** @type {?} */\n    OverlayRef.prototype._detachments;\n    /** @type {?} */\n    OverlayRef.prototype._portalHost;\n    /** @type {?} */\n    OverlayRef.prototype._pane;\n    /** @type {?} */\n    OverlayRef.prototype._config;\n    /** @type {?} */\n    OverlayRef.prototype._ngZone;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction formatCssUnit(value) {\n    return typeof value === 'string' ? (value) : `$
 {value}px`;\n}\n//# sourceMappingURL=overlay-ref.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/** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */\nimport { Optional } from '@angular/core';\n/**\n * The points of the origin element and the overlay element to connect.\n */\nexport class ConnectionPositionPair {\n    /**\n     * @param {?} origin\n     * @param {?} overlay\n     */\n    constructor(origin, overlay) {\n        this.originX = origin.originX;\n        this.originY = origin.originY;\n        this.overlayX = overlay.overlayX;\n        this.overlayY = overlay.overlayY;\n    }\n}\nfunction ConnectionPositionPair_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ConnectionPositionPair.prototype.originX;\n    /** @type {?} */\n    ConnectionPosition
 Pair.prototype.originY;\n    /** @type {?} */\n    ConnectionPositionPair.prototype.overlayX;\n    /** @type {?} */\n    ConnectionPositionPair.prototype.overlayY;\n}\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n *       -----------                    -----------\n *       | outside |                    | clipped |\n *       |  view   |              --------------------------\n *       |         |              |     |         |        |\n *       ----------               |     -----------        |\n *  -----
 ---------------------    |                        |\n *  |                        |    |      Scrollable        |\n *  |                        |    |                        |\n *  |                        |     --------------------------\n *  |      Scrollable        |\n *  |                        |\n *  --------------------------\n */\nexport class ScrollingVisibility {\n}\nfunction ScrollingVisibility_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ScrollingVisibility.prototype.isOriginClipped;\n    /** @type {?} */\n    ScrollingVisibility.prototype.isOriginOutsideView;\n    /** @type {?} */\n    ScrollingVisibility.prototype.isOverlayClipped;\n    /** @type {?} */\n    ScrollingVisibility.prototype.isOverlayOutsideView;\n}\n/**\n * The change event emitted by the strategy when a fallback position is used.\n */\nexport class ConnectedOverlayPositionChange {\n    /**\n     * @param {?} connectionPair\n     * @param {?} scrollableViewProperties\n     */\n    construct
 or(connectionPair, scrollableViewProperties) {\n        this.connectionPair = connectionPair;\n        this.scrollableViewProperties = scrollableViewProperties;\n    }\n}\n/**\n * @nocollapse\n */\nConnectedOverlayPositionChange.ctorParameters = () => [\n    { type: ConnectionPositionPair, },\n    { type: ScrollingVisibility, decorators: [{ type: Optional },] },\n];\nfunction ConnectedOverlayPositionChange_tsickle_Closure_declarations() {\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ConnectedOverlayPositionChange.ctorParameters;\n    /** @type {?} */\n    ConnectedOverlayPositionChange.prototype.connectionPair;\n    /** @type {?} */\n    ConnectedOverlayPositionChange.prototype.scrollableViewProperties;\n}\n//# sourceMappingURL=connected-position.js.map","/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * \\@docs-private\n * @param {?} element Dimensions of the element (from getBoundingClientRect)\n * @param {?}
  scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @return {?} Whether the element is scrolled out of view\n */\nexport function isElementScrolledOutsideView(element, scrollContainers) {\n    return scrollContainers.some(containerBounds => {\n        const /** @type {?} */ outsideAbove = element.bottom < containerBounds.top;\n        const /** @type {?} */ outsideBelow = element.top > containerBounds.bottom;\n        const /** @type {?} */ outsideLeft = element.right < containerBounds.left;\n        const /** @type {?} */ outsideRight = element.left > containerBounds.right;\n        return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n    });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * \\@docs-private\n * @param {?} element Dimensions of the element (from getBoundingClientRect)\n * @param {?} scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect
 )\n * @return {?} Whether the element is clipped\n */\nexport function isElementClippedByScrolling(element, scrollContainers) {\n    return scrollContainers.some(scrollContainerRect => {\n        const /** @type {?} */ clippedAbove = element.top < scrollContainerRect.top;\n        const /** @type {?} */ clippedBelow = element.bottom > scrollContainerRect.bottom;\n        const /** @type {?} */ clippedLeft = element.left < scrollContainerRect.left;\n        const /** @type {?} */ clippedRight = element.right > scrollContainerRect.right;\n        return clippedAbove || clippedBelow || clippedLeft || clippedRight;\n    });\n}\n//# sourceMappingURL=scroll-clip.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 { ConnectionPositionPair, ConnectedOverlayPositionChange, } from './connected-position';\nimport { Subject
  } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { isElementScrolledOutsideView, isElementClippedByScrolling } from './scroll-clip';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nexport class ConnectedPositionStrategy {\n    /**\n     * @param {?} originPos\n     * @param {?} overlayPos\n     * @param {?} _connectedTo\n     * @param {?} _viewportRuler\n     */\n    constructor(originPos, overlayPos, _connectedTo, _viewportRuler) {\n        this._connectedTo = _connectedTo;\n        this._viewportRuler = _viewportRuler;\n        /**\n         * Layout direction of the position strategy.\n       
   */\n        this._dir = 'ltr';\n        /**\n         * The offset in pixels for the overlay connection point on the x-axis\n         */\n        this._offsetX = 0;\n        /**\n         * The offset in pixels for the overlay connection point on the y-axis\n         */\n        this._offsetY = 0;\n        /**\n         * The Scrollable containers used to check scrollable view properties on position change.\n         */\n        this.scrollables = [];\n        /**\n         * Subscription to viewport resize events.\n         */\n        this._resizeSubscription = Subscription.EMPTY;\n        /**\n         * Ordered list of preferred positions, from most to least desirable.\n         */\n        this._preferredPositions = [];\n        this._onPositionChange = new Subject();\n        this._origin = this._connectedTo.nativeElement;\n        this.withFallbackPosition(originPos, overlayPos);\n    }\n    /**\n     * Whether the we're dealing with an RTL context\n     * @return {?}\n    
  */\n    get _isRtl() {\n        return this._dir === 'rtl';\n    }\n    /**\n     * Emits an event when the connection point changes.\n     * @return {?}\n     */\n    get onPositionChange() {\n        return this._onPositionChange.asObservable();\n    }\n    /**\n     * Ordered list of preferred positions, from most to least desirable.\n     * @return {?}\n     */\n    get positions() {\n        return this._preferredPositions;\n    }\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    attach(overlayRef) {\n        this._overlayRef = overlayRef;\n        this._pane = overlayRef.overlayElement;\n        this._resizeSubscription.unsubscribe();\n        this._resizeSubscription = this._viewportRuler.change().subscribe(() => this.apply());\n    }\n    /**\n     * Performs any cleanup after the element is destroyed.\n     * @return {?}\n     */\n    dispose() {\n        this._resizeSubscription.unsubscribe();\n    }\n    /**\n     * \\@docs-private\n     * @return 
 {?}\n     */\n    detach() {\n        this._resizeSubscription.unsubscribe();\n    }\n    /**\n     * Updates the position of the overlay element, using whichever preferred position relative\n     * to the origin fits on-screen.\n     * \\@docs-private\n     *\n     * @return {?} Resolves when the styles have been applied.\n     */\n    apply() {\n        // We need the bounding rects for the origin and the overlay to determine how to position\n        // the overlay relative to the origin.\n        const /** @type {?} */ element = this._pane;\n        const /** @type {?} */ originRect = this._origin.getBoundingClientRect();\n        const /** @type {?} */ overlayRect = element.getBoundingClientRect();\n        // We use the viewport rect to determine whether a position would go off-screen.\n        const /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n        // Fallback point if none of the fallbacks fit into the viewport.\n        let /** @type {?} */ fall
 backPoint;\n        let /** @type {?} */ fallbackPosition;\n        // We want to place the overlay in the first of the preferred positions such that the\n        // overlay fits on-screen.\n        for (let /** @type {?} */ pos of this._preferredPositions) {\n            // Get the (x, y) point of connection on the origin, and then use that to get the\n            // (top, left) coordinate for the overlay at `pos`.\n            let /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, pos);\n            let /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, pos);\n            // If the overlay in the calculated position fits on-screen, put it there and we're done.\n            if (overlayPoint.fitsInViewport) {\n                this._setElementPosition(element, overlayRect, overlayPoint, pos);\n                // Save the last connected position in case the position needs to be re-calculated.\n                this._last
 ConnectedPosition = pos;\n                return;\n            }\n            else if (!fallbackPoint || fallbackPoint.visibleArea < overlayPoint.visibleArea) {\n                fallbackPoint = overlayPoint;\n                fallbackPosition = pos;\n            }\n        }\n        // If none of the preferred positions were in the viewport, take the one\n        // with the largest visible area.\n        this._setElementPosition(element, overlayRect, /** @type {?} */ ((fallbackPoint)), /** @type {?} */ ((fallbackPosition)));\n    }\n    /**\n     * This re-aligns the overlay element with the trigger in its last calculated position,\n     * even if a position higher in the \"preferred positions\" list would now fit. This\n     * allows one to re-align the panel without changing the orientation of the panel.\n     * @return {?}\n     */\n    recalculateLastPosition() {\n        const /** @type {?} */ originRect = this._origin.getBoundingClientRect();\n        const /** @type {?} */ o
 verlayRect = this._pane.getBoundingClientRect();\n        const /** @type {?} */ viewportRect = this._viewportRuler.getViewportRect();\n        const /** @type {?} */ lastPosition = this._lastConnectedPosition || this._preferredPositions[0];\n        let /** @type {?} */ originPoint = this._getOriginConnectionPoint(originRect, lastPosition);\n        let /** @type {?} */ overlayPoint = this._getOverlayPoint(originPoint, overlayRect, viewportRect, lastPosition);\n        this._setElementPosition(this._pane, overlayRect, overlayPoint, lastPosition);\n    }\n    /**\n     * Sets the list of Scrollable containers that host the origin element so that\n     * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n     * Scrollable must be an ancestor element of the strategy's origin element.\n     * @param {?} scrollables\n     * @return {?}\n     */\n    withScrollableContainers(scrollables) {\n        this.scrollables = scrollables;\n    }\n    /**\n
      * Adds a new preferred fallback position.\n     * @param {?} originPos\n     * @param {?} overlayPos\n     * @return {?}\n     */\n    withFallbackPosition(originPos, overlayPos) {\n        this._preferredPositions.push(new ConnectionPositionPair(originPos, overlayPos));\n        return this;\n    }\n    /**\n     * Sets the layout direction so the overlay's position can be adjusted to match.\n     * @param {?} dir New layout direction.\n     * @return {?}\n     */\n    withDirection(dir) {\n        this._dir = dir;\n        return this;\n    }\n    /**\n     * Sets an offset for the overlay's connection point on the x-axis\n     * @param {?} offset New offset in the X axis.\n     * @return {?}\n     */\n    withOffsetX(offset) {\n        this._offsetX = offset;\n        return this;\n    }\n    /**\n     * Sets an offset for the overlay's connection point on the y-axis\n     * @param {?} offset New offset in the Y axis.\n     * @return {?}\n     */\n    withOffsetY(offset) {\n
         this._offsetY = offset;\n        return this;\n    }\n    /**\n     * Gets the horizontal (x) \"start\" dimension based on whether the overlay is in an RTL context.\n     * @param {?} rect\n     * @return {?}\n     */\n    _getStartX(rect) {\n        return this._isRtl ? rect.right : rect.left;\n    }\n    /**\n     * Gets the horizontal (x) \"end\" dimension based on whether the overlay is in an RTL context.\n     * @param {?} rect\n     * @return {?}\n     */\n    _getEndX(rect) {\n        return this._isRtl ? rect.left : rect.right;\n    }\n    /**\n     * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n     * @param {?} originRect\n     * @param {?} pos\n     * @return {?}\n     */\n    _getOriginConnectionPoint(originRect, pos) {\n        const /** @type {?} */ originStartX = this._getStartX(originRect);\n        const /** @type {?} */ originEndX = this._getEndX(originRect);\n        let /** @type {?} */ x;\n        if (pos.
 originX == 'center') {\n            x = originStartX + (originRect.width / 2);\n        }\n        else {\n            x = pos.originX == 'start' ? originStartX : originEndX;\n        }\n        let /** @type {?} */ y;\n        if (pos.originY == 'center') {\n            y = originRect.top + (originRect.height / 2);\n        }\n        else {\n            y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n        }\n        return { x, y };\n    }\n    /**\n     * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n     * origin point to which the overlay should be connected, as well as how much of the element\n     * would be inside the viewport at that position.\n     * @param {?} originPoint\n     * @param {?} overlayRect\n     * @param {?} viewportRect\n     * @param {?} pos\n     * @return {?}\n     */\n    _getOverlayPoint(originPoint, overlayRect, viewportRect, pos) {\n        // Calculate the (overlayStartX, overlayStartY
 ), the start of the potential overlay position\n        // relative to the origin point.\n        let /** @type {?} */ overlayStartX;\n        if (pos.overlayX == 'center') {\n            overlayStartX = -overlayRect.width / 2;\n        }\n        else if (pos.overlayX === 'start') {\n            overlayStartX = this._isRtl ? -overlayRect.width : 0;\n        }\n        else {\n            overlayStartX = this._isRtl ? 0 : -overlayRect.width;\n        }\n        let /** @type {?} */ overlayStartY;\n        if (pos.overlayY == 'center') {\n            overlayStartY = -overlayRect.height / 2;\n        }\n        else {\n            overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n        }\n        // The (x, y) coordinates of the overlay.\n        let /** @type {?} */ x = originPoint.x + overlayStartX + this._offsetX;\n        let /** @type {?} */ y = originPoint.y + overlayStartY + this._offsetY;\n        // How much the overlay would overflow at this position, on ea
 ch side.\n        let /** @type {?} */ leftOverflow = 0 - x;\n        let /** @type {?} */ rightOverflow = (x + overlayRect.width) - viewportRect.width;\n        let /** @type {?} */ topOverflow = 0 - y;\n        let /** @type {?} */ bottomOverflow = (y + overlayRect.height) - viewportRect.height;\n        // Visible parts of the element on each axis.\n        let /** @type {?} */ visibleWidth = this._subtractOverflows(overlayRect.width, leftOverflow, rightOverflow);\n        let /** @type {?} */ visibleHeight = this._subtractOverflows(overlayRect.height, topOverflow, bottomOverflow);\n        // The area of the element that's within the viewport.\n        let /** @type {?} */ visibleArea = visibleWidth * visibleHeight;\n        let /** @type {?} */ fitsInViewport = (overlayRect.width * overlayRect.height) === visibleArea;\n        return { x, y, fitsInViewport, visibleArea };\n    }\n    /**\n     * Gets the view properties of the trigger and overlay, including whether they are cli
 pped\n     * or completely outside the view of any of the strategy's scrollables.\n     * @param {?} overlay\n     * @return {?}\n     */\n    _getScrollVisibility(overlay) {\n        const /** @type {?} */ originBounds = this._origin.getBoundingClientRect();\n        const /** @type {?} */ overlayBounds = overlay.getBoundingClientRect();\n        const /** @type {?} */ scrollContainerBounds = this.scrollables.map(s => s.getElementRef().nativeElement.getBoundingClientRect());\n        return {\n            isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n            isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n            isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n            isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),\n        };\n    }\n    /**\n     * Physically positions the overlay element to the given coordinate
 .\n     * @param {?} element\n     * @param {?} overlayRect\n     * @param {?} overlayPoint\n     * @param {?} pos\n     * @return {?}\n     */\n    _setElementPosition(element, overlayRect, overlayPoint, pos) {\n        // We want to set either `top` or `bottom` based on whether the overlay wants to appear above\n        // or below the origin and the direction in which the element will expand.\n        let /** @type {?} */ verticalStyleProperty = pos.overlayY === 'bottom' ? 'bottom' : 'top';\n        // When using `bottom`, we adjust the y position such that it is the distance\n        // from the bottom of the viewport rather than the top.\n        let /** @type {?} */ y = verticalStyleProperty === 'top' ?\n            overlayPoint.y :\n            document.documentElement.clientHeight - (overlayPoint.y + overlayRect.height);\n        // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n        // or \"after\" the origin, which deter
 mines the direction in which the element will expand.\n        // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n        // page is in RTL or LTR.\n        let /** @type {?} */ horizontalStyleProperty;\n        if (this._dir === 'rtl') {\n            horizontalStyleProperty = pos.overlayX === 'end' ? 'left' : 'right';\n        }\n        else {\n            horizontalStyleProperty = pos.overlayX === 'end' ? 'right' : 'left';\n        }\n        // When we're setting `right`, we adjust the x position such that it is the distance\n        // from the right edge of the viewport rather than the left edge.\n        let /** @type {?} */ x = horizontalStyleProperty === 'left' ?\n            overlayPoint.x :\n            document.documentElement.clientWidth - (overlayPoint.x + overlayRect.width);\n        // Reset any existing styles. This is necessary in case the preferred position has\n        // changed since the last `apply`.\n        ['top
 ', 'bottom', 'left', 'right'].forEach(p => element.style[p] = null);\n        element.style[verticalStyleProperty] = `${y}px`;\n        element.style[horizontalStyleProperty] = `${x}px`;\n        // Notify that the position has been changed along with its change properties.\n        const /** @type {?} */ scrollableViewProperties = this._getScrollVisibility(element);\n        const /** @type {?} */ positionChange = new ConnectedOverlayPositionChange(pos, scrollableViewProperties);\n        this._onPositionChange.next(positionChange);\n    }\n    /**\n     * Subtracts the amount that an element is overflowing on an axis from it's length.\n     * @param {?} length\n     * @param {...?} overflows\n     * @return {?}\n     */\n    _subtractOverflows(length, ...overflows) {\n        return overflows.reduce((currentValue, currentOverflow) => {\n            return currentValue - Math.max(currentOverflow, 0);\n        }, length);\n    }\n}\nfunction ConnectedPositionStrategy_tsickle_Closure
 _declarations() {\n    /**\n     * The overlay to which this strategy is attached.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._overlayRef;\n    /**\n     * Layout direction of the position strategy.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._dir;\n    /**\n     * The offset in pixels for the overlay connection point on the x-axis\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._offsetX;\n    /**\n     * The offset in pixels for the overlay connection point on the y-axis\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._offsetY;\n    /**\n     * The Scrollable containers used to check scrollable view properties on position change.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype.scrollables;\n    /**\n     * Subscription to viewport resize events.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._resizeSubscription;\n    /**\n     * Ordered list of preferred
  positions, from most to least desirable.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._preferredPositions;\n    /**\n     * The origin element against which the overlay will be positioned.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._origin;\n    /**\n     * The overlay pane element.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._pane;\n    /**\n     * The last position to have been calculated as the best fit position.\n     * @type {?}\n     */\n    ConnectedPositionStrategy.prototype._lastConnectedPosition;\n    /** @type {?} */\n    ConnectedPositionStrategy.prototype._onPositionChange;\n    /** @type {?} */\n    ConnectedPositionStrategy.prototype._connectedTo;\n    /** @type {?} */\n    ConnectedPositionStrategy.prototype._viewportRuler;\n}\n//# sourceMappingURL=connected-position-strategy.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by a
 n MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nexport class GlobalPositionStrategy {\n    constructor() {\n        this._cssPosition = 'static';\n        this._topOffset = '';\n        this._bottomOffset = '';\n        this._leftOffset = '';\n        this._rightOffset = '';\n        this._alignItems = '';\n        this._justifyContent = '';\n        this._width = '';\n        this._height = '';\n        this._wrapper = null;\n    }\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    attach(overlayRef) {\n        this._overlayRef = overlayRef;\n    }\n    /**\n     * Sets the top position of the overlay. Clears any previous
 ly set vertical position.\n     * @param {?=} value New top offset.\n     * @return {?}\n     */\n    top(value = '') {\n        this._bottomOffset = '';\n        this._topOffset = value;\n        this._alignItems = 'flex-start';\n        return this;\n    }\n    /**\n     * Sets the left position of the overlay. Clears any previously set horizontal position.\n     * @param {?=} value New left offset.\n     * @return {?}\n     */\n    left(value = '') {\n        this._rightOffset = '';\n        this._leftOffset = value;\n        this._justifyContent = 'flex-start';\n        return this;\n    }\n    /**\n     * Sets the bottom position of the overlay. Clears any previously set vertical position.\n     * @param {?=} value New bottom offset.\n     * @return {?}\n     */\n    bottom(value = '') {\n        this._topOffset = '';\n        this._bottomOffset = value;\n        this._alignItems = 'flex-end';\n        return this;\n    }\n    /**\n     * Sets the right position of the overlay.
  Clears any previously set horizontal position.\n     * @param {?=} value New right offset.\n     * @return {?}\n     */\n    right(value = '') {\n        this._leftOffset = '';\n        this._rightOffset = value;\n        this._justifyContent = 'flex-end';\n        return this;\n    }\n    /**\n     * Sets the overlay width and clears any previously set width.\n     * @param {?=} value New width for the overlay\n     * @return {?}\n     */\n    width(value = '') {\n        this._width = value;\n        // When the width is 100%, we should reset the `left` and the offset,\n        // in order to ensure that the element is flush against the viewport edge.\n        if (value === '100%') {\n            this.left('0px');\n        }\n        return this;\n    }\n    /**\n     * Sets the overlay height and clears any previously set height.\n     * @param {?=} value New height for the overlay\n     * @return {?}\n     */\n    height(value = '') {\n        this._height = value;\n        // 
 When the height is 100%, we should reset the `top` and the offset,\n        // in order to ensure that the element is flush against the viewport edge.\n        if (value === '100%') {\n            this.top('0px');\n        }\n        return this;\n    }\n    /**\n     * Centers the overlay horizontally with an optional offset.\n     * Clears any previously set horizontal position.\n     *\n     * @param {?=} offset Overlay offset from the horizontal center.\n     * @return {?}\n     */\n    centerHorizontally(offset = '') {\n        this.left(offset);\n        this._justifyContent = 'center';\n        return this;\n    }\n    /**\n     * Centers the overlay vertically with an optional offset.\n     * Clears any previously set vertical position.\n     *\n     * @param {?=} offset Overlay offset from the vertical center.\n     * @return {?}\n     */\n    centerVertically(offset = '') {\n        this.top(offset);\n        this._alignItems = 'center';\n        return this;\n    }\n    /
 **\n     * Apply the position to the element.\n     * \\@docs-private\n     *\n     * @return {?} Resolved when the styles have been applied.\n     */\n    apply() {\n        const /** @type {?} */ element = this._overlayRef.overlayElement;\n        if (!this._wrapper && element.parentNode) {\n            this._wrapper = document.createElement('div');\n            this._wrapper.classList.add('cdk-global-overlay-wrapper');\n            element.parentNode.insertBefore(this._wrapper, element);\n            this._wrapper.appendChild(element);\n        }\n        let /** @type {?} */ styles = element.style;\n        let /** @type {?} */ parentStyles = ((element.parentNode)).style;\n        styles.position = this._cssPosition;\n        styles.marginTop = this._topOffset;\n        styles.marginLeft = this._leftOffset;\n        styles.marginBottom = this._bottomOffset;\n        styles.marginRight = this._rightOffset;\n        styles.width = this._width;\n        styles.height = this._height
 ;\n        parentStyles.justifyContent = this._justifyContent;\n        parentStyles.alignItems = this._alignItems;\n    }\n    /**\n     * Removes the wrapper element from the DOM.\n     * @return {?}\n     */\n    dispose() {\n        if (this._wrapper && this._wrapper.parentNode) {\n            this._wrapper.parentNode.removeChild(this._wrapper);\n            this._wrapper = null;\n        }\n    }\n}\nfunction GlobalPositionStrategy_tsickle_Closure_declarations() {\n    /**\n     * The overlay to which this strategy is attached.\n     * @type {?}\n     */\n    GlobalPositionStrategy.prototype._overlayRef;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._cssPosition;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._topOffset;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._bottomOffset;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._leftOffset;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._rightOffset;\n    /** @ty
 pe {?} */\n    GlobalPositionStrategy.prototype._alignItems;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._justifyContent;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._width;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._height;\n    /** @type {?} */\n    GlobalPositionStrategy.prototype._wrapper;\n}\n//# sourceMappingURL=global-position-strategy.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 } from '@angular/core';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { ConnectedPositionStrategy } from './connected-position-strategy';\nimport { GlobalPositionStrategy } from './global-position-strategy';\n/**\n * Builder for overlay position strategy.\n */\nexport class OverlayPositionBuilder {\n    /**\n     * @param {?} _viewportRuler\n
      */\n    constructor(_viewportRuler) {\n        this._viewportRuler = _viewportRuler;\n    }\n    /**\n     * Creates a global position strategy.\n     * @return {?}\n     */\n    global() {\n        return new GlobalPositionStrategy();\n    }\n    /**\n     * Creates a relative position strategy.\n     * @param {?} elementRef\n     * @param {?} originPos\n     * @param {?} overlayPos\n     * @return {?}\n     */\n    connectedTo(elementRef, originPos, overlayPos) {\n        return new ConnectedPositionStrategy(originPos, overlayPos, elementRef, this._viewportRuler);\n    }\n}\nOverlayPositionBuilder.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nOverlayPositionBuilder.ctorParameters = () => [\n    { type: ViewportRuler, },\n];\nfunction OverlayPositionBuilder_tsickle_Closure_declarations() {\n    /** @type {?} */\n    OverlayPositionBuilder.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    OverlayPositionBuilder.ctorParameters;\n
     /** @type {?} */\n    OverlayPositionBuilder.prototype._viewportRuler;\n}\n//# sourceMappingURL=overlay-position-builder.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 * The OverlayContainer is the container in which all overlays will load.\n * It should be provided in the root component to ensure it is properly shared.\n */\nexport class OverlayContainer {\n    /**\n     * @return {?}\n     */\n    ngOnDestroy() {\n        if (this._containerElement && this._containerElement.parentNode) {\n            this._containerElement.parentNode.removeChild(this._containerElement);\n        }\n    }\n    /**\n     * This method returns the overlay container element. It will lazily\n     * create the element the first time  it is called to facilitate 
 using\n     * the container in non-browser environments.\n     * @return {?} the container element\n     */\n    getContainerElement() {\n        if (!this._containerElement) {\n            this._createContainer();\n        }\n        return this._containerElement;\n    }\n    /**\n     * Create the overlay container element, which is simply a div\n     * with the 'cdk-overlay-container' class on the document body.\n     * @return {?}\n     */\n    _createContainer() {\n        let /** @type {?} */ container = document.createElement('div');\n        container.classList.add('cdk-overlay-container');\n        document.body.appendChild(container);\n        this._containerElement = container;\n    }\n}\nOverlayContainer.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nOverlayContainer.ctorParameters = () => [];\nfunction OverlayContainer_tsickle_Closure_declarations() {\n    /** @type {?} */\n    OverlayContainer.decorators;\n    /**\n     * @nocollapse\n     * @
 type {?}\n     */\n    OverlayContainer.ctorParameters;\n    /** @type {?} */\n    OverlayContainer.prototype._containerElement;\n}\n/**\n * \\@docs-private\n * @param {?} parentContainer\n * @return {?}\n */\nexport function OVERLAY_CONTAINER_PROVIDER_FACTORY(parentContainer) {\n    return parentContainer || new OverlayContainer();\n}\n/**\n * \\@docs-private\n */\nexport const OVERLAY_CONTAINER_PROVIDER = {\n    // If there is already an OverlayContainer available, use that. Otherwise, provide a new one.\n    provide: OverlayContainer,\n    deps: [[new Optional(), new SkipSelf(), OverlayContainer]],\n    useFactory: OVERLAY_CONTAINER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=overlay-container.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/**\n * Returns an error to be thrown when attempting to attach an alread
 y-attached scroll strategy.\n * @return {?}\n */\nexport function getMatScrollStrategyAlreadyAttachedError() {\n    return Error(`Scroll strategy has already been attached.`);\n}\n//# sourceMappingURL=scroll-strategy.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 { getMatScrollStrategyAlreadyAttachedError } from './scroll-strategy';\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nexport class CloseScrollStrategy {\n    /**\n     * @param {?} _scrollDispatcher\n     */\n    constructor(_scrollDispatcher) {\n        this._scrollDispatcher = _scrollDispatcher;\n        this._scrollSubscription = null;\n    }\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    attach(overlayRef) {\n        if (this._overlayRef) {\n            throw getMatScrollStrat
 egyAlreadyAttachedError();\n        }\n        this._overlayRef = overlayRef;\n    }\n    /**\n     * @return {?}\n     */\n    enable() {\n        if (!this._scrollSubscription) {\n            this._scrollSubscription = this._scrollDispatcher.scrolled(0, () => {\n                if (this._overlayRef.hasAttached()) {\n                    this._overlayRef.detach();\n                }\n                this.disable();\n            });\n        }\n    }\n    /**\n     * @return {?}\n     */\n    disable() {\n        if (this._scrollSubscription) {\n            this._scrollSubscription.unsubscribe();\n            this._scrollSubscription = null;\n        }\n    }\n}\nfunction CloseScrollStrategy_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CloseScrollStrategy.prototype._scrollSubscription;\n    /** @type {?} */\n    CloseScrollStrategy.prototype._overlayRef;\n    /** @type {?} */\n    CloseScrollStrategy.prototype._scrollDispatcher;\n}\n//# sourceMappingURL=close-scroll-st
 rategy.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/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nexport class BlockScrollStrategy {\n    /**\n     * @param {?} _viewportRuler\n     */\n    constructor(_viewportRuler) {\n        this._viewportRuler = _viewportRuler;\n        this._previousHTMLStyles = { top: '', left: '' };\n        this._isEnabled = false;\n    }\n    /**\n     * @return {?}\n     */\n    attach() { }\n    /**\n     * @return {?}\n     */\n    enable() {\n        if (this._canBeEnabled()) {\n            const /** @type {?} */ root = document.documentElement;\n            this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n            // Cache the previous inline styles in case the user had set them.\n            this.
 _previousHTMLStyles.left = root.style.left || '';\n            this._previousHTMLStyles.top = root.style.top || '';\n            // Note: we're using the `html` node, instead of the `body`, because the `body` may\n            // have the user agent margin, whereas the `html` is guaranteed not to have one.\n            root.style.left = `${-this._previousScrollPosition.left}px`;\n            root.style.top = `${-this._previousScrollPosition.top}px`;\n            root.classList.add('cdk-global-scrollblock');\n            this._isEnabled = true;\n        }\n    }\n    /**\n     * @return {?}\n     */\n    disable() {\n        if (this._isEnabled) {\n            this._isEnabled = false;\n            document.documentElement.style.left = this._previousHTMLStyles.left;\n            document.documentElement.style.top = this._previousHTMLStyles.top;\n            document.documentElement.classList.remove('cdk-global-scrollblock');\n            window.scroll(this._previousScrollPosition.left,
  this._previousScrollPosition.top);\n        }\n    }\n    /**\n     * @return {?}\n     */\n    _canBeEnabled() {\n        // Since the scroll strategies can't be singletons, we have to use a global CSS class\n        // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n        // scrolling multiple times.\n        if (document.documentElement.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n            return false;\n        }\n        const /** @type {?} */ body = document.body;\n        const /** @type {?} */ viewport = this._viewportRuler.getViewportRect();\n        return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;\n    }\n}\nfunction BlockScrollStrategy_tsickle_Closure_declarations() {\n    /** @type {?} */\n    BlockScrollStrategy.prototype._previousHTMLStyles;\n    /** @type {?} */\n    BlockScrollStrategy.prototype._previousScrollPosition;\n    /** @type {?} */\n    BlockScrollStrategy.prototype._i
 sEnabled;\n    /** @type {?} */\n    BlockScrollStrategy.prototype._viewportRuler;\n}\n//# sourceMappingURL=block-scroll-strategy.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 { getMatScrollStrategyAlreadyAttachedError } from './scroll-strategy';\n/**\n * Strategy that will update the element position as the user is scrolling.\n */\nexport class RepositionScrollStrategy {\n    /**\n     * @param {?} _scrollDispatcher\n     * @param {?=} _config\n     */\n    constructor(_scrollDispatcher, _config) {\n        this._scrollDispatcher = _scrollDispatcher;\n        this._config = _config;\n        this._scrollSubscription = null;\n    }\n    /**\n     * @param {?} overlayRef\n     * @return {?}\n     */\n    attach(overlayRef) {\n        if (this._overlayRef) {\n            throw getMatScrollStrategyAlreadyAtta
 chedError();\n        }\n        this._overlayRef = overlayRef;\n    }\n    /**\n     * @return {?}\n     */\n    enable() {\n        if (!this._scrollSubscription) {\n            let /** @type {?} */ throttle = this._config ? this._config.scrollThrottle : 0;\n            this._scrollSubscription = this._scrollDispatcher.scrolled(throttle, () => {\n                this._overlayRef.updatePosition();\n            });\n        }\n    }\n    /**\n     * @return {?}\n     */\n    disable() {\n        if (this._scrollSubscription) {\n            this._scrollSubscription.unsubscribe();\n            this._scrollSubscription = null;\n        }\n    }\n}\nfunction RepositionScrollStrategy_tsickle_Closure_declarations() {\n    /** @type {?} */\n    RepositionScrollStrategy.prototype._scrollSubscription;\n    /** @type {?} */\n    RepositionScrollStrategy.prototype._overlayRef;\n    /** @type {?} */\n    RepositionScrollStrategy.prototype._scrollDispatcher;\n    /** @type {?} */\n    Reposition
 ScrollStrategy.prototype._config;\n}\n//# sourceMappingURL=reposition-scroll-strategy.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 } from '@angular/core';\nimport { CloseScrollStrategy } from './close-scroll-strategy';\nimport { NoopScrollStrategy } from './noop-scroll-strategy';\nimport { BlockScrollStrategy } from './block-scroll-strategy';\nimport { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { RepositionScrollStrategy, } from './reposition-scroll-strategy';\n/**\n * Options for how an overlay will handle scrolling.\n *\n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nexport class ScrollStrate
 gyOptions {\n    /**\n     * @param {?} _scrollDispatcher\n     * @param {?} _viewportRuler\n     */\n    constructor(_scrollDispatcher, _viewportRuler) {\n        this._scrollDispatcher = _scrollDispatcher;\n        this._viewportRuler = _viewportRuler;\n        /**\n         * Do nothing on scroll.\n         */\n        this.noop = () => new NoopScrollStrategy();\n        /**\n         * Close the overlay as soon as the user scrolls.\n         */\n        this.close = () => new CloseScrollStrategy(this._scrollDispatcher);\n        /**\n         * Block scrolling.\n         */\n        this.block = () => new BlockScrollStrategy(this._viewportRuler);\n        /**\n         * Update the overlay's position on scroll.\n         * @param config Configuration to be used inside the scroll strategy.\n         * Allows debouncing the reposition calls.\n         */\n        this.reposition = (config) => new RepositionScrollStrategy(this._scrollDispatcher, config);\n    }\n}\nScrollStrategyOp
 tions.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nScrollStrategyOptions.ctorParameters = () => [\n    { type: ScrollDispatcher, },\n    { type: ViewportRuler, },\n];\nfunction ScrollStrategyOptions_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ScrollStrategyOptions.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ScrollStrategyOptions.ctorParameters;\n    /**\n     * Do nothing on scroll.\n     * @type {?}\n     */\n    ScrollStrategyOptions.prototype.noop;\n    /**\n     * Close the overlay as soon as the user scrolls.\n     * @type {?}\n     */\n    ScrollStrategyOptions.prototype.close;\n    /**\n     * Block scrolling.\n     * @type {?}\n     */\n    ScrollStrategyOptions.prototype.block;\n    /**\n     * Update the overlay's position on scroll.\n     * \\@param config Configuration to be used inside the scroll strategy.\n     * Allows debouncing the reposition calls.\n     * @type {?}\n     */\n    ScrollStrateg
 yOptions.prototype.reposition;\n    /** @type {?} */\n    ScrollStrategyOptions.prototype._scrollDispatcher;\n    /** @type {?} */\n    ScrollStrategyOptions.prototype._viewportRuler;\n}\n//# sourceMappingURL=scroll-strategy-options.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 { ComponentFactoryResolver, Injectable, ApplicationRef, Injector, NgZone, } from '@angular/core';\nimport { DomPortalHost } from '@angular/cdk/portal';\nimport { OverlayConfig } from './overlay-config';\nimport { OverlayRef } from './overlay-ref';\nimport { OverlayPositionBuilder } from './position/overlay-position-builder';\nimport { OverlayContainer } from './overlay-container';\nimport { ScrollStrategyOptions } from './scroll/index';\n/**\n * Next overlay unique ID.\n */\nlet nextUniqueId = 0;\n/**\n * The default config for newl
 y created overlays.\n */\nlet defaultConfig = new OverlayConfig();\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\nexport class Overlay {\n    /**\n     * @param {?} scrollStrategies\n     * @param {?} _overlayContainer\n     * @param {?} _componentFactoryResolver\n     * @param {?} _positionBuilder\n     * @param {?} _appRef\n     * @param {?} _injector\n     * @param {?} _ngZone\n     */\n    constructor(scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _appRef, _injector, _ngZone) {\n        this.scrollStrategies = scrollStrategies;\
 n        this._overlayContainer = _overlayContainer;\n        this._componentFactoryResolver = _componentFactoryResolver;\n        this._positionBuilder = _positionBuilder;\n        this._appRef = _appRef;\n        this._injector = _injector;\n        this._ngZone = _ngZone;\n    }\n    /**\n     * Creates an overlay.\n     * @param {?=} config Config to apply to the overlay.\n     * @return {?} Reference to the created overlay.\n     */\n    create(config = defaultConfig) {\n        const /** @type {?} */ pane = this._createPaneElement();\n        const /** @type {?} */ portalHost = this._createPortalHost(pane);\n        return new OverlayRef(portalHost, pane, config, this._ngZone);\n    }\n    /**\n     * Returns a position builder that can be used, via fluent API,\n     * to construct and configure a position strategy.\n     * @return {?}\n     */\n    position() {\n        return this._positionBuilder;\n    }\n    /**\n     * Creates the DOM element for an overlay and appends it
  to the overlay container.\n     * @return {?} Newly-created pane element\n     */\n    _createPaneElement() {\n        let /** @type {?} */ pane = document.createElement('div');\n        pane.id = `cdk-overlay-${nextUniqueId++}`;\n        pane.classList.add('cdk-overlay-pane');\n        this._overlayContainer.getContainerElement().appendChild(pane);\n        return pane;\n    }\n    /**\n     * Create a DomPortalHost into which the overlay content can be loaded.\n     * @param {?} pane The DOM element to turn into a portal host.\n     * @return {?} A portal host for the given DOM element.\n     */\n    _createPortalHost(pane) {\n        return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef, this._injector);\n    }\n}\nOverlay.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nOverlay.ctorParameters = () => [\n    { type: ScrollStrategyOptions, },\n    { type: OverlayContainer, },\n    { type: ComponentFactoryResolver, },\n    { type: Over
 layPositionBuilder, },\n    { type: ApplicationRef, },\n    { type: Injector, },\n    { type: NgZone, },\n];\nfunction Overlay_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Overlay.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    Overlay.ctorParameters;\n    /** @type {?} */\n    Overlay.prototype.scrollStrategies;\n    /** @type {?} */\n    Overlay.prototype._overlayContainer;\n    /** @type {?} */\n    Overlay.prototype._componentFactoryResolver;\n    /** @type {?} */\n    Overlay.prototype._positionBuilder;\n    /** @type {?} */\n    Overlay.prototype._appRef;\n    /** @type {?} */\n    Overlay.prototype._injector;\n    /** @type {?} */\n    Overlay.prototype._ngZone;\n}\n//# sourceMappingURL=overlay.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 } from 
 '@angular/core';\nimport { OverlayContainer } from './overlay-container';\n/**\n * The FullscreenOverlayContainer is the alternative to OverlayContainer\n * that supports correct displaying of overlay elements in Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n * It should be provided in the root component that way:\n * providers: [\n *   {provide: OverlayContainer, useClass: FullscreenOverlayContainer}\n * ],\n */\nexport class FullscreenOverlayContainer extends OverlayContainer {\n    /**\n     * @return {?}\n     */\n    _createContainer() {\n        super._createContainer();\n        this._adjustParentForFullscreenChange();\n        this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());\n    }\n    /**\n     * @return {?}\n     */\n    _adjustParentForFullscreenChange() {\n        if (!this._containerElement) {\n            return;\n        }\n        let /** @type {?} */ fullscreenElement = this.getFulls
 creenElement();\n        let /** @type {?} */ parent = fullscreenElement || document.body;\n        parent.appendChild(this._containerElement);\n    }\n    /**\n     * @param {?} fn\n     * @return {?}\n     */\n    _addFullscreenChangeListener(fn) {\n        if (document.fullscreenEnabled) {\n            document.addEventListener('fullscreenchange', fn);\n        }\n        else if (document.webkitFullscreenEnabled) {\n            document.addEventListener('webkitfullscreenchange', fn);\n        }\n        else if (((document)).mozFullScreenEnabled) {\n            document.addEventListener('mozfullscreenchange', fn);\n        }\n        else if (((document)).msFullscreenEnabled) {\n            document.addEventListener('MSFullscreenChange', fn);\n        }\n    }\n    /**\n     * When the page is put into fullscreen mode, a specific element is specified.\n     * Only that element and its children are visible when in fullscreen mode.\n     * @return {?}\n     */\n    getFullscreenEl
 ement() {\n        return document.fullscreenElement ||\n            document.webkitFullscreenElement ||\n            ((document)).mozFullScreenElement ||\n            ((document)).msFullscreenElement ||\n            null;\n    }\n}\nFullscreenOverlayContainer.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nFullscreenOverlayContainer.ctorParameters = () => [];\nfunction FullscreenOverlayContainer_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FullscreenOverlayContainer.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    FullscreenOverlayContainer.ctorParameters;\n}\n//# sourceMappingURL=fullscreen-overlay-container.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directive, ElementRef, EventEmitter, Inject, InjectionToken, Input, Optional, Output, R
 enderer2, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ESCAPE } from '@angular/cdk/keycodes';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Overlay } from './overlay';\nimport { OverlayConfig } from './overlay-config';\nimport { ConnectionPositionPair, } from './position/connected-position';\nimport { Subscription } from 'rxjs/Subscription';\n/**\n * Default set of positions for the overlay. Follows the behavior of a dropdown.\n */\nconst defaultPositionList = [\n    new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }),\n    new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }),\n];\n/**\n * Injection token that determines the scroll handling while the connected overlay is open.\n */\nexport const MAT_CONNECTED_OVERLAY_SCR
 OLL_STRATEGY = new InjectionToken('mat-connected-overlay-scroll-strategy');\n/**\n * \\@docs-private\n * @param {?} overlay\n * @return {?}\n */\nexport function MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n    return () => overlay.scrollStrategies.reposition();\n}\n/**\n * \\@docs-private\n */\nexport const MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n    provide: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n    deps: [Overlay],\n    useFactory: MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nexport class OverlayOrigin {\n    /**\n     * @param {?} elementRef\n     */\n    constructor(elementRef) {\n        this.elementRef = elementRef;\n    }\n}\nOverlayOrigin.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',\n                expo
 rtAs: 'cdkOverlayOrigin',\n            },] },\n];\n/**\n * @nocollapse\n */\nOverlayOrigin.ctorParameters = () => [\n    { type: ElementRef, },\n];\nfunction OverlayOrigin_tsickle_Closure_declarations() {\n    /** @type {?} */\n    OverlayOrigin.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    OverlayOrigin.ctorParameters;\n    /** @type {?} */\n    OverlayOrigin.prototype.elementRef;\n}\n/**\n * Directive to facilitate declarative creation of an Overlay using a ConnectedPositionStrategy.\n */\nexport class ConnectedOverlayDirective {\n    /**\n     * @param {?} _overlay\n     * @param {?} _renderer\n     * @param {?} templateRef\n     * @param {?} viewContainerRef\n     * @param {?} _scrollStrategy\n     * @param {?} _dir\n     */\n    constructor(_overlay, _renderer, templateRef, viewContainerRef, _scrollStrategy, _dir) {\n        this._overlay = _overlay;\n        this._renderer = _renderer;\n        this._scrollStrategy = _scrollStrategy;\n        this._d
 ir = _dir;\n        this._hasBackdrop = false;\n        this._backdropSubscription = Subscription.EMPTY;\n        this._positionSubscription = Subscription.EMPTY;\n        this._offsetX = 0;\n        this._offsetY = 0;\n        this._escapeListener = () => { };\n        /**\n         * Strategy to be used when handling scroll events while the overlay is open.\n         */\n        this.scrollStrategy = this._scrollStrategy();\n        /**\n         * Whether the overlay is open.\n         */\n        this.open = false;\n        /**\n         * Event emitted when the backdrop is clicked.\n         */\n        this.backdropClick = new EventEmitter();\n        /**\n         * Event emitted when the position has changed.\n         */\n        this.positionChange = new EventEmitter();\n        /**\n         * Event emitted when the overlay has been attached.\n         */\n        this.attach = new EventEmitter();\n        /**\n         * Event emitted when the overlay has been detached.\
 n         */\n        this.detach = new EventEmitter();\n        this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n    }\n    /**\n     * The offset in pixels for the overlay connection point on the x-axis\n     * @return {?}\n     */\n    get offsetX() { return this._offsetX; }\n    /**\n     * @param {?} offsetX\n     * @return {?}\n     */\n    set offsetX(offsetX) {\n        this._offsetX = offsetX;\n        if (this._position) {\n            this._position.withOffsetX(offsetX);\n        }\n    }\n    /**\n     * The offset in pixels for the overlay connection point on the y-axis\n     * @return {?}\n     */\n    get offsetY() { return this._offsetY; }\n    /**\n     * @param {?} offsetY\n     * @return {?}\n     */\n    set offsetY(offsetY) {\n        this._offsetY = offsetY;\n        if (this._position) {\n            this._position.withOffsetY(offsetY);\n        }\n    }\n    /**\n     * Whether or not the overlay should attach a backdrop.\n     * @re
 turn {?}\n     */\n    get hasBackdrop() { return this._hasBackdrop; }\n    /**\n     * @param {?} value\n     * @return {?}\n     */\n    set hasBackdrop(value) { this._hasBackdrop = coerceBooleanProperty(value); }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    get _deprecatedOrigin() { return this.origin; }\n    /**\n     * @param {?} _origin\n     * @return {?}\n     */\n    set _deprecatedOrigin(_origin) { this.origin = _origin; }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    get _deprecatedPositions() { return this.positions; }\n    /**\n     * @param {?} _positions\n     * @return {?}\n     */\n    set _deprecatedPositions(_positions) { this.positions = _positions; }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    get _deprecatedOffsetX() { return this.offsetX; }\n    /**\n     * @param {?} _offsetX\n     * @return {?}\n     */\n    set _deprecatedOffsetX(_offsetX) { this.offsetX = _offsetX; }\n    /**\n     * @deprecated\n     *
  @return {?}\n     */\n    get _deprecatedOffsetY() { return this.offsetY; }\n    /**\n     * @param {?} _offsetY\n     * @return {?}\n     */\n    set _deprecatedOffsetY(_offsetY) { this.offsetY = _offsetY; }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    get _deprecatedWidth() { return this.width; }\n    /**\n     * @param {?} _width\n     * @return {?}\n     */\n    set _deprecatedWidth(_width) { this.width = _width; }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    get _deprecatedHeight() { return this.height; }\n    /**\n     * @param {?} _height\n     * @return {?}\n     */\n    set _deprecatedHeight(_height) { this.height = _height; }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    get _deprecatedMinWidth() { return this.minWidth; }\n    /**\n     * @param {?} _minWidth\n     * @return {?}\n     */\n    set _deprecatedMinWidth(_minWidth) { this.minWidth = _minWidth; }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    
 get _deprecatedMinHeight() { return this.minHeight; }\n    /**\n     * @param {?} _minHeight\n     * @return {?}\n     */\n    set _deprecatedMinHeight(_minHeight) { this.minHeight = _minHeight; }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    get _deprecatedBackdropClass() { return this.backdropClass; }\n    /**\n     * @param {?} _backdropClass\n     * @return {?}\n     */\n    set _deprecatedBackdropClass(_backdropClass) { this.backdropClass = _backdropClass; }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    get _deprecatedScrollStrategy() { return this.scrollStrategy; }\n    /**\n     * @param {?} _scrollStrategy\n     * @return {?}\n     */\n    set _deprecatedScrollStrategy(_scrollStrategy) {\n        this.scrollStrategy = _scrollStrategy;\n    }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    get _deprecatedOpen() { return this.open; }\n    /**\n     * @param {?} _open\n     * @return {?}\n     */\n    set _deprecatedOpen(_open) {
  this.open = _open; }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    get _deprecatedHasBackdrop() { return this.hasBackdrop; }\n    /**\n     * @param {?} _hasBackdrop\n     * @return {?}\n     */\n    set _deprecatedHasBackdrop(_hasBackdrop) { this.hasBackdrop = _hasBackdrop; }\n    /**\n     * The associated overlay reference.\n     * @return {?}\n     */\n    get overlayRef() {\n        return this._overlayRef;\n    }\n    /**\n     * The element's layout direction.\n     * @return {?}\n     */\n    get dir() {\n        return this._dir ? this._dir.value : 'ltr';\n    }\n    /**\n     * @return {?}\n     */\n    ngOnDestroy() {\n        this._destroyOverlay();\n    }\n    /**\n     * @param {?} changes\n     * @return {?}\n     */\n    ngOnChanges(changes) {\n        if (changes['open'] || changes['_deprecatedOpen']) {\n            this.open ? this._attachOverlay() : this._detachOverlay();\n        }\n    }\n    /**\n     * Creates an overlay\n     * @return {?}\n
      */\n    _createOverlay() {\n        if (!this.positions || !this.positions.length) {\n            this.positions = defaultPositionList;\n        }\n        this._overlayRef = this._overlay.create(this._buildConfig());\n    }\n    /**\n     * Builds the overlay config based on the directive's inputs\n     * @return {?}\n     */\n    _buildConfig() {\n        const /** @type {?} */ positionStrategy = this._position = this._createPositionStrategy();\n        const /** @type {?} */ overlayConfig = new OverlayConfig({\n            positionStrategy,\n            scrollStrategy: this.scrollStrategy,\n            hasBackdrop: this.hasBackdrop\n        });\n        if (this.width || this.width === 0) {\n            overlayConfig.width = this.width;\n        }\n        if (this.height || this.height === 0) {\n            overlayConfig.height = this.height;\n        }\n        if (this.minWidth || this.minWidth === 0) {\n            overlayConfig.minWidth = this.minWidth;\n        }\n    
     if (this.minHeight || this.minHeight === 0) {\n            overlayConfig.minHeight = this.minHeight;\n        }\n        if (this.backdropClass) {\n            overlayConfig.backdropClass = this.backdropClass;\n        }\n        return overlayConfig;\n    }\n    /**\n     * Returns the position strategy of the overlay to be set on the overlay config\n     * @return {?}\n     */\n    _createPositionStrategy() {\n        const /** @type {?} */ pos = this.positions[0];\n        const /** @type {?} */ originPoint = { originX: pos.originX, originY: pos.originY };\n        const /** @type {?} */ overlayPoint = { overlayX: pos.overlayX, overlayY: pos.overlayY };\n        const /** @type {?} */ strategy = this._overlay.position()\n            .connectedTo(this.origin.elementRef, originPoint, overlayPoint)\n            .withOffsetX(this.offsetX)\n            .withOffsetY(this.offsetY);\n        this._handlePositionChanges(strategy);\n        return strategy;\n    }\n    /**\n     * @par
 am {?} strategy\n     * @return {?}\n     */\n    _handlePositionChanges(strategy) {\n        for (let /** @type {?} */ i = 1; i < this.positions.length; i++) {\n            strategy.withFallbackPosition({ originX: this.positions[i].originX, originY: this.positions[i].originY }, { overlayX: this.positions[i].overlayX, overlayY: this.positions[i].overlayY });\n        }\n        this._positionSubscription =\n            strategy.onPositionChange.subscribe(pos => this.positionChange.emit(pos));\n    }\n    /**\n     * Attaches the overlay and subscribes to backdrop clicks if backdrop exists\n     * @return {?}\n     */\n    _attachOverlay() {\n        if (!this._overlayRef) {\n            this._createOverlay();\n        }\n        this._position.withDirection(this.dir);\n        this._overlayRef.getConfig().direction = this.dir;\n        this._initEscapeListener();\n        if (!this._overlayRef.hasAttached()) {\n            this._overlayRef.attach(this._templatePortal);\n            
 this.attach.emit();\n        }\n        if (this.hasBackdrop) {\n            this._backdropSubscription = this._overlayRef.backdropClick().subscribe(() => {\n                this.backdropClick.emit();\n            });\n        }\n    }\n    /**\n     * Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists\n     * @return {?}\n     */\n    _detachOverlay() {\n        if (this._overlayRef) {\n            this._overlayRef.detach();\n            this.detach.emit();\n        }\n        this._backdropSubscription.unsubscribe();\n        this._escapeListener();\n    }\n    /**\n     * Destroys the overlay created by this directive.\n     * @return {?}\n     */\n    _destroyOverlay() {\n        if (this._overlayRef) {\n            this._overlayRef.dispose();\n        }\n        this._backdropSubscription.unsubscribe();\n        this._positionSubscription.unsubscribe();\n        this._escapeListener();\n    }\n    /**\n     * Sets the event listener that closes the over
 lay when pressing Escape.\n     * @return {?}\n     */\n    _initEscapeListener() {\n        this._escapeListener = this._renderer.listen('document', 'keydown', (event) => {\n            if (event.keyCode === ESCAPE) {\n                this._detachOverlay();\n            }\n        });\n    }\n}\nConnectedOverlayDirective.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',\n                exportAs: 'cdkConnectedOverlay'\n            },] },\n];\n/**\n * @nocollapse\n */\nConnectedOverlayDirective.ctorParameters = () => [\n    { type: Overlay, },\n    { type: Renderer2, },\n    { type: TemplateRef, },\n    { type: ViewContainerRef, },\n    { type: undefined, decorators: [{ type: Inject, args: [MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY,] },] },\n    { type: Directionality, decorators: [{ type: Optional },] },\n];\nConnectedOverlayDirective.propDecorators = {\n    'origin': [{ type: Input, args: [
 'cdkConnectedOverlayOrigin',] },],\n    'positions': [{ type: Input, args: ['cdkConnectedOverlayPositions',] },],\n    'offsetX': [{ type: Input, args: ['cdkConnectedOverlayOffsetX',] },],\n    'offsetY': [{ type: Input, args: ['cdkConnectedOverlayOffsetY',] },],\n    'width': [{ type: Input, args: ['cdkConnectedOverlayWidth',] },],\n    'height': [{ type: Input, args: ['cdkConnectedOverlayHeight',] },],\n    'minWidth': [{ type: Input, args: ['cdkConnectedOverlayMinWidth',] },],\n    'minHeight': [{ type: Input, args: ['cdkConnectedOverlayMinHeight',] },],\n    'backdropClass': [{ type: Input, args: ['cdkConnectedOverlayBackdropClass',] },],\n    'scrollStrategy': [{ type: Input, args: ['cdkConnectedOverlayScrollStrategy',] },],\n    'open': [{ type: Input, args: ['cdkConnectedOverlayOpen',] },],\n    'hasBackdrop': [{ type: Input, args: ['cdkConnectedOverlayHasBackdrop',] },],\n    '_deprecatedOrigin': [{ type: Input, args: ['origin',] },],\n    '_deprecatedPositions': [{ type: In
 put, args: ['positions',] },],\n    '_deprecatedOffsetX': [{ type: Input, args: ['offsetX',] },],\n    '_deprecatedOffsetY': [{ type: Input, args: ['offsetY',] },],\n    '_deprecatedWidth': [{ type: Input, args: ['width',] },],\n    '_deprecatedHeight': [{ type: Input, args: ['height',] },],\n    '_deprecatedMinWidth': [{ type: Input, args: ['minWidth',] },],\n    '_deprecatedMinHeight': [{ type: Input, args: ['minHeight',] },],\n    '_deprecatedBackdropClass': [{ type: Input, args: ['backdropClass',] },],\n    '_deprecatedScrollStrategy': [{ type: Input, args: ['scrollStrategy',] },],\n    '_deprecatedOpen': [{ type: Input, args: ['open',] },],\n    '_deprecatedHasBackdrop': [{ type: Input, args: ['hasBackdrop',] },],\n    'backdropClick': [{ type: Output },],\n    'positionChange': [{ type: Output },],\n    'attach': [{ type: Output },],\n    'detach': [{ type: Output },],\n};\nfunction ConnectedOverlayDirective_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Connected
 OverlayDirective.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ConnectedOverlayDirective.ctorParameters;\n    /** @type {?} */\n    ConnectedOverlayDirective.propDecorators;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._overlayRef;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._templatePortal;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._hasBackdrop;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._backdropSubscription;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._positionSubscription;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._offsetX;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._offsetY;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._position;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._escapeListener;\n    /**\n     * Origin for the connected overlay.\n     * @type {?}\n     */\n    Connecte
 dOverlayDirective.prototype.origin;\n    /**\n     * Registered connected position pairs.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.positions;\n    /**\n     * The width of the overlay panel.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.width;\n    /**\n     * The height of the overlay panel.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.height;\n    /**\n     * The min width of the overlay panel.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.minWidth;\n    /**\n     * The min height of the overlay panel.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.minHeight;\n    /**\n     * The custom class to be set on the backdrop element.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.backdropClass;\n    /**\n     * Strategy to be used when handling scroll events while the overlay is open.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.sc
 rollStrategy;\n    /**\n     * Whether the overlay is open.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.open;\n    /**\n     * Event emitted when the backdrop is clicked.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.backdropClick;\n    /**\n     * Event emitted when the position has changed.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.positionChange;\n    /**\n     * Event emitted when the overlay has been attached.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.attach;\n    /**\n     * Event emitted when the overlay has been detached.\n     * @type {?}\n     */\n    ConnectedOverlayDirective.prototype.detach;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._overlay;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._renderer;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototype._scrollStrategy;\n    /** @type {?} */\n    ConnectedOverlayDirective.prototy
 pe._dir;\n}\n//# sourceMappingURL=overlay-directives.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 { PortalModule } from '@angular/cdk/portal';\nimport { Overlay } from './overlay';\nimport { ScrollDispatchModule, VIEWPORT_RULER_PROVIDER } from '@angular/cdk/scrolling';\nimport { ConnectedOverlayDirective, MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER, OverlayOrigin, } from './overlay-directives';\nimport { OverlayPositionBuilder } from './position/overlay-position-builder';\nimport { OVERLAY_CONTAINER_PROVIDER } from './overlay-container';\nimport { ScrollStrategyOptions } from './scroll/scroll-strategy-options';\nexport const /** @type {?} */ OVERLAY_PROVIDERS = [\n    Overlay,\n    OverlayPositionBuilder,\n    VIEWPORT_RULER_PROVIDER,\n    OVERLAY_CONTAINER_PR
 OVIDER,\n    MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,\n];\nexport class OverlayModule {\n}\nOverlayModule.decorators = [\n    { type: NgModule, args: [{\n                imports: [PortalModule, ScrollDispatchModule],\n                exports: [ConnectedOverlayDirective, OverlayOrigin, ScrollDispatchModule],\n               

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_ast.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_ast.metadata.json b/node_modules/@angular/animations/browser/src/dsl/animation_ast.metadata.json
new file mode 100644
index 0000000..043cfe4
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_ast.metadata.json
@@ -0,0 +1 @@
+[{"__symbolic":"module","version":3,"metadata":{"AstVisitor":{"__symbolic":"interface"},"Ast":{"__symbolic":"interface"},"TriggerAst":{"__symbolic":"interface"},"StateAst":{"__symbolic":"interface"},"TransitionAst":{"__symbolic":"interface"},"SequenceAst":{"__symbolic":"interface"},"GroupAst":{"__symbolic":"interface"},"AnimateAst":{"__symbolic":"interface"},"StyleAst":{"__symbolic":"interface"},"KeyframesAst":{"__symbolic":"interface"},"ReferenceAst":{"__symbolic":"interface"},"AnimateChildAst":{"__symbolic":"interface"},"AnimateRefAst":{"__symbolic":"interface"},"QueryAst":{"__symbolic":"interface"},"StaggerAst":{"__symbolic":"interface"},"TimingAst":{"__symbolic":"interface"},"DynamicTimingAst":{"__symbolic":"interface"}}},{"__symbolic":"module","version":1,"metadata":{"AstVisitor":{"__symbolic":"interface"},"Ast":{"__symbolic":"interface"},"TriggerAst":{"__symbolic":"interface"},"StateAst":{"__symbolic":"interface"},"TransitionAst":{"__symbolic":"interface"},"SequenceAst":{"__sy
 mbolic":"interface"},"GroupAst":{"__symbolic":"interface"},"AnimateAst":{"__symbolic":"interface"},"StyleAst":{"__symbolic":"interface"},"KeyframesAst":{"__symbolic":"interface"},"ReferenceAst":{"__symbolic":"interface"},"AnimateChildAst":{"__symbolic":"interface"},"AnimateRefAst":{"__symbolic":"interface"},"QueryAst":{"__symbolic":"interface"},"StaggerAst":{"__symbolic":"interface"},"TimingAst":{"__symbolic":"interface"},"DynamicTimingAst":{"__symbolic":"interface"}}}]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_ast_builder.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_ast_builder.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation_ast_builder.d.ts
new file mode 100644
index 0000000..501a9c5
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_ast_builder.d.ts
@@ -0,0 +1,51 @@
+/**
+ * @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 { AnimationAnimateChildMetadata, AnimationAnimateMetadata, AnimationAnimateRefMetadata, AnimationGroupMetadata, AnimationKeyframesSequenceMetadata, AnimationMetadata, AnimationMetadataType, AnimationOptions, AnimationQueryMetadata, AnimationReferenceMetadata, AnimationSequenceMetadata, AnimationStaggerMetadata, AnimationStateMetadata, AnimationStyleMetadata, AnimationTransitionMetadata, AnimationTriggerMetadata } from '@angular/animations';
+import { AnimateAst, AnimateChildAst, AnimateRefAst, Ast, GroupAst, KeyframesAst, QueryAst, ReferenceAst, SequenceAst, StaggerAst, StateAst, StyleAst, TimingAst, TransitionAst, TriggerAst } from './animation_ast';
+import { AnimationDslVisitor } from './animation_dsl_visitor';
+export declare function buildAnimationAst(metadata: AnimationMetadata | AnimationMetadata[], errors: any[]): Ast<AnimationMetadataType>;
+export declare class AnimationAstBuilderVisitor implements AnimationDslVisitor {
+    build(metadata: AnimationMetadata | AnimationMetadata[], errors: any[]): Ast<AnimationMetadataType>;
+    private _resetContextStyleTimingState(context);
+    visitTrigger(metadata: AnimationTriggerMetadata, context: AnimationAstBuilderContext): TriggerAst;
+    visitState(metadata: AnimationStateMetadata, context: AnimationAstBuilderContext): StateAst;
+    visitTransition(metadata: AnimationTransitionMetadata, context: AnimationAstBuilderContext): TransitionAst;
+    visitSequence(metadata: AnimationSequenceMetadata, context: AnimationAstBuilderContext): SequenceAst;
+    visitGroup(metadata: AnimationGroupMetadata, context: AnimationAstBuilderContext): GroupAst;
+    visitAnimate(metadata: AnimationAnimateMetadata, context: AnimationAstBuilderContext): AnimateAst;
+    visitStyle(metadata: AnimationStyleMetadata, context: AnimationAstBuilderContext): StyleAst;
+    private _makeStyleAst(metadata, context);
+    private _validateStyleAst(ast, context);
+    visitKeyframes(metadata: AnimationKeyframesSequenceMetadata, context: AnimationAstBuilderContext): KeyframesAst;
+    visitReference(metadata: AnimationReferenceMetadata, context: AnimationAstBuilderContext): ReferenceAst;
+    visitAnimateChild(metadata: AnimationAnimateChildMetadata, context: AnimationAstBuilderContext): AnimateChildAst;
+    visitAnimateRef(metadata: AnimationAnimateRefMetadata, context: AnimationAstBuilderContext): AnimateRefAst;
+    visitQuery(metadata: AnimationQueryMetadata, context: AnimationAstBuilderContext): QueryAst;
+    visitStagger(metadata: AnimationStaggerMetadata, context: AnimationAstBuilderContext): StaggerAst;
+}
+export declare type StyleTimeTuple = {
+    startTime: number;
+    endTime: number;
+};
+export declare class AnimationAstBuilderContext {
+    errors: any[];
+    queryCount: number;
+    depCount: number;
+    currentTransition: AnimationTransitionMetadata | null;
+    currentQuery: AnimationQueryMetadata | null;
+    currentQuerySelector: string | null;
+    currentAnimateTimings: TimingAst | null;
+    currentTime: number;
+    collectedStyles: {
+        [selectorName: string]: {
+            [propName: string]: StyleTimeTuple;
+        };
+    };
+    options: AnimationOptions | null;
+    constructor(errors: any[]);
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_dsl_visitor.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_dsl_visitor.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation_dsl_visitor.d.ts
new file mode 100644
index 0000000..ef85b6b
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_dsl_visitor.d.ts
@@ -0,0 +1,23 @@
+/**
+ * @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 { AnimationAnimateChildMetadata, AnimationAnimateMetadata, AnimationAnimateRefMetadata, AnimationGroupMetadata, AnimationKeyframesSequenceMetadata, AnimationQueryMetadata, AnimationReferenceMetadata, AnimationSequenceMetadata, AnimationStaggerMetadata, AnimationStateMetadata, AnimationStyleMetadata, AnimationTransitionMetadata, AnimationTriggerMetadata } from '@angular/animations';
+export interface AnimationDslVisitor {
+    visitTrigger(node: AnimationTriggerMetadata, context: any): any;
+    visitState(node: AnimationStateMetadata, context: any): any;
+    visitTransition(node: AnimationTransitionMetadata, context: any): any;
+    visitSequence(node: AnimationSequenceMetadata, context: any): any;
+    visitGroup(node: AnimationGroupMetadata, context: any): any;
+    visitAnimate(node: AnimationAnimateMetadata, context: any): any;
+    visitStyle(node: AnimationStyleMetadata, context: any): any;
+    visitKeyframes(node: AnimationKeyframesSequenceMetadata, context: any): any;
+    visitReference(node: AnimationReferenceMetadata, context: any): any;
+    visitAnimateChild(node: AnimationAnimateChildMetadata, context: any): any;
+    visitAnimateRef(node: AnimationAnimateRefMetadata, context: any): any;
+    visitQuery(node: AnimationQueryMetadata, context: any): any;
+    visitStagger(node: AnimationStaggerMetadata, context: any): any;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_dsl_visitor.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_dsl_visitor.metadata.json b/node_modules/@angular/animations/browser/src/dsl/animation_dsl_visitor.metadata.json
new file mode 100644
index 0000000..ea73ee4
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_dsl_visitor.metadata.json
@@ -0,0 +1 @@
+[{"__symbolic":"module","version":3,"metadata":{"AnimationDslVisitor":{"__symbolic":"interface"}}},{"__symbolic":"module","version":1,"metadata":{"AnimationDslVisitor":{"__symbolic":"interface"}}}]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_timeline_builder.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_timeline_builder.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation_timeline_builder.d.ts
new file mode 100644
index 0000000..4c5d3db
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_timeline_builder.d.ts
@@ -0,0 +1,98 @@
+/**
+ * @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 { AnimateTimings, AnimationMetadataType, AnimationOptions, ɵStyleData } from '@angular/animations';
+import { AnimationDriver } from '../render/animation_driver';
+import { AnimateAst, AnimateChildAst, AnimateRefAst, Ast, AstVisitor, GroupAst, KeyframesAst, QueryAst, ReferenceAst, SequenceAst, StaggerAst, StateAst, StyleAst, TransitionAst, TriggerAst } from './animation_ast';
+import { AnimationTimelineInstruction } from './animation_timeline_instruction';
+import { ElementInstructionMap } from './element_instruction_map';
+export declare function buildAnimationTimelines(driver: AnimationDriver, rootElement: any, ast: Ast<AnimationMetadataType>, startingStyles: ɵStyleData | undefined, finalStyles: ɵStyleData | undefined, options: AnimationOptions, subInstructions?: ElementInstructionMap, errors?: any[]): AnimationTimelineInstruction[];
+export declare class AnimationTimelineBuilderVisitor implements AstVisitor {
+    buildKeyframes(driver: AnimationDriver, rootElement: any, ast: Ast<AnimationMetadataType>, startingStyles: ɵStyleData, finalStyles: ɵStyleData, options: AnimationOptions, subInstructions?: ElementInstructionMap, errors?: any[]): AnimationTimelineInstruction[];
+    visitTrigger(ast: TriggerAst, context: AnimationTimelineContext): any;
+    visitState(ast: StateAst, context: AnimationTimelineContext): any;
+    visitTransition(ast: TransitionAst, context: AnimationTimelineContext): any;
+    visitAnimateChild(ast: AnimateChildAst, context: AnimationTimelineContext): any;
+    visitAnimateRef(ast: AnimateRefAst, context: AnimationTimelineContext): any;
+    private _visitSubInstructions(instructions, context, options);
+    visitReference(ast: ReferenceAst, context: AnimationTimelineContext): void;
+    visitSequence(ast: SequenceAst, context: AnimationTimelineContext): void;
+    visitGroup(ast: GroupAst, context: AnimationTimelineContext): void;
+    private _visitTiming(ast, context);
+    visitAnimate(ast: AnimateAst, context: AnimationTimelineContext): void;
+    visitStyle(ast: StyleAst, context: AnimationTimelineContext): void;
+    visitKeyframes(ast: KeyframesAst, context: AnimationTimelineContext): void;
+    visitQuery(ast: QueryAst, context: AnimationTimelineContext): void;
+    visitStagger(ast: StaggerAst, context: AnimationTimelineContext): void;
+}
+export declare type StyleAtTime = {
+    time: number;
+    value: string | number;
+};
+export declare class AnimationTimelineContext {
+    private _driver;
+    element: any;
+    subInstructions: ElementInstructionMap;
+    errors: any[];
+    timelines: TimelineBuilder[];
+    parentContext: AnimationTimelineContext | null;
+    currentTimeline: TimelineBuilder;
+    currentAnimateTimings: AnimateTimings | null;
+    previousNode: Ast<AnimationMetadataType>;
+    subContextCount: number;
+    options: AnimationOptions;
+    currentQueryIndex: number;
+    currentQueryTotal: number;
+    currentStaggerTime: number;
+    constructor(_driver: AnimationDriver, element: any, subInstructions: ElementInstructionMap, errors: any[], timelines: TimelineBuilder[], initialTimeline?: TimelineBuilder);
+    readonly params: {
+        [name: string]: any;
+    } | undefined;
+    updateOptions(options: AnimationOptions | null, skipIfExists?: boolean): void;
+    private _copyOptions();
+    createSubContext(options?: AnimationOptions | null, element?: any, newTime?: number): AnimationTimelineContext;
+    transformIntoNewTimeline(newTime?: number): TimelineBuilder;
+    appendInstructionToTimeline(instruction: AnimationTimelineInstruction, duration: number | null, delay: number | null): AnimateTimings;
+    incrementTime(time: number): void;
+    delayNextStep(delay: number): void;
+    invokeQuery(selector: string, originalSelector: string, limit: number, includeSelf: boolean, optional: boolean, errors: any[]): any[];
+}
+export declare class TimelineBuilder {
+    element: any;
+    startTime: number;
+    private _elementTimelineStylesLookup;
+    duration: number;
+    easing: string | null;
+    private _previousKeyframe;
+    private _currentKeyframe;
+    private _keyframes;
+    private _styleSummary;
+    private _localTimelineStyles;
+    private _globalTimelineStyles;
+    private _pendingStyles;
+    private _backFill;
+    private _currentEmptyStepKeyframe;
+    constructor(element: any, startTime: number, _elementTimelineStylesLookup?: Map<any, ɵStyleData>);
+    containsAnimation(): boolean;
+    getCurrentStyleProperties(): string[];
+    readonly currentTime: number;
+    delayNextStep(delay: number): void;
+    fork(element: any, currentTime?: number): TimelineBuilder;
+    private _loadKeyframe();
+    forwardFrame(): void;
+    forwardTime(time: number): void;
+    private _updateStyle(prop, value);
+    allowOnlyTimelineStyles(): boolean;
+    applyEmptyStep(easing: string | null): void;
+    setStyles(input: (ɵStyleData | string)[], easing: string | null, errors: any[], options?: AnimationOptions): void;
+    applyStylesToKeyframe(): void;
+    snapshotCurrentStyles(): void;
+    getFinalKeyframe(): ɵStyleData | undefined;
+    readonly properties: string[];
+    mergeTimelineCollectedStyles(timeline: TimelineBuilder): void;
+    buildKeyframes(): AnimationTimelineInstruction;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_timeline_instruction.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_timeline_instruction.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation_timeline_instruction.d.ts
new file mode 100644
index 0000000..39ca3e2
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_timeline_instruction.d.ts
@@ -0,0 +1,22 @@
+/**
+ * @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 { ɵStyleData } from '@angular/animations';
+import { AnimationEngineInstruction } from '../render/animation_engine_instruction';
+export interface AnimationTimelineInstruction extends AnimationEngineInstruction {
+    element: any;
+    keyframes: ɵStyleData[];
+    preStyleProps: string[];
+    postStyleProps: string[];
+    duration: number;
+    delay: number;
+    totalTime: number;
+    easing: string | null;
+    stretchStartingKeyframe?: boolean;
+    subTimeline: boolean;
+}
+export declare function createTimelineInstruction(element: any, keyframes: ɵStyleData[], preStyleProps: string[], postStyleProps: string[], duration: number, delay: number, easing?: string | null, subTimeline?: boolean): AnimationTimelineInstruction;

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_transition_expr.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_transition_expr.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation_transition_expr.d.ts
new file mode 100644
index 0000000..c0aaaf9
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_transition_expr.d.ts
@@ -0,0 +1,10 @@
+/**
+ * @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
+ */
+export declare const ANY_STATE = "*";
+export declare type TransitionMatcherFn = (fromState: any, toState: any) => boolean;
+export declare function parseTransitionExpr(transitionValue: string | TransitionMatcherFn, errors: string[]): TransitionMatcherFn[];

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_transition_factory.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_transition_factory.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation_transition_factory.d.ts
new file mode 100644
index 0000000..805df4a
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_transition_factory.d.ts
@@ -0,0 +1,35 @@
+/**
+ * @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 { AnimationOptions, ɵStyleData } from '@angular/animations';
+import { AnimationDriver } from '../render/animation_driver';
+import { StyleAst, TransitionAst } from './animation_ast';
+import { AnimationTransitionInstruction } from './animation_transition_instruction';
+import { ElementInstructionMap } from './element_instruction_map';
+export declare class AnimationTransitionFactory {
+    private _triggerName;
+    ast: TransitionAst;
+    private _stateStyles;
+    constructor(_triggerName: string, ast: TransitionAst, _stateStyles: {
+        [stateName: string]: AnimationStateStyles;
+    });
+    match(currentState: any, nextState: any): boolean;
+    buildStyles(stateName: string, params: {
+        [key: string]: any;
+    }, errors: any[]): ɵStyleData;
+    build(driver: AnimationDriver, element: any, currentState: any, nextState: any, currentOptions?: AnimationOptions, nextOptions?: AnimationOptions, subInstructions?: ElementInstructionMap): AnimationTransitionInstruction;
+}
+export declare class AnimationStateStyles {
+    private styles;
+    private defaultParams;
+    constructor(styles: StyleAst, defaultParams: {
+        [key: string]: any;
+    });
+    buildStyles(params: {
+        [key: string]: any;
+    }, errors: string[]): ɵStyleData;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_transition_instruction.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_transition_instruction.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation_transition_instruction.d.ts
new file mode 100644
index 0000000..913bcd2
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_transition_instruction.d.ts
@@ -0,0 +1,33 @@
+/**
+ * @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 { ɵStyleData } from '@angular/animations';
+import { AnimationEngineInstruction } from '../render/animation_engine_instruction';
+import { AnimationTimelineInstruction } from './animation_timeline_instruction';
+export interface AnimationTransitionInstruction extends AnimationEngineInstruction {
+    element: any;
+    triggerName: string;
+    isRemovalTransition: boolean;
+    fromState: string;
+    fromStyles: ɵStyleData;
+    toState: string;
+    toStyles: ɵStyleData;
+    timelines: AnimationTimelineInstruction[];
+    queriedElements: any[];
+    preStyleProps: Map<any, {
+        [prop: string]: boolean;
+    }>;
+    postStyleProps: Map<any, {
+        [prop: string]: boolean;
+    }>;
+    errors?: any[];
+}
+export declare function createTransitionInstruction(element: any, triggerName: string, fromState: string, toState: string, isRemovalTransition: boolean, fromStyles: ɵStyleData, toStyles: ɵStyleData, timelines: AnimationTimelineInstruction[], queriedElements: any[], preStyleProps: Map<any, {
+    [prop: string]: boolean;
+}>, postStyleProps: Map<any, {
+    [prop: string]: boolean;
+}>, errors?: any[]): AnimationTransitionInstruction;

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_trigger.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_trigger.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation_trigger.d.ts
new file mode 100644
index 0000000..3188bab
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_trigger.d.ts
@@ -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
+ */
+import { ɵStyleData } from '@angular/animations';
+import { TriggerAst } from './animation_ast';
+import { AnimationStateStyles, AnimationTransitionFactory } from './animation_transition_factory';
+/**
+ * @experimental Animation support is experimental.
+ */
+export declare function buildTrigger(name: string, ast: TriggerAst): AnimationTrigger;
+/**
+* @experimental Animation support is experimental.
+*/
+export declare class AnimationTrigger {
+    name: string;
+    ast: TriggerAst;
+    transitionFactories: AnimationTransitionFactory[];
+    fallbackTransition: AnimationTransitionFactory;
+    states: {
+        [stateName: string]: AnimationStateStyles;
+    };
+    constructor(name: string, ast: TriggerAst);
+    readonly containsQueries: boolean;
+    matchTransition(currentState: any, nextState: any): AnimationTransitionFactory | null;
+    matchStyles(currentState: any, params: {
+        [key: string]: any;
+    }, errors: any[]): ɵStyleData;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/element_instruction_map.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/element_instruction_map.d.ts b/node_modules/@angular/animations/browser/src/dsl/element_instruction_map.d.ts
new file mode 100644
index 0000000..d1ee73d
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/element_instruction_map.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @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 { AnimationTimelineInstruction } from './animation_timeline_instruction';
+export declare class ElementInstructionMap {
+    private _map;
+    consume(element: any): AnimationTimelineInstruction[];
+    append(element: any, instructions: AnimationTimelineInstruction[]): void;
+    has(element: any): boolean;
+    clear(): void;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/style_normalization/animation_style_normalizer.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/style_normalization/animation_style_normalizer.d.ts b/node_modules/@angular/animations/browser/src/dsl/style_normalization/animation_style_normalizer.d.ts
new file mode 100644
index 0000000..ecc247b
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/style_normalization/animation_style_normalizer.d.ts
@@ -0,0 +1,21 @@
+/**
+ * @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
+ */
+/**
+ * @experimental Animation support is experimental.
+ */
+export declare abstract class AnimationStyleNormalizer {
+    abstract normalizePropertyName(propertyName: string, errors: string[]): string;
+    abstract normalizeStyleValue(userProvidedProperty: string, normalizedProperty: string, value: string | number, errors: string[]): string;
+}
+/**
+ * @experimental Animation support is experimental.
+ */
+export declare class NoopAnimationStyleNormalizer {
+    normalizePropertyName(propertyName: string, errors: string[]): string;
+    normalizeStyleValue(userProvidedProperty: string, normalizedProperty: string, value: string | number, errors: string[]): string;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/style_normalization/animation_style_normalizer.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/style_normalization/animation_style_normalizer.metadata.json b/node_modules/@angular/animations/browser/src/dsl/style_normalization/animation_style_normalizer.metadata.json
new file mode 100644
index 0000000..7264fff
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/style_normalization/animation_style_normalizer.metadata.json
@@ -0,0 +1 @@
+[{"__symbolic":"module","version":3,"metadata":{"AnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"NoopAnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"AnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"NoopAnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}}}}]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/style_normalization/web_animations_style_normalizer.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/style_normalization/web_animations_style_normalizer.d.ts b/node_modules/@angular/animations/browser/src/dsl/style_normalization/web_animations_style_normalizer.d.ts
new file mode 100644
index 0000000..40de3b3
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/style_normalization/web_animations_style_normalizer.d.ts
@@ -0,0 +1,5 @@
+import { AnimationStyleNormalizer } from './animation_style_normalizer';
+export declare class WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {
+    normalizePropertyName(propertyName: string, errors: string[]): string;
+    normalizeStyleValue(userProvidedProperty: string, normalizedProperty: string, value: string | number, errors: string[]): string;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/private_export.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/private_export.d.ts b/node_modules/@angular/animations/browser/src/private_export.d.ts
new file mode 100644
index 0000000..9b488e5
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/private_export.d.ts
@@ -0,0 +1,14 @@
+/**
+ * @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
+ */
+export { Animation as ɵAnimation } from './dsl/animation';
+export { AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer } from './dsl/style_normalization/animation_style_normalizer';
+export { WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer } from './dsl/style_normalization/web_animations_style_normalizer';
+export { NoopAnimationDriver as ɵNoopAnimationDriver } from './render/animation_driver';
+export { AnimationEngine as ɵAnimationEngine } from './render/animation_engine_next';
+export { WebAnimationsDriver as ɵWebAnimationsDriver, supportsWebAnimations as ɵsupportsWebAnimations } from './render/web_animations/web_animations_driver';
+export { WebAnimationsPlayer as ɵWebAnimationsPlayer } from './render/web_animations/web_animations_player';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/render/animation_driver.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/render/animation_driver.d.ts b/node_modules/@angular/animations/browser/src/render/animation_driver.d.ts
new file mode 100644
index 0000000..ea15a04
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/render/animation_driver.d.ts
@@ -0,0 +1,33 @@
+/**
+ * @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 { AnimationPlayer } from '@angular/animations';
+/**
+ * @experimental
+ */
+export declare class NoopAnimationDriver implements AnimationDriver {
+    matchesElement(element: any, selector: string): boolean;
+    containsElement(elm1: any, elm2: any): boolean;
+    query(element: any, selector: string, multi: boolean): any[];
+    computeStyle(element: any, prop: string, defaultValue?: string): string;
+    animate(element: any, keyframes: {
+        [key: string]: string | number;
+    }[], duration: number, delay: number, easing: string, previousPlayers?: any[]): AnimationPlayer;
+}
+/**
+ * @experimental
+ */
+export declare abstract class AnimationDriver {
+    static NOOP: AnimationDriver;
+    abstract matchesElement(element: any, selector: string): boolean;
+    abstract containsElement(elm1: any, elm2: any): boolean;
+    abstract query(element: any, selector: string, multi: boolean): any[];
+    abstract computeStyle(element: any, prop: string, defaultValue?: string): string;
+    abstract animate(element: any, keyframes: {
+        [key: string]: string | number;
+    }[], duration: number, delay: number, easing?: string | null, previousPlayers?: any[]): any;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/render/animation_driver.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/render/animation_driver.metadata.json b/node_modules/@angular/animations/browser/src/render/animation_driver.metadata.json
new file mode 100644
index 0000000..15760d1
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/render/animation_driver.metadata.json
@@ -0,0 +1 @@
+[{"__symbolic":"module","version":3,"metadata":{"NoopAnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]}},"AnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]},"statics":{"NOOP":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NoopAnimationDriver"}}}}}},{"__symbolic":"module","version":1,"metadata":{"NoopAnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]}},"AnimationDriver":{"__symbolic
 ":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]},"statics":{"NOOP":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NoopAnimationDriver"}}}}}}]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/render/animation_engine_instruction.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/render/animation_engine_instruction.d.ts b/node_modules/@angular/animations/browser/src/render/animation_engine_instruction.d.ts
new file mode 100644
index 0000000..a04461d
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/render/animation_engine_instruction.d.ts
@@ -0,0 +1,14 @@
+/**
+ * @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
+ */
+export declare const enum AnimationTransitionInstructionType {
+    TransitionAnimation = 0,
+    TimelineAnimation = 1,
+}
+export interface AnimationEngineInstruction {
+    type: AnimationTransitionInstructionType;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/render/animation_engine_next.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/render/animation_engine_next.d.ts b/node_modules/@angular/animations/browser/src/render/animation_engine_next.d.ts
new file mode 100644
index 0000000..810121f
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/render/animation_engine_next.d.ts
@@ -0,0 +1,28 @@
+/**
+ * @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 { AnimationPlayer, AnimationTriggerMetadata } from '@angular/animations';
+import { AnimationStyleNormalizer } from '../dsl/style_normalization/animation_style_normalizer';
+import { AnimationDriver } from './animation_driver';
+export declare class AnimationEngine {
+    private _transitionEngine;
+    private _timelineEngine;
+    private _triggerCache;
+    onRemovalComplete: (element: any, context: any) => void;
+    constructor(driver: AnimationDriver, normalizer: AnimationStyleNormalizer);
+    registerTrigger(componentId: string, namespaceId: string, hostElement: any, name: string, metadata: AnimationTriggerMetadata): void;
+    register(namespaceId: string, hostElement: any): void;
+    destroy(namespaceId: string, context: any): void;
+    onInsert(namespaceId: string, element: any, parent: any, insertBefore: boolean): void;
+    onRemove(namespaceId: string, element: any, context: any): void;
+    disableAnimations(element: any, disable: boolean): void;
+    process(namespaceId: string, element: any, property: string, value: any): void;
+    listen(namespaceId: string, element: any, eventName: string, eventPhase: string, callback: (event: any) => any): () => any;
+    flush(microtaskId?: number): void;
+    readonly players: AnimationPlayer[];
+    whenRenderingDone(): Promise<any>;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/render/shared.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/render/shared.d.ts b/node_modules/@angular/animations/browser/src/render/shared.d.ts
new file mode 100644
index 0000000..59af308
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/render/shared.d.ts
@@ -0,0 +1,22 @@
+/**
+ * @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 { AnimationEvent, AnimationPlayer, ɵStyleData } from '@angular/animations';
+import { AnimationStyleNormalizer } from '../../src/dsl/style_normalization/animation_style_normalizer';
+import { AnimationDriver } from '../../src/render/animation_driver';
+export declare function optimizeGroupPlayer(players: AnimationPlayer[]): AnimationPlayer;
+export declare function normalizeKeyframes(driver: AnimationDriver, normalizer: AnimationStyleNormalizer, element: any, keyframes: ɵStyleData[], preStyles?: ɵStyleData, postStyles?: ɵStyleData): ɵStyleData[];
+export declare function listenOnPlayer(player: AnimationPlayer, eventName: string, event: AnimationEvent | undefined, callback: (event: any) => any): void;
+export declare function copyAnimationEvent(e: AnimationEvent, phaseName?: string, totalTime?: number): AnimationEvent;
+export declare function makeAnimationEvent(element: any, triggerName: string, fromState: string, toState: string, phaseName?: string, totalTime?: number): AnimationEvent;
+export declare function getOrSetAsInMap(map: Map<any, any> | {
+    [key: string]: any;
+}, key: any, defaultValue: any): any;
+export declare function parseTimelineCommand(command: string): [string, string];
+export declare const matchesElement: (element: any, selector: string) => boolean;
+export declare const containsElement: (elm1: any, elm2: any) => boolean;
+export declare const invokeQuery: (element: any, selector: string, multi: boolean) => any[];

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/render/shared.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/render/shared.metadata.json b/node_modules/@angular/animations/browser/src/render/shared.metadata.json
new file mode 100644
index 0000000..0ee5236
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/render/shared.metadata.json
@@ -0,0 +1 @@
+[{"__symbolic":"module","version":3,"metadata":{"optimizeGroupPlayer":{"__symbolic":"function"},"normalizeKeyframes":{"__symbolic":"function"},"listenOnPlayer":{"__symbolic":"function"},"copyAnimationEvent":{"__symbolic":"function"},"makeAnimationEvent":{"__symbolic":"function","parameters":["element","triggerName","fromState","toState","phaseName","totalTime"],"value":{"element":{"__symbolic":"reference","name":"element"},"triggerName":{"__symbolic":"reference","name":"triggerName"},"fromState":{"__symbolic":"reference","name":"fromState"},"toState":{"__symbolic":"reference","name":"toState"},"phaseName":{"__symbolic":"reference","name":"phaseName"},"totalTime":{"__symbolic":"reference","name":"totalTime"}},"defaults":[null,null,null,null,"",0]},"getOrSetAsInMap":{"__symbolic":"function"},"parseTimelineCommand":{"__symbolic":"function"},"matchesElement":{"__symbolic":"error","message":"Reference to a local symbol","line":132,"character":4,"context":{"name":"_matches"}},"containsEle
 ment":{"__symbolic":"error","message":"Reference to a local symbol","line":131,"character":4,"context":{"name":"_contains"}},"invokeQuery":{"__symbolic":"error","message":"Reference to a local symbol","line":134,"character":4,"context":{"name":"_query"}}}},{"__symbolic":"module","version":1,"metadata":{"optimizeGroupPlayer":{"__symbolic":"function"},"normalizeKeyframes":{"__symbolic":"function"},"listenOnPlayer":{"__symbolic":"function"},"copyAnimationEvent":{"__symbolic":"function"},"makeAnimationEvent":{"__symbolic":"function","parameters":["element","triggerName","fromState","toState","phaseName","totalTime"],"value":{"element":{"__symbolic":"reference","name":"element"},"triggerName":{"__symbolic":"reference","name":"triggerName"},"fromState":{"__symbolic":"reference","name":"fromState"},"toState":{"__symbolic":"reference","name":"toState"},"phaseName":{"__symbolic":"reference","name":"phaseName"},"totalTime":{"__symbolic":"reference","name":"totalTime"}},"defaults":[null,null,n
 ull,null,"",0]},"getOrSetAsInMap":{"__symbolic":"function"},"parseTimelineCommand":{"__symbolic":"function"},"matchesElement":{"__symbolic":"error","message":"Reference to a local symbol","line":132,"character":4,"context":{"name":"_matches"}},"containsElement":{"__symbolic":"error","message":"Reference to a local symbol","line":131,"character":4,"context":{"name":"_contains"}},"invokeQuery":{"__symbolic":"error","message":"Reference to a local symbol","line":134,"character":4,"context":{"name":"_query"}}}}]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/render/timeline_animation_engine.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/render/timeline_animation_engine.d.ts b/node_modules/@angular/animations/browser/src/render/timeline_animation_engine.d.ts
new file mode 100644
index 0000000..391fb48
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/render/timeline_animation_engine.d.ts
@@ -0,0 +1,25 @@
+/**
+ * @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 { AnimationMetadata, AnimationOptions, AnimationPlayer } from '@angular/animations';
+import { AnimationStyleNormalizer } from '../dsl/style_normalization/animation_style_normalizer';
+import { AnimationDriver } from './animation_driver';
+export declare class TimelineAnimationEngine {
+    private _driver;
+    private _normalizer;
+    private _animations;
+    private _playersById;
+    players: AnimationPlayer[];
+    constructor(_driver: AnimationDriver, _normalizer: AnimationStyleNormalizer);
+    register(id: string, metadata: AnimationMetadata | AnimationMetadata[]): void;
+    private _buildPlayer(i, preStyles, postStyles?);
+    create(id: string, element: any, options?: AnimationOptions): AnimationPlayer;
+    destroy(id: string): void;
+    private _getPlayer(id);
+    listen(id: string, element: string, eventName: string, callback: (event: any) => any): () => void;
+    command(id: string, element: any, command: string, args: any[]): void;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/render/transition_animation_engine.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/render/transition_animation_engine.d.ts b/node_modules/@angular/animations/browser/src/render/transition_animation_engine.d.ts
new file mode 100644
index 0000000..2b3bc91
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/render/transition_animation_engine.d.ts
@@ -0,0 +1,152 @@
+/**
+ * @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 { AnimationOptions, AnimationPlayer } from '@angular/animations';
+import { AnimationTransitionFactory } from '../dsl/animation_transition_factory';
+import { AnimationTransitionInstruction } from '../dsl/animation_transition_instruction';
+import { AnimationTrigger } from '../dsl/animation_trigger';
+import { AnimationStyleNormalizer } from '../dsl/style_normalization/animation_style_normalizer';
+import { AnimationDriver } from './animation_driver';
+export interface QueueInstruction {
+    element: any;
+    triggerName: string;
+    fromState: StateValue;
+    toState: StateValue;
+    transition: AnimationTransitionFactory;
+    player: TransitionAnimationPlayer;
+    isFallbackTransition: boolean;
+}
+export declare const REMOVAL_FLAG = "__ng_removed";
+export interface ElementAnimationState {
+    setForRemoval: any;
+    hasAnimation: boolean;
+    namespaceId: string;
+    removedBeforeQueried: boolean;
+}
+export declare class StateValue {
+    value: string;
+    options: AnimationOptions;
+    readonly params: {
+        [key: string]: any;
+    };
+    constructor(input: any);
+    absorbOptions(options: AnimationOptions): void;
+}
+export declare const VOID_VALUE = "void";
+export declare const DEFAULT_STATE_VALUE: StateValue;
+export declare const DELETED_STATE_VALUE: StateValue;
+export declare class AnimationTransitionNamespace {
+    id: string;
+    hostElement: any;
+    private _engine;
+    players: TransitionAnimationPlayer[];
+    private _triggers;
+    private _queue;
+    private _elementListeners;
+    private _hostClassName;
+    constructor(id: string, hostElement: any, _engine: TransitionAnimationEngine);
+    listen(element: any, name: string, phase: string, callback: (event: any) => boolean): () => any;
+    register(name: string, ast: AnimationTrigger): boolean;
+    private _getTrigger(name);
+    trigger(element: any, triggerName: string, value: any, defaultToFallback?: boolean): TransitionAnimationPlayer | undefined;
+    deregister(name: string): void;
+    clearElementCache(element: any): void;
+    private _destroyInnerNodes(rootElement, context, animate?);
+    removeNode(element: any, context: any, doNotRecurse?: boolean): void;
+    insertNode(element: any, parent: any): void;
+    drainQueuedTransitions(microtaskId: number): QueueInstruction[];
+    destroy(context: any): void;
+    elementContainsData(element: any): boolean;
+}
+export interface QueuedTransition {
+    element: any;
+    instruction: AnimationTransitionInstruction;
+    player: TransitionAnimationPlayer;
+}
+export declare class TransitionAnimationEngine {
+    driver: AnimationDriver;
+    private _normalizer;
+    players: TransitionAnimationPlayer[];
+    newHostElements: Map<any, AnimationTransitionNamespace>;
+    playersByElement: Map<any, TransitionAnimationPlayer[]>;
+    playersByQueriedElement: Map<any, TransitionAnimationPlayer[]>;
+    statesByElement: Map<any, {
+        [triggerName: string]: StateValue;
+    }>;
+    disabledNodes: Set<any>;
+    totalAnimations: number;
+    totalQueuedPlayers: number;
+    private _namespaceLookup;
+    private _namespaceList;
+    private _flushFns;
+    private _whenQuietFns;
+    namespacesByHostElement: Map<any, AnimationTransitionNamespace>;
+    collectedEnterElements: any[];
+    collectedLeaveElements: any[];
+    onRemovalComplete: (element: any, context: any) => void;
+    _onRemovalComplete(element: any, context: any): void;
+    constructor(driver: AnimationDriver, _normalizer: AnimationStyleNormalizer);
+    readonly queuedPlayers: TransitionAnimationPlayer[];
+    createNamespace(namespaceId: string, hostElement: any): AnimationTransitionNamespace;
+    private _balanceNamespaceList(ns, hostElement);
+    register(namespaceId: string, hostElement: any): AnimationTransitionNamespace;
+    registerTrigger(namespaceId: string, name: string, trigger: AnimationTrigger): void;
+    destroy(namespaceId: string, context: any): void;
+    private _fetchNamespace(id);
+    trigger(namespaceId: string, element: any, name: string, value: any): boolean;
+    insertNode(namespaceId: string, element: any, parent: any, insertBefore: boolean): void;
+    collectEnterElement(element: any): void;
+    markElementAsDisabled(element: any, value: boolean): void;
+    removeNode(namespaceId: string, element: any, context: any, doNotRecurse?: boolean): void;
+    markElementAsRemoved(namespaceId: string, element: any, hasAnimation?: boolean, context?: any): void;
+    listen(namespaceId: string, element: any, name: string, phase: string, callback: (event: any) => boolean): () => any;
+    private _buildInstruction(entry, subTimelines);
+    destroyInnerAnimations(containerElement: any): void;
+    whenRenderingDone(): Promise<any>;
+    processLeaveNode(element: any): void;
+    flush(microtaskId?: number): void;
+    reportError(errors: string[]): void;
+    private _flushAnimations(cleanupFns, microtaskId);
+    elementContainsData(namespaceId: string, element: any): boolean;
+    afterFlush(callback: () => any): void;
+    afterFlushAnimationsDone(callback: () => any): void;
+    private _getPreviousPlayers(element, isQueriedElement, namespaceId?, triggerName?, toStateValue?);
+    private _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap);
+    private _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);
+    private _buildPlayer(instruction, keyframes, previousPlayers);
+}
+export declare class TransitionAnimationPlayer implements AnimationPlayer {
+    namespaceId: string;
+    triggerName: string;
+    element: any;
+    private _player;
+    private _containsRealPlayer;
+    private _queuedCallbacks;
+    private _destroyed;
+    parentPlayer: AnimationPlayer;
+    markedForDestroy: boolean;
+    constructor(namespaceId: string, triggerName: string, element: any);
+    readonly queued: boolean;
+    readonly destroyed: boolean;
+    setRealPlayer(player: AnimationPlayer): void;
+    getRealPlayer(): AnimationPlayer;
+    private _queueEvent(name, callback);
+    onDone(fn: () => void): void;
+    onStart(fn: () => void): void;
+    onDestroy(fn: () => void): void;
+    init(): void;
+    hasStarted(): boolean;
+    play(): void;
+    pause(): void;
+    restart(): void;
+    finish(): void;
+    destroy(): void;
+    reset(): void;
+    setPosition(p: any): void;
+    getPosition(): number;
+    readonly totalTime: number;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/render/web_animations/dom_animation.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/render/web_animations/dom_animation.d.ts b/node_modules/@angular/animations/browser/src/render/web_animations/dom_animation.d.ts
new file mode 100644
index 0000000..dd84426
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/render/web_animations/dom_animation.d.ts
@@ -0,0 +1,18 @@
+/**
+ * @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
+ */
+export interface DOMAnimation {
+    cancel(): void;
+    play(): void;
+    pause(): void;
+    finish(): void;
+    onfinish: Function;
+    position: number;
+    currentTime: number;
+    addEventListener(eventName: string, handler: (event: any) => any): any;
+    dispatchEvent(eventName: string): any;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/render/web_animations/web_animations_driver.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/render/web_animations/web_animations_driver.d.ts b/node_modules/@angular/animations/browser/src/render/web_animations/web_animations_driver.d.ts
new file mode 100644
index 0000000..20a7201
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/render/web_animations/web_animations_driver.d.ts
@@ -0,0 +1,18 @@
+/**
+ * @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 { AnimationPlayer, ɵStyleData } from '@angular/animations';
+import { AnimationDriver } from '../animation_driver';
+import { WebAnimationsPlayer } from './web_animations_player';
+export declare class WebAnimationsDriver implements AnimationDriver {
+    matchesElement(element: any, selector: string): boolean;
+    containsElement(elm1: any, elm2: any): boolean;
+    query(element: any, selector: string, multi: boolean): any[];
+    computeStyle(element: any, prop: string, defaultValue?: string): string;
+    animate(element: any, keyframes: ɵStyleData[], duration: number, delay: number, easing: string, previousPlayers?: AnimationPlayer[]): WebAnimationsPlayer;
+}
+export declare function supportsWebAnimations(): boolean;

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/render/web_animations/web_animations_player.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/render/web_animations/web_animations_player.d.ts b/node_modules/@angular/animations/browser/src/render/web_animations/web_animations_player.d.ts
new file mode 100644
index 0000000..2d5e125
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/render/web_animations/web_animations_player.d.ts
@@ -0,0 +1,63 @@
+/**
+ * @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 { AnimationPlayer } from '@angular/animations';
+import { DOMAnimation } from './dom_animation';
+export declare class WebAnimationsPlayer implements AnimationPlayer {
+    element: any;
+    keyframes: {
+        [key: string]: string | number;
+    }[];
+    options: {
+        [key: string]: string | number;
+    };
+    private previousPlayers;
+    private _onDoneFns;
+    private _onStartFns;
+    private _onDestroyFns;
+    private _player;
+    private _duration;
+    private _delay;
+    private _initialized;
+    private _finished;
+    private _started;
+    private _destroyed;
+    private _finalKeyframe;
+    time: number;
+    parentPlayer: AnimationPlayer | null;
+    previousStyles: {
+        [styleName: string]: string | number;
+    };
+    currentSnapshot: {
+        [styleName: string]: string | number;
+    };
+    constructor(element: any, keyframes: {
+        [key: string]: string | number;
+    }[], options: {
+        [key: string]: string | number;
+    }, previousPlayers?: WebAnimationsPlayer[]);
+    private _onFinish();
+    init(): void;
+    private _buildPlayer();
+    private _preparePlayerBeforeStart();
+    readonly domPlayer: DOMAnimation;
+    onStart(fn: () => void): void;
+    onDone(fn: () => void): void;
+    onDestroy(fn: () => void): void;
+    play(): void;
+    pause(): void;
+    finish(): void;
+    reset(): void;
+    private _resetDomPlayerState();
+    restart(): void;
+    hasStarted(): boolean;
+    destroy(): void;
+    setPosition(p: number): void;
+    getPosition(): number;
+    readonly totalTime: number;
+    beforeDestroy(): void;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/util.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/util.d.ts b/node_modules/@angular/animations/browser/src/util.d.ts
new file mode 100644
index 0000000..544d0de
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/util.d.ts
@@ -0,0 +1,46 @@
+/**
+ * @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 { AnimateTimings, AnimationMetadata, AnimationMetadataType, AnimationOptions, ɵStyleData } from '@angular/animations';
+import { Ast as AnimationAst, AstVisitor as AnimationAstVisitor } from './dsl/animation_ast';
+import { AnimationDslVisitor } from './dsl/animation_dsl_visitor';
+export declare const ONE_SECOND = 1000;
+export declare const SUBSTITUTION_EXPR_START = "{{";
+export declare const SUBSTITUTION_EXPR_END = "}}";
+export declare const ENTER_CLASSNAME = "ng-enter";
+export declare const LEAVE_CLASSNAME = "ng-leave";
+export declare const ENTER_SELECTOR = ".ng-enter";
+export declare const LEAVE_SELECTOR = ".ng-leave";
+export declare const NG_TRIGGER_CLASSNAME = "ng-trigger";
+export declare const NG_TRIGGER_SELECTOR = ".ng-trigger";
+export declare const NG_ANIMATING_CLASSNAME = "ng-animating";
+export declare const NG_ANIMATING_SELECTOR = ".ng-animating";
+export declare function resolveTimingValue(value: string | number): number;
+export declare function resolveTiming(timings: string | number | AnimateTimings, errors: any[], allowNegativeValues?: boolean): AnimateTimings;
+export declare function copyObj(obj: {
+    [key: string]: any;
+}, destination?: {
+    [key: string]: any;
+}): {
+    [key: string]: any;
+};
+export declare function normalizeStyles(styles: ɵStyleData | ɵStyleData[]): ɵStyleData;
+export declare function copyStyles(styles: ɵStyleData, readPrototype: boolean, destination?: ɵStyleData): ɵStyleData;
+export declare function setStyles(element: any, styles: ɵStyleData): void;
+export declare function eraseStyles(element: any, styles: ɵStyleData): void;
+export declare function normalizeAnimationEntry(steps: AnimationMetadata | AnimationMetadata[]): AnimationMetadata;
+export declare function validateStyleParams(value: string | number, options: AnimationOptions, errors: any[]): void;
+export declare function extractStyleParams(value: string | number): string[];
+export declare function interpolateParams(value: string | number, params: {
+    [name: string]: any;
+}, errors: any[]): string | number;
+export declare function iteratorToArray(iterator: any): any[];
+export declare function mergeAnimationOptions(source: AnimationOptions, destination: AnimationOptions): AnimationOptions;
+export declare function dashCaseToCamelCase(input: string): string;
+export declare function allowPreviousPlayerStylesMerge(duration: number, delay: number): boolean;
+export declare function visitDslNode(visitor: AnimationDslVisitor, node: AnimationMetadata, context: any): any;
+export declare function visitDslNode(visitor: AnimationAstVisitor, node: AnimationAst<AnimationMetadataType>, context: any): any;

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/util.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/util.metadata.json b/node_modules/@angular/animations/browser/src/util.metadata.json
new file mode 100644
index 0000000..2931907
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/util.metadata.json
@@ -0,0 +1 @@
+[{"__symbolic":"module","version":3,"metadata":{"ONE_SECOND":1000,"SUBSTITUTION_EXPR_START":"{{","SUBSTITUTION_EXPR_END":"}}","ENTER_CLASSNAME":"ng-enter","LEAVE_CLASSNAME":"ng-leave","ENTER_SELECTOR":".ng-enter","LEAVE_SELECTOR":".ng-leave","NG_TRIGGER_CLASSNAME":"ng-trigger","NG_TRIGGER_SELECTOR":".ng-trigger","NG_ANIMATING_CLASSNAME":"ng-animating","NG_ANIMATING_SELECTOR":".ng-animating","resolveTimingValue":{"__symbolic":"function"},"resolveTiming":{"__symbolic":"function","parameters":["timings","errors","allowNegativeValues"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"timings"},"member":"hasOwnProperty"},"arguments":["duration"]},"thenExpression":{"__symbolic":"reference","name":"timings"},"elseExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":49,"character":9,"context":{"name":"parseTimeExpression"}}}},"copyObj":{"__symbolic":"function"},
 "normalizeStyles":{"__symbolic":"function"},"copyStyles":{"__symbolic":"function"},"setStyles":{"__symbolic":"function"},"eraseStyles":{"__symbolic":"function"},"normalizeAnimationEntry":{"__symbolic":"function"},"validateStyleParams":{"__symbolic":"function"},"extractStyleParams":{"__symbolic":"function"},"interpolateParams":{"__symbolic":"function"},"iteratorToArray":{"__symbolic":"function"},"mergeAnimationOptions":{"__symbolic":"function"},"dashCaseToCamelCase":{"__symbolic":"function","parameters":["input"],"value":{"__symbolic":"error","message":"Reference to a local symbol","line":228,"character":6,"context":{"name":"DASH_CASE_REGEXP"}}},"allowPreviousPlayerStylesMerge":{"__symbolic":"function","parameters":["duration","delay"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"duration"},"right":0},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"delay"},"
 right":0}}},"visitDslNode":{"__symbolic":"function"}}},{"__symbolic":"module","version":1,"metadata":{"ONE_SECOND":1000,"SUBSTITUTION_EXPR_START":"{{","SUBSTITUTION_EXPR_END":"}}","ENTER_CLASSNAME":"ng-enter","LEAVE_CLASSNAME":"ng-leave","ENTER_SELECTOR":".ng-enter","LEAVE_SELECTOR":".ng-leave","NG_TRIGGER_CLASSNAME":"ng-trigger","NG_TRIGGER_SELECTOR":".ng-trigger","NG_ANIMATING_CLASSNAME":"ng-animating","NG_ANIMATING_SELECTOR":".ng-animating","resolveTimingValue":{"__symbolic":"function"},"resolveTiming":{"__symbolic":"function","parameters":["timings","errors","allowNegativeValues"],"value":{"__symbolic":"if","condition":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"timings"},"member":"hasOwnProperty"},"arguments":["duration"]},"thenExpression":{"__symbolic":"reference","name":"timings"},"elseExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":49,"character":9,"context":{"name":"parseTi
 meExpression"}}}},"copyObj":{"__symbolic":"function"},"normalizeStyles":{"__symbolic":"function"},"copyStyles":{"__symbolic":"function"},"setStyles":{"__symbolic":"function"},"eraseStyles":{"__symbolic":"function"},"normalizeAnimationEntry":{"__symbolic":"function"},"validateStyleParams":{"__symbolic":"function"},"extractStyleParams":{"__symbolic":"function"},"interpolateParams":{"__symbolic":"function"},"iteratorToArray":{"__symbolic":"function"},"mergeAnimationOptions":{"__symbolic":"function"},"dashCaseToCamelCase":{"__symbolic":"function","parameters":["input"],"value":{"__symbolic":"error","message":"Reference to a local symbol","line":228,"character":6,"context":{"name":"DASH_CASE_REGEXP"}}},"allowPreviousPlayerStylesMerge":{"__symbolic":"function","parameters":["duration","delay"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"reference","name":"duration"},"right":0},"right":{"__symbolic":"binop","operator":"=
 ==","left":{"__symbolic":"reference","name":"delay"},"right":0}}},"visitDslNode":{"__symbolic":"function"}}}]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/testing.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/testing.d.ts b/node_modules/@angular/animations/browser/testing.d.ts
new file mode 100644
index 0000000..b368c00
--- /dev/null
+++ b/node_modules/@angular/animations/browser/testing.d.ts
@@ -0,0 +1,6 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */ 
+ export * from './testing/index'

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/testing.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/testing.metadata.json b/node_modules/@angular/animations/browser/testing.metadata.json
new file mode 100644
index 0000000..5437973
--- /dev/null
+++ b/node_modules/@angular/animations/browser/testing.metadata.json
@@ -0,0 +1 @@
+{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./testing/index"}],"flatModuleIndexRedirect":true}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/testing/index.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/testing/index.d.ts b/node_modules/@angular/animations/browser/testing/index.d.ts
new file mode 100644
index 0000000..75b1733
--- /dev/null
+++ b/node_modules/@angular/animations/browser/testing/index.d.ts
@@ -0,0 +1,13 @@
+/**
+ * @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
+ */
+/**
+ * @module
+ * @description
+ * Entry point for all public APIs of the platform-browser/animations/testing package.
+ */
+export * from './src/testing';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/testing/index.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/testing/index.metadata.json b/node_modules/@angular/animations/browser/testing/index.metadata.json
new file mode 100644
index 0000000..2f60488
--- /dev/null
+++ b/node_modules/@angular/animations/browser/testing/index.metadata.json
@@ -0,0 +1 @@
+[{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./src/testing"}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./src/testing"}]}]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/testing/package.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/testing/package.json b/node_modules/@angular/animations/browser/testing/package.json
new file mode 100644
index 0000000..04ca998
--- /dev/null
+++ b/node_modules/@angular/animations/browser/testing/package.json
@@ -0,0 +1,7 @@
+{
+  "name": "@angular/animations/browser/testing",
+  "typings": "../testing.d.ts",
+  "main": "../../bundles/platform-browser-animations-testing.umd.js",
+  "module": "../../@angular/platform-browser/animations/testing.es5.js",
+  "es2015": "../../@angular/platform-browser/animations/testing.js"
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/testing/src/mock_animation_driver.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/testing/src/mock_animation_driver.d.ts b/node_modules/@angular/animations/browser/testing/src/mock_animation_driver.d.ts
new file mode 100644
index 0000000..3b754c4
--- /dev/null
+++ b/node_modules/@angular/animations/browser/testing/src/mock_animation_driver.d.ts
@@ -0,0 +1,50 @@
+/**
+ * @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 { AnimationPlayer, NoopAnimationPlayer, ɵStyleData } from '@angular/animations';
+import { AnimationDriver } from '../../src/render/animation_driver';
+/**
+ * @experimental Animation support is experimental.
+ */
+export declare class MockAnimationDriver implements AnimationDriver {
+    static log: AnimationPlayer[];
+    matchesElement(element: any, selector: string): boolean;
+    containsElement(elm1: any, elm2: any): boolean;
+    query(element: any, selector: string, multi: boolean): any[];
+    computeStyle(element: any, prop: string, defaultValue?: string): string;
+    animate(element: any, keyframes: {
+        [key: string]: string | number;
+    }[], duration: number, delay: number, easing: string, previousPlayers?: any[]): MockAnimationPlayer;
+}
+/**
+ * @experimental Animation support is experimental.
+ */
+export declare class MockAnimationPlayer extends NoopAnimationPlayer {
+    element: any;
+    keyframes: {
+        [key: string]: string | number;
+    }[];
+    duration: number;
+    delay: number;
+    easing: string;
+    previousPlayers: any[];
+    private __finished;
+    private __started;
+    previousStyles: {
+        [key: string]: string | number;
+    };
+    private _onInitFns;
+    currentSnapshot: ɵStyleData;
+    constructor(element: any, keyframes: {
+        [key: string]: string | number;
+    }[], duration: number, delay: number, easing: string, previousPlayers: any[]);
+    finish(): void;
+    destroy(): void;
+    play(): void;
+    hasStarted(): boolean;
+    beforeDestroy(): void;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/testing/src/mock_animation_driver.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/testing/src/mock_animation_driver.metadata.json b/node_modules/@angular/animations/browser/testing/src/mock_animation_driver.metadata.json
new file mode 100644
index 0000000..77546e9
--- /dev/null
+++ b/node_modules/@angular/animations/browser/testing/src/mock_animation_driver.metadata.json
@@ -0,0 +1 @@
+[{"__symbolic":"module","version":3,"metadata":{"MockAnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]},"statics":{"log":[]}},"MockAnimationPlayer":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/animations","name":"NoopAnimationPlayer"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":54,"character":45}]},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"onInit":[{"__symbolic":"method"}],"init":[{"__symbol
 ic":"method"}],"finish":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"triggerMicrotask":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"hasStarted":[{"__symbolic":"method"}],"beforeDestroy":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"MockAnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]},"statics":{"log":[]}},"MockAnimationPlayer":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/animations","name":"NoopAnimationPlayer"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":54,"character":45}]},{"__symbolic":"reference","name":
 "number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"onInit":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"finish":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"triggerMicrotask":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"hasStarted":[{"__symbolic":"method"}],"beforeDestroy":[{"__symbolic":"method"}]}}}}]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/testing/src/testing.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/testing/src/testing.d.ts b/node_modules/@angular/animations/browser/testing/src/testing.d.ts
new file mode 100644
index 0000000..a39b678
--- /dev/null
+++ b/node_modules/@angular/animations/browser/testing/src/testing.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @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
+ */
+export { MockAnimationDriver, MockAnimationPlayer } from './mock_animation_driver';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/testing/src/testing.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/testing/src/testing.metadata.json b/node_modules/@angular/animations/browser/testing/src/testing.metadata.json
new file mode 100644
index 0000000..1a55de3
--- /dev/null
+++ b/node_modules/@angular/animations/browser/testing/src/testing.metadata.json
@@ -0,0 +1 @@
+[{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./mock_animation_driver","export":["MockAnimationDriver","MockAnimationPlayer"]}]},{"__symbolic":"module","version":1,"metadata":{},"exports":[{"from":"./mock_animation_driver","export":["MockAnimationDriver","MockAnimationPlayer"]}]}]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/bundles/animations-browser-testing.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations-browser-testing.umd.js b/node_modules/@angular/animations/bundles/animations-browser-testing.umd.js
new file mode 100644
index 0000000..0f0ff8b
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations-browser-testing.umd.js
@@ -0,0 +1,209 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/animations')) :
+	typeof define === 'function' && define.amd ? define(['exports', '@angular/animations'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.animations = global.ng.animations || {}, global.ng.animations.browser = global.ng.animations.browser || {}, global.ng.animations.browser.testing = global.ng.animations.browser.testing || {}),global._angular_animations));
+}(this, (function (exports,_angular_animations) { 'use strict';
+
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+/* global Reflect, Promise */
+
+var extendStatics = Object.setPrototypeOf ||
+    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+
+function __extends(d, b) {
+    extendStatics(d, b);
+    function __() { this.constructor = d; }
+    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+/**
+ * @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
+ */
+var _contains = function (elm1, elm2) { return false; };
+var _matches = function (element, selector) { return false; };
+var _query = function (element, selector, multi) {
+    return [];
+};
+if (typeof Element != 'undefined') {
+    // this is well supported in all browsers
+    _contains = function (elm1, elm2) { return elm1.contains(elm2); };
+    if (Element.prototype.matches) {
+        _matches = function (element, selector) { return element.matches(selector); };
+    }
+    else {
+        var proto = Element.prototype;
+        var fn_1 = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||
+            proto.oMatchesSelector || proto.webkitMatchesSelector;
+        if (fn_1) {
+            _matches = function (element, selector) { return fn_1.apply(element, [selector]); };
+        }
+    }
+    _query = function (element, selector, multi) {
+        var results = [];
+        if (multi) {
+            results.push.apply(results, element.querySelectorAll(selector));
+        }
+        else {
+            var elm = element.querySelector(selector);
+            if (elm) {
+                results.push(elm);
+            }
+        }
+        return results;
+    };
+}
+var matchesElement = _matches;
+var containsElement = _contains;
+var invokeQuery = _query;
+/**
+ * @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
+ */
+function allowPreviousPlayerStylesMerge(duration, delay) {
+    return duration === 0 || delay === 0;
+}
+/**
+ * @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
+ */
+/**
+ * @experimental Animation support is experimental.
+ */
+var MockAnimationDriver = (function () {
+    function MockAnimationDriver() {
+    }
+    MockAnimationDriver.prototype.matchesElement = function (element, selector) {
+        return matchesElement(element, selector);
+    };
+    MockAnimationDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); };
+    MockAnimationDriver.prototype.query = function (element, selector, multi) {
+        return invokeQuery(element, selector, multi);
+    };
+    MockAnimationDriver.prototype.computeStyle = function (element, prop, defaultValue) {
+        return defaultValue || '';
+    };
+    MockAnimationDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers) {
+        if (previousPlayers === void 0) { previousPlayers = []; }
+        var player = new MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers);
+        MockAnimationDriver.log.push(player);
+        return player;
+    };
+    return MockAnimationDriver;
+}());
+MockAnimationDriver.log = [];
+/**
+ * @experimental Animation support is experimental.
+ */
+var MockAnimationPlayer = (function (_super) {
+    __extends(MockAnimationPlayer, _super);
+    function MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers) {
+        var _this = _super.call(this) || this;
+        _this.element = element;
+        _this.keyframes = keyframes;
+        _this.duration = duration;
+        _this.delay = delay;
+        _this.easing = easing;
+        _this.previousPlayers = previousPlayers;
+        _this.__finished = false;
+        _this.__started = false;
+        _this.previousStyles = {};
+        _this._onInitFns = [];
+        _this.currentSnapshot = {};
+        if (allowPreviousPlayerStylesMerge(duration, delay)) {
+            previousPlayers.forEach(function (player) {
+                if (player instanceof MockAnimationPlayer) {
+                    var styles_1 = player.currentSnapshot;
+                    Object.keys(styles_1).forEach(function (prop) { return _this.previousStyles[prop] = styles_1[prop]; });
+                }
+            });
+        }
+        _this.totalTime = delay + duration;
+        return _this;
+    }
+    /* @internal */
+    MockAnimationPlayer.prototype.onInit = function (fn) { this._onInitFns.push(fn); };
+    /* @internal */
+    MockAnimationPlayer.prototype.init = function () {
+        _super.prototype.init.call(this);
+        this._onInitFns.forEach(function (fn) { return fn(); });
+        this._onInitFns = [];
+    };
+    MockAnimationPlayer.prototype.finish = function () {
+        _super.prototype.finish.call(this);
+        this.__finished = true;
+    };
+    MockAnimationPlayer.prototype.destroy = function () {
+        _super.prototype.destroy.call(this);
+        this.__finished = true;
+    };
+    /* @internal */
+    MockAnimationPlayer.prototype.triggerMicrotask = function () { };
+    MockAnimationPlayer.prototype.play = function () {
+        _super.prototype.play.call(this);
+        this.__started = true;
+    };
+    MockAnimationPlayer.prototype.hasStarted = function () { return this.__started; };
+    MockAnimationPlayer.prototype.beforeDestroy = function () {
+        var _this = this;
+        var captures = {};
+        Object.keys(this.previousStyles).forEach(function (prop) {
+            captures[prop] = _this.previousStyles[prop];
+        });
+        if (this.hasStarted()) {
+            // when assembling the captured styles, it's important that
+            // we build the keyframe styles in the following order:
+            // {other styles within keyframes, ... previousStyles }
+            this.keyframes.forEach(function (kf) {
+                Object.keys(kf).forEach(function (prop) {
+                    if (prop != 'offset') {
+                        captures[prop] = _this.__finished ? kf[prop] : _angular_animations.AUTO_STYLE;
+                    }
+                });
+            });
+        }
+        this.currentSnapshot = captures;
+    };
+    return MockAnimationPlayer;
+}(_angular_animations.NoopAnimationPlayer));
+
+exports.MockAnimationDriver = MockAnimationDriver;
+exports.MockAnimationPlayer = MockAnimationPlayer;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=animations-browser-testing.umd.js.map


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/@angular/animations.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations.js.map b/node_modules/@angular/animations/@angular/animations.js.map
new file mode 100644
index 0000000..475da91
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"animations.js","sources":["../../../../packages/animations/index.ts","../../../../packages/animations/public_api.ts","../../../../packages/animations/src/animations.ts","../../../../packages/animations/src/private_export.ts","../../../../packages/animations/src/players/animation_group_player.ts","../../../../packages/animations/src/players/animation_player.ts","../../../../packages/animations/src/util.ts","../../../../packages/animations/src/animation_metadata.ts","../../../../packages/animations/src/animation_builder.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport {AnimationBuilder,AnimationFactory,AnimationEvent,AUTO_STYLE,AnimateChildOptions,AnimateTimings,AnimationAnimateChildMetadata,AnimationAnimateMetadata,AnimationAnimateRefMetadata,AnimationGroupMetadata,AnimationKeyframesSequenceMetadata,AnimationMetadata,AnimationMetadataType,AnimationOptions,AnimationQueryMetadata,AnimationQueryOptions,AnimationReferenceMetadata,An
 imationSequenceMetadata,AnimationStaggerMetadata,AnimationStateMetadata,AnimationStyleMetadata,AnimationTransitionMetadata,AnimationTriggerMetadata,animate,animateChild,animation,group,keyframes,query,sequence,stagger,state,style,transition,trigger,useAnimation,ɵStyleData,AnimationPlayer,NoopAnimationPlayer,ɵAnimationGroupPlayer,ɵPRE_STYLE} from './public_api';\n","/**\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/**\n * @module\n * @description\n * Entry point for all public APIs of the animation package.\n */\nexport {AnimationBuilder,AnimationFactory,AnimationEvent,AUTO_STYLE,AnimateChildOptions,AnimateTimings,AnimationAnimateChildMetadata,AnimationAnimateMetadata,AnimationAnimateRefMetadata,AnimationGroupMetadata,AnimationKeyframesSequenceMetadata,AnimationMetadata,AnimationMetadataType,AnimationOptions,AnimationQue
 ryMetadata,AnimationQueryOptions,AnimationReferenceMetadata,AnimationSequenceMetadata,AnimationStaggerMetadata,AnimationStateMetadata,AnimationStyleMetadata,AnimationTransitionMetadata,AnimationTriggerMetadata,animate,animateChild,animation,group,keyframes,query,sequence,stagger,state,style,transition,trigger,useAnimation,ɵStyleData,AnimationPlayer,NoopAnimationPlayer,ɵAnimationGroupPlayer,ɵPRE_STYLE} from './src/animations';\n","/**\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/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation package.\n */\nexport {AnimationBuilder, AnimationFactory} from './animation_builder';\nexport {AnimationEvent} from './animation_event';\nexport {AUTO_STYLE, AnimateChildOptions, AnimateTimings, AnimationAnimateChildMetadata, AnimationAnimateMetadata, Animat
 ionAnimateRefMetadata, AnimationGroupMetadata, AnimationKeyframesSequenceMetadata, AnimationMetadata, AnimationMetadataType, AnimationOptions, AnimationQueryMetadata, AnimationQueryOptions, AnimationReferenceMetadata, AnimationSequenceMetadata, AnimationStaggerMetadata, AnimationStateMetadata, AnimationStyleMetadata, AnimationTransitionMetadata, AnimationTriggerMetadata, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, ɵStyleData} from './animation_metadata';\nexport {AnimationPlayer, NoopAnimationPlayer} from './players/animation_player';\n\nexport {ɵAnimationGroupPlayer,ɵPRE_STYLE} from './private_export';\n","/**\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 {AnimationGroupPlayer as ɵAnimationGroupPlayer} from './players/animation_grou
 p_player';\nexport const /** @type {?} */ ɵPRE_STYLE = '!';\n","/**\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\nimport {scheduleMicroTask} from '../util';\nimport {AnimationPlayer} from './animation_player';\nexport class AnimationGroupPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _finished = false;\nprivate _started = false;\nprivate _destroyed = false;\nprivate _onDestroyFns: Function[] = [];\npublic parentPlayer: AnimationPlayer|null = null;\npublic totalTime: number = 0;\n/**\n * @param {?} _players\n */\nconstructor(private _players: AnimationPlayer[]) {\n    let doneCount = 0;\n    let destroyCount = 0;\n    let startCount = 0;\n    const total = this._players.length;\n\n    if (total == 0) {\n      scheduleMicroTask(() => this._onFinish(
 ));\n    } else {\n      this._players.forEach(player => {\n        player.parentPlayer = this;\n        player.onDone(() => {\n          if (++doneCount >= total) {\n            this._onFinish();\n          }\n        });\n        player.onDestroy(() => {\n          if (++destroyCount >= total) {\n            this._onDestroy();\n          }\n        });\n        player.onStart(() => {\n          if (++startCount >= total) {\n            this._onStart();\n          }\n        });\n      });\n    }\n\n    this.totalTime = this._players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n  }\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._finished) {\n      this._finished = true;\n      this._onDoneFns.forEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @return {?}\n */\ninit(): void { this._players.forEach(player => player.init()); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void { this._onStartFns.push(fn); 
 }\n/**\n * @return {?}\n */\nprivate _onStart() {\n    if (!this.hasStarted()) {\n      this._onStartFns.forEach(fn => fn());\n      this._onStartFns = [];\n      this._started = true;\n    }\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void { this._onDoneFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void { this._onDestroyFns.push(fn); }\n/**\n * @return {?}\n */\nhasStarted() { return this._started; }\n/**\n * @return {?}\n */\nplay() {\n    if (!this.parentPlayer) {\n      this.init();\n    }\n    this._onStart();\n    this._players.forEach(player => player.play());\n  }\n/**\n * @return {?}\n */\npause(): void { this._players.forEach(player => player.pause()); }\n/**\n * @return {?}\n */\nrestart(): void { this._players.forEach(player => player.restart()); }\n/**\n * @return {?}\n */\nfinish(): void {\n    this._onFinish();\n    this._players.forEach(player => player.finish());\n  }\n/**\n * @return {?}\n */\n
 destroy(): void { this._onDestroy(); }\n/**\n * @return {?}\n */\nprivate _onDestroy() {\n    if (!this._destroyed) {\n      this._destroyed = true;\n      this._onFinish();\n      this._players.forEach(player => player.destroy());\n      this._onDestroyFns.forEach(fn => fn());\n      this._onDestroyFns = [];\n    }\n  }\n/**\n * @return {?}\n */\nreset(): void {\n    this._players.forEach(player => player.reset());\n    this._destroyed = false;\n    this._finished = false;\n    this._started = false;\n  }\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: number): void {\n    const /** @type {?} */ timeAtPosition = p * this.totalTime;\n    this._players.forEach(player => {\n      const /** @type {?} */ position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n      player.setPosition(position);\n    });\n  }\n/**\n * @return {?}\n */\ngetPosition(): number {\n    let /** @type {?} */ min = 0;\n    this._players.forEach(player => {\n      const /** @
 type {?} */ p = player.getPosition();\n      min = Math.min(p, min);\n    });\n    return min;\n  }\n/**\n * @return {?}\n */\nget players(): AnimationPlayer[] { return this._players; }\n/**\n * @return {?}\n */\nbeforeDestroy(): void {\n    this.players.forEach(player => {\n      if (player.beforeDestroy) {\n        player.beforeDestroy();\n      }\n    });\n  }\n}\n\nfunction AnimationGroupPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationGroupPlayer.prototype._onDoneFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype._onStartFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype._finished;\n/** @type {?} */\nAnimationGroupPlayer.prototype._started;\n/** @type {?} */\nAnimationGroupPlayer.prototype._destroyed;\n/** @type {?} */\nAnimationGroupPlayer.prototype._onDestroyFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype.parentPlayer;\n/** @type {?} */\nAnimationGroupPlayer.prototype.totalTime;\n/** @type {?} */\nAnimationGroupPlayer.prototype._players;\n}\n
 \n","/**\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\nimport {scheduleMicroTask} from '../util';\n\n/**\n * AnimationPlayer controls an animation sequence that was produced from a programmatic animation.\n * (see {@link AnimationBuilder AnimationBuilder} for more information on how to create programmatic\n * animations.)\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationPlayer {\n  onDone(fn: () => void): void;\n  onStart(fn: () => void): void;\n  onDestroy(fn: () => void): void;\n  init(): void;\n  hasStarted(): boolean;\n  play(): void;\n  pause(): void;\n  restart(): void;\n  finish(): void;\n  destroy(): void;\n  reset(): void;\n  setPosition(p: any /** TODO #9100 */): void;\n  getPosition(): number;\n  parentPlayer: AnimationPlayer|null;\n  readonly totalTime: number;\n  beforeDe
 stroy?: () => any;\n}\n/**\n * \\@experimental Animation support is experimental.\n */\nexport class NoopAnimationPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _onDestroyFns: Function[] = [];\nprivate _started = false;\nprivate _destroyed = false;\nprivate _finished = false;\npublic parentPlayer: AnimationPlayer|null = null;\npublic totalTime = 0;\nconstructor() {}\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._finished) {\n      this._finished = true;\n      this._onDoneFns.forEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void { this._onStartFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void { this._onDoneFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void { this._onDestroyFns.push(fn); }\n/**\n * @return {?}\n */\nhasStarted(): 
 boolean { return this._started; }\n/**\n * @return {?}\n */\ninit(): void {}\n/**\n * @return {?}\n */\nplay(): void {\n    if (!this.hasStarted()) {\n      this.triggerMicrotask();\n      this._onStart();\n    }\n    this._started = true;\n  }\n/**\n * @return {?}\n */\ntriggerMicrotask() { scheduleMicroTask(() => this._onFinish()); }\n/**\n * @return {?}\n */\nprivate _onStart() {\n    this._onStartFns.forEach(fn => fn());\n    this._onStartFns = [];\n  }\n/**\n * @return {?}\n */\npause(): void {}\n/**\n * @return {?}\n */\nrestart(): void {}\n/**\n * @return {?}\n */\nfinish(): void { this._onFinish(); }\n/**\n * @return {?}\n */\ndestroy(): void {\n    if (!this._destroyed) {\n      this._destroyed = true;\n      if (!this.hasStarted()) {\n        this._onStart();\n      }\n      this.finish();\n      this._onDestroyFns.forEach(fn => fn());\n      this._onDestroyFns = [];\n    }\n  }\n/**\n * @return {?}\n */\nreset(): void {}\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosi
 tion(p: number): void {}\n/**\n * @return {?}\n */\ngetPosition(): number { return 0; }\n}\n\nfunction NoopAnimationPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nNoopAnimationPlayer.prototype._onDoneFns;\n/** @type {?} */\nNoopAnimationPlayer.prototype._onStartFns;\n/** @type {?} */\nNoopAnimationPlayer.prototype._onDestroyFns;\n/** @type {?} */\nNoopAnimationPlayer.prototype._started;\n/** @type {?} */\nNoopAnimationPlayer.prototype._destroyed;\n/** @type {?} */\nNoopAnimationPlayer.prototype._finished;\n/** @type {?} */\nNoopAnimationPlayer.prototype.parentPlayer;\n/** @type {?} */\nNoopAnimationPlayer.prototype.totalTime;\n}\n\n","\n/**\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 * @param {?} cb\n * @return {?}\n */\nexport function scheduleMicroTask(cb: () => any) {\n  Promise.resolve(null).then(cb);\n}\n","/
 **\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 interface ɵStyleData { [key: string]: string|number; }\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are created internally\n * within the Angular animation DSL.\n *\n * @experimental Animation support is experimental.\n */\nexport declare type AnimateTimings = {\n  duration: number,\n  delay: number,\n  easing: string | null\n};\n\n/**\n * `AnimationOptions` represents options that can be passed into most animation DSL methods.\n * When options are provided, the delay value of an animation can be changed and animation input\n * parameters can be passed in to change styling and timing data when an animation is started.\n *\n * The following animation DSL functions are able to accept animation option data:\n *\n * - {@link transiti
 on transition()}\n * - {@link sequence sequence()}\n * - {@link group group()}\n * - {@link query query()}\n * - {@link animation animation()}\n * - {@link useAnimation useAnimation()}\n * - {@link animateChild animateChild()}\n *\n * Programmatic animations built using {@link AnimationBuilder the AnimationBuilder service} also\n * make use of AnimationOptions.\n *\n * @experimental Animation support is experimental.\n */\nexport declare interface AnimationOptions {\n  delay?: number|string;\n  params?: {[name: string]: any};\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are created internally\n * within the Angular animation DSL when {@link animateChild animateChild()} is used.\n *\n * @experimental Animation support is experimental.\n */\nexport declare interface AnimateChildOptions extends AnimationOptions { duration?: number|string; }\n\n/**\n * Metadata representing the entry of animations. Usages of this enum are created\n * each time
  an animation DSL function is used.\n *\n * @experimental Animation support is experimental.\n */\nexport const enum AnimationMetadataType {\n  State = 0,\n  Transition = 1,\n  Sequence = 2,\n  Group = 3,\n  Animate = 4,\n  Keyframes = 5,\n  Style = 6,\n  Trigger = 7,\n  Reference = 8,\n  AnimateChild = 9,\n  AnimateRef = 10,\n  Query = 11,\n  Stagger = 12\n}\n/**\n * \\@experimental Animation support is experimental.\n */\nexport const AUTO_STYLE = '*';\n\n/**\n * @experimental Animation support is experimental.\n */\nexport interface AnimationMetadata { type: AnimationMetadataType; }\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link trigger trigger animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationTriggerMetadata extends AnimationMetadata {\n  name: string;\n  definitions: AnimationMetadata[];\n  options: {params?: {[name:
  string]: any}}|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link state state animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationStateMetadata extends AnimationMetadata {\n  name: string;\n  styles: AnimationStyleMetadata;\n  options?: {params: {[name: string]: any}};\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link transition transition animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationTransitionMetadata extends AnimationMetadata {\n  expr: string;\n  animation: AnimationMetadata|AnimationMetadata[];\n  options: AnimationOptions|null;\n}\n\n/**\n * @experimental Animation support is experimental.\n */\nexport interface AnimationReferenceMetadata extends 
 AnimationMetadata {\n  animation: AnimationMetadata|AnimationMetadata[];\n  options: AnimationOptions|null;\n}\n\n/**\n * @experimental Animation support is experimental.\n */\nexport interface AnimationQueryMetadata extends AnimationMetadata {\n  selector: string;\n  animation: AnimationMetadata|AnimationMetadata[];\n  options: AnimationQueryOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link keyframes keyframes animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationKeyframesSequenceMetadata extends AnimationMetadata {\n  steps: AnimationStyleMetadata[];\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link style style animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interfa
 ce AnimationStyleMetadata extends AnimationMetadata {\n  styles: '*'|{[key: string]: string | number}|Array<{[key: string]: string | number}|'*'>;\n  offset: number|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link animate animate animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationAnimateMetadata extends AnimationMetadata {\n  timings: string|number|AnimateTimings;\n  styles: AnimationStyleMetadata|AnimationKeyframesSequenceMetadata|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link animateChild animateChild animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationAnimateChildMetadata extends AnimationMetadata {\n  options: AnimationOptions|null;\n}\n\n/**\n
  * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link useAnimation useAnimation animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationAnimateRefMetadata extends AnimationMetadata {\n  animation: AnimationReferenceMetadata;\n  options: AnimationOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link sequence sequence animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationSequenceMetadata extends AnimationMetadata {\n  steps: AnimationMetadata[];\n  options: AnimationOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link group group animation function} is called.\n *\n * @exper
 imental Animation support is experimental.\n */\nexport interface AnimationGroupMetadata extends AnimationMetadata {\n  steps: AnimationMetadata[];\n  options: AnimationOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link query query animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport declare interface AnimationQueryOptions extends AnimationOptions {\n  optional?: boolean;\n  /**\n   * Used to limit the total amount of results from the start of the query list.\n   *\n   * If a negative value is provided then the queried results will be limited from the\n   * end of the query list towards the beginning (e.g. if `limit: -3` is used then the\n   * final 3 (or less) queried results will be used for the animation).\n   */\n  limit?: number;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are prov
 ided via the\n * animation DSL when the {@link stagger stagger animation function} is called.\n *\n* @experimental Animation support is experimental.\n*/\nexport interface AnimationStaggerMetadata extends AnimationMetadata {\n  timings: string|number;\n  animation: AnimationMetadata|AnimationMetadata[];\n}\n/**\n * `trigger` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the\n * {\\@link Component#animations component animations metadata page} to gain a better\n * understanding of how animations in Angular are used.\n * \n * `trigger` Creates an animation trigger which will a list of {\\@link state state} and\n * {\\@link transition transition} entries that will be evaluated when the expression\n * bound to the trigger changes.\n * \n * Triggers are registered within the component annotation data under the\n * {\\@link Component#animations animations section}. An animation t
 rigger can be placed on an element\n * within a template by referencing the name of the trigger followed by the expression value that\n * the\n * trigger is bound to (in the form of `[\\@triggerName]=\"expression\"`.\n * \n * Animation trigger bindings strigify values and then match the previous and current values against\n * any linked transitions. If a boolean value is provided into the trigger binding then it will both\n * be represented as `1` or `true` and `0` or `false` for a true and false boolean values\n * respectively.\n * \n * ### Usage\n * \n * `trigger` will create an animation trigger reference based on the provided `name` value. The\n * provided `animation` value is expected to be an array consisting of {\\@link state state} and\n * {\\@link transition transition} declarations.\n * \n * ```typescript\n * \\@Component({ \n *   selector: 'my-component',\n *   templateUrl: 'my-component-tpl.html',\n *   animations: [\n *     trigger(\"myAnimationTrigger\", [\n *       st
 ate(...),\n *       state(...),\n *       transition(...),\n *       transition(...)\n *     ])\n *   ]\n * })\n * class MyComponent {\n *   myStatusExp = \"something\";\n * }\n * ```\n * \n * The template associated with this component will make use of the `myAnimationTrigger` animation\n * trigger by binding to an element within its template code.\n * \n * ```html\n * <!-- somewhere inside of my-component-tpl.html -->\n * <div [\\@myAnimationTrigger]=\"myStatusExp\">...</div>\n * ```\n * \n * ## Disable Animations\n * A special animation control binding called `\\@.disabled` can be placed on an element which will\n * then disable animations for any inner animation triggers situated within the element as well as\n * any animations on the element itself.\n * \n * When true, the `\\@.disabled` binding will prevent all animations from rendering. The example\n * below shows how to use this feature:\n * \n * ```ts\n * \\@Component({ \n *   selector: 'my-component',\n *   template: `\n *
      <div [\\@.disabled]=\"isDisabled\">\n *       <div [\\@childAnimation]=\"exp\"></div>\n *     </div>\n *   `,\n *   animations: [\n *     trigger(\"childAnimation\", [\n *       // ...\n *     ])\n *   ]\n * })\n * class MyComponent {\n *   isDisabled = true;\n *   exp = '...';\n * }\n * ```\n * \n * The `\\@childAnimation` trigger will not animate because `\\@.disabled` prevents it from happening\n * (when true).\n * \n * Note that `\\@.disbled` will only disable all animations (this means any animations running on\n * the same element will also be disabled).\n * \n * ### Disabling Animations Application-wide\n * When an area of the template is set to have animations disabled, **all** inner components will\n * also have their animations disabled as well. This means that all animations for an angular\n * application can be disabled by placing a host binding set on `\\@.disabled` on the topmost Angular\n * component.\n * \n * ```ts\n * import {Component, HostBinding} from '\\@an
 gular/core';\n * \n * \\@Component({ \n *   selector: 'app-component',\n *   templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n *   \\@HostBinding('\\@.disabled')\n *   public animationsDisabled = true;\n * }\n * ```\n * \n * ### What about animations that us `query()` and `animateChild()`?\n * Despite inner animations being disabled, a parent animation can {\\@link query query} for inner\n * elements located in disabled areas of the template and still animate them as it sees fit. This is\n * also the case for when a sub animation is queried by a parent and then later animated using {\\@link\n * animateChild animateChild}.\n * \n * \\@experimental Animation support is experimental.\n * @param {?} name\n * @param {?} definitions\n * @return {?}\n */\nexport function trigger(name: string, definitions: AnimationMetadata[]): AnimationTriggerMetadata {\n  return {type: AnimationMetadataType.Trigger, name, definitions, options: {}};\n}\n/**\n * `animate` is an animation-
 specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `animate` specifies an animation step that will apply the provided `styles` data for a given\n * amount of time based on the provided `timing` expression value. Calls to `animate` are expected\n * to be used within {\\@link sequence an animation sequence}, {\\@link group group}, or {\\@link\n * transition transition}.\n * \n * ### Usage\n * \n * The `animate` function accepts two input parameters: `timing` and `styles`:\n * \n * - `timing` is a string based value that can be a combination of a duration with optional delay\n * and easing values. The format for the expression breaks down to `duration delay easing`\n * (therefore a value such as `1s 100ms ease-out` will be parse itself into `d
 uration=1000,\n * delay=100, easing=ease-out`. If a numeric value is provided then that will be used as the\n * `duration` value in millisecond form.\n * - `styles` is the style input data which can either be a call to {\\@link style style} or {\\@link\n * keyframes keyframes}. If left empty then the styles from the destination state will be collected\n * and used (this is useful when describing an animation step that will complete an animation by\n * {\\@link transition#the-final-animate-call animating to the final state}).\n * \n * ```typescript\n * // various functions for specifying timing data\n * animate(500, style(...))\n * animate(\"1s\", style(...))\n * animate(\"100ms 0.5s\", style(...))\n * animate(\"5s ease\", style(...))\n * animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\", style(...))\n * \n * // either style() of keyframes() can be used\n * animate(500, style({ background: \"red\" }))\n * animate(500, keyframes([\n *   style({ background: \"blue\" })),\n *   style({ b
 ackground: \"red\" }))\n * ])\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} timings\n * @param {?=} styles\n * @return {?}\n */\nexport function animate(\n    timings: string | number, styles: AnimationStyleMetadata | AnimationKeyframesSequenceMetadata |\n        null = null): AnimationAnimateMetadata {\n  return {type: AnimationMetadataType.Animate, styles, timings};\n}\n/**\n * `group` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `group` specifies a list of animation steps that are all run in parallel. Grouped animations are\n * useful when a series of styles must be animated/closed off at differen
 t starting/ending times.\n * \n * The `group` function can either be used within a {\\@link sequence sequence} or a {\\@link transition\n * transition} and it will only continue to the next instruction once all of the inner animation\n * steps have completed.\n * \n * ### Usage\n * \n * The `steps` data that is passed into the `group` animation function can either consist of {\\@link\n * style style} or {\\@link animate animate} function calls. Each call to `style()` or `animate()`\n * within a group will be executed instantly (use {\\@link keyframes keyframes} or a {\\@link\n * animate#usage animate() with a delay value} to offset styles to be applied at a later time).\n * \n * ```typescript\n * group([\n *   animate(\"1s\", { background: \"black\" }))\n *   animate(\"2s\", { color: \"white\" }))\n * ])\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @par
 am {?=} options\n * @return {?}\n */\nexport function group(\n    steps: AnimationMetadata[], options: AnimationOptions | null = null): AnimationGroupMetadata {\n  return {type: AnimationMetadataType.Group, steps, options};\n}\n/**\n * `sequence` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used by\n * default when an array is passed as animation data into {\\@link transition transition}.)\n * \n * The `sequence` function can either be used within a {\\@link group group} or a {\\@link transition\n * transition} and it will only continue to the next instruction once each of the inner animation\n * steps have completed.\n * \n * To per
 form animation styling in parallel with other animation steps then have a look at the\n * {\\@link group group} animation function.\n * \n * ### Usage\n * \n * The `steps` data that is passed into the `sequence` animation function can either consist of\n * {\\@link style style} or {\\@link animate animate} function calls. A call to `style()` will apply the\n * provided styling data immediately while a call to `animate()` will apply its styling data over a\n * given time depending on its timing data.\n * \n * ```typescript\n * sequence([\n *   style({ opacity: 0 })),\n *   animate(\"1s\", { opacity: 1 }))\n * ])\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nexport function sequence(steps: AnimationMetadata[], options: AnimationOptions | null = null):\n    AnimationSequenceMetadata {\n  return {type: AnimationMetad
 ataType.Sequence, steps, options};\n}\n/**\n * `style` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `style` declares a key/value object containing CSS properties/styles that can then be used for\n * {\\@link state animation states}, within an {\\@link sequence animation sequence}, or as styling data\n * for both {\\@link animate animate} and {\\@link keyframes keyframes}.\n * \n * ### Usage\n * \n * `style` takes in a key/value string map as data and expects one or more CSS property/value pairs\n * to be defined.\n * \n * ```typescript\n * // string values are used for css properties\n * style({ background: \"red\", color: \"blue\" })\n * \n * // numerical (pixel) values are also supported\n * style({ width: 100, heigh
 t: 0 })\n * ```\n * \n * #### Auto-styles (using `*`)\n * \n * When an asterix (`*`) character is used as a value then it will be detected from the element\n * being animated and applied as animation data when the animation starts.\n * \n * This feature proves useful for a state depending on layout and/or environment factors; in such\n * cases the styles are calculated just before the animation starts.\n * \n * ```typescript\n * // the steps below will animate from 0 to the\n * // actual height of the element\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} tokens\n * @return {?}\n */\nexport function style(\n    tokens: '*' | {[key: string]: string | number} |\n    Array<'*'|{[key: string]: string | number}>): AnimationStyleMetadata {\n  return {type: AnimationMetadataType.Style, styles: tokens,
  offset: null};\n}\n/**\n * `state` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `state` declares an animation state within the given trigger. When a state is active within a\n * component then its associated styles will persist on the element that the trigger is attached to\n * (even when the animation ends).\n * \n * To animate between states, have a look at the animation {\\@link transition transition} DSL\n * function. To register states to an animation trigger please have a look at the {\\@link trigger\n * trigger} function.\n * \n * #### The `void` state\n * \n * The `void` state value is a reserved word that angular uses to determine when the element is not\n * apart of the application anymore (e.g. when an `ngI
 f` evaluates to false then the state of the\n * associated element is void).\n * \n * #### The `*` (default) state\n * \n * The `*` state (when styled) is a fallback state that will be used if the state that is being\n * animated is not declared within the trigger.\n * \n * ### Usage\n * \n * `state` will declare an animation state with its associated styles\n * within the given trigger.\n * \n * - `stateNameExpr` can be one or more state names separated by commas.\n * - `styles` refers to the {\\@link style styling data} that will be persisted on the element once\n * the state has been reached.\n * \n * ```typescript\n * // \"void\" is a reserved name for a state and is used to represent\n * // the state in which an element is detached from from the application.\n * state(\"void\", style({ height: 0 }))\n * \n * // user-defined states\n * state(\"closed\", style({ height: 0 }))\n * state(\"open, visible\", style({ height: \"*\" }))\n * ```\n * \n * {\\@example core/animation/ts/dsl
 /animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} name\n * @param {?} styles\n * @param {?=} options\n * @return {?}\n */\nexport function state(\n    name: string, styles: AnimationStyleMetadata,\n    options?: {params: {[name: string]: any}}): AnimationStateMetadata {\n  return {type: AnimationMetadataType.State, name, styles, options};\n}\n/**\n * `keyframes` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `keyframes` specifies a collection of {\\@link style style} entries each optionally characterized\n * by an `offset` value.\n * \n * ### Usage\n * \n * The `keyframes` animation function is designed to be used alongside the {\\@link animate animate}\n
  * animation function. Instead of applying animations from where they are currently to their\n * destination, keyframes can describe how each style entry is applied and at what point within the\n * animation arc (much like CSS Keyframe Animations do).\n * \n * For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at what\n * percentage of the animate time the styles will be applied.\n * \n * ```typescript\n * // the provided offset values describe when each backgroundColor value is applied.\n * animate(\"5s\", keyframes([\n *   style({ backgroundColor: \"red\", offset: 0 }),\n *   style({ backgroundColor: \"blue\", offset: 0.2 }),\n *   style({ backgroundColor: \"orange\", offset: 0.3 }),\n *   style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n * \n * Alternatively, if there are no `offset` values used within the style entries then the offsets\n * will be calculated automatically.\n * \n * ```typescript\n * animate(\"5s\", keyframes([\n *
    style({ backgroundColor: \"red\" }) // offset = 0\n *   style({ backgroundColor: \"blue\" }) // offset = 0.33\n *   style({ backgroundColor: \"orange\" }) // offset = 0.66\n *   style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @return {?}\n */\nexport function keyframes(steps: AnimationStyleMetadata[]): AnimationKeyframesSequenceMetadata {\n  return {type: AnimationMetadataType.Keyframes, steps};\n}\n/**\n * `transition` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `transition` declares the {\\@link sequence sequence of animation s
 teps} that will be run when the\n * provided `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 =>\n * state2` which consists of two known states (use an asterix (`*`) to refer to a dynamic starting\n * and/or ending state).\n * \n * A function can also be provided as the `stateChangeExpr` argument for a transition and this\n * function will be executed each time a state change occurs. If the value returned within the\n * function is true then the associated animation will be run.\n * \n * Animation transitions are placed within an {\\@link trigger animation trigger}. For an transition\n * to animate to a state value and persist its styles then one or more {\\@link state animation\n * states} is expected to be defined.\n * \n * ### Usage\n * \n * An animation transition is kicked off the `stateChangeExpr` predicate evaluates to true based on\n * what the previous state is and what the current state has become. In other words, if a transition\n * is def
 ined that matches the old/current state criteria then the associated animation will be\n * triggered.\n * \n * ```typescript\n * // all transition/state changes are defined within an animation trigger\n * trigger(\"myAnimationTrigger\", [\n *   // if a state is defined then its styles will be persisted when the\n *   // animation has fully completed itself\n *   state(\"on\", style({ background: \"green\" })),\n *   state(\"off\", style({ background: \"grey\" })),\n * \n *   // a transition animation that will be kicked off when the state value\n *   // bound to \"myAnimationTrigger\" changes from \"on\" to \"off\"\n *   transition(\"on => off\", animate(500)),\n * \n *   // it is also possible to do run the same animation for both directions\n *   transition(\"on <=> off\", animate(500)),\n * \n *   // or to define multiple states pairs separated by commas\n *   transition(\"on => off, off => void\", animate(500)),\n * \n *   // this is a catch-all state change for when an element 
 is inserted into\n *   // the page and the destination state is unknown\n *   transition(\"void => *\", [\n *     style({ opacity: 0 }),\n *     animate(500)\n *   ]),\n * \n *   // this will capture a state change between any states\n *   transition(\"* => *\", animate(\"1s 0s\")),\n * \n *   // you can also go full out and include a function\n *   transition((fromState, toState) => {\n *     // when `true` then it will allow the animation below to be invoked\n *     return fromState == \"off\" && toState == \"on\";\n *   }, animate(\"1s 0s\"))\n * ])\n * ```\n * \n * The template associated with this component will make use of the `myAnimationTrigger` animation\n * trigger by binding to an element within its template code.\n * \n * ```html\n * <!-- somewhere inside of my-component-tpl.html -->\n * <div [\\@myAnimationTrigger]=\"myStatusExp\">...</div>\n * ```\n * \n * #### The final `animate` call\n * \n * If the final step within the transition steps is a call to `animate()` that
  **only** uses a\n * timing value with **no style data** then it will be automatically used as the final animation arc\n * for the element to animate itself to the final state. This involves an automatic mix of\n * adding/removing CSS styles so that the element will be in the exact state it should be for the\n * applied state to be presented correctly.\n * \n * ```\n * // start off by hiding the element, but make sure that it animates properly to whatever state\n * // is currently active for \"myAnimationTrigger\"\n * transition(\"void => *\", [\n *   style({ opacity: 0 }),\n *   animate(500)\n * ])\n * ```\n * \n * ### Transition Aliases (`:enter` and `:leave`)\n * \n * Given that enter (insertion) and leave (removal) animations are so common, the `transition`\n * function accepts both `:enter` and `:leave` values which are aliases for the `void => *` and `*\n * => void` state changes.\n * \n * ```\n * transition(\":enter\", [\n *   style({ opacity: 0 }),\n *   animate(500, style({
  opacity: 1 }))\n * ])\n * transition(\":leave\", [\n *   animate(500, style({ opacity: 0 }))\n * ])\n * ```\n * \n * ### Boolean values\n * if a trigger binding value is a boolean value then it can be matched using a transition\n * expression that compares `true` and `false` or `1` and `0`.\n * \n * ```\n * // in the template\n * <div [\\@openClose]=\"open ? true : false\">...</div>\n * \n * // in the component metadata\n * trigger('openClose', [\n *   state('true', style({ height: '*' })),\n *   state('false', style({ height: '0px' })),\n *   transition('false <=> true', animate(500))\n * ])\n * ```\n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} stateChangeExpr\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nexport function transition(\n    stateChangeExpr: string, steps: AnimationMetadata | AnimationMetadata[],\n    options: AnimationOptions | null = null)
 : AnimationTransitionMetadata {\n  return {type: AnimationMetadataType.Transition, expr: stateChangeExpr, animation: steps, options};\n}\n/**\n * `animation` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language.\n * \n * `var myAnimation = animation(...)` is designed to produce a reusable animation that can be later\n * invoked in another animation or sequence. Reusable animations are designed to make use of\n * animation parameters and the produced animation can be used via the `useAnimation` method.\n * \n * ```\n * var fadeAnimation = animation([\n *   style({ opacity: '{{ start }}' }),\n *   animate('{{ time }}',\n *     style({ opacity: '{{ end }}'}))\n * ], { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n * \n * If parameters are attached to an animation then they act as **default parameter values**. When an\n * animation is invoked via `useAnimation` then parameter values are allowed to be passed in\n * direct
 ly. If any of the passed in parameter values are missing then the default values will be\n * used.\n * \n * ```\n * useAnimation(fadeAnimation, {\n *   params: {\n *     time: '2s',\n *     start: 1,\n *     end: 0\n *   }\n * })\n * ```\n * \n * If one or more parameter values are missing before animated then an error will be thrown.\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nexport function animation(\n    steps: AnimationMetadata | AnimationMetadata[],\n    options: AnimationOptions | null = null): AnimationReferenceMetadata {\n  return {type: AnimationMetadataType.Reference, animation: steps, options};\n}\n/**\n * `animateChild` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. It works by allowing a queried element to execute its own\n * animation within the animation sequence.\n * \n * Each time an animation is triggered in angular, th
 e parent animation\n * will always get priority and any child animations will be blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations and then allow the animations to run using `animateChild`.\n * \n * The example HTML code below shows both parent and child elements that have animation\n * triggers that will execute at the same time.\n * \n * ```html\n * <!-- parent-child.component.html -->\n * <button (click)=\"exp =! exp\">Toggle</button>\n * <hr>\n * \n * <div [\\@parentAnimation]=\"exp\">\n *   <header>Hello</header>\n *   <div [\\@childAnimation]=\"exp\">\n *       one\n *   </div>\n *   <div [\\@childAnimation]=\"exp\">\n *       two\n *   </div>\n *   <div [\\@childAnimation]=\"exp\">\n *       three\n *   </div>\n * </div>\n * ```\n * \n * Now when the `exp` value changes to true, only the `parentAnimation` animation will animate\n * because it has priority. However, using `query` and `animat
 eChild` each of the inner animations\n * can also fire:\n * \n * ```ts\n * // parent-child.component.ts\n * import {trigger, transition, animate, style, query, animateChild} from '\\@angular/animations';\n * \\@Component({ \n *   selector: 'parent-child-component',\n *   animations: [\n *     trigger('parentAnimation', [\n *       transition('false => true', [\n *         query('header', [\n *           style({ opacity: 0 }),\n *           animate(500, style({ opacity: 1 }))\n *         ]),\n *         query('\\@childAnimation', [\n *           animateChild()\n *         ])\n *       ])\n *     ]),\n *     trigger('childAnimation', [\n *       transition('false => true', [\n *         style({ opacity: 0 }),\n *         animate(500, style({ opacity: 1 }))\n *       ])\n *     ])\n *   ]\n * })\n * class ParentChildCmp {\n *   exp: boolean = false;\n * }\n * ```\n * \n * In the animation code above, when the `parentAnimation` transition kicks off it first queries to\n * find the heade
 r element and fades it in. It then finds each of the sub elements that contain the\n * `\\@childAnimation` trigger and then allows for their animations to fire.\n * \n * This example can be further extended by using stagger:\n * \n * ```ts\n * query('\\@childAnimation', stagger(100, [\n *   animateChild()\n * ]))\n * ```\n * \n * Now each of the sub animations start off with respect to the `100ms` staggering step.\n * \n * ## The first frame of child animations\n * When sub animations are executed using `animateChild` the animation engine will always apply the\n * first frame of every sub animation immediately at the start of the animation sequence. This way\n * the parent animation does not need to set any initial styling data on the sub elements before the\n * sub animations kick off.\n * \n * In the example above the first frame of the `childAnimation`'s `false => true` transition\n * consists of a style of `opacity: 0`. This is applied immediately when the `parentAnimation`\n * 
 animation transition sequence starts. Only then when the `\\@childAnimation` is queried and called\n * with `animateChild` will it then animate to its destination of `opacity: 1`.\n * \n * Note that this feature designed to be used alongside {\\@link query query()} and it will only work\n * with animations that are assigned using the Angular animation DSL (this means that CSS keyframes\n * and transitions are not handled by this API).\n * \n * \\@experimental Animation support is experimental.\n * @param {?=} options\n * @return {?}\n */\nexport function animateChild(options: AnimateChildOptions | null = null):\n    AnimationAnimateChildMetadata {\n  return {type: AnimationMetadataType.AnimateChild, options};\n}\n/**\n * `useAnimation` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. It is used to kick off a reusable animation that is created using {\\@link\n * animation animation()}.\n * \n * \\@experimental Animation sup
 port is experimental.\n * @param {?} animation\n * @param {?=} options\n * @return {?}\n */\nexport function useAnimation(\n    animation: AnimationReferenceMetadata,\n    options: AnimationOptions | null = null): AnimationAnimateRefMetadata {\n  return {type: AnimationMetadataType.AnimateRef, animation, options};\n}\n/**\n * `query` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language.\n * \n * query() is used to find one or more inner elements within the current element that is\n * being animated within the sequence. The provided animation steps are applied\n * to the queried element (by default, an array is provided, then this will be\n * treated as an animation sequence).\n * \n * ### Usage\n * \n * query() is designed to collect mutiple elements and works internally by using\n * `element.querySelectorAll`. An additional options object can be provided which\n * can be used to limit the total amount of items to be collected.
 \n * \n * ```js\n * query('div', [\n *   animate(...),\n *   animate(...)\n * ], { limit: 1 })\n * ```\n * \n * query(), by default, will throw an error when zero items are found. If a query\n * has the `optional` flag set to true then this error will be ignored.\n * \n * ```js\n * query('.some-element-that-may-not-be-there', [\n *   animate(...),\n *   animate(...)\n * ], { optional: true })\n * ```\n * \n * ### Special Selector Values\n * \n * The selector value within a query can collect elements that contain angular-specific\n * characteristics\n * using special pseudo-selectors tokens.\n * \n * These include:\n * \n *  - Querying for newly inserted/removed elements using `query(\":enter\")`/`query(\":leave\")`\n *  - Querying all currently animating elements using `query(\":animating\")`\n *  - Querying elements that contain an animation trigger using `query(\"\\@triggerName\")`\n *  - Querying all elements that contain an animation triggers using `query(\"\\@*\")`\n *  - Inclu
 ding the current element into the animation sequence using `query(\":self\")`\n * \n * \n *  Each of these pseudo-selector tokens can be merged together into a combined query selector\n * string:\n * \n *  ```\n *  query(':self, .record:enter, .record:leave, \\@subTrigger', [...])\n *  ```\n * \n * ### Demo\n * \n * ```\n * \\@Component({ \n *   selector: 'inner',\n *   template: `\n *     <div [\\@queryAnimation]=\"exp\">\n *       <h1>Title</h1>\n *       <div class=\"content\">\n *         Blah blah blah\n *       </div>\n *     </div>\n *   `,\n *   animations: [\n *    trigger('queryAnimation', [\n *      transition('* => goAnimate', [\n *        // hide the inner elements\n *        query('h1', style({ opacity: 0 })),\n *        query('.content', style({ opacity: 0 })),\n * \n *        // animate the inner elements in, one by one\n *        query('h1', animate(1000, style({ opacity: 1 })),\n *        query('.content', animate(1000, style({ opacity: 1 })),\n *      ])\n *    ])
 \n *  ]\n * })\n * class Cmp {\n *   exp = '';\n * \n *   goAnimate() {\n *     this.exp = 'goAnimate';\n *   }\n * }\n * ```\n * \n * \\@experimental Animation support is experimental.\n * @param {?} selector\n * @param {?} animation\n * @param {?=} options\n * @return {?}\n */\nexport function query(\n    selector: string, animation: AnimationMetadata | AnimationMetadata[],\n    options: AnimationQueryOptions | null = null): AnimationQueryMetadata {\n  return {type: AnimationMetadataType.Query, selector, animation, options};\n}\n/**\n * `stagger` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. It is designed to be used inside of an animation {\\@link query query()}\n * and works by issuing a timing gap between after each queried item is animated.\n * \n * ### Usage\n * \n * In the example below there is a container element that wraps a list of items stamped out\n * by an ngFor. The container element contains an animatio
 n trigger that will later be set\n * to query for each of the inner items.\n * \n * ```html\n * <!-- list.component.html -->\n * <button (click)=\"toggle()\">Show / Hide Items</button>\n * <hr />\n * <div [\\@listAnimation]=\"items.length\">\n *   <div *ngFor=\"let item of items\">\n *     {{ item }}\n *   </div>\n * </div>\n * ```\n * \n * The component code for this looks as such:\n * \n * ```ts\n * import {trigger, transition, style, animate, query, stagger} from '\\@angular/animations';\n * \\@Component({ \n *   templateUrl: 'list.component.html',\n *   animations: [\n *     trigger('listAnimation', [\n *        //...\n *     ])\n *   ]\n * })\n * class ListComponent {\n *   items = [];\n * \n *   showItems() {\n *     this.items = [0,1,2,3,4];\n *   }\n * \n *   hideItems() {\n *     this.items = [];\n *   }\n * \n *   toggle() {\n *     this.items.length ? this.hideItems() : this.showItems();\n *   }\n * }\n * ```\n * \n * And now for the animation trigger code:\n * \n * ```ts
 \n * trigger('listAnimation', [\n *   transition('* => *', [ // each time the binding value changes\n *     query(':leave', [\n *       stagger(100, [\n *         animate('0.5s', style({ opacity: 0 }))\n *       ])\n *     ]),\n *     query(':enter', [\n *       style({ opacity: 0 }),\n *       stagger(100, [\n *         animate('0.5s', style({ opacity: 1 }))\n *       ])\n *     ])\n *   ])\n * ])\n * ```\n * \n * Now each time the items are added/removed then either the opacity\n * fade-in animation will run or each removed item will be faded out.\n * When either of these animations occur then a stagger effect will be\n * applied after each item's animation is started.\n * \n * \\@experimental Animation support is experimental.\n * @param {?} timings\n * @param {?} animation\n * @return {?}\n */\nexport function stagger(\n    timings: string | number,\n    animation: AnimationMetadata | AnimationMetadata[]): AnimationStaggerMetadata {\n  return {type: AnimationMetadataType.Stagger
 , timings, animation};\n}\n","/**\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\nimport {AnimationMetadata, AnimationOptions} from './animation_metadata';\nimport {AnimationPlayer} from './players/animation_player';\n/**\n * AnimationBuilder is an injectable service that is available when the {\\@link\n * BrowserAnimationsModule BrowserAnimationsModule} or {\\@link NoopAnimationsModule\n * NoopAnimationsModule} modules are used within an application.\n * \n * The purpose if this service is to produce an animation sequence programmatically within an\n * angular component or directive.\n * \n * Programmatic animations are first built and then a player is created when the build animation is\n * attached to an element.\n * \n * ```ts\n * // remember to include the BrowserAnimationsModule module for this to work...\n * import {An
 imationBuilder} from '\\@angular/animations';\n * \n * class MyCmp {\n *   constructor(private _builder: AnimationBuilder) {}\n * \n *   makeAnimation(element: any) {\n *     // first build the animation\n *     const myAnimation = this._builder.build([\n *       style({ width: 0 }),\n *       animate(1000, style({ width: '100px' }))\n *     ]);\n * \n *     // then create a player from it\n *     const player = myAnimation.create(element);\n * \n *     player.play();\n *   }\n * }\n * ```\n * \n * When an animation is built an instance of {\\@link AnimationFactory AnimationFactory} will be\n * returned. Using that an {\\@link AnimationPlayer AnimationPlayer} can be created which can then be\n * used to start the animation.\n * \n * \\@experimental Animation support is experimental.\n * @abstract\n */\nexport abstract class AnimationBuilder {\n/**\n * @abstract\n * @param {?} animation\n * @return {?}\n */\nbuild(animation: AnimationMetadata|AnimationMetadata[]) {}\n}\n/**\n * An in
 stance of `AnimationFactory` is returned from {\\@link AnimationBuilder#build\n * AnimationBuilder.build}.\n * \n * \\@experimental Animation support is experimental.\n * @abstract\n */\nexport abstract class AnimationFactory {\n/**\n * @abstract\n * @param {?} element\n * @param {?=} options\n * @return {?}\n */\ncreate(element: any, options?: AnimationOptions) {}\n}\n"],"names":[],"mappings":"AQAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,AAAA,MAAA,gBAAA,CAAA;;;;;;IAMA,KANY,CAAA,SAAA,EAMZ,GANY;CAOX;;;;;;;;AAQD,AAAA,MAAA,gBAAA,CAAA;;;;;;;IAOA,MAZY,CAAA,OAAA,EAAA,OAAA,EAYZ,GAZY;CAaX;;ADED;;;AAGA,AACC,MAAA,UAAA,GAAA,GAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuRD,AAAA,SAAA,OAAA,CADC,IAAA,EAAA,WAAA,EACD;IACE,OADO,EAAA,IAAE,EACX,CAAA,gBAD+C,IAAA,EAAM,WAAA,EAAa,OAAA,EAAS,EAAA,EAAG,CAAC;CAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDD,AAAA,SAAA,OAAA,CACI,OAAwB,EAAE,MAD9B,GAEe,IAAI,EA
 FnB;IAGE,OAHO,EAAA,IAAE,EAGX,CAAA,gBAH+C,MAAA,EAAQ,OAAA,EAAQ,CAAC;CAI/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCD,AAAA,SAAA,KAAA,CACI,KAA0B,EAAE,OADhC,GACmE,IAAI,EADvE;IAEE,OALO,EAAA,IAAE,EAKX,CAAA,cAL6C,KAAA,EAAO,OAAA,EAAQ,CAAC;CAM5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCD,AAAA,SAAA,QAAA,CAPC,KAAA,EAAA,OAOD,GAPC,IAAA,EAOD;IAEE,OAPO,EAAA,IAAE,EAOX,CAAA,iBAPgD,KAAA,EAAO,OAAA,EAAQ,CAAC;CAQ/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CD,AAAA,SAAA,KAAA,CACI,MAC2C,EAF/C;IAGE,OARO,EAAA,IAAE,EAQX,CAAA,cAR6C,MAAA,EAAQ,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAK,CAAC;CAS1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDD,AAAA,SAAA,KAAA,CACI,IAAY,EAAE,MAA8B,EAC5C,OAAyC,EAF7C;IAGE,OAXO,EAAA,IAAE,EAWX,CAAA,cAX6C,IAAA,EAAM,MAAA,EAAQ,OAAA,EAAQ,CAAC;CAYnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDD,AAAA,SAAA,SAAA,CAZC,KAAA,EAYD;IACE,OAZO,EAAA,IAAE,EAYX,CAAA,kBAZiD,KAAA,EAAM,CAAC;CAavD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;AA+HD,AAAA,SAAA,UAAA,CACI,eAAuB,EAAE,KAA8C,EACvE,OAFJ,GAEuC,IAAI,EAF3C;IAGE,OAfO,EAAA,IAAE,EAeX,CAAA,mBAfkD,IAAA,EAAM,eAAA,EAAiB,SAAA,EAAW,KAAA,EAAO,OAAA,EAAQ,CAAC;CAgBnG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCD,AAAA,SAAA,SAAA,CACI,KAA8C,EAC9C,OAFJ,GAEuC,IAAI,EAF3C;IAGE,OAjBO,EAAA,IAAE,EAiBX,CAAA,kBAjBiD,SAAA,EAAW,KAAA,EAAO,OAAA,EAAQ,CAAC;CAkB3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoGD,AAAA,SAAA,YAAA,CAlBC,OAkBD,GAlBC,IAAA,EAkBD;IAEE,OAlBO,EAAA,IAAE,EAkBX,CAAA,qBAlBoD,OAAA,EAAQ,CAAC;CAmB5D;;;;;;;;;;;AAWD,AAAA,SAAA,YAAA,CACI,SAAqC,EACrC,OAFJ,GAEuC,IAAI,EAF3C;IAGE,OApBO,EAAA,IAAE,EAoBX,EAAA,mBApBkD,SAAA,EAAW,OAAA,EAAQ,CAAC;CAqBrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiGD,AAAA,SAAA,KAAA,CACI,QAAgB,EAAE,SAAkD,EACpE,OAFJ,GAE4C,IAAI,EAFhD;IAGE,OAvBO,EAAA,IAAE,EAuBX,EAAA,cAvB6C,QAAA,EAAU,SAAA,EAAW,OAAA,EAAQ,CAAC;CAwB1E;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkFD,AAAA,SAAA,OAAA,CACI,OAAwB,EACxB,SAAkD,EAFtD;IAGE,OAzBO,EAAA,IAAE,EAyBX,EAAA,gBAzB+C,OAAA,EAAS,SAAA,EAAU,CAAC;CA0BlE;;ADtmCD;;;;;;;;;AASA,AAAA,SAAA,iBAAA,CAHC,EAAA,EAGD;IACE,OAAO,CAHC,OAAC,CAAO,IAAC,CAAI,CAAC,IAAC,CAAI,EAAC,CAAE,CAAC;CAIhC;;ADZD;;;;;;;AAQA,AA2BA;;;AAGA,AAAA,MAAA,mBAAA,CAAA;IASA,WAAA,GAAA;QARU,IAAV,CAAA,UAAU,GAAyB,EAAA,CAAG;QAC5B,IAAV,CAAA,WAAU,GAA0B,EAAA,CAAG;QAC7B,IAAV,CAAA,aAAU,GAA4B,EAAA,CAAG;QAC/B,IAAV,CAAA,QAAU,GAAW,KAAA,CAAM;QACjB,IAAV,CAAA,UAAU,GAAa,KAAA,CAAM;QACnB,IAAV,CAAA,SAAU,GAAY,KAAA,CAAM;QACnB,IAAT,CAAA,YAAS,GAAqC,IAAA,CAAK;QAC1C,IAAT,CAAA,SAAS,GAAY,CAAA,CAAE;KACpB;;;;IACA,SAAA,GAAH;QAII,IAAI,CAHC,IAAC,CAAI,SAAC,EAAU;YAInB,IAAI,CAHC,SAAC,GAAW,IAAA,CAAK;YAItB,IAAI,CAHC,UAAC,CAAU,OAAC,CAAO,EAAC,IAAK,EAAA,EAAG,CAAE,CAAC;YAIpC,IAAI,CAHC,UAAC,GAAY,EAAA,CAAG;SAItB;KACF;;;;;IAKH,OAPG,CAAA,EAAA,EAOH,EAPkC,IAAA,CAAK,WAAC,CAAW,IAAC,CAAI,EAAC,CAAE,CAAC,EAAC;;;;;IAY7D,MAXG,CAAA,EAAA,EAWH,EAXiC,IAAA,CAAK
 ,UAAC,CAAU,IAAC,CAAI,EAAC,CAAE,CAAC,EAAC;;;;;IAgB3D,SAfG,CAAA,EAAA,EAeH,EAfoC,IAAA,CAAK,aAAC,CAAa,IAAC,CAAI,EAAC,CAAE,CAAC,EAAC;;;;IAmBjE,UAlBG,GAkBH,EAlB0B,OAAO,IAAA,CAAK,QAAC,CAAQ,EAAC;;;;IAsBhD,IArBG,GAqBH,GArBe;;;;IAyBf,IAxBG,GAwBH;QACI,IAAI,CAxBC,IAAC,CAAI,UAAC,EAAU,EAAG;YAyBtB,IAAI,CAxBC,gBAAC,EAAgB,CAAE;YAyBxB,IAAI,CAxBC,QAAC,EAAQ,CAAE;SAyBjB;QACD,IAAI,CAxBC,QAAC,GAAU,IAAA,CAAK;KAyBtB;;;;IAIH,gBAzBG,GAyBH,EAzBuB,iBAAA,CAAkB,MAAM,IAAA,CAAK,SAAC,EAAS,CAAE,CAAC,EAAC;;;;IAE/D,QAAA,GAAH;QA4BI,IAAI,CA3BC,WAAC,CAAW,OAAC,CAAO,EAAC,IAAK,EAAA,EAAG,CAAE,CAAC;QA4BrC,IAAI,CA3BC,WAAC,GAAa,EAAA,CAAG;KA4BvB;;;;IAIH,KA7BG,GA6BH,GA7BgB;;;;IAiChB,OAhCG,GAgCH,GAhCkB;;;;IAoClB,MAnCG,GAmCH,EAnCmB,IAAA,CAAK,SAAC,EAAS,CAAE,EAAC;;;;IAuCrC,OAtCG,GAsCH;QACI,IAAI,CAtCC,IAAC,CAAI,UAAC,EAAW;YAuCpB,IAAI,CAtCC,UAAC,GAAY,IAAA,CAAK;YAuCvB,IAAI,CAtCC,IAAC,CAAI,UAAC,EAAU,EAAG;gBAuCtB,IAAI,CAtCC,QAAC,EAAQ,CAAE;aAuCjB;YACD,IAAI,CAtCC,MAAC,EAAM,CAAE;YAuCd,IAAI,CAtCC,aAAC,CAAa,OAAC,CAAO,EAAC,IAAK,EAAA,EAAG,CAAE,CAA
 C;YAuCvC,IAAI,CAtCC,aAAC,GAAe,EAAA,CAAG;SAuCzB;KACF;;;;IAIH,KAzCG,GAyCH,GAzCgB;;;;;IA8ChB,WA7CG,CAAA,CAAA,EA6CH,GA7C+B;;;;IAiD/B,WAhDG,GAgDH,EAhD0B,OAAO,CAAA,CAAE,EAAC;CAiDnC,AAED,AAiBC;;ADhKD;;;;;;;AASA,AAEA,AAAA,MAAA,oBAAA,CAAA;;;;IAYA,WAAA,CADsB,QAA0B,EAChD;QADsB,IAAtB,CAAA,QAAsB,GAAA,QAAA,CAA0B;QAVtC,IAAV,CAAA,UAAU,GAAyB,EAAA,CAAG;QAC5B,IAAV,CAAA,WAAU,GAA0B,EAAA,CAAG;QAC7B,IAAV,CAAA,SAAU,GAAY,KAAA,CAAM;QAClB,IAAV,CAAA,QAAU,GAAW,KAAA,CAAM;QACjB,IAAV,CAAA,UAAU,GAAa,KAAA,CAAM;QACnB,IAAV,CAAA,aAAU,GAA4B,EAAA,CAAG;QAEhC,IAAT,CAAA,YAAS,GAAqC,IAAA,CAAK;QAC1C,IAAT,CAAA,SAAS,GAAoB,CAAA,CAAE;QAI3B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEnC,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,iBAAiB,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;SAC3C;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAlC;gBACQ,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,MAAtB;oBACU,IAAI,EAAE,SAAS,IAAI,KAAK,EAAE;wBACxB,IAAI,CAA
 C,SAAS,EAAE,CAAC;qBAClB;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,SAAS,CAAC,MAAzB;oBACU,IAAI,EAAE,YAAY,IAAI,KAAK,EAAE;wBAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;qBACnB;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,OAAO,CAAC,MAAvB;oBACU,IAAI,EAAE,UAAU,IAAI,KAAK,EAAE;wBACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;qBACjB;iBACF,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9F;;;;IACA,SAAA,GAAH;QAII,IAAI,CAHC,IAAC,CAAI,SAAC,EAAU;YAInB,IAAI,CAHC,SAAC,GAAW,IAAA,CAAK;YAItB,IAAI,CAHC,UAAC,CAAU,OAAC,CAAO,EAAC,IAAK,EAAA,EAAG,CAAE,CAAC;YAIpC,IAAI,CAHC,UAAC,GAAY,EAAA,CAAG;SAItB;KACF;;;;IAIH,IALG,GAKH,EALiB,IAAA,CAAK,QAAC,CAAQ,OAAC,CAAO,MAAC,IAAS,MAAA,CAAO,IAAC,EAAI,CAAE,CAAC,EAAC;;;;;IAUjE,OARG,CAAA,EAAA,EAQH,EARkC,IAAA,CAAK,WAAC,CAAW,IAAC,CAAI,EAAC,CAAE,CAAC,EAAC;;;;IAE1D,QAAA,GAAH;QAWI,IAAI,CAVC,IAAC,CAAI,UAAC,EAAU,EAAG;YAWtB,IAAI,CAVC,WAAC,CAAW,OAAC,CAAO,EAAC,IAAK,EAAA,EAAG,CAAE,CAAC;YAWrC,IAAI,CAVC,WAAC,GA
 Aa,EAAA,CAAG;YAWtB,IAAI,CAVC,QAAC,GAAU,IAAA,CAAK;SAWtB;KACF;;;;;IAKH,MAbG,CAAA,EAAA,EAaH,EAbiC,IAAA,CAAK,UAAC,CAAU,IAAC,CAAI,EAAC,CAAE,CAAC,EAAC;;;;;IAkB3D,SAhBG,CAAA,EAAA,EAgBH,EAhBoC,IAAA,CAAK,aAAC,CAAa,IAAC,CAAI,EAAC,CAAE,CAAC,EAAC;;;;IAoBjE,UAlBG,GAkBH,EAlBiB,OAAO,IAAA,CAAK,QAAC,CAAQ,EAAC;;;;IAsBvC,IApBG,GAoBH;QACI,IAAI,CApBC,IAAC,CAAI,YAAC,EAAa;YAqBtB,IAAI,CApBC,IAAC,EAAI,CAAE;SAqBb;QACD,IAAI,CApBC,QAAC,EAAQ,CAAE;QAqBhB,IAAI,CApBC,QAAC,CAAQ,OAAC,CAAO,MAAC,IAAS,MAAA,CAAO,IAAC,EAAI,CAAE,CAAC;KAqBhD;;;;IAIH,KAtBG,GAsBH,EAtBkB,IAAA,CAAK,QAAC,CAAQ,OAAC,CAAO,MAAC,IAAS,MAAA,CAAO,KAAC,EAAK,CAAE,CAAC,EAAC;;;;IA0BnE,OAxBG,GAwBH,EAxBoB,IAAA,CAAK,QAAC,CAAQ,OAAC,CAAO,MAAC,IAAS,MAAA,CAAO,OAAC,EAAO,CAAE,CAAC,EAAC;;;;IA4BvE,MA1BG,GA0BH;QACI,IAAI,CA1BC,SAAC,EAAS,CAAE;QA2BjB,IAAI,CA1BC,QAAC,CAAQ,OAAC,CAAO,MAAC,IAAS,MAAA,CAAO,MAAC,EAAM,CAAE,CAAC;KA2BlD;;;;IAIH,OA5BG,GA4BH,EA5BoB,IAAA,CAAK,UAAC,EAAU,CAAE,EAAC;;;;IAEpC,UAAA,GAAH;QA+BI,IAAI,CA9BC,IAAC,CAAI,UAAC,EAAW;YA+BpB,IAAI,CA9BC,UAAC,GAAY,IAAA,
 CAAK;YA+BvB,IAAI,CA9BC,SAAC,EAAS,CAAE;YA+BjB,IAAI,CA9BC,QAAC,CAAQ,OAAC,CAAO,MAAC,IAAS,MAAA,CAAO,OAAC,EAAO,CAAE,CAAC;YA+BlD,IAAI,CA9BC,aAAC,CAAa,OAAC,CAAO,EAAC,IAAK,EAAA,EAAG,CAAE,CAAC;YA+BvC,IAAI,CA9BC,aAAC,GAAe,EAAA,CAAG;SA+BzB;KACF;;;;IAIH,KAhCG,GAgCH;QACI,IAAI,CAhCC,QAAC,CAAQ,OAAC,CAAO,MAAC,IAAS,MAAA,CAAO,KAAC,EAAK,CAAE,CAAC;QAiChD,IAAI,CAhCC,UAAC,GAAY,KAAA,CAAM;QAiCxB,IAAI,CAhCC,SAAC,GAAW,KAAA,CAAM;QAiCvB,IAAI,CAhCC,QAAC,GAAU,KAAA,CAAM;KAiCvB;;;;;IAKH,WAnCG,CAAA,CAAA,EAmCH;QACI,uBAnCM,cAAA,GAAiB,CAAA,GAAI,IAAA,CAAK,SAAC,CAAS;QAoC1C,IAAI,CAnCC,QAAC,CAAQ,OAAC,CAAO,MAAC,IAmC3B;YACM,uBAnCM,QAAA,GAAW,MAAA,CAAO,SAAC,GAAW,IAAA,CAAK,GAAC,CAAG,CAAC,EAAE,cAAA,GAAiB,MAAA,CAAO,SAAC,CAAS,GAAG,CAAA,CAAE;YAoCvF,MAAM,CAnCC,WAAC,CAAW,QAAC,CAAQ,CAAC;SAoC9B,CAnCC,CAAC;KAoCJ;;;;IAIH,WArCG,GAqCH;QACI,qBArCI,GAAA,GAAM,CAAA,CAAE;QAsCZ,IAAI,CArCC,QAAC,CAAQ,OAAC,CAAO,MAAC,IAqC3B;YACM,uBArCM,CAAA,GAAI,MAAA,CAAO,WAAC,EAAW,CAAE;YAsC/B,GAAG,GArCG,IAAA,CAAK,GAAC,CAAG,CAAC,EAAE,GAAA,CAAI,CAAC;SAsCxB,CArCC,CAA
 C;QAsCH,OArCO,GAAA,CAAI;KAsCZ;;;;IAIH,IAvCG,OAAA,GAuCH,EAvCqC,OAAO,IAAA,CAAK,QAAC,CAAQ,EAAC;;;;IA2C3D,aAzCG,GAyCH;QACI,IAAI,CAzCC,OAAC,CAAO,OAAC,CAAO,MAAC,IAyC1B;YACM,IAAI,MAzCC,CAAM,aAAC,EAAc;gBA0CxB,MAAM,CAzCC,aAAC,EAAa,CAAE;aA0CxB;SACF,CAzCC,CAAC;KA0CJ;CACF,AAED,AAmBC;;AD5MD;;;;;;;AAOA,AACA,AAAO,MAAM,UAAA,GAAa,GAAA,CAAI;;ADR9B;;;;;;;;;;;GAYG,AACH,AAEA,AACA,AAEA,AAAkE;;ADlBlE;;;;;;;;;;;GAYG,AACH,AAAsuB;;ADbtuB;;GAEG,AAEH,AAAkuB;;"}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-portal.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-portal.umd.js b/node_modules/@angular/cdk/bundles/cdk-portal.umd.js
new file mode 100644
index 0000000..b3f4031
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-portal.umd.js
@@ -0,0 +1,625 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core')) :
+	typeof define === 'function' && define.amd ? define(['exports', '@angular/core'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.portal = global.ng.cdk.portal || {}),global.ng.core));
+}(this, (function (exports,_angular_core) { 'use strict';
+
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+/* global Reflect, Promise */
+
+var extendStatics = Object.setPrototypeOf ||
+    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+
+function __extends(d, b) {
+    extendStatics(d, b);
+    function __() { this.constructor = d; }
+    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+
+/**
+ * Throws an exception when attempting to attach a null portal to a host.
+ * \@docs-private
+ * @return {?}
+ */
+function throwNullPortalError() {
+    throw Error('Must provide a portal to attach');
+}
+/**
+ * Throws an exception when attempting to attach a portal to a host that is already attached.
+ * \@docs-private
+ * @return {?}
+ */
+function throwPortalAlreadyAttachedError() {
+    throw Error('Host already has a portal attached');
+}
+/**
+ * Throws an exception when attempting to attach a portal to an already-disposed host.
+ * \@docs-private
+ * @return {?}
+ */
+function throwPortalHostAlreadyDisposedError() {
+    throw Error('This PortalHost has already been disposed');
+}
+/**
+ * Throws an exception when attempting to attach an unknown portal type.
+ * \@docs-private
+ * @return {?}
+ */
+function throwUnknownPortalTypeError() {
+    throw Error('Attempting to attach an unknown Portal type. BasePortalHost accepts either ' +
+        'a ComponentPortal or a TemplatePortal.');
+}
+/**
+ * Throws an exception when attempting to attach a portal to a null host.
+ * \@docs-private
+ * @return {?}
+ */
+function throwNullPortalHostError() {
+    throw Error('Attempting to attach a portal to a null PortalHost');
+}
+/**
+ * Throws an exception when attempting to detach a portal that is not attached.
+ * \@docs-privatew
+ * @return {?}
+ */
+function throwNoPortalAttachedError() {
+    throw Error('Attempting to detach a portal that is not attached to a host');
+}
+
+/**
+ * A `Portal` is something that you want to render somewhere else.
+ * It can be attach to / detached from a `PortalHost`.
+ * @abstract
+ */
+var Portal = (function () {
+    function Portal() {
+    }
+    /**
+     * Attach this portal to a host.
+     * @param {?} host
+     * @return {?}
+     */
+    Portal.prototype.attach = function (host) {
+        if (host == null) {
+            throwNullPortalHostError();
+        }
+        if (host.hasAttached()) {
+            throwPortalAlreadyAttachedError();
+        }
+        this._attachedHost = host;
+        return (host.attach(this));
+    };
+    /**
+     * Detach this portal from its host
+     * @return {?}
+     */
+    Portal.prototype.detach = function () {
+        var /** @type {?} */ host = this._attachedHost;
+        if (host == null) {
+            throwNoPortalAttachedError();
+        }
+        else {
+            this._attachedHost = null;
+            host.detach();
+        }
+    };
+    Object.defineProperty(Portal.prototype, "isAttached", {
+        /**
+         * Whether this portal is attached to a host.
+         * @return {?}
+         */
+        get: function () {
+            return this._attachedHost != null;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Sets the PortalHost reference without performing `attach()`. This is used directly by
+     * the PortalHost when it is performing an `attach()` or `detach()`.
+     * @param {?} host
+     * @return {?}
+     */
+    Portal.prototype.setAttachedHost = function (host) {
+        this._attachedHost = host;
+    };
+    return Portal;
+}());
+/**
+ * A `ComponentPortal` is a portal that instantiates some Component upon attachment.
+ */
+var ComponentPortal = (function (_super) {
+    __extends(ComponentPortal, _super);
+    /**
+     * @param {?} component
+     * @param {?=} viewContainerRef
+     * @param {?=} injector
+     */
+    function ComponentPortal(component, viewContainerRef, injector) {
+        var _this = _super.call(this) || this;
+        _this.component = component;
+        _this.viewContainerRef = viewContainerRef;
+        _this.injector = injector;
+        return _this;
+    }
+    return ComponentPortal;
+}(Portal));
+/**
+ * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).
+ */
+var TemplatePortal = (function (_super) {
+    __extends(TemplatePortal, _super);
+    /**
+     * @param {?} template
+     * @param {?} viewContainerRef
+     * @param {?=} context
+     */
+    function TemplatePortal(template, viewContainerRef, context) {
+        var _this = _super.call(this) || this;
+        _this.templateRef = template;
+        _this.viewContainerRef = viewContainerRef;
+        if (context) {
+            _this.context = context;
+        }
+        return _this;
+    }
+    Object.defineProperty(TemplatePortal.prototype, "origin", {
+        /**
+         * @return {?}
+         */
+        get: function () {
+            return this.templateRef.elementRef;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Attach the the portal to the provided `PortalHost`.
+     * When a context is provided it will override the `context` property of the `TemplatePortal`
+     * instance.
+     * @param {?} host
+     * @param {?=} context
+     * @return {?}
+     */
+    TemplatePortal.prototype.attach = function (host, context) {
+        if (context === void 0) { context = this.context; }
+        this.context = context;
+        return _super.prototype.attach.call(this, host);
+    };
+    /**
+     * @return {?}
+     */
+    TemplatePortal.prototype.detach = function () {
+        this.context = undefined;
+        return _super.prototype.detach.call(this);
+    };
+    return TemplatePortal;
+}(Portal));
+/**
+ * Partial implementation of PortalHost that only deals with attaching either a
+ * ComponentPortal or a TemplatePortal.
+ * @abstract
+ */
+var BasePortalHost = (function () {
+    function BasePortalHost() {
+        /**
+         * Whether this host has already been permanently disposed.
+         */
+        this._isDisposed = false;
+    }
+    /**
+     * Whether this host has an attached portal.
+     * @return {?}
+     */
+    BasePortalHost.prototype.hasAttached = function () {
+        return !!this._attachedPortal;
+    };
+    /**
+     * @param {?} portal
+     * @return {?}
+     */
+    BasePortalHost.prototype.attach = function (portal) {
+        if (!portal) {
+            throwNullPortalError();
+        }
+        if (this.hasAttached()) {
+            throwPortalAlreadyAttachedError();
+        }
+        if (this._isDisposed) {
+            throwPortalHostAlreadyDisposedError();
+        }
+        if (portal instanceof ComponentPortal) {
+            this._attachedPortal = portal;
+            return this.attachComponentPortal(portal);
+        }
+        else if (portal instanceof TemplatePortal) {
+            this._attachedPortal = portal;
+            return this.attachTemplatePortal(portal);
+        }
+        throwUnknownPortalTypeError();
+    };
+    /**
+     * @abstract
+     * @template T
+     * @param {?} portal
+     * @return {?}
+     */
+    BasePortalHost.prototype.attachComponentPortal = function (portal) { };
+    /**
+     * @abstract
+     * @template C
+     * @param {?} portal
+     * @return {?}
+     */
+    BasePortalHost.prototype.attachTemplatePortal = function (portal) { };
+    /**
+     * @return {?}
+     */
+    BasePortalHost.prototype.detach = function () {
+        if (this._attachedPortal) {
+            this._attachedPortal.setAttachedHost(null);
+            this._attachedPortal = null;
+        }
+        this._invokeDisposeFn();
+    };
+    /**
+     * @return {?}
+     */
+    BasePortalHost.prototype.dispose = function () {
+        if (this.hasAttached()) {
+            this.detach();
+        }
+        this._invokeDisposeFn();
+        this._isDisposed = true;
+    };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    BasePortalHost.prototype.setDisposeFn = function (fn) {
+        this._disposeFn = fn;
+    };
+    /**
+     * @return {?}
+     */
+    BasePortalHost.prototype._invokeDisposeFn = function () {
+        if (this._disposeFn) {
+            this._disposeFn();
+            this._disposeFn = null;
+        }
+    };
+    return BasePortalHost;
+}());
+
+/**
+ * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular
+ * application context.
+ *
+ * This is the only part of the portal core that directly touches the DOM.
+ */
+var DomPortalHost = (function (_super) {
+    __extends(DomPortalHost, _super);
+    /**
+     * @param {?} _hostDomElement
+     * @param {?} _componentFactoryResolver
+     * @param {?} _appRef
+     * @param {?} _defaultInjector
+     */
+    function DomPortalHost(_hostDomElement, _componentFactoryResolver, _appRef, _defaultInjector) {
+        var _this = _super.call(this) || this;
+        _this._hostDomElement = _hostDomElement;
+        _this._componentFactoryResolver = _componentFactoryResolver;
+        _this._appRef = _appRef;
+        _this._defaultInjector = _defaultInjector;
+        return _this;
+    }
+    /**
+     * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.
+     * @template T
+     * @param {?} portal Portal to be attached
+     * @return {?}
+     */
+    DomPortalHost.prototype.attachComponentPortal = function (portal) {
+        var _this = this;
+        var /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);
+        var /** @type {?} */ componentRef;
+        // If the portal specifies a ViewContainerRef, we will use that as the attachment point
+        // for the component (in terms of Angular's component tree, not rendering).
+        // When the ViewContainerRef is missing, we use the factory to create the component directly
+        // and then manually attach the view to the application.
+        if (portal.viewContainerRef) {
+            componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.parentInjector);
+            this.setDisposeFn(function () { return componentRef.destroy(); });
+        }
+        else {
+            componentRef = componentFactory.create(portal.injector || this._defaultInjector);
+            this._appRef.attachView(componentRef.hostView);
+            this.setDisposeFn(function () {
+                _this._appRef.detachView(componentRef.hostView);
+                componentRef.destroy();
+            });
+        }
+        // At this point the component has been instantiated, so we move it to the location in the DOM
+        // where we want it to be rendered.
+        this._hostDomElement.appendChild(this._getComponentRootNode(componentRef));
+        return componentRef;
+    };
+    /**
+     * Attaches a template portal to the DOM as an embedded view.
+     * @template C
+     * @param {?} portal Portal to be attached.
+     * @return {?}
+     */
+    DomPortalHost.prototype.attachTemplatePortal = function (portal) {
+        var _this = this;
+        var /** @type {?} */ viewContainer = portal.viewContainerRef;
+        var /** @type {?} */ viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);
+        viewRef.detectChanges();
+        // The method `createEmbeddedView` will add the view as a child of the viewContainer.
+        // But for the DomPortalHost the view can be added everywhere in the DOM (e.g Overlay Container)
+        // To move the view to the specified host element. We just re-append the existing root nodes.
+        viewRef.rootNodes.forEach(function (rootNode) { return _this._hostDomElement.appendChild(rootNode); });
+        this.setDisposeFn((function () {
+            var /** @type {?} */ index = viewContainer.indexOf(viewRef);
+            if (index !== -1) {
+                viewContainer.remove(index);
+            }
+        }));
+        // TODO(jelbourn): Return locals from view.
+        return viewRef;
+    };
+    /**
+     * Clears out a portal from the DOM.
+     * @return {?}
+     */
+    DomPortalHost.prototype.dispose = function () {
+        _super.prototype.dispose.call(this);
+        if (this._hostDomElement.parentNode != null) {
+            this._hostDomElement.parentNode.removeChild(this._hostDomElement);
+        }
+    };
+    /**
+     * Gets the root HTMLElement for an instantiated component.
+     * @param {?} componentRef
+     * @return {?}
+     */
+    DomPortalHost.prototype._getComponentRootNode = function (componentRef) {
+        return (((componentRef.hostView)).rootNodes[0]);
+    };
+    return DomPortalHost;
+}(BasePortalHost));
+
+/**
+ * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,
+ * the directive instance itself can be attached to a host, enabling declarative use of portals.
+ *
+ * Usage:
+ * <ng-template portal #greeting>
+ *   <p> Hello {{name}} </p>
+ * </ng-template>
+ */
+var TemplatePortalDirective = (function (_super) {
+    __extends(TemplatePortalDirective, _super);
+    /**
+     * @param {?} templateRef
+     * @param {?} viewContainerRef
+     */
+    function TemplatePortalDirective(templateRef, viewContainerRef) {
+        return _super.call(this, templateRef, viewContainerRef) || this;
+    }
+    TemplatePortalDirective.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: '[cdk-portal], [cdkPortal], [portal]',
+                    exportAs: 'cdkPortal',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    TemplatePortalDirective.ctorParameters = function () { return [
+        { type: _angular_core.TemplateRef, },
+        { type: _angular_core.ViewContainerRef, },
+    ]; };
+    return TemplatePortalDirective;
+}(TemplatePortal));
+/**
+ * Directive version of a PortalHost. Because the directive *is* a PortalHost, portals can be
+ * directly attached to it, enabling declarative use.
+ *
+ * Usage:
+ * <ng-template [cdkPortalHost]="greeting"></ng-template>
+ */
+var PortalHostDirective = (function (_super) {
+    __extends(PortalHostDirective, _super);
+    /**
+     * @param {?} _componentFactoryResolver
+     * @param {?} _viewContainerRef
+     */
+    function PortalHostDirective(_componentFactoryResolver, _viewContainerRef) {
+        var _this = _super.call(this) || this;
+        _this._componentFactoryResolver = _componentFactoryResolver;
+        _this._viewContainerRef = _viewContainerRef;
+        /**
+         * The attached portal.
+         */
+        _this._portal = null;
+        return _this;
+    }
+    Object.defineProperty(PortalHostDirective.prototype, "_deprecatedPortal", {
+        /**
+         * @deprecated
+         * @return {?}
+         */
+        get: function () { return this.portal; },
+        /**
+         * @param {?} v
+         * @return {?}
+         */
+        set: function (v) { this.portal = v; },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(PortalHostDirective.prototype, "portal", {
+        /**
+         * Portal associated with the Portal host.
+         * @return {?}
+         */
+        get: function () {
+            return this._portal;
+        },
+        /**
+         * @param {?} portal
+         * @return {?}
+         */
+        set: function (portal) {
+            if (this.hasAttached()) {
+                _super.prototype.detach.call(this);
+            }
+            if (portal) {
+                _super.prototype.attach.call(this, portal);
+            }
+            this._portal = portal;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    PortalHostDirective.prototype.ngOnDestroy = function () {
+        _super.prototype.dispose.call(this);
+        this._portal = null;
+    };
+    /**
+     * Attach the given ComponentPortal to this PortalHost using the ComponentFactoryResolver.
+     *
+     * @template T
+     * @param {?} portal Portal to be attached to the portal host.
+     * @return {?}
+     */
+    PortalHostDirective.prototype.attachComponentPortal = function (portal) {
+        portal.setAttachedHost(this);
+        // If the portal specifies an origin, use that as the logical location of the component
+        // in the application tree. Otherwise use the location of this PortalHost.
+        var /** @type {?} */ viewContainerRef = portal.viewContainerRef != null ?
+            portal.viewContainerRef :
+            this._viewContainerRef;
+        var /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);
+        var /** @type {?} */ ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.parentInjector);
+        _super.prototype.setDisposeFn.call(this, function () { return ref.destroy(); });
+        this._portal = portal;
+        return ref;
+    };
+    /**
+     * Attach the given TemplatePortal to this PortlHost as an embedded View.
+     * @template C
+     * @param {?} portal Portal to be attached.
+     * @return {?}
+     */
+    PortalHostDirective.prototype.attachTemplatePortal = function (portal) {
+        var _this = this;
+        portal.setAttachedHost(this);
+        var /** @type {?} */ viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);
+        _super.prototype.setDisposeFn.call(this, function () { return _this._viewContainerRef.clear(); });
+        this._portal = portal;
+        return viewRef;
+    };
+    PortalHostDirective.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: '[cdkPortalHost], [portalHost]',
+                    exportAs: 'cdkPortalHost',
+                    inputs: ['portal: cdkPortalHost']
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    PortalHostDirective.ctorParameters = function () { return [
+        { type: _angular_core.ComponentFactoryResolver, },
+        { type: _angular_core.ViewContainerRef, },
+    ]; };
+    PortalHostDirective.propDecorators = {
+        '_deprecatedPortal': [{ type: _angular_core.Input, args: ['portalHost',] },],
+    };
+    return PortalHostDirective;
+}(BasePortalHost));
+var PortalModule = (function () {
+    function PortalModule() {
+    }
+    PortalModule.decorators = [
+        { type: _angular_core.NgModule, args: [{
+                    exports: [TemplatePortalDirective, PortalHostDirective],
+                    declarations: [TemplatePortalDirective, PortalHostDirective],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    PortalModule.ctorParameters = function () { return []; };
+    return PortalModule;
+}());
+
+/**
+ * Custom injector to be used when providing custom
+ * injection tokens to components inside a portal.
+ * \@docs-private
+ */
+var PortalInjector = (function () {
+    /**
+     * @param {?} _parentInjector
+     * @param {?} _customTokens
+     */
+    function PortalInjector(_parentInjector, _customTokens) {
+        this._parentInjector = _parentInjector;
+        this._customTokens = _customTokens;
+    }
+    /**
+     * @param {?} token
+     * @param {?=} notFoundValue
+     * @return {?}
+     */
+    PortalInjector.prototype.get = function (token, notFoundValue) {
+        var /** @type {?} */ value = this._customTokens.get(token);
+        if (typeof value !== 'undefined') {
+            return value;
+        }
+        return this._parentInjector.get(token, notFoundValue);
+    };
+    return PortalInjector;
+}());
+
+exports.Portal = Portal;
+exports.ComponentPortal = ComponentPortal;
+exports.TemplatePortal = TemplatePortal;
+exports.BasePortalHost = BasePortalHost;
+exports.DomPortalHost = DomPortalHost;
+exports.TemplatePortalDirective = TemplatePortalDirective;
+exports.PortalHostDirective = PortalHostDirective;
+exports.PortalModule = PortalModule;
+exports.PortalInjector = PortalInjector;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-portal.umd.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-portal.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-portal.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-portal.umd.js.map
new file mode 100644
index 0000000..ca847d9
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-portal.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-portal.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","cdk/portal.es5.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global R
 eflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n        s = arguments[i];\r\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n    }\r\n    return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        
 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n            t[p[i]] = s[p[i]];\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"
 function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return thi
 s; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [0, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0]
  === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeo
 f Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    re
 turn i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ?
  { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator];\r\n    return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}","/**\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 { __extends } from 'tslib';\nimport * as tslib_1 from 'tslib';\nimport { ComponentFactoryResolver, Directive, Input, NgModule, TemplateRef, ViewContainerRef } from '@angular/core';\n\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * \\@docs-private\n * @return {?}\n */\nfunction throwNullPortalError() {\n    throw Error('Must provide a portal to attach');\n}\n/**\n * Throws an 
 exception when attempting to attach a portal to a host that is already attached.\n * \\@docs-private\n * @return {?}\n */\nfunction throwPortalAlreadyAttachedError() {\n    throw Error('Host already has a portal attached');\n}\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * \\@docs-private\n * @return {?}\n */\nfunction throwPortalHostAlreadyDisposedError() {\n    throw Error('This PortalHost has already been disposed');\n}\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * \\@docs-private\n * @return {?}\n */\nfunction throwUnknownPortalTypeError() {\n    throw Error('Attempting to attach an unknown Portal type. BasePortalHost accepts either ' +\n        'a ComponentPortal or a TemplatePortal.');\n}\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * \\@docs-private\n * @return {?}\n */\nfunction throwNullPortalHostError() {\n    throw Error('Attempting to attach a porta
 l to a null PortalHost');\n}\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * \\@docs-privatew\n * @return {?}\n */\nfunction throwNoPortalAttachedError() {\n    throw Error('Attempting to detach a portal that is not attached to a host');\n}\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalHost`.\n * @abstract\n */\nvar Portal = (function () {\n    function Portal() {\n    }\n    /**\n     * Attach this portal to a host.\n     * @param {?} host\n     * @return {?}\n     */\n    Portal.prototype.attach = function (host) {\n        if (host == null) {\n            throwNullPortalHostError();\n        }\n        if (host.hasAttached()) {\n            throwPortalAlreadyAttachedError();\n        }\n        this._attachedHost = host;\n        return (host.attach(this));\n    };\n    /**\n     * Detach this portal from its host\n     * @return {?}\n     */\n    Portal.prototy
 pe.detach = function () {\n        var /** @type {?} */ host = this._attachedHost;\n        if (host == null) {\n            throwNoPortalAttachedError();\n        }\n        else {\n            this._attachedHost = null;\n            host.detach();\n        }\n    };\n    Object.defineProperty(Portal.prototype, \"isAttached\", {\n        /**\n         * Whether this portal is attached to a host.\n         * @return {?}\n         */\n        get: function () {\n            return this._attachedHost != null;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Sets the PortalHost reference without performing `attach()`. This is used directly by\n     * the PortalHost when it is performing an `attach()` or `detach()`.\n     * @param {?} host\n     * @return {?}\n     */\n    Portal.prototype.setAttachedHost = function (host) {\n        this._attachedHost = host;\n    };\n    return Portal;\n}());\n/**\n * A `ComponentPortal` is a portal that ins
 tantiates some Component upon attachment.\n */\nvar ComponentPortal = (function (_super) {\n    __extends(ComponentPortal, _super);\n    /**\n     * @param {?} component\n     * @param {?=} viewContainerRef\n     * @param {?=} injector\n     */\n    function ComponentPortal(component, viewContainerRef, injector) {\n        var _this = _super.call(this) || this;\n        _this.component = component;\n        _this.viewContainerRef = viewContainerRef;\n        _this.injector = injector;\n        return _this;\n    }\n    return ComponentPortal;\n}(Portal));\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nvar TemplatePortal = (function (_super) {\n    __extends(TemplatePortal, _super);\n    /**\n     * @param {?} template\n     * @param {?} viewContainerRef\n     * @param {?=} context\n     */\n    function TemplatePortal(template, viewContainerRef, context) {\n        var _this = _super.call(this) || this;\n        _this.templateRef 
 = template;\n        _this.viewContainerRef = viewContainerRef;\n        if (context) {\n            _this.context = context;\n        }\n        return _this;\n    }\n    Object.defineProperty(TemplatePortal.prototype, \"origin\", {\n        /**\n         * @return {?}\n         */\n        get: function () {\n            return this.templateRef.elementRef;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Attach the the portal to the provided `PortalHost`.\n     * When a context is provided it will override the `context` property of the `TemplatePortal`\n     * instance.\n     * @param {?} host\n     * @param {?=} context\n     * @return {?}\n     */\n    TemplatePortal.prototype.attach = function (host, context) {\n        if (context === void 0) { context = this.context; }\n        this.context = context;\n        return _super.prototype.attach.call(this, host);\n    };\n    /**\n     * @return {?}\n     */\n    TemplatePortal.prototype
 .detach = function () {\n        this.context = undefined;\n        return _super.prototype.detach.call(this);\n    };\n    return TemplatePortal;\n}(Portal));\n/**\n * Partial implementation of PortalHost that only deals with attaching either a\n * ComponentPortal or a TemplatePortal.\n * @abstract\n */\nvar BasePortalHost = (function () {\n    function BasePortalHost() {\n        /**\n         * Whether this host has already been permanently disposed.\n         */\n        this._isDisposed = false;\n    }\n    /**\n     * Whether this host has an attached portal.\n     * @return {?}\n     */\n    BasePortalHost.prototype.hasAttached = function () {\n        return !!this._attachedPortal;\n    };\n    /**\n     * @param {?} portal\n     * @return {?}\n     */\n    BasePortalHost.prototype.attach = function (portal) {\n        if (!portal) {\n            throwNullPortalError();\n        }\n        if (this.hasAttached()) {\n            throwPortalAlreadyAttachedError();\n        }\n
         if (this._isDisposed) {\n            throwPortalHostAlreadyDisposedError();\n        }\n        if (portal instanceof ComponentPortal) {\n            this._attachedPortal = portal;\n            return this.attachComponentPortal(portal);\n        }\n        else if (portal instanceof TemplatePortal) {\n            this._attachedPortal = portal;\n            return this.attachTemplatePortal(portal);\n        }\n        throwUnknownPortalTypeError();\n    };\n    /**\n     * @abstract\n     * @template T\n     * @param {?} portal\n     * @return {?}\n     */\n    BasePortalHost.prototype.attachComponentPortal = function (portal) { };\n    /**\n     * @abstract\n     * @template C\n     * @param {?} portal\n     * @return {?}\n     */\n    BasePortalHost.prototype.attachTemplatePortal = function (portal) { };\n    /**\n     * @return {?}\n     */\n    BasePortalHost.prototype.detach = function () {\n        if (this._attachedPortal) {\n            this._attachedPortal.setAttache
 dHost(null);\n            this._attachedPortal = null;\n        }\n        this._invokeDisposeFn();\n    };\n    /**\n     * @return {?}\n     */\n    BasePortalHost.prototype.dispose = function () {\n        if (this.hasAttached()) {\n            this.detach();\n        }\n        this._invokeDisposeFn();\n        this._isDisposed = true;\n    };\n    /**\n     * @param {?} fn\n     * @return {?}\n     */\n    BasePortalHost.prototype.setDisposeFn = function (fn) {\n        this._disposeFn = fn;\n    };\n    /**\n     * @return {?}\n     */\n    BasePortalHost.prototype._invokeDisposeFn = function () {\n        if (this._disposeFn) {\n            this._disposeFn();\n            this._disposeFn = null;\n        }\n    };\n    return BasePortalHost;\n}());\n\n/**\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n *\n * This is the only part of the portal core that directly touches the DOM.\n */\nvar DomPortalHost = (fu
 nction (_super) {\n    __extends(DomPortalHost, _super);\n    /**\n     * @param {?} _hostDomElement\n     * @param {?} _componentFactoryResolver\n     * @param {?} _appRef\n     * @param {?} _defaultInjector\n     */\n    function DomPortalHost(_hostDomElement, _componentFactoryResolver, _appRef, _defaultInjector) {\n        var _this = _super.call(this) || this;\n        _this._hostDomElement = _hostDomElement;\n        _this._componentFactoryResolver = _componentFactoryResolver;\n        _this._appRef = _appRef;\n        _this._defaultInjector = _defaultInjector;\n        return _this;\n    }\n    /**\n     * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n     * @template T\n     * @param {?} portal Portal to be attached\n     * @return {?}\n     */\n    DomPortalHost.prototype.attachComponentPortal = function (portal) {\n        var _this = this;\n        var /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponent
 Factory(portal.component);\n        var /** @type {?} */ componentRef;\n        // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n        // for the component (in terms of Angular's component tree, not rendering).\n        // When the ViewContainerRef is missing, we use the factory to create the component directly\n        // and then manually attach the view to the application.\n        if (portal.viewContainerRef) {\n            componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.parentInjector);\n            this.setDisposeFn(function () { return componentRef.destroy(); });\n        }\n        else {\n            componentRef = componentFactory.create(portal.injector || this._defaultInjector);\n            this._appRef.attachView(componentRef.hostView);\n            this.setDisposeFn(function () {\n                _this._appRef.detachView(componen
 tRef.hostView);\n                componentRef.destroy();\n            });\n        }\n        // At this point the component has been instantiated, so we move it to the location in the DOM\n        // where we want it to be rendered.\n        this._hostDomElement.appendChild(this._getComponentRootNode(componentRef));\n        return componentRef;\n    };\n    /**\n     * Attaches a template portal to the DOM as an embedded view.\n     * @template C\n     * @param {?} portal Portal to be attached.\n     * @return {?}\n     */\n    DomPortalHost.prototype.attachTemplatePortal = function (portal) {\n        var _this = this;\n        var /** @type {?} */ viewContainer = portal.viewContainerRef;\n        var /** @type {?} */ viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n        viewRef.detectChanges();\n        // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n        // But for the DomPortalHost the view can be add
 ed everywhere in the DOM (e.g Overlay Container)\n        // To move the view to the specified host element. We just re-append the existing root nodes.\n        viewRef.rootNodes.forEach(function (rootNode) { return _this._hostDomElement.appendChild(rootNode); });\n        this.setDisposeFn((function () {\n            var /** @type {?} */ index = viewContainer.indexOf(viewRef);\n            if (index !== -1) {\n                viewContainer.remove(index);\n            }\n        }));\n        // TODO(jelbourn): Return locals from view.\n        return viewRef;\n    };\n    /**\n     * Clears out a portal from the DOM.\n     * @return {?}\n     */\n    DomPortalHost.prototype.dispose = function () {\n        _super.prototype.dispose.call(this);\n        if (this._hostDomElement.parentNode != null) {\n            this._hostDomElement.parentNode.removeChild(this._hostDomElement);\n        }\n    };\n    /**\n     * Gets the root HTMLElement for an instantiated component.\n     * @param
  {?} componentRef\n     * @return {?}\n     */\n    DomPortalHost.prototype._getComponentRootNode = function (componentRef) {\n        return (((componentRef.hostView)).rootNodes[0]);\n    };\n    return DomPortalHost;\n}(BasePortalHost));\n\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n *\n * Usage:\n * <ng-template portal #greeting>\n *   <p> Hello {{name}} </p>\n * </ng-template>\n */\nvar TemplatePortalDirective = (function (_super) {\n    __extends(TemplatePortalDirective, _super);\n    /**\n     * @param {?} templateRef\n     * @param {?} viewContainerRef\n     */\n    function TemplatePortalDirective(templateRef, viewContainerRef) {\n        return _super.call(this, templateRef, viewContainerRef) || this;\n    }\n    TemplatePortalDirective.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdk-po
 rtal], [cdkPortal], [portal]',\n                    exportAs: 'cdkPortal',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    TemplatePortalDirective.ctorParameters = function () { return [\n        { type: TemplateRef, },\n        { type: ViewContainerRef, },\n    ]; };\n    return TemplatePortalDirective;\n}(TemplatePortal));\n/**\n * Directive version of a PortalHost. Because the directive *is* a PortalHost, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * <ng-template [cdkPortalHost]=\"greeting\"></ng-template>\n */\nvar PortalHostDirective = (function (_super) {\n    __extends(PortalHostDirective, _super);\n    /**\n     * @param {?} _componentFactoryResolver\n     * @param {?} _viewContainerRef\n     */\n    function PortalHostDirective(_componentFactoryResolver, _viewContainerRef) {\n        var _this = _super.call(this) || this;\n        _this._componentFactoryResolver = _componentFactoryResolver;\n        _this
 ._viewContainerRef = _viewContainerRef;\n        /**\n         * The attached portal.\n         */\n        _this._portal = null;\n        return _this;\n    }\n    Object.defineProperty(PortalHostDirective.prototype, \"_deprecatedPortal\", {\n        /**\n         * @deprecated\n         * @return {?}\n         */\n        get: function () { return this.portal; },\n        /**\n         * @param {?} v\n         * @return {?}\n         */\n        set: function (v) { this.portal = v; },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(PortalHostDirective.prototype, \"portal\", {\n        /**\n         * Portal associated with the Portal host.\n         * @return {?}\n         */\n        get: function () {\n            return this._portal;\n        },\n        /**\n         * @param {?} portal\n         * @return {?}\n         */\n        set: function (portal) {\n            if (this.hasAttached()) {\n                _super.prototype.detach
 .call(this);\n            }\n            if (portal) {\n                _super.prototype.attach.call(this, portal);\n            }\n            this._portal = portal;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * @return {?}\n     */\n    PortalHostDirective.prototype.ngOnDestroy = function () {\n        _super.prototype.dispose.call(this);\n        this._portal = null;\n    };\n    /**\n     * Attach the given ComponentPortal to this PortalHost using the ComponentFactoryResolver.\n     *\n     * @template T\n     * @param {?} portal Portal to be attached to the portal host.\n     * @return {?}\n     */\n    PortalHostDirective.prototype.attachComponentPortal = function (portal) {\n        portal.setAttachedHost(this);\n        // If the portal specifies an origin, use that as the logical location of the component\n        // in the application tree. Otherwise use the location of this PortalHost.\n        var /** @type {?} */ viewContai
 nerRef = portal.viewContainerRef != null ?\n            portal.viewContainerRef :\n            this._viewContainerRef;\n        var /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n        var /** @type {?} */ ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.parentInjector);\n        _super.prototype.setDisposeFn.call(this, function () { return ref.destroy(); });\n        this._portal = portal;\n        return ref;\n    };\n    /**\n     * Attach the given TemplatePortal to this PortlHost as an embedded View.\n     * @template C\n     * @param {?} portal Portal to be attached.\n     * @return {?}\n     */\n    PortalHostDirective.prototype.attachTemplatePortal = function (portal) {\n        var _this = this;\n        portal.setAttachedHost(this);\n        var /** @type {?} */ viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.
 context);\n        _super.prototype.setDisposeFn.call(this, function () { return _this._viewContainerRef.clear(); });\n        this._portal = portal;\n        return viewRef;\n    };\n    PortalHostDirective.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkPortalHost], [portalHost]',\n                    exportAs: 'cdkPortalHost',\n                    inputs: ['portal: cdkPortalHost']\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    PortalHostDirective.ctorParameters = function () { return [\n        { type: ComponentFactoryResolver, },\n        { type: ViewContainerRef, },\n    ]; };\n    PortalHostDirective.propDecorators = {\n        '_deprecatedPortal': [{ type: Input, args: ['portalHost',] },],\n    };\n    return PortalHostDirective;\n}(BasePortalHost));\nvar PortalModule = (function () {\n    function PortalModule() {\n    }\n    PortalModule.decorators = [\n        { type: NgModule, args: [{\n                  
   exports: [TemplatePortalDirective, PortalHostDirective],\n                    declarations: [TemplatePortalDirective, PortalHostDirective],\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    PortalModule.ctorParameters = function () { return []; };\n    return PortalModule;\n}());\n\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * \\@docs-private\n */\nvar PortalInjector = (function () {\n    /**\n     * @param {?} _parentInjector\n     * @param {?} _customTokens\n     */\n    function PortalInjector(_parentInjector, _customTokens) {\n        this._parentInjector = _parentInjector;\n        this._customTokens = _customTokens;\n    }\n    /**\n     * @param {?} token\n     * @param {?=} notFoundValue\n     * @return {?}\n     */\n    PortalInjector.prototype.get = function (token, notFoundValue) {\n        var /** @type {?} */ value = this._customTokens.get(token);\n        if (typeof value !==
  'undefined') {\n            return value;\n        }\n        return this._parentInjector.get(token, notFoundValue);\n    };\n    return PortalInjector;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Portal, ComponentPortal, TemplatePortal, BasePortalHost, DomPortalHost, TemplatePortalDirective, PortalHostDirective, PortalModule, PortalInjector };\n//# sourceMappingURL=portal.es5.js.map\n"],"names":["Directive","TemplateRef","ViewContainerRef","ComponentFactoryResolver","Input","NgModule"],"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/bundles/cdk-portal.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-portal.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-portal.umd.min.js
new file mode 100644
index 0000000..80c2e20
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-portal.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core")):"function"==typeof define&&define.amd?define(["exports","@angular/core"],e):e((t.ng=t.ng||{},t.ng.cdk=t.ng.cdk||{},t.ng.cdk.portal=t.ng.cdk.portal||{}),t.ng.core)}(this,function(t,e){"use strict";function o(t,e){function o(){this.constructor=t}p(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}function n(){throw Error("Must provide a portal to attach")}function r(){throw Error("Host already has a portal attached")}function a(){throw Error("This PortalHost has already been disposed")}function i(){throw Error("Attempting to attach an unknown Portal type. BasePortalHost accepts either a ComponentPortal or a TemplatePortal.")}function s(){throw Error("Attempting to attach a portal to a null PortalHost")}function c(){throw Error("Attempting to detach a portal that is not attached to a host")}var p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function
 (t,e){t.__proto__=e}||function(t,e){for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o])},h=function(){function t(){}return t.prototype.attach=function(t){return null==t&&s(),t.hasAttached()&&r(),this._attachedHost=t,t.attach(this)},t.prototype.detach=function(){var t=this._attachedHost;null==t?c():(this._attachedHost=null,t.detach())},Object.defineProperty(t.prototype,"isAttached",{get:function(){return null!=this._attachedHost},enumerable:!0,configurable:!0}),t.prototype.setAttachedHost=function(t){this._attachedHost=t},t}(),l=function(t){function e(e,o,n){var r=t.call(this)||this;return r.component=e,r.viewContainerRef=o,r.injector=n,r}return o(e,t),e}(h),u=function(t){function e(e,o,n){var r=t.call(this)||this;return r.templateRef=e,r.viewContainerRef=o,n&&(r.context=n),r}return o(e,t),Object.defineProperty(e.prototype,"origin",{get:function(){return this.templateRef.elementRef},enumerable:!0,configurable:!0}),e.prototype.attach=function(e,o){return void 0===o&&(o=this.context),this.
 context=o,t.prototype.attach.call(this,e)},e.prototype.detach=function(){return this.context=void 0,t.prototype.detach.call(this)},e}(h),f=function(){function t(){this._isDisposed=!1}return t.prototype.hasAttached=function(){return!!this._attachedPortal},t.prototype.attach=function(t){return t||n(),this.hasAttached()&&r(),this._isDisposed&&a(),t instanceof l?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof u?(this._attachedPortal=t,this.attachTemplatePortal(t)):void i()},t.prototype.attachComponentPortal=function(t){},t.prototype.attachTemplatePortal=function(t){},t.prototype.detach=function(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()},t.prototype.dispose=function(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0},t.prototype.setDisposeFn=function(t){this._disposeFn=t},t.prototype._invokeDisposeFn=function(){this._disposeFn&&(this._disposeFn(),this._disposeFn=n
 ull)},t}(),d=function(t){function e(e,o,n,r){var a=t.call(this)||this;return a._hostDomElement=e,a._componentFactoryResolver=o,a._appRef=n,a._defaultInjector=r,a}return o(e,t),e.prototype.attachComponentPortal=function(t){var e,o=this,n=this._componentFactoryResolver.resolveComponentFactory(t.component);return t.viewContainerRef?(e=t.viewContainerRef.createComponent(n,t.viewContainerRef.length,t.injector||t.viewContainerRef.parentInjector),this.setDisposeFn(function(){return e.destroy()})):(e=n.create(t.injector||this._defaultInjector),this._appRef.attachView(e.hostView),this.setDisposeFn(function(){o._appRef.detachView(e.hostView),e.destroy()})),this._hostDomElement.appendChild(this._getComponentRootNode(e)),e},e.prototype.attachTemplatePortal=function(t){var e=this,o=t.viewContainerRef,n=o.createEmbeddedView(t.templateRef,t.context);return n.detectChanges(),n.rootNodes.forEach(function(t){return e._hostDomElement.appendChild(t)}),this.setDisposeFn(function(){var t=o.indexOf(n);-1!
 ==t&&o.remove(t)}),n},e.prototype.dispose=function(){t.prototype.dispose.call(this),null!=this._hostDomElement.parentNode&&this._hostDomElement.parentNode.removeChild(this._hostDomElement)},e.prototype._getComponentRootNode=function(t){return t.hostView.rootNodes[0]},e}(f),y=function(t){function n(e,o){return t.call(this,e,o)||this}return o(n,t),n.decorators=[{type:e.Directive,args:[{selector:"[cdk-portal], [cdkPortal], [portal]",exportAs:"cdkPortal"}]}],n.ctorParameters=function(){return[{type:e.TemplateRef},{type:e.ViewContainerRef}]},n}(u),m=function(t){function n(e,o){var n=t.call(this)||this;return n._componentFactoryResolver=e,n._viewContainerRef=o,n._portal=null,n}return o(n,t),Object.defineProperty(n.prototype,"_deprecatedPortal",{get:function(){return this.portal},set:function(t){this.portal=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"portal",{get:function(){return this._portal},set:function(e){this.hasAttached()&&t.prototype.detach.call(this),e&&t
 .prototype.attach.call(this,e),this._portal=e},enumerable:!0,configurable:!0}),n.prototype.ngOnDestroy=function(){t.prototype.dispose.call(this),this._portal=null},n.prototype.attachComponentPortal=function(e){e.setAttachedHost(this);var o=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,n=this._componentFactoryResolver.resolveComponentFactory(e.component),r=o.createComponent(n,o.length,e.injector||o.parentInjector);return t.prototype.setDisposeFn.call(this,function(){return r.destroy()}),this._portal=e,r},n.prototype.attachTemplatePortal=function(e){var o=this;e.setAttachedHost(this);var n=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context);return t.prototype.setDisposeFn.call(this,function(){return o._viewContainerRef.clear()}),this._portal=e,n},n.decorators=[{type:e.Directive,args:[{selector:"[cdkPortalHost], [portalHost]",exportAs:"cdkPortalHost",inputs:["portal: cdkPortalHost"]}]}],n.ctorParameters=function(){return[{type:e.ComponentFactoryResol
 ver},{type:e.ViewContainerRef}]},n.propDecorators={_deprecatedPortal:[{type:e.Input,args:["portalHost"]}]},n}(f),_=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{exports:[y,m],declarations:[y,m]}]}],t.ctorParameters=function(){return[]},t}(),v=function(){function t(t,e){this._parentInjector=t,this._customTokens=e}return t.prototype.get=function(t,e){var o=this._customTokens.get(t);return void 0!==o?o:this._parentInjector.get(t,e)},t}();t.Portal=h,t.ComponentPortal=l,t.TemplatePortal=u,t.BasePortalHost=f,t.DomPortalHost=d,t.TemplatePortalDirective=y,t.PortalHostDirective=m,t.PortalModule=_,t.PortalInjector=v,Object.defineProperty(t,"__esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-portal.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-portal.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-portal.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-portal.umd.min.js.map
new file mode 100644
index 0000000..4f2b540
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-portal.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-portal.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","portal","core","this","_angular_core","__extends","d","b","__","constructor","extendStatics","prototype","Object","create","throwNullPortalError","Error","throwPortalAlreadyAttachedError","throwPortalHostAlreadyDisposedError","throwUnknownPortalTypeError","throwNullPortalHostError","throwNoPortalAttachedError","setPrototypeOf","__proto__","Array","p","hasOwnProperty","Portal","attach","host","hasAttached","_attachedHost","detach","defineProperty","get","enumerable","configurable","setAttachedHost","ComponentPortal","_super","component","viewContainerRef","injector","_this","call","TemplatePortal","template","context","templateRef","elementRef","undefined","BasePortalHost","_isDisposed","_attachedPortal","attachComponentPortal","attachTemplatePortal","_invokeDisposeFn","dispose","setDisposeFn","fn","_disposeFn","
 DomPortalHost","_hostDomElement","_componentFactoryResolver","_appRef","_defaultInjector","componentRef","componentFactory","resolveComponentFactory","createComponent","length","parentInjector","destroy","attachView","hostView","detachView","appendChild","_getComponentRootNode","viewContainer","viewRef","createEmbeddedView","detectChanges","rootNodes","forEach","rootNode","index","indexOf","remove","parentNode","removeChild","TemplatePortalDirective","decorators","type","Directive","args","selector","exportAs","ctorParameters","TemplateRef","ViewContainerRef","PortalHostDirective","_viewContainerRef","_portal","set","v","ngOnDestroy","ref","clear","inputs","ComponentFactoryResolver","propDecorators","_deprecatedPortal","Input","PortalModule","NgModule","declarations","PortalInjector","_parentInjector","_customTokens","token","notFoundValue","value"],"mappings":"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","file":"/Users/karakara/repos/material2/dist/bundles/cdk-portal.umd.min.js"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.js b/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.js
new file mode 100644
index 0000000..c822f4a
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.js
@@ -0,0 +1,183 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rxjs/operator/finally'), require('rxjs/operator/catch'), require('rxjs/operator/do'), require('rxjs/operator/map'), require('rxjs/operator/filter'), require('rxjs/operator/share'), require('rxjs/operator/first'), require('rxjs/operator/switchMap'), require('rxjs/operator/startWith'), require('rxjs/operator/debounceTime'), require('rxjs/operator/auditTime'), require('rxjs/operator/takeUntil'), require('rxjs/operator/delay')) :
+	typeof define === 'function' && define.amd ? define(['exports', 'rxjs/operator/finally', 'rxjs/operator/catch', 'rxjs/operator/do', 'rxjs/operator/map', 'rxjs/operator/filter', 'rxjs/operator/share', 'rxjs/operator/first', 'rxjs/operator/switchMap', 'rxjs/operator/startWith', 'rxjs/operator/debounceTime', 'rxjs/operator/auditTime', 'rxjs/operator/takeUntil', 'rxjs/operator/delay'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.rxjs = global.ng.cdk.rxjs || {}),global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype,global.Rx.Observable.prototype));
+}(this, (function (exports,rxjs_operator_finally,rxjs_operator_catch,rxjs_operator_do,rxjs_operator_map,rxjs_operator_filter,rxjs_operator_share,rxjs_operator_first,rxjs_operator_switchMap,rxjs_operator_startWith,rxjs_operator_debounceTime,rxjs_operator_auditTime,rxjs_operator_takeUntil,rxjs_operator_delay) { 'use strict';
+
+/**
+ * Utility class used to chain RxJS operators.
+ *
+ * This class is the concrete implementation, but the type used by the user when chaining
+ * is StrictRxChain. The strict chain enforces types on the operators to the same level as
+ * the prototype-added equivalents.
+ */
+var RxChain = (function () {
+    /**
+     * @param {?} _context
+     */
+    function RxChain(_context) {
+        this._context = _context;
+    }
+    /**
+     * Starts a new chain and specifies the initial `this` value.
+     * @template O
+     * @param {?} context Initial `this` value for the chain.
+     * @return {?}
+     */
+    RxChain.from = function (context) {
+        return new RxChain(context);
+    };
+    /**
+     * Invokes an RxJS operator as a part of the chain.
+     * @param {?} operator Operator to be invoked.
+     * @param {...?} args Arguments to be passed to the operator.
+     * @return {?}
+     */
+    RxChain.prototype.call = function (operator) {
+        var args = [];
+        for (var _i = 1; _i < arguments.length; _i++) {
+            args[_i - 1] = arguments[_i];
+        }
+        this._context = operator.call.apply(operator, [this._context].concat(args));
+        return this;
+    };
+    /**
+     * Subscribes to the result of the chain.
+     * @param {?} fn Callback to be invoked when the result emits a value.
+     * @return {?}
+     */
+    RxChain.prototype.subscribe = function (fn) {
+        return this._context.subscribe(fn);
+    };
+    /**
+     * Returns the result of the chain.
+     * @return {?}
+     */
+    RxChain.prototype.result = function () {
+        return this._context;
+    };
+    return RxChain;
+}());
+
+var FinallyBrand = (function () {
+    function FinallyBrand() {
+    }
+    return FinallyBrand;
+}());
+var CatchBrand = (function () {
+    function CatchBrand() {
+    }
+    return CatchBrand;
+}());
+var DoBrand = (function () {
+    function DoBrand() {
+    }
+    return DoBrand;
+}());
+var MapBrand = (function () {
+    function MapBrand() {
+    }
+    return MapBrand;
+}());
+var FilterBrand = (function () {
+    function FilterBrand() {
+    }
+    return FilterBrand;
+}());
+var ShareBrand = (function () {
+    function ShareBrand() {
+    }
+    return ShareBrand;
+}());
+var FirstBrand = (function () {
+    function FirstBrand() {
+    }
+    return FirstBrand;
+}());
+var SwitchMapBrand = (function () {
+    function SwitchMapBrand() {
+    }
+    return SwitchMapBrand;
+}());
+var StartWithBrand = (function () {
+    function StartWithBrand() {
+    }
+    return StartWithBrand;
+}());
+var DebounceTimeBrand = (function () {
+    function DebounceTimeBrand() {
+    }
+    return DebounceTimeBrand;
+}());
+var AuditTimeBrand = (function () {
+    function AuditTimeBrand() {
+    }
+    return AuditTimeBrand;
+}());
+var TakeUntilBrand = (function () {
+    function TakeUntilBrand() {
+    }
+    return TakeUntilBrand;
+}());
+var DelayBrand = (function () {
+    function DelayBrand() {
+    }
+    return DelayBrand;
+}());
+// We add `Function` to the type intersection to make this nomically different from
+// `finallyOperatorType` while still being structurally the same. Without this, TypeScript tries to
+// reduce `typeof _finallyOperator & FinallyBrand` to `finallyOperatorType<T>` and then fails
+// because `T` isn't known.
+var finallyOperator = (rxjs_operator_finally._finally);
+var catchOperator = (rxjs_operator_catch._catch);
+var doOperator = (rxjs_operator_do._do);
+var map$1 = (rxjs_operator_map.map);
+var filter$1 = (rxjs_operator_filter.filter);
+var share$1 = (rxjs_operator_share.share);
+var first$1 = (rxjs_operator_first.first);
+var switchMap$1 = (rxjs_operator_switchMap.switchMap);
+var startWith$1 = (rxjs_operator_startWith.startWith);
+var debounceTime$1 = (rxjs_operator_debounceTime.debounceTime);
+var auditTime$1 = (rxjs_operator_auditTime.auditTime);
+var takeUntil$1 = (rxjs_operator_takeUntil.takeUntil);
+var delay$1 = (rxjs_operator_delay.delay);
+
+exports.RxChain = RxChain;
+exports.FinallyBrand = FinallyBrand;
+exports.CatchBrand = CatchBrand;
+exports.DoBrand = DoBrand;
+exports.MapBrand = MapBrand;
+exports.FilterBrand = FilterBrand;
+exports.ShareBrand = ShareBrand;
+exports.FirstBrand = FirstBrand;
+exports.SwitchMapBrand = SwitchMapBrand;
+exports.StartWithBrand = StartWithBrand;
+exports.DebounceTimeBrand = DebounceTimeBrand;
+exports.AuditTimeBrand = AuditTimeBrand;
+exports.TakeUntilBrand = TakeUntilBrand;
+exports.DelayBrand = DelayBrand;
+exports.finallyOperator = finallyOperator;
+exports.catchOperator = catchOperator;
+exports.doOperator = doOperator;
+exports.map = map$1;
+exports.filter = filter$1;
+exports.share = share$1;
+exports.first = first$1;
+exports.switchMap = switchMap$1;
+exports.startWith = startWith$1;
+exports.debounceTime = debounceTime$1;
+exports.auditTime = auditTime$1;
+exports.takeUntil = takeUntil$1;
+exports.delay = delay$1;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-rxjs.umd.js.map


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/bundles/animations.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations.umd.js.map b/node_modules/@angular/animations/bundles/animations.umd.js.map
new file mode 100644
index 0000000..c85bb29
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"animations.umd.js","sources":["../../../../packages/animations/src/players/animation_group_player.ts","../../../../packages/animations/src/private_export.ts","../../../../packages/animations/src/players/animation_player.ts","../../../../packages/animations/src/animation_metadata.ts","../../../../packages/animations/src/animation_builder.ts"],"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\nimport {scheduleMicroTask} from '../util';\nimport {AnimationPlayer} from './animation_player';\nexport class AnimationGroupPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _finished = false;\nprivate _started = false;\nprivate _destroyed = false;\nprivate _onDestroyFns: Function[] = [];\npublic parentPlayer: AnimationPlayer
 |null = null;\npublic totalTime: number = 0;\n/**\n * @param {?} _players\n */\nconstructor(private _players: AnimationPlayer[]) {\n    let doneCount = 0;\n    let destroyCount = 0;\n    let startCount = 0;\n    const total = this._players.length;\n\n    if (total == 0) {\n      scheduleMicroTask(() => this._onFinish());\n    } else {\n      this._players.forEach(player => {\n        player.parentPlayer = this;\n        player.onDone(() => {\n          if (++doneCount >= total) {\n            this._onFinish();\n          }\n        });\n        player.onDestroy(() => {\n          if (++destroyCount >= total) {\n            this._onDestroy();\n          }\n        });\n        player.onStart(() => {\n          if (++startCount >= total) {\n            this._onStart();\n          }\n        });\n      });\n    }\n\n    this.totalTime = this._players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n  }\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._fini
 shed) {\n      this._finished = true;\n      this._onDoneFns.forEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @return {?}\n */\ninit(): void { this._players.forEach(player => player.init()); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void { this._onStartFns.push(fn); }\n/**\n * @return {?}\n */\nprivate _onStart() {\n    if (!this.hasStarted()) {\n      this._onStartFns.forEach(fn => fn());\n      this._onStartFns = [];\n      this._started = true;\n    }\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void { this._onDoneFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void { this._onDestroyFns.push(fn); }\n/**\n * @return {?}\n */\nhasStarted() { return this._started; }\n/**\n * @return {?}\n */\nplay() {\n    if (!this.parentPlayer) {\n      this.init();\n    }\n    this._onStart();\n    this._players.forEach(player => player.play());\n  }\n/**\n * @return {?}\n */\n
 pause(): void { this._players.forEach(player => player.pause()); }\n/**\n * @return {?}\n */\nrestart(): void { this._players.forEach(player => player.restart()); }\n/**\n * @return {?}\n */\nfinish(): void {\n    this._onFinish();\n    this._players.forEach(player => player.finish());\n  }\n/**\n * @return {?}\n */\ndestroy(): void { this._onDestroy(); }\n/**\n * @return {?}\n */\nprivate _onDestroy() {\n    if (!this._destroyed) {\n      this._destroyed = true;\n      this._onFinish();\n      this._players.forEach(player => player.destroy());\n      this._onDestroyFns.forEach(fn => fn());\n      this._onDestroyFns = [];\n    }\n  }\n/**\n * @return {?}\n */\nreset(): void {\n    this._players.forEach(player => player.reset());\n    this._destroyed = false;\n    this._finished = false;\n    this._started = false;\n  }\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: number): void {\n    const /** @type {?} */ timeAtPosition = p * this.totalTime;\n    this._players.forEach
 (player => {\n      const /** @type {?} */ position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n      player.setPosition(position);\n    });\n  }\n/**\n * @return {?}\n */\ngetPosition(): number {\n    let /** @type {?} */ min = 0;\n    this._players.forEach(player => {\n      const /** @type {?} */ p = player.getPosition();\n      min = Math.min(p, min);\n    });\n    return min;\n  }\n/**\n * @return {?}\n */\nget players(): AnimationPlayer[] { return this._players; }\n/**\n * @return {?}\n */\nbeforeDestroy(): void {\n    this.players.forEach(player => {\n      if (player.beforeDestroy) {\n        player.beforeDestroy();\n      }\n    });\n  }\n}\n\nfunction AnimationGroupPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationGroupPlayer.prototype._onDoneFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype._onStartFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype._finished;\n/** @type {?} */\nAnimationGroupPlayer.prototype._starte
 d;\n/** @type {?} */\nAnimationGroupPlayer.prototype._destroyed;\n/** @type {?} */\nAnimationGroupPlayer.prototype._onDestroyFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype.parentPlayer;\n/** @type {?} */\nAnimationGroupPlayer.prototype.totalTime;\n/** @type {?} */\nAnimationGroupPlayer.prototype._players;\n}\n\n","/**\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 {AnimationGroupPlayer as ɵAnimationGroupPlayer} from './players/animation_group_player';\nexport const /** @type {?} */ ɵPRE_STYLE = '!';\n","/**\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\nimport {scheduleMicroTask} from '../util';\n\n/**\n * AnimationPlayer controls an animation sequence
  that was produced from a programmatic animation.\n * (see {@link AnimationBuilder AnimationBuilder} for more information on how to create programmatic\n * animations.)\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationPlayer {\n  onDone(fn: () => void): void;\n  onStart(fn: () => void): void;\n  onDestroy(fn: () => void): void;\n  init(): void;\n  hasStarted(): boolean;\n  play(): void;\n  pause(): void;\n  restart(): void;\n  finish(): void;\n  destroy(): void;\n  reset(): void;\n  setPosition(p: any /** TODO #9100 */): void;\n  getPosition(): number;\n  parentPlayer: AnimationPlayer|null;\n  readonly totalTime: number;\n  beforeDestroy?: () => any;\n}\n/**\n * \\@experimental Animation support is experimental.\n */\nexport class NoopAnimationPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _onDestroyFns: Function[] = [];\nprivate _started = false;\nprivate _destroyed = 
 false;\nprivate _finished = false;\npublic parentPlayer: AnimationPlayer|null = null;\npublic totalTime = 0;\nconstructor() {}\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._finished) {\n      this._finished = true;\n      this._onDoneFns.forEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void { this._onStartFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void { this._onDoneFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void { this._onDestroyFns.push(fn); }\n/**\n * @return {?}\n */\nhasStarted(): boolean { return this._started; }\n/**\n * @return {?}\n */\ninit(): void {}\n/**\n * @return {?}\n */\nplay(): void {\n    if (!this.hasStarted()) {\n      this.triggerMicrotask();\n      this._onStart();\n    }\n    this._started = true;\n  }\n/**\n * @return {?}\n */\ntriggerMicrotask() { scheduleMicroTask(() => 
 this._onFinish()); }\n/**\n * @return {?}\n */\nprivate _onStart() {\n    this._onStartFns.forEach(fn => fn());\n    this._onStartFns = [];\n  }\n/**\n * @return {?}\n */\npause(): void {}\n/**\n * @return {?}\n */\nrestart(): void {}\n/**\n * @return {?}\n */\nfinish(): void { this._onFinish(); }\n/**\n * @return {?}\n */\ndestroy(): void {\n    if (!this._destroyed) {\n      this._destroyed = true;\n      if (!this.hasStarted()) {\n        this._onStart();\n      }\n      this.finish();\n      this._onDestroyFns.forEach(fn => fn());\n      this._onDestroyFns = [];\n    }\n  }\n/**\n * @return {?}\n */\nreset(): void {}\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: number): void {}\n/**\n * @return {?}\n */\ngetPosition(): number { return 0; }\n}\n\nfunction NoopAnimationPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nNoopAnimationPlayer.prototype._onDoneFns;\n/** @type {?} */\nNoopAnimationPlayer.prototype._onStartFns;\n/** @type {?} */\nNoopAnimationPlayer
 .prototype._onDestroyFns;\n/** @type {?} */\nNoopAnimationPlayer.prototype._started;\n/** @type {?} */\nNoopAnimationPlayer.prototype._destroyed;\n/** @type {?} */\nNoopAnimationPlayer.prototype._finished;\n/** @type {?} */\nNoopAnimationPlayer.prototype.parentPlayer;\n/** @type {?} */\nNoopAnimationPlayer.prototype.totalTime;\n}\n\n","/**\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 interface ɵStyleData { [key: string]: string|number; }\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are created internally\n * within the Angular animation DSL.\n *\n * @experimental Animation support is experimental.\n */\nexport declare type AnimateTimings = {\n  duration: number,\n  delay: number,\n  easing: string | null\n};\n\n/**\n * `AnimationOptions` represents options that can be passed i
 nto most animation DSL methods.\n * When options are provided, the delay value of an animation can be changed and animation input\n * parameters can be passed in to change styling and timing data when an animation is started.\n *\n * The following animation DSL functions are able to accept animation option data:\n *\n * - {@link transition transition()}\n * - {@link sequence sequence()}\n * - {@link group group()}\n * - {@link query query()}\n * - {@link animation animation()}\n * - {@link useAnimation useAnimation()}\n * - {@link animateChild animateChild()}\n *\n * Programmatic animations built using {@link AnimationBuilder the AnimationBuilder service} also\n * make use of AnimationOptions.\n *\n * @experimental Animation support is experimental.\n */\nexport declare interface AnimationOptions {\n  delay?: number|string;\n  params?: {[name: string]: any};\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are created internally\n * within the
  Angular animation DSL when {@link animateChild animateChild()} is used.\n *\n * @experimental Animation support is experimental.\n */\nexport declare interface AnimateChildOptions extends AnimationOptions { duration?: number|string; }\n\n/**\n * Metadata representing the entry of animations. Usages of this enum are created\n * each time an animation DSL function is used.\n *\n * @experimental Animation support is experimental.\n */\nexport const enum AnimationMetadataType {\n  State = 0,\n  Transition = 1,\n  Sequence = 2,\n  Group = 3,\n  Animate = 4,\n  Keyframes = 5,\n  Style = 6,\n  Trigger = 7,\n  Reference = 8,\n  AnimateChild = 9,\n  AnimateRef = 10,\n  Query = 11,\n  Stagger = 12\n}\n/**\n * \\@experimental Animation support is experimental.\n */\nexport const AUTO_STYLE = '*';\n\n/**\n * @experimental Animation support is experimental.\n */\nexport interface AnimationMetadata { type: AnimationMetadataType; }\n\n/**\n * Metadata representing the entry of animations. Instanc
 es of this interface are provided via the\n * animation DSL when the {@link trigger trigger animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationTriggerMetadata extends AnimationMetadata {\n  name: string;\n  definitions: AnimationMetadata[];\n  options: {params?: {[name: string]: any}}|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link state state animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationStateMetadata extends AnimationMetadata {\n  name: string;\n  styles: AnimationStyleMetadata;\n  options?: {params: {[name: string]: any}};\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link transition transition animation function} is called.\n *\n * @experimental A
 nimation support is experimental.\n */\nexport interface AnimationTransitionMetadata extends AnimationMetadata {\n  expr: string;\n  animation: AnimationMetadata|AnimationMetadata[];\n  options: AnimationOptions|null;\n}\n\n/**\n * @experimental Animation support is experimental.\n */\nexport interface AnimationReferenceMetadata extends AnimationMetadata {\n  animation: AnimationMetadata|AnimationMetadata[];\n  options: AnimationOptions|null;\n}\n\n/**\n * @experimental Animation support is experimental.\n */\nexport interface AnimationQueryMetadata extends AnimationMetadata {\n  selector: string;\n  animation: AnimationMetadata|AnimationMetadata[];\n  options: AnimationQueryOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link keyframes keyframes animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationKeyframesSequen
 ceMetadata extends AnimationMetadata {\n  steps: AnimationStyleMetadata[];\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link style style animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationStyleMetadata extends AnimationMetadata {\n  styles: '*'|{[key: string]: string | number}|Array<{[key: string]: string | number}|'*'>;\n  offset: number|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link animate animate animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationAnimateMetadata extends AnimationMetadata {\n  timings: string|number|AnimateTimings;\n  styles: AnimationStyleMetadata|AnimationKeyframesSequenceMetadata|null;\n}\n\n/**\n * Metadata representing the entry 
 of animations. Instances of this interface are provided via the\n * animation DSL when the {@link animateChild animateChild animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationAnimateChildMetadata extends AnimationMetadata {\n  options: AnimationOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link useAnimation useAnimation animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationAnimateRefMetadata extends AnimationMetadata {\n  animation: AnimationReferenceMetadata;\n  options: AnimationOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link sequence sequence animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\
 nexport interface AnimationSequenceMetadata extends AnimationMetadata {\n  steps: AnimationMetadata[];\n  options: AnimationOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link group group animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationGroupMetadata extends AnimationMetadata {\n  steps: AnimationMetadata[];\n  options: AnimationOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link query query animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport declare interface AnimationQueryOptions extends AnimationOptions {\n  optional?: boolean;\n  /**\n   * Used to limit the total amount of results from the start of the query list.\n   *\n   * If a negative value is prov
 ided then the queried results will be limited from the\n   * end of the query list towards the beginning (e.g. if `limit: -3` is used then the\n   * final 3 (or less) queried results will be used for the animation).\n   */\n  limit?: number;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link stagger stagger animation function} is called.\n *\n* @experimental Animation support is experimental.\n*/\nexport interface AnimationStaggerMetadata extends AnimationMetadata {\n  timings: string|number;\n  animation: AnimationMetadata|AnimationMetadata[];\n}\n/**\n * `trigger` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the\n * {\\@link Component#animations component animations metadata page} to gain a better\n * understanding of how animations in Angular are used.\n * \n * `trigger` Creates
  an animation trigger which will a list of {\\@link state state} and\n * {\\@link transition transition} entries that will be evaluated when the expression\n * bound to the trigger changes.\n * \n * Triggers are registered within the component annotation data under the\n * {\\@link Component#animations animations section}. An animation trigger can be placed on an element\n * within a template by referencing the name of the trigger followed by the expression value that\n * the\n * trigger is bound to (in the form of `[\\@triggerName]=\"expression\"`.\n * \n * Animation trigger bindings strigify values and then match the previous and current values against\n * any linked transitions. If a boolean value is provided into the trigger binding then it will both\n * be represented as `1` or `true` and `0` or `false` for a true and false boolean values\n * respectively.\n * \n * ### Usage\n * \n * `trigger` will create an animation trigger reference based on the provided `name` value. The\n 
 * provided `animation` value is expected to be an array consisting of {\\@link state state} and\n * {\\@link transition transition} declarations.\n * \n * ```typescript\n * \\@Component({ \n *   selector: 'my-component',\n *   templateUrl: 'my-component-tpl.html',\n *   animations: [\n *     trigger(\"myAnimationTrigger\", [\n *       state(...),\n *       state(...),\n *       transition(...),\n *       transition(...)\n *     ])\n *   ]\n * })\n * class MyComponent {\n *   myStatusExp = \"something\";\n * }\n * ```\n * \n * The template associated with this component will make use of the `myAnimationTrigger` animation\n * trigger by binding to an element within its template code.\n * \n * ```html\n * <!-- somewhere inside of my-component-tpl.html -->\n * <div [\\@myAnimationTrigger]=\"myStatusExp\">...</div>\n * ```\n * \n * ## Disable Animations\n * A special animation control binding called `\\@.disabled` can be placed on an element which will\n * then disable animations for any
  inner animation triggers situated within the element as well as\n * any animations on the element itself.\n * \n * When true, the `\\@.disabled` binding will prevent all animations from rendering. The example\n * below shows how to use this feature:\n * \n * ```ts\n * \\@Component({ \n *   selector: 'my-component',\n *   template: `\n *     <div [\\@.disabled]=\"isDisabled\">\n *       <div [\\@childAnimation]=\"exp\"></div>\n *     </div>\n *   `,\n *   animations: [\n *     trigger(\"childAnimation\", [\n *       // ...\n *     ])\n *   ]\n * })\n * class MyComponent {\n *   isDisabled = true;\n *   exp = '...';\n * }\n * ```\n * \n * The `\\@childAnimation` trigger will not animate because `\\@.disabled` prevents it from happening\n * (when true).\n * \n * Note that `\\@.disbled` will only disable all animations (this means any animations running on\n * the same element will also be disabled).\n * \n * ### Disabling Animations Application-wide\n * When an area of the template is
  set to have animations disabled, **all** inner components will\n * also have their animations disabled as well. This means that all animations for an angular\n * application can be disabled by placing a host binding set on `\\@.disabled` on the topmost Angular\n * component.\n * \n * ```ts\n * import {Component, HostBinding} from '\\@angular/core';\n * \n * \\@Component({ \n *   selector: 'app-component',\n *   templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n *   \\@HostBinding('\\@.disabled')\n *   public animationsDisabled = true;\n * }\n * ```\n * \n * ### What about animations that us `query()` and `animateChild()`?\n * Despite inner animations being disabled, a parent animation can {\\@link query query} for inner\n * elements located in disabled areas of the template and still animate them as it sees fit. This is\n * also the case for when a sub animation is queried by a parent and then later animated using {\\@link\n * animateChild animateChild}.\n * \n * 
 \\@experimental Animation support is experimental.\n * @param {?} name\n * @param {?} definitions\n * @return {?}\n */\nexport function trigger(name: string, definitions: AnimationMetadata[]): AnimationTriggerMetadata {\n  return {type: AnimationMetadataType.Trigger, name, definitions, options: {}};\n}\n/**\n * `animate` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `animate` specifies an animation step that will apply the provided `styles` data for a given\n * amount of time based on the provided `timing` expression value. Calls to `animate` are expected\n * to be used within {\\@link sequence an animation sequence}, {\\@link group group}, or {\\@link\n * transition transition}.\n * \n * ### Usage\n * \n * The `animate
 ` function accepts two input parameters: `timing` and `styles`:\n * \n * - `timing` is a string based value that can be a combination of a duration with optional delay\n * and easing values. The format for the expression breaks down to `duration delay easing`\n * (therefore a value such as `1s 100ms ease-out` will be parse itself into `duration=1000,\n * delay=100, easing=ease-out`. If a numeric value is provided then that will be used as the\n * `duration` value in millisecond form.\n * - `styles` is the style input data which can either be a call to {\\@link style style} or {\\@link\n * keyframes keyframes}. If left empty then the styles from the destination state will be collected\n * and used (this is useful when describing an animation step that will complete an animation by\n * {\\@link transition#the-final-animate-call animating to the final state}).\n * \n * ```typescript\n * // various functions for specifying timing data\n * animate(500, style(...))\n * animate(\"1s\", sty
 le(...))\n * animate(\"100ms 0.5s\", style(...))\n * animate(\"5s ease\", style(...))\n * animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\", style(...))\n * \n * // either style() of keyframes() can be used\n * animate(500, style({ background: \"red\" }))\n * animate(500, keyframes([\n *   style({ background: \"blue\" })),\n *   style({ background: \"red\" }))\n * ])\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} timings\n * @param {?=} styles\n * @return {?}\n */\nexport function animate(\n    timings: string | number, styles: AnimationStyleMetadata | AnimationKeyframesSequenceMetadata |\n        null = null): AnimationAnimateMetadata {\n  return {type: AnimationMetadataType.Animate, styles, timings};\n}\n/**\n * `group` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please n
 avigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `group` specifies a list of animation steps that are all run in parallel. Grouped animations are\n * useful when a series of styles must be animated/closed off at different starting/ending times.\n * \n * The `group` function can either be used within a {\\@link sequence sequence} or a {\\@link transition\n * transition} and it will only continue to the next instruction once all of the inner animation\n * steps have completed.\n * \n * ### Usage\n * \n * The `steps` data that is passed into the `group` animation function can either consist of {\\@link\n * style style} or {\\@link animate animate} function calls. Each call to `style()` or `animate()`\n * within a group will be executed instantly (use {\\@link keyframes keyframes} or a {\\@link\n * animate#usage animate() with a delay value} to offset styles to be appli
 ed at a later time).\n * \n * ```typescript\n * group([\n *   animate(\"1s\", { background: \"black\" }))\n *   animate(\"2s\", { color: \"white\" }))\n * ])\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nexport function group(\n    steps: AnimationMetadata[], options: AnimationOptions | null = null): AnimationGroupMetadata {\n  return {type: AnimationMetadataType.Group, steps, options};\n}\n/**\n * `sequence` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used by\n 
 * default when an array is passed as animation data into {\\@link transition transition}.)\n * \n * The `sequence` function can either be used within a {\\@link group group} or a {\\@link transition\n * transition} and it will only continue to the next instruction once each of the inner animation\n * steps have completed.\n * \n * To perform animation styling in parallel with other animation steps then have a look at the\n * {\\@link group group} animation function.\n * \n * ### Usage\n * \n * The `steps` data that is passed into the `sequence` animation function can either consist of\n * {\\@link style style} or {\\@link animate animate} function calls. A call to `style()` will apply the\n * provided styling data immediately while a call to `animate()` will apply its styling data over a\n * given time depending on its timing data.\n * \n * ```typescript\n * sequence([\n *   style({ opacity: 0 })),\n *   animate(\"1s\", { opacity: 1 }))\n * ])\n * ```\n * \n * {\\@example core/anima
 tion/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nexport function sequence(steps: AnimationMetadata[], options: AnimationOptions | null = null):\n    AnimationSequenceMetadata {\n  return {type: AnimationMetadataType.Sequence, steps, options};\n}\n/**\n * `style` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `style` declares a key/value object containing CSS properties/styles that can then be used for\n * {\\@link state animation states}, within an {\\@link sequence animation sequence}, or as styling data\n * for both {\\@link animate animate} and {\\@link keyframes keyframes}.\n * \n * ### U
 sage\n * \n * `style` takes in a key/value string map as data and expects one or more CSS property/value pairs\n * to be defined.\n * \n * ```typescript\n * // string values are used for css properties\n * style({ background: \"red\", color: \"blue\" })\n * \n * // numerical (pixel) values are also supported\n * style({ width: 100, height: 0 })\n * ```\n * \n * #### Auto-styles (using `*`)\n * \n * When an asterix (`*`) character is used as a value then it will be detected from the element\n * being animated and applied as animation data when the animation starts.\n * \n * This feature proves useful for a state depending on layout and/or environment factors; in such\n * cases the styles are calculated just before the animation starts.\n * \n * ```typescript\n * // the steps below will animate from 0 to the\n * // actual height of the element\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts
  region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} tokens\n * @return {?}\n */\nexport function style(\n    tokens: '*' | {[key: string]: string | number} |\n    Array<'*'|{[key: string]: string | number}>): AnimationStyleMetadata {\n  return {type: AnimationMetadataType.Style, styles: tokens, offset: null};\n}\n/**\n * `state` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `state` declares an animation state within the given trigger. When a state is active within a\n * component then its associated styles will persist on the element that the trigger is attached to\n * (even when the animation ends).\n * \n * To animate between states, have a look at the animation {\\@link tra
 nsition transition} DSL\n * function. To register states to an animation trigger please have a look at the {\\@link trigger\n * trigger} function.\n * \n * #### The `void` state\n * \n * The `void` state value is a reserved word that angular uses to determine when the element is not\n * apart of the application anymore (e.g. when an `ngIf` evaluates to false then the state of the\n * associated element is void).\n * \n * #### The `*` (default) state\n * \n * The `*` state (when styled) is a fallback state that will be used if the state that is being\n * animated is not declared within the trigger.\n * \n * ### Usage\n * \n * `state` will declare an animation state with its associated styles\n * within the given trigger.\n * \n * - `stateNameExpr` can be one or more state names separated by commas.\n * - `styles` refers to the {\\@link style styling data} that will be persisted on the element once\n * the state has been reached.\n * \n * ```typescript\n * // \"void\" is a reserved na
 me for a state and is used to represent\n * // the state in which an element is detached from from the application.\n * state(\"void\", style({ height: 0 }))\n * \n * // user-defined states\n * state(\"closed\", style({ height: 0 }))\n * state(\"open, visible\", style({ height: \"*\" }))\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} name\n * @param {?} styles\n * @param {?=} options\n * @return {?}\n */\nexport function state(\n    name: string, styles: AnimationStyleMetadata,\n    options?: {params: {[name: string]: any}}): AnimationStateMetadata {\n  return {type: AnimationMetadataType.State, name, styles, options};\n}\n/**\n * `keyframes` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata p
 age} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `keyframes` specifies a collection of {\\@link style style} entries each optionally characterized\n * by an `offset` value.\n * \n * ### Usage\n * \n * The `keyframes` animation function is designed to be used alongside the {\\@link animate animate}\n * animation function. Instead of applying animations from where they are currently to their\n * destination, keyframes can describe how each style entry is applied and at what point within the\n * animation arc (much like CSS Keyframe Animations do).\n * \n * For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at what\n * percentage of the animate time the styles will be applied.\n * \n * ```typescript\n * // the provided offset values describe when each backgroundColor value is applied.\n * animate(\"5s\", keyframes([\n *   style({ backgroundColor: \"red\", offset: 0 }),\n *   style({ backgroundColor: \"blue\", offset
 : 0.2 }),\n *   style({ backgroundColor: \"orange\", offset: 0.3 }),\n *   style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n * \n * Alternatively, if there are no `offset` values used within the style entries then the offsets\n * will be calculated automatically.\n * \n * ```typescript\n * animate(\"5s\", keyframes([\n *   style({ backgroundColor: \"red\" }) // offset = 0\n *   style({ backgroundColor: \"blue\" }) // offset = 0.33\n *   style({ backgroundColor: \"orange\" }) // offset = 0.66\n *   style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @return {?}\n */\nexport function keyframes(steps: AnimationStyleMetadata[]): AnimationKeyframesSequenceMetadata {\n  return {type: AnimationMetadataType.Keyframes, steps};\n}\n/**\n * `transition` is an animation-specific function that is 
 designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `transition` declares the {\\@link sequence sequence of animation steps} that will be run when the\n * provided `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 =>\n * state2` which consists of two known states (use an asterix (`*`) to refer to a dynamic starting\n * and/or ending state).\n * \n * A function can also be provided as the `stateChangeExpr` argument for a transition and this\n * function will be executed each time a state change occurs. If the value returned within the\n * function is true then the associated animation will be run.\n * \n * Animation transitions are placed within an {\\@link trigger animation trigger}. For an transition\n * to animate to a state value an
 d persist its styles then one or more {\\@link state animation\n * states} is expected to be defined.\n * \n * ### Usage\n * \n * An animation transition is kicked off the `stateChangeExpr` predicate evaluates to true based on\n * what the previous state is and what the current state has become. In other words, if a transition\n * is defined that matches the old/current state criteria then the associated animation will be\n * triggered.\n * \n * ```typescript\n * // all transition/state changes are defined within an animation trigger\n * trigger(\"myAnimationTrigger\", [\n *   // if a state is defined then its styles will be persisted when the\n *   // animation has fully completed itself\n *   state(\"on\", style({ background: \"green\" })),\n *   state(\"off\", style({ background: \"grey\" })),\n * \n *   // a transition animation that will be kicked off when the state value\n *   // bound to \"myAnimationTrigger\" changes from \"on\" to \"off\"\n *   transition(\"on => off\", ani
 mate(500)),\n * \n *   // it is also possible to do run the same animation for both directions\n *   transition(\"on <=> off\", animate(500)),\n * \n *   // or to define multiple states pairs separated by commas\n *   transition(\"on => off, off => void\", animate(500)),\n * \n *   // this is a catch-all state change for when an element is inserted into\n *   // the page and the destination state is unknown\n *   transition(\"void => *\", [\n *     style({ opacity: 0 }),\n *     animate(500)\n *   ]),\n * \n *   // this will capture a state change between any states\n *   transition(\"* => *\", animate(\"1s 0s\")),\n * \n *   // you can also go full out and include a function\n *   transition((fromState, toState) => {\n *     // when `true` then it will allow the animation below to be invoked\n *     return fromState == \"off\" && toState == \"on\";\n *   }, animate(\"1s 0s\"))\n * ])\n * ```\n * \n * The template associated with this component will make use of the `myAnimationTrigg
 er` animation\n * trigger by binding to an element within its template code.\n * \n * ```html\n * <!-- somewhere inside of my-component-tpl.html -->\n * <div [\\@myAnimationTrigger]=\"myStatusExp\">...</div>\n * ```\n * \n * #### The final `animate` call\n * \n * If the final step within the transition steps is a call to `animate()` that **only** uses a\n * timing value with **no style data** then it will be automatically used as the final animation arc\n * for the element to animate itself to the final state. This involves an automatic mix of\n * adding/removing CSS styles so that the element will be in the exact state it should be for the\n * applied state to be presented correctly.\n * \n * ```\n * // start off by hiding the element, but make sure that it animates properly to whatever state\n * // is currently active for \"myAnimationTrigger\"\n * transition(\"void => *\", [\n *   style({ opacity: 0 }),\n *   animate(500)\n * ])\n * ```\n * \n * ### Transition Aliases (`:enter` a
 nd `:leave`)\n * \n * Given that enter (insertion) and leave (removal) animations are so common, the `transition`\n * function accepts both `:enter` and `:leave` values which are aliases for the `void => *` and `*\n * => void` state changes.\n * \n * ```\n * transition(\":enter\", [\n *   style({ opacity: 0 }),\n *   animate(500, style({ opacity: 1 }))\n * ])\n * transition(\":leave\", [\n *   animate(500, style({ opacity: 0 }))\n * ])\n * ```\n * \n * ### Boolean values\n * if a trigger binding value is a boolean value then it can be matched using a transition\n * expression that compares `true` and `false` or `1` and `0`.\n * \n * ```\n * // in the template\n * <div [\\@openClose]=\"open ? true : false\">...</div>\n * \n * // in the component metadata\n * trigger('openClose', [\n *   state('true', style({ height: '*' })),\n *   state('false', style({ height: '0px' })),\n *   transition('false <=> true', animate(500))\n * ])\n * ```\n * {\\@example core/animation/ts/dsl/animation_e
 xample.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} stateChangeExpr\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nexport function transition(\n    stateChangeExpr: string, steps: AnimationMetadata | AnimationMetadata[],\n    options: AnimationOptions | null = null): AnimationTransitionMetadata {\n  return {type: AnimationMetadataType.Transition, expr: stateChangeExpr, animation: steps, options};\n}\n/**\n * `animation` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language.\n * \n * `var myAnimation = animation(...)` is designed to produce a reusable animation that can be later\n * invoked in another animation or sequence. Reusable animations are designed to make use of\n * animation parameters and the produced animation can be used via the `useAnimation` method.\n * \n * ```\n * var fadeAnimation = animation([\n *   style({ opacity: '{{ start }}' }),\n *  
  animate('{{ time }}',\n *     style({ opacity: '{{ end }}'}))\n * ], { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n * \n * If parameters are attached to an animation then they act as **default parameter values**. When an\n * animation is invoked via `useAnimation` then parameter values are allowed to be passed in\n * directly. If any of the passed in parameter values are missing then the default values will be\n * used.\n * \n * ```\n * useAnimation(fadeAnimation, {\n *   params: {\n *     time: '2s',\n *     start: 1,\n *     end: 0\n *   }\n * })\n * ```\n * \n * If one or more parameter values are missing before animated then an error will be thrown.\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nexport function animation(\n    steps: AnimationMetadata | AnimationMetadata[],\n    options: AnimationOptions | null = null): AnimationReferenceMetadata {\n  return {type: AnimationMetadataType
 .Reference, animation: steps, options};\n}\n/**\n * `animateChild` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. It works by allowing a queried element to execute its own\n * animation within the animation sequence.\n * \n * Each time an animation is triggered in angular, the parent animation\n * will always get priority and any child animations will be blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations and then allow the animations to run using `animateChild`.\n * \n * The example HTML code below shows both parent and child elements that have animation\n * triggers that will execute at the same time.\n * \n * ```html\n * <!-- parent-child.component.html -->\n * <button (click)=\"exp =! exp\">Toggle</button>\n * <hr>\n * \n * <div [\\@parentAnimation]=\"exp\">\n *   <header>Hello</header>\n *   <div [\\@childAnimation]=\"exp\">\n *    
    one\n *   </div>\n *   <div [\\@childAnimation]=\"exp\">\n *       two\n *   </div>\n *   <div [\\@childAnimation]=\"exp\">\n *       three\n *   </div>\n * </div>\n * ```\n * \n * Now when the `exp` value changes to true, only the `parentAnimation` animation will animate\n * because it has priority. However, using `query` and `animateChild` each of the inner animations\n * can also fire:\n * \n * ```ts\n * // parent-child.component.ts\n * import {trigger, transition, animate, style, query, animateChild} from '\\@angular/animations';\n * \\@Component({ \n *   selector: 'parent-child-component',\n *   animations: [\n *     trigger('parentAnimation', [\n *       transition('false => true', [\n *         query('header', [\n *           style({ opacity: 0 }),\n *           animate(500, style({ opacity: 1 }))\n *         ]),\n *         query('\\@childAnimation', [\n *           animateChild()\n *         ])\n *       ])\n *     ]),\n *     trigger('childAnimation', [\n *       transi
 tion('false => true', [\n *         style({ opacity: 0 }),\n *         animate(500, style({ opacity: 1 }))\n *       ])\n *     ])\n *   ]\n * })\n * class ParentChildCmp {\n *   exp: boolean = false;\n * }\n * ```\n * \n * In the animation code above, when the `parentAnimation` transition kicks off it first queries to\n * find the header element and fades it in. It then finds each of the sub elements that contain the\n * `\\@childAnimation` trigger and then allows for their animations to fire.\n * \n * This example can be further extended by using stagger:\n * \n * ```ts\n * query('\\@childAnimation', stagger(100, [\n *   animateChild()\n * ]))\n * ```\n * \n * Now each of the sub animations start off with respect to the `100ms` staggering step.\n * \n * ## The first frame of child animations\n * When sub animations are executed using `animateChild` the animation engine will always apply the\n * first frame of every sub animation immediately at the start of the animation sequence. 
 This way\n * the parent animation does not need to set any initial styling data on the sub elements before the\n * sub animations kick off.\n * \n * In the example above the first frame of the `childAnimation`'s `false => true` transition\n * consists of a style of `opacity: 0`. This is applied immediately when the `parentAnimation`\n * animation transition sequence starts. Only then when the `\\@childAnimation` is queried and called\n * with `animateChild` will it then animate to its destination of `opacity: 1`.\n * \n * Note that this feature designed to be used alongside {\\@link query query()} and it will only work\n * with animations that are assigned using the Angular animation DSL (this means that CSS keyframes\n * and transitions are not handled by this API).\n * \n * \\@experimental Animation support is experimental.\n * @param {?=} options\n * @return {?}\n */\nexport function animateChild(options: AnimateChildOptions | null = null):\n    AnimationAnimateChildMetadata {\n 
  return {type: AnimationMetadataType.AnimateChild, options};\n}\n/**\n * `useAnimation` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. It is used to kick off a reusable animation that is created using {\\@link\n * animation animation()}.\n * \n * \\@experimental Animation support is experimental.\n * @param {?} animation\n * @param {?=} options\n * @return {?}\n */\nexport function useAnimation(\n    animation: AnimationReferenceMetadata,\n    options: AnimationOptions | null = null): AnimationAnimateRefMetadata {\n  return {type: AnimationMetadataType.AnimateRef, animation, options};\n}\n/**\n * `query` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language.\n * \n * query() is used to find one or more inner elements within the current element that is\n * being animated within the sequence. The provided animation steps are applied\n * to the queried element (by defau
 lt, an array is provided, then this will be\n * treated as an animation sequence).\n * \n * ### Usage\n * \n * query() is designed to collect mutiple elements and works internally by using\n * `element.querySelectorAll`. An additional options object can be provided which\n * can be used to limit the total amount of items to be collected.\n * \n * ```js\n * query('div', [\n *   animate(...),\n *   animate(...)\n * ], { limit: 1 })\n * ```\n * \n * query(), by default, will throw an error when zero items are found. If a query\n * has the `optional` flag set to true then this error will be ignored.\n * \n * ```js\n * query('.some-element-that-may-not-be-there', [\n *   animate(...),\n *   animate(...)\n * ], { optional: true })\n * ```\n * \n * ### Special Selector Values\n * \n * The selector value within a query can collect elements that contain angular-specific\n * characteristics\n * using special pseudo-selectors tokens.\n * \n * These include:\n * \n *  - Querying for newly inser
 ted/removed elements using `query(\":enter\")`/`query(\":leave\")`\n *  - Querying all currently animating elements using `query(\":animating\")`\n *  - Querying elements that contain an animation trigger using `query(\"\\@triggerName\")`\n *  - Querying all elements that contain an animation triggers using `query(\"\\@*\")`\n *  - Including the current element into the animation sequence using `query(\":self\")`\n * \n * \n *  Each of these pseudo-selector tokens can be merged together into a combined query selector\n * string:\n * \n *  ```\n *  query(':self, .record:enter, .record:leave, \\@subTrigger', [...])\n *  ```\n * \n * ### Demo\n * \n * ```\n * \\@Component({ \n *   selector: 'inner',\n *   template: `\n *     <div [\\@queryAnimation]=\"exp\">\n *       <h1>Title</h1>\n *       <div class=\"content\">\n *         Blah blah blah\n *       </div>\n *     </div>\n *   `,\n *   animations: [\n *    trigger('queryAnimation', [\n *      transition('* => goAnimate', [\n *      
   // hide the inner elements\n *        query('h1', style({ opacity: 0 })),\n *        query('.content', style({ opacity: 0 })),\n * \n *        // animate the inner elements in, one by one\n *        query('h1', animate(1000, style({ opacity: 1 })),\n *        query('.content', animate(1000, style({ opacity: 1 })),\n *      ])\n *    ])\n *  ]\n * })\n * class Cmp {\n *   exp = '';\n * \n *   goAnimate() {\n *     this.exp = 'goAnimate';\n *   }\n * }\n * ```\n * \n * \\@experimental Animation support is experimental.\n * @param {?} selector\n * @param {?} animation\n * @param {?=} options\n * @return {?}\n */\nexport function query(\n    selector: string, animation: AnimationMetadata | AnimationMetadata[],\n    options: AnimationQueryOptions | null = null): AnimationQueryMetadata {\n  return {type: AnimationMetadataType.Query, selector, animation, options};\n}\n/**\n * `stagger` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL lan
 guage. It is designed to be used inside of an animation {\\@link query query()}\n * and works by issuing a timing gap between after each queried item is animated.\n * \n * ### Usage\n * \n * In the example below there is a container element that wraps a list of items stamped out\n * by an ngFor. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n * \n * ```html\n * <!-- list.component.html -->\n * <button (click)=\"toggle()\">Show / Hide Items</button>\n * <hr />\n * <div [\\@listAnimation]=\"items.length\">\n *   <div *ngFor=\"let item of items\">\n *     {{ item }}\n *   </div>\n * </div>\n * ```\n * \n * The component code for this looks as such:\n * \n * ```ts\n * import {trigger, transition, style, animate, query, stagger} from '\\@angular/animations';\n * \\@Component({ \n *   templateUrl: 'list.component.html',\n *   animations: [\n *     trigger('listAnimation', [\n *        //...\n *     ])\n *   ]\n * })\n 
 * class ListComponent {\n *   items = [];\n * \n *   showItems() {\n *     this.items = [0,1,2,3,4];\n *   }\n * \n *   hideItems() {\n *     this.items = [];\n *   }\n * \n *   toggle() {\n *     this.items.length ? this.hideItems() : this.showItems();\n *   }\n * }\n * ```\n * \n * And now for the animation trigger code:\n * \n * ```ts\n * trigger('listAnimation', [\n *   transition('* => *', [ // each time the binding value changes\n *     query(':leave', [\n *       stagger(100, [\n *         animate('0.5s', style({ opacity: 0 }))\n *       ])\n *     ]),\n *     query(':enter', [\n *       style({ opacity: 0 }),\n *       stagger(100, [\n *         animate('0.5s', style({ opacity: 1 }))\n *       ])\n *     ])\n *   ])\n * ])\n * ```\n * \n * Now each time the items are added/removed then either the opacity\n * fade-in animation will run or each removed item will be faded out.\n * When either of these animations occur then a stagger effect will be\n * applied after each item's 
 animation is started.\n * \n * \\@experimental Animation support is experimental.\n * @param {?} timings\n * @param {?} animation\n * @return {?}\n */\nexport function stagger(\n    timings: string | number,\n    animation: AnimationMetadata | AnimationMetadata[]): AnimationStaggerMetadata {\n  return {type: AnimationMetadataType.Stagger, timings, animation};\n}\n","/**\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\nimport {AnimationMetadata, AnimationOptions} from './animation_metadata';\nimport {AnimationPlayer} from './players/animation_player';\n/**\n * AnimationBuilder is an injectable service that is available when the {\\@link\n * BrowserAnimationsModule BrowserAnimationsModule} or {\\@link NoopAnimationsModule\n * NoopAnimationsModule} modules are used within an application.\n * \n * The purpose if this service is to
  produce an animation sequence programmatically within an\n * angular component or directive.\n * \n * Programmatic animations are first built and then a player is created when the build animation is\n * attached to an element.\n * \n * ```ts\n * // remember to include the BrowserAnimationsModule module for this to work...\n * import {AnimationBuilder} from '\\@angular/animations';\n * \n * class MyCmp {\n *   constructor(private _builder: AnimationBuilder) {}\n * \n *   makeAnimation(element: any) {\n *     // first build the animation\n *     const myAnimation = this._builder.build([\n *       style({ width: 0 }),\n *       animate(1000, style({ width: '100px' }))\n *     ]);\n * \n *     // then create a player from it\n *     const player = myAnimation.create(element);\n * \n *     player.play();\n *   }\n * }\n * ```\n * \n * When an animation is built an instance of {\\@link AnimationFactory AnimationFactory} will be\n * returned. Using that an {\\@link AnimationPlayer Animati
 onPlayer} can be created which can then be\n * used to start the animation.\n * \n * \\@experimental Animation support is experimental.\n * @abstract\n */\nexport abstract class AnimationBuilder {\n/**\n * @abstract\n * @param {?} animation\n * @return {?}\n */\nbuild(animation: AnimationMetadata|AnimationMetadata[]) {}\n}\n/**\n * An instance of `AnimationFactory` is returned from {\\@link AnimationBuilder#build\n * AnimationBuilder.build}.\n * \n * \\@experimental Animation support is experimental.\n * @abstract\n */\nexport abstract class AnimationFactory {\n/**\n * @abstract\n * @param {?} element\n * @param {?=} options\n * @return {?}\n */\ncreate(element: any, options?: AnimationOptions) {}\n}\n"],"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/animations/bundles/animations.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations.umd.min.js b/node_modules/@angular/animations/bundles/animations.umd.min.js
new file mode 100644
index 0000000..b580824
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations.umd.min.js
@@ -0,0 +1,28 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports):"function"==typeof define&&define.amd?define(["exports"],factory):factory((global.ng=global.ng||{},global.ng.animations=global.ng.animations||{}))}(this,function(exports){"use strict";function trigger(name,definitions){return{type:7,name:name,definitions:definitions,options:{}}}function animate(timings,styles){return void 0===styles&&(styles=null),{type:4,styles:styles,timings:timings}}function group(steps,options){return void 0===options&&(options=null),{type:3,steps:steps,options:options}}function sequence(steps,options){return void 0===options&&(options=null),{type:2,steps:steps,options:options}}function style(tokens){return{type:6,styles:tokens,offset:null}}function state(name,styles,options){return{type:0,name:name,styles:styles,options:options}}function keyframes(steps){return{type:5,steps:steps}}function transition(stateChangeExpr,steps,options){return void 0===options&&(options=nu
 ll),{type:1,expr:stateChangeExpr,animation:steps,options:options}}function animation(steps,options){return void 0===options&&(options=null),{type:8,animation:steps,options:options}}function animateChild(options){return void 0===options&&(options=null),{type:9,options:options}}function useAnimation(animation,options){return void 0===options&&(options=null),{type:10,animation:animation,options:options}}function query(selector,animation,options){return void 0===options&&(options=null),{type:11,selector:selector,animation:animation,options:options}}function stagger(timings,animation){return{type:12,timings:timings,animation:animation}}/**
+ * @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
+ * @param {?} cb
+ * @return {?}
+ */
+function scheduleMicroTask(cb){Promise.resolve(null).then(cb)}/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+/**
+ * @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
+ */
+var AnimationBuilder=function(){function AnimationBuilder(){}return AnimationBuilder.prototype.build=function(animation){},AnimationBuilder}(),AnimationFactory=function(){function AnimationFactory(){}return AnimationFactory.prototype.create=function(element,options){},AnimationFactory}(),NoopAnimationPlayer=function(){function NoopAnimationPlayer(){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this.parentPlayer=null,this.totalTime=0}return NoopAnimationPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(fn){return fn()}),this._onDoneFns=[])},NoopAnimationPlayer.prototype.onStart=function(fn){this._onStartFns.push(fn)},NoopAnimationPlayer.prototype.onDone=function(fn){this._onDoneFns.push(fn)},NoopAnimationPlayer.prototype.onDestroy=function(fn){this._onDestroyFns.push(fn)},NoopAnimationPlayer.prototype.hasStarted=function(){return this._started},NoopAnimationPla
 yer.prototype.init=function(){},NoopAnimationPlayer.prototype.play=function(){this.hasStarted()||(this.triggerMicrotask(),this._onStart()),this._started=!0},NoopAnimationPlayer.prototype.triggerMicrotask=function(){var _this=this;scheduleMicroTask(function(){return _this._onFinish()})},NoopAnimationPlayer.prototype._onStart=function(){this._onStartFns.forEach(function(fn){return fn()}),this._onStartFns=[]},NoopAnimationPlayer.prototype.pause=function(){},NoopAnimationPlayer.prototype.restart=function(){},NoopAnimationPlayer.prototype.finish=function(){this._onFinish()},NoopAnimationPlayer.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(function(fn){return fn()}),this._onDestroyFns=[])},NoopAnimationPlayer.prototype.reset=function(){},NoopAnimationPlayer.prototype.setPosition=function(p){},NoopAnimationPlayer.prototype.getPosition=function(){return 0},NoopAnimationPlayer}(),AnimationGroupPla
 yer=function(){function AnimationGroupPlayer(_players){var _this=this;this._players=_players,this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0;var doneCount=0,destroyCount=0,startCount=0,total=this._players.length;0==total?scheduleMicroTask(function(){return _this._onFinish()}):this._players.forEach(function(player){player.parentPlayer=_this,player.onDone(function(){++doneCount>=total&&_this._onFinish()}),player.onDestroy(function(){++destroyCount>=total&&_this._onDestroy()}),player.onStart(function(){++startCount>=total&&_this._onStart()})}),this.totalTime=this._players.reduce(function(time,player){return Math.max(time,player.totalTime)},0)}return AnimationGroupPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(fn){return fn()}),this._onDoneFns=[])},AnimationGroupPlayer.prototype.init=function(){this._players.forEach(functio
 n(player){return player.init()})},AnimationGroupPlayer.prototype.onStart=function(fn){this._onStartFns.push(fn)},AnimationGroupPlayer.prototype._onStart=function(){this.hasStarted()||(this._onStartFns.forEach(function(fn){return fn()}),this._onStartFns=[],this._started=!0)},AnimationGroupPlayer.prototype.onDone=function(fn){this._onDoneFns.push(fn)},AnimationGroupPlayer.prototype.onDestroy=function(fn){this._onDestroyFns.push(fn)},AnimationGroupPlayer.prototype.hasStarted=function(){return this._started},AnimationGroupPlayer.prototype.play=function(){this.parentPlayer||this.init(),this._onStart(),this._players.forEach(function(player){return player.play()})},AnimationGroupPlayer.prototype.pause=function(){this._players.forEach(function(player){return player.pause()})},AnimationGroupPlayer.prototype.restart=function(){this._players.forEach(function(player){return player.restart()})},AnimationGroupPlayer.prototype.finish=function(){this._onFinish(),this._players.forEach(function(playe
 r){return player.finish()})},AnimationGroupPlayer.prototype.destroy=function(){this._onDestroy()},AnimationGroupPlayer.prototype._onDestroy=function(){this._destroyed||(this._destroyed=!0,this._onFinish(),this._players.forEach(function(player){return player.destroy()}),this._onDestroyFns.forEach(function(fn){return fn()}),this._onDestroyFns=[])},AnimationGroupPlayer.prototype.reset=function(){this._players.forEach(function(player){return player.reset()}),this._destroyed=!1,this._finished=!1,this._started=!1},AnimationGroupPlayer.prototype.setPosition=function(p){var timeAtPosition=p*this.totalTime;this._players.forEach(function(player){var position=player.totalTime?Math.min(1,timeAtPosition/player.totalTime):1;player.setPosition(position)})},AnimationGroupPlayer.prototype.getPosition=function(){var min=0;return this._players.forEach(function(player){var p=player.getPosition();min=Math.min(p,min)}),min},Object.defineProperty(AnimationGroupPlayer.prototype,"players",{get:function(){re
 turn this._players},enumerable:!0,configurable:!0}),AnimationGroupPlayer.prototype.beforeDestroy=function(){this.players.forEach(function(player){player.beforeDestroy&&player.beforeDestroy()})},AnimationGroupPlayer}();exports.AnimationBuilder=AnimationBuilder,exports.AnimationFactory=AnimationFactory,exports.AUTO_STYLE="*",exports.animate=animate,exports.animateChild=animateChild,exports.animation=animation,exports.group=group,exports.keyframes=keyframes,exports.query=query,exports.sequence=sequence,exports.stagger=stagger,exports.state=state,exports.style=style,exports.transition=transition,exports.trigger=trigger,exports.useAnimation=useAnimation,exports.NoopAnimationPlayer=NoopAnimationPlayer,exports.ɵAnimationGroupPlayer=AnimationGroupPlayer,exports.ɵPRE_STYLE="!",Object.defineProperty(exports,"__esModule",{value:!0})});
+//# sourceMappingURL=animations.umd.min.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/bundles/animations.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations.umd.min.js.map b/node_modules/@angular/animations/bundles/animations.umd.min.js.map
new file mode 100644
index 0000000..42dc35f
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"animations.umd.min.js","sources":["../../../../packages/animations/src/players/animation_player.ts","../../../../packages/animations/src/players/animation_group_player.ts","../../../../packages/animations/src/animation_builder.ts"],"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\nimport {scheduleMicroTask} from '../util';\n\n/**\n * AnimationPlayer controls an animation sequence that was produced from a programmatic animation.\n * (see {@link AnimationBuilder AnimationBuilder} for more information on how to create programmatic\n * animations.)\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationPlayer {\n  onDone(fn: () => void): void;\n  onStart(fn: () => void): void;\n  onDestroy(fn: () => void): void;\n  init(): void;\n  hasStarted(): boolean;\
 n  play(): void;\n  pause(): void;\n  restart(): void;\n  finish(): void;\n  destroy(): void;\n  reset(): void;\n  setPosition(p: any /** TODO #9100 */): void;\n  getPosition(): number;\n  parentPlayer: AnimationPlayer|null;\n  readonly totalTime: number;\n  beforeDestroy?: () => any;\n}\n/**\n * \\@experimental Animation support is experimental.\n */\nexport class NoopAnimationPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _onDestroyFns: Function[] = [];\nprivate _started = false;\nprivate _destroyed = false;\nprivate _finished = false;\npublic parentPlayer: AnimationPlayer|null = null;\npublic totalTime = 0;\nconstructor() {}\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._finished) {\n      this._finished = true;\n      this._onDoneFns.forEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void { this._onStartFns.
 push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void { this._onDoneFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void { this._onDestroyFns.push(fn); }\n/**\n * @return {?}\n */\nhasStarted(): boolean { return this._started; }\n/**\n * @return {?}\n */\ninit(): void {}\n/**\n * @return {?}\n */\nplay(): void {\n    if (!this.hasStarted()) {\n      this.triggerMicrotask();\n      this._onStart();\n    }\n    this._started = true;\n  }\n/**\n * @return {?}\n */\ntriggerMicrotask() { scheduleMicroTask(() => this._onFinish()); }\n/**\n * @return {?}\n */\nprivate _onStart() {\n    this._onStartFns.forEach(fn => fn());\n    this._onStartFns = [];\n  }\n/**\n * @return {?}\n */\npause(): void {}\n/**\n * @return {?}\n */\nrestart(): void {}\n/**\n * @return {?}\n */\nfinish(): void { this._onFinish(); }\n/**\n * @return {?}\n */\ndestroy(): void {\n    if (!this._destroyed) {\n      this._destroyed = true;\n      if
  (!this.hasStarted()) {\n        this._onStart();\n      }\n      this.finish();\n      this._onDestroyFns.forEach(fn => fn());\n      this._onDestroyFns = [];\n    }\n  }\n/**\n * @return {?}\n */\nreset(): void {}\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: number): void {}\n/**\n * @return {?}\n */\ngetPosition(): number { return 0; }\n}\n\nfunction NoopAnimationPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nNoopAnimationPlayer.prototype._onDoneFns;\n/** @type {?} */\nNoopAnimationPlayer.prototype._onStartFns;\n/** @type {?} */\nNoopAnimationPlayer.prototype._onDestroyFns;\n/** @type {?} */\nNoopAnimationPlayer.prototype._started;\n/** @type {?} */\nNoopAnimationPlayer.prototype._destroyed;\n/** @type {?} */\nNoopAnimationPlayer.prototype._finished;\n/** @type {?} */\nNoopAnimationPlayer.prototype.parentPlayer;\n/** @type {?} */\nNoopAnimationPlayer.prototype.totalTime;\n}\n\n","/**\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\nimport {scheduleMicroTask} from '../util';\nimport {AnimationPlayer} from './animation_player';\nexport class AnimationGroupPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _finished = false;\nprivate _started = false;\nprivate _destroyed = false;\nprivate _onDestroyFns: Function[] = [];\npublic parentPlayer: AnimationPlayer|null = null;\npublic totalTime: number = 0;\n/**\n * @param {?} _players\n */\nconstructor(private _players: AnimationPlayer[]) {\n    let doneCount = 0;\n    let destroyCount = 0;\n    let startCount = 0;\n    const total = this._players.length;\n\n    if (total == 0) {\n      scheduleMicroTask(() => this._onFinish());\n    } else {\n      this._players.forEach(player => {\n        player.parentPlayer = this;\n        player.onDone(() => {\n          if
  (++doneCount >= total) {\n            this._onFinish();\n          }\n        });\n        player.onDestroy(() => {\n          if (++destroyCount >= total) {\n            this._onDestroy();\n          }\n        });\n        player.onStart(() => {\n          if (++startCount >= total) {\n            this._onStart();\n          }\n        });\n      });\n    }\n\n    this.totalTime = this._players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n  }\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._finished) {\n      this._finished = true;\n      this._onDoneFns.forEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @return {?}\n */\ninit(): void { this._players.forEach(player => player.init()); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void { this._onStartFns.push(fn); }\n/**\n * @return {?}\n */\nprivate _onStart() {\n    if (!this.hasStarted()) {\n      this._onStartFns.forEach(fn => fn());\n      this._o
 nStartFns = [];\n      this._started = true;\n    }\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void { this._onDoneFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void { this._onDestroyFns.push(fn); }\n/**\n * @return {?}\n */\nhasStarted() { return this._started; }\n/**\n * @return {?}\n */\nplay() {\n    if (!this.parentPlayer) {\n      this.init();\n    }\n    this._onStart();\n    this._players.forEach(player => player.play());\n  }\n/**\n * @return {?}\n */\npause(): void { this._players.forEach(player => player.pause()); }\n/**\n * @return {?}\n */\nrestart(): void { this._players.forEach(player => player.restart()); }\n/**\n * @return {?}\n */\nfinish(): void {\n    this._onFinish();\n    this._players.forEach(player => player.finish());\n  }\n/**\n * @return {?}\n */\ndestroy(): void { this._onDestroy(); }\n/**\n * @return {?}\n */\nprivate _onDestroy() {\n    if (!this._destroyed) {\n      this._destroyed
  = true;\n      this._onFinish();\n      this._players.forEach(player => player.destroy());\n      this._onDestroyFns.forEach(fn => fn());\n      this._onDestroyFns = [];\n    }\n  }\n/**\n * @return {?}\n */\nreset(): void {\n    this._players.forEach(player => player.reset());\n    this._destroyed = false;\n    this._finished = false;\n    this._started = false;\n  }\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: number): void {\n    const /** @type {?} */ timeAtPosition = p * this.totalTime;\n    this._players.forEach(player => {\n      const /** @type {?} */ position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n      player.setPosition(position);\n    });\n  }\n/**\n * @return {?}\n */\ngetPosition(): number {\n    let /** @type {?} */ min = 0;\n    this._players.forEach(player => {\n      const /** @type {?} */ p = player.getPosition();\n      min = Math.min(p, min);\n    });\n    return min;\n  }\n/**\n * @return {?}\n */\nget players()
 : AnimationPlayer[] { return this._players; }\n/**\n * @return {?}\n */\nbeforeDestroy(): void {\n    this.players.forEach(player => {\n      if (player.beforeDestroy) {\n        player.beforeDestroy();\n      }\n    });\n  }\n}\n\nfunction AnimationGroupPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationGroupPlayer.prototype._onDoneFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype._onStartFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype._finished;\n/** @type {?} */\nAnimationGroupPlayer.prototype._started;\n/** @type {?} */\nAnimationGroupPlayer.prototype._destroyed;\n/** @type {?} */\nAnimationGroupPlayer.prototype._onDestroyFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype.parentPlayer;\n/** @type {?} */\nAnimationGroupPlayer.prototype.totalTime;\n/** @type {?} */\nAnimationGroupPlayer.prototype._players;\n}\n\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license tha
 t can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {AnimationMetadata, AnimationOptions} from './animation_metadata';\nimport {AnimationPlayer} from './players/animation_player';\n/**\n * AnimationBuilder is an injectable service that is available when the {\\@link\n * BrowserAnimationsModule BrowserAnimationsModule} or {\\@link NoopAnimationsModule\n * NoopAnimationsModule} modules are used within an application.\n * \n * The purpose if this service is to produce an animation sequence programmatically within an\n * angular component or directive.\n * \n * Programmatic animations are first built and then a player is created when the build animation is\n * attached to an element.\n * \n * ```ts\n * // remember to include the BrowserAnimationsModule module for this to work...\n * import {AnimationBuilder} from '\\@angular/animations';\n * \n * class MyCmp {\n *   constructor(private _builder: AnimationBuilder) {}\n * \n *   makeAnimation(element: any) 
 {\n *     // first build the animation\n *     const myAnimation = this._builder.build([\n *       style({ width: 0 }),\n *       animate(1000, style({ width: '100px' }))\n *     ]);\n * \n *     // then create a player from it\n *     const player = myAnimation.create(element);\n * \n *     player.play();\n *   }\n * }\n * ```\n * \n * When an animation is built an instance of {\\@link AnimationFactory AnimationFactory} will be\n * returned. Using that an {\\@link AnimationPlayer AnimationPlayer} can be created which can then be\n * used to start the animation.\n * \n * \\@experimental Animation support is experimental.\n * @abstract\n */\nexport abstract class AnimationBuilder {\n/**\n * @abstract\n * @param {?} animation\n * @return {?}\n */\nbuild(animation: AnimationMetadata|AnimationMetadata[]) {}\n}\n/**\n * An instance of `AnimationFactory` is returned from {\\@link AnimationBuilder#build\n * AnimationBuilder.build}.\n * \n * \\@experimental Animation support is experimental
 .\n * @abstract\n */\nexport abstract class AnimationFactory {\n/**\n * @abstract\n * @param {?} element\n * @param {?=} options\n * @return {?}\n */\ncreate(element: any, options?: AnimationOptions) {}\n}\n"],"names":["NoopAnimationPlayer","this","_onDestroyFns","_started","totalTime","_finished","prototype","onStart","fn","_onStartFns","push","init","play","finish","_onFinish","destroy","_onStart","reset","AnimationGroupPlayer","_players","_this","_onDoneFns","_destroyed","parentPlayer","doneCount","destroyCount","startCount","total","length","scheduleMicroTask","forEach","player","onDone","onDestroy","_onDestroy","reduce","time","Math","max","hasStarted","setPosition","p","timeAtPosition","min","getPosition","configurable","beforeDestroy","exports","module","factory"],"mappings":";;;;;0BEAA,gBAAA+C,UAAA,mBAAAC,QAAAC,QAAAF;;;;;;;;;;;;;;;;;;;;;iSF+CA/C,oBAAA,iFACAC,KAAGC,iBAIHD,KAAAE,UAAA,8DAIAF,KAAAG,UAAA,4DAMAH,KAAAI,sGAUAL,oBAAAM,UAAAC,QAAA,SAAAC,IAAAP,KAAAQ,YAAAC,KAAAF,6OAkBAR,
 oBAAAM,UAAAK,KAAA,aAIAX,oBAAAM,UAAAM,KAAA,wEAKAX,KAAAE,UAAA,oWAwBAH,oBAAAM,UAAAO,OAAA,WAAAZ,KAAAa,aAIAd,oBAAAM,UAAAS,QAAA,mEArCAd,KAAAe,uGAmDAhB,oBAAAM,UAAAW,MAAA,2JC9HAC,qBAAA,WAKA,QAAAA,sBAAAC,UAII,GAAIC,OAARnB,IACIA,MAAJkB,SAAAA,SACIlB,KAAJoB,cACIpB,KAAJQ,eAEIR,KAAJI,WAAA,EACAJ,KAAAE,UAAA,EACAF,KAAAqB,YAAA,EAAArB,KAAAC,iBACAD,KAAAsB,aAAA,KACAtB,KAAAG,UAAA,CACA,IAAAoB,WAAA,EACAC,aAAA,EACAC,WAAA,EACAC,MAAA1B,KAAAkB,SAAAS,MACA,IAAAD,MACAE,kBAAA,WAAA,MAAAT,OAAAN,cAGAb,KAAAkB,SAAAW,QAAA,SAAAC,QACAA,OAAAR,aAAAH,MACQW,OAAOC,OAAf,aACgBR,WAAhBG,OACYP,MAAKN,cAGjBiB,OAAAE,UAAA,aACAR,cAAAE,OAEAP,MAAyBc,8DAEzBd,MAAAJ,eAQAf,KAAAG,UAAAH,KAAAkB,SAAAgB,OAAA,SAAAC,KAAAL,QAAA,MAAAM,MAAAC,IAAAF,KAAAL,OAAA3B,YAAA,SAKAc,sBAAAZ,UAAAQ,UAAA,sHAUAI,qBAAAZ,UAAAK,KAAA,WAAAV,KAVckB,SAUdW,QAAA,SAAAC,QAAA,MAAAA,QAAApB,UAKAO,qBAAAZ,UAAAC,QAAA,SAAAC,IAAAP,KAAAQ,YAAAC,KAAAF,wDAKAP,KAAAsC,0QAmBArB,qBAAAZ,UAAAiC,WAAA,WAAA,MAAAtC,MAAAE,UAIAe,qBAAAZ,UAAAM,KAAA,+ZAoBAX,KAAAkB,SAAAW,QAAA,SAAAC,QAAA,MAAAA,QAAAlB,YAKAK,q
 BAAAZ,UAAAS,QAAA,WAAAd,KAAAiC,qFA1BAjC,KAAAqB,YAAA,EAiCArB,KAAAa,2JASAI,qBAAAZ,UAAAW,MAAA,iIAUAC,qBAAAZ,UAAAkC,YAAA,SAAAC,GACA,GAAAC,gBAAAD,EAAAxC,KAAAG,mNA7BG,GAAHuC,KAAA,gDA4CA,GAAAF,GAAAV,OAAAa,4JAIAC,cAAA,wHA/JAd,OAAAe"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/package.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/package.json b/node_modules/@angular/animations/package.json
new file mode 100644
index 0000000..7ca0720
--- /dev/null
+++ b/node_modules/@angular/animations/package.json
@@ -0,0 +1,53 @@
+{
+  "_from": "@angular/animations@4.4.6",
+  "_id": "@angular/animations@4.4.6",
+  "_inBundle": false,
+  "_integrity": "sha1-+mYYmaik44y3xYPHpcl85l1ZKjU=",
+  "_location": "/@angular/animations",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "version",
+    "registry": true,
+    "raw": "@angular/animations@4.4.6",
+    "name": "@angular/animations",
+    "escapedName": "@angular%2fanimations",
+    "scope": "@angular",
+    "rawSpec": "4.4.6",
+    "saveSpec": null,
+    "fetchSpec": "4.4.6"
+  },
+  "_requiredBy": [
+    "/"
+  ],
+  "_resolved": "https://registry.npmjs.org/@angular/animations/-/animations-4.4.6.tgz",
+  "_shasum": "fa661899a8a4e38cb7c583c7a5c97ce65d592a35",
+  "_spec": "@angular/animations@4.4.6",
+  "_where": "/Users/scottyaslan/Development/nifi-fds",
+  "author": {
+    "name": "angular"
+  },
+  "bugs": {
+    "url": "https://github.com/angular/angular/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "tslib": "^1.7.1"
+  },
+  "deprecated": false,
+  "description": "Angular - animations integration with web-animationss",
+  "es2015": "./@angular/animations.js",
+  "homepage": "https://github.com/angular/angular#readme",
+  "license": "MIT",
+  "main": "./bundles/animations.umd.js",
+  "module": "./@angular/animations.es5.js",
+  "name": "@angular/animations",
+  "peerDependencies": {
+    "@angular/core": "4.4.6"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/angular/angular.git"
+  },
+  "typings": "./animations.d.ts",
+  "version": "4.4.6"
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/public_api.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/public_api.d.ts b/node_modules/@angular/animations/public_api.d.ts
new file mode 100644
index 0000000..e457b60
--- /dev/null
+++ b/node_modules/@angular/animations/public_api.d.ts
@@ -0,0 +1,13 @@
+/**
+ * @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
+ */
+/**
+ * @module
+ * @description
+ * Entry point for all public APIs of the animation package.
+ */
+export * from './src/animations';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/src/animation_builder.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/src/animation_builder.d.ts b/node_modules/@angular/animations/src/animation_builder.d.ts
new file mode 100644
index 0000000..c32a386
--- /dev/null
+++ b/node_modules/@angular/animations/src/animation_builder.d.ts
@@ -0,0 +1,60 @@
+/**
+ * @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 { AnimationMetadata, AnimationOptions } from './animation_metadata';
+import { AnimationPlayer } from './players/animation_player';
+/**
+ * AnimationBuilder is an injectable service that is available when the {@link
+ * BrowserAnimationsModule BrowserAnimationsModule} or {@link NoopAnimationsModule
+ * NoopAnimationsModule} modules are used within an application.
+ *
+ * The purpose if this service is to produce an animation sequence programmatically within an
+ * angular component or directive.
+ *
+ * Programmatic animations are first built and then a player is created when the build animation is
+ * attached to an element.
+ *
+ * ```ts
+ * // remember to include the BrowserAnimationsModule module for this to work...
+ * import {AnimationBuilder} from '@angular/animations';
+ *
+ * class MyCmp {
+ *   constructor(private _builder: AnimationBuilder) {}
+ *
+ *   makeAnimation(element: any) {
+ *     // first build the animation
+ *     const myAnimation = this._builder.build([
+ *       style({ width: 0 }),
+ *       animate(1000, style({ width: '100px' }))
+ *     ]);
+ *
+ *     // then create a player from it
+ *     const player = myAnimation.create(element);
+ *
+ *     player.play();
+ *   }
+ * }
+ * ```
+ *
+ * When an animation is built an instance of {@link AnimationFactory AnimationFactory} will be
+ * returned. Using that an {@link AnimationPlayer AnimationPlayer} can be created which can then be
+ * used to start the animation.
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare abstract class AnimationBuilder {
+    abstract build(animation: AnimationMetadata | AnimationMetadata[]): AnimationFactory;
+}
+/**
+ * An instance of `AnimationFactory` is returned from {@link AnimationBuilder#build
+ * AnimationBuilder.build}.
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare abstract class AnimationFactory {
+    abstract create(element: any, options?: AnimationOptions): AnimationPlayer;
+}


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

Posted by sc...@apache.org.
update gh-pages


Project: http://git-wip-us.apache.org/repos/asf/nifi-fds/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-fds/commit/4a326208
Tree: http://git-wip-us.apache.org/repos/asf/nifi-fds/tree/4a326208
Diff: http://git-wip-us.apache.org/repos/asf/nifi-fds/diff/4a326208

Branch: refs/heads/gh-pages
Commit: 4a3262084fd086fc8ba00971c32877f02455d66a
Parents: 43ea662
Author: Scott Aslan <sc...@gmail.com>
Authored: Mon Apr 30 15:29:16 2018 -0400
Committer: Scott Aslan <sc...@gmail.com>
Committed: Mon Apr 30 15:29:16 2018 -0400

----------------------------------------------------------------------
 .github/PULL_REQUEST_TEMPLATE.md                |    28 -
 .gitignore                                      |    10 +-
 Gruntfile.js                                    |    82 -
 LICENSE                                         |   240 -
 NOTICE                                          |     5 -
 README.md                                       |   116 -
 gh-pages.index.html                             |    36 -
 gh-pages.package.json                           |    59 -
 gh-pages.systemjs.config.js                     |   120 -
 index.html                                      |     4 +-
 karma-test-shim.js                              |   112 -
 karma.conf.js                                   |   132 -
 node_modules/.bin/cake                          |     1 +
 node_modules/.bin/coffee                        |     1 +
 node_modules/.bin/detect-libc                   |     1 +
 node_modules/.bin/esparse                       |     1 +
 node_modules/.bin/esvalidate                    |     1 +
 node_modules/.bin/grunt                         |     1 +
 node_modules/.bin/in-install                    |     1 +
 node_modules/.bin/in-publish                    |     1 +
 node_modules/.bin/js-yaml                       |     1 +
 node_modules/.bin/mkdirp                        |     1 +
 node_modules/.bin/node-gyp                      |     1 +
 node_modules/.bin/node-sass                     |     1 +
 node_modules/.bin/nopt                          |     1 +
 node_modules/.bin/not-in-install                |     1 +
 node_modules/.bin/not-in-publish                |     1 +
 node_modules/.bin/prebuild-install              |     1 +
 node_modules/.bin/rc                            |     1 +
 node_modules/.bin/rimraf                        |     1 +
 node_modules/.bin/sassgraph                     |     1 +
 node_modules/.bin/semver                        |     1 +
 node_modules/.bin/sshpk-conv                    |     1 +
 node_modules/.bin/sshpk-sign                    |     1 +
 node_modules/.bin/sshpk-verify                  |     1 +
 node_modules/.bin/strip-indent                  |     1 +
 node_modules/.bin/uuid                          |     1 +
 node_modules/.bin/which                         |     1 +
 .../animations/@angular/animations.es5.js       |  1316 +
 .../animations/@angular/animations.es5.js.map   |     1 +
 .../@angular/animations/@angular/animations.js  |  1301 +
 .../animations/@angular/animations.js.map       |     1 +
 .../@angular/animations/browser.es5.js          |  4911 +++
 .../@angular/animations/browser.es5.js.map      |     1 +
 .../animations/@angular/animations/browser.js   |  4774 +++
 .../@angular/animations/browser.js.map          |     1 +
 .../@angular/animations/browser/testing.es5.js  |   187 +
 .../animations/browser/testing.es5.js.map       |     1 +
 .../@angular/animations/browser/testing.js      |   216 +
 .../@angular/animations/browser/testing.js.map  |     1 +
 .../@angular/animations/animations.d.ts         |     4 +
 .../animations/animations.metadata.json         |     1 +
 node_modules/@angular/animations/browser.d.ts   |     6 +
 .../@angular/animations/browser.metadata.json   |     1 +
 .../@angular/animations/browser/index.d.ts      |     4 +
 .../animations/browser/index.metadata.json      |     1 +
 .../@angular/animations/browser/package.json    |     7 +
 .../@angular/animations/browser/public_api.d.ts |    13 +
 .../animations/browser/src/browser.d.ts         |    14 +
 .../animations/browser/src/dsl/animation.d.ts   |    17 +
 .../browser/src/dsl/animation_ast.d.ts          |    96 +
 .../browser/src/dsl/animation_ast.metadata.json |     1 +
 .../browser/src/dsl/animation_ast_builder.d.ts  |    51 +
 .../browser/src/dsl/animation_dsl_visitor.d.ts  |    23 +
 .../src/dsl/animation_dsl_visitor.metadata.json |     1 +
 .../src/dsl/animation_timeline_builder.d.ts     |    98 +
 .../src/dsl/animation_timeline_instruction.d.ts |    22 +
 .../src/dsl/animation_transition_expr.d.ts      |    10 +
 .../src/dsl/animation_transition_factory.d.ts   |    35 +
 .../dsl/animation_transition_instruction.d.ts   |    33 +
 .../browser/src/dsl/animation_trigger.d.ts      |    32 +
 .../src/dsl/element_instruction_map.d.ts        |    15 +
 .../animation_style_normalizer.d.ts             |    21 +
 .../animation_style_normalizer.metadata.json    |     1 +
 .../web_animations_style_normalizer.d.ts        |     5 +
 .../animations/browser/src/private_export.d.ts  |    14 +
 .../browser/src/render/animation_driver.d.ts    |    33 +
 .../src/render/animation_driver.metadata.json   |     1 +
 .../render/animation_engine_instruction.d.ts    |    14 +
 .../src/render/animation_engine_next.d.ts       |    28 +
 .../animations/browser/src/render/shared.d.ts   |    22 +
 .../browser/src/render/shared.metadata.json     |     1 +
 .../src/render/timeline_animation_engine.d.ts   |    25 +
 .../src/render/transition_animation_engine.d.ts |   152 +
 .../render/web_animations/dom_animation.d.ts    |    18 +
 .../web_animations/web_animations_driver.d.ts   |    18 +
 .../web_animations/web_animations_player.d.ts   |    63 +
 .../@angular/animations/browser/src/util.d.ts   |    46 +
 .../animations/browser/src/util.metadata.json   |     1 +
 .../@angular/animations/browser/testing.d.ts    |     6 +
 .../animations/browser/testing.metadata.json    |     1 +
 .../animations/browser/testing/index.d.ts       |    13 +
 .../browser/testing/index.metadata.json         |     1 +
 .../animations/browser/testing/package.json     |     7 +
 .../testing/src/mock_animation_driver.d.ts      |    50 +
 .../src/mock_animation_driver.metadata.json     |     1 +
 .../animations/browser/testing/src/testing.d.ts |     8 +
 .../browser/testing/src/testing.metadata.json   |     1 +
 .../bundles/animations-browser-testing.umd.js   |   209 +
 .../animations-browser-testing.umd.js.map       |     1 +
 .../animations-browser-testing.umd.min.js       |    14 +
 .../animations-browser-testing.umd.min.js.map   |     1 +
 .../bundles/animations-browser.umd.js           |  4926 +++
 .../bundles/animations-browser.umd.js.map       |     1 +
 .../bundles/animations-browser.umd.min.js       |    56 +
 .../bundles/animations-browser.umd.min.js.map   |     1 +
 .../animations/bundles/animations.umd.js        |  1323 +
 .../animations/bundles/animations.umd.js.map    |     1 +
 .../animations/bundles/animations.umd.min.js    |    28 +
 .../bundles/animations.umd.min.js.map           |     1 +
 node_modules/@angular/animations/package.json   |    53 +
 .../@angular/animations/public_api.d.ts         |    13 +
 .../animations/src/animation_builder.d.ts       |    60 +
 .../animations/src/animation_event.d.ts         |    46 +
 .../animations/src/animation_metadata.d.ts      |  1053 +
 .../@angular/animations/src/animations.d.ts     |    17 +
 .../src/players/animation_group_player.d.ts     |    31 +
 .../src/players/animation_player.d.ts           |    54 +
 .../@angular/animations/src/private_export.d.ts |     9 +
 node_modules/@angular/animations/src/util.d.ts  |     8 +
 node_modules/@angular/cdk/_a11y.scss            |    23 +
 node_modules/@angular/cdk/_overlay.scss         |    93 +
 node_modules/@angular/cdk/a11y-prebuilt.css     |     1 +
 node_modules/@angular/cdk/a11y.d.ts             |     8 +
 node_modules/@angular/cdk/a11y.metadata.json    |    12 +
 node_modules/@angular/cdk/a11y/index.d.ts       |     8 +
 .../@angular/cdk/a11y/index.metadata.json       |    12 +
 node_modules/@angular/cdk/a11y/package.json     |     7 +
 .../@angular/cdk/a11y/typings/a11y-module.d.ts  |     2 +
 .../typings/activedescendant-key-manager.d.ts   |    25 +
 .../cdk/a11y/typings/aria-describer.d.ts        |    51 +
 .../cdk/a11y/typings/aria-reference.d.ts        |    15 +
 .../cdk/a11y/typings/fake-mousedown.d.ts        |    15 +
 .../cdk/a11y/typings/focus-key-manager.d.ts     |    23 +
 .../cdk/a11y/typings/focus-monitor.d.ts         |   106 +
 .../@angular/cdk/a11y/typings/focus-trap.d.ts   |   120 +
 .../@angular/cdk/a11y/typings/index.d.ts        |     4 +
 .../cdk/a11y/typings/index.metadata.json        |     1 +
 .../cdk/a11y/typings/interactivity-checker.d.ts |    45 +
 .../cdk/a11y/typings/list-key-manager.d.ts      |    96 +
 .../cdk/a11y/typings/live-announcer.d.ts        |    32 +
 .../@angular/cdk/a11y/typings/public-api.d.ts   |    17 +
 node_modules/@angular/cdk/bidi.d.ts             |     8 +
 node_modules/@angular/cdk/bidi.metadata.json    |    12 +
 node_modules/@angular/cdk/bidi/index.d.ts       |     8 +
 .../@angular/cdk/bidi/index.metadata.json       |    12 +
 node_modules/@angular/cdk/bidi/package.json     |     7 +
 .../@angular/cdk/bidi/typings/bidi-module.d.ts  |     2 +
 node_modules/@angular/cdk/bidi/typings/dir.d.ts |    28 +
 .../cdk/bidi/typings/directionality.d.ts        |    37 +
 .../@angular/cdk/bidi/typings/index.d.ts        |     4 +
 .../cdk/bidi/typings/index.metadata.json        |     1 +
 .../@angular/cdk/bidi/typings/public-api.d.ts   |    10 +
 .../@angular/cdk/bundles/cdk-a11y.umd.js        |  1724 +
 .../@angular/cdk/bundles/cdk-a11y.umd.js.map    |     1 +
 .../@angular/cdk/bundles/cdk-a11y.umd.min.js    |     9 +
 .../cdk/bundles/cdk-a11y.umd.min.js.map         |     1 +
 .../@angular/cdk/bundles/cdk-bidi.umd.js        |   183 +
 .../@angular/cdk/bundles/cdk-bidi.umd.js.map    |     1 +
 .../@angular/cdk/bundles/cdk-bidi.umd.min.js    |     9 +
 .../cdk/bundles/cdk-bidi.umd.min.js.map         |     1 +
 .../@angular/cdk/bundles/cdk-coercion.umd.js    |    54 +
 .../cdk/bundles/cdk-coercion.umd.js.map         |     1 +
 .../cdk/bundles/cdk-coercion.umd.min.js         |     9 +
 .../cdk/bundles/cdk-coercion.umd.min.js.map     |     1 +
 .../@angular/cdk/bundles/cdk-collections.umd.js |   345 +
 .../cdk/bundles/cdk-collections.umd.js.map      |     1 +
 .../cdk/bundles/cdk-collections.umd.min.js      |     9 +
 .../cdk/bundles/cdk-collections.umd.min.js.map  |     1 +
 .../@angular/cdk/bundles/cdk-keycodes.umd.js    |    55 +
 .../cdk/bundles/cdk-keycodes.umd.js.map         |     1 +
 .../cdk/bundles/cdk-keycodes.umd.min.js         |     9 +
 .../cdk/bundles/cdk-keycodes.umd.min.js.map     |     1 +
 .../@angular/cdk/bundles/cdk-layout.umd.js      |   235 +
 .../@angular/cdk/bundles/cdk-layout.umd.js.map  |     1 +
 .../@angular/cdk/bundles/cdk-layout.umd.min.js  |     9 +
 .../cdk/bundles/cdk-layout.umd.min.js.map       |     1 +
 .../@angular/cdk/bundles/cdk-observers.umd.js   |   141 +
 .../cdk/bundles/cdk-observers.umd.js.map        |     1 +
 .../cdk/bundles/cdk-observers.umd.min.js        |     9 +
 .../cdk/bundles/cdk-observers.umd.min.js.map    |     1 +
 .../@angular/cdk/bundles/cdk-overlay.umd.js     |  2090 ++
 .../@angular/cdk/bundles/cdk-overlay.umd.js.map |     1 +
 .../@angular/cdk/bundles/cdk-overlay.umd.min.js |     9 +
 .../cdk/bundles/cdk-overlay.umd.min.js.map      |     1 +
 .../@angular/cdk/bundles/cdk-platform.umd.js    |   143 +
 .../cdk/bundles/cdk-platform.umd.js.map         |     1 +
 .../cdk/bundles/cdk-platform.umd.min.js         |     9 +
 .../cdk/bundles/cdk-platform.umd.min.js.map     |     1 +
 .../@angular/cdk/bundles/cdk-portal.umd.js      |   625 +
 .../@angular/cdk/bundles/cdk-portal.umd.js.map  |     1 +
 .../@angular/cdk/bundles/cdk-portal.umd.min.js  |     9 +
 .../cdk/bundles/cdk-portal.umd.min.js.map       |     1 +
 .../@angular/cdk/bundles/cdk-rxjs.umd.js        |   183 +
 .../@angular/cdk/bundles/cdk-rxjs.umd.js.map    |     1 +
 .../@angular/cdk/bundles/cdk-rxjs.umd.min.js    |     9 +
 .../cdk/bundles/cdk-rxjs.umd.min.js.map         |     1 +
 .../@angular/cdk/bundles/cdk-scrolling.umd.js   |   422 +
 .../cdk/bundles/cdk-scrolling.umd.js.map        |     1 +
 .../cdk/bundles/cdk-scrolling.umd.min.js        |     9 +
 .../cdk/bundles/cdk-scrolling.umd.min.js.map    |     1 +
 .../@angular/cdk/bundles/cdk-stepper.umd.js     |   485 +
 .../@angular/cdk/bundles/cdk-stepper.umd.js.map |     1 +
 .../@angular/cdk/bundles/cdk-stepper.umd.min.js |     9 +
 .../cdk/bundles/cdk-stepper.umd.min.js.map      |     1 +
 .../@angular/cdk/bundles/cdk-table.umd.js       |   859 +
 .../@angular/cdk/bundles/cdk-table.umd.js.map   |     1 +
 .../@angular/cdk/bundles/cdk-table.umd.min.js   |     9 +
 .../cdk/bundles/cdk-table.umd.min.js.map        |     1 +
 node_modules/@angular/cdk/bundles/cdk.umd.js    |    24 +
 .../@angular/cdk/bundles/cdk.umd.js.map         |     1 +
 .../@angular/cdk/bundles/cdk.umd.min.js         |     9 +
 .../@angular/cdk/bundles/cdk.umd.min.js.map     |     1 +
 node_modules/@angular/cdk/cdk.d.ts              |     8 +
 node_modules/@angular/cdk/cdk.metadata.json     |    12 +
 node_modules/@angular/cdk/coercion.d.ts         |     8 +
 .../@angular/cdk/coercion.metadata.json         |    12 +
 node_modules/@angular/cdk/coercion/index.d.ts   |     8 +
 .../@angular/cdk/coercion/index.metadata.json   |    12 +
 node_modules/@angular/cdk/coercion/package.json |     7 +
 .../@angular/cdk/coercion/typings/array.d.ts    |     9 +
 .../cdk/coercion/typings/boolean-property.d.ts  |     9 +
 .../@angular/cdk/coercion/typings/index.d.ts    |     4 +
 .../cdk/coercion/typings/index.metadata.json    |     1 +
 .../cdk/coercion/typings/number-property.d.ts   |     9 +
 .../cdk/coercion/typings/public-api.d.ts        |    10 +
 node_modules/@angular/cdk/collections.d.ts      |     8 +
 .../@angular/cdk/collections.metadata.json      |    12 +
 .../@angular/cdk/collections/index.d.ts         |     8 +
 .../cdk/collections/index.metadata.json         |    12 +
 .../@angular/cdk/collections/package.json       |     7 +
 .../collections/typings/collection-viewer.d.ts  |    18 +
 .../cdk/collections/typings/data-source.d.ts    |    28 +
 .../@angular/cdk/collections/typings/index.d.ts |     5 +
 .../cdk/collections/typings/index.metadata.json |     1 +
 .../cdk/collections/typings/public-api.d.ts     |    11 +
 .../cdk/collections/typings/selection.d.ts      |    87 +
 .../typings/unique-selection-dispatcher.d.ts    |    40 +
 node_modules/@angular/cdk/esm2015/a11y.js       |  1618 +
 node_modules/@angular/cdk/esm2015/a11y.js.map   |     1 +
 node_modules/@angular/cdk/esm2015/bidi.js       |   162 +
 node_modules/@angular/cdk/esm2015/bidi.js.map   |     1 +
 node_modules/@angular/cdk/esm2015/cdk.js        |    20 +
 node_modules/@angular/cdk/esm2015/cdk.js.map    |     1 +
 node_modules/@angular/cdk/esm2015/coercion.js   |    45 +
 .../@angular/cdk/esm2015/coercion.js.map        |     1 +
 .../@angular/cdk/esm2015/collections.js         |   310 +
 .../@angular/cdk/esm2015/collections.js.map     |     1 +
 node_modules/@angular/cdk/esm2015/keycodes.js   |    32 +
 .../@angular/cdk/esm2015/keycodes.js.map        |     1 +
 node_modules/@angular/cdk/esm2015/layout.js     |   226 +
 node_modules/@angular/cdk/esm2015/layout.js.map |     1 +
 node_modules/@angular/cdk/esm2015/observers.js  |   129 +
 .../@angular/cdk/esm2015/observers.js.map       |     1 +
 node_modules/@angular/cdk/esm2015/overlay.js    |  1896 ++
 .../@angular/cdk/esm2015/overlay.js.map         |     1 +
 node_modules/@angular/cdk/esm2015/platform.js   |   133 +
 .../@angular/cdk/esm2015/platform.js.map        |     1 +
 node_modules/@angular/cdk/esm2015/portal.js     |   545 +
 node_modules/@angular/cdk/esm2015/portal.js.map |     1 +
 node_modules/@angular/cdk/esm2015/rxjs.js       |   121 +
 node_modules/@angular/cdk/esm2015/rxjs.js.map   |     1 +
 node_modules/@angular/cdk/esm2015/scrolling.js  |   401 +
 .../@angular/cdk/esm2015/scrolling.js.map       |     1 +
 node_modules/@angular/cdk/esm2015/stepper.js    |   440 +
 .../@angular/cdk/esm2015/stepper.js.map         |     1 +
 node_modules/@angular/cdk/esm2015/table.js      |   775 +
 node_modules/@angular/cdk/esm2015/table.js.map  |     1 +
 node_modules/@angular/cdk/esm5/a11y.es5.js      |  1680 +
 node_modules/@angular/cdk/esm5/a11y.es5.js.map  |     1 +
 node_modules/@angular/cdk/esm5/bidi.es5.js      |   175 +
 node_modules/@angular/cdk/esm5/bidi.es5.js.map  |     1 +
 node_modules/@angular/cdk/esm5/cdk.es5.js       |    20 +
 node_modules/@angular/cdk/esm5/cdk.es5.js.map   |     1 +
 node_modules/@angular/cdk/esm5/coercion.es5.js  |    46 +
 .../@angular/cdk/esm5/coercion.es5.js.map       |     1 +
 .../@angular/cdk/esm5/collections.es5.js        |   336 +
 .../@angular/cdk/esm5/collections.es5.js.map    |     1 +
 node_modules/@angular/cdk/esm5/keycodes.es5.js  |    32 +
 .../@angular/cdk/esm5/keycodes.es5.js.map       |     1 +
 node_modules/@angular/cdk/esm5/layout.es5.js    |   234 +
 .../@angular/cdk/esm5/layout.es5.js.map         |     1 +
 node_modules/@angular/cdk/esm5/observers.es5.js |   137 +
 .../@angular/cdk/esm5/observers.es5.js.map      |     1 +
 node_modules/@angular/cdk/esm5/overlay.es5.js   |  2041 ++
 .../@angular/cdk/esm5/overlay.es5.js.map        |     1 +
 node_modules/@angular/cdk/esm5/platform.es5.js  |   137 +
 .../@angular/cdk/esm5/platform.es5.js.map       |     1 +
 node_modules/@angular/cdk/esm5/portal.es5.js    |   589 +
 .../@angular/cdk/esm5/portal.es5.js.map         |     1 +
 node_modules/@angular/cdk/esm5/rxjs.es5.js      |   165 +
 node_modules/@angular/cdk/esm5/rxjs.es5.js.map  |     1 +
 node_modules/@angular/cdk/esm5/scrolling.es5.js |   416 +
 .../@angular/cdk/esm5/scrolling.es5.js.map      |     1 +
 node_modules/@angular/cdk/esm5/stepper.es5.js   |   479 +
 .../@angular/cdk/esm5/stepper.es5.js.map        |     1 +
 node_modules/@angular/cdk/esm5/table.es5.js     |   819 +
 node_modules/@angular/cdk/esm5/table.es5.js.map |     1 +
 node_modules/@angular/cdk/keycodes.d.ts         |     8 +
 .../@angular/cdk/keycodes.metadata.json         |    12 +
 node_modules/@angular/cdk/keycodes/index.d.ts   |     8 +
 .../@angular/cdk/keycodes/index.metadata.json   |    12 +
 node_modules/@angular/cdk/keycodes/package.json |     7 +
 .../@angular/cdk/keycodes/typings/index.d.ts    |     4 +
 .../cdk/keycodes/typings/index.metadata.json    |     1 +
 .../@angular/cdk/keycodes/typings/keycodes.d.ts |    25 +
 .../cdk/keycodes/typings/public-api.d.ts        |     8 +
 node_modules/@angular/cdk/layout.d.ts           |     8 +
 node_modules/@angular/cdk/layout.metadata.json  |    12 +
 node_modules/@angular/cdk/layout/index.d.ts     |     8 +
 .../@angular/cdk/layout/index.metadata.json     |    12 +
 node_modules/@angular/cdk/layout/package.json   |     7 +
 .../layout/typings/breakpoints-observer.d.ts    |    37 +
 .../cdk/layout/typings/breakpoints.d.ts         |    18 +
 .../@angular/cdk/layout/typings/index.d.ts      |     4 +
 .../cdk/layout/typings/index.metadata.json      |     1 +
 .../cdk/layout/typings/media-matcher.d.ts       |    15 +
 .../@angular/cdk/layout/typings/public-api.d.ts |     5 +
 node_modules/@angular/cdk/observers.d.ts        |     8 +
 .../@angular/cdk/observers.metadata.json        |    12 +
 node_modules/@angular/cdk/observers/index.d.ts  |     8 +
 .../@angular/cdk/observers/index.metadata.json  |    12 +
 .../@angular/cdk/observers/package.json         |     7 +
 .../@angular/cdk/observers/typings/index.d.ts   |     4 +
 .../cdk/observers/typings/index.metadata.json   |     1 +
 .../cdk/observers/typings/observe-content.d.ts  |    36 +
 .../cdk/observers/typings/public-api.d.ts       |     8 +
 node_modules/@angular/cdk/overlay-prebuilt.css  |     1 +
 node_modules/@angular/cdk/overlay.d.ts          |     8 +
 node_modules/@angular/cdk/overlay.metadata.json |    12 +
 node_modules/@angular/cdk/overlay/index.d.ts    |     8 +
 .../@angular/cdk/overlay/index.metadata.json    |    12 +
 node_modules/@angular/cdk/overlay/package.json  |     7 +
 .../typings/fullscreen-overlay-container.d.ts   |    20 +
 .../@angular/cdk/overlay/typings/index.d.ts     |     7 +
 .../cdk/overlay/typings/index.metadata.json     |     1 +
 .../cdk/overlay/typings/overlay-config.d.ts     |    38 +
 .../cdk/overlay/typings/overlay-container.d.ts  |    36 +
 .../cdk/overlay/typings/overlay-directives.d.ts |   127 +
 .../cdk/overlay/typings/overlay-module.d.ts     |    11 +
 .../cdk/overlay/typings/overlay-ref.d.ts        |    79 +
 .../@angular/cdk/overlay/typings/overlay.d.ts   |    53 +
 .../position/connected-position-strategy.d.ts   |   133 +
 .../typings/position/connected-position.d.ts    |    56 +
 .../position/global-position-strategy.d.ts      |    83 +
 .../position/overlay-position-builder.d.ts      |    28 +
 .../typings/position/position-strategy.d.ts     |    19 +
 .../overlay/typings/position/scroll-clip.d.ts   |    23 +
 .../cdk/overlay/typings/public-api.d.ts         |    22 +
 .../typings/scroll/block-scroll-strategy.d.ts   |    23 +
 .../typings/scroll/close-scroll-strategy.d.ts   |    22 +
 .../cdk/overlay/typings/scroll/index.d.ts       |    14 +
 .../typings/scroll/noop-scroll-strategy.d.ts    |    16 +
 .../scroll/reposition-scroll-strategy.d.ts      |    22 +
 .../typings/scroll/scroll-strategy-options.d.ts |    29 +
 .../overlay/typings/scroll/scroll-strategy.d.ts |    21 +
 node_modules/@angular/cdk/package.json          |    58 +
 node_modules/@angular/cdk/platform.d.ts         |     8 +
 .../@angular/cdk/platform.metadata.json         |    12 +
 node_modules/@angular/cdk/portal.d.ts           |     8 +
 node_modules/@angular/cdk/portal.metadata.json  |    12 +
 node_modules/@angular/cdk/portal/index.d.ts     |     8 +
 .../@angular/cdk/portal/index.metadata.json     |    12 +
 node_modules/@angular/cdk/portal/package.json   |     7 +
 .../cdk/portal/typings/dom-portal-host.d.ts     |    38 +
 .../@angular/cdk/portal/typings/index.d.ts      |     4 +
 .../cdk/portal/typings/index.metadata.json      |     1 +
 .../cdk/portal/typings/portal-directives.d.ts   |    53 +
 .../cdk/portal/typings/portal-errors.d.ts       |    37 +
 .../cdk/portal/typings/portal-injector.d.ts     |    19 +
 .../@angular/cdk/portal/typings/portal.d.ts     |    94 +
 .../@angular/cdk/portal/typings/public-api.d.ts |    11 +
 node_modules/@angular/cdk/rxjs.d.ts             |     8 +
 node_modules/@angular/cdk/rxjs.metadata.json    |    12 +
 node_modules/@angular/cdk/rxjs/index.d.ts       |     8 +
 .../@angular/cdk/rxjs/index.metadata.json       |    12 +
 node_modules/@angular/cdk/rxjs/package.json     |     7 +
 .../@angular/cdk/rxjs/typings/index.d.ts        |     4 +
 .../cdk/rxjs/typings/index.metadata.json        |     1 +
 .../@angular/cdk/rxjs/typings/public-api.d.ts   |     9 +
 .../@angular/cdk/rxjs/typings/rx-chain.d.ts     |    41 +
 .../@angular/cdk/rxjs/typings/rx-operators.d.ts |   144 +
 node_modules/@angular/cdk/scrolling.d.ts        |     8 +
 .../@angular/cdk/scrolling.metadata.json        |    12 +
 node_modules/@angular/cdk/scrolling/index.d.ts  |     8 +
 .../@angular/cdk/scrolling/index.metadata.json  |    12 +
 .../@angular/cdk/scrolling/package.json         |     7 +
 .../@angular/cdk/scrolling/typings/index.d.ts   |     4 +
 .../cdk/scrolling/typings/index.metadata.json   |     1 +
 .../cdk/scrolling/typings/public-api.d.ts       |    11 +
 .../scrolling/typings/scroll-dispatcher.d.ts    |    65 +
 .../cdk/scrolling/typings/scrollable.d.ts       |    31 +
 .../cdk/scrolling/typings/scrolling-module.d.ts |     2 +
 .../cdk/scrolling/typings/viewport-ruler.d.ts   |    52 +
 node_modules/@angular/cdk/stepper.d.ts          |     8 +
 node_modules/@angular/cdk/stepper.metadata.json |    12 +
 node_modules/@angular/cdk/stepper/index.d.ts    |     8 +
 .../@angular/cdk/stepper/index.metadata.json    |    12 +
 node_modules/@angular/cdk/stepper/package.json  |     7 +
 .../@angular/cdk/stepper/typings/index.d.ts     |     4 +
 .../cdk/stepper/typings/index.metadata.json     |     1 +
 .../cdk/stepper/typings/public-api.d.ts         |    11 +
 .../cdk/stepper/typings/step-label.d.ts         |    12 +
 .../cdk/stepper/typings/stepper-button.d.ts     |    11 +
 .../cdk/stepper/typings/stepper-module.d.ts     |     2 +
 .../@angular/cdk/stepper/typings/stepper.d.ts   |    97 +
 node_modules/@angular/cdk/table.d.ts            |     8 +
 node_modules/@angular/cdk/table.metadata.json   |    12 +
 node_modules/@angular/cdk/table/index.d.ts      |     8 +
 .../@angular/cdk/table/index.metadata.json      |    12 +
 node_modules/@angular/cdk/table/package.json    |     7 +
 .../@angular/cdk/table/typings/cell.d.ts        |    51 +
 .../@angular/cdk/table/typings/index.d.ts       |     4 +
 .../cdk/table/typings/index.metadata.json       |     1 +
 .../@angular/cdk/table/typings/public-api.d.ts  |    13 +
 .../@angular/cdk/table/typings/row.d.ts         |    98 +
 .../cdk/table/typings/table-errors.d.ts         |    28 +
 .../cdk/table/typings/table-module.d.ts         |     2 +
 .../@angular/cdk/table/typings/table.d.ts       |   140 +
 .../@angular/cdk/typings/a11y/a11y-module.d.ts  |     2 +
 .../a11y/activedescendant-key-manager.d.ts      |    25 +
 .../cdk/typings/a11y/aria-describer.d.ts        |    51 +
 .../cdk/typings/a11y/aria-reference.d.ts        |    15 +
 .../cdk/typings/a11y/fake-mousedown.d.ts        |    15 +
 .../cdk/typings/a11y/focus-key-manager.d.ts     |    23 +
 .../cdk/typings/a11y/focus-monitor.d.ts         |   106 +
 .../@angular/cdk/typings/a11y/focus-trap.d.ts   |   120 +
 .../@angular/cdk/typings/a11y/index.d.ts        |     4 +
 .../cdk/typings/a11y/index.metadata.json        |     1 +
 .../cdk/typings/a11y/interactivity-checker.d.ts |    45 +
 .../cdk/typings/a11y/list-key-manager.d.ts      |    96 +
 .../cdk/typings/a11y/live-announcer.d.ts        |    32 +
 .../@angular/cdk/typings/a11y/public-api.d.ts   |    17 +
 .../@angular/cdk/typings/bidi/bidi-module.d.ts  |     2 +
 node_modules/@angular/cdk/typings/bidi/dir.d.ts |    28 +
 .../cdk/typings/bidi/directionality.d.ts        |    37 +
 .../@angular/cdk/typings/bidi/index.d.ts        |     4 +
 .../cdk/typings/bidi/index.metadata.json        |     1 +
 .../@angular/cdk/typings/bidi/public-api.d.ts   |    10 +
 .../@angular/cdk/typings/coercion/array.d.ts    |     9 +
 .../cdk/typings/coercion/boolean-property.d.ts  |     9 +
 .../@angular/cdk/typings/coercion/index.d.ts    |     4 +
 .../cdk/typings/coercion/index.metadata.json    |     1 +
 .../cdk/typings/coercion/number-property.d.ts   |     9 +
 .../cdk/typings/coercion/public-api.d.ts        |    10 +
 .../typings/collections/collection-viewer.d.ts  |    18 +
 .../cdk/typings/collections/data-source.d.ts    |    28 +
 .../@angular/cdk/typings/collections/index.d.ts |     5 +
 .../cdk/typings/collections/index.metadata.json |     1 +
 .../cdk/typings/collections/public-api.d.ts     |    11 +
 .../cdk/typings/collections/selection.d.ts      |    87 +
 .../unique-selection-dispatcher.d.ts            |    40 +
 node_modules/@angular/cdk/typings/index.d.ts    |     4 +
 .../@angular/cdk/typings/index.metadata.json    |     1 +
 .../@angular/cdk/typings/keycodes/index.d.ts    |     4 +
 .../cdk/typings/keycodes/index.metadata.json    |     1 +
 .../@angular/cdk/typings/keycodes/keycodes.d.ts |    25 +
 .../cdk/typings/keycodes/public-api.d.ts        |     8 +
 .../typings/layout/breakpoints-observer.d.ts    |    37 +
 .../cdk/typings/layout/breakpoints.d.ts         |    18 +
 .../@angular/cdk/typings/layout/index.d.ts      |     4 +
 .../cdk/typings/layout/index.metadata.json      |     1 +
 .../cdk/typings/layout/media-matcher.d.ts       |    15 +
 .../@angular/cdk/typings/layout/public-api.d.ts |     5 +
 .../@angular/cdk/typings/observers/index.d.ts   |     4 +
 .../cdk/typings/observers/index.metadata.json   |     1 +
 .../cdk/typings/observers/observe-content.d.ts  |    36 +
 .../cdk/typings/observers/public-api.d.ts       |     8 +
 .../overlay/fullscreen-overlay-container.d.ts   |    20 +
 .../@angular/cdk/typings/overlay/index.d.ts     |     7 +
 .../cdk/typings/overlay/index.metadata.json     |     1 +
 .../cdk/typings/overlay/overlay-config.d.ts     |    38 +
 .../cdk/typings/overlay/overlay-container.d.ts  |    36 +
 .../cdk/typings/overlay/overlay-directives.d.ts |   127 +
 .../cdk/typings/overlay/overlay-module.d.ts     |    11 +
 .../cdk/typings/overlay/overlay-ref.d.ts        |    79 +
 .../@angular/cdk/typings/overlay/overlay.d.ts   |    53 +
 .../position/connected-position-strategy.d.ts   |   133 +
 .../overlay/position/connected-position.d.ts    |    56 +
 .../position/global-position-strategy.d.ts      |    83 +
 .../position/overlay-position-builder.d.ts      |    28 +
 .../overlay/position/position-strategy.d.ts     |    19 +
 .../typings/overlay/position/scroll-clip.d.ts   |    23 +
 .../cdk/typings/overlay/public-api.d.ts         |    22 +
 .../overlay/scroll/block-scroll-strategy.d.ts   |    23 +
 .../overlay/scroll/close-scroll-strategy.d.ts   |    22 +
 .../cdk/typings/overlay/scroll/index.d.ts       |    14 +
 .../overlay/scroll/noop-scroll-strategy.d.ts    |    16 +
 .../scroll/reposition-scroll-strategy.d.ts      |    22 +
 .../overlay/scroll/scroll-strategy-options.d.ts |    29 +
 .../typings/overlay/scroll/scroll-strategy.d.ts |    21 +
 .../cdk/typings/portal/dom-portal-host.d.ts     |    38 +
 .../@angular/cdk/typings/portal/index.d.ts      |     4 +
 .../cdk/typings/portal/index.metadata.json      |     1 +
 .../cdk/typings/portal/portal-directives.d.ts   |    53 +
 .../cdk/typings/portal/portal-errors.d.ts       |    37 +
 .../cdk/typings/portal/portal-injector.d.ts     |    19 +
 .../@angular/cdk/typings/portal/portal.d.ts     |    94 +
 .../@angular/cdk/typings/portal/public-api.d.ts |    11 +
 .../@angular/cdk/typings/public-api.d.ts        |     8 +
 .../@angular/cdk/typings/rxjs/index.d.ts        |     4 +
 .../cdk/typings/rxjs/index.metadata.json        |     1 +
 .../@angular/cdk/typings/rxjs/public-api.d.ts   |     9 +
 .../@angular/cdk/typings/rxjs/rx-chain.d.ts     |    41 +
 .../@angular/cdk/typings/rxjs/rx-operators.d.ts |   144 +
 .../@angular/cdk/typings/scrolling/index.d.ts   |     4 +
 .../cdk/typings/scrolling/index.metadata.json   |     1 +
 .../cdk/typings/scrolling/public-api.d.ts       |    11 +
 .../typings/scrolling/scroll-dispatcher.d.ts    |    65 +
 .../cdk/typings/scrolling/scrollable.d.ts       |    31 +
 .../cdk/typings/scrolling/scrolling-module.d.ts |     2 +
 .../cdk/typings/scrolling/viewport-ruler.d.ts   |    52 +
 .../@angular/cdk/typings/stepper/index.d.ts     |     4 +
 .../cdk/typings/stepper/index.metadata.json     |     1 +
 .../cdk/typings/stepper/public-api.d.ts         |    11 +
 .../cdk/typings/stepper/step-label.d.ts         |    12 +
 .../cdk/typings/stepper/stepper-button.d.ts     |    11 +
 .../cdk/typings/stepper/stepper-module.d.ts     |     2 +
 .../@angular/cdk/typings/stepper/stepper.d.ts   |    97 +
 .../@angular/cdk/typings/table/cell.d.ts        |    51 +
 .../@angular/cdk/typings/table/index.d.ts       |     4 +
 .../cdk/typings/table/index.metadata.json       |     1 +
 .../@angular/cdk/typings/table/public-api.d.ts  |    13 +
 .../@angular/cdk/typings/table/row.d.ts         |    98 +
 .../cdk/typings/table/table-errors.d.ts         |    28 +
 .../cdk/typings/table/table-module.d.ts         |     2 +
 .../@angular/cdk/typings/table/table.d.ts       |   140 +
 node_modules/@angular/cdk/typings/version.d.ts  |    10 +
 .../@angular/common/@angular/common.es5.js      |  4000 +++
 .../@angular/common/@angular/common.es5.js.map  |     1 +
 node_modules/@angular/common/@angular/common.js |  3878 +++
 .../@angular/common/@angular/common.js.map      |     1 +
 .../@angular/common/@angular/common/http.es5.js |  2152 ++
 .../common/@angular/common/http.es5.js.map      |     1 +
 .../@angular/common/@angular/common/http.js     |  2085 ++
 .../@angular/common/@angular/common/http.js.map |     1 +
 .../common/@angular/common/http/testing.es5.js  |   557 +
 .../@angular/common/http/testing.es5.js.map     |     1 +
 .../common/@angular/common/http/testing.js      |   546 +
 .../common/@angular/common/http/testing.js.map  |     1 +
 .../common/@angular/common/testing.es5.js       |   216 +
 .../common/@angular/common/testing.es5.js.map   |     1 +
 .../@angular/common/@angular/common/testing.js  |   208 +
 .../common/@angular/common/testing.js.map       |     1 +
 .../common/bundles/common-http-testing.umd.js   |   563 +
 .../bundles/common-http-testing.umd.js.map      |     1 +
 .../bundles/common-http-testing.umd.min.js      |    26 +
 .../bundles/common-http-testing.umd.min.js.map  |     1 +
 .../@angular/common/bundles/common-http.umd.js  |  2179 ++
 .../common/bundles/common-http.umd.js.map       |     1 +
 .../common/bundles/common-http.umd.min.js       |    68 +
 .../common/bundles/common-http.umd.min.js.map   |     1 +
 .../common/bundles/common-testing.umd.js        |   232 +
 .../common/bundles/common-testing.umd.js.map    |     1 +
 .../common/bundles/common-testing.umd.min.js    |     7 +
 .../bundles/common-testing.umd.min.js.map       |     1 +
 .../@angular/common/bundles/common.umd.js       |  4061 +++
 .../@angular/common/bundles/common.umd.js.map   |     1 +
 .../@angular/common/bundles/common.umd.min.js   |   157 +
 .../common/bundles/common.umd.min.js.map        |     1 +
 node_modules/@angular/common/common.d.ts        |     6 +
 .../@angular/common/common.metadata.json        |     1 +
 node_modules/@angular/common/http.d.ts          |     6 +
 node_modules/@angular/common/http.metadata.json |     1 +
 node_modules/@angular/common/http/index.d.ts    |     9 +
 .../@angular/common/http/index.metadata.json    |     1 +
 node_modules/@angular/common/http/package.json  |     7 +
 .../@angular/common/http/public_api.d.ts        |    18 +
 .../@angular/common/http/src/backend.d.ts       |    38 +
 .../@angular/common/http/src/client.d.ts        |  1622 +
 .../@angular/common/http/src/headers.d.ts       |    50 +
 .../@angular/common/http/src/interceptor.d.ts   |    63 +
 .../@angular/common/http/src/jsonp.d.ts         |    47 +
 .../@angular/common/http/src/module.d.ts        |    74 +
 .../@angular/common/http/src/params.d.ts        |    87 +
 .../@angular/common/http/src/request.d.ts       |   130 +
 .../@angular/common/http/src/response.d.ts      |   267 +
 node_modules/@angular/common/http/src/xhr.d.ts  |    35 +
 node_modules/@angular/common/http/src/xsrf.d.ts |    42 +
 node_modules/@angular/common/http/testing.d.ts  |     6 +
 .../@angular/common/http/testing.metadata.json  |     1 +
 .../@angular/common/http/testing/index.d.ts     |     5 +
 .../common/http/testing/index.metadata.json     |     1 +
 .../@angular/common/http/testing/package.json   |     7 +
 .../common/http/testing/public_api.d.ts         |    10 +
 .../@angular/common/http/testing/src/api.d.ts   |   102 +
 .../common/http/testing/src/backend.d.ts        |    61 +
 .../common/http/testing/src/module.d.ts         |     9 +
 .../common/http/testing/src/request.d.ts        |    54 +
 node_modules/@angular/common/package.json       |    53 +
 node_modules/@angular/common/public_api.d.ts    |    13 +
 node_modules/@angular/common/src/common.d.ts    |    21 +
 .../@angular/common/src/common_module.d.ts      |    21 +
 node_modules/@angular/common/src/cookie.d.ts    |     8 +
 .../@angular/common/src/directives/index.d.ts   |    26 +
 .../common/src/directives/ng_class.d.ts         |    58 +
 .../src/directives/ng_component_outlet.d.ts     |    75 +
 .../common/src/directives/ng_for_of.d.ts        |   117 +
 .../@angular/common/src/directives/ng_if.d.ts   |   118 +
 .../common/src/directives/ng_plural.d.ts        |    75 +
 .../common/src/directives/ng_style.d.ts         |    44 +
 .../common/src/directives/ng_switch.d.ts        |   125 +
 .../src/directives/ng_template_outlet.d.ts      |    44 +
 .../@angular/common/src/dom_tokens.d.ts         |    17 +
 .../@angular/common/src/localization.d.ts       |    31 +
 .../src/location/hash_location_strategy.d.ts    |    32 +
 .../@angular/common/src/location/index.d.ts     |    12 +
 .../@angular/common/src/location/location.d.ts  |    88 +
 .../common/src/location/location_strategy.d.ts  |    60 +
 .../src/location/path_location_strategy.d.ts    |    41 +
 .../common/src/location/platform_location.d.ts  |    61 +
 .../@angular/common/src/pipes/async_pipe.d.ts   |    52 +
 .../common/src/pipes/case_conversion_pipes.d.ts |    34 +
 .../@angular/common/src/pipes/date_pipe.d.ts    |    82 +
 .../common/src/pipes/i18n_plural_pipe.d.ts      |    33 +
 .../common/src/pipes/i18n_select_pipe.d.ts      |    30 +
 .../@angular/common/src/pipes/index.d.ts        |    25 +
 .../@angular/common/src/pipes/intl.d.ts         |    24 +
 .../src/pipes/invalid_pipe_argument_error.d.ts  |     9 +
 .../@angular/common/src/pipes/json_pipe.d.ts    |    24 +
 .../@angular/common/src/pipes/number_pipe.d.ts  |    95 +
 .../@angular/common/src/pipes/slice_pipe.d.ts   |    56 +
 .../@angular/common/src/platform_id.d.ts        |    31 +
 node_modules/@angular/common/src/version.d.ts   |    17 +
 node_modules/@angular/common/testing.d.ts       |     6 +
 .../@angular/common/testing.metadata.json       |     1 +
 node_modules/@angular/common/testing/index.d.ts |    13 +
 .../@angular/common/testing/index.metadata.json |     1 +
 .../@angular/common/testing/package.json        |     7 +
 .../common/testing/src/location_mock.d.ts       |    31 +
 .../testing/src/location_mock.metadata.json     |     1 +
 .../testing/src/mock_location_strategy.d.ts     |    30 +
 .../src/mock_location_strategy.metadata.json    |     1 +
 .../@angular/common/testing/src/testing.d.ts    |    14 +
 .../common/testing/src/testing.metadata.json    |     1 +
 .../@angular/compiler/@angular/compiler.es5.js  | 27672 ++++++++++++++++
 .../compiler/@angular/compiler.es5.js.map       |     1 +
 .../@angular/compiler/@angular/compiler.js      | 26770 ++++++++++++++++
 .../@angular/compiler/@angular/compiler.js.map  |     1 +
 .../compiler/@angular/compiler/testing.es5.js   |   552 +
 .../@angular/compiler/testing.es5.js.map        |     1 +
 .../compiler/@angular/compiler/testing.js       |   521 +
 .../compiler/@angular/compiler/testing.js.map   |     1 +
 .../compiler/bundles/compiler-testing.umd.js    |   584 +
 .../bundles/compiler-testing.umd.js.map         |     1 +
 .../bundles/compiler-testing.umd.min.js         |    28 +
 .../bundles/compiler-testing.umd.min.js.map     |     1 +
 .../@angular/compiler/bundles/compiler.umd.js   | 27891 +++++++++++++++++
 .../compiler/bundles/compiler.umd.js.map        |     1 +
 .../compiler/bundles/compiler.umd.min.js        |   172 +
 .../compiler/bundles/compiler.umd.min.js.map    |     1 +
 node_modules/@angular/compiler/compiler.d.ts    |    13 +
 .../@angular/compiler/compiler.metadata.json    |     1 +
 node_modules/@angular/compiler/package.json     |    53 +
 .../@angular/compiler/src/aot/compiler.d.ts     |    71 +
 .../compiler/src/aot/compiler.metadata.json     |     1 +
 .../compiler/src/aot/compiler_factory.d.ts      |    11 +
 .../src/aot/compiler_factory.metadata.json      |     1 +
 .../compiler/src/aot/compiler_host.d.ts         |    19 +
 .../src/aot/compiler_host.metadata.json         |     1 +
 .../compiler/src/aot/compiler_options.d.ts      |    17 +
 .../src/aot/compiler_options.metadata.json      |     1 +
 .../compiler/src/aot/generated_file.d.ts        |     9 +
 .../src/aot/generated_file.metadata.json        |     1 +
 .../compiler/src/aot/static_reflector.d.ts      |    64 +
 .../src/aot/static_reflector.metadata.json      |     1 +
 .../compiler/src/aot/static_symbol.d.ts         |    27 +
 .../src/aot/static_symbol.metadata.json         |     1 +
 .../src/aot/static_symbol_resolver.d.ts         |   124 +
 .../aot/static_symbol_resolver.metadata.json    |     1 +
 .../compiler/src/aot/summary_resolver.d.ts      |    40 +
 .../src/aot/summary_resolver.metadata.json      |     1 +
 .../compiler/src/aot/summary_serializer.d.ts    |    30 +
 .../src/aot/summary_serializer.metadata.json    |     1 +
 .../@angular/compiler/src/aot/util.d.ts         |     9 +
 .../compiler/src/aot/util.metadata.json         |     1 +
 .../@angular/compiler/src/assertions.d.ts       |     2 +
 .../compiler/src/assertions.metadata.json       |     1 +
 .../@angular/compiler/src/ast_path.d.ts         |    39 +
 .../compiler/src/ast_path.metadata.json         |     1 +
 node_modules/@angular/compiler/src/chars.d.ts   |    69 +
 .../@angular/compiler/src/chars.metadata.json   |     1 +
 .../@angular/compiler/src/compile_metadata.d.ts |   374 +
 .../compiler/src/compile_metadata.metadata.json |     1 +
 .../compiler/src/compile_reflector.d.ts         |    22 +
 .../src/compile_reflector.metadata.json         |     1 +
 .../@angular/compiler/src/compiler.d.ts         |    71 +
 .../compiler/src/compiler.metadata.json         |     1 +
 .../src/compiler_util/expression_converter.d.ts |    49 +
 .../expression_converter.metadata.json          |     1 +
 node_modules/@angular/compiler/src/config.d.ts  |    23 +
 .../@angular/compiler/src/config.metadata.json  |     1 +
 .../compiler/src/directive_normalizer.d.ts      |    44 +
 .../src/directive_normalizer.metadata.json      |     1 +
 .../compiler/src/directive_resolver.d.ts        |    25 +
 .../src/directive_resolver.metadata.json        |     1 +
 .../compiler/src/expression_parser/ast.d.ts     |   278 +
 .../src/expression_parser/ast.metadata.json     |     1 +
 .../compiler/src/expression_parser/lexer.d.ts   |    38 +
 .../src/expression_parser/lexer.metadata.json   |     1 +
 .../compiler/src/expression_parser/parser.d.ts  |    86 +
 .../src/expression_parser/parser.metadata.json  |     1 +
 .../@angular/compiler/src/i18n/digest.d.ts      |    23 +
 .../compiler/src/i18n/digest.metadata.json      |     1 +
 .../@angular/compiler/src/i18n/extractor.d.ts   |    27 +
 .../compiler/src/i18n/extractor.metadata.json   |     1 +
 .../compiler/src/i18n/extractor_merger.d.ts     |    27 +
 .../src/i18n/extractor_merger.metadata.json     |     1 +
 .../@angular/compiler/src/i18n/i18n_ast.d.ts    |   123 +
 .../compiler/src/i18n/i18n_ast.metadata.json    |     1 +
 .../compiler/src/i18n/i18n_html_parser.d.ts     |    18 +
 .../src/i18n/i18n_html_parser.metadata.json     |     1 +
 .../@angular/compiler/src/i18n/i18n_parser.d.ts |     7 +
 .../compiler/src/i18n/i18n_parser.metadata.json |     1 +
 .../@angular/compiler/src/i18n/index.d.ts       |    15 +
 .../compiler/src/i18n/index.metadata.json       |     1 +
 .../compiler/src/i18n/message_bundle.d.ts       |    28 +
 .../src/i18n/message_bundle.metadata.json       |     1 +
 .../@angular/compiler/src/i18n/parse_util.d.ts  |    14 +
 .../compiler/src/i18n/parse_util.metadata.json  |     1 +
 .../src/i18n/serializers/placeholder.d.ts       |     0
 .../i18n/serializers/placeholder.metadata.json  |     1 +
 .../src/i18n/serializers/serializer.d.ts        |    46 +
 .../i18n/serializers/serializer.metadata.json   |     1 +
 .../compiler/src/i18n/serializers/xliff.d.ts    |    12 +
 .../src/i18n/serializers/xliff.metadata.json    |     1 +
 .../compiler/src/i18n/serializers/xliff2.d.ts   |    12 +
 .../src/i18n/serializers/xliff2.metadata.json   |     1 +
 .../compiler/src/i18n/serializers/xmb.d.ts      |    15 +
 .../src/i18n/serializers/xmb.metadata.json      |     1 +
 .../src/i18n/serializers/xml_helper.d.ts        |    51 +
 .../i18n/serializers/xml_helper.metadata.json   |     1 +
 .../compiler/src/i18n/serializers/xtb.d.ts      |    13 +
 .../src/i18n/serializers/xtb.metadata.json      |     1 +
 .../compiler/src/i18n/translation_bundle.d.ts   |    26 +
 .../src/i18n/translation_bundle.metadata.json   |     1 +
 .../@angular/compiler/src/identifiers.d.ts      |    52 +
 .../compiler/src/identifiers.metadata.json      |     1 +
 .../@angular/compiler/src/injectable.d.ts       |    14 +
 .../compiler/src/injectable.metadata.json       |     1 +
 .../@angular/compiler/src/jit/compiler.d.ts     |    62 +
 .../compiler/src/jit/compiler.metadata.json     |     1 +
 .../compiler/src/jit/compiler_factory.d.ts      |    26 +
 .../src/jit/compiler_factory.metadata.json      |     1 +
 .../compiler/src/jit/jit_reflector.d.ts         |    22 +
 .../src/jit/jit_reflector.metadata.json         |     1 +
 .../compiler/src/lifecycle_reflector.d.ts       |    21 +
 .../src/lifecycle_reflector.metadata.json       |     1 +
 .../compiler/src/metadata_resolver.d.ts         |   102 +
 .../src/metadata_resolver.metadata.json         |     1 +
 .../@angular/compiler/src/ml_parser/ast.d.ts    |    83 +
 .../compiler/src/ml_parser/ast.metadata.json    |     1 +
 .../compiler/src/ml_parser/html_parser.d.ts     |     7 +
 .../src/ml_parser/html_parser.metadata.json     |     1 +
 .../compiler/src/ml_parser/html_tags.d.ts       |    33 +
 .../src/ml_parser/html_tags.metadata.json       |     1 +
 .../src/ml_parser/html_whitespaces.d.ts         |    10 +
 .../ml_parser/html_whitespaces.metadata.json    |     1 +
 .../src/ml_parser/icu_ast_expander.d.ts         |    42 +
 .../ml_parser/icu_ast_expander.metadata.json    |     1 +
 .../src/ml_parser/interpolation_config.d.ts     |     7 +
 .../interpolation_config.metadata.json          |     1 +
 .../@angular/compiler/src/ml_parser/lexer.d.ts  |    41 +
 .../compiler/src/ml_parser/lexer.metadata.json  |     1 +
 .../@angular/compiler/src/ml_parser/parser.d.ts |    26 +
 .../compiler/src/ml_parser/parser.metadata.json |     1 +
 .../@angular/compiler/src/ml_parser/tags.d.ts   |    37 +
 .../compiler/src/ml_parser/tags.metadata.json   |     1 +
 .../compiler/src/ml_parser/xml_parser.d.ts      |    13 +
 .../src/ml_parser/xml_parser.metadata.json      |     1 +
 .../compiler/src/ml_parser/xml_tags.d.ts        |    23 +
 .../src/ml_parser/xml_tags.metadata.json        |     1 +
 .../compiler/src/ng_module_compiler.d.ts        |    14 +
 .../src/ng_module_compiler.metadata.json        |     1 +
 .../compiler/src/ng_module_resolver.d.ts        |    18 +
 .../src/ng_module_resolver.metadata.json        |     1 +
 .../compiler/src/output/abstract_emitter.d.ts   |    81 +
 .../src/output/abstract_emitter.metadata.json   |     1 +
 .../src/output/abstract_js_emitter.d.ts         |    25 +
 .../output/abstract_js_emitter.metadata.json    |     1 +
 .../compiler/src/output/output_ast.d.ts         |   474 +
 .../src/output/output_ast.metadata.json         |     1 +
 .../compiler/src/output/output_interpreter.d.ts |    11 +
 .../src/output/output_interpreter.metadata.json |     1 +
 .../compiler/src/output/output_jit.d.ts         |    19 +
 .../src/output/output_jit.metadata.json         |     1 +
 .../compiler/src/output/source_map.d.ts         |    23 +
 .../src/output/source_map.metadata.json         |     1 +
 .../compiler/src/output/ts_emitter.d.ts         |    10 +
 .../src/output/ts_emitter.metadata.json         |     1 +
 .../compiler/src/output/value_util.d.ts         |    11 +
 .../src/output/value_util.metadata.json         |     1 +
 .../@angular/compiler/src/parse_util.d.ts       |    39 +
 .../compiler/src/parse_util.metadata.json       |     1 +
 .../@angular/compiler/src/pipe_resolver.d.ts    |    25 +
 .../compiler/src/pipe_resolver.metadata.json    |     1 +
 .../compiler/src/provider_analyzer.d.ts         |    60 +
 .../src/provider_analyzer.metadata.json         |     1 +
 .../@angular/compiler/src/resource_loader.d.ts  |    14 +
 .../compiler/src/resource_loader.metadata.json  |     1 +
 .../src/schema/dom_element_schema_registry.d.ts |    42 +
 .../dom_element_schema_registry.metadata.json   |     1 +
 .../src/schema/dom_security_schema.d.ts         |    12 +
 .../schema/dom_security_schema.metadata.json    |     1 +
 .../src/schema/element_schema_registry.d.ts     |    29 +
 .../element_schema_registry.metadata.json       |     1 +
 .../@angular/compiler/src/selector.d.ts         |    64 +
 .../compiler/src/selector.metadata.json         |     1 +
 .../@angular/compiler/src/shadow_css.d.ts       |    46 +
 .../compiler/src/shadow_css.metadata.json       |     1 +
 .../@angular/compiler/src/style_compiler.d.ts   |    27 +
 .../compiler/src/style_compiler.metadata.json   |     1 +
 .../compiler/src/style_url_resolver.d.ts        |    19 +
 .../src/style_url_resolver.metadata.json        |     1 +
 .../@angular/compiler/src/summary_resolver.d.ts |    31 +
 .../compiler/src/summary_resolver.metadata.json |     1 +
 .../src/template_parser/binding_parser.d.ts     |    76 +
 .../binding_parser.metadata.json                |     1 +
 .../src/template_parser/template_ast.d.ts       |   281 +
 .../template_parser/template_ast.metadata.json  |     1 +
 .../src/template_parser/template_parser.d.ts    |    59 +
 .../template_parser.metadata.json               |     1 +
 .../src/template_parser/template_preparser.d.ts |    24 +
 .../template_preparser.metadata.json            |     1 +
 .../@angular/compiler/src/url_resolver.d.ts     |    53 +
 .../compiler/src/url_resolver.metadata.json     |     1 +
 node_modules/@angular/compiler/src/util.d.ts    |    42 +
 .../@angular/compiler/src/util.metadata.json    |     1 +
 node_modules/@angular/compiler/src/version.d.ts |    17 +
 .../@angular/compiler/src/version.metadata.json |     1 +
 .../src/view_compiler/provider_compiler.d.ts    |    28 +
 .../provider_compiler.metadata.json             |     1 +
 .../src/view_compiler/view_compiler.d.ts        |    15 +
 .../view_compiler/view_compiler.metadata.json   |     1 +
 node_modules/@angular/compiler/testing.d.ts     |     6 +
 .../@angular/compiler/testing.metadata.json     |     1 +
 .../@angular/compiler/testing/index.d.ts        |    13 +
 .../compiler/testing/index.metadata.json        |     1 +
 .../@angular/compiler/testing/package.json      |     7 +
 .../testing/src/directive_resolver_mock.d.ts    |    41 +
 .../src/directive_resolver_mock.metadata.json   |     1 +
 .../testing/src/metadata_overrider.d.ts         |    11 +
 .../src/metadata_overrider.metadata.json        |     1 +
 .../testing/src/ng_module_resolver_mock.d.ts    |    27 +
 .../src/ng_module_resolver_mock.metadata.json   |     1 +
 .../testing/src/pipe_resolver_mock.d.ts         |    27 +
 .../src/pipe_resolver_mock.metadata.json        |     1 +
 .../testing/src/schema_registry_mock.d.ts       |    48 +
 .../src/schema_registry_mock.metadata.json      |     1 +
 .../@angular/compiler/testing/src/testing.d.ts  |    67 +
 .../compiler/testing/src/testing.metadata.json  |     1 +
 node_modules/@angular/core/@angular/core.es5.js | 14823 +++++++++
 .../@angular/core/@angular/core.es5.js.map      |     1 +
 node_modules/@angular/core/@angular/core.js     | 14370 +++++++++
 node_modules/@angular/core/@angular/core.js.map |     1 +
 .../@angular/core/@angular/core/testing.es5.js  |  1053 +
 .../core/@angular/core/testing.es5.js.map       |     1 +
 .../@angular/core/@angular/core/testing.js      |  1016 +
 .../@angular/core/@angular/core/testing.js.map  |     1 +
 .../@angular/core/bundles/core-testing.umd.js   |  1080 +
 .../core/bundles/core-testing.umd.js.map        |     1 +
 .../core/bundles/core-testing.umd.min.js        |    14 +
 .../core/bundles/core-testing.umd.min.js.map    |     1 +
 node_modules/@angular/core/bundles/core.umd.js  | 15025 +++++++++
 .../@angular/core/bundles/core.umd.js.map       |     1 +
 .../@angular/core/bundles/core.umd.min.js       |   218 +
 .../@angular/core/bundles/core.umd.min.js.map   |     1 +
 node_modules/@angular/core/core.d.ts            |    18 +
 node_modules/@angular/core/core.metadata.json   |     1 +
 node_modules/@angular/core/package.json         |    54 +
 node_modules/@angular/core/public_api.d.ts      |    13 +
 .../animation/animation_metadata_wrapped.d.ts   |   122 +
 .../@angular/core/src/animation/dsl.d.ts        |  1053 +
 .../@angular/core/src/application_init.d.ts     |    22 +
 .../@angular/core/src/application_module.d.ts   |    14 +
 .../@angular/core/src/application_ref.d.ts      |   260 +
 .../@angular/core/src/application_tokens.d.ts   |    54 +
 .../@angular/core/src/change_detection.d.ts     |    13 +
 .../src/change_detection/change_detection.d.ts  |    14 +
 .../change_detection/change_detection_util.d.ts |    51 +
 .../change_detection/change_detector_ref.d.ts   |   189 +
 .../core/src/change_detection/constants.d.ts    |    58 +
 .../differs/default_iterable_differ.d.ts        |    54 +
 .../differs/default_keyvalue_differ.d.ts        |    48 +
 .../differs/iterable_differs.d.ts               |   158 +
 .../differs/keyvalue_differs.d.ts               |   135 +
 .../src/change_detection/pipe_transform.d.ts    |    39 +
 .../core/src/codegen_private_exports.d.ts       |    10 +
 node_modules/@angular/core/src/console.d.ts     |     4 +
 node_modules/@angular/core/src/core.d.ts        |    56 +
 .../@angular/core/src/core_private_export.d.ts  |    25 +
 .../@angular/core/src/debug/debug_node.d.ts     |    85 +
 node_modules/@angular/core/src/di.d.ts          |    20 +
 .../@angular/core/src/di/forward_ref.d.ts       |    45 +
 .../@angular/core/src/di/injection_token.d.ts   |    62 +
 node_modules/@angular/core/src/di/injector.d.ts |    47 +
 node_modules/@angular/core/src/di/metadata.d.ts |   265 +
 node_modules/@angular/core/src/di/provider.d.ts |   204 +
 .../@angular/core/src/di/reflective_errors.d.ts |   137 +
 .../core/src/di/reflective_injector.d.ts        |   275 +
 .../@angular/core/src/di/reflective_key.d.ts    |    36 +
 .../core/src/di/reflective_provider.d.ts        |    88 +
 .../@angular/core/src/error_handler.d.ts        |    36 +
 node_modules/@angular/core/src/errors.d.ts      |    17 +
 .../@angular/core/src/event_emitter.d.ts        |    68 +
 node_modules/@angular/core/src/i18n/tokens.d.ts |    28 +
 node_modules/@angular/core/src/linker.d.ts      |    18 +
 .../@angular/core/src/linker/compiler.d.ts      |   100 +
 .../core/src/linker/component_factory.d.ts      |    84 +
 .../src/linker/component_factory_resolver.d.ts  |    46 +
 .../@angular/core/src/linker/element_ref.d.ts   |    43 +
 .../core/src/linker/ng_module_factory.d.ts      |    51 +
 .../src/linker/ng_module_factory_loader.d.ts    |    28 +
 .../@angular/core/src/linker/query_list.d.ts    |    81 +
 .../system_js_ng_module_factory_loader.d.ts     |    31 +
 .../@angular/core/src/linker/template_ref.d.ts  |    37 +
 .../core/src/linker/view_container_ref.d.ts     |   106 +
 .../@angular/core/src/linker/view_ref.d.ts      |    82 +
 node_modules/@angular/core/src/metadata.d.ts    |     5 +
 node_modules/@angular/core/src/metadata/di.d.ts |   370 +
 .../@angular/core/src/metadata/directives.d.ts  |  1011 +
 .../core/src/metadata/lifecycle_hooks.d.ts      |   146 +
 .../@angular/core/src/metadata/ng_module.d.ts   |   175 +
 .../@angular/core/src/metadata/view.d.ts        |    85 +
 .../core/src/platform_core_providers.d.ts       |    15 +
 .../@angular/core/src/profile/profile.d.ts      |    75 +
 .../@angular/core/src/profile/wtf_impl.d.ts     |    19 +
 .../platform_reflection_capabilities.d.ts       |    26 +
 .../core/src/reflection/reflection.d.ts         |     7 +
 .../src/reflection/reflection_capabilities.d.ts |    36 +
 .../@angular/core/src/reflection/reflector.d.ts |    35 +
 .../@angular/core/src/reflection/types.d.ts     |    10 +
 node_modules/@angular/core/src/render.d.ts      |     8 +
 node_modules/@angular/core/src/render/api.d.ts  |   164 +
 node_modules/@angular/core/src/security.d.ts    |    32 +
 .../core/src/testability/testability.d.ts       |    58 +
 .../core/src/testability/testability.externs.js |    23 +
 node_modules/@angular/core/src/type.d.ts        |    22 +
 node_modules/@angular/core/src/util.d.ts        |     8 +
 .../@angular/core/src/util/decorators.d.ts      |   163 +
 node_modules/@angular/core/src/util/lang.d.ts   |    16 +
 node_modules/@angular/core/src/version.d.ts     |    23 +
 .../@angular/core/src/view/element.d.ts         |    16 +
 .../@angular/core/src/view/entrypoint.d.ts      |     6 +
 node_modules/@angular/core/src/view/errors.d.ts |     6 +
 node_modules/@angular/core/src/view/index.d.ts  |    21 +
 .../@angular/core/src/view/ng_content.d.ts      |    10 +
 .../@angular/core/src/view/ng_module.d.ts       |     6 +
 .../@angular/core/src/view/provider.d.ts        |    17 +
 .../@angular/core/src/view/pure_expression.d.ts |    16 +
 node_modules/@angular/core/src/view/query.d.ts  |     9 +
 node_modules/@angular/core/src/view/refs.d.ts   |    48 +
 .../@angular/core/src/view/services.d.ts        |     3 +
 node_modules/@angular/core/src/view/text.d.ts   |    12 +
 node_modules/@angular/core/src/view/types.d.ts  |   476 +
 node_modules/@angular/core/src/view/util.d.ts   |    62 +
 node_modules/@angular/core/src/view/view.d.ts   |    10 +
 .../@angular/core/src/view/view_attach.d.ts     |    13 +
 node_modules/@angular/core/src/zone.d.ts        |     8 +
 .../@angular/core/src/zone/ng_zone.d.ts         |   139 +
 node_modules/@angular/core/testing.d.ts         |     6 +
 .../@angular/core/testing.metadata.json         |     1 +
 node_modules/@angular/core/testing/index.d.ts   |    13 +
 .../@angular/core/testing/index.metadata.json   |     1 +
 node_modules/@angular/core/testing/package.json |     7 +
 .../@angular/core/testing/src/async.d.ts        |    18 +
 .../core/testing/src/async.metadata.json        |     1 +
 .../core/testing/src/async_test_completer.d.ts  |    18 +
 .../src/async_test_completer.metadata.json      |     1 +
 .../@angular/core/testing/src/before_each.d.ts  |     1 +
 .../core/testing/src/before_each.metadata.json  |     1 +
 .../core/testing/src/component_fixture.d.ts     |    84 +
 .../testing/src/component_fixture.metadata.json |     1 +
 .../@angular/core/testing/src/fake_async.d.ts   |    62 +
 .../core/testing/src/fake_async.metadata.json   |     1 +
 .../core/testing/src/metadata_override.d.ts     |    17 +
 .../testing/src/metadata_override.metadata.json |     1 +
 .../testing/src/private_export_testing.d.ts     |     8 +
 .../src/private_export_testing.metadata.json    |     1 +
 .../@angular/core/testing/src/test_bed.d.ts     |   235 +
 .../core/testing/src/test_bed.metadata.json     |     1 +
 .../core/testing/src/test_compiler.d.ts         |    40 +
 .../testing/src/test_compiler.metadata.json     |     1 +
 .../@angular/core/testing/src/testing.d.ts      |    19 +
 .../core/testing/src/testing.metadata.json      |     1 +
 .../flex-layout/@angular/flex-layout.es5.js     |  3377 ++
 .../flex-layout/@angular/flex-layout.es5.js.map |     1 +
 .../flex-layout/@angular/flex-layout.js         |  2505 ++
 .../flex-layout/@angular/flex-layout.js.map     |     1 +
 node_modules/@angular/flex-layout/CHANGELOG.md  |   391 +
 .../flex-layout/bundles/flex-layout.umd.js      |  3459 ++
 .../flex-layout/bundles/flex-layout.umd.js.map  |     1 +
 .../@angular/flex-layout/flex-layout.d.ts       |     8 +
 .../flex-layout/flex-layout.metadata.json       |    11 +
 node_modules/@angular/flex-layout/package.json  |    59 +
 .../typings/flexbox/api/base-adapter.d.ts       |    24 +
 .../flex-layout/typings/flexbox/api/base.d.ts   |    32 +
 .../flex-layout/typings/flexbox/api/class.d.ts  |    50 +
 .../typings/flexbox/api/flex-align.d.ts         |    24 +
 .../typings/flexbox/api/flex-fill.d.ts          |     8 +
 .../typings/flexbox/api/flex-offset.d.ts        |    36 +
 .../typings/flexbox/api/flex-order.d.ts         |    26 +
 .../flex-layout/typings/flexbox/api/flex.d.ts   |    36 +
 .../typings/flexbox/api/layout-align.d.ts       |    31 +
 .../typings/flexbox/api/layout-gap.d.ts         |    33 +
 .../typings/flexbox/api/layout-wrap.d.ts        |    35 +
 .../flex-layout/typings/flexbox/api/layout.d.ts |    27 +
 .../typings/flexbox/api/show-hide.d.ts          |    50 +
 .../flex-layout/typings/flexbox/api/style.d.ts  |    49 +
 .../flex-layout/typings/flexbox/index.d.ts      |    15 +
 .../responsive/responsive-activation.d.ts       |    39 +
 .../@angular/flex-layout/typings/index.d.ts     |     2 +
 .../flex-layout/typings/index.metadata.json     |     1 +
 .../typings/media-query/_module.d.ts            |     2 +
 .../breakpoints/break-point-registry.d.ts       |    12 +
 .../media-query/breakpoints/break-point.d.ts    |     6 +
 .../breakpoints/break-points-provider.d.ts      |    16 +
 .../breakpoints/break-points-token.d.ts         |     3 +
 .../breakpoints/data/break-points.d.ts          |     3 +
 .../data/orientation-break-points.d.ts          |    13 +
 .../flex-layout/typings/media-query/index.d.ts  |    13 +
 .../typings/media-query/match-media.d.ts        |    26 +
 .../typings/media-query/media-change.d.ts       |    11 +
 .../media-query/media-monitor-provider.d.ts     |    10 +
 .../typings/media-query/media-monitor.d.ts      |    16 +
 .../media-query/observable-media-provider.d.ts  |    10 +
 .../typings/media-query/observable-media.d.ts   |    25 +
 .../@angular/flex-layout/typings/module.d.ts    |     6 +
 .../flex-layout/typings/public_api.d.ts         |     5 +
 .../flex-layout/typings/utils/add-alias.d.ts    |     3 +
 .../typings/utils/auto-prefixer.d.ts            |     1 +
 .../typings/utils/basis-validator.d.ts          |     1 +
 .../typings/utils/breakpoint-tools.d.ts         |     3 +
 .../flex-layout/typings/utils/index.d.ts        |     7 +
 .../typings/utils/layout-validator.d.ts         |    10 +
 .../typings/utils/object-extend.d.ts            |     1 +
 .../typings/utils/style-transforms.d.ts         |    17 +
 .../flex-layout/typings/utils/style-utils.d.ts  |     9 +
 .../@angular/flex-layout/typings/version.d.ts   |     2 +
 .../@angular/forms/@angular/forms.es5.js        |  6099 ++++
 .../@angular/forms/@angular/forms.es5.js.map    |     1 +
 node_modules/@angular/forms/@angular/forms.js   |  5743 ++++
 .../@angular/forms/@angular/forms.js.map        |     1 +
 .../@angular/forms/bundles/forms.umd.js         |  6172 ++++
 .../@angular/forms/bundles/forms.umd.js.map     |     1 +
 .../@angular/forms/bundles/forms.umd.min.js     |   154 +
 .../@angular/forms/bundles/forms.umd.min.js.map |     1 +
 node_modules/@angular/forms/forms.d.ts          |    22 +
 node_modules/@angular/forms/forms.metadata.json |     1 +
 node_modules/@angular/forms/package.json        |    55 +
 node_modules/@angular/forms/public_api.d.ts     |    13 +
 node_modules/@angular/forms/src/directives.d.ts |    33 +
 .../directives/abstract_control_directive.d.ts  |   134 +
 .../abstract_form_group_directive.d.ts          |    35 +
 .../src/directives/checkbox_value_accessor.d.ts |    31 +
 .../forms/src/directives/control_container.d.ts |    27 +
 .../src/directives/control_value_accessor.d.ts  |   112 +
 .../src/directives/default_value_accessor.d.ts  |    40 +
 .../forms/src/directives/error_examples.d.ts    |    14 +
 .../forms/src/directives/form_interface.d.ts    |    47 +
 .../forms/src/directives/ng_control.d.ts        |    25 +
 .../forms/src/directives/ng_control_status.d.ts |    50 +
 .../@angular/forms/src/directives/ng_form.d.ts  |    79 +
 .../@angular/forms/src/directives/ng_model.d.ts |   100 +
 .../forms/src/directives/ng_model_group.d.ts    |    40 +
 .../directives/ng_no_validate_directive.d.ts    |    15 +
 .../src/directives/normalize_validator.d.ts     |     3 +
 .../src/directives/number_value_accessor.d.ts   |    30 +
 .../radio_control_value_accessor.d.ts           |    71 +
 .../src/directives/range_value_accessor.d.ts    |    30 +
 .../form_control_directive.d.ts                 |    70 +
 .../reactive_directives/form_control_name.d.ts  |    83 +
 .../form_group_directive.d.ts                   |    81 +
 .../reactive_directives/form_group_name.d.ts    |   122 +
 .../forms/src/directives/reactive_errors.d.ts   |     8 +
 .../select_control_value_accessor.d.ts          |   106 +
 .../select_multiple_control_value_accessor.d.ts |    75 +
 .../@angular/forms/src/directives/shared.d.ts   |    18 +
 .../src/directives/template_driven_errors.d.ts  |     6 +
 .../forms/src/directives/validators.d.ts        |   184 +
 .../@angular/forms/src/form_builder.d.ts        |    49 +
 .../@angular/forms/src/form_providers.d.ts      |    12 +
 node_modules/@angular/forms/src/forms.d.ts      |    43 +
 node_modules/@angular/forms/src/model.d.ts      |   782 +
 node_modules/@angular/forms/src/validators.d.ts |    90 +
 node_modules/@angular/forms/src/version.d.ts    |    17 +
 node_modules/@angular/http/@angular/http.es5.js |  2183 ++
 .../@angular/http/@angular/http.es5.js.map      |     1 +
 node_modules/@angular/http/@angular/http.js     |  2121 ++
 node_modules/@angular/http/@angular/http.js.map |     1 +
 .../@angular/http/@angular/http/testing.es5.js  |   264 +
 .../http/@angular/http/testing.es5.js.map       |     1 +
 .../@angular/http/@angular/http/testing.js      |   266 +
 .../@angular/http/@angular/http/testing.js.map  |     1 +
 .../@angular/http/bundles/http-testing.umd.js   |   249 +
 .../http/bundles/http-testing.umd.js.map        |     1 +
 .../http/bundles/http-testing.umd.min.js        |    19 +
 .../http/bundles/http-testing.umd.min.js.map    |     1 +
 node_modules/@angular/http/bundles/http.umd.js  |  2230 ++
 .../@angular/http/bundles/http.umd.js.map       |     1 +
 .../@angular/http/bundles/http.umd.min.js       |    79 +
 .../@angular/http/bundles/http.umd.min.js.map   |     1 +
 node_modules/@angular/http/http.d.ts            |     9 +
 node_modules/@angular/http/http.metadata.json   |     1 +
 node_modules/@angular/http/package.json         |    55 +
 node_modules/@angular/http/public_api.d.ts      |    13 +
 .../http/src/backends/browser_jsonp.d.ts        |    10 +
 .../@angular/http/src/backends/browser_xhr.d.ts |    11 +
 .../http/src/backends/jsonp_backend.d.ts        |    54 +
 .../@angular/http/src/backends/xhr_backend.d.ts |    78 +
 .../@angular/http/src/base_request_options.d.ts |   133 +
 .../http/src/base_response_options.d.ts         |   122 +
 node_modules/@angular/http/src/body.d.ts        |    33 +
 node_modules/@angular/http/src/enums.d.ts       |    69 +
 node_modules/@angular/http/src/headers.d.ts     |    88 +
 node_modules/@angular/http/src/http.d.ts        |   126 +
 node_modules/@angular/http/src/http_module.d.ts |    21 +
 node_modules/@angular/http/src/http_utils.d.ts  |    13 +
 node_modules/@angular/http/src/index.d.ts       |    21 +
 node_modules/@angular/http/src/interfaces.d.ts  |    81 +
 .../@angular/http/src/static_request.d.ts       |    83 +
 .../@angular/http/src/static_response.d.ts      |    82 +
 .../@angular/http/src/url_search_params.d.ts    |    59 +
 node_modules/@angular/http/src/version.d.ts     |    17 +
 node_modules/@angular/http/testing.d.ts         |     6 +
 .../@angular/http/testing.metadata.json         |     1 +
 node_modules/@angular/http/testing/index.d.ts   |     4 +
 .../@angular/http/testing/index.metadata.json   |     1 +
 node_modules/@angular/http/testing/package.json |     7 +
 .../@angular/http/testing/public_api.d.ts       |    13 +
 .../@angular/http/testing/src/mock_backend.d.ts |   227 +
 .../@angular/http/testing/src/testing.d.ts      |    13 +
 node_modules/@angular/material/_theming.scss    |  3878 +++
 .../@angular/material/autocomplete.d.ts         |     8 +
 .../material/autocomplete.metadata.json         |    12 +
 .../@angular/material/autocomplete/index.d.ts   |     8 +
 .../material/autocomplete/index.metadata.json   |    12 +
 .../@angular/material/autocomplete/package.json |     7 +
 .../typings/autocomplete-module.d.ts            |     2 +
 .../typings/autocomplete-trigger.d.ts           |   159 +
 .../autocomplete/typings/autocomplete.d.ts      |    62 +
 .../material/autocomplete/typings/index.d.ts    |     4 +
 .../autocomplete/typings/index.metadata.json    |     1 +
 .../autocomplete/typings/public-api.d.ts        |    10 +
 .../bundles/material-autocomplete.umd.js        |  2969 ++
 .../bundles/material-autocomplete.umd.js.map    |     1 +
 .../bundles/material-autocomplete.umd.min.js    |    10 +
 .../material-autocomplete.umd.min.js.map        |     1 +
 .../bundles/material-button-toggle.umd.js       |  2284 ++
 .../bundles/material-button-toggle.umd.js.map   |     1 +
 .../bundles/material-button-toggle.umd.min.js   |    10 +
 .../material-button-toggle.umd.min.js.map       |     1 +
 .../material/bundles/material-button.umd.js     |  2092 ++
 .../material/bundles/material-button.umd.js.map |     1 +
 .../material/bundles/material-button.umd.min.js |    10 +
 .../bundles/material-button.umd.min.js.map      |     1 +
 .../material/bundles/material-card.umd.js       |  2006 ++
 .../material/bundles/material-card.umd.js.map   |     1 +
 .../material/bundles/material-card.umd.min.js   |     9 +
 .../bundles/material-card.umd.min.js.map        |     1 +
 .../material/bundles/material-checkbox.umd.js   |  2327 ++
 .../bundles/material-checkbox.umd.js.map        |     1 +
 .../bundles/material-checkbox.umd.min.js        |    10 +
 .../bundles/material-checkbox.umd.min.js.map    |     1 +
 .../material/bundles/material-chips.umd.js      |  3542 +++
 .../material/bundles/material-chips.umd.js.map  |     1 +
 .../material/bundles/material-chips.umd.min.js  |    10 +
 .../bundles/material-chips.umd.min.js.map       |     1 +
 .../material/bundles/material-core.umd.js       |  2206 ++
 .../material/bundles/material-core.umd.js.map   |     1 +
 .../material/bundles/material-core.umd.min.js   |     9 +
 .../bundles/material-core.umd.min.js.map        |     1 +
 .../material/bundles/material-datepicker.umd.js |  6128 ++++
 .../bundles/material-datepicker.umd.js.map      |     1 +
 .../bundles/material-datepicker.umd.min.js      |    12 +
 .../bundles/material-datepicker.umd.min.js.map  |     1 +
 .../material/bundles/material-dialog.umd.js     |  2530 ++
 .../material/bundles/material-dialog.umd.js.map |     1 +
 .../material/bundles/material-dialog.umd.min.js |    10 +
 .../bundles/material-dialog.umd.min.js.map      |     1 +
 .../material/bundles/material-expansion.umd.js  |  2128 ++
 .../bundles/material-expansion.umd.js.map       |     1 +
 .../bundles/material-expansion.umd.min.js       |     9 +
 .../bundles/material-expansion.umd.min.js.map   |     1 +
 .../material/bundles/material-form-field.umd.js |  2091 ++
 .../bundles/material-form-field.umd.js.map      |     1 +
 .../bundles/material-form-field.umd.min.js      |    10 +
 .../bundles/material-form-field.umd.min.js.map  |     1 +
 .../material/bundles/material-grid-list.umd.js  |  2621 ++
 .../bundles/material-grid-list.umd.js.map       |     1 +
 .../bundles/material-grid-list.umd.min.js       |    10 +
 .../bundles/material-grid-list.umd.min.js.map   |     1 +
 .../material/bundles/material-icon.umd.js       |  2442 ++
 .../material/bundles/material-icon.umd.js.map   |     1 +
 .../material/bundles/material-icon.umd.min.js   |    10 +
 .../bundles/material-icon.umd.min.js.map        |     1 +
 .../material/bundles/material-input.umd.js      |  2716 ++
 .../material/bundles/material-input.umd.js.map  |     1 +
 .../material/bundles/material-input.umd.min.js  |    10 +
 .../bundles/material-input.umd.min.js.map       |     1 +
 .../material/bundles/material-list.umd.js       |  2611 ++
 .../material/bundles/material-list.umd.js.map   |     1 +
 .../material/bundles/material-list.umd.min.js   |    11 +
 .../bundles/material-list.umd.min.js.map        |     1 +
 .../material/bundles/material-menu.umd.js       |  2613 ++
 .../material/bundles/material-menu.umd.js.map   |     1 +
 .../material/bundles/material-menu.umd.min.js   |    10 +
 .../bundles/material-menu.umd.min.js.map        |     1 +
 .../material/bundles/material-paginator.umd.js  |  5228 +++
 .../bundles/material-paginator.umd.js.map       |     1 +
 .../bundles/material-paginator.umd.min.js       |    11 +
 .../bundles/material-paginator.umd.min.js.map   |     1 +
 .../bundles/material-progress-bar.umd.js        |  1784 ++
 .../bundles/material-progress-bar.umd.js.map    |     1 +
 .../bundles/material-progress-bar.umd.min.js    |     9 +
 .../material-progress-bar.umd.min.js.map        |     1 +
 .../bundles/material-progress-spinner.umd.js    |  2005 ++
 .../material-progress-spinner.umd.js.map        |     1 +
 .../material-progress-spinner.umd.min.js        |    10 +
 .../material-progress-spinner.umd.min.js.map    |     1 +
 .../material/bundles/material-radio.umd.js      |  2530 ++
 .../material/bundles/material-radio.umd.js.map  |     1 +
 .../material/bundles/material-radio.umd.min.js  |    10 +
 .../bundles/material-radio.umd.min.js.map       |     1 +
 .../material/bundles/material-select.umd.js     |  3843 +++
 .../material/bundles/material-select.umd.js.map |     1 +
 .../material/bundles/material-select.umd.min.js |    10 +
 .../bundles/material-select.umd.min.js.map      |     1 +
 .../material/bundles/material-sidenav.umd.js    |  2577 ++
 .../bundles/material-sidenav.umd.js.map         |     1 +
 .../bundles/material-sidenav.umd.min.js         |    10 +
 .../bundles/material-sidenav.umd.min.js.map     |     1 +
 .../bundles/material-slide-toggle.umd.js        |  2253 ++
 .../bundles/material-slide-toggle.umd.js.map    |     1 +
 .../bundles/material-slide-toggle.umd.min.js    |    10 +
 .../material-slide-toggle.umd.min.js.map        |     1 +
 .../material/bundles/material-slider.umd.js     |  2621 ++
 .../material/bundles/material-slider.umd.js.map |     1 +
 .../material/bundles/material-slider.umd.min.js |    10 +
 .../bundles/material-slider.umd.min.js.map      |     1 +
 .../material/bundles/material-snack-bar.umd.js  |  2258 ++
 .../bundles/material-snack-bar.umd.js.map       |     1 +
 .../bundles/material-snack-bar.umd.min.js       |    10 +
 .../bundles/material-snack-bar.umd.min.js.map   |     1 +
 .../material/bundles/material-sort.umd.js       |  1917 ++
 .../material/bundles/material-sort.umd.js.map   |     1 +
 .../material/bundles/material-sort.umd.min.js   |     9 +
 .../bundles/material-sort.umd.min.js.map        |     1 +
 .../material/bundles/material-stepper.umd.js    |  3271 ++
 .../bundles/material-stepper.umd.js.map         |     1 +
 .../bundles/material-stepper.umd.min.js         |    10 +
 .../bundles/material-stepper.umd.min.js.map     |     1 +
 .../material/bundles/material-table.umd.js      |  1976 ++
 .../material/bundles/material-table.umd.js.map  |     1 +
 .../material/bundles/material-table.umd.min.js  |     9 +
 .../bundles/material-table.umd.min.js.map       |     1 +
 .../material/bundles/material-tabs.umd.js       |  3341 ++
 .../material/bundles/material-tabs.umd.js.map   |     1 +
 .../material/bundles/material-tabs.umd.min.js   |    10 +
 .../bundles/material-tabs.umd.min.js.map        |     1 +
 .../material/bundles/material-toolbar.umd.js    |  1790 ++
 .../bundles/material-toolbar.umd.js.map         |     1 +
 .../bundles/material-toolbar.umd.min.js         |     9 +
 .../bundles/material-toolbar.umd.min.js.map     |     1 +
 .../material/bundles/material-tooltip.umd.js    |  2339 ++
 .../bundles/material-tooltip.umd.js.map         |     1 +
 .../bundles/material-tooltip.umd.min.js         |    10 +
 .../bundles/material-tooltip.umd.min.js.map     |     1 +
 .../@angular/material/bundles/material.umd.js   | 23382 ++++++++++++++
 .../material/bundles/material.umd.js.map        |     1 +
 .../material/bundles/material.umd.min.js        |    22 +
 .../material/bundles/material.umd.min.js.map    |     1 +
 .../@angular/material/button-toggle.d.ts        |     8 +
 .../material/button-toggle.metadata.json        |    12 +
 .../@angular/material/button-toggle/index.d.ts  |     8 +
 .../material/button-toggle/index.metadata.json  |    12 +
 .../material/button-toggle/package.json         |     7 +
 .../typings/button-toggle-module.d.ts           |     2 +
 .../button-toggle/typings/button-toggle.d.ts    |   163 +
 .../material/button-toggle/typings/index.d.ts   |     4 +
 .../button-toggle/typings/index.metadata.json   |     1 +
 .../button-toggle/typings/public-api.d.ts       |     9 +
 node_modules/@angular/material/button.d.ts      |     8 +
 .../@angular/material/button.metadata.json      |    12 +
 .../@angular/material/button/index.d.ts         |     8 +
 .../material/button/index.metadata.json         |    12 +
 .../@angular/material/button/package.json       |     7 +
 .../material/button/typings/button-module.d.ts  |     2 +
 .../material/button/typings/button.d.ts         |    77 +
 .../@angular/material/button/typings/index.d.ts |     4 +
 .../material/button/typings/index.metadata.json |     1 +
 .../material/button/typings/public-api.d.ts     |     9 +
 node_modules/@angular/material/card.d.ts        |     8 +
 .../@angular/material/card.metadata.json        |    12 +
 node_modules/@angular/material/card/index.d.ts  |     8 +
 .../@angular/material/card/index.metadata.json  |    12 +
 .../@angular/material/card/package.json         |     7 +
 .../material/card/typings/card-module.d.ts      |     2 +
 .../@angular/material/card/typings/card.d.ts    |    95 +
 .../@angular/material/card/typings/index.d.ts   |     4 +
 .../material/card/typings/index.metadata.json   |     1 +
 .../material/card/typings/public-api.d.ts       |     9 +
 node_modules/@angular/material/checkbox.d.ts    |     8 +
 .../@angular/material/checkbox.metadata.json    |    12 +
 .../@angular/material/checkbox/index.d.ts       |     8 +
 .../material/checkbox/index.metadata.json       |    12 +
 .../@angular/material/checkbox/package.json     |     7 +
 .../checkbox/typings/checkbox-module.d.ts       |     2 +
 .../typings/checkbox-required-validator.d.ts    |    18 +
 .../material/checkbox/typings/checkbox.d.ts     |   157 +
 .../material/checkbox/typings/index.d.ts        |     4 +
 .../checkbox/typings/index.metadata.json        |     1 +
 .../material/checkbox/typings/public-api.d.ts   |    10 +
 node_modules/@angular/material/chips.d.ts       |     8 +
 .../@angular/material/chips.metadata.json       |    12 +
 node_modules/@angular/material/chips/index.d.ts |     8 +
 .../@angular/material/chips/index.metadata.json |    12 +
 .../@angular/material/chips/package.json        |     7 +
 .../material/chips/typings/chip-input.d.ts      |    43 +
 .../material/chips/typings/chip-list.d.ts       |   222 +
 .../@angular/material/chips/typings/chip.d.ts   |   123 +
 .../material/chips/typings/chips-module.d.ts    |     2 +
 .../@angular/material/chips/typings/index.d.ts  |     4 +
 .../material/chips/typings/index.metadata.json  |     1 +
 .../material/chips/typings/public-api.d.ts      |    11 +
 node_modules/@angular/material/core.d.ts        |     8 +
 .../@angular/material/core.metadata.json        |    12 +
 node_modules/@angular/material/core/index.d.ts  |     8 +
 .../@angular/material/core/index.metadata.json  |    12 +
 .../@angular/material/core/package.json         |     7 +
 .../core/typings/animation/animation.d.ts       |    20 +
 .../core/typings/common-behaviors/color.d.ts    |    22 +
 .../typings/common-behaviors/common-module.d.ts |    25 +
 .../typings/common-behaviors/constructor.d.ts   |     9 +
 .../common-behaviors/disable-ripple.d.ts        |     7 +
 .../core/typings/common-behaviors/disabled.d.ts |     7 +
 .../core/typings/common-behaviors/index.d.ts    |    12 +
 .../core/typings/common-behaviors/tabindex.d.ts |    15 +
 .../typings/compatibility/compatibility.d.ts    |    32 +
 .../core/typings/datetime/date-adapter.d.ts     |   198 +
 .../core/typings/datetime/date-formats.d.ts     |    20 +
 .../material/core/typings/datetime/index.d.ts   |     8 +
 .../typings/datetime/native-date-adapter.d.ts   |    50 +
 .../typings/datetime/native-date-formats.d.ts   |     9 +
 .../core/typings/error/error-options.d.ts       |     9 +
 .../typings/gestures/gesture-annotations.d.ts   |    51 +
 .../core/typings/gestures/gesture-config.d.ts   |    23 +
 .../@angular/material/core/typings/index.d.ts   |     5 +
 .../material/core/typings/index.metadata.json   |     1 +
 .../material/core/typings/line/line.d.ts        |    30 +
 .../material/core/typings/option/index.d.ts     |     4 +
 .../material/core/typings/option/optgroup.d.ts  |    14 +
 .../material/core/typings/option/option.d.ts    |    90 +
 .../placeholder/placeholder-options.d.ts        |    15 +
 .../material/core/typings/public-api.d.ts       |    22 +
 .../material/core/typings/ripple/index.d.ts     |     5 +
 .../core/typings/ripple/ripple-ref.d.ts         |    28 +
 .../core/typings/ripple/ripple-renderer.d.ts    |    69 +
 .../material/core/typings/ripple/ripple.d.ts    |    65 +
 .../material/core/typings/selection/index.d.ts  |     3 +
 .../pseudo-checkbox/pseudo-checkbox.d.ts        |    20 +
 .../core/typings/style/apply-transform.d.ts     |    13 +
 .../material/core/typings/style/index.d.ts      |     8 +
 .../core/typings/testing/month-constants.d.ts   |    12 +
 .../core/typings/util/object-extend.d.ts        |    15 +
 node_modules/@angular/material/datepicker.d.ts  |     8 +
 .../@angular/material/datepicker.metadata.json  |    12 +
 .../@angular/material/datepicker/index.d.ts     |     8 +
 .../material/datepicker/index.metadata.json     |    12 +
 .../@angular/material/datepicker/package.json   |     7 +
 .../datepicker/typings/calendar-body.d.ts       |    52 +
 .../material/datepicker/typings/calendar.d.ts   |    97 +
 .../typings/coerce-date-property.d.ts           |    19 +
 .../datepicker/typings/datepicker-errors.d.ts   |     9 +
 .../datepicker/typings/datepicker-input.d.ts    |    92 +
 .../datepicker/typings/datepicker-intl.d.ts     |    25 +
 .../datepicker/typings/datepicker-module.d.ts   |     2 +
 .../datepicker/typings/datepicker-toggle.d.ts   |    24 +
 .../material/datepicker/typings/datepicker.d.ts |   117 +
 .../material/datepicker/typings/index.d.ts      |     4 +
 .../datepicker/typings/index.metadata.json      |     1 +
 .../material/datepicker/typings/month-view.d.ts |    66 +
 .../material/datepicker/typings/public-api.d.ts |    17 +
 .../material/datepicker/typings/year-view.d.ts  |    55 +
 node_modules/@angular/material/dialog.d.ts      |     8 +
 .../@angular/material/dialog.metadata.json      |    12 +
 .../@angular/material/dialog/index.d.ts         |     8 +
 .../material/dialog/index.metadata.json         |    12 +
 .../@angular/material/dialog/package.json       |     7 +
 .../material/dialog/typings/dialog-config.d.ts  |    54 +
 .../dialog/typings/dialog-container.d.ts        |    68 +
 .../typings/dialog-content-directives.d.ts      |    43 +
 .../material/dialog/typings/dialog-module.d.ts  |     2 +
 .../material/dialog/typings/dialog-ref.d.ts     |    68 +
 .../material/dialog/typings/dialog.d.ts         |   108 +
 .../@angular/material/dialog/typings/index.d.ts |     4 +
 .../material/dialog/typings/index.metadata.json |     1 +
 .../material/dialog/typings/public-api.d.ts     |    13 +
 .../@angular/material/esm2015/autocomplete.js   |   673 +
 .../material/esm2015/autocomplete.js.map        |     1 +
 .../@angular/material/esm2015/button-toggle.js  |   589 +
 .../material/esm2015/button-toggle.js.map       |     1 +
 .../@angular/material/esm2015/button.js         |   318 +
 .../@angular/material/esm2015/button.js.map     |     1 +
 node_modules/@angular/material/esm2015/card.js  |   312 +
 .../@angular/material/esm2015/card.js.map       |     1 +
 .../@angular/material/esm2015/checkbox.js       |   500 +
 .../@angular/material/esm2015/checkbox.js.map   |     1 +
 node_modules/@angular/material/esm2015/chips.js |  1330 +
 .../@angular/material/esm2015/chips.js.map      |     1 +
 node_modules/@angular/material/esm2015/core.js  |  2117 ++
 .../@angular/material/esm2015/core.js.map       |     1 +
 .../@angular/material/esm2015/datepicker.js     |  1813 ++
 .../@angular/material/esm2015/datepicker.js.map |     1 +
 .../@angular/material/esm2015/dialog.js         |   854 +
 .../@angular/material/esm2015/dialog.js.map     |     1 +
 .../@angular/material/esm2015/expansion.js      |   587 +
 .../@angular/material/esm2015/expansion.js.map  |     1 +
 .../@angular/material/esm2015/form-field.js     |   535 +
 .../@angular/material/esm2015/form-field.js.map |     1 +
 .../@angular/material/esm2015/grid-list.js      |   827 +
 .../@angular/material/esm2015/grid-list.js.map  |     1 +
 node_modules/@angular/material/esm2015/icon.js  |   735 +
 .../@angular/material/esm2015/icon.js.map       |     1 +
 node_modules/@angular/material/esm2015/input.js |   585 +
 .../@angular/material/esm2015/input.js.map      |     1 +
 node_modules/@angular/material/esm2015/list.js  |   640 +
 .../@angular/material/esm2015/list.js.map       |     1 +
 .../@angular/material/esm2015/material.js       |    51 +
 .../@angular/material/esm2015/material.js.map   |     1 +
 node_modules/@angular/material/esm2015/menu.js  |   923 +
 .../@angular/material/esm2015/menu.js.map       |     1 +
 .../@angular/material/esm2015/paginator.js      |   303 +
 .../@angular/material/esm2015/paginator.js.map  |     1 +
 .../@angular/material/esm2015/progress-bar.js   |   133 +
 .../material/esm2015/progress-bar.js.map        |     1 +
 .../material/esm2015/progress-spinner.js        |   303 +
 .../material/esm2015/progress-spinner.js.map    |     1 +
 node_modules/@angular/material/esm2015/radio.js |   709 +
 .../@angular/material/esm2015/radio.js.map      |     1 +
 .../@angular/material/esm2015/select.js         |  1394 +
 .../@angular/material/esm2015/select.js.map     |     1 +
 .../@angular/material/esm2015/sidenav.js        |   866 +
 .../@angular/material/esm2015/sidenav.js.map    |     1 +
 .../@angular/material/esm2015/slide-toggle.js   |   428 +
 .../material/esm2015/slide-toggle.js.map        |     1 +
 .../@angular/material/esm2015/slider.js         |   834 +
 .../@angular/material/esm2015/slider.js.map     |     1 +
 .../@angular/material/esm2015/snack-bar.js      |   596 +
 .../@angular/material/esm2015/snack-bar.js.map  |     1 +
 node_modules/@angular/material/esm2015/sort.js  |   371 +
 .../@angular/material/esm2015/sort.js.map       |     1 +
 .../@angular/material/esm2015/stepper.js        |   395 +
 .../@angular/material/esm2015/stepper.js.map    |     1 +
 node_modules/@angular/material/esm2015/table.js |   272 +
 .../@angular/material/esm2015/table.js.map      |     1 +
 node_modules/@angular/material/esm2015/tabs.js  |  1480 +
 .../@angular/material/esm2015/tabs.js.map       |     1 +
 .../@angular/material/esm2015/toolbar.js        |    89 +
 .../@angular/material/esm2015/toolbar.js.map    |     1 +
 .../@angular/material/esm2015/tooltip.js        |   671 +
 .../@angular/material/esm2015/tooltip.js.map    |     1 +
 .../@angular/material/esm5/autocomplete.es5.js  |   712 +
 .../material/esm5/autocomplete.es5.js.map       |     1 +
 .../@angular/material/esm5/button-toggle.es5.js |   646 +
 .../material/esm5/button-toggle.es5.js.map      |     1 +
 .../@angular/material/esm5/button.es5.js        |   344 +
 .../@angular/material/esm5/button.es5.js.map    |     1 +
 node_modules/@angular/material/esm5/card.es5.js |   355 +
 .../@angular/material/esm5/card.es5.js.map      |     1 +
 .../@angular/material/esm5/checkbox.es5.js      |   538 +
 .../@angular/material/esm5/checkbox.es5.js.map  |     1 +
 .../@angular/material/esm5/chips.es5.js         |  1464 +
 .../@angular/material/esm5/chips.es5.js.map     |     1 +
 node_modules/@angular/material/esm5/core.es5.js |  2126 ++
 .../@angular/material/esm5/core.es5.js.map      |     1 +
 .../@angular/material/esm5/datepicker.es5.js    |  1946 ++
 .../material/esm5/datepicker.es5.js.map         |     1 +
 .../@angular/material/esm5/dialog.es5.js        |   894 +
 .../@angular/material/esm5/dialog.es5.js.map    |     1 +
 .../@angular/material/esm5/expansion.es5.js     |   622 +
 .../@angular/material/esm5/expansion.es5.js.map |     1 +
 .../@angular/material/esm5/form-field.es5.js    |   580 +
 .../material/esm5/form-field.es5.js.map         |     1 +
 .../@angular/material/esm5/grid-list.es5.js     |   888 +
 .../@angular/material/esm5/grid-list.es5.js.map |     1 +
 node_modules/@angular/material/esm5/icon.es5.js |   754 +
 .../@angular/material/esm5/icon.es5.js.map      |     1 +
 .../@angular/material/esm5/input.es5.js         |   630 +
 .../@angular/material/esm5/input.es5.js.map     |     1 +
 node_modules/@angular/material/esm5/list.es5.js |   704 +
 .../@angular/material/esm5/list.es5.js.map      |     1 +
 .../@angular/material/esm5/material.es5.js      |    51 +
 .../@angular/material/esm5/material.es5.js.map  |     1 +
 node_modules/@angular/material/esm5/menu.es5.js |   962 +
 .../@angular/material/esm5/menu.es5.js.map      |     1 +
 .../@angular/material/esm5/paginator.es5.js     |   328 +
 .../@angular/material/esm5/paginator.es5.js.map |     1 +
 .../@angular/material/esm5/progress-bar.es5.js  |   147 +
 .../material/esm5/progress-bar.es5.js.map       |     1 +
 .../material/esm5/progress-spinner.es5.js       |   317 +
 .../material/esm5/progress-spinner.es5.js.map   |     1 +
 .../@angular/material/esm5/radio.es5.js         |   786 +
 .../@angular/material/esm5/radio.es5.js.map     |     1 +
 .../@angular/material/esm5/select.es5.js        |  1481 +
 .../@angular/material/esm5/select.es5.js.map    |     1 +
 .../@angular/material/esm5/sidenav.es5.js       |   946 +
 .../@angular/material/esm5/sidenav.es5.js.map   |     1 +
 .../@angular/material/esm5/slide-toggle.es5.js  |   455 +
 .../material/esm5/slide-toggle.es5.js.map       |     1 +
 .../@angular/material/esm5/slider.es5.js        |   938 +
 .../@angular/material/esm5/slider.es5.js.map    |     1 +
 .../@angular/material/esm5/snack-bar.es5.js     |   622 +
 .../@angular/material/esm5/snack-bar.es5.js.map |     1 +
 node_modules/@angular/material/esm5/sort.es5.js |   389 +
 .../@angular/material/esm5/sort.es5.js.map      |     1 +
 .../@angular/material/esm5/stepper.es5.js       |   448 +
 .../@angular/material/esm5/stepper.es5.js.map   |     1 +
 .../@angular/material/esm5/table.es5.js         |   323 +
 .../@angular/material/esm5/table.es5.js.map     |     1 +
 node_modules/@angular/material/esm5/tabs.es5.js |  1591 +
 .../@angular/material/esm5/tabs.es5.js.map      |     1 +
 .../@angular/material/esm5/toolbar.es5.js       |   100 +
 .../@angular/material/esm5/toolbar.es5.js.map   |     1 +
 .../@angular/material/esm5/tooltip.es5.js       |   705 +
 .../@angular/material/esm5/tooltip.es5.js.map   |     1 +
 node_modules/@angular/material/expansion.d.ts   |     8 +
 .../@angular/material/expansion.metadata.json   |    12 +
 .../@angular/material/expansion/index.d.ts      |     8 +
 .../material/expansion/index.metadata.json      |    12 +
 .../@angular/material/expansion/package.json    |     7 +
 .../expansion/typings/accordion-item.d.ts       |    41 +
 .../material/expansion/typings/accordion.d.ts   |    29 +
 .../expansion/typings/expansion-module.d.ts     |     2 +
 .../typings/expansion-panel-header.d.ts         |    49 +
 .../expansion/typings/expansion-panel.d.ts      |    40 +
 .../material/expansion/typings/index.d.ts       |     5 +
 .../expansion/typings/index.metadata.json       |     1 +
 .../material/expansion/typings/public-api.d.ts  |    12 +
 node_modules/@angular/material/form-field.d.ts  |     8 +
 .../@angular/material/form-field.metadata.json  |    12 +
 .../@angular/material/form-field/index.d.ts     |     8 +
 .../material/form-field/index.metadata.json     |    12 +
 .../@angular/material/form-field/package.json   |     7 +
 .../material/form-field/typings/error.d.ts      |     4 +
 .../form-field/typings/form-field-control.d.ts  |    47 +
 .../form-field/typings/form-field-errors.d.ts   |    13 +
 .../form-field/typings/form-field-module.d.ts   |     2 +
 .../material/form-field/typings/form-field.d.ts |    78 +
 .../material/form-field/typings/hint.d.ts       |     7 +
 .../material/form-field/typings/index.d.ts      |     4 +
 .../form-field/typings/index.metadata.json      |     1 +
 .../form-field/typings/placeholder.d.ts         |     3 +
 .../material/form-field/typings/prefix.d.ts     |     3 +
 .../material/form-field/typings/public-api.d.ts |    16 +
 .../material/form-field/typings/suffix.d.ts     |     3 +
 node_modules/@angular/material/grid-list.d.ts   |     8 +
 .../@angular/material/grid-list.metadata.json   |    12 +
 .../@angular/material/grid-list/index.d.ts      |     8 +
 .../material/grid-list/index.metadata.json      |    12 +
 .../@angular/material/grid-list/package.json    |     7 +
 .../grid-list/typings/grid-list-measure.d.ts    |    17 +
 .../grid-list/typings/grid-list-module.d.ts     |     2 +
 .../material/grid-list/typings/grid-list.d.ts   |    53 +
 .../material/grid-list/typings/grid-tile.d.ts   |    55 +
 .../material/grid-list/typings/index.d.ts       |     5 +
 .../grid-list/typings/index.metadata.json       |     1 +
 .../material/grid-list/typings/public-api.d.ts  |    10 +
 .../grid-list/typings/tile-coordinator.d.ts     |    64 +
 .../material/grid-list/typings/tile-styler.d.ts |   129 +
 node_modules/@angular/material/icon.d.ts        |     8 +
 .../@angular/material/icon.metadata.json        |    12 +
 node_modules/@angular/material/icon/index.d.ts  |     8 +
 .../@angular/material/icon/index.metadata.json  |    12 +
 .../@angular/material/icon/package.json         |     7 +
 .../material/icon/typings/icon-module.d.ts      |     2 +
 .../material/icon/typings/icon-registry.d.ts    |   187 +
 .../@angular/material/icon/typings/icon.d.ts    |    69 +
 .../@angular/material/icon/typings/index.d.ts   |     4 +
 .../material/icon/typings/index.metadata.json   |     1 +
 .../material/icon/typings/public-api.d.ts       |    10 +
 node_modules/@angular/material/input.d.ts       |     8 +
 .../@angular/material/input.metadata.json       |    12 +
 node_modules/@angular/material/input/index.d.ts |     8 +
 .../@angular/material/input/index.metadata.json |    12 +
 .../@angular/material/input/package.json        |     7 +
 .../material/input/typings/autosize.d.ts        |    43 +
 .../@angular/material/input/typings/index.d.ts  |     4 +
 .../material/input/typings/index.metadata.json  |     1 +
 .../material/input/typings/input-errors.d.ts    |     9 +
 .../material/input/typings/input-module.d.ts    |     2 +
 .../@angular/material/input/typings/input.d.ts  |    85 +
 .../material/input/typings/public-api.d.ts      |    11 +
 node_modules/@angular/material/list.d.ts        |     8 +
 .../@angular/material/list.metadata.json        |    12 +
 node_modules/@angular/material/list/index.d.ts  |     8 +
 .../@angular/material/list/index.metadata.json  |    12 +
 .../@angular/material/list/package.json         |     7 +
 .../@angular/material/list/typings/index.d.ts   |     4 +
 .../material/list/typings/index.metadata.json   |     1 +
 .../material/list/typings/list-module.d.ts      |     2 +
 .../@angular/material/list/typings/list.d.ts    |    77 +
 .../material/list/typings/public-api.d.ts       |    10 +
 .../material/list/typings/selection-list.d.ts   |   103 +
 node_modules/@angular/material/material.d.ts    |    39 +
 .../@angular/material/material.metadata.json    |   105 +
 node_modules/@angular/material/menu.d.ts        |     8 +
 .../@angular/material/menu.metadata.json        |    12 +
 node_modules/@angular/material/menu/index.d.ts  |     8 +
 .../@angular/material/menu/index.metadata.json  |    12 +
 .../@angular/material/menu/package.json         |     7 +
 .../@angular/material/menu/typings/index.d.ts   |     6 +
 .../material/menu/typings/index.metadata.json   |     1 +
 .../material/menu/typings/menu-animations.d.ts  |    27 +
 .../material/menu/typings/menu-directive.d.ts   |    89 +
 .../material/menu/typings/menu-errors.d.ts      |    24 +
 .../material/menu/typings/menu-item.d.ts        |    42 +
 .../material/menu/typings/menu-module.d.ts      |     2 +
 .../material/menu/typings/menu-panel.d.ts       |    22 +
 .../material/menu/typings/menu-positions.d.ts   |     9 +
 .../material/menu/typings/menu-trigger.d.ts     |   115 +
 .../@angular/material/menu/typings/menu.d.ts    |    12 +
 .../material/menu/typings/public-api.d.ts       |    11 +
 node_modules/@angular/material/package.json     |    58 +
 node_modules/@angular/material/paginator.d.ts   |     8 +
 .../@angular/material/paginator.metadata.json   |    12 +
 .../@angular/material/paginator/index.d.ts      |     8 +
 .../material/paginator/index.metadata.json      |    12 +
 .../@angular/material/paginator/package.json    |     7 +
 .../material/paginator/typings/index.d.ts       |     4 +
 .../paginator/typings/index.metadata.json       |     1 +
 .../paginator/typings/paginator-intl.d.ts       |    20 +
 .../paginator/typings/paginator-module.d.ts     |     2 +
 .../material/paginator/typings/paginator.d.ts   |    75 +
 .../material/paginator/typings/public-api.d.ts  |    10 +
 .../prebuilt-themes/deeppurple-amber.css        |     1 +
 .../material/prebuilt-themes/indigo-pink.css    |     1 +
 .../material/prebuilt-themes/pink-bluegrey.css  |     1 +
 .../material/prebuilt-themes/purple-green.css   |     1 +
 .../@angular/material/progress-bar.d.ts         |     8 +
 .../material/progress-bar.metadata.json         |    12 +
 .../@angular/material/progress-bar/index.d.ts   |     8 +
 .../material/progress-bar/index.metadata.json   |    12 +
 .../@angular/material/progress-bar/package.json |     7 +
 .../material/progress-bar/typings/index.d.ts    |     4 +
 .../progress-bar/typings/index.metadata.json    |     1 +
 .../typings/progress-bar-module.d.ts            |     2 +
 .../progress-bar/typings/progress-bar.d.ts      |    32 +
 .../progress-bar/typings/public-api.d.ts        |     9 +
 .../@angular/material/progress-spinner.d.ts     |     8 +
 .../material/progress-spinner.metadata.json     |    12 +
 .../material/progress-spinner/index.d.ts        |     8 +
 .../progress-spinner/index.metadata.json        |    12 +
 .../material/progress-spinner/package.json      |     7 +
 .../progress-spinner/typings/index.d.ts         |     4 +
 .../typings/index.metadata.json                 |     1 +
 .../typings/progress-spinner-module.d.ts        |     3 +
 .../typings/progress-spinner.d.ts               |    69 +
 .../progress-spinner/typings/public-api.d.ts    |     9 +
 node_modules/@angular/material/radio.d.ts       |     8 +
 .../@angular/material/radio.metadata.json       |    12 +
 node_modules/@angular/material/radio/index.d.ts |     8 +
 .../@angular/material/radio/index.metadata.json |    12 +
 .../@angular/material/radio/package.json        |     7 +
 .../@angular/material/radio/typings/index.d.ts  |     4 +
 .../material/radio/typings/index.metadata.json  |     1 +
 .../material/radio/typings/public-api.d.ts      |     9 +
 .../material/radio/typings/radio-module.d.ts    |     2 +
 .../@angular/material/radio/typings/radio.d.ts  |   215 +
 node_modules/@angular/material/select.d.ts      |     8 +
 .../@angular/material/select.metadata.json      |    12 +
 .../@angular/material/select/index.d.ts         |     8 +
 .../material/select/index.metadata.json         |    12 +
 .../@angular/material/select/package.json       |     7 +
 .../@angular/material/select/typings/index.d.ts |     4 +
 .../material/select/typings/index.metadata.json |     1 +
 .../material/select/typings/public-api.d.ts     |    10 +
 .../select/typings/select-animations.d.ts       |    30 +
 .../material/select/typings/select-errors.d.ts  |    26 +
 .../material/select/typings/select-module.d.ts  |     2 +
 .../material/select/typings/select.d.ts         |   393 +
 node_modules/@angular/material/sidenav.d.ts     |     8 +
 .../@angular/material/sidenav.metadata.json     |    12 +
 .../@angular/material/sidenav/index.d.ts        |     8 +
 .../material/sidenav/index.metadata.json        |    12 +
 .../@angular/material/sidenav/package.json      |     7 +
 .../material/sidenav/typings/drawer.d.ts        |   190 +
 .../material/sidenav/typings/index.d.ts         |     4 +
 .../sidenav/typings/index.metadata.json         |     1 +
 .../material/sidenav/typings/public-api.d.ts    |    10 +
 .../sidenav/typings/sidenav-module.d.ts         |     2 +
 .../material/sidenav/typings/sidenav.d.ts       |    33 +
 .../@angular/material/slide-toggle.d.ts         |     8 +
 .../material/slide-toggle.metadata.json         |    12 +
 .../@angular/material/slide-toggle/index.d.ts   |     8 +
 .../material/slide-toggle/index.metadata.json   |    12 +
 .../@angular/material/slide-toggle/package.json |     7 +
 .../material/slide-toggle/typings/index.d.ts    |     4 +
 .../slide-toggle/typings/index.metadata.json    |     1 +
 .../slide-toggle/typings/public-api.d.ts        |     9 +
 .../typings/slide-toggle-module.d.ts            |     2 +
 .../slide-toggle/typings/slide-toggle.d.ts      |    93 +
 node_modules/@angular/material/slider.d.ts      |     8 +
 .../@angular/material/slider.metadata.json      |    12 +
 .../@angular/material/slider/index.d.ts         |     8 +
 .../material/slider/index.metadata.json         |    12 +
 .../@angular/material/slider/package.json       |     7 +
 .../@angular/material/slider/typings/index.d.ts |     4 +
 .../material/slider/typings/index.metadata.json |     1 +
 .../material/slider/typings/public-api.d.ts     |     9 +
 .../material/slider/typings/slider-module.d.ts  |     2 +
 .../material/slider/typings/slider.d.ts         |   207 +
 node_modules/@angular/material/snack-bar.d.ts   |     8 +
 .../@angular/material/snack-bar.metadata.json   |    12 +
 .../@angular/material/snack-bar/index.d.ts      |     8 +
 .../material/snack-bar/index.metadata.json      |    12 +
 .../@angular/material/snack-bar/package.json    |     7 +
 .../material/snack-bar/typings/index.d.ts       |     4 +
 .../snack-bar/typings/index.metadata.json       |     1 +
 .../material/snack-bar/typings/public-api.d.ts  |    13 +
 .../snack-bar/typings/simple-snack-bar.d.ts     |    18 +
 .../snack-bar/typings/snack-bar-config.d.ts     |    38 +
 .../snack-bar/typings/snack-bar-container.d.ts  |    55 +
 .../snack-bar/typings/snack-bar-module.d.ts     |     2 +
 .../snack-bar/typings/snack-bar-ref.d.ts        |    51 +
 .../material/snack-bar/typings/snack-bar.d.ts   |    70 +
 node_modules/@angular/material/sort.d.ts        |     8 +
 .../@angular/material/sort.metadata.json        |    12 +
 node_modules/@angular/material/sort/index.d.ts  |     8 +
 .../@angular/material/sort/index.metadata.json  |    12 +
 .../@angular/material/sort/package.json         |     7 +
 .../@angular/material/sort/typings/index.d.ts   |     4 +
 .../material/sort/typings/index.metadata.json   |     1 +
 .../material/sort/typings/public-api.d.ts       |    12 +
 .../material/sort/typings/sort-direction.d.ts   |     8 +
 .../material/sort/typings/sort-errors.d.ts      |    15 +
 .../material/sort/typings/sort-header-intl.d.ts |    17 +
 .../material/sort/typings/sort-header.d.ts      |    43 +
 .../material/sort/typings/sort-module.d.ts      |     2 +
 .../@angular/material/sort/typings/sort.d.ts    |    55 +
 node_modules/@angular/material/stepper.d.ts     |     8 +
 .../@angular/material/stepper.metadata.json     |    12 +
 .../@angular/material/stepper/index.d.ts        |     8 +
 .../material/stepper/index.metadata.json        |    12 +
 .../@angular/material/stepper/package.json      |     7 +
 .../material/stepper/typings/index.d.ts         |     4 +
 .../stepper/typings/index.metadata.json         |     1 +
 .../material/stepper/typings/public-api.d.ts    |    13 +
 .../material/stepper/typings/step-header.d.ts   |    41 +
 .../material/stepper/typings/step-label.d.ts    |    14 +
 .../stepper/typings/stepper-button.d.ts         |    10 +
 .../material/stepper/typings/stepper-intl.d.ts  |    11 +
 .../stepper/typings/stepper-module.d.ts         |     2 +
 .../material/stepper/typings/stepper.d.ts       |    26 +
 node_modules/@angular/material/table.d.ts       |     8 +
 .../@angular/material/table.metadata.json       |    12 +
 node_modules/@angular/material/table/index.d.ts |     8 +
 .../@angular/material/table/index.metadata.json |    12 +
 .../@angular/material/table/package.json        |     7 +
 .../@angular/material/table/typings/cell.d.ts   |    43 +
 .../@angular/material/table/typings/index.d.ts  |     4 +
 .../material/table/typings/index.metadata.json  |     1 +
 .../material/table/typings/public-api.d.ts      |    11 +
 .../@angular/material/table/typings/row.d.ts    |    25 +
 .../material/table/typings/table-module.d.ts    |     2 +
 .../@angular/material/table/typings/table.d.ts  |     8 +
 node_modules/@angular/material/tabs.d.ts        |     8 +
 .../@angular/material/tabs.metadata.json        |    12 +
 node_modules/@angular/material/tabs/index.d.ts  |     8 +
 .../@angular/material/tabs/index.metadata.json  |    12 +
 .../@angular/material/tabs/package.json         |     7 +
 .../@angular/material/tabs/typings/index.d.ts   |     8 +
 .../material/tabs/typings/index.metadata.json   |     1 +
 .../@angular/material/tabs/typings/ink-bar.d.ts |    33 +
 .../material/tabs/typings/public-api.d.ts       |    16 +
 .../material/tabs/typings/tab-body.d.ts         |    69 +
 .../material/tabs/typings/tab-group.d.ts        |   104 +
 .../material/tabs/typings/tab-header.d.ts       |   158 +
 .../tabs/typings/tab-label-wrapper.d.ts         |    25 +
 .../material/tabs/typings/tab-label.d.ts        |    15 +
 .../tabs/typings/tab-nav-bar/index.d.ts         |     8 +
 .../tabs/typings/tab-nav-bar/tab-nav-bar.d.ts   |    78 +
 .../@angular/material/tabs/typings/tab.d.ts     |    50 +
 .../material/tabs/typings/tabs-module.d.ts      |     2 +
 node_modules/@angular/material/toolbar.d.ts     |     8 +
 .../@angular/material/toolbar.metadata.json     |    12 +
 .../@angular/material/toolbar/index.d.ts        |     8 +
 .../material/toolbar/index.metadata.json        |    12 +
 .../@angular/material/toolbar/package.json      |     7 +
 .../material/toolbar/typings/index.d.ts         |     4 +
 .../toolbar/typings/index.metadata.json         |     1 +
 .../material/toolbar/typings/public-api.d.ts    |     9 +
 .../toolbar/typings/toolbar-module.d.ts         |     2 +
 .../material/toolbar/typings/toolbar.d.ts       |    21 +
 node_modules/@angular/material/tooltip.d.ts     |     8 +
 .../@angular/material/tooltip.metadata.json     |    12 +
 .../@angular/material/tooltip/index.d.ts        |     8 +
 .../material/tooltip/index.metadata.json        |    12 +
 .../@angular/material/tooltip/package.json      |     7 +
 .../material/tooltip/typings/index.d.ts         |     4 +
 .../tooltip/typings/index.metadata.json         |     1 +
 .../material/tooltip/typings/public-api.d.ts    |     9 +
 .../tooltip/typings/tooltip-module.d.ts         |     2 +
 .../material/tooltip/typings/tooltip.d.ts       |   175 +
 .../autocomplete/autocomplete-module.d.ts       |     2 +
 .../autocomplete/autocomplete-trigger.d.ts      |   159 +
 .../typings/autocomplete/autocomplete.d.ts      |    62 +
 .../material/typings/autocomplete/index.d.ts    |     4 +
 .../typings/autocomplete/index.metadata.json    |     1 +
 .../typings/autocomplete/public-api.d.ts        |    10 +
 .../button-toggle/button-toggle-module.d.ts     |     2 +
 .../typings/button-toggle/button-toggle.d.ts    |   163 +
 .../material/typings/button-toggle/index.d.ts   |     4 +
 .../typings/button-toggle/index.metadata.json   |     1 +
 .../typings/button-toggle/public-api.d.ts       |     9 +
 .../material/typings/button/button-module.d.ts  |     2 +
 .../material/typings/button/button.d.ts         |    77 +
 .../@angular/material/typings/button/index.d.ts |     4 +
 .../material/typings/button/index.metadata.json |     1 +
 .../material/typings/button/public-api.d.ts     |     9 +
 .../material/typings/card/card-module.d.ts      |     2 +
 .../@angular/material/typings/card/card.d.ts    |    95 +
 .../@angular/material/typings/card/index.d.ts   |     4 +
 .../material/typings/card/index.metadata.json   |     1 +
 .../material/typings/card/public-api.d.ts       |     9 +
 .../typings/checkbox/checkbox-module.d.ts       |     2 +
 .../checkbox/checkbox-required-validator.d.ts   |    18 +
 .../material/typings/checkbox/checkbox.d.ts     |   157 +
 .../material/typings/checkbox/index.d.ts        |     4 +
 .../typings/checkbox/index.metadata.json        |     1 +
 .../material/typings/checkbox/public-api.d.ts   |    10 +
 .../material/typings/chips/chip-input.d.ts      |    43 +
 .../material/typings/chips/chip-list.d.ts       |   222 +
 .../@angular/material/typings/chips/chip.d.ts   |   123 +
 .../material/typings/chips/chips-module.d.ts    |     2 +
 .../@angular/material/typings/chips/index.d.ts  |     4 +
 .../material/typings/chips/index.metadata.json  |     1 +
 .../material/typings/chips/public-api.d.ts      |    11 +
 .../typings/core/animation/animation.d.ts       |    20 +
 .../typings/core/common-behaviors/color.d.ts    |    22 +
 .../core/common-behaviors/common-module.d.ts    |    25 +
 .../core/common-behaviors/constructor.d.ts      |     9 +
 .../core/common-behaviors/disable-ripple.d.ts   |     7 +
 .../typings/core/common-behaviors/disabled.d.ts |     7 +
 .../typings/core/common-behaviors/index.d.ts    |    12 +
 .../typings/core/common-behaviors/tabindex.d.ts |    15 +
 .../core/compatibility/compatibility.d.ts       |    32 +
 .../typings/core/datetime/date-adapter.d.ts     |   198 +
 .../typings/core/datetime/date-formats.d.ts     |    20 +
 .../material/typings/core/datetime/index.d.ts   |     8 +
 .../core/datetime/native-date-adapter.d.ts      |    50 +
 .../core/datetime/native-date-formats.d.ts      |     9 +
 .../typings/core/error/error-options.d.ts       |     9 +
 .../core/gestures/gesture-annotations.d.ts      |    51 +
 .../typings/core/gestures/gesture-config.d.ts   |    23 +
 .../@angular/material/typings/core/index.d.ts   |     5 +
 .../material/typings/core/index.metadata.json   |     1 +
 .../material/typings/core/line/line.d.ts        |    30 +
 .../material/typings/core/option/index.d.ts     |     4 +
 .../material/typings/core/option/optgroup.d.ts  |    14 +
 .../material/typings/core/option/option.d.ts    |    90 +
 .../core/placeholder/placeholder-options.d.ts   |    15 +
 .../material/typings/core/public-api.d.ts       |    22 +
 .../material/typings/core/ripple/index.d.ts     |     5 +
 .../typings/core/ripple/ripple-ref.d.ts         |    28 +
 .../typings/core/ripple/ripple-renderer.d.ts    |    69 +
 .../material/typings/core/ripple/ripple.d.ts    |    65 +
 .../material/typings/core/selection/index.d.ts  |     3 +
 .../pseudo-checkbox/pseudo-checkbox.d.ts        |    20 +
 .../typings/core/style/apply-transform.d.ts     |    13 +
 .../material/typings/core/style/index.d.ts      |     8 +
 .../typings/core/testing/month-constants.d.ts   |    12 +
 .../typings/core/util/object-extend.d.ts        |    15 +
 .../typings/datepicker/calendar-body.d.ts       |    52 +
 .../material/typings/datepicker/calendar.d.ts   |    97 +
 .../datepicker/coerce-date-property.d.ts        |    19 +
 .../typings/datepicker/datepicker-errors.d.ts   |     9 +
 .../typings/datepicker/datepicker-input.d.ts    |    92 +
 .../typings/datepicker/datepicker-intl.d.ts     |    25 +
 .../typings/datepicker/datepicker-module.d.ts   |     2 +
 .../typings/datepicker/datepicker-toggle.d.ts   |    24 +
 .../material/typings/datepicker/datepicker.d.ts |   117 +
 .../material/typings/datepicker/index.d.ts      |     4 +
 .../typings/datepicker/index.metadata.json      |     1 +
 .../material/typings/datepicker/month-view.d.ts |    66 +
 .../material/typings/datepicker/public-api.d.ts |    17 +
 .../material/typings/datepicker/year-view.d.ts  |    55 +
 .../material/typings/dialog/dialog-config.d.ts  |    54 +
 .../typings/dialog/dialog-container.d.ts        |    68 +
 .../dialog/dialog-content-directives.d.ts       |    43 +
 .../material/typings/dialog/dialog-module.d.ts  |     2 +
 .../material/typings/dialog/dialog-ref.d.ts     |    68 +
 .../material/typings/dialog/dialog.d.ts         |   108 +
 .../@angular/material/typings/dialog/index.d.ts |     4 +
 .../material/typings/dialog/index.metadata.json |     1 +
 .../material/typings/dialog/public-api.d.ts     |    13 +
 .../typings/expansion/accordion-item.d.ts       |    41 +
 .../material/typings/expansion/accordion.d.ts   |    29 +
 .../typings/expansion/expansion-module.d.ts     |     2 +
 .../expansion/expansion-panel-header.d.ts       |    49 +
 .../typings/expansion/expansion-panel.d.ts      |    40 +
 .../material/typings/expansion/index.d.ts       |     5 +
 .../typings/expansion/index.metadata.json       |     1 +
 .../material/typings/expansion/public-api.d.ts  |    12 +
 .../material/typings/form-field/error.d.ts      |     4 +
 .../typings/form-field/form-field-control.d.ts  |    47 +
 .../typings/form-field/form-field-errors.d.ts   |    13 +
 .../typings/form-field/form-field-module.d.ts   |     2 +
 .../material/typings/form-field/form-field.d.ts |    78 +
 .../material/typings/form-field/hint.d.ts       |     7 +
 .../material/typings/form-field/index.d.ts      |     4 +
 .../typings/form-field/index.metadata.json      |     1 +
 .../typings/form-field/placeholder.d.ts         |     3 +
 .../material/typings/form-field/prefix.d.ts     |     3 +
 .../material/typings/form-field/public-api.d.ts |    16 +
 .../material/typings/form-field/suffix.d.ts     |     3 +
 .../typings/grid-list/grid-list-measure.d.ts    |    17 +
 .../typings/grid-list/grid-list-module.d.ts     |     2 +
 .../material/typings/grid-list/grid-list.d.ts   |    53 +
 .../material/typings/grid-list/grid-tile.d.ts   |    55 +
 .../material/typings/grid-list/index.d.ts       |     5 +
 .../typings/grid-list/index.metadata.json       |     1 +
 .../material/typings/grid-list/public-api.d.ts  |    10 +
 .../typings/grid-list/tile-coordinator.d.ts     |    64 +
 .../material/typings/grid-list/tile-styler.d.ts |   129 +
 .../material/typings/icon/icon-module.d.ts      |     2 +
 .../material/typings/icon/icon-registry.d.ts    |   187 +
 .../@angular/material/typings/icon/icon.d.ts    |    69 +
 .../@angular/material/typings/icon/index.d.ts   |     4 +
 .../material/typings/icon/index.metadata.json   |     1 +
 .../material/typings/icon/public-api.d.ts       |    10 +
 .../@angular/material/typings/index.d.ts        |     4 +
 .../material/typings/index.metadata.json        |     1 +
 .../material/typings/input/autosize.d.ts        |    43 +
 .../@angular/material/typings/input/index.d.ts  |     4 +
 .../material/typings/input/index.metadata.json  |     1 +
 .../material/typings/input/input-errors.d.ts    |     9 +
 .../material/typings/input/input-module.d.ts    |     2 +
 .../@angular/material/typings/input/input.d.ts  |    85 +
 .../material/typings/input/public-api.d.ts      |    11 +
 .../@angular/material/typings/list/index.d.ts   |     4 +
 .../material/typings/list/index.metadata.json   |     1 +
 .../material/typings/list/list-module.d.ts      |     2 +
 .../@angular/material/typings/list/list.d.ts    |    77 +
 .../material/typings/list/public-api.d.ts       |    10 +
 .../material/typings/list/selection-list.d.ts   |   103 +
 .../@angular/material/typings/menu/index.d.ts   |     6 +
 .../material/typings/menu/index.metadata.json   |     1 +
 .../material/typings/menu/menu-animations.d.ts  |    27 +
 .../material/typings/menu/menu-directive.d.ts   |    89 +
 .../material/typings/menu/menu-errors.d.ts      |    24 +
 .../material/typings/menu/menu-item.d.ts        |    42 +
 .../material/typings/menu/menu-module.d.ts      |     2 +
 .../material/typings/menu/menu-panel.d.ts       |    22 +
 .../material/typings/menu/menu-positions.d.ts   |     9 +
 .../material/typings/menu/menu-trigger.d.ts     |   115 +
 .../@angular/material/typings/menu/menu.d.ts    |    12 +
 .../material/typings/menu/public-api.d.ts       |    11 +
 .../material/typings/paginator/index.d.ts       |     4 +
 .../typings/paginator/index.metadata.json       |     1 +
 .../typings/paginator/paginator-intl.d.ts       |    20 +
 .../typings/paginator/paginator-module.d.ts     |     2 +
 .../material/typings/paginator/paginator.d.ts   |    75 +
 .../material/typings/paginator/public-api.d.ts  |    10 +
 .../material/typings/progress-bar/index.d.ts    |     4 +
 .../typings/progress-bar/index.metadata.json    |     1 +
 .../progress-bar/progress-bar-module.d.ts       |     2 +
 .../typings/progress-bar/progress-bar.d.ts      |    32 +
 .../typings/progress-bar/public-api.d.ts        |     9 +
 .../typings/progress-spinner/index.d.ts         |     4 +
 .../progress-spinner/index.metadata.json        |     1 +
 .../progress-spinner-module.d.ts                |     3 +
 .../progress-spinner/progress-spinner.d.ts      |    69 +
 .../typings/progress-spinner/public-api.d.ts    |     9 +
 .../@angular/material/typings/public-api.d.ts   |    39 +
 .../@angular/material/typings/radio/index.d.ts  |     4 +
 .../material/typings/radio/index.metadata.json  |     1 +
 .../material/typings/radio/public-api.d.ts      |     9 +
 .../material/typings/radio/radio-module.d.ts    |     2 +
 .../@angular/material/typings/radio/radio.d.ts  |   215 +
 .../@angular/material/typings/select/index.d.ts |     4 +
 .../material/typings/select/index.metadata.json |     1 +
 .../material/typings/select/public-api.d.ts     |    10 +
 .../typings/select/select-animations.d.ts       |    30 +
 .../material/typings/select/select-errors.d.ts  |    26 +
 .../material/typings/select/select-module.d.ts  |     2 +
 .../material/typings/select/select.d.ts         |   393 +
 .../material/typings/sidenav/drawer.d.ts        |   190 +
 .../material/typings/sidenav/index.d.ts         |     4 +
 .../typings/sidenav/index.metadata.json         |     1 +
 .../material/typings/sidenav/public-api.d.ts    |    10 +
 .../typings/sidenav/sidenav-module.d.ts         |     2 +
 .../material/typings/sidenav/sidenav.d.ts       |    33 +
 .../material/typings/slide-toggle/index.d.ts    |     4 +
 .../typings/slide-toggle/index.metadata.json    |     1 +
 .../typings/slide-toggle/public-api.d.ts        |     9 +
 .../slide-toggle/slide-toggle-module.d.ts       |     2 +
 .../typings/slide-toggle/slide-toggle.d.ts      |    93 +
 .../@angular/material/typings/slider/index.d.ts |     4 +
 .../material/typings/slider/index.metadata.json |     1 +
 .../material/typings/slider/public-api.d.ts     |     9 +
 .../material/typings/slider/slider-module.d.ts  |     2 +
 .../material/typings/slider/slider.d.ts         |   207 +
 .../material/typings/snack-bar/index.d.ts       |     4 +
 .../typings/snack-bar/index.metadata.json       |     1 +
 .../material/typings/snack-bar/public-api.d.ts  |    13 +
 .../typings/snack-bar/simple-snack-bar.d.ts     |    18 +
 .../typings/snack-bar/snack-bar-config.d.ts     |    38 +
 .../typings/snack-bar/snack-bar-container.d.ts  |    55 +
 .../typings/snack-bar/snack-bar-module.d.ts     |     2 +
 .../typings/snack-bar/snack-bar-ref.d.ts        |    51 +
 .../material/typings/snack-bar/snack-bar.d.ts   |    70 +
 .../@angular/material/typings/sort/index.d.ts   |     4 +
 .../material/typings/sort/index.metadata.json   |     1 +
 .../material/typings/sort/public-api.d.ts       |    12 +
 .../material/typings/sort/sort-direction.d.ts   |     8 +
 .../material/typings/sort/sort-errors.d.ts      |    15 +
 .../material/typings/sort/sort-header-intl.d.ts |    17 +
 .../material/typings/sort/sort-header.d.ts      |    43 +
 .../material/typings/sort/sort-module.d.ts      |     2 +
 .../@angular/material/typings/sort/sort.d.ts    |    55 +
 .../material/typings/stepper/index.d.ts         |     4 +
 .../typings/stepper/index.metadata.json         |     1 +
 .../material/typings/stepper/public-api.d.ts    |    13 +
 .../material/typings/stepper/step-header.d.ts   |    41 +
 .../material/typings/stepper/step-label.d.ts    |    14 +
 .../typings/stepper/stepper-button.d.ts         |    10 +
 .../material/typings/stepper/stepper-intl.d.ts  |    11 +
 .../typings/stepper/stepper-module.d.ts         |     2 +
 .../material/typings/stepper/stepper.d.ts       |    26 +
 .../@angular/material/typings/table/cell.d.ts   |    43 +
 .../@angular/material/typings/table/index.d.ts  |     4 +
 .../material/typings/table/index.metadata.json  |     1 +
 .../material/typings/table/public-api.d.ts      |    11 +
 .../@angular/material/typings/table/row.d.ts    |    25 +
 .../material/typings/table/table-module.d.ts    |     2 +
 .../@angular/material/typings/table/table.d.ts  |     8 +
 .../@angular/material/typings/tabs/index.d.ts   |     8 +
 .../material/typings/tabs/index.metadata.json   |     1 +
 .../@angular/material/typings/tabs/ink-bar.d.ts |    33 +
 .../material/typings/tabs/public-api.d.ts       |    16 +
 .../material/typings/tabs/tab-body.d.ts         |    69 +
 .../material/typings/tabs/tab-group.d.ts        |   104 +
 .../material/typings/tabs/tab-header.d.ts       |   158 +
 .../typings/tabs/tab-label-wrapper.d.ts         |    25 +
 .../material/typings/tabs/tab-label.d.ts        |    15 +
 .../typings/tabs/tab-nav-bar/index.d.ts         |     8 +
 .../typings/tabs/tab-nav-bar/tab-nav-bar.d.ts   |    78 +
 .../@angular/material/typings/tabs/tab.d.ts     |    50 +
 .../material/typings/tabs/tabs-module.d.ts      |     2 +
 .../material/typings/toolbar/index.d.ts         |     4 +
 .../typings/toolbar/index.metadata.json         |     1 +
 .../material/typings/toolbar/public-api.d.ts    |     9 +
 .../typings/toolbar/toolbar-module.d.ts         |     2 +
 .../material/typings/toolbar/toolbar.d.ts       |    21 +
 .../material/typings/tooltip/index.d.ts         |     4 +
 .../typings/tooltip/index.metadata.json         |     1 +
 .../material/typings/tooltip/public-api.d.ts    |     9 +
 .../typings/tooltip/tooltip-module.d.ts         |     2 +
 .../material/typings/tooltip/tooltip.d.ts       |   175 +
 .../@angular/material/typings/version.d.ts      |    10 +
 .../@angular/platform-browser-dynamic.es5.js    |   166 +
 .../platform-browser-dynamic.es5.js.map         |     1 +
 .../@angular/platform-browser-dynamic.js        |   166 +
 .../@angular/platform-browser-dynamic.js.map    |     1 +
 .../platform-browser-dynamic/testing.es5.js     |    99 +
 .../platform-browser-dynamic/testing.es5.js.map |     1 +
 .../platform-browser-dynamic/testing.js         |    97 +
 .../platform-browser-dynamic/testing.js.map     |     1 +
 .../platform-browser-dynamic-testing.umd.js     |   124 +
 .../platform-browser-dynamic-testing.umd.js.map |     1 +
 .../platform-browser-dynamic-testing.umd.min.js |    21 +
 ...tform-browser-dynamic-testing.umd.min.js.map |     1 +
 .../bundles/platform-browser-dynamic.umd.js     |   194 +
 .../bundles/platform-browser-dynamic.umd.js.map |     1 +
 .../bundles/platform-browser-dynamic.umd.min.js |    14 +
 .../platform-browser-dynamic.umd.min.js.map     |     1 +
 .../platform-browser-dynamic/package.json       |    56 +
 .../platform-browser-dynamic.d.ts               |    13 +
 .../platform-browser-dynamic.metadata.json      |     1 +
 .../src/platform-browser-dynamic.d.ts           |    11 +
 .../src/platform-browser-dynamic.metadata.json  |     1 +
 .../src/platform_providers.d.ts                 |     2 +
 .../src/platform_providers.metadata.json        |     1 +
 .../src/private_export.d.ts                     |     9 +
 .../src/private_export.metadata.json            |     1 +
 .../resource_loader/resource_loader_cache.d.ts  |    20 +
 .../resource_loader_cache.metadata.json         |     1 +
 .../resource_loader/resource_loader_impl.d.ts   |    11 +
 .../resource_loader_impl.metadata.json          |     1 +
 .../platform-browser-dynamic/src/version.d.ts   |    17 +
 .../src/version.metadata.json                   |     1 +
 .../platform-browser-dynamic/testing.d.ts       |     6 +
 .../testing.metadata.json                       |     1 +
 .../platform-browser-dynamic/testing/index.d.ts |    13 +
 .../testing/index.metadata.json                 |     1 +
 .../testing/package.json                        |     7 +
 .../src/dom_test_component_renderer.d.ts        |     9 +
 .../dom_test_component_renderer.metadata.json   |     1 +
 .../testing/src/private_export_testing.d.ts     |     8 +
 .../src/private_export_testing.metadata.json    |     1 +
 .../testing/src/testing.d.ts                    |    13 +
 .../testing/src/testing.metadata.json           |     1 +
 .../@angular/platform-browser.es5.js            |  4431 +++
 .../@angular/platform-browser.es5.js.map        |     1 +
 .../@angular/platform-browser.js                |  4328 +++
 .../@angular/platform-browser.js.map            |     1 +
 .../@angular/platform-browser/animations.es5.js |   741 +
 .../platform-browser/animations.es5.js.map      |     1 +
 .../@angular/platform-browser/animations.js     |   716 +
 .../@angular/platform-browser/animations.js.map |     1 +
 .../@angular/platform-browser/testing.es5.js    |   176 +
 .../platform-browser/testing.es5.js.map         |     1 +
 .../@angular/platform-browser/testing.js        |   135 +
 .../@angular/platform-browser/testing.js.map    |     1 +
 .../@angular/platform-browser/animations.d.ts   |     6 +
 .../platform-browser/animations.metadata.json   |     1 +
 .../platform-browser/animations/index.d.ts      |     6 +
 .../animations/index.metadata.json              |     1 +
 .../platform-browser/animations/package.json    |     7 +
 .../platform-browser/animations/public_api.d.ts |    13 +
 .../animations/src/animation_builder.d.ts       |    46 +
 .../animations/src/animation_renderer.d.ts      |    54 +
 .../animations/src/animations.d.ts              |    14 +
 .../platform-browser/animations/src/module.d.ts |    10 +
 .../animations/src/private_export.d.ts          |     9 +
 .../animations/src/providers.d.ts               |    20 +
 .../bundles/platform-browser-animations.umd.js  |   756 +
 .../platform-browser-animations.umd.js.map      |     1 +
 .../platform-browser-animations.umd.min.js      |     7 +
 .../platform-browser-animations.umd.min.js.map  |     1 +
 .../bundles/platform-browser-testing.umd.js     |   167 +
 .../bundles/platform-browser-testing.umd.js.map |     1 +
 .../bundles/platform-browser-testing.umd.min.js |    26 +
 .../platform-browser-testing.umd.min.js.map     |     1 +
 .../bundles/platform-browser.umd.js             |  4490 +++
 .../bundles/platform-browser.umd.js.map         |     1 +
 .../bundles/platform-browser.umd.min.js         |    71 +
 .../bundles/platform-browser.umd.min.js.map     |     1 +
 .../@angular/platform-browser/package.json      |    54 +
 .../platform-browser/platform-browser.d.ts      |    10 +
 .../platform-browser.metadata.json              |     1 +
 .../@angular/platform-browser/public_api.d.ts   |    13 +
 .../@angular/platform-browser/src/browser.d.ts  |    34 +
 .../src/browser/browser_adapter.d.ts            |   118 +
 .../src/browser/generic_browser_adapter.d.ts    |    26 +
 .../location/browser_platform_location.d.ts     |    30 +
 .../src/browser/location/history.d.ts           |     8 +
 .../platform-browser/src/browser/meta.d.ts      |    39 +
 .../src/browser/server-transition.d.ts          |    15 +
 .../src/browser/testability.d.ts                |    13 +
 .../platform-browser/src/browser/title.d.ts     |    24 +
 .../src/browser/tools/browser.d.ts              |     9 +
 .../src/browser/tools/common_tools.d.ts         |    38 +
 .../src/browser/tools/tools.d.ts                |    28 +
 .../platform-browser/src/dom/debug/by.d.ts      |    39 +
 .../src/dom/debug/ng_probe.d.ts                 |    28 +
 .../platform-browser/src/dom/dom_adapter.d.ts   |   142 +
 .../platform-browser/src/dom/dom_renderer.d.ts  |    29 +
 .../platform-browser/src/dom/dom_tokens.d.ts    |    10 +
 .../src/dom/events/dom_events.d.ts              |     6 +
 .../src/dom/events/event_manager.d.ts           |    32 +
 .../src/dom/events/hammer_gestures.d.ts         |    37 +
 .../src/dom/events/key_events.d.ts              |    22 +
 .../src/dom/shared_styles_host.d.ts             |    24 +
 .../@angular/platform-browser/src/dom/util.d.ts |    10 +
 .../platform-browser/src/platform-browser.d.ts  |    19 +
 .../platform-browser/src/private_export.d.ts    |    19 +
 .../src/security/dom_sanitization_service.d.ts  |   143 +
 .../src/security/html_sanitizer.d.ts            |     5 +
 .../src/security/style_sanitizer.d.ts           |     5 +
 .../src/security/url_sanitizer.d.ts             |     2 +
 .../@angular/platform-browser/src/version.d.ts  |    17 +
 .../@angular/platform-browser/testing.d.ts      |     6 +
 .../platform-browser/testing.metadata.json      |     1 +
 .../platform-browser/testing/index.d.ts         |    13 +
 .../testing/index.metadata.json                 |     1 +
 .../platform-browser/testing/package.json       |     7 +
 .../platform-browser/testing/src/browser.d.ts   |    21 +
 .../testing/src/browser.metadata.json           |     1 +
 .../testing/src/browser_util.d.ts               |    30 +
 .../testing/src/browser_util.metadata.json      |     1 +
 .../platform-browser/testing/src/testing.d.ts   |    13 +
 .../testing/src/testing.metadata.json           |     1 +
 .../@angular/router/@angular/router.es5.js      |  6288 ++++
 .../@angular/router/@angular/router.es5.js.map  |     1 +
 node_modules/@angular/router/@angular/router.js |  6018 ++++
 .../@angular/router/@angular/router.js.map      |     1 +
 .../router/@angular/router/testing.es5.js       |   180 +
 .../router/@angular/router/testing.es5.js.map   |     1 +
 .../@angular/router/@angular/router/testing.js  |   175 +
 .../router/@angular/router/testing.js.map       |     1 +
 .../router/@angular/router/upgrade.es5.js       |    84 +
 .../router/@angular/router/upgrade.es5.js.map   |     1 +
 .../@angular/router/@angular/router/upgrade.js  |    90 +
 .../router/@angular/router/upgrade.js.map       |     1 +
 .../router/bundles/router-testing.umd.js        |   170 +
 .../router/bundles/router-testing.umd.js.map    |     1 +
 .../router/bundles/router-testing.umd.min.js    |    19 +
 .../bundles/router-testing.umd.min.js.map       |     1 +
 .../router/bundles/router-upgrade.umd.js        |    87 +
 .../router/bundles/router-upgrade.umd.js.map    |     1 +
 .../router/bundles/router-upgrade.umd.min.js    |    19 +
 .../bundles/router-upgrade.umd.min.js.map       |     1 +
 .../@angular/router/bundles/router.umd.js       |  6332 ++++
 .../@angular/router/bundles/router.umd.js.map   |     1 +
 .../@angular/router/bundles/router.umd.min.js   |    65 +
 .../router/bundles/router.umd.min.js.map        |     1 +
 node_modules/@angular/router/package.json       |    60 +
 node_modules/@angular/router/public_api.d.ts    |    13 +
 node_modules/@angular/router/router.d.ts        |     6 +
 .../@angular/router/router.metadata.json        |     1 +
 .../@angular/router/src/apply_redirects.d.ts    |    18 +
 node_modules/@angular/router/src/config.d.ts    |   354 +
 .../router/src/create_router_state.d.ts         |     3 +
 .../@angular/router/src/create_url_tree.d.ts    |    11 +
 .../router/src/directives/router_link.d.ts      |   147 +
 .../src/directives/router_link_active.d.ts      |    95 +
 .../router/src/directives/router_outlet.d.ts    |    68 +
 node_modules/@angular/router/src/events.d.ts    |   267 +
 node_modules/@angular/router/src/index.d.ts     |    25 +
 .../@angular/router/src/interfaces.d.ts         |   368 +
 .../@angular/router/src/private_export.d.ts     |     9 +
 node_modules/@angular/router/src/recognize.d.ts |    13 +
 .../router/src/route_reuse_strategy.d.ts        |    41 +
 node_modules/@angular/router/src/router.d.ts    |   337 +
 .../router/src/router_config_loader.d.ts        |    24 +
 .../@angular/router/src/router_module.d.ts      |   212 +
 .../router/src/router_outlet_context.d.ts       |    46 +
 .../@angular/router/src/router_preloader.d.ts   |    70 +
 .../@angular/router/src/router_state.d.ts       |   189 +
 node_modules/@angular/router/src/shared.d.ts    |    62 +
 .../router/src/url_handling_strategy.d.ts       |    41 +
 node_modules/@angular/router/src/url_tree.d.ts  |   183 +
 .../@angular/router/src/utils/collection.d.ts   |    28 +
 .../@angular/router/src/utils/tree.d.ts         |    17 +
 node_modules/@angular/router/src/version.d.ts   |    17 +
 node_modules/@angular/router/testing.d.ts       |     6 +
 .../@angular/router/testing.metadata.json       |     1 +
 node_modules/@angular/router/testing/index.d.ts |    13 +
 .../@angular/router/testing/index.metadata.json |     1 +
 .../@angular/router/testing/package.json        |     7 +
 .../testing/src/router_testing_module.d.ts      |    91 +
 .../src/router_testing_module.metadata.json     |     1 +
 .../@angular/router/testing/src/testing.d.ts    |    13 +
 .../router/testing/src/testing.metadata.json    |     1 +
 node_modules/@angular/router/upgrade.d.ts       |     6 +
 .../@angular/router/upgrade.metadata.json       |     1 +
 node_modules/@angular/router/upgrade/index.d.ts |    13 +
 .../@angular/router/upgrade/index.metadata.json |     1 +
 .../@angular/router/upgrade/package.json        |     7 +
 .../@angular/router/upgrade/src/upgrade.d.ts    |    47 +
 .../router/upgrade/src/upgrade.metadata.json    |     1 +
 node_modules/@covalent/core/bundles/core.umd.js |  9849 ++++++
 .../@covalent/core/bundles/core.umd.js.map      |     1 +
 .../@covalent/core/bundles/core.umd.min.js      |     8 +
 .../@covalent/core/bundles/core.umd.min.js.map  |     1 +
 .../@covalent/core/chips/_chips-theme.scss      |    62 +
 .../@covalent/core/chips/chips.component.css    |   160 +
 .../core/chips/chips.component.css.map          |     1 +
 .../@covalent/core/chips/chips.component.d.ts   |   270 +
 .../@covalent/core/chips/chips.component.html   |    59 +
 .../@covalent/core/chips/chips.component.js     |   887 +
 .../@covalent/core/chips/chips.component.js.map |     1 +
 .../core/chips/chips.component.metadata.json    |     1 +
 .../@covalent/core/chips/chips.component.scss   |    97 +
 .../@covalent/core/chips/chips.module.d.ts      |     3 +
 .../@covalent/core/chips/chips.module.js        |    36 +
 .../@covalent/core/chips/chips.module.js.map    |     1 +
 .../core/chips/chips.module.metadata.json       |     1 +
 .../@covalent/core/common/_common-theme.scss    |    22 +
 .../animations/bounce/bounce.animation.d.ts     |    14 +
 .../animations/bounce/bounce.animation.js       |    35 +
 .../animations/bounce/bounce.animation.js.map   |     1 +
 .../bounce/bounce.animation.metadata.json       |     1 +
 .../animations/collapse/collapse.animation.d.ts |    21 +
 .../animations/collapse/collapse.animation.js   |    41 +
 .../collapse/collapse.animation.js.map          |     1 +
 .../collapse/collapse.animation.metadata.json   |     1 +
 .../common/animations/common/interfaces.d.ts    |     5 +
 .../core/common/animations/common/interfaces.js |     1 +
 .../common/animations/common/interfaces.js.map  |     1 +
 .../animations/common/interfaces.metadata.json  |     1 +
 .../common/animations/fade/fade.directive.d.ts  |    52 +
 .../common/animations/fade/fade.directive.js    |   165 +
 .../animations/fade/fade.directive.js.map       |     1 +
 .../fade/fade.directive.metadata.json           |     1 +
 .../animations/fade/fadeInOut.animation.d.ts    |    21 +
 .../animations/fade/fadeInOut.animation.js      |    35 +
 .../animations/fade/fadeInOut.animation.js.map  |     1 +
 .../fade/fadeInOut.animation.metadata.json      |     1 +
 .../animations/flash/flash.animation.d.ts       |    14 +
 .../common/animations/flash/flash.animation.js  |    31 +
 .../animations/flash/flash.animation.js.map     |     1 +
 .../flash/flash.animation.metadata.json         |     1 +
 .../headshake/headshake.animation.d.ts          |    14 +
 .../animations/headshake/headshake.animation.js |    32 +
 .../headshake/headshake.animation.js.map        |     1 +
 .../headshake/headshake.animation.metadata.json |     1 +
 .../animations/jello/jello.animation.d.ts       |    14 +
 .../common/animations/jello/jello.animation.js  |    35 +
 .../animations/jello/jello.animation.js.map     |     1 +
 .../jello/jello.animation.metadata.json         |     1 +
 .../animations/pulse/pulse.animation.d.ts       |    14 +
 .../common/animations/pulse/pulse.animation.js  |    29 +
 .../animations/pulse/pulse.animation.js.map     |     1 +
 .../pulse/pulse.animation.metadata.json         |     1 +
 .../animations/rotate/rotate.animation.d.ts     |    21 +
 .../animations/rotate/rotate.animation.js       |    32 +
 .../animations/rotate/rotate.animation.js.map   |     1 +
 .../rotate/rotate.animation.metadata.json       |     1 +
 .../animations/toggle/toggle.directive.d.ts     |    45 +
 .../animations/toggle/toggle.directive.js       |   153 +
 .../animations/toggle/toggle.directive.js.map   |     1 +
 .../toggle/toggle.directive.metadata.json       |     1 +
 .../core/common/behaviors/constructor.d.ts      |     1 +
 .../core/common/behaviors/constructor.js        |     1 +
 .../core/common/behaviors/constructor.js.map    |     1 +
 .../common/behaviors/constructor.metadata.json  |     1 +
 .../common/behaviors/disable-ripple.mixin.d.ts  |     8 +
 .../common/behaviors/disable-ripple.mixin.js    |    36 +
 .../behaviors/disable-ripple.mixin.js.map       |     1 +
 .../disable-ripple.mixin.metadata.json          |     1 +
 .../core/common/behaviors/disabled.mixin.d.ts   |     8 +
 .../core/common/behaviors/disabled.mixin.js     |    36 +
 .../core/common/behaviors/disabled.mixin.js.map |     1 +
 .../behaviors/disabled.mixin.metadata.json      |     1 +
 .../@covalent/core/common/common.module.d.ts    |    36 +
 .../@covalent/core/common/common.module.js      |    95 +
 .../@covalent/core/common/common.module.js.map  |     1 +
 .../core/common/common.module.metadata.json     |     1 +
 .../forms/auto-trim/auto-trim.directive.d.ts    |     9 +
 .../forms/auto-trim/auto-trim.directive.js      |    33 +
 .../forms/auto-trim/auto-trim.directive.js.map  |     1 +
 .../auto-trim/auto-trim.directive.metadata.json |     1 +
 .../common/forms/validators/validators.d.ts     |     8 +
 .../core/common/forms/validators/validators.js  |    37 +
 .../common/forms/validators/validators.js.map   |     1 +
 .../forms/validators/validators.metadata.json   |     1 +
 .../core/common/pipes/bytes/bytes.pipe.d.ts     |     4 +
 .../core/common/pipes/bytes/bytes.pipe.js       |    34 +
 .../core/common/pipes/bytes/bytes.pipe.js.map   |     1 +
 .../common/pipes/bytes/bytes.pipe.metadata.json |     1 +
 .../core/common/pipes/digits/digits.pipe.d.ts   |     7 +
 .../core/common/pipes/digits/digits.pipe.js     |    39 +
 .../core/common/pipes/digits/digits.pipe.js.map |     1 +
 .../pipes/digits/digits.pipe.metadata.json      |     1 +
 .../common/pipes/time-ago/time-ago.pipe.d.ts    |     4 +
 .../core/common/pipes/time-ago/time-ago.pipe.js |    73 +
 .../common/pipes/time-ago/time-ago.pipe.js.map  |     1 +
 .../pipes/time-ago/time-ago.pipe.metadata.json  |     1 +
 .../time-difference/time-difference.pipe.d.ts   |     4 +
 .../time-difference/time-difference.pipe.js     |    47 +
 .../time-difference/time-difference.pipe.js.map |     1 +
 .../time-difference.pipe.metadata.json          |     1 +
 .../common/pipes/truncate/truncate.pipe.d.ts    |     4 +
 .../core/common/pipes/truncate/truncate.pipe.js |    28 +
 .../common/pipes/truncate/truncate.pipe.js.map  |     1 +
 .../pipes/truncate/truncate.pipe.metadata.json  |     1 +
 node_modules/@covalent/core/common/platform.css | 15226 +++++++++
 .../@covalent/core/common/platform.css.map      |     1 +
 .../@covalent/core/common/platform.scss         |    31 +
 .../core/common/services/icon.service.d.ts      |     5 +
 .../core/common/services/icon.service.js        |   805 +
 .../core/common/services/icon.service.js.map    |     1 +
 .../common/services/icon.service.metadata.json  |     1 +
 .../common/services/router-path.service.d.ts    |     7 +
 .../core/common/services/router-path.service.js |    30 +
 .../common/services/router-path.service.js.map  |     1 +
 .../services/router-path.service.metadata.json  |     1 +
 .../@covalent/core/common/styles/_button.scss   |    57 +
 .../core/common/styles/_card-colored.scss       |    48 +
 .../@covalent/core/common/styles/_card.scss     |   107 +
 .../@covalent/core/common/styles/_chips.scss    |    49 +
 .../core/common/styles/_colors-dark.scss        |   386 +
 .../@covalent/core/common/styles/_colors.scss   |   901 +
 .../@covalent/core/common/styles/_content.scss  |    44 +
 .../@covalent/core/common/styles/_divider.scss  |    10 +
 .../core/common/styles/_elevation.scss          |   174 +
 .../@covalent/core/common/styles/_icons.scss    |    24 +
 .../@covalent/core/common/styles/_input.scss    |     4 +
 .../@covalent/core/common/styles/_layout.scss   |   581 +
 .../@covalent/core/common/styles/_list.scss     |     6 +
 .../@covalent/core/common/styles/_mixins.scss   |   127 +
 .../core/common/styles/_navigation-drawer.scss  |    13 +
 .../core/common/styles/_palette-dark.scss       |   326 +
 .../@covalent/core/common/styles/_palette.scss  |   637 +
 .../@covalent/core/common/styles/_shadows.scss  |    38 +
 .../@covalent/core/common/styles/_sidenav.scss  |     7 +
 .../core/common/styles/_structure.scss          |   124 +
 .../core/common/styles/_theme-functions.scss    |    25 +
 .../@covalent/core/common/styles/_toolbar.scss  |    29 +
 .../core/common/styles/_typography.scss         |   102 +
 .../core/common/styles/_variables.scss          |    98 +
 .../core/common/styles/_whiteframe.scss         |    71 +
 .../styles/font/MaterialIcons-Regular.eot       |   Bin 0 -> 143258 bytes
 .../styles/font/MaterialIcons-Regular.ijmap     |     1 +
 .../styles/font/MaterialIcons-Regular.ttf       |   Bin 0 -> 128180 bytes
 .../styles/font/MaterialIcons-Regular.woff      |   Bin 0 -> 57620 bytes
 .../styles/font/MaterialIcons-Regular.woff2     |   Bin 0 -> 44300 bytes
 .../core/common/styles/font/_font.scss          |    61 +
 .../core/common/styles/font/codepoints          |   932 +
 .../core/common/styles/utilities/_general.scss  |    53 +
 .../core/common/styles/utilities/_pad.scss      |   149 +
 .../core/common/styles/utilities/_pull.scss     |   126 +
 .../core/common/styles/utilities/_push.scss     |   133 +
 .../core/common/styles/utilities/_size.scss     |    22 +
 .../core/common/styles/utilities/_text.scss     |    84 +
 .../common/styles/utilities/_utilities.scss     |     6 +
 .../core/data-table/_data-table-theme.scss      |    66 +
 .../data-table-cell.component.css               |   117 +
 .../data-table-cell.component.css.map           |     1 +
 .../data-table-cell.component.d.ts              |    13 +
 .../data-table-cell.component.html              |     5 +
 .../data-table-cell.component.js                |    43 +
 .../data-table-cell.component.js.map            |     1 +
 .../data-table-cell.component.metadata.json     |     1 +
 .../data-table-cell.component.scss              |    35 +
 .../data-table-column.component.css             |   212 +
 .../data-table-column.component.css.map         |     1 +
 .../data-table-column.component.d.ts            |    59 +
 .../data-table-column.component.html            |    19 +
 .../data-table-column.component.js              |   176 +
 .../data-table-column.component.js.map          |     1 +
 .../data-table-column.component.metadata.json   |     1 +
 .../data-table-column.component.scss            |    82 +
 .../data-table-row/data-table-row.component.css |    11 +
 .../data-table-row.component.css.map            |     1 +
 .../data-table-row.component.d.ts               |    19 +
 .../data-table-row.component.html               |     1 +
 .../data-table-row/data-table-row.component.js  |    87 +
 .../data-table-row.component.js.map             |     1 +
 .../data-table-row.component.metadata.json      |     1 +
 .../data-table-row.component.scss               |    12 +
 .../data-table-table.component.css              |     8 +
 .../data-table-table.component.css.map          |     1 +
 .../data-table-table.component.d.ts             |     6 +
 .../data-table-table.component.html             |     1 +
 .../data-table-table.component.js               |    21 +
 .../data-table-table.component.js.map           |     1 +
 .../data-table-table.component.metadata.json    |     1 +
 .../data-table-table.component.scss             |     7 +
 .../core/data-table/data-table.component.css    |    48 +
 .../data-table/data-table.component.css.map     |     1 +
 .../core/data-table/data-table.component.d.ts   |   335 +
 .../core/data-table/data-table.component.html   |    78 +
 .../core/data-table/data-table.component.js     |  1077 +
 .../core/data-table/data-table.component.js.map |     1 +
 .../data-table.component.metadata.json          |     1 +
 .../core/data-table/data-table.component.scss   |    60 +
 .../core/data-table/data-table.module.d.ts      |     8 +
 .../core/data-table/data-table.module.js        |    53 +
 .../core/data-table/data-table.module.js.map    |     1 +
 .../data-table/data-table.module.metadata.json  |     1 +
 .../data-table-template.directive.d.ts          |     6 +
 .../directives/data-table-template.directive.js |    20 +
 .../data-table-template.directive.js.map        |     1 +
 .../data-table-template.directive.metadata.json |     1 +
 .../data-table/services/data-table.service.d.ts |    34 +
 .../data-table/services/data-table.service.js   |    93 +
 .../services/data-table.service.js.map          |     1 +
 .../services/data-table.service.metadata.json   |     1 +
 .../alert-dialog/alert-dialog.component.css     |     9 +
 .../alert-dialog/alert-dialog.component.css.map |     1 +
 .../alert-dialog/alert-dialog.component.d.ts    |     9 +
 .../alert-dialog/alert-dialog.component.html    |    11 +
 .../alert-dialog/alert-dialog.component.js      |    23 +
 .../alert-dialog/alert-dialog.component.js.map  |     1 +
 .../alert-dialog.component.metadata.json        |     1 +
 .../alert-dialog/alert-dialog.component.scss    |    10 +
 .../confirm-dialog/confirm-dialog.component.css |     9 +
 .../confirm-dialog.component.css.map            |     1 +
 .../confirm-dialog.component.d.ts               |    11 +
 .../confirm-dialog.component.html               |    19 +
 .../confirm-dialog/confirm-dialog.component.js  |    27 +
 .../confirm-dialog.component.js.map             |     1 +
 .../confirm-dialog.component.metadata.json      |     1 +
 .../confirm-dialog.component.scss               |    10 +
 .../@covalent/core/dialogs/dialog.component.css |    28 +
 .../core/dialogs/dialog.component.css.map       |     1 +
 .../core/dialogs/dialog.component.d.ts          |    13 +
 .../core/dialogs/dialog.component.html          |    12 +
 .../@covalent/core/dialogs/dialog.component.js  |    66 +
 .../core/dialogs/dialog.component.js.map        |     1 +
 .../core/dialogs/dialog.component.metadata.json |     1 +
 .../core/dialogs/dialog.component.scss          |    35 +
 .../@covalent/core/dialogs/dialogs.module.d.ts  |     9 +
 .../@covalent/core/dialogs/dialogs.module.js    |    55 +
 .../core/dialogs/dialogs.module.js.map          |     1 +
 .../core/dialogs/dialogs.module.metadata.json   |     1 +
 .../prompt-dialog/prompt-dialog.component.css   |     9 +
 .../prompt-dialog.component.css.map             |     1 +
 .../prompt-dialog/prompt-dialog.component.d.ts  |    20 +
 .../prompt-dialog/prompt-dialog.component.html  |    33 +
 .../prompt-dialog/prompt-dialog.component.js    |    45 +
 .../prompt-dialog.component.js.map              |     1 +
 .../prompt-dialog.component.metadata.json       |     1 +
 .../prompt-dialog/prompt-dialog.component.scss  |    10 +
 .../core/dialogs/services/dialog.service.d.ts   |    84 +
 .../core/dialogs/services/dialog.service.js     |   129 +
 .../core/dialogs/services/dialog.service.js.map |     1 +
 .../services/dialog.service.metadata.json       |     1 +
 .../expansion-panel/_expansion-panel-theme.scss |    59 +
 .../expansion-panel-group.component.css         |     2 +
 .../expansion-panel-group.component.css.map     |     1 +
 .../expansion-panel-group.component.d.ts        |     6 +
 .../expansion-panel-group.component.html        |     1 +
 .../expansion-panel-group.component.js          |    21 +
 .../expansion-panel-group.component.js.map      |     1 +
 ...xpansion-panel-group.component.metadata.json |     1 +
 .../expansion-panel-group.component.scss        |     0
 .../expansion-panel.component.css               |    23 +
 .../expansion-panel.component.css.map           |     1 +
 .../expansion-panel.component.d.ts              |    81 +
 .../expansion-panel.component.html              |    34 +
 .../expansion-panel.component.js                |   216 +
 .../expansion-panel.component.js.map            |     1 +
 .../expansion-panel.component.metadata.json     |     1 +
 .../expansion-panel.component.scss              |    27 +
 .../expansion-panel/expansion-panel.module.d.ts |     4 +
 .../expansion-panel/expansion-panel.module.js   |    40 +
 .../expansion-panel.module.js.map               |     1 +
 .../expansion-panel.module.metadata.json        |     1 +
 .../@covalent/core/file/_file-theme.scss        |    25 +
 .../file/directives/file-drop.directive.d.ts    |    59 +
 .../core/file/directives/file-drop.directive.js |   183 +
 .../file/directives/file-drop.directive.js.map  |     1 +
 .../file-drop.directive.metadata.json           |     1 +
 .../file/directives/file-select.directive.d.ts  |    30 +
 .../file/directives/file-select.directive.js    |    85 +
 .../directives/file-select.directive.js.map     |     1 +
 .../file-select.directive.metadata.json         |     1 +
 .../file/file-input/file-input.component.css    |    15 +
 .../file-input/file-input.component.css.map     |     1 +
 .../file/file-input/file-input.component.d.ts   |    65 +
 .../file/file-input/file-input.component.html   |    22 +
 .../file/file-input/file-input.component.js     |   159 +
 .../file/file-input/file-input.component.js.map |     1 +
 .../file-input.component.metadata.json          |     1 +
 .../file/file-input/file-input.component.scss   |    19 +
 .../core/file/file-upload.component.html        |    49 +
 .../file/file-upload/file-upload.component.css  |    26 +
 .../file-upload/file-upload.component.css.map   |     1 +
 .../file/file-upload/file-upload.component.d.ts |    72 +
 .../file/file-upload/file-upload.component.html |    23 +
 .../file/file-upload/file-upload.component.js   |   157 +
 .../file-upload/file-upload.component.js.map    |     1 +
 .../file-upload.component.metadata.json         |     1 +
 .../file/file-upload/file-upload.component.scss |    29 +
 .../@covalent/core/file/file.module.d.ts        |     7 +
 node_modules/@covalent/core/file/file.module.js |    53 +
 .../@covalent/core/file/file.module.js.map      |     1 +
 .../core/file/file.module.metadata.json         |     1 +
 .../core/file/services/file.service.d.ts        |    34 +
 .../core/file/services/file.service.js          |    83 +
 .../core/file/services/file.service.js.map      |     1 +
 .../file/services/file.service.metadata.json    |     1 +
 node_modules/@covalent/core/index.d.ts          |    17 +
 node_modules/@covalent/core/index.js            |    18 +
 node_modules/@covalent/core/index.js.map        |     1 +
 node_modules/@covalent/core/index.metadata.json |     1 +
 .../json-formatter/_json-formatter-theme.scss   |    43 +
 .../json-formatter/json-formatter.component.css |    36 +
 .../json-formatter.component.css.map            |     1 +
 .../json-formatter.component.d.ts               |    72 +
 .../json-formatter.component.html               |    25 +
 .../json-formatter/json-formatter.component.js  |   251 +
 .../json-formatter.component.js.map             |     1 +
 .../json-formatter.component.metadata.json      |     1 +
 .../json-formatter.component.scss               |    48 +
 .../json-formatter/json-formatter.module.d.ts   |     3 +
 .../json-formatter/json-formatter.module.js     |    28 +
 .../json-formatter/json-formatter.module.js.map |     1 +
 .../json-formatter.module.metadata.json         |     1 +
 .../@covalent/core/layout/_layout-theme.scss    |    60 +
 .../layout-card-over.component.css              |    14 +
 .../layout-card-over.component.css.map          |     1 +
 .../layout-card-over.component.d.ts             |    28 +
 .../layout-card-over.component.html             |    13 +
 .../layout-card-over.component.js               |    47 +
 .../layout-card-over.component.js.map           |     1 +
 .../layout-card-over.component.metadata.json    |     1 +
 .../layout-card-over.component.scss             |    14 +
 .../layout-footer/layout-footer.component.css   |     5 +
 .../layout-footer.component.css.map             |     1 +
 .../layout-footer/layout-footer.component.d.ts  |    13 +
 .../layout-footer/layout-footer.component.html  |     1 +
 .../layout-footer/layout-footer.component.js    |    46 +
 .../layout-footer.component.js.map              |     1 +
 .../layout-footer.component.metadata.json       |     1 +
 .../layout-footer/layout-footer.component.scss  |     4 +
 .../layout-manage-list.component.css            |    39 +
 .../layout-manage-list.component.css.map        |     1 +
 .../layout-manage-list.component.d.ts           |    52 +
 .../layout-manage-list.component.html           |    24 +
 .../layout-manage-list.component.js             |    92 +
 .../layout-manage-list.component.js.map         |     1 +
 .../layout-manage-list.component.metadata.json  |     1 +
 .../layout-manage-list.component.scss           |    44 +
 .../layout-manage-list.directives.d.ts          |    18 +
 .../layout-manage-list.directives.js            |   101 +
 .../layout-manage-list.directives.js.map        |     1 +
 .../layout-manage-list.directives.metadata.json |     1 +
 .../layout-nav-list.component.css               |    33 +
 .../layout-nav-list.component.css.map           |     1 +
 .../layout-nav-list.component.d.ts              |    90 +
 .../layout-nav-list.component.html              |    43 +
 .../layout-nav-list.component.js                |   137 +
 .../layout-nav-list.component.js.map            |     1 +
 .../layout-nav-list.component.metadata.json     |     1 +
 .../layout-nav-list.component.scss              |    38 +
 .../layout-nav-list.directives.d.ts             |    18 +
 .../layout-nav-list.directives.js               |   101 +
 .../layout-nav-list.directives.js.map           |     1 +
 .../layout-nav-list.directives.metadata.json    |     1 +
 .../layout/layout-nav/layout-nav.component.css  |    17 +
 .../layout-nav/layout-nav.component.css.map     |     1 +
 .../layout/layout-nav/layout-nav.component.d.ts |    42 +
 .../layout/layout-nav/layout-nav.component.html |    19 +
 .../layout/layout-nav/layout-nav.component.js   |    62 +
 .../layout-nav/layout-nav.component.js.map      |     1 +
 .../layout-nav.component.metadata.json          |     1 +
 .../layout/layout-nav/layout-nav.component.scss |    16 +
 .../core/layout/layout-toggle.class.d.ts        |    33 +
 .../core/layout/layout-toggle.class.js          |    82 +
 .../core/layout/layout-toggle.class.js.map      |     1 +
 .../layout/layout-toggle.class.metadata.json    |     1 +
 .../@covalent/core/layout/layout.component.css  |    19 +
 .../core/layout/layout.component.css.map        |     1 +
 .../@covalent/core/layout/layout.component.d.ts |    52 +
 .../@covalent/core/layout/layout.component.html |    13 +
 .../@covalent/core/layout/layout.component.js   |    92 +
 .../core/layout/layout.component.js.map         |     1 +
 .../core/layout/layout.component.metadata.json  |     1 +
 .../@covalent/core/layout/layout.component.scss |    20 +
 .../core/layout/layout.directives.d.ts          |    18 +
 .../@covalent/core/layout/layout.directives.js  |   101 +
 .../core/layout/layout.directives.js.map        |     1 +
 .../core/layout/layout.directives.metadata.json |     1 +
 .../@covalent/core/layout/layout.module.d.ts    |    13 +
 .../@covalent/core/layout/layout.module.js      |    63 +
 .../@covalent/core/layout/layout.module.js.map  |     1 +
 .../core/layout/layout.module.metadata.json     |     1 +
 .../navigation-drawer.component.css             |    14 +
 .../navigation-drawer.component.css.map         |     1 +
 .../navigation-drawer.component.d.ts            |   106 +
 .../navigation-drawer.component.html            |    30 +
 .../navigation-drawer.component.js              |   207 +
 .../navigation-drawer.component.js.map          |     1 +
 .../navigation-drawer.component.metadata.json   |     1 +
 .../navigation-drawer.component.scss            |    17 +
 .../@covalent/core/loading/_loading-theme.scss  |    10 +
 .../loading/directives/loading.directive.d.ts   |    71 +
 .../loading/directives/loading.directive.js     |   198 +
 .../loading/directives/loading.directive.js.map |     1 +
 .../directives/loading.directive.metadata.json  |     1 +
 .../core/loading/loading.component.css          |    20 +
 .../core/loading/loading.component.css.map      |     1 +
 .../core/loading/loading.component.d.ts         |    79 +
 .../core/loading/loading.component.html         |    23 +
 .../@covalent/core/loading/loading.component.js |   171 +
 .../core/loading/loading.component.js.map       |     1 +
 .../loading/loading.component.metadata.json     |     1 +
 .../core/loading/loading.component.scss         |    24 +
 .../@covalent/core/loading/loading.module.d.ts  |     4 +
 .../@covalent/core/loading/loading.module.js    |    50 +
 .../core/loading/loading.module.js.map          |     1 +
 .../core/loading/loading.module.metadata.json   |     1 +
 .../core/loading/services/loading.factory.d.ts  |    67 +
 .../core/loading/services/loading.factory.js    |   190 +
 .../loading/services/loading.factory.js.map     |     1 +
 .../services/loading.factory.metadata.json      |     1 +
 .../core/loading/services/loading.service.d.ts  |   118 +
 .../core/loading/services/loading.service.js    |   223 +
 .../loading/services/loading.service.js.map     |     1 +
 .../services/loading.service.metadata.json      |     1 +
 .../directives/media-toggle.directive.d.ts      |    42 +
 .../media/directives/media-toggle.directive.js  |   141 +
 .../directives/media-toggle.directive.js.map    |     1 +
 .../media-toggle.directive.metadata.json        |     1 +
 .../@covalent/core/media/media.module.d.ts      |     5 +
 .../@covalent/core/media/media.module.js        |    32 +
 .../@covalent/core/media/media.module.js.map    |     1 +
 .../core/media/media.module.metadata.json       |     1 +
 .../core/media/services/media.service.d.ts      |    33 +
 .../core/media/services/media.service.js        |   114 +
 .../core/media/services/media.service.js.map    |     1 +
 .../media/services/media.service.metadata.json  |     1 +
 .../@covalent/core/menu/menu.component.css      |    53 +
 .../@covalent/core/menu/menu.component.css.map  |     1 +
 .../@covalent/core/menu/menu.component.d.ts     |     2 +
 .../@covalent/core/menu/menu.component.html     |     9 +
 .../@covalent/core/menu/menu.component.js       |    16 +
 .../@covalent/core/menu/menu.component.js.map   |     1 +
 .../core/menu/menu.component.metadata.json      |     1 +
 .../@covalent/core/menu/menu.component.scss     |    36 +
 .../@covalent/core/menu/menu.module.d.ts        |     3 +
 node_modules/@covalent/core/menu/menu.module.js |    31 +
 .../@covalent/core/menu/menu.module.js.map      |     1 +
 .../core/menu/menu.module.metadata.json         |     1 +
 .../@covalent/core/message/_message-theme.scss  |    22 +
 .../core/message/message.component.css          |     6 +
 .../core/message/message.component.css.map      |     1 +
 .../core/message/message.component.d.ts         |    98 +
 .../core/message/message.component.html         |    14 +
 .../@covalent/core/message/message.component.js |   265 +
 .../core/message/message.component.js.map       |     1 +
 .../message/message.component.metadata.json     |     1 +
 .../core/message/message.component.scss         |     6 +
 .../@covalent/core/message/message.module.d.ts  |     3 +
 .../@covalent/core/message/message.module.js    |    31 +
 .../core/message/message.module.js.map          |     1 +
 .../core/message/message.module.metadata.json   |     1 +
 .../_notification-count-theme.scss              |    27 +
 .../notification-count.component.css            |    64 +
 .../notification-count.component.css.map        |     1 +
 .../notification-count.component.d.ts           |    65 +
 .../notification-count.component.html           |    14 +
 .../notification-count.component.js             |   167 +
 .../notification-count.component.js.map         |     1 +
 .../notification-count.component.metadata.json  |     1 +
 .../notification-count.component.scss           |    89 +
 .../notifications/notifications.module.d.ts     |     3 +
 .../core/notifications/notifications.module.js  |    28 +
 .../notifications/notifications.module.js.map   |     1 +
 .../notifications.module.metadata.json          |     1 +
 node_modules/@covalent/core/package.json        |    97 +
 .../core/paging/_paging-bar-theme.scss          |    15 +
 .../core/paging/paging-bar.component.css        |    11 +
 .../core/paging/paging-bar.component.css.map    |     1 +
 .../core/paging/paging-bar.component.d.ts       |   111 +
 .../core/paging/paging-bar.component.html       |    20 +
 .../core/paging/paging-bar.component.js         |   296 +
 .../core/paging/paging-bar.component.js.map     |     1 +
 .../paging/paging-bar.component.metadata.json   |     1 +
 .../core/paging/paging-bar.component.scss       |    13 +
 .../@covalent/core/paging/paging.module.d.ts    |     3 +
 .../@covalent/core/paging/paging.module.js      |    28 +
 .../@covalent/core/paging/paging.module.js.map  |     1 +
 .../core/paging/paging.module.metadata.json     |     1 +
 .../search/search-box/search-box.component.css  |    10 +
 .../search-box/search-box.component.css.map     |     1 +
 .../search/search-box/search-box.component.d.ts |    57 +
 .../search/search-box/search-box.component.html |    15 +
 .../search/search-box/search-box.component.js   |   143 +
 .../search-box/search-box.component.js.map      |     1 +
 .../search-box.component.metadata.json          |     1 +
 .../search/search-box/search-box.component.scss |    12 +
 .../search-input/search-input.component.css     |     6 +
 .../search-input/search-input.component.css.map |     1 +
 .../search-input/search-input.component.d.ts    |    55 +
 .../search-input/search-input.component.html    |    19 +
 .../search-input/search-input.component.js      |   145 +
 .../search-input/search-input.component.js.map  |     1 +
 .../search-input.component.metadata.json        |     1 +
 .../search-input/search-input.component.scss    |     8 +
 .../@covalent/core/search/search.module.d.ts    |     4 +
 .../@covalent/core/search/search.module.js      |    35 +
 .../@covalent/core/search/search.module.js.map  |     1 +
 .../core/search/search.module.metadata.json     |     1 +
 .../@covalent/core/steps/_steps-theme.scss      |    70 +
 .../steps/step-body/step-body.component.css     |     6 +
 .../steps/step-body/step-body.component.css.map |     1 +
 .../steps/step-body/step-body.component.d.ts    |    18 +
 .../steps/step-body/step-body.component.html    |    18 +
 .../core/steps/step-body/step-body.component.js |    41 +
 .../steps/step-body/step-body.component.js.map  |     1 +
 .../step-body/step-body.component.metadata.json |     1 +
 .../steps/step-body/step-body.component.scss    |     6 +
 .../steps/step-header/step-header.component.css |    57 +
 .../step-header/step-header.component.css.map   |     1 +
 .../step-header/step-header.component.d.ts      |    30 +
 .../step-header/step-header.component.html      |    38 +
 .../steps/step-header/step-header.component.js  |    60 +
 .../step-header/step-header.component.js.map    |     1 +
 .../step-header.component.metadata.json         |     1 +
 .../step-header/step-header.component.scss      |    78 +
 .../@covalent/core/steps/step.component.d.ts    |    95 +
 .../@covalent/core/steps/step.component.html    |     3 +
 .../@covalent/core/steps/step.component.js      |   245 +
 .../@covalent/core/steps/step.component.js.map  |     1 +
 .../core/steps/step.component.metadata.json     |     1 +
 .../@covalent/core/steps/steps.component.css    |    36 +
 .../core/steps/steps.component.css.map          |     1 +
 .../@covalent/core/steps/steps.component.d.ts   |    59 +
 .../@covalent/core/steps/steps.component.html   |    42 +
 .../@covalent/core/steps/steps.component.js     |   154 +
 .../@covalent/core/steps/steps.component.js.map |     1 +
 .../core/steps/steps.component.metadata.json    |     1 +
 .../@covalent/core/steps/steps.component.scss   |    42 +
 .../@covalent/core/steps/steps.module.d.ts      |     4 +
 .../@covalent/core/steps/steps.module.js        |    48 +
 .../@covalent/core/steps/steps.module.js.map    |     1 +
 .../core/steps/steps.module.metadata.json       |     1 +
 .../@covalent/core/theming/_all-theme.scss      |    28 +
 .../theming/prebuilt/blue-grey-deep-orange.css  |  1709 +
 .../prebuilt/blue-grey-deep-orange.css.map      |     1 +
 .../theming/prebuilt/blue-grey-deep-orange.scss |    13 +
 .../core/theming/prebuilt/blue-orange.css       |  1709 +
 .../core/theming/prebuilt/blue-orange.css.map   |     1 +
 .../core/theming/prebuilt/blue-orange.scss      |    13 +
 .../core/theming/prebuilt/indigo-pink.css       |  1709 +
 .../core/theming/prebuilt/indigo-pink.css.map   |     1 +
 .../core/theming/prebuilt/indigo-pink.scss      |    13 +
 .../core/theming/prebuilt/orange-light-blue.css |  1709 +
 .../theming/prebuilt/orange-light-blue.css.map  |     1 +
 .../theming/prebuilt/orange-light-blue.scss     |    13 +
 .../core/theming/prebuilt/teal-orange.css       |  1709 +
 .../core/theming/prebuilt/teal-orange.css.map   |     1 +
 .../core/theming/prebuilt/teal-orange.scss      |    13 +
 .../virtual-scroll-container.component.css      |     8 +
 .../virtual-scroll-container.component.css.map  |     1 +
 .../virtual-scroll-container.component.d.ts     |    61 +
 .../virtual-scroll-container.component.html     |    22 +
 .../virtual-scroll-container.component.js       |   225 +
 .../virtual-scroll-container.component.js.map   |     1 +
 ...ual-scroll-container.component.metadata.json |     1 +
 .../virtual-scroll-container.component.scss     |     7 +
 .../virtual-scroll-row.directive.d.ts           |     5 +
 .../virtual-scroll-row.directive.js             |    17 +
 .../virtual-scroll-row.directive.js.map         |     1 +
 .../virtual-scroll-row.directive.metadata.json  |     1 +
 .../virtual-scroll/virtual-scroll.module.d.ts   |     5 +
 .../virtual-scroll/virtual-scroll.module.js     |    30 +
 .../virtual-scroll/virtual-scroll.module.js.map |     1 +
 .../virtual-scroll.module.metadata.json         |     1 +
 node_modules/abbrev/abbrev.js                   |    61 +
 node_modules/abbrev/package.json                |    62 +
 node_modules/ajv/.tonic_example.js              |    20 +
 node_modules/ajv/dist/ajv.bundle.js             |  7345 +++++
 node_modules/ajv/dist/ajv.min.js                |     3 +
 node_modules/ajv/dist/ajv.min.js.map            |     1 +
 node_modules/ajv/dist/nodent.min.js             |     2 +
 node_modules/ajv/dist/regenerator.min.js        |     2 +
 node_modules/ajv/lib/$data.js                   |    49 +
 node_modules/ajv/lib/ajv.d.ts                   |   358 +
 node_modules/ajv/lib/ajv.js                     |   502 +
 node_modules/ajv/lib/cache.js                   |    26 +
 node_modules/ajv/lib/compile/_rules.js          |    31 +
 node_modules/ajv/lib/compile/async.js           |    90 +
 node_modules/ajv/lib/compile/equal.js           |     3 +
 node_modules/ajv/lib/compile/error_classes.js   |    34 +
 node_modules/ajv/lib/compile/formats.js         |   135 +
 node_modules/ajv/lib/compile/index.js           |   380 +
 node_modules/ajv/lib/compile/resolve.js         |   271 +
 node_modules/ajv/lib/compile/rules.js           |    58 +
 node_modules/ajv/lib/compile/schema_obj.js      |     9 +
 node_modules/ajv/lib/compile/ucs2length.js      |    20 +
 node_modules/ajv/lib/compile/util.js            |   267 +
 node_modules/ajv/lib/dot/_limit.jst             |    96 +
 node_modules/ajv/lib/dot/_limitItems.jst        |    10 +
 node_modules/ajv/lib/dot/_limitLength.jst       |    10 +
 node_modules/ajv/lib/dot/_limitProperties.jst   |    10 +
 node_modules/ajv/lib/dot/allOf.jst              |    34 +
 node_modules/ajv/lib/dot/anyOf.jst              |    48 +
 node_modules/ajv/lib/dot/coerce.def             |    61 +
 node_modules/ajv/lib/dot/const.jst              |    11 +
 node_modules/ajv/lib/dot/contains.jst           |    57 +
 node_modules/ajv/lib/dot/custom.jst             |   191 +
 node_modules/ajv/lib/dot/defaults.def           |    32 +
 node_modules/ajv/lib/dot/definitions.def        |   199 +
 node_modules/ajv/lib/dot/dependencies.jst       |    80 +
 node_modules/ajv/lib/dot/enum.jst               |    30 +
 node_modules/ajv/lib/dot/errors.def             |   194 +
 node_modules/ajv/lib/dot/format.jst             |   106 +
 node_modules/ajv/lib/dot/items.jst              |   100 +
 node_modules/ajv/lib/dot/missing.def            |    39 +
 node_modules/ajv/lib/dot/multipleOf.jst         |    20 +
 node_modules/ajv/lib/dot/not.jst                |    43 +
 node_modules/ajv/lib/dot/oneOf.jst              |    44 +
 node_modules/ajv/lib/dot/pattern.jst            |    14 +
 node_modules/ajv/lib/dot/properties.jst         |   327 +
 node_modules/ajv/lib/dot/propertyNames.jst      |    54 +
 node_modules/ajv/lib/dot/ref.jst                |    85 +
 node_modules/ajv/lib/dot/required.jst           |   108 +
 node_modules/ajv/lib/dot/uniqueItems.jst        |    38 +
 node_modules/ajv/lib/dot/validate.jst           |   272 +
 node_modules/ajv/lib/dotjs/_limit.js            |   149 +
 node_modules/ajv/lib/dotjs/_limitItems.js       |    76 +
 node_modules/ajv/lib/dotjs/_limitLength.js      |    81 +
 node_modules/ajv/lib/dotjs/_limitProperties.js  |    76 +
 node_modules/ajv/lib/dotjs/allOf.js             |    43 +
 node_modules/ajv/lib/dotjs/anyOf.js             |    73 +
 node_modules/ajv/lib/dotjs/const.js             |    55 +
 node_modules/ajv/lib/dotjs/contains.js          |    81 +
 node_modules/ajv/lib/dotjs/custom.js            |   226 +
 node_modules/ajv/lib/dotjs/dependencies.js      |   167 +
 node_modules/ajv/lib/dotjs/enum.js              |    65 +
 node_modules/ajv/lib/dotjs/format.js            |   149 +
 node_modules/ajv/lib/dotjs/items.js             |   140 +
 node_modules/ajv/lib/dotjs/multipleOf.js        |    76 +
 node_modules/ajv/lib/dotjs/not.js               |    83 +
 node_modules/ajv/lib/dotjs/oneOf.js             |    70 +
 node_modules/ajv/lib/dotjs/pattern.js           |    74 +
 node_modules/ajv/lib/dotjs/properties.js        |   468 +
 node_modules/ajv/lib/dotjs/propertyNames.js     |    81 +
 node_modules/ajv/lib/dotjs/ref.js               |   123 +
 node_modules/ajv/lib/dotjs/required.js          |   268 +
 node_modules/ajv/lib/dotjs/uniqueItems.js       |    71 +
 node_modules/ajv/lib/dotjs/validate.js          |   458 +
 node_modules/ajv/lib/keyword.js                 |   135 +
 node_modules/ajv/lib/patternGroups.js           |    36 +
 node_modules/ajv/lib/refs/$data.json            |    17 +
 .../ajv/lib/refs/json-schema-draft-04.json      |   150 +
 .../ajv/lib/refs/json-schema-draft-06.json      |   154 +
 node_modules/ajv/lib/refs/json-schema-v5.json   |   250 +
 node_modules/ajv/package.json                   |   134 +
 node_modules/amdefine/amdefine.js               |   301 +
 node_modules/amdefine/intercept.js              |    36 +
 node_modules/amdefine/package.json              |    52 +
 node_modules/ansi-regex/index.js                |     4 +
 node_modules/ansi-regex/package.json            |   113 +
 node_modules/ansi-styles/index.js               |    65 +
 node_modules/ansi-styles/package.json           |    94 +
 node_modules/aproba/index.js                    |   105 +
 node_modules/aproba/package.json                |    66 +
 node_modules/archiver-utils/file.js             |   206 +
 node_modules/archiver-utils/index.js            |   156 +
 .../node_modules/glob/changelog.md              |    67 +
 .../archiver-utils/node_modules/glob/common.js  |   240 +
 .../archiver-utils/node_modules/glob/glob.js    |   790 +
 .../node_modules/glob/package.json              |    80 +
 .../archiver-utils/node_modules/glob/sync.js    |   486 +
 .../node_modules/graceful-fs/fs.js              |    21 +
 .../node_modules/graceful-fs/graceful-fs.js     |   262 +
 .../node_modules/graceful-fs/legacy-streams.js  |   118 +
 .../node_modules/graceful-fs/package.json       |    80 +
 .../node_modules/graceful-fs/polyfills.js       |   330 +
 .../node_modules/lodash/_DataView.js            |     7 +
 .../archiver-utils/node_modules/lodash/_Hash.js |    32 +
 .../node_modules/lodash/_LazyWrapper.js         |    28 +
 .../node_modules/lodash/_ListCache.js           |    32 +
 .../node_modules/lodash/_LodashWrapper.js       |    22 +
 .../archiver-utils/node_modules/lodash/_Map.js  |     7 +
 .../node_modules/lodash/_MapCache.js            |    32 +
 .../node_modules/lodash/_Promise.js             |     7 +
 .../archiver-utils/node_modules/lodash/_Set.js  |     7 +
 .../node_modules/lodash/_SetCache.js            |    27 +
 .../node_modules/lodash/_Stack.js               |    27 +
 .../node_modules/lodash/_Symbol.js              |     6 +
 .../node_modules/lodash/_Uint8Array.js          |     6 +
 .../node_modules/lodash/_WeakMap.js             |     7 +
 .../node_modules/lodash/_apply.js               |    21 +
 .../node_modules/lodash/_arrayAggregator.js     |    22 +
 .../node_modules/lodash/_arrayEach.js           |    22 +
 .../node_modules/lodash/_arrayEachRight.js      |    21 +
 .../node_modules/lodash/_arrayEvery.js          |    23 +
 .../node_modules/lodash/_arrayFilter.js         |    25 +
 .../node_modules/lodash/_arrayIncludes.js       |    17 +
 .../node_modules/lodash/_arrayIncludesWith.js   |    22 +
 .../node_modules/lodash/_arrayLikeKeys.js       |    49 +
 .../node_modules/lodash/_arrayMap.js            |    21 +
 .../node_modules/lodash/_arrayPush.js           |    20 +
 .../node_modules/lodash/_arrayReduce.js         |    26 +
 .../node_modules/lodash/_arrayReduceRight.js    |    24 +
 .../node_modules/lodash/_arraySample.js         |    15 +
 .../node_modules/lodash/_arraySampleSize.js     |    17 +
 .../node_modules/lodash/_arrayShuffle.js        |    15 +
 .../node_modules/lodash/_arraySome.js           |    23 +
 .../node_modules/lodash/_asciiSize.js           |    12 +
 .../node_modules/lodash/_asciiToArray.js        |    12 +
 .../node_modules/lodash/_asciiWords.js          |    15 +
 .../node_modules/lodash/_assignMergeValue.js    |    20 +
 .../node_modules/lodash/_assignValue.js         |    28 +
 .../node_modules/lodash/_assocIndexOf.js        |    21 +
 .../node_modules/lodash/_baseAggregator.js      |    21 +
 .../node_modules/lodash/_baseAssign.js          |    17 +
 .../node_modules/lodash/_baseAssignIn.js        |    17 +
 .../node_modules/lodash/_baseAssignValue.js     |    25 +
 .../node_modules/lodash/_baseAt.js              |    23 +
 .../node_modules/lodash/_baseClamp.js           |    22 +
 .../node_modules/lodash/_baseClone.js           |   171 +
 .../node_modules/lodash/_baseConforms.js        |    18 +
 .../node_modules/lodash/_baseConformsTo.js      |    27 +
 .../node_modules/lodash/_baseCreate.js          |    30 +
 .../node_modules/lodash/_baseDelay.js           |    21 +
 .../node_modules/lodash/_baseDifference.js      |    67 +
 .../node_modules/lodash/_baseEach.js            |    14 +
 .../node_modules/lodash/_baseEachRight.js       |    14 +
 .../node_modules/lodash/_baseEvery.js           |    21 +
 .../node_modules/lodash/_baseExtremum.js        |    32 +
 .../node_modules/lodash/_baseFill.js            |    32 +
 .../node_modules/lodash/_baseFilter.js          |    21 +
 .../node_modules/lodash/_baseFindIndex.js       |    24 +
 .../node_modules/lodash/_baseFindKey.js         |    23 +
 .../node_modules/lodash/_baseFlatten.js         |    38 +
 .../node_modules/lodash/_baseFor.js             |    16 +
 .../node_modules/lodash/_baseForOwn.js          |    16 +
 .../node_modules/lodash/_baseForOwnRight.js     |    16 +
 .../node_modules/lodash/_baseForRight.js        |    15 +
 .../node_modules/lodash/_baseFunctions.js       |    19 +
 .../node_modules/lodash/_baseGet.js             |    24 +
 .../node_modules/lodash/_baseGetAllKeys.js      |    20 +
 .../node_modules/lodash/_baseGetTag.js          |    28 +
 .../node_modules/lodash/_baseGt.js              |    14 +
 .../node_modules/lodash/_baseHas.js             |    19 +
 .../node_modules/lodash/_baseHasIn.js           |    13 +
 .../node_modules/lodash/_baseInRange.js         |    18 +
 .../node_modules/lodash/_baseIndexOf.js         |    20 +
 .../node_modules/lodash/_baseIndexOfWith.js     |    23 +
 .../node_modules/lodash/_baseIntersection.js    |    74 +
 .../node_modules/lodash/_baseInverter.js        |    21 +
 .../node_modules/lodash/_baseInvoke.js          |    24 +
 .../node_modules/lodash/_baseIsArguments.js     |    18 +
 .../node_modules/lodash/_baseIsArrayBuffer.js   |    17 +
 .../node_modules/lodash/_baseIsDate.js          |    18 +
 .../node_modules/lodash/_baseIsEqual.js         |    28 +
 .../node_modules/lodash/_baseIsEqualDeep.js     |    83 +
 .../node_modules/lodash/_baseIsMap.js           |    18 +
 .../node_modules/lodash/_baseIsMatch.js         |    62 +
 .../node_modules/lodash/_baseIsNaN.js           |    12 +
 .../node_modules/lodash/_baseIsNative.js        |    47 +
 .../node_modules/lodash/_baseIsRegExp.js        |    18 +
 .../node_modules/lodash/_baseIsSet.js           |    18 +
 .../node_modules/lodash/_baseIsTypedArray.js    |    60 +
 .../node_modules/lodash/_baseIteratee.js        |    31 +
 .../node_modules/lodash/_baseKeys.js            |    30 +
 .../node_modules/lodash/_baseKeysIn.js          |    33 +
 .../node_modules/lodash/_baseLodash.js          |    10 +
 .../node_modules/lodash/_baseLt.js              |    14 +
 .../node_modules/lodash/_baseMap.js             |    22 +
 .../node_modules/lodash/_baseMatches.js         |    22 +
 .../node_modules/lodash/_baseMatchesProperty.js |    33 +
 .../node_modules/lodash/_baseMean.js            |    20 +
 .../node_modules/lodash/_baseMerge.js           |    42 +
 .../node_modules/lodash/_baseMergeDeep.js       |    94 +
 .../node_modules/lodash/_baseNth.js             |    20 +
 .../node_modules/lodash/_baseOrderBy.js         |    34 +
 .../node_modules/lodash/_basePick.js            |    19 +
 .../node_modules/lodash/_basePickBy.js          |    30 +
 .../node_modules/lodash/_baseProperty.js        |    14 +
 .../node_modules/lodash/_basePropertyDeep.js    |    16 +
 .../node_modules/lodash/_basePropertyOf.js      |    14 +
 .../node_modules/lodash/_basePullAll.js         |    51 +
 .../node_modules/lodash/_basePullAt.js          |    37 +
 .../node_modules/lodash/_baseRandom.js          |    18 +
 .../node_modules/lodash/_baseRange.js           |    28 +
 .../node_modules/lodash/_baseReduce.js          |    23 +
 .../node_modules/lodash/_baseRepeat.js          |    35 +
 .../node_modules/lodash/_baseRest.js            |    17 +
 .../node_modules/lodash/_baseSample.js          |    15 +
 .../node_modules/lodash/_baseSampleSize.js      |    18 +
 .../node_modules/lodash/_baseSet.js             |    47 +
 .../node_modules/lodash/_baseSetData.js         |    17 +
 .../node_modules/lodash/_baseSetToString.js     |    22 +
 .../node_modules/lodash/_baseShuffle.js         |    15 +
 .../node_modules/lodash/_baseSlice.js           |    31 +
 .../node_modules/lodash/_baseSome.js            |    22 +
 .../node_modules/lodash/_baseSortBy.js          |    21 +
 .../node_modules/lodash/_baseSortedIndex.js     |    42 +
 .../node_modules/lodash/_baseSortedIndexBy.js   |    64 +
 .../node_modules/lodash/_baseSortedUniq.js      |    30 +
 .../node_modules/lodash/_baseSum.js             |    24 +
 .../node_modules/lodash/_baseTimes.js           |    20 +
 .../node_modules/lodash/_baseToNumber.js        |    24 +
 .../node_modules/lodash/_baseToPairs.js         |    18 +
 .../node_modules/lodash/_baseToString.js        |    37 +
 .../node_modules/lodash/_baseUnary.js           |    14 +
 .../node_modules/lodash/_baseUniq.js            |    72 +
 .../node_modules/lodash/_baseUnset.js           |    20 +
 .../node_modules/lodash/_baseUpdate.js          |    18 +
 .../node_modules/lodash/_baseValues.js          |    19 +
 .../node_modules/lodash/_baseWhile.js           |    26 +
 .../node_modules/lodash/_baseWrapperValue.js    |    25 +
 .../node_modules/lodash/_baseXor.js             |    36 +
 .../node_modules/lodash/_baseZipObject.js       |    23 +
 .../node_modules/lodash/_cacheHas.js            |    13 +
 .../node_modules/lodash/_castArrayLikeObject.js |    14 +
 .../node_modules/lodash/_castFunction.js        |    14 +
 .../node_modules/lodash/_castPath.js            |    21 +
 .../node_modules/lodash/_castRest.js            |    14 +
 .../node_modules/lodash/_castSlice.js           |    18 +
 .../node_modules/lodash/_charsEndIndex.js       |    19 +
 .../node_modules/lodash/_charsStartIndex.js     |    20 +
 .../node_modules/lodash/_cloneArrayBuffer.js    |    16 +
 .../node_modules/lodash/_cloneBuffer.js         |    35 +
 .../node_modules/lodash/_cloneDataView.js       |    16 +
 .../node_modules/lodash/_cloneRegExp.js         |    17 +
 .../node_modules/lodash/_cloneSymbol.js         |    18 +
 .../node_modules/lodash/_cloneTypedArray.js     |    16 +
 .../node_modules/lodash/_compareAscending.js    |    41 +
 .../node_modules/lodash/_compareMultiple.js     |    44 +
 .../node_modules/lodash/_composeArgs.js         |    39 +
 .../node_modules/lodash/_composeArgsRight.js    |    41 +
 .../node_modules/lodash/_copyArray.js           |    20 +
 .../node_modules/lodash/_copyObject.js          |    40 +
 .../node_modules/lodash/_copySymbols.js         |    16 +
 .../node_modules/lodash/_copySymbolsIn.js       |    16 +
 .../node_modules/lodash/_coreJsData.js          |     6 +
 .../node_modules/lodash/_countHolders.js        |    21 +
 .../node_modules/lodash/_createAggregator.js    |    23 +
 .../node_modules/lodash/_createAssigner.js      |    37 +
 .../node_modules/lodash/_createBaseEach.js      |    32 +
 .../node_modules/lodash/_createBaseFor.js       |    25 +
 .../node_modules/lodash/_createBind.js          |    28 +
 .../node_modules/lodash/_createCaseFirst.js     |    33 +
 .../node_modules/lodash/_createCompounder.js    |    24 +
 .../node_modules/lodash/_createCtor.js          |    37 +
 .../node_modules/lodash/_createCurry.js         |    46 +
 .../node_modules/lodash/_createFind.js          |    25 +
 .../node_modules/lodash/_createFlow.js          |    78 +
 .../node_modules/lodash/_createHybrid.js        |    92 +
 .../node_modules/lodash/_createInverter.js      |    17 +
 .../node_modules/lodash/_createMathOperation.js |    38 +
 .../node_modules/lodash/_createOver.js          |    27 +
 .../node_modules/lodash/_createPadding.js       |    33 +
 .../node_modules/lodash/_createPartial.js       |    43 +
 .../node_modules/lodash/_createRange.js         |    30 +
 .../node_modules/lodash/_createRecurry.js       |    56 +
 .../lodash/_createRelationalOperation.js        |    20 +
 .../node_modules/lodash/_createRound.js         |    33 +
 .../node_modules/lodash/_createSet.js           |    19 +
 .../node_modules/lodash/_createToPairs.js       |    30 +
 .../node_modules/lodash/_createWrap.js          |   106 +
 .../lodash/_customDefaultsAssignIn.js           |    29 +
 .../node_modules/lodash/_customDefaultsMerge.js |    28 +
 .../node_modules/lodash/_customOmitClone.js     |    16 +
 .../node_modules/lodash/_deburrLetter.js        |    71 +
 .../node_modules/lodash/_defineProperty.js      |    11 +
 .../node_modules/lodash/_equalArrays.js         |    83 +
 .../node_modules/lodash/_equalByTag.js          |   112 +
 .../node_modules/lodash/_equalObjects.js        |    89 +
 .../node_modules/lodash/_escapeHtmlChar.js      |    21 +
 .../node_modules/lodash/_escapeStringChar.js    |    22 +
 .../node_modules/lodash/_flatRest.js            |    16 +
 .../node_modules/lodash/_freeGlobal.js          |     4 +
 .../node_modules/lodash/_getAllKeys.js          |    16 +
 .../node_modules/lodash/_getAllKeysIn.js        |    17 +
 .../node_modules/lodash/_getData.js             |    15 +
 .../node_modules/lodash/_getFuncName.js         |    31 +
 .../node_modules/lodash/_getHolder.js           |    13 +
 .../node_modules/lodash/_getMapData.js          |    18 +
 .../node_modules/lodash/_getMatchData.js        |    24 +
 .../node_modules/lodash/_getNative.js           |    17 +
 .../node_modules/lodash/_getPrototype.js        |     6 +
 .../node_modules/lodash/_getRawTag.js           |    46 +
 .../node_modules/lodash/_getSymbols.js          |    30 +
 .../node_modules/lodash/_getSymbolsIn.js        |    25 +
 .../node_modules/lodash/_getTag.js              |    58 +
 .../node_modules/lodash/_getValue.js            |    13 +
 .../node_modules/lodash/_getView.js             |    33 +
 .../node_modules/lodash/_getWrapDetails.js      |    17 +
 .../node_modules/lodash/_hasPath.js             |    39 +
 .../node_modules/lodash/_hasUnicode.js          |    26 +
 .../node_modules/lodash/_hasUnicodeWord.js      |    15 +
 .../node_modules/lodash/_hashClear.js           |    15 +
 .../node_modules/lodash/_hashDelete.js          |    17 +
 .../node_modules/lodash/_hashGet.js             |    30 +
 .../node_modules/lodash/_hashHas.js             |    23 +
 .../node_modules/lodash/_hashSet.js             |    23 +
 .../node_modules/lodash/_initCloneArray.js      |    26 +
 .../node_modules/lodash/_initCloneByTag.js      |    77 +
 .../node_modules/lodash/_initCloneObject.js     |    18 +
 .../node_modules/lodash/_insertWrapDetails.js   |    23 +
 .../node_modules/lodash/_isFlattenable.js       |    20 +
 .../node_modules/lodash/_isIndex.js             |    25 +
 .../node_modules/lodash/_isIterateeCall.js      |    30 +
 .../node_modules/lodash/_isKey.js               |    29 +
 .../node_modules/lodash/_isKeyable.js           |    15 +
 .../node_modules/lodash/_isLaziable.js          |    28 +
 .../node_modules/lodash/_isMaskable.js          |    14 +
 .../node_modules/lodash/_isMasked.js            |    20 +
 .../node_modules/lodash/_isPrototype.js         |    18 +
 .../node_modules/lodash/_isStrictComparable.js  |    15 +
 .../node_modules/lodash/_iteratorToArray.js     |    18 +
 .../node_modules/lodash/_lazyClone.js           |    23 +
 .../node_modules/lodash/_lazyReverse.js         |    23 +
 .../node_modules/lodash/_lazyValue.js           |    69 +
 .../node_modules/lodash/_listCacheClear.js      |    13 +
 .../node_modules/lodash/_listCacheDelete.js     |    35 +
 .../node_modules/lodash/_listCacheGet.js        |    19 +
 .../node_modules/lodash/_listCacheHas.js        |    16 +
 .../node_modules/lodash/_listCacheSet.js        |    26 +
 .../node_modules/lodash/_mapCacheClear.js       |    21 +
 .../node_modules/lodash/_mapCacheDelete.js      |    18 +
 .../node_modules/lodash/_mapCacheGet.js         |    16 +
 .../node_modules/lodash/_mapCacheHas.js         |    16 +
 .../node_modules/lodash/_mapCacheSet.js         |    22 +
 .../node_modules/lodash/_mapToArray.js          |    18 +
 .../lodash/_matchesStrictComparable.js          |    20 +
 .../node_modules/lodash/_memoizeCapped.js       |    26 +
 .../node_modules/lodash/_mergeData.js           |    90 +
 .../node_modules/lodash/_metaMap.js             |     6 +
 .../node_modules/lodash/_nativeCreate.js        |     6 +
 .../node_modules/lodash/_nativeKeys.js          |     6 +
 .../node_modules/lodash/_nativeKeysIn.js        |    20 +
 .../node_modules/lodash/_nodeUtil.js            |    30 +
 .../node_modules/lodash/_objectToString.js      |    22 +
 .../node_modules/lodash/_overArg.js             |    15 +
 .../node_modules/lodash/_overRest.js            |    36 +
 .../node_modules/lodash/_parent.js              |    16 +
 .../node_modules/lodash/_reEscape.js            |     4 +
 .../node_modules/lodash/_reEvaluate.js          |     4 +
 .../node_modules/lodash/_reInterpolate.js       |     4 +
 .../node_modules/lodash/_realNames.js           |     4 +
 .../node_modules/lodash/_reorder.js             |    29 +
 .../node_modules/lodash/_replaceHolders.js      |    29 +
 .../archiver-utils/node_modules/lodash/_root.js |     9 +
 .../node_modules/lodash/_safeGet.js             |    15 +
 .../node_modules/lodash/_setCacheAdd.js         |    19 +
 .../node_modules/lodash/_setCacheHas.js         |    14 +
 .../node_modules/lodash/_setData.js             |    20 +
 .../node_modules/lodash/_setToArray.js          |    18 +
 .../node_modules/lodash/_setToPairs.js          |    18 +
 .../node_modules/lodash/_setToString.js         |    14 +
 .../node_modules/lodash/_setWrapToString.js     |    21 +
 .../node_modules/lodash/_shortOut.js            |    37 +
 .../node_modules/lodash/_shuffleSelf.js         |    28 +
 .../node_modules/lodash/_stackClear.js          |    15 +
 .../node_modules/lodash/_stackDelete.js         |    18 +
 .../node_modules/lodash/_stackGet.js            |    14 +
 .../node_modules/lodash/_stackHas.js            |    14 +
 .../node_modules/lodash/_stackSet.js            |    34 +
 .../node_modules/lodash/_strictIndexOf.js       |    23 +
 .../node_modules/lodash/_strictLastIndexOf.js   |    21 +
 .../node_modules/lodash/_stringSize.js          |    18 +
 .../node_modules/lodash/_stringToArray.js       |    18 +
 .../node_modules/lodash/_stringToPath.js        |    27 +
 .../node_modules/lodash/_toKey.js               |    21 +
 .../node_modules/lodash/_toSource.js            |    26 +
 .../node_modules/lodash/_unescapeHtmlChar.js    |    21 +
 .../node_modules/lodash/_unicodeSize.js         |    44 +
 .../node_modules/lodash/_unicodeToArray.js      |    40 +
 .../node_modules/lodash/_unicodeWords.js        |    69 +
 .../node_modules/lodash/_updateWrapDetails.js   |    46 +
 .../node_modules/lodash/_wrapperClone.js        |    23 +
 .../archiver-utils/node_modules/lodash/add.js   |    22 +
 .../archiver-utils/node_modules/lodash/after.js |    42 +
 .../archiver-utils/node_modules/lodash/array.js |    67 +
 .../archiver-utils/node_modules/lodash/ary.js   |    29 +
 .../node_modules/lodash/assign.js               |    58 +
 .../node_modules/lodash/assignIn.js             |    40 +
 .../node_modules/lodash/assignInWith.js         |    38 +
 .../node_modules/lodash/assignWith.js           |    37 +
 .../archiver-utils/node_modules/lodash/at.js    |    23 +
 .../node_modules/lodash/attempt.js              |    35 +
 .../node_modules/lodash/before.js               |    40 +
 .../archiver-utils/node_modules/lodash/bind.js  |    57 +
 .../node_modules/lodash/bindAll.js              |    41 +
 .../node_modules/lodash/bindKey.js              |    68 +
 .../node_modules/lodash/camelCase.js            |    29 +
 .../node_modules/lodash/capitalize.js           |    23 +
 .../node_modules/lodash/castArray.js            |    44 +
 .../archiver-utils/node_modules/lodash/ceil.js  |    26 +
 .../archiver-utils/node_modules/lodash/chain.js |    38 +
 .../archiver-utils/node_modules/lodash/chunk.js |    50 +
 .../archiver-utils/node_modules/lodash/clamp.js |    39 +
 .../archiver-utils/node_modules/lodash/clone.js |    36 +
 .../node_modules/lodash/cloneDeep.js            |    29 +
 .../node_modules/lodash/cloneDeepWith.js        |    40 +
 .../node_modules/lodash/cloneWith.js            |    42 +
 .../node_modules/lodash/collection.js           |    30 +
 .../node_modules/lodash/commit.js               |    33 +
 .../node_modules/lodash/compact.js              |    31 +
 .../node_modules/lodash/concat.js               |    43 +
 .../archiver-utils/node_modules/lodash/cond.js  |    60 +
 .../node_modules/lodash/conforms.js             |    35 +
 .../node_modules/lodash/conformsTo.js           |    32 +
 .../node_modules/lodash/constant.js             |    26 +
 .../archiver-utils/node_modules/lodash/core.js  |  3854 +++
 .../node_modules/lodash/core.min.js             |    29 +
 .../node_modules/lodash/countBy.js              |    40 +
 .../node_modules/lodash/create.js               |    43 +
 .../archiver-utils/node_modules/lodash/curry.js |    57 +
 .../node_modules/lodash/curryRight.js           |    54 +
 .../archiver-utils/node_modules/lodash/date.js  |     3 +
 .../node_modules/lodash/debounce.js             |   190 +
 .../node_modules/lodash/deburr.js               |    45 +
 .../node_modules/lodash/defaultTo.js            |    25 +
 .../node_modules/lodash/defaults.js             |    64 +
 .../node_modules/lodash/defaultsDeep.js         |    30 +
 .../archiver-utils/node_modules/lodash/defer.js |    26 +
 .../archiver-utils/node_modules/lodash/delay.js |    28 +
 .../node_modules/lodash/difference.js           |    33 +
 .../node_modules/lodash/differenceBy.js         |    44 +
 .../node_modules/lodash/differenceWith.js       |    40 +
 .../node_modules/lodash/divide.js               |    22 +
 .../archiver-utils/node_modules/lodash/drop.js  |    38 +
 .../node_modules/lodash/dropRight.js            |    39 +
 .../node_modules/lodash/dropRightWhile.js       |    45 +
 .../node_modules/lodash/dropWhile.js            |    45 +
 .../archiver-utils/node_modules/lodash/each.js  |     1 +
 .../node_modules/lodash/eachRight.js            |     1 +
 .../node_modules/lodash/endsWith.js             |    43 +
 .../node_modules/lodash/entries.js              |     1 +
 .../node_modules/lodash/entriesIn.js            |     1 +
 .../archiver-utils/node_modules/lodash/eq.js    |    37 +
 .../node_modules/lodash/escape.js               |    43 +
 .../node_modules/lodash/escapeRegExp.js         |    32 +
 .../archiver-utils/node_modules/lodash/every.js |    56 +
 .../node_modules/lodash/extend.js               |     1 +
 .../node_modules/lodash/extendWith.js           |     1 +
 .../archiver-utils/node_modules/lodash/fill.js  |    45 +
 .../node_modules/lodash/filter.js               |    48 +
 .../archiver-utils/node_modules/lodash/find.js  |    42 +
 .../node_modules/lodash/findIndex.js            |    55 +
 .../node_modules/lodash/findKey.js              |    44 +
 .../node_modules/lodash/findLast.js             |    25 +
 .../node_modules/lodash/findLastIndex.js        |    59 +
 .../node_modules/lodash/findLastKey.js          |    44 +
 .../archiver-utils/node_modules/lodash/first.js |     1 +
 .../node_modules/lodash/flatMap.js              |    29 +
 .../node_modules/lodash/flatMapDeep.js          |    31 +
 .../node_modules/lodash/flatMapDepth.js         |    31 +
 .../node_modules/lodash/flatten.js              |    22 +
 .../node_modules/lodash/flattenDeep.js          |    25 +
 .../node_modules/lodash/flattenDepth.js         |    33 +
 .../archiver-utils/node_modules/lodash/flip.js  |    28 +
 .../archiver-utils/node_modules/lodash/floor.js |    26 +
 .../archiver-utils/node_modules/lodash/flow.js  |    27 +
 .../node_modules/lodash/flowRight.js            |    26 +
 .../node_modules/lodash/forEach.js              |    41 +
 .../node_modules/lodash/forEachRight.js         |    31 +
 .../archiver-utils/node_modules/lodash/forIn.js |    39 +
 .../node_modules/lodash/forInRight.js           |    37 +
 .../node_modules/lodash/forOwn.js               |    36 +
 .../node_modules/lodash/forOwnRight.js          |    34 +
 .../archiver-utils/node_modules/lodash/fp.js    |     2 +
 .../archiver-utils/node_modules/lodash/fp/F.js  |     1 +
 .../archiver-utils/node_modules/lodash/fp/T.js  |     1 +
 .../archiver-utils/node_modules/lodash/fp/__.js |     1 +
 .../node_modules/lodash/fp/_baseConvert.js      |   573 +
 .../node_modules/lodash/fp/_convertBrowser.js   |    18 +
 .../node_modules/lodash/fp/_falseOptions.js     |     7 +
 .../node_modules/lodash/fp/_mapping.js          |   368 +
 .../node_modules/lodash/fp/_util.js             |    16 +
 .../node_modules/lodash/fp/add.js               |     5 +
 .../node_modules/lodash/fp/after.js             |     5 +
 .../node_modules/lodash/fp/all.js               |     1 +
 .../node_modules/lodash/fp/allPass.js           |     1 +
 .../node_modules/lodash/fp/always.js            |     1 +
 .../node_modules/lodash/fp/any.js               |     1 +
 .../node_modules/lodash/fp/anyPass.js           |     1 +
 .../node_modules/lodash/fp/apply.js             |     1 +
 .../node_modules/lodash/fp/array.js             |     2 +
 .../node_modules/lodash/fp/ary.js               |     5 +
 .../node_modules/lodash/fp/assign.js            |     5 +
 .../node_modules/lodash/fp/assignAll.js         |     5 +
 .../node_modules/lodash/fp/assignAllWith.js     |     5 +
 .../node_modules/lodash/fp/assignIn.js          |     5 +
 .../node_modules/lodash/fp/assignInAll.js       |     5 +
 .../node_modules/lodash/fp/assignInAllWith.js   |     5 +
 .../node_modules/lodash/fp/assignInWith.js      |     5 +
 .../node_modules/lodash/fp/assignWith.js        |     5 +
 .../node_modules/lodash/fp/assoc.js             |     1 +
 .../node_modules/lodash/fp/assocPath.js         |     1 +
 .../archiver-utils/node_modules/lodash/fp/at.js |     5 +
 .../node_modules/lodash/fp/attempt.js           |     5 +
 .../node_modules/lodash/fp/before.js            |     5 +
 .../node_modules/lodash/fp/bind.js              |     5 +
 .../node_modules/lodash/fp/bindAll.js           |     5 +
 .../node_modules/lodash/fp/bindKey.js           |     5 +
 .../node_modules/lodash/fp/camelCase.js         |     5 +
 .../node_modules/lodash/fp/capitalize.js        |     5 +
 .../node_modules/lodash/fp/castArray.js         |     5 +
 .../node_modules/lodash/fp/ceil.js              |     5 +
 .../node_modules/lodash/fp/chain.js             |     5 +
 .../node_modules/lodash/fp/chunk.js             |     5 +
 .../node_modules/lodash/fp/clamp.js             |     5 +
 .../node_modules/lodash/fp/clone.js             |     5 +
 .../node_modules/lodash/fp/cloneDeep.js         |     5 +
 .../node_modules/lodash/fp/cloneDeepWith.js     |     5 +
 .../node_modules/lodash/fp/cloneWith.js         |     5 +
 .../node_modules/lodash/fp/collection.js        |     2 +
 .../node_modules/lodash/fp/commit.js            |     5 +
 .../node_modules/lodash/fp/compact.js           |     5 +
 .../node_modules/lodash/fp/complement.js        |     1 +
 .../node_modules/lodash/fp/compose.js           |     1 +
 .../node_modules/lodash/fp/concat.js            |     5 +
 .../node_modules/lodash/fp/cond.js              |     5 +
 .../node_modules/lodash/fp/conforms.js          |     1 +
 .../node_modules/lodash/fp/conformsTo.js        |     5 +
 .../node_modules/lodash/fp/constant.js          |     5 +
 .../node_modules/lodash/fp/contains.js          |     1 +
 .../node_modules/lodash/fp/convert.js           |    18 +
 .../node_modules/lodash/fp/countBy.js           |     5 +
 .../node_modules/lodash/fp/create.js            |     5 +
 .../node_modules/lodash/fp/curry.js             |     5 +
 .../node_modules/lodash/fp/curryN.js            |     5 +
 .../node_modules/lodash/fp/curryRight.js        |     5 +
 .../node_modules/lodash/fp/curryRightN.js       |     5 +
 .../node_modules/lodash/fp/date.js              |     2 +
 .../node_modules/lodash/fp/debounce.js          |     5 +
 .../node_modules/lodash/fp/deburr.js            |     5 +
 .../node_modules/lodash/fp/defaultTo.js         |     5 +
 .../node_modules/lodash/fp/defaults.js          |     5 +
 .../node_modules/lodash/fp/defaultsAll.js       |     5 +
 .../node_modules/lodash/fp/defaultsDeep.js      |     5 +
 .../node_modules/lodash/fp/defaultsDeepAll.js   |     5 +
 .../node_modules/lodash/fp/defer.js             |     5 +
 .../node_modules/lodash/fp/delay.js             |     5 +
 .../node_modules/lodash/fp/difference.js        |     5 +
 .../node_modules/lodash/fp/differenceBy.js      |     5 +
 .../node_modules/lodash/fp/differenceWith.js    |     5 +
 .../node_modules/lodash/fp/dissoc.js            |     1 +
 .../node_modules/lodash/fp/dissocPath.js        |     1 +
 .../node_modules/lodash/fp/divide.js            |     5 +
 .../node_modules/lodash/fp/drop.js              |     5 +
 .../node_modules/lodash/fp/dropLast.js          |     1 +
 .../node_modules/lodash/fp/dropLastWhile.js     |     1 +
 .../node_modules/lodash/fp/dropRight.js         |     5 +
 .../node_modules/lodash/fp/dropRightWhile.js    |     5 +
 .../node_modules/lodash/fp/dropWhile.js         |     5 +
 .../node_modules/lodash/fp/each.js              |     1 +
 .../node_modules/lodash/fp/eachRight.js         |     1 +
 .../node_modules/lodash/fp/endsWith.js          |     5 +
 .../node_modules/lodash/fp/entries.js           |     1 +
 .../node_modules/lodash/fp/entriesIn.js         |     1 +
 .../archiver-utils/node_modules/lodash/fp/eq.js |     5 +
 .../node_modules/lodash/fp/equals.js            |     1 +
 .../node_modules/lodash/fp/escape.js            |     5 +
 .../node_modules/lodash/fp/escapeRegExp.js      |     5 +
 .../node_modules/lodash/fp/every.js             |     5 +
 .../node_modules/lodash/fp/extend.js            |     1 +
 .../node_modules/lodash/fp/extendAll.js         |     1 +
 .../node_modules/lodash/fp/extendAllWith.js     |     1 +
 .../node_modules/lodash/fp/extendWith.js        |     1 +
 .../node_modules/lodash/fp/fill.js              |     5 +
 .../node_modules/lodash/fp/filter.js            |     5 +
 .../node_modules/lodash/fp/find.js              |     5 +
 .../node_modules/lodash/fp/findFrom.js          |     5 +
 .../node_modules/lodash/fp/findIndex.js         |     5 +
 .../node_modules/lodash/fp/findIndexFrom.js     |     5 +
 .../node_modules/lodash/fp/findKey.js           |     5 +
 .../node_modules/lodash/fp/findLast.js          |     5 +
 .../node_modules/lodash/fp/findLastFrom.js      |     5 +
 .../node_modules/lodash/fp/findLastIndex.js     |     5 +
 .../node_modules/lodash/fp/findLastIndexFrom.js |     5 +
 .../node_modules/lodash/fp/findLastKey.js       |     5 +
 .../node_modules/lodash/fp/first.js             |     1 +
 .../node_modules/lodash/fp/flatMap.js           |     5 +
 .../node_modules/lodash/fp/flatMapDeep.js       |     5 +
 .../node_modules/lodash/fp/flatMapDepth.js      |     5 +
 .../node_modules/lodash/fp/flatten.js           |     5 +
 .../node_modules/lodash/fp/flattenDeep.js       |     5 +
 .../node_modules/lodash/fp/flattenDepth.js      |     5 +
 .../node_modules/lodash/fp/flip.js              |     5 +
 .../node_modules/lodash/fp/floor.js             |     5 +
 .../node_modules/lodash/fp/flow.js              |     5 +
 .../node_modules/lodash/fp/flowRight.js         |     5 +
 .../node_modules/lodash/fp/forEach.js           |     5 +
 .../node_modules/lodash/fp/forEachRight.js      |     5 +
 .../node_modules/lodash/fp/forIn.js             |     5 +
 .../node_modules/lodash/fp/forInRight.js        |     5 +
 .../node_modules/lodash/fp/forOwn.js            |     5 +
 .../node_modules/lodash/fp/forOwnRight.js       |     5 +
 .../node_modules/lodash/fp/fromPairs.js         |     5 +
 .../node_modules/lodash/fp/function.js          |     2 +
 .../node_modules/lodash/fp/functions.js         |     5 +
 .../node_modules/lodash/fp/functionsIn.js       |     5 +
 .../node_modules/lodash/fp/get.js               |     5 +
 .../node_modules/lodash/fp/getOr.js             |     5 +
 .../node_modules/lodash/fp/groupBy.js           |     5 +
 .../archiver-utils/node_modules/lodash/fp/gt.js |     5 +
 .../node_modules/lodash/fp/gte.js               |     5 +
 .../node_modules/lodash/fp/has.js               |     5 +
 .../node_modules/lodash/fp/hasIn.js             |     5 +
 .../node_modules/lodash/fp/head.js              |     5 +
 .../node_modules/lodash/fp/identical.js         |     1 +
 .../node_modules/lodash/fp/identity.js          |     5 +
 .../node_modules/lodash/fp/inRange.js           |     5 +
 .../node_modules/lodash/fp/includes.js          |     5 +
 .../node_modules/lodash/fp/includesFrom.js      |     5 +
 .../node_modules/lodash/fp/indexBy.js           |     1 +
 .../node_modules/lodash/fp/indexOf.js           |     5 +
 .../node_modules/lodash/fp/indexOfFrom.js       |     5 +
 .../node_modules/lodash/fp/init.js              |     1 +
 .../node_modules/lodash/fp/initial.js           |     5 +
 .../node_modules/lodash/fp/intersection.js      |     5 +
 .../node_modules/lodash/fp/intersectionBy.js    |     5 +
 .../node_modules/lodash/fp/intersectionWith.js  |     5 +
 .../node_modules/lodash/fp/invert.js            |     5 +
 .../node_modules/lodash/fp/invertBy.js          |     5 +
 .../node_modules/lodash/fp/invertObj.js         |     1 +
 .../node_modules/lodash/fp/invoke.js            |     5 +
 .../node_modules/lodash/fp/invokeArgs.js        |     5 +
 .../node_modules/lodash/fp/invokeArgsMap.js     |     5 +
 .../node_modules/lodash/fp/invokeMap.js         |     5 +
 .../node_modules/lodash/fp/isArguments.js       |     5 +
 .../node_modules/lodash/fp/isArray.js           |     5 +
 .../node_modules/lodash/fp/isArrayBuffer.js     |     5 +
 .../node_modules/lodash/fp/isArrayLike.js       |     5 +
 .../node_modules/lodash/fp/isArrayLikeObject.js |     5 +
 .../node_modules/lodash/fp/isBoolean.js         |     5 +
 .../node_modules/lodash/fp/isBuffer.js          |     5 +
 .../node_modules/lodash/fp/isDate.js            |     5 +
 .../node_modules/lodash/fp/isElement.js         |     5 +
 .../node_modules/lodash/fp/isEmpty.js           |     5 +
 .../node_modules/lodash/fp/isEqual.js           |     5 +
 .../node_modules/lodash/fp/isEqualWith.js       |     5 +
 .../node_modules/lodash/fp/isError.js           |     5 +
 .../node_modules/lodash/fp/isFinite.js          |     5 +
 .../node_modules/lodash/fp/isFunction.js        |     5 +
 .../node_modules/lodash/fp/isInteger.js         |     5 +
 .../node_modules/lodash/fp/isLength.js          |     5 +
 .../node_modules/lodash/fp/isMap.js             |     5 +
 .../node_modules/lodash/fp/isMatch.js           |     5 +
 .../node_modules/lodash/fp/isMatchWith.js       |     5 +
 .../node_modules/lodash/fp/isNaN.js             |     5 +
 .../node_modules/lodash/fp/isNative.js          |     5 +
 .../node_modules/lodash/fp/isNil.js             |     5 +
 .../node_modules/lodash/fp/isNull.js            |     5 +
 .../node_modules/lodash/fp/isNumber.js          |     5 +
 .../node_modules/lodash/fp/isObject.js          |     5 +
 .../node_modules/lodash/fp/isObjectLike.js      |     5 +
 .../node_modules/lodash/fp/isPlainObject.js     |     5 +
 .../node_modules/lodash/fp/isRegExp.js          |     5 +
 .../node_modules/lodash/fp/isSafeInteger.js     |     5 +
 .../node_modules/lodash/fp/isSet.js             |     5 +
 .../node_modules/lodash/fp/isString.js          |     5 +
 .../node_modules/lodash/fp/isSymbol.js          |     5 +
 .../node_modules/lodash/fp/isTypedArray.js      |     5 +
 .../node_modules/lodash/fp/isUndefined.js       |     5 +
 .../node_modules/lodash/fp/isWeakMap.js         |     5 +
 .../node_modules/lodash/fp/isWeakSet.js         |     5 +
 .../node_modules/lodash/fp/iteratee.js          |     5 +
 .../node_modules/lodash/fp/join.js              |     5 +
 .../node_modules/lodash/fp/juxt.js              |     1 +
 .../node_modules/lodash/fp/kebabCase.js         |     5 +
 .../node_modules/lodash/fp/keyBy.js             |     5 +
 .../node_modules/lodash/fp/keys.js              |     5 +
 .../node_modules/lodash/fp/keysIn.js            |     5 +
 .../node_modules/lodash/fp/lang.js              |     2 +
 .../node_modules/lodash/fp/last.js              |     5 +
 .../node_modules/lodash/fp/lastIndexOf.js       |     5 +
 .../node_modules/lodash/fp/lastIndexOfFrom.js   |     5 +
 .../node_modules/lodash/fp/lowerCase.js         |     5 +
 .../node_modules/lodash/fp/lowerFirst.js        |     5 +
 .../archiver-utils/node_modules/lodash/fp/lt.js |     5 +
 .../node_modules/lodash/fp/lte.js               |     5 +
 .../node_modules/lodash/fp/map.js               |     5 +
 .../node_modules/lodash/fp/mapKeys.js           |     5 +
 .../node_modules/lodash/fp/mapValues.js         |     5 +
 .../node_modules/lodash/fp/matches.js           |     1 +
 .../node_modules/lodash/fp/matchesProperty.js   |     5 +
 .../node_modules/lodash/fp/math.js              |     2 +
 .../node_modules/lodash/fp/max.js               |     5 +
 .../node_modules/lodash/fp/maxBy.js             |     5 +
 .../node_modules/lodash/fp/mean.js              |     5 +
 .../node_modules/lodash/fp/meanBy.js            |     5 +
 .../node_modules/lodash/fp/memoize.js           |     5 +
 .../node_modules/lodash/fp/merge.js             |     5 +
 .../node_modules/lodash/fp/mergeAll.js          |     5 +
 .../node_modules/lodash/fp/mergeAllWith.js      |     5 +
 .../node_modules/lodash/fp/mergeWith.js         |     5 +
 .../node_modules/lodash/fp/method.js            |     5 +
 .../node_modules/lodash/fp/methodOf.js          |     5 +
 .../node_modules/lodash/fp/min.js               |     5 +
 .../node_modules/lodash/fp/minBy.js             |     5 +
 .../node_modules/lodash/fp/mixin.js             |     5 +
 .../node_modules/lodash/fp/multiply.js          |     5 +
 .../node_modules/lodash/fp/nAry.js              |     1 +
 .../node_modules/lodash/fp/negate.js            |     5 +
 .../node_modules/lodash/fp/next.js              |     5 +
 .../node_modules/lodash/fp/noop.js              |     5 +
 .../node_modules/lodash/fp/now.js               |     5 +
 .../node_modules/lodash/fp/nth.js               |     5 +
 .../node_modules/lodash/fp/nthArg.js            |     5 +
 .../node_modules/lodash/fp/number.js            |     2 +
 .../node_modules/lodash/fp/object.js            |     2 +
 .../node_modules/lodash/fp/omit.js              |     5 +
 .../node_modules/lodash/fp/omitAll.js           |     1 +
 .../node_modules/lodash/fp/omitBy.js            |     5 +
 .../node_modules/lodash/fp/once.js              |     5 +
 .../node_modules/lodash/fp/orderBy.js           |     5 +
 .../node_modules/lodash/fp/over.js              |     5 +
 .../node_modules/lodash/fp/overArgs.js          |     5 +
 .../node_modules/lodash/fp/overEvery.js         |     5 +
 .../node_modules/lodash/fp/overSome.js          |     5 +
 .../node_modules/lodash/fp/pad.js               |     5 +
 .../node_modules/lodash/fp/padChars.js          |     5 +
 .../node_modules/lodash/fp/padCharsEnd.js       |     5 +
 .../node_modules/lodash/fp/padCharsStart.js     |     5 +
 .../node_modules/lodash/fp/padEnd.js            |     5 +
 .../node_modules/lodash/fp/padStart.js          |     5 +
 .../node_modules/lodash/fp/parseInt.js          |     5 +
 .../node_modules/lodash/fp/partial.js           |     5 +
 .../node_modules/lodash/fp/partialRight.js      |     5 +
 .../node_modules/lodash/fp/partition.js         |     5 +
 .../node_modules/lodash/fp/path.js              |     1 +
 .../node_modules/lodash/fp/pathEq.js            |     1 +
 .../node_modules/lodash/fp/pathOr.js            |     1 +
 .../node_modules/lodash/fp/paths.js             |     1 +
 .../node_modules/lodash/fp/pick.js              |     5 +
 .../node_modules/lodash/fp/pickAll.js           |     1 +
 .../node_modules/lodash/fp/pickBy.js            |     5 +
 .../node_modules/lodash/fp/pipe.js              |     1 +
 .../node_modules/lodash/fp/placeholder.js       |     6 +
 .../node_modules/lodash/fp/plant.js             |     5 +
 .../node_modules/lodash/fp/pluck.js             |     1 +
 .../node_modules/lodash/fp/prop.js              |     1 +
 .../node_modules/lodash/fp/propEq.js            |     1 +
 .../node_modules/lodash/fp/propOr.js            |     1 +
 .../node_modules/lodash/fp/property.js          |     1 +
 .../node_modules/lodash/fp/propertyOf.js        |     5 +
 .../node_modules/lodash/fp/props.js             |     1 +
 .../node_modules/lodash/fp/pull.js              |     5 +
 .../node_modules/lodash/fp/pullAll.js           |     5 +
 .../node_modules/lodash/fp/pullAllBy.js         |     5 +
 .../node_modules/lodash/fp/pullAllWith.js       |     5 +
 .../node_modules/lodash/fp/pullAt.js            |     5 +
 .../node_modules/lodash/fp/random.js            |     5 +
 .../node_modules/lodash/fp/range.js             |     5 +
 .../node_modules/lodash/fp/rangeRight.js        |     5 +
 .../node_modules/lodash/fp/rangeStep.js         |     5 +
 .../node_modules/lodash/fp/rangeStepRight.js    |     5 +
 .../node_modules/lodash/fp/rearg.js             |     5 +
 .../node_modules/lodash/fp/reduce.js            |     5 +
 .../node_modules/lodash/fp/reduceRight.js       |     5 +
 .../node_modules/lodash/fp/reject.js            |     5 +
 .../node_modules/lodash/fp/remove.js            |     5 +
 .../node_modules/lodash/fp/repeat.js            |     5 +
 .../node_modules/lodash/fp/replace.js           |     5 +
 .../node_modules/lodash/fp/rest.js              |     5 +
 .../node_modules/lodash/fp/restFrom.js          |     5 +
 .../node_modules/lodash/fp/result.js            |     5 +
 .../node_modules/lodash/fp/reverse.js           |     5 +
 .../node_modules/lodash/fp/round.js             |     5 +
 .../node_modules/lodash/fp/sample.js            |     5 +
 .../node_modules/lodash/fp/sampleSize.js        |     5 +
 .../node_modules/lodash/fp/seq.js               |     2 +
 .../node_modules/lodash/fp/set.js               |     5 +
 .../node_modules/lodash/fp/setWith.js           |     5 +
 .../node_modules/lodash/fp/shuffle.js           |     5 +
 .../node_modules/lodash/fp/size.js              |     5 +
 .../node_modules/lodash/fp/slice.js             |     5 +
 .../node_modules/lodash/fp/snakeCase.js         |     5 +
 .../node_modules/lodash/fp/some.js              |     5 +
 .../node_modules/lodash/fp/sortBy.js            |     5 +
 .../node_modules/lodash/fp/sortedIndex.js       |     5 +
 .../node_modules/lodash/fp/sortedIndexBy.js     |     5 +
 .../node_modules/lodash/fp/sortedIndexOf.js     |     5 +
 .../node_modules/lodash/fp/sortedLastIndex.js   |     5 +
 .../node_modules/lodash/fp/sortedLastIndexBy.js |     5 +
 .../node_modules/lodash/fp/sortedLastIndexOf.js |     5 +
 .../node_modules/lodash/fp/sortedUniq.js        |     5 +
 .../node_modules/lodash/fp/sortedUniqBy.js      |     5 +
 .../node_modules/lodash/fp/split.js             |     5 +
 .../node_modules/lodash/fp/spread.js            |     5 +
 .../node_modules/lodash/fp/spreadFrom.js        |     5 +
 .../node_modules/lodash/fp/startCase.js         |     5 +
 .../node_modules/lodash/fp/startsWith.js        |     5 +
 .../node_modules/lodash/fp/string.js            |     2 +
 .../node_modules/lodash/fp/stubArray.js         |     5 +
 .../node_modules/lodash/fp/stubFalse.js         |     5 +
 .../node_modules/lodash/fp/stubObject.js        |     5 +
 .../node_modules/lodash/fp/stubString.js        |     5 +
 .../node_modules/lodash/fp/stubTrue.js          |     5 +
 .../node_modules/lodash/fp/subtract.js          |     5 +
 .../node_modules/lodash/fp/sum.js               |     5 +
 .../node_modules/lodash/fp/sumBy.js             |     5 +
 .../lodash/fp/symmetricDifference.js            |     1 +
 .../lodash/fp/symmetricDifferenceBy.js          |     1 +
 .../lodash/fp/symmetricDifferenceWith.js        |     1 +
 .../node_modules/lodash/fp/tail.js              |     5 +
 .../node_modules/lodash/fp/take.js              |     5 +
 .../node_modules/lodash/fp/takeLast.js          |     1 +
 .../node_modules/lodash/fp/takeLastWhile.js     |     1 +
 .../node_modules/lodash/fp/takeRight.js         |     5 +
 .../node_modules/lodash/fp/takeRightWhile.js    |     5 +
 .../node_modules/lodash/fp/takeWhile.js         |     5 +
 .../node_modules/lodash/fp/tap.js               |     5 +
 .../node_modules/lodash/fp/template.js          |     5 +
 .../node_modules/lodash/fp/templateSettings.js  |     5 +
 .../node_modules/lodash/fp/throttle.js          |     5 +
 .../node_modules/lodash/fp/thru.js              |     5 +
 .../node_modules/lodash/fp/times.js             |     5 +
 .../node_modules/lodash/fp/toArray.js           |     5 +
 .../node_modules/lodash/fp/toFinite.js          |     5 +
 .../node_modules/lodash/fp/toInteger.js         |     5 +
 .../node_modules/lodash/fp/toIterator.js        |     5 +
 .../node_modules/lodash/fp/toJSON.js            |     5 +
 .../node_modules/lodash/fp/toLength.js          |     5 +
 .../node_modules/lodash/fp/toLower.js           |     5 +
 .../node_modules/lodash/fp/toNumber.js          |     5 +
 .../node_modules/lodash/fp/toPairs.js           |     5 +
 .../node_modules/lodash/fp/toPairsIn.js         |     5 +
 .../node_modules/lodash/fp/toPath.js            |     5 +
 .../node_modules/lodash/fp/toPlainObject.js     |     5 +
 .../node_modules/lodash/fp/toSafeInteger.js     |     5 +
 .../node_modules/lodash/fp/toString.js          |     5 +
 .../node_modules/lodash/fp/toUpper.js           |     5 +
 .../node_modules/lodash/fp/transform.js         |     5 +
 .../node_modules/lodash/fp/trim.js              |     5 +
 .../node_modules/lodash/fp/trimChars.js         |     5 +
 .../node_modules/lodash/fp/trimCharsEnd.js      |     5 +
 .../node_modules/lodash/fp/trimCharsStart.js    |     5 +
 .../node_modules/lodash/fp/trimEnd.js           |     5 +
 .../node_modules/lodash/fp/trimStart.js         |     5 +
 .../node_modules/lodash/fp/truncate.js          |     5 +
 .../node_modules/lodash/fp/unapply.js           |     1 +
 .../node_modules/lodash/fp/unary.js             |     5 +
 .../node_modules/lodash/fp/unescape.js          |     5 +
 .../node_modules/lodash/fp/union.js             |     5 +
 .../node_modules/lodash/fp/unionBy.js           |     5 +
 .../node_modules/lodash/fp/unionWith.js         |     5 +
 .../node_modules/lodash/fp/uniq.js              |     5 +
 .../node_modules/lodash/fp/uniqBy.js            |     5 +
 .../node_modules/lodash/fp/uniqWith.js          |     5 +
 .../node_modules/lodash/fp/uniqueId.js          |     5 +
 .../node_modules/lodash/fp/unnest.js            |     1 +
 .../node_modules/lodash/fp/unset.js             |     5 +
 .../node_modules/lodash/fp/unzip.js             |     5 +
 .../node_modules/lodash/fp/unzipWith.js         |     5 +
 .../node_modules/lodash/fp/update.js            |     5 +
 .../node_modules/lodash/fp/updateWith.js        |     5 +
 .../node_modules/lodash/fp/upperCase.js         |     5 +
 .../node_modules/lodash/fp/upperFirst.js        |     5 +
 .../node_modules/lodash/fp/useWith.js           |     1 +
 .../node_modules/lodash/fp/util.js              |     2 +
 .../node_modules/lodash/fp/value.js             |     5 +
 .../node_modules/lodash/fp/valueOf.js           |     5 +
 .../node_modules/lodash/fp/values.js            |     5 +
 .../node_modules/lodash/fp/valuesIn.js          |     5 +
 .../node_modules/lodash/fp/where.js             |     1 +
 .../node_modules/lodash/fp/whereEq.js           |     1 +
 .../node_modules/lodash/fp/without.js           |     5 +
 .../node_modules/lodash/fp/words.js             |     5 +
 .../node_modules/lodash/fp/wrap.js              |     5 +
 .../node_modules/lodash/fp/wrapperAt.js         |     5 +
 .../node_modules/lodash/fp/wrapperChain.js      |     5 +
 .../node_modules/lodash/fp/wrapperLodash.js     |     5 +
 .../node_modules/lodash/fp/wrapperReverse.js    |     5 +
 .../node_modules/lodash/fp/wrapperValue.js      |     5 +
 .../node_modules/lodash/fp/xor.js               |     5 +
 .../node_modules/lodash/fp/xorBy.js             |     5 +
 .../node_modules/lodash/fp/xorWith.js           |     5 +
 .../node_modules/lodash/fp/zip.js               |     5 +
 .../node_modules/lodash/fp/zipAll.js            |     5 +
 .../node_modules/lodash/fp/zipObj.js            |     1 +
 .../node_modules/lodash/fp/zipObject.js         |     5 +
 .../node_modules/lodash/fp/zipObjectDeep.js     |     5 +
 .../node_modules/lodash/fp/zipWith.js           |     5 +
 .../node_modules/lodash/fromPairs.js            |    28 +
 .../node_modules/lodash/function.js             |    25 +
 .../node_modules/lodash/functions.js            |    31 +
 .../node_modules/lodash/functionsIn.js          |    31 +
 .../archiver-utils/node_modules/lodash/get.js   |    33 +
 .../node_modules/lodash/groupBy.js              |    41 +
 .../archiver-utils/node_modules/lodash/gt.js    |    29 +
 .../archiver-utils/node_modules/lodash/gte.js   |    30 +
 .../archiver-utils/node_modules/lodash/has.js   |    35 +
 .../archiver-utils/node_modules/lodash/hasIn.js |    34 +
 .../archiver-utils/node_modules/lodash/head.js  |    23 +
 .../node_modules/lodash/identity.js             |    21 +
 .../node_modules/lodash/inRange.js              |    55 +
 .../node_modules/lodash/includes.js             |    53 +
 .../archiver-utils/node_modules/lodash/index.js |     1 +
 .../node_modules/lodash/indexOf.js              |    42 +
 .../node_modules/lodash/initial.js              |    22 +
 .../node_modules/lodash/intersection.js         |    30 +
 .../node_modules/lodash/intersectionBy.js       |    45 +
 .../node_modules/lodash/intersectionWith.js     |    41 +
 .../node_modules/lodash/invert.js               |    42 +
 .../node_modules/lodash/invertBy.js             |    56 +
 .../node_modules/lodash/invoke.js               |    24 +
 .../node_modules/lodash/invokeMap.js            |    41 +
 .../node_modules/lodash/isArguments.js          |    36 +
 .../node_modules/lodash/isArray.js              |    26 +
 .../node_modules/lodash/isArrayBuffer.js        |    27 +
 .../node_modules/lodash/isArrayLike.js          |    33 +
 .../node_modules/lodash/isArrayLikeObject.js    |    33 +
 .../node_modules/lodash/isBoolean.js            |    29 +
 .../node_modules/lodash/isBuffer.js             |    38 +
 .../node_modules/lodash/isDate.js               |    27 +
 .../node_modules/lodash/isElement.js            |    25 +
 .../node_modules/lodash/isEmpty.js              |    77 +
 .../node_modules/lodash/isEqual.js              |    35 +
 .../node_modules/lodash/isEqualWith.js          |    41 +
 .../node_modules/lodash/isError.js              |    36 +
 .../node_modules/lodash/isFinite.js             |    36 +
 .../node_modules/lodash/isFunction.js           |    37 +
 .../node_modules/lodash/isInteger.js            |    33 +
 .../node_modules/lodash/isLength.js             |    35 +
 .../archiver-utils/node_modules/lodash/isMap.js |    27 +
 .../node_modules/lodash/isMatch.js              |    36 +
 .../node_modules/lodash/isMatchWith.js          |    41 +
 .../archiver-utils/node_modules/lodash/isNaN.js |    38 +
 .../node_modules/lodash/isNative.js             |    40 +
 .../archiver-utils/node_modules/lodash/isNil.js |    25 +
 .../node_modules/lodash/isNull.js               |    22 +
 .../node_modules/lodash/isNumber.js             |    38 +
 .../node_modules/lodash/isObject.js             |    31 +
 .../node_modules/lodash/isObjectLike.js         |    29 +
 .../node_modules/lodash/isPlainObject.js        |    62 +
 .../node_modules/lodash/isRegExp.js             |    27 +
 .../node_modules/lodash/isSafeInteger.js        |    37 +
 .../archiver-utils/node_modules/lodash/isSet.js |    27 +
 .../node_modules/lodash/isString.js             |    30 +
 .../node_modules/lodash/isSymbol.js             |    29 +
 .../node_modules/lodash/isTypedArray.js         |    27 +
 .../node_modules/lodash/isUndefined.js          |    22 +
 .../node_modules/lodash/isWeakMap.js            |    28 +
 .../node_modules/lodash/isWeakSet.js            |    28 +
 .../node_modules/lodash/iteratee.js             |    53 +
 .../archiver-utils/node_modules/lodash/join.js  |    26 +
 .../node_modules/lodash/kebabCase.js            |    28 +
 .../archiver-utils/node_modules/lodash/keyBy.js |    36 +
 .../archiver-utils/node_modules/lodash/keys.js  |    37 +
 .../node_modules/lodash/keysIn.js               |    32 +
 .../archiver-utils/node_modules/lodash/lang.js  |    58 +
 .../archiver-utils/node_modules/lodash/last.js  |    20 +
 .../node_modules/lodash/lastIndexOf.js          |    46 +
 .../node_modules/lodash/lodash.js               | 17105 ++++++++++
 .../node_modules/lodash/lodash.min.js           |   137 +
 .../node_modules/lodash/lowerCase.js            |    27 +
 .../node_modules/lodash/lowerFirst.js           |    22 +
 .../archiver-utils/node_modules/lodash/lt.js    |    29 +
 .../archiver-utils/node_modules/lodash/lte.js   |    30 +
 .../archiver-utils/node_modules/lodash/map.js   |    53 +
 .../node_modules/lodash/mapKeys.js              |    36 +
 .../node_modules/lodash/mapValues.js            |    43 +
 .../node_modules/lodash/matches.js              |    39 +
 .../node_modules/lodash/matchesProperty.js      |    37 +
 .../archiver-utils/node_modules/lodash/math.js  |    17 +
 .../archiver-utils/node_modules/lodash/max.js   |    29 +
 .../archiver-utils/node_modules/lodash/maxBy.js |    34 +
 .../archiver-utils/node_modules/lodash/mean.js  |    22 +
 .../node_modules/lodash/meanBy.js               |    31 +
 .../node_modules/lodash/memoize.js              |    73 +
 .../archiver-utils/node_modules/lodash/merge.js |    39 +
 .../node_modules/lodash/mergeWith.js            |    39 +
 .../node_modules/lodash/method.js               |    34 +
 .../node_modules/lodash/methodOf.js             |    33 +
 .../archiver-utils/node_modules/lodash/min.js   |    29 +
 .../archiver-utils/node_modules/lodash/minBy.js |    34 +
 .../archiver-utils/node_modules/lodash/mixin.js |    74 +
 .../node_modules/lodash/multiply.js             |    22 +
 .../node_modules/lodash/negate.js               |    40 +
 .../archiver-utils/node_modules/lodash/next.js  |    35 +
 .../archiver-utils/node_modules/lodash/noop.js  |    17 +
 .../archiver-utils/node_modules/lodash/now.js   |    23 +
 .../archiver-utils/node_modules/lodash/nth.js   |    29 +
 .../node_modules/lodash/nthArg.js               |    32 +
 .../node_modules/lodash/number.js               |     5 +
 .../node_modules/lodash/object.js               |    49 +
 .../archiver-utils/node_modules/lodash/omit.js  |    57 +
 .../node_modules/lodash/omitBy.js               |    29 +
 .../archiver-utils/node_modules/lodash/once.js  |    25 +
 .../node_modules/lodash/orderBy.js              |    47 +
 .../archiver-utils/node_modules/lodash/over.js  |    24 +
 .../node_modules/lodash/overArgs.js             |    61 +
 .../node_modules/lodash/overEvery.js            |    30 +
 .../node_modules/lodash/overSome.js             |    30 +
 .../node_modules/lodash/package.json            |    70 +
 .../archiver-utils/node_modules/lodash/pad.js   |    49 +
 .../node_modules/lodash/padEnd.js               |    39 +
 .../node_modules/lodash/padStart.js             |    39 +
 .../node_modules/lodash/parseInt.js             |    43 +
 .../node_modules/lodash/partial.js              |    50 +
 .../node_modules/lodash/partialRight.js         |    49 +
 .../node_modules/lodash/partition.js            |    43 +
 .../archiver-utils/node_modules/lodash/pick.js  |    25 +
 .../node_modules/lodash/pickBy.js               |    37 +
 .../archiver-utils/node_modules/lodash/plant.js |    48 +
 .../node_modules/lodash/property.js             |    32 +
 .../node_modules/lodash/propertyOf.js           |    30 +
 .../archiver-utils/node_modules/lodash/pull.js  |    29 +
 .../node_modules/lodash/pullAll.js              |    29 +
 .../node_modules/lodash/pullAllBy.js            |    33 +
 .../node_modules/lodash/pullAllWith.js          |    32 +
 .../node_modules/lodash/pullAt.js               |    43 +
 .../node_modules/lodash/random.js               |    82 +
 .../archiver-utils/node_modules/lodash/range.js |    46 +
 .../node_modules/lodash/rangeRight.js           |    41 +
 .../archiver-utils/node_modules/lodash/rearg.js |    33 +
 .../node_modules/lodash/reduce.js               |    51 +
 .../node_modules/lodash/reduceRight.js          |    36 +
 .../node_modules/lodash/reject.js               |    46 +
 .../node_modules/lodash/remove.js               |    53 +
 .../node_modules/lodash/repeat.js               |    37 +
 .../node_modules/lodash/replace.js              |    29 +
 .../archiver-utils/node_modules/lodash/rest.js  |    40 +
 .../node_modules/lodash/result.js               |    56 +
 .../node_modules/lodash/reverse.js              |    34 +
 .../archiver-utils/node_modules/lodash/round.js |    26 +
 .../node_modules/lodash/sample.js               |    24 +
 .../node_modules/lodash/sampleSize.js           |    37 +
 .../archiver-utils/node_modules/lodash/seq.js   |    16 +
 .../archiver-utils/node_modules/lodash/set.js   |    35 +
 .../node_modules/lodash/setWith.js              |    32 +
 .../node_modules/lodash/shuffle.js              |    25 +
 .../archiver-utils/node_modules/lodash/size.js  |    46 +
 .../archiver-utils/node_modules/lodash/slice.js |    37 +
 .../node_modules/lodash/snakeCase.js            |    28 +
 .../archiver-utils/node_modules/lodash/some.js  |    51 +
 .../node_modules/lodash/sortBy.js               |    48 +
 .../node_modules/lodash/sortedIndex.js          |    24 +
 .../node_modules/lodash/sortedIndexBy.js        |    33 +
 .../node_modules/lodash/sortedIndexOf.js        |    31 +
 .../node_modules/lodash/sortedLastIndex.js      |    25 +
 .../node_modules/lodash/sortedLastIndexBy.js    |    33 +
 .../node_modules/lodash/sortedLastIndexOf.js    |    31 +
 .../node_modules/lodash/sortedUniq.js           |    24 +
 .../node_modules/lodash/sortedUniqBy.js         |    26 +
 .../archiver-utils/node_modules/lodash/split.js |    52 +
 .../node_modules/lodash/spread.js               |    63 +
 .../node_modules/lodash/startCase.js            |    29 +
 .../node_modules/lodash/startsWith.js           |    39 +
 .../node_modules/lodash/string.js               |    33 +
 .../node_modules/lodash/stubArray.js            |    23 +
 .../node_modules/lodash/stubFalse.js            |    18 +
 .../node_modules/lodash/stubObject.js           |    23 +
 .../node_modules/lodash/stubString.js           |    18 +
 .../node_modules/lodash/stubTrue.js             |    18 +
 .../node_modules/lodash/subtract.js             |    22 +
 .../archiver-utils/node_modules/lodash/sum.js   |    24 +
 .../archiver-utils/node_modules/lodash/sumBy.js |    33 +
 .../archiver-utils/node_modules/lodash/tail.js  |    22 +
 .../archiver-utils/node_modules/lodash/take.js  |    37 +
 .../node_modules/lodash/takeRight.js            |    39 +
 .../node_modules/lodash/takeRightWhile.js       |    45 +
 .../node_modules/lodash/takeWhile.js            |    45 +
 .../archiver-utils/node_modules/lodash/tap.js   |    29 +
 .../node_modules/lodash/template.js             |   238 +
 .../node_modules/lodash/templateSettings.js     |    67 +
 .../node_modules/lodash/throttle.js             |    69 +
 .../archiver-utils/node_modules/lodash/thru.js  |    28 +
 .../archiver-utils/node_modules/lodash/times.js |    51 +
 .../node_modules/lodash/toArray.js              |    58 +
 .../node_modules/lodash/toFinite.js             |    42 +
 .../node_modules/lodash/toInteger.js            |    36 +
 .../node_modules/lodash/toIterator.js           |    23 +
 .../node_modules/lodash/toJSON.js               |     1 +
 .../node_modules/lodash/toLength.js             |    38 +
 .../node_modules/lodash/toLower.js              |    28 +
 .../node_modules/lodash/toNumber.js             |    66 +
 .../node_modules/lodash/toPairs.js              |    30 +
 .../node_modules/lodash/toPairsIn.js            |    30 +
 .../node_modules/lodash/toPath.js               |    33 +
 .../node_modules/lodash/toPlainObject.js        |    32 +
 .../node_modules/lodash/toSafeInteger.js        |    37 +
 .../node_modules/lodash/toString.js             |    28 +
 .../node_modules/lodash/toUpper.js              |    28 +
 .../node_modules/lodash/transform.js            |    65 +
 .../archiver-utils/node_modules/lodash/trim.js  |    49 +
 .../node_modules/lodash/trimEnd.js              |    43 +
 .../node_modules/lodash/trimStart.js            |    43 +
 .../node_modules/lodash/truncate.js             |   111 +
 .../archiver-utils/node_modules/lodash/unary.js |    22 +
 .../node_modules/lodash/unescape.js             |    34 +
 .../archiver-utils/node_modules/lodash/union.js |    26 +
 .../node_modules/lodash/unionBy.js              |    39 +
 .../node_modules/lodash/unionWith.js            |    34 +
 .../archiver-utils/node_modules/lodash/uniq.js  |    25 +
 .../node_modules/lodash/uniqBy.js               |    31 +
 .../node_modules/lodash/uniqWith.js             |    28 +
 .../node_modules/lodash/uniqueId.js             |    28 +
 .../archiver-utils/node_modules/lodash/unset.js |    34 +
 .../archiver-utils/node_modules/lodash/unzip.js |    45 +
 .../node_modules/lodash/unzipWith.js            |    39 +
 .../node_modules/lodash/update.js               |    35 +
 .../node_modules/lodash/updateWith.js           |    33 +
 .../node_modules/lodash/upperCase.js            |    27 +
 .../node_modules/lodash/upperFirst.js           |    22 +
 .../archiver-utils/node_modules/lodash/util.js  |    34 +
 .../archiver-utils/node_modules/lodash/value.js |     1 +
 .../node_modules/lodash/valueOf.js              |     1 +
 .../node_modules/lodash/values.js               |    34 +
 .../node_modules/lodash/valuesIn.js             |    32 +
 .../node_modules/lodash/without.js              |    31 +
 .../archiver-utils/node_modules/lodash/words.js |    35 +
 .../archiver-utils/node_modules/lodash/wrap.js  |    30 +
 .../node_modules/lodash/wrapperAt.js            |    48 +
 .../node_modules/lodash/wrapperChain.js         |    34 +
 .../node_modules/lodash/wrapperLodash.js        |   147 +
 .../node_modules/lodash/wrapperReverse.js       |    44 +
 .../node_modules/lodash/wrapperValue.js         |    21 +
 .../archiver-utils/node_modules/lodash/xor.js   |    28 +
 .../archiver-utils/node_modules/lodash/xorBy.js |    39 +
 .../node_modules/lodash/xorWith.js              |    34 +
 .../archiver-utils/node_modules/lodash/zip.js   |    22 +
 .../node_modules/lodash/zipObject.js            |    24 +
 .../node_modules/lodash/zipObjectDeep.js        |    23 +
 .../node_modules/lodash/zipWith.js              |    32 +
 .../node_modules/minimatch/minimatch.js         |   923 +
 .../node_modules/minimatch/package.json         |    67 +
 node_modules/archiver-utils/package.json        |    87 +
 node_modules/archiver/CHANGELOG.md              |    41 +
 node_modules/archiver/index.js                  |    70 +
 node_modules/archiver/lib/core.js               |   906 +
 node_modules/archiver/lib/plugins/json.js       |   109 +
 node_modules/archiver/lib/plugins/tar.js        |   166 +
 node_modules/archiver/lib/plugins/zip.js        |   115 +
 .../archiver/node_modules/async/CHANGELOG.md    |   263 +
 node_modules/archiver/node_modules/async/all.js |    50 +
 .../archiver/node_modules/async/allLimit.js     |    42 +
 .../archiver/node_modules/async/allSeries.js    |    37 +
 node_modules/archiver/node_modules/async/any.js |    52 +
 .../archiver/node_modules/async/anyLimit.js     |    43 +
 .../archiver/node_modules/async/anySeries.js    |    38 +
 .../archiver/node_modules/async/apply.js        |    68 +
 .../archiver/node_modules/async/applyEach.js    |    51 +
 .../node_modules/async/applyEachSeries.js       |    37 +
 .../archiver/node_modules/async/asyncify.js     |   110 +
 .../archiver/node_modules/async/auto.js         |   289 +
 .../archiver/node_modules/async/autoInject.js   |   170 +
 .../archiver/node_modules/async/bower.json      |    17 +
 .../archiver/node_modules/async/cargo.js        |    94 +
 .../archiver/node_modules/async/compose.js      |    58 +
 .../archiver/node_modules/async/concat.js       |    43 +
 .../archiver/node_modules/async/concatLimit.js  |    65 +
 .../archiver/node_modules/async/concatSeries.js |    36 +
 .../archiver/node_modules/async/constant.js     |    66 +
 .../archiver/node_modules/async/detect.js       |    61 +
 .../archiver/node_modules/async/detectLimit.js  |    48 +
 .../archiver/node_modules/async/detectSeries.js |    38 +
 node_modules/archiver/node_modules/async/dir.js |    43 +
 .../archiver/node_modules/async/dist/async.js   |  5595 ++++
 .../node_modules/async/dist/async.min.js        |     2 +
 .../node_modules/async/dist/async.min.map       |     1 +
 .../archiver/node_modules/async/doDuring.js     |    66 +
 .../archiver/node_modules/async/doUntil.js      |    39 +
 .../archiver/node_modules/async/doWhilst.js     |    59 +
 .../archiver/node_modules/async/during.js       |    76 +
 .../archiver/node_modules/async/each.js         |    82 +
 .../archiver/node_modules/async/eachLimit.js    |    45 +
 .../archiver/node_modules/async/eachOf.js       |   111 +
 .../archiver/node_modules/async/eachOfLimit.js  |    41 +
 .../archiver/node_modules/async/eachOfSeries.js |    35 +
 .../archiver/node_modules/async/eachSeries.js   |    37 +
 .../archiver/node_modules/async/ensureAsync.js  |    73 +
 .../archiver/node_modules/async/every.js        |    50 +
 .../archiver/node_modules/async/everyLimit.js   |    42 +
 .../archiver/node_modules/async/everySeries.js  |    37 +
 .../archiver/node_modules/async/filter.js       |    45 +
 .../archiver/node_modules/async/filterLimit.js  |    37 +
 .../archiver/node_modules/async/filterSeries.js |    35 +
 .../archiver/node_modules/async/find.js         |    61 +
 .../archiver/node_modules/async/findLimit.js    |    48 +
 .../archiver/node_modules/async/findSeries.js   |    38 +
 .../archiver/node_modules/async/foldl.js        |    78 +
 .../archiver/node_modules/async/foldr.js        |    44 +
 .../archiver/node_modules/async/forEach.js      |    82 +
 .../archiver/node_modules/async/forEachLimit.js |    45 +
 .../archiver/node_modules/async/forEachOf.js    |   111 +
 .../node_modules/async/forEachOfLimit.js        |    41 +
 .../node_modules/async/forEachOfSeries.js       |    35 +
 .../node_modules/async/forEachSeries.js         |    37 +
 .../archiver/node_modules/async/forever.js      |    65 +
 .../archiver/node_modules/async/groupBy.js      |    54 +
 .../archiver/node_modules/async/groupByLimit.js |    71 +
 .../node_modules/async/groupBySeries.js         |    37 +
 .../archiver/node_modules/async/index.js        |   582 +
 .../archiver/node_modules/async/inject.js       |    78 +
 .../async/internal/DoublyLinkedList.js          |    88 +
 .../node_modules/async/internal/applyEach.js    |    38 +
 .../node_modules/async/internal/breakLoop.js    |     9 +
 .../node_modules/async/internal/consoleFunc.js  |    42 +
 .../node_modules/async/internal/createTester.js |    44 +
 .../node_modules/async/internal/doLimit.js      |    12 +
 .../node_modules/async/internal/doParallel.js   |    23 +
 .../async/internal/doParallelLimit.js           |    23 +
 .../node_modules/async/internal/eachOfLimit.js  |    71 +
 .../node_modules/async/internal/filter.js       |    75 +
 .../async/internal/findGetResult.js             |    10 +
 .../node_modules/async/internal/getIterator.js  |    13 +
 .../async/internal/initialParams.js             |    21 +
 .../node_modules/async/internal/iterator.js     |    58 +
 .../archiver/node_modules/async/internal/map.js |    35 +
 .../node_modules/async/internal/notId.js        |    10 +
 .../node_modules/async/internal/once.js         |    15 +
 .../node_modules/async/internal/onlyOnce.js     |    15 +
 .../node_modules/async/internal/parallel.js     |    42 +
 .../node_modules/async/internal/queue.js        |   204 +
 .../node_modules/async/internal/reject.js       |    21 +
 .../node_modules/async/internal/setImmediate.js |    42 +
 .../node_modules/async/internal/slice.js        |    16 +
 .../node_modules/async/internal/withoutIndex.js |    12 +
 .../node_modules/async/internal/wrapAsync.js    |    25 +
 node_modules/archiver/node_modules/async/log.js |    41 +
 node_modules/archiver/node_modules/async/map.js |    54 +
 .../archiver/node_modules/async/mapLimit.js     |    37 +
 .../archiver/node_modules/async/mapSeries.js    |    36 +
 .../archiver/node_modules/async/mapValues.js    |    63 +
 .../node_modules/async/mapValuesLimit.js        |    61 +
 .../node_modules/async/mapValuesSeries.js       |    37 +
 .../archiver/node_modules/async/memoize.js      |   101 +
 .../archiver/node_modules/async/nextTick.js     |    51 +
 .../archiver/node_modules/async/package.json    |   114 +
 .../archiver/node_modules/async/parallel.js     |    90 +
 .../node_modules/async/parallelLimit.js         |    40 +
 .../node_modules/async/priorityQueue.js         |    98 +
 .../archiver/node_modules/async/queue.js        |   130 +
 .../archiver/node_modules/async/race.js         |    70 +
 .../archiver/node_modules/async/reduce.js       |    78 +
 .../archiver/node_modules/async/reduceRight.js  |    44 +
 .../archiver/node_modules/async/reflect.js      |    81 +
 .../archiver/node_modules/async/reflectAll.js   |   105 +
 .../archiver/node_modules/async/reject.js       |    45 +
 .../archiver/node_modules/async/rejectLimit.js  |    37 +
 .../archiver/node_modules/async/rejectSeries.js |    35 +
 .../archiver/node_modules/async/retry.js        |   156 +
 .../archiver/node_modules/async/retryable.js    |    65 +
 .../archiver/node_modules/async/select.js       |    45 +
 .../archiver/node_modules/async/selectLimit.js  |    37 +
 .../archiver/node_modules/async/selectSeries.js |    35 +
 node_modules/archiver/node_modules/async/seq.js |    91 +
 .../archiver/node_modules/async/series.js       |    85 +
 .../archiver/node_modules/async/setImmediate.js |    45 +
 .../archiver/node_modules/async/some.js         |    52 +
 .../archiver/node_modules/async/someLimit.js    |    43 +
 .../archiver/node_modules/async/someSeries.js   |    38 +
 .../archiver/node_modules/async/sortBy.js       |    91 +
 .../archiver/node_modules/async/timeout.js      |    89 +
 .../archiver/node_modules/async/times.js        |    50 +
 .../archiver/node_modules/async/timesLimit.js   |    42 +
 .../archiver/node_modules/async/timesSeries.js  |    32 +
 .../archiver/node_modules/async/transform.js    |    87 +
 .../archiver/node_modules/async/tryEach.js      |    81 +
 .../archiver/node_modules/async/unmemoize.js    |    25 +
 .../archiver/node_modules/async/until.js        |    41 +
 .../archiver/node_modules/async/waterfall.js    |   113 +
 .../archiver/node_modules/async/whilst.js       |    72 +
 .../archiver/node_modules/async/wrapSync.js     |   110 +
 .../archiver/node_modules/glob/changelog.md     |    67 +
 .../archiver/node_modules/glob/common.js        |   240 +
 node_modules/archiver/node_modules/glob/glob.js |   790 +
 .../archiver/node_modules/glob/package.json     |    80 +
 node_modules/archiver/node_modules/glob/sync.js |   486 +
 .../archiver/node_modules/lodash/_DataView.js   |     7 +
 .../archiver/node_modules/lodash/_Hash.js       |    32 +
 .../node_modules/lodash/_LazyWrapper.js         |    28 +
 .../archiver/node_modules/lodash/_ListCache.js  |    32 +
 .../node_modules/lodash/_LodashWrapper.js       |    22 +
 .../archiver/node_modules/lodash/_Map.js        |     7 +
 .../archiver/node_modules/lodash/_MapCache.js   |    32 +
 .../archiver/node_modules/lodash/_Promise.js    |     7 +
 .../archiver/node_modules/lodash/_Set.js        |     7 +
 .../archiver/node_modules/lodash/_SetCache.js   |    27 +
 .../archiver/node_modules/lodash/_Stack.js      |    27 +
 .../archiver/node_modules/lodash/_Symbol.js     |     6 +
 .../archiver/node_modules/lodash/_Uint8Array.js |     6 +
 .../archiver/node_modules/lodash/_WeakMap.js    |     7 +
 .../archiver/node_modules/lodash/_apply.js      |    21 +
 .../node_modules/lodash/_arrayAggregator.js     |    22 +
 .../archiver/node_modules/lodash/_arrayEach.js  |    22 +
 .../node_modules/lodash/_arrayEachRight.js      |    21 +
 .../archiver/node_modules/lodash/_arrayEvery.js |    23 +
 .../node_modules/lodash/_arrayFilter.js         |    25 +
 .../node_modules/lodash/_arrayIncludes.js       |    17 +
 .../node_modules/lodash/_arrayIncludesWith.js   |    22 +
 .../node_modules/lodash/_arrayLikeKeys.js       |    49 +
 .../archiver/node_modules/lodash/_arrayMap.js   |    21 +
 .../archiver/node_modules/lodash/_arrayPush.js  |    20 +
 .../node_modules/lodash/_arrayReduce.js         |    26 +
 .../node_modules/lodash/_arrayReduceRight.js    |    24 +
 .../node_modules/lodash/_arraySample.js         |    15 +
 .../node_modules/lodash/_arraySampleSize.js     |    17 +
 .../node_modules/lodash/_arrayShuffle.js        |    15 +
 .../archiver/node_modules/lodash/_arraySome.js  |    23 +
 .../archiver/node_modules/lodash/_asciiSize.js  |    12 +
 .../node_modules/lodash/_asciiToArray.js        |    12 +
 .../archiver/node_modules/lodash/_asciiWords.js |    15 +
 .../node_modules/lodash/_assignMergeValue.js    |    20 +
 .../node_modules/lodash/_assignValue.js         |    28 +
 .../node_modules/lodash/_assocIndexOf.js        |    21 +
 .../node_modules/lodash/_baseAggregator.js      |    21 +
 .../archiver/node_modules/lodash/_baseAssign.js |    17 +
 .../node_modules/lodash/_baseAssignIn.js        |    17 +
 .../node_modules/lodash/_baseAssignValue.js     |    25 +
 .../archiver/node_modules/lodash/_baseAt.js     |    23 +
 .../archiver/node_modules/lodash/_baseClamp.js  |    22 +
 .../archiver/node_modules/lodash/_baseClone.js  |   171 +
 .../node_modules/lodash/_baseConforms.js        |    18 +
 .../node_modules/lodash/_baseConformsTo.js      |    27 +
 .../archiver/node_modules/lodash/_baseCreate.js |    30 +
 .../archiver/node_modules/lodash/_baseDelay.js  |    21 +
 .../node_modules/lodash/_baseDifference.js      |    67 +
 .../archiver/node_modules/lodash/_baseEach.js   |    14 +
 .../node_modules/lodash/_baseEachRight.js       |    14 +
 .../archiver/node_modules/lodash/_baseEvery.js  |    21 +
 .../node_modules/lodash/_baseExtremum.js        |    32 +
 .../archiver/node_modules/lodash/_baseFill.js   |    32 +
 .../archiver/node_modules/lodash/_baseFilter.js |    21 +
 .../node_modules/lodash/_baseFindIndex.js       |    24 +
 .../node_modules/lodash/_baseFindKey.js         |    23 +
 .../node_modules/lodash/_baseFlatten.js         |    38 +
 .../archiver/node_modules/lodash/_baseFor.js    |    16 +
 .../archiver/node_modules/lodash/_baseForOwn.js |    16 +
 .../node_modules/lodash/_baseForOwnRight.js     |    16 +
 .../node_modules/lodash/_baseForRight.js        |    15 +
 .../node_modules/lodash/_baseFunctions.js       |    19 +
 .../archiver/node_modules/lodash/_baseGet.js    |    24 +
 .../node_modules/lodash/_baseGetAllKeys.js      |    20 +
 .../archiver/node_modules/lodash/_baseGetTag.js |    28 +
 .../archiver/node_modules/lodash/_baseGt.js     |    14 +
 .../archiver/node_modules/lodash/_baseHas.js    |    19 +
 .../archiver/node_modules/lodash/_baseHasIn.js  |    13 +
 .../node_modules/lodash/_baseInRange.js         |    18 +
 .../node_modules/lodash/_baseIndexOf.js         |    20 +
 .../node_modules/lodash/_baseIndexOfWith.js     |    23 +
 .../node_modules/lodash/_baseIntersection.js    |    74 +
 .../node_modules/lodash/_baseInverter.js        |    21 +
 .../archiver/node_modules/lodash/_baseInvoke.js |    24 +
 .../node_modules/lodash/_baseIsArguments.js     |    18 +
 .../node_modules/lodash/_baseIsArrayBuffer.js   |    17 +
 .../archiver/node_modules/lodash/_baseIsDate.js |    18 +
 .../node_modules/lodash/_baseIsEqual.js         |    28 +
 .../node_modules/lodash/_baseIsEqualDeep.js     |    83 +
 .../archiver/node_modules/lodash/_baseIsMap.js  |    18 +
 .../node_modules/lodash/_baseIsMatch.js         |    62 +
 .../archiver/node_modules/lodash/_baseIsNaN.js  |    12 +
 .../node_modules/lodash/_baseIsNative.js        |    47 +
 .../node_modules/lodash/_baseIsRegExp.js        |    18 +
 .../archiver/node_modules/lodash/_baseIsSet.js  |    18 +
 .../node_modules/lodash/_baseIsTypedArray.js    |    60 +
 .../node_modules/lodash/_baseIteratee.js        |    31 +
 .../archiver/node_modules/lodash/_baseKeys.js   |    30 +
 .../archiver/node_modules/lodash/_baseKeysIn.js |    33 +
 .../archiver/node_modules/lodash/_baseLodash.js |    10 +
 .../archiver/node_modules/lodash/_baseLt.js     |    14 +
 .../archiver/node_modules/lodash/_baseMap.js    |    22 +
 .../node_modules/lodash/_baseMatches.js         |    22 +
 .../node_modules/lodash/_baseMatchesProperty.js |    33 +
 .../archiver/node_modules/lodash/_baseMean.js   |    20 +
 .../archiver/node_modules/lodash/_baseMerge.js  |    42 +
 .../node_modules/lodash/_baseMergeDeep.js       |    94 +
 .../archiver/node_modules/lodash/_baseNth.js    |    20 +
 .../node_modules/lodash/_baseOrderBy.js         |    34 +
 .../archiver/node_modules/lodash/_basePick.js   |    19 +
 .../archiver/node_modules/lodash/_basePickBy.js |    30 +
 .../node_modules/lodash/_baseProperty.js        |    14 +
 .../node_modules/lodash/_basePropertyDeep.js    |    16 +
 .../node_modules/lodash/_basePropertyOf.js      |    14 +
 .../node_modules/lodash/_basePullAll.js         |    51 +
 .../archiver/node_modules/lodash/_basePullAt.js |    37 +
 .../archiver/node_modules/lodash/_baseRandom.js |    18 +
 .../archiver/node_modules/lodash/_baseRange.js  |    28 +
 .../archiver/node_modules/lodash/_baseReduce.js |    23 +
 .../archiver/node_modules/lodash/_baseRepeat.js |    35 +
 .../archiver/node_modules/lodash/_baseRest.js   |    17 +
 .../archiver/node_modules/lodash/_baseSample.js |    15 +
 .../node_modules/lodash/_baseSampleSize.js      |    18 +
 .../archiver/node_modules/lodash/_baseSet.js    |    47 +
 .../node_modules/lodash/_baseSetData.js         |    17 +
 .../node_modules/lodash/_baseSetToString.js     |    22 +
 .../node_modules/lodash/_baseShuffle.js         |    15 +
 .../archiver/node_modules/lodash/_baseSlice.js  |    31 +
 .../archiver/node_modules/lodash/_baseSome.js   |    22 +
 .../archiver/node_modules/lodash/_baseSortBy.js |    21 +
 .../node_modules/lodash/_baseSortedIndex.js     |    42 +
 .../node_modules/lodash/_baseSortedIndexBy.js   |    64 +
 .../node_modules/lodash/_baseSortedUniq.js      |    30 +
 .../archiver/node_modules/lodash/_baseSum.js    |    24 +
 .../archiver/node_modules/lodash/_baseTimes.js  |    20 +
 .../node_modules/lodash/_baseToNumber.js        |    24 +
 .../node_modules/lodash/_baseToPairs.js         |    18 +
 .../node_modules/lodash/_baseToString.js        |    37 +
 .../archiver/node_modules/lodash/_baseUnary.js  |    14 +
 .../archiver/node_modules/lodash/_baseUniq.js   |    72 +
 .../archiver/node_modules/lodash/_baseUnset.js  |    20 +
 .../archiver/node_modules/lodash/_baseUpdate.js |    18 +
 .../archiver/node_modules/lodash/_baseValues.js |    19 +
 .../archiver/node_modules/lodash/_baseWhile.js  |    26 +
 .../node_modules/lodash/_baseWrapperValue.js    |    25 +
 .../archiver/node_modules/lodash/_baseXor.js    |    36 +
 .../node_modules/lodash/_baseZipObject.js       |    23 +
 .../archiver/node_modules/lodash/_cacheHas.js   |    13 +
 .../node_modules/lodash/_castArrayLikeObject.js |    14 +
 .../node_modules/lodash/_castFunction.js        |    14 +
 .../archiver/node_modules/lodash/_castPath.js   |    21 +
 .../archiver/node_modules/lodash/_castRest.js   |    14 +
 .../archiver/node_modules/lodash/_castSlice.js  |    18 +
 .../node_modules/lodash/_charsEndIndex.js       |    19 +
 .../node_modules/lodash/_charsStartIndex.js     |    20 +
 .../node_modules/lodash/_cloneArrayBuffer.js    |    16 +
 .../node_modules/lodash/_cloneBuffer.js         |    35 +
 .../node_modules/lodash/_cloneDataView.js       |    16 +
 .../node_modules/lodash/_cloneRegExp.js         |    17 +
 .../node_modules/lodash/_cloneSymbol.js         |    18 +
 .../node_modules/lodash/_cloneTypedArray.js     |    16 +
 .../node_modules/lodash/_compareAscending.js    |    41 +
 .../node_modules/lodash/_compareMultiple.js     |    44 +
 .../node_modules/lodash/_composeArgs.js         |    39 +
 .../node_modules/lodash/_composeArgsRight.js    |    41 +
 .../archiver/node_modules/lodash/_copyArray.js  |    20 +
 .../archiver/node_modules/lodash/_copyObject.js |    40 +
 .../node_modules/lodash/_copySymbols.js         |    16 +
 .../node_modules/lodash/_copySymbolsIn.js       |    16 +
 .../archiver/node_modules/lodash/_coreJsData.js |     6 +
 .../node_modules/lodash/_countHolders.js        |    21 +
 .../node_modules/lodash/_createAggregator.js    |    23 +
 .../node_modules/lodash/_createAssigner.js      |    37 +
 .../node_modules/lodash/_createBaseEach.js      |    32 +
 .../node_modules/lodash/_createBaseFor.js       |    25 +
 .../archiver/node_modules/lodash/_createBind.js |    28 +
 .../node_modules/lodash/_createCaseFirst.js     |    33 +
 .../node_modules/lodash/_createCompounder.js    |    24 +
 .../archiver/node_modules/lodash/_createCtor.js |    37 +
 .../node_modules/lodash/_createCurry.js         |    46 +
 .../archiver/node_modules/lodash/_createFind.js |    25 +
 .../archiver/node_modules/lodash/_createFlow.js |    78 +
 .../node_modules/lodash/_createHybrid.js        |    92 +
 .../node_modules/lodash/_createInverter.js      |    17 +
 .../node_modules/lodash/_createMathOperation.js |    38 +
 .../archiver/node_modules/lodash/_createOver.js |    27 +
 .../node_modules/lodash/_createPadding.js       |    33 +
 .../node_modules/lodash/_createPartial.js       |    43 +
 .../node_modules/lodash/_createRange.js         |    30 +
 .../node_modules/lodash/_createRecurry.js       |    56 +
 .../lodash/_createRelationalOperation.js        |    20 +
 .../node_modules/lodash/_createRound.js         |    33 +
 .../archiver/node_modules/lodash/_createSet.js  |    19 +
 .../node_modules/lodash/_createToPairs.js       |    30 +
 .../archiver/node_modules/lodash/_createWrap.js |   106 +
 .../lodash/_customDefaultsAssignIn.js           |    29 +
 .../node_modules/lodash/_customDefaultsMerge.js |    28 +
 .../node_modules/lodash/_customOmitClone.js     |    16 +
 .../node_modules/lodash/_deburrLetter.js        |    71 +
 .../node_modules/lodash/_defineProperty.js      |    11 +
 .../node_modules/lodash/_equalArrays.js         |    83 +
 .../archiver/node_modules/lodash/_equalByTag.js |   112 +
 .../node_modules/lodash/_equalObjects.js        |    89 +
 .../node_modules/lodash/_escapeHtmlChar.js      |    21 +
 .../node_modules/lodash/_escapeStringChar.js    |    22 +
 .../archiver/node_modules/lodash/_flatRest.js   |    16 +
 .../archiver/node_modules/lodash/_freeGlobal.js |     4 +
 .../archiver/node_modules/lodash/_getAllKeys.js |    16 +
 .../node_modules/lodash/_getAllKeysIn.js        |    17 +
 .../archiver/node_modules/lodash/_getData.js    |    15 +
 .../node_modules/lodash/_getFuncName.js         |    31 +
 .../archiver/node_modules/lodash/_getHolder.js  |    13 +
 .../archiver/node_modules/lodash/_getMapData.js |    18 +
 .../node_modules/lodash/_getMatchData.js        |    24 +
 .../archiver/node_modules/lodash/_getNative.js  |    17 +
 .../node_modules/lodash/_getPrototype.js        |     6 +
 .../archiver/node_modules/lodash/_getRawTag.js  |    46 +
 .../archiver/node_modules/lodash/_getSymbols.js |    30 +
 .../node_modules/lodash/_getSymbolsIn.js        |    25 +
 .../archiver/node_modules/lodash/_getTag.js     |    58 +
 .../archiver/node_modules/lodash/_getValue.js   |    13 +
 .../archiver/node_modules/lodash/_getView.js    |    33 +
 .../node_modules/lodash/_getWrapDetails.js      |    17 +
 .../archiver/node_modules/lodash/_hasPath.js    |    39 +
 .../archiver/node_modules/lodash/_hasUnicode.js |    26 +
 .../node_modules/lodash/_hasUnicodeWord.js      |    15 +
 .../archiver/node_modules/lodash/_hashClear.js  |    15 +
 .../archiver/node_modules/lodash/_hashDelete.js |    17 +
 .../archiver/node_modules/lodash/_hashGet.js    |    30 +
 .../archiver/node_modules/lodash/_hashHas.js    |    23 +
 .../archiver/node_modules/lodash/_hashSet.js    |    23 +
 .../node_modules/lodash/_initCloneArray.js      |    26 +
 .../node_modules/lodash/_initCloneByTag.js      |    77 +
 .../node_modules/lodash/_initCloneObject.js     |    18 +
 .../node_modules/lodash/_insertWrapDetails.js   |    23 +
 .../node_modules/lodash/_isFlattenable.js       |    20 +
 .../archiver/node_modules/lodash/_isIndex.js    |    25 +
 .../node_modules/lodash/_isIterateeCall.js      |    30 +
 .../archiver/node_modules/lodash/_isKey.js      |    29 +
 .../archiver/node_modules/lodash/_isKeyable.js  |    15 +
 .../archiver/node_modules/lodash/_isLaziable.js |    28 +
 .../archiver/node_modules/lodash/_isMaskable.js |    14 +
 .../archiver/node_modules/lodash/_isMasked.js   |    20 +
 .../node_modules/lodash/_isPrototype.js         |    18 +
 .../node_modules/lodash/_isStrictComparable.js  |    15 +
 .../node_modules/lodash/_iteratorToArray.js     |    18 +
 .../archiver/node_modules/lodash/_lazyClone.js  |    23 +
 .../node_modules/lodash/_lazyReverse.js         |    23 +
 .../archiver/node_modules/lodash/_lazyValue.js  |    69 +
 .../node_modules/lodash/_listCacheClear.js      |    13 +
 .../node_modules/lodash/_listCacheDelete.js     |    35 +
 .../node_modules/lodash/_listCacheGet.js        |    19 +
 .../node_modules/lodash/_listCacheHas.js        |    16 +
 .../node_modules/lodash/_listCacheSet.js        |    26 +
 .../node_modules/lodash/_mapCacheClear.js       |    21 +
 .../node_modules/lodash/_mapCacheDelete.js      |    18 +
 .../node_modules/lodash/_mapCacheGet.js         |    16 +
 .../node_modules/lodash/_mapCacheHas.js         |    16 +
 .../node_modules/lodash/_mapCacheSet.js         |    22 +
 .../archiver/node_modules/lodash/_mapToArray.js |    18 +
 .../lodash/_matchesStrictComparable.js          |    20 +
 .../node_modules/lodash/_memoizeCapped.js       |    26 +
 .../archiver/node_modules/lodash/_mergeData.js  |    90 +
 .../archiver/node_modules/lodash/_metaMap.js    |     6 +
 .../node_modules/lodash/_nativeCreate.js        |     6 +
 .../archiver/node_modules/lodash/_nativeKeys.js |     6 +
 .../node_modules/lodash/_nativeKeysIn.js        |    20 +
 .../archiver/node_modules/lodash/_nodeUtil.js   |    30 +
 .../node_modules/lodash/_objectToString.js      |    22 +
 .../archiver/node_modules/lodash/_overArg.js    |    15 +
 .../archiver/node_modules/lodash/_overRest.js   |    36 +
 .../archiver/node_modules/lodash/_parent.js     |    16 +
 .../archiver/node_modules/lodash/_reEscape.js   |     4 +
 .../archiver/node_modules/lodash/_reEvaluate.js |     4 +
 .../node_modules/lodash/_reInterpolate.js       |     4 +
 .../archiver/node_modules/lodash/_realNames.js  |     4 +
 .../archiver/node_modules/lodash/_reorder.js    |    29 +
 .../node_modules/lodash/_replaceHolders.js      |    29 +
 .../archiver/node_modules/lodash/_root.js       |     9 +
 .../archiver/node_modules/lodash/_safeGet.js    |    15 +
 .../node_modules/lodash/_setCacheAdd.js         |    19 +
 .../node_modules/lodash/_setCacheHas.js         |    14 +
 .../archiver/node_modules/lodash/_setData.js    |    20 +
 .../archiver/node_modules/lodash/_setToArray.js |    18 +
 .../archiver/node_modules/lodash/_setToPairs.js |    18 +
 .../node_modules/lodash/_setToString.js         |    14 +
 .../node_modules/lodash/_setWrapToString.js     |    21 +
 .../archiver/node_modules/lodash/_shortOut.js   |    37 +
 .../node_modules/lodash/_shuffleSelf.js         |    28 +
 .../archiver/node_modules/lodash/_stackClear.js |    15 +
 .../node_modules/lodash/_stackDelete.js         |    18 +
 .../archiver/node_modules/lodash/_stackGet.js   |    14 +
 .../archiver/node_modules/lodash/_stackHas.js   |    14 +
 .../archiver/node_modules/lodash/_stackSet.js   |    34 +
 .../node_modules/lodash/_strictIndexOf.js       |    23 +
 .../node_modules/lodash/_strictLastIndexOf.js   |    21 +
 .../archiver/node_modules/lodash/_stringSize.js |    18 +
 .../node_modules/lodash/_stringToArray.js       |    18 +
 .../node_modules/lodash/_stringToPath.js        |    27 +
 .../archiver/node_modules/lodash/_toKey.js      |    21 +
 .../archiver/node_modules/lodash/_toSource.js   |    26 +
 .../node_modules/lodash/_unescapeHtmlChar.js    |    21 +
 .../node_modules/lodash/_unicodeSize.js         |    44 +
 .../node_modules/lodash/_unicodeToArray.js      |    40 +
 .../node_modules/lodash/_unicodeWords.js        |    69 +
 .../node_modules/lodash/_updateWrapDetails.js   |    46 +
 .../node_modules/lodash/_wrapperClone.js        |    23 +
 .../archiver/node_modules/lodash/add.js         |    22 +
 .../archiver/node_modules/lodash/after.js       |    42 +
 .../archiver/node_modules/lodash/array.js       |    67 +
 .../archiver/node_modules/lodash/ary.js         |    29 +
 .../archiver/node_modules/lodash/assign.js      |    58 +
 .../archiver/node_modules/lodash/assignIn.js    |    40 +
 .../node_modules/lodash/assignInWith.js         |    38 +
 .../archiver/node_modules/lodash/assignWith.js  |    37 +
 node_modules/archiver/node_modules/lodash/at.js |    23 +
 .../archiver/node_modules/lodash/attempt.js     |    35 +
 .../archiver/node_modules/lodash/before.js      |    40 +
 .../archiver/node_modules/lodash/bind.js        |    57 +
 .../archiver/node_modules/lodash/bindAll.js     |    41 +
 .../archiver/node_modules/lodash/bindKey.js     |    68 +
 .../archiver/node_modules/lodash/camelCase.js   |    29 +
 .../archiver/node_modules/lodash/capitalize.js  |    23 +
 .../archiver/node_modules/lodash/castArray.js   |    44 +
 .../archiver/node_modules/lodash/ceil.js        |    26 +
 .../archiver/node_modules/lodash/chain.js       |    38 +
 .../archiver/node_modules/lodash/chunk.js       |    50 +
 .../archiver/node_modules/lodash/clamp.js       |    39 +
 .../archiver/node_modules/lodash/clone.js       |    36 +
 .../archiver/node_modules/lodash/cloneDeep.js   |    29 +
 .../node_modules/lodash/cloneDeepWith.js        |    40 +
 .../archiver/node_modules/lodash/cloneWith.js   |    42 +
 .../archiver/node_modules/lodash/collection.js  |    30 +
 .../archiver/node_modules/lodash/commit.js      |    33 +
 .../archiver/node_modules/lodash/compact.js     |    31 +
 .../archiver/node_modules/lodash/concat.js      |    43 +
 .../archiver/node_modules/lodash/cond.js        |    60 +
 .../archiver/node_modules/lodash/conforms.js    |    35 +
 .../archiver/node_modules/lodash/conformsTo.js  |    32 +
 .../archiver/node_modules/lodash/constant.js    |    26 +
 .../archiver/node_modules/lodash/core.js        |  3854 +++
 .../archiver/node_modules/lodash/core.min.js    |    29 +
 .../archiver/node_modules/lodash/countBy.js     |    40 +
 .../archiver/node_modules/lodash/create.js      |    43 +
 .../archiver/node_modules/lodash/curry.js       |    57 +
 .../archiver/node_modules/lodash/curryRight.js  |    54 +
 .../archiver/node_modules/lodash/date.js        |     3 +
 .../archiver/node_modules/lodash/debounce.js    |   190 +
 .../archiver/node_modules/lodash/deburr.js      |    45 +
 .../archiver/node_modules/lodash/defaultTo.js   |    25 +
 .../archiver/node_modules/lodash/defaults.js    |    64 +
 .../node_modules/lodash/defaultsDeep.js         |    30 +
 .../archiver/node_modules/lodash/defer.js       |    26 +
 .../archiver/node_modules/lodash/delay.js       |    28 +
 .../archiver/node_modules/lodash/difference.js  |    33 +
 .../node_modules/lodash/differenceBy.js         |    44 +
 .../node_modules/lodash/differenceWith.js       |    40 +
 .../archiver/node_modules/lodash/divide.js      |    22 +
 .../archiver/node_modules/lodash/drop.js        |    38 +
 .../archiver/node_modules/lodash/dropRight.js   |    39 +
 .../node_modules/lodash/dropRightWhile.js       |    45 +
 .../archiver/node_modules/lodash/dropWhile.js   |    45 +
 .../archiver/node_modules/lodash/each.js        |     1 +
 .../archiver/node_modules/lodash/eachRight.js   |     1 +
 .../archiver/node_modules/lodash/endsWith.js    |    43 +
 .../archiver/node_modules/lodash/entries.js     |     1 +
 .../archiver/node_modules/lodash/entriesIn.js   |     1 +
 node_modules/archiver/node_modules/lodash/eq.js |    37 +
 .../archiver/node_modules/lodash/escape.js      |    43 +
 .../node_modules/lodash/escapeRegExp.js         |    32 +
 .../archiver/node_modules/lodash/every.js       |    56 +
 .../archiver/node_modules/lodash/extend.js      |     1 +
 .../archiver/node_modules/lodash/extendWith.js  |     1 +
 .../archiver/node_modules/lodash/fill.js        |    45 +
 .../archiver/node_modules/lodash/filter.js      |    48 +
 .../archiver/node_modules/lodash/find.js        |    42 +
 .../archiver/node_modules/lodash/findIndex.js   |    55 +
 .../archiver/node_modules/lodash/findKey.js     |    44 +
 .../archiver/node_modules/lodash/findLast.js    |    25 +
 .../node_modules/lodash/findLastIndex.js        |    59 +
 .../archiver/node_modules/lodash/findLastKey.js |    44 +
 .../archiver/node_modules/lodash/first.js       |     1 +
 .../archiver/node_modules/lodash/flatMap.js     |    29 +
 .../archiver/node_modules/lodash/flatMapDeep.js |    31 +
 .../node_modules/lodash/flatMapDepth.js         |    31 +
 .../archiver/node_modules/lodash/flatten.js     |    22 +
 .../archiver/node_modules/lodash/flattenDeep.js |    25 +
 .../node_modules/lodash/flattenDepth.js         |    33 +
 .../archiver/node_modules/lodash/flip.js        |    28 +
 .../archiver/node_modules/lodash/floor.js       |    26 +
 .../archiver/node_modules/lodash/flow.js        |    27 +
 .../archiver/node_modules/lodash/flowRight.js   |    26 +
 .../archiver/node_modules/lodash/forEach.js     |    41 +
 .../node_modules/lodash/forEachRight.js         |    31 +
 .../archiver/node_modules/lodash/forIn.js       |    39 +
 .../archiver/node_modules/lodash/forInRight.js  |    37 +
 .../archiver/node_modules/lodash/forOwn.js      |    36 +
 .../archiver/node_modules/lodash/forOwnRight.js |    34 +
 node_modules/archiver/node_modules/lodash/fp.js |     2 +
 .../archiver/node_modules/lodash/fp/F.js        |     1 +
 .../archiver/node_modules/lodash/fp/T.js        |     1 +
 .../archiver/node_modules/lodash/fp/__.js       |     1 +
 .../node_modules/lodash/fp/_baseConvert.js      |   573 +
 .../node_modules/lodash/fp/_convertBrowser.js   |    18 +
 .../node_modules/lodash/fp/_falseOptions.js     |     7 +
 .../archiver/node_modules/lodash/fp/_mapping.js |   368 +
 .../archiver/node_modules/lodash/fp/_util.js    |    16 +
 .../archiver/node_modules/lodash/fp/add.js      |     5 +
 .../archiver/node_modules/lodash/fp/after.js    |     5 +
 .../archiver/node_modules/lodash/fp/all.js      |     1 +
 .../archiver/node_modules/lodash/fp/allPass.js  |     1 +
 .../archiver/node_modules/lodash/fp/always.js   |     1 +
 .../archiver/node_modules/lodash/fp/any.js      |     1 +
 .../archiver/node_modules/lodash/fp/anyPass.js  |     1 +
 .../archiver/node_modules/lodash/fp/apply.js    |     1 +
 .../archiver/node_modules/lodash/fp/array.js    |     2 +
 .../archiver/node_modules/lodash/fp/ary.js      |     5 +
 .../archiver/node_modules/lodash/fp/assign.js   |     5 +
 .../node_modules/lodash/fp/assignAll.js         |     5 +
 .../node_modules/lodash/fp/assignAllWith.js     |     5 +
 .../archiver/node_modules/lodash/fp/assignIn.js |     5 +
 .../node_modules/lodash/fp/assignInAll.js       |     5 +
 .../node_modules/lodash/fp/assignInAllWith.js   |     5 +
 .../node_modules/lodash/fp/assignInWith.js      |     5 +
 .../node_modules/lodash/fp/assignWith.js        |     5 +
 .../archiver/node_modules/lodash/fp/assoc.js    |     1 +
 .../node_modules/lodash/fp/assocPath.js         |     1 +
 .../archiver/node_modules/lodash/fp/at.js       |     5 +
 .../archiver/node_modules/lodash/fp/attempt.js  |     5 +
 .../archiver/node_modules/lodash/fp/before.js   |     5 +
 .../archiver/node_modules/lodash/fp/bind.js     |     5 +
 .../archiver/node_modules/lodash/fp/bindAll.js  |     5 +
 .../archiver/node_modules/lodash/fp/bindKey.js  |     5 +
 .../node_modules/lodash/fp/camelCase.js         |     5 +
 .../node_modules/lodash/fp/capitalize.js        |     5 +
 .../node_modules/lodash/fp/castArray.js         |     5 +
 .../archiver/node_modules/lodash/fp/ceil.js     |     5 +
 .../archiver/node_modules/lodash/fp/chain.js    |     5 +
 .../archiver/node_modules/lodash/fp/chunk.js    |     5 +
 .../archiver/node_modules/lodash/fp/clamp.js    |     5 +
 .../archiver/node_modules/lodash/fp/clone.js    |     5 +
 .../node_modules/lodash/fp/cloneDeep.js         |     5 +
 .../node_modules/lodash/fp/cloneDeepWith.js     |     5 +
 .../node_modules/lodash/fp/cloneWith.js         |     5 +
 .../node_modules/lodash/fp/collection.js        |     2 +
 .../archiver/node_modules/lodash/fp/commit.js   |     5 +
 .../archiver/node_modules/lodash/fp/compact.js  |     5 +
 .../node_modules/lodash/fp/complement.js        |     1 +
 .../archiver/node_modules/lodash/fp/compose.js  |     1 +
 .../archiver/node_modules/lodash/fp/concat.js   |     5 +
 .../archiver/node_modules/lodash/fp/cond.js     |     5 +
 .../archiver/node_modules/lodash/fp/conforms.js |     1 +
 .../node_modules/lodash/fp/conformsTo.js        |     5 +
 .../archiver/node_modules/lodash/fp/constant.js |     5 +
 .../archiver/node_modules/lodash/fp/contains.js |     1 +
 .../archiver/node_modules/lodash/fp/convert.js  |    18 +
 .../archiver/node_modules/lodash/fp/countBy.js  |     5 +
 .../archiver/node_modules/lodash/fp/create.js   |     5 +
 .../archiver/node_modules/lodash/fp/curry.js    |     5 +
 .../archiver/node_modules/lodash/fp/curryN.js   |     5 +
 .../node_modules/lodash/fp/curryRight.js        |     5 +
 .../node_modules/lodash/fp/curryRightN.js       |     5 +
 .../archiver/node_modules/lodash/fp/date.js     |     2 +
 .../archiver/node_modules/lodash/fp/debounce.js |     5 +
 .../archiver/node_modules/lodash/fp/deburr.js   |     5 +
 .../node_modules/lodash/fp/defaultTo.js         |     5 +
 .../archiver/node_modules/lodash/fp/defaults.js |     5 +
 .../node_modules/lodash/fp/defaultsAll.js       |     5 +
 .../node_modules/lodash/fp/defaultsDeep.js      |     5 +
 .../node_modules/lodash/fp/defaultsDeepAll.js   |     5 +
 .../archiver/node_modules/lodash/fp/defer.js    |     5 +
 .../archiver/node_modules/lodash/fp/delay.js    |     5 +
 .../node_modules/lodash/fp/difference.js        |     5 +
 .../node_modules/lodash/fp/differenceBy.js      |     5 +
 .../node_modules/lodash/fp/differenceWith.js    |     5 +
 .../archiver/node_modules/lodash/fp/dissoc.js   |     1 +
 .../node_modules/lodash/fp/dissocPath.js        |     1 +
 .../archiver/node_modules/lodash/fp/divide.js   |     5 +
 .../archiver/node_modules/lodash/fp/drop.js     |     5 +
 .../archiver/node_modules/lodash/fp/dropLast.js |     1 +
 .../node_modules/lodash/fp/dropLastWhile.js     |     1 +
 .../node_modules/lodash/fp/dropRight.js         |     5 +
 .../node_modules/lodash/fp/dropRightWhile.js    |     5 +
 .../node_modules/lodash/fp/dropWhile.js         |     5 +
 .../archiver/node_modules/lodash/fp/each.js     |     1 +
 .../node_modules/lodash/fp/eachRight.js         |     1 +
 .../archiver/node_modules/lodash/fp/endsWith.js |     5 +
 .../archiver/node_modules/lodash/fp/entries.js  |     1 +
 .../node_modules/lodash/fp/entriesIn.js         |     1 +
 .../archiver/node_modules/lodash/fp/eq.js       |     5 +
 .../archiver/node_modules/lodash/fp/equals.js   |     1 +
 .../archiver/node_modules/lodash/fp/escape.js   |     5 +
 .../node_modules/lodash/fp/escapeRegExp.js      |     5 +
 .../archiver/node_modules/lodash/fp/every.js    |     5 +
 .../archiver/node_modules/lodash/fp/extend.js   |     1 +
 .../node_modules/lodash/fp/extendAll.js         |     1 +
 .../node_modules/lodash/fp/extendAllWith.js     |     1 +
 .../node_modules/lodash/fp/extendWith.js        |     1 +
 .../archiver/node_modules/lodash/fp/fill.js     |     5 +
 .../archiver/node_modules/lodash/fp/filter.js   |     5 +
 .../archiver/node_modules/lodash/fp/find.js     |     5 +
 .../archiver/node_modules/lodash/fp/findFrom.js |     5 +
 .../node_modules/lodash/fp/findIndex.js         |     5 +
 .../node_modules/lodash/fp/findIndexFrom.js     |     5 +
 .../archiver/node_modules/lodash/fp/findKey.js  |     5 +
 .../archiver/node_modules/lodash/fp/findLast.js |     5 +
 .../node_modules/lodash/fp/findLastFrom.js      |     5 +
 .../node_modules/lodash/fp/findLastIndex.js     |     5 +
 .../node_modules/lodash/fp/findLastIndexFrom.js |     5 +
 .../node_modules/lodash/fp/findLastKey.js       |     5 +
 .../archiver/node_modules/lodash/fp/first.js    |     1 +
 .../archiver/node_modules/lodash/fp/flatMap.js  |     5 +
 .../node_modules/lodash/fp/flatMapDeep.js       |     5 +
 .../node_modules/lodash/fp/flatMapDepth.js      |     5 +
 .../archiver/node_modules/lodash/fp/flatten.js  |     5 +
 .../node_modules/lodash/fp/flattenDeep.js       |     5 +
 .../node_modules/lodash/fp/flattenDepth.js      |     5 +
 .../archiver/node_modules/lodash/fp/flip.js     |     5 +
 .../archiver/node_modules/lodash/fp/floor.js    |     5 +
 .../archiver/node_modules/lodash/fp/flow.js     |     5 +
 .../node_modules/lodash/fp/flowRight.js         |     5 +
 .../archiver/node_modules/lodash/fp/forEach.js  |     5 +
 .../node_modules/lodash/fp/forEachRight.js      |     5 +
 .../archiver/node_modules/lodash/fp/forIn.js    |     5 +
 .../node_modules/lodash/fp/forInRight.js        |     5 +
 .../archiver/node_modules/lodash/fp/forOwn.js   |     5 +
 .../node_modules/lodash/fp/forOwnRight.js       |     5 +
 .../node_modules/lodash/fp/fromPairs.js         |     5 +
 .../archiver/node_modules/lodash/fp/function.js |     2 +
 .../node_modules/lodash/fp/functions.js         |     5 +
 .../node_modules/lodash/fp/functionsIn.js       |     5 +
 .../archiver/node_modules/lodash/fp/get.js      |     5 +
 .../archiver/node_modules/lodash/fp/getOr.js    |     5 +
 .../archiver/node_modules/lodash/fp/groupBy.js  |     5 +
 .../archiver/node_modules/lodash/fp/gt.js       |     5 +
 .../archiver/node_modules/lodash/fp/gte.js      |     5 +
 .../archiver/node_modules/lodash/fp/has.js      |     5 +
 .../archiver/node_modules/lodash/fp/hasIn.js    |     5 +
 .../archiver/node_modules/lodash/fp/head.js     |     5 +
 .../node_modules/lodash/fp/identical.js         |     1 +
 .../archiver/node_modules/lodash/fp/identity.js |     5 +
 .../archiver/node_modules/lodash/fp/inRange.js  |     5 +
 .../archiver/node_modules/lodash/fp/includes.js |     5 +
 .../node_modules/lodash/fp/includesFrom.js      |     5 +
 .../archiver/node_modules/lodash/fp/indexBy.js  |     1 +
 .../archiver/node_modules/lodash/fp/indexOf.js  |     5 +
 .../node_modules/lodash/fp/indexOfFrom.js       |     5 +
 .../archiver/node_modules/lodash/fp/init.js     |     1 +
 .../archiver/node_modules/lodash/fp/initial.js  |     5 +
 .../node_modules/lodash/fp/intersection.js      |     5 +
 .../node_modules/lodash/fp/intersectionBy.js    |     5 +
 .../node_modules/lodash/fp/intersectionWith.js  |     5 +
 .../archiver/node_modules/lodash/fp/invert.js   |     5 +
 .../archiver/node_modules/lodash/fp/invertBy.js |     5 +
 .../node_modules/lodash/fp/invertObj.js         |     1 +
 .../archiver/node_modules/lodash/fp/invoke.js   |     5 +
 .../node_modules/lodash/fp/invokeArgs.js        |     5 +
 .../node_modules/lodash/fp/invokeArgsMap.js     |     5 +
 .../node_modules/lodash/fp/invokeMap.js         |     5 +
 .../node_modules/lodash/fp/isArguments.js       |     5 +
 .../archiver/node_modules/lodash/fp/isArray.js  |     5 +
 .../node_modules/lodash/fp/isArrayBuffer.js     |     5 +
 .../node_modules/lodash/fp/isArrayLike.js       |     5 +
 .../node_modules/lodash/fp/isArrayLikeObject.js |     5 +
 .../node_modules/lodash/fp/isBoolean.js         |     5 +
 .../archiver/node_modules/lodash/fp/isBuffer.js |     5 +
 .../archiver/node_modules/lodash/fp/isDate.js   |     5 +
 .../node_modules/lodash/fp/isElement.js         |     5 +
 .../archiver/node_modules/lodash/fp/isEmpty.js  |     5 +
 .../archiver/node_modules/lodash/fp/isEqual.js  |     5 +
 .../node_modules/lodash/fp/isEqualWith.js       |     5 +
 .../archiver/node_modules/lodash/fp/isError.js  |     5 +
 .../archiver/node_modules/lodash/fp/isFinite.js |     5 +
 .../node_modules/lodash/fp/isFunction.js        |     5 +
 .../node_modules/lodash/fp/isInteger.js         |     5 +
 .../archiver/node_modules/lodash/fp/isLength.js |     5 +
 .../archiver/node_modules/lodash/fp/isMap.js    |     5 +
 .../archiver/node_modules/lodash/fp/isMatch.js  |     5 +
 .../node_modules/lodash/fp/isMatchWith.js       |     5 +
 .../archiver/node_modules/lodash/fp/isNaN.js    |     5 +
 .../archiver/node_modules/lodash/fp/isNative.js |     5 +
 .../archiver/node_modules/lodash/fp/isNil.js    |     5 +
 .../archiver/node_modules/lodash/fp/isNull.js   |     5 +
 .../archiver/node_modules/lodash/fp/isNumber.js |     5 +
 .../archiver/node_modules/lodash/fp/isObject.js |     5 +
 .../node_modules/lodash/fp/isObjectLike.js      |     5 +
 .../node_modules/lodash/fp/isPlainObject.js     |     5 +
 .../archiver/node_modules/lodash/fp/isRegExp.js |     5 +
 .../node_modules/lodash/fp/isSafeInteger.js     |     5 +
 .../archiver/node_modules/lodash/fp/isSet.js    |     5 +
 .../archiver/node_modules/lodash/fp/isString.js |     5 +
 .../archiver/node_modules/lodash/fp/isSymbol.js |     5 +
 .../node_modules/lodash/fp/isTypedArray.js      |     5 +
 .../node_modules/lodash/fp/isUndefined.js       |     5 +
 .../node_modules/lodash/fp/isWeakMap.js         |     5 +
 .../node_modules/lodash/fp/isWeakSet.js         |     5 +
 .../archiver/node_modules/lodash/fp/iteratee.js |     5 +
 .../archiver/node_modules/lodash/fp/join.js     |     5 +
 .../archiver/node_modules/lodash/fp/juxt.js     |     1 +
 .../node_modules/lodash/fp/kebabCase.js         |     5 +
 .../archiver/node_modules/lodash/fp/keyBy.js    |     5 +
 .../archiver/node_modules/lodash/fp/keys.js     |     5 +
 .../archiver/node_modules/lodash/fp/keysIn.js   |     5 +
 .../archiver/node_modules/lodash/fp/lang.js     |     2 +
 .../archiver/node_modules/lodash/fp/last.js     |     5 +
 .../node_modules/lodash/fp/lastIndexOf.js       |     5 +
 .../node_modules/lodash/fp/lastIndexOfFrom.js   |     5 +
 .../node_modules/lodash/fp/lowerCase.js         |     5 +
 .../node_modules/lodash/fp/lowerFirst.js        |     5 +
 .../archiver/node_modules/lodash/fp/lt.js       |     5 +
 .../archiver/node_modules/lodash/fp/lte.js      |     5 +
 .../archiver/node_modules/lodash/fp/map.js      |     5 +
 .../archiver/node_modules/lodash/fp/mapKeys.js  |     5 +
 .../node_modules/lodash/fp/mapValues.js         |     5 +
 .../archiver/node_modules/lodash/fp/matches.js  |     1 +
 .../node_modules/lodash/fp/matchesProperty.js   |     5 +
 .../archiver/node_modules/lodash/fp/math.js     |     2 +
 .../archiver/node_modules/lodash/fp/max.js      |     5 +
 .../archiver/node_modules/lodash/fp/maxBy.js    |     5 +
 .../archiver/node_modules/lodash/fp/mean.js     |     5 +
 .../archiver/node_modules/lodash/fp/meanBy.js   |     5 +
 .../archiver/node_modules/lodash/fp/memoize.js  |     5 +
 .../archiver/node_modules/lodash/fp/merge.js    |     5 +
 .../archiver/node_modules/lodash/fp/mergeAll.js |     5 +
 .../node_modules/lodash/fp/mergeAllWith.js      |     5 +
 .../node_modules/lodash/fp/mergeWith.js         |     5 +
 .../archiver/node_modules/lodash/fp/method.js   |     5 +
 .../archiver/node_modules/lodash/fp/methodOf.js |     5 +
 .../archiver/node_modules/lodash/fp/min.js      |     5 +
 .../archiver/node_modules/lodash/fp/minBy.js    |     5 +
 .../archiver/node_modules/lodash/fp/mixin.js    |     5 +
 .../archiver/node_modules/lodash/fp/multiply.js |     5 +
 .../archiver/node_modules/lodash/fp/nAry.js     |     1 +
 .../archiver/node_modules/lodash/fp/negate.js   |     5 +
 .../archiver/node_modules/lodash/fp/next.js     |     5 +
 .../archiver/node_modules/lodash/fp/noop.js     |     5 +
 .../archiver/node_modules/lodash/fp/now.js      |     5 +
 .../archiver/node_modules/lodash/fp/nth.js      |     5 +
 .../archiver/node_modules/lodash/fp/nthArg.js   |     5 +
 .../archiver/node_modules/lodash/fp/number.js   |     2 +
 .../archiver/node_modules/lodash/fp/object.js   |     2 +
 .../archiver/node_modules/lodash/fp/omit.js     |     5 +
 .../archiver/node_modules/lodash/fp/omitAll.js  |     1 +
 .../archiver/node_modules/lodash/fp/omitBy.js   |     5 +
 .../archiver/node_modules/lodash/fp/once.js     |     5 +
 .../archiver/node_modules/lodash/fp/orderBy.js  |     5 +
 .../archiver/node_modules/lodash/fp/over.js     |     5 +
 .../archiver/node_modules/lodash/fp/overArgs.js |     5 +
 .../node_modules/lodash/fp/overEvery.js         |     5 +
 .../archiver/node_modules/lodash/fp/overSome.js |     5 +
 .../archiver/node_modules/lodash/fp/pad.js      |     5 +
 .../archiver/node_modules/lodash/fp/padChars.js |     5 +
 .../node_modules/lodash/fp/padCharsEnd.js       |     5 +
 .../node_modules/lodash/fp/padCharsStart.js     |     5 +
 .../archiver/node_modules/lodash/fp/padEnd.js   |     5 +
 .../archiver/node_modules/lodash/fp/padStart.js |     5 +
 .../archiver/node_modules/lodash/fp/parseInt.js |     5 +
 .../archiver/node_modules/lodash/fp/partial.js  |     5 +
 .../node_modules/lodash/fp/partialRight.js      |     5 +
 .../node_modules/lodash/fp/partition.js         |     5 +
 .../archiver/node_modules/lodash/fp/path.js     |     1 +
 .../archiver/node_modules/lodash/fp/pathEq.js   |     1 +
 .../archiver/node_modules/lodash/fp/pathOr.js   |     1 +
 .../archiver/node_modules/lodash/fp/paths.js    |     1 +
 .../archiver/node_modules/lodash/fp/pick.js     |     5 +
 .../archiver/node_modules/lodash/fp/pickAll.js  |     1 +
 .../archiver/node_modules/lodash/fp/pickBy.js   |     5 +
 .../archiver/node_modules/lodash/fp/pipe.js     |     1 +
 .../node_modules/lodash/fp/placeholder.js       |     6 +
 .../archiver/node_modules/lodash/fp/plant.js    |     5 +
 .../archiver/node_modules/lodash/fp/pluck.js    |     1 +
 .../archiver/node_modules/lodash/fp/prop.js     |     1 +
 .../archiver/node_modules/lodash/fp/propEq.js   |     1 +
 .../archiver/node_modules/lodash/fp/propOr.js   |     1 +
 .../archiver/node_modules/lodash/fp/property.js |     1 +
 .../node_modules/lodash/fp/propertyOf.js        |     5 +
 .../archiver/node_modules/lodash/fp/props.js    |     1 +
 .../archiver/node_modules/lodash/fp/pull.js     |     5 +
 .../archiver/node_modules/lodash/fp/pullAll.js  |     5 +
 .../node_modules/lodash/fp/pullAllBy.js         |     5 +
 .../node_modules/lodash/fp/pullAllWith.js       |     5 +
 .../archiver/node_modules/lodash/fp/pullAt.js   |     5 +
 .../archiver/node_modules/lodash/fp/random.js   |     5 +
 .../archiver/node_modules/lodash/fp/range.js    |     5 +
 .../node_modules/lodash/fp/rangeRight.js        |     5 +
 .../node_modules/lodash/fp/rangeStep.js         |     5 +
 .../node_modules/lodash/fp/rangeStepRight.js    |     5 +
 .../archiver/node_modules/lodash/fp/rearg.js    |     5 +
 .../archiver/node_modules/lodash/fp/reduce.js   |     5 +
 .../node_modules/lodash/fp/reduceRight.js       |     5 +
 .../archiver/node_modules/lodash/fp/reject.js   |     5 +
 .../archiver/node_modules/lodash/fp/remove.js   |     5 +
 .../archiver/node_modules/lodash/fp/repeat.js   |     5 +
 .../archiver/node_modules/lodash/fp/replace.js  |     5 +
 .../archiver/node_modules/lodash/fp/rest.js     |     5 +
 .../archiver/node_modules/lodash/fp/restFrom.js |     5 +
 .../archiver/node_modules/lodash/fp/result.js   |     5 +
 .../archiver/node_modules/lodash/fp/reverse.js  |     5 +
 .../archiver/node_modules/lodash/fp/round.js    |     5 +
 .../archiver/node_modules/lodash/fp/sample.js   |     5 +
 .../node_modules/lodash/fp/sampleSize.js        |     5 +
 .../archiver/node_modules/lodash/fp/seq.js      |     2 +
 .../archiver/node_modules/lodash/fp/set.js      |     5 +
 .../archiver/node_modules/lodash/fp/setWith.js  |     5 +
 .../archiver/node_modules/lodash/fp/shuffle.js  |     5 +
 .../archiver/node_modules/lodash/fp/size.js     |     5 +
 .../archiver/node_modules/lodash/fp/slice.js    |     5 +
 .../node_modules/lodash/fp/snakeCase.js         |     5 +
 .../archiver/node_modules/lodash/fp/some.js     |     5 +
 .../archiver/node_modules/lodash/fp/sortBy.js   |     5 +
 .../node_modules/lodash/fp/sortedIndex.js       |     5 +
 .../node_modules/lodash/fp/sortedIndexBy.js     |     5 +
 .../node_modules/lodash/fp/sortedIndexOf.js     |     5 +
 .../node_modules/lodash/fp/sortedLastIndex.js   |     5 +
 .../node_modules/lodash/fp/sortedLastIndexBy.js |     5 +
 .../node_modules/lodash/fp/sortedLastIndexOf.js |     5 +
 .../node_modules/lodash/fp/sortedUniq.js        |     5 +
 .../node_modules/lodash/fp/sortedUniqBy.js      |     5 +
 .../archiver/node_modules/lodash/fp/split.js    |     5 +
 .../archiver/node_modules/lodash/fp/spread.js   |     5 +
 .../node_modules/lodash/fp/spreadFrom.js        |     5 +
 .../node_modules/lodash/fp/startCase.js         |     5 +
 .../node_modules/lodash/fp/startsWith.js        |     5 +
 .../archiver/node_modules/lodash/fp/string.js   |     2 +
 .../node_modules/lodash/fp/stubArray.js         |     5 +
 .../node_modules/lodash/fp/stubFalse.js         |     5 +
 .../node_modules/lodash/fp/stubObject.js        |     5 +
 .../node_modules/lodash/fp/stubString.js        |     5 +
 .../archiver/node_modules/lodash/fp/stubTrue.js |     5 +
 .../archiver/node_modules/lodash/fp/subtract.js |     5 +
 .../archiver/node_modules/lodash/fp/sum.js      |     5 +
 .../archiver/node_modules/lodash/fp/sumBy.js    |     5 +
 .../lodash/fp/symmetricDifference.js            |     1 +
 .../lodash/fp/symmetricDifferenceBy.js          |     1 +
 .../lodash/fp/symmetricDifferenceWith.js        |     1 +
 .../archiver/node_modules/lodash/fp/tail.js     |     5 +
 .../archiver/node_modules/lodash/fp/take.js     |     5 +
 .../archiver/node_modules/lodash/fp/takeLast.js |     1 +
 .../node_modules/lodash/fp/takeLastWhile.js     |     1 +
 .../node_modules/lodash/fp/takeRight.js         |     5 +
 .../node_modules/lodash/fp/takeRightWhile.js    |     5 +
 .../node_modules/lodash/fp/takeWhile.js         |     5 +
 .../archiver/node_modules/lodash/fp/tap.js      |     5 +
 .../archiver/node_modules/lodash/fp/template.js |     5 +
 .../node_modules/lodash/fp/templateSettings.js  |     5 +
 .../archiver/node_modules/lodash/fp/throttle.js |     5 +
 .../archiver/node_modules/lodash/fp/thru.js     |     5 +
 .../archiver/node_modules/lodash/fp/times.js    |     5 +
 .../archiver/node_modules/lodash/fp/toArray.js  |     5 +
 .../archiver/node_modules/lodash/fp/toFinite.js |     5 +
 .../node_modules/lodash/fp/toInteger.js         |     5 +
 .../node_modules/lodash/fp/toIterator.js        |     5 +
 .../archiver/node_modules/lodash/fp/toJSON.js   |     5 +
 .../archiver/node_modules/lodash/fp/toLength.js |     5 +
 .../archiver/node_modules/lodash/fp/toLower.js  |     5 +
 .../archiver/node_modules/lodash/fp/toNumber.js |     5 +
 .../archiver/node_modules/lodash/fp/toPairs.js  |     5 +
 .../node_modules/lodash/fp/toPairsIn.js         |     5 +
 .../archiver/node_modules/lodash/fp/toPath.js   |     5 +
 .../node_modules/lodash/fp/toPlainObject.js     |     5 +
 .../node_modules/lodash/fp/toSafeInteger.js     |     5 +
 .../archiver/node_modules/lodash/fp/toString.js |     5 +
 .../archiver/node_modules/lodash/fp/toUpper.js  |     5 +
 .../node_modules/lodash/fp/transform.js         |     5 +
 .../archiver/node_modules/lodash/fp/trim.js     |     5 +
 .../node_modules/lodash/fp/trimChars.js         |     5 +
 .../node_modules/lodash/fp/trimCharsEnd.js      |     5 +
 .../node_modules/lodash/fp/trimCharsStart.js    |     5 +
 .../archiver/node_modules/lodash/fp/trimEnd.js  |     5 +
 .../node_modules/lodash/fp/trimStart.js         |     5 +
 .../archiver/node_modules/lodash/fp/truncate.js |     5 +
 .../archiver/node_modules/lodash/fp/unapply.js  |     1 +
 .../archiver/node_modules/lodash/fp/unary.js    |     5 +
 .../archiver/node_modules/lodash/fp/unescape.js |     5 +
 .../archiver/node_modules/lodash/fp/union.js    |     5 +
 .../archiver/node_modules/lodash/fp/unionBy.js  |     5 +
 .../node_modules/lodash/fp/unionWith.js         |     5 +
 .../archiver/node_modules/lodash/fp/uniq.js     |     5 +
 .../archiver/node_modules/lodash/fp/uniqBy.js   |     5 +
 .../archiver/node_modules/lodash/fp/uniqWith.js |     5 +
 .../archiver/node_modules/lodash/fp/uniqueId.js |     5 +
 .../archiver/node_modules/lodash/fp/unnest.js   |     1 +
 .../archiver/node_modules/lodash/fp/unset.js    |     5 +
 .../archiver/node_modules/lodash/fp/unzip.js    |     5 +
 .../node_modules/lodash/fp/unzipWith.js         |     5 +
 .../archiver/node_modules/lodash/fp/update.js   |     5 +
 .../node_modules/lodash/fp/updateWith.js        |     5 +
 .../node_modules/lodash/fp/upperCase.js         |     5 +
 .../node_modules/lodash/fp/upperFirst.js        |     5 +
 .../archiver/node_modules/lodash/fp/useWith.js  |     1 +
 .../archiver/node_modules/lodash/fp/util.js     |     2 +
 .../archiver/node_modules/lodash/fp/value.js    |     5 +
 .../archiver/node_modules/lodash/fp/valueOf.js  |     5 +
 .../archiver/node_modules/lodash/fp/values.js   |     5 +
 .../archiver/node_modules/lodash/fp/valuesIn.js |     5 +
 .../archiver/node_modules/lodash/fp/where.js    |     1 +
 .../archiver/node_modules/lodash/fp/whereEq.js  |     1 +
 .../archiver/node_modules/lodash/fp/without.js  |     5 +
 .../archiver/node_modules/lodash/fp/words.js    |     5 +
 .../archiver/node_modules/lodash/fp/wrap.js     |     5 +
 .../node_modules/lodash/fp/wrapperAt.js         |     5 +
 .../node_modules/lodash/fp/wrapperChain.js      |     5 +
 .../node_modules/lodash/fp/wrapperLodash.js     |     5 +
 .../node_modules/lodash/fp/wrapperReverse.js    |     5 +
 .../node_modules/lodash/fp/wrapperValue.js      |     5 +
 .../archiver/node_modules/lodash/fp/xor.js      |     5 +
 .../archiver/node_modules/lodash/fp/xorBy.js    |     5 +
 .../archiver/node_modules/lodash/fp/xorWith.js  |     5 +
 .../archiver/node_modules/lodash/fp/zip.js      |     5 +
 .../archiver/node_modules/lodash/fp/zipAll.js   |     5 +
 .../archiver/node_modules/lodash/fp/zipObj.js   |     1 +
 .../node_modules/lodash/fp/zipObject.js         |     5 +
 .../node_modules/lodash/fp/zipObjectDeep.js     |     5 +
 .../archiver/node_modules/lodash/fp/zipWith.js  |     5 +
 .../archiver/node_modules/lodash/fromPairs.js   |    28 +
 .../archiver/node_modules/lodash/function.js    |    25 +
 .../archiver/node_modules/lodash/functions.js   |    31 +
 .../archiver/node_modules/lodash/functionsIn.js |    31 +
 .../archiver/node_modules/lodash/get.js         |    33 +
 .../archiver/node_modules/lodash/groupBy.js     |    41 +
 node_modules/archiver/node_modules/lodash/gt.js |    29 +
 .../archiver/node_modules/lodash/gte.js         |    30 +
 .../archiver/node_modules/lodash/has.js         |    35 +
 .../archiver/node_modules/lodash/hasIn.js       |    34 +
 .../archiver/node_modules/lodash/head.js        |    23 +
 .../archiver/node_modules/lodash/identity.js    |    21 +
 .../archiver/node_modules/lodash/inRange.js     |    55 +
 .../archiver/node_modules/lodash/includes.js    |    53 +
 .../archiver/node_modules/lodash/index.js       |     1 +
 .../archiver/node_modules/lodash/indexOf.js     |    42 +
 .../archiver/node_modules/lodash/initial.js     |    22 +
 .../node_modules/lodash/intersection.js         |    30 +
 .../node_modules/lodash/intersectionBy.js       |    45 +
 .../node_modules/lodash/intersectionWith.js     |    41 +
 .../archiver/node_modules/lodash/invert.js      |    42 +
 .../archiver/node_modules/lodash/invertBy.js    |    56 +
 .../archiver/node_modules/lodash/invoke.js      |    24 +
 .../archiver/node_modules/lodash/invokeMap.js   |    41 +
 .../archiver/node_modules/lodash/isArguments.js |    36 +
 .../archiver/node_modules/lodash/isArray.js     |    26 +
 .../node_modules/lodash/isArrayBuffer.js        |    27 +
 .../archiver/node_modules/lodash/isArrayLike.js |    33 +
 .../node_modules/lodash/isArrayLikeObject.js    |    33 +
 .../archiver/node_modules/lodash/isBoolean.js   |    29 +
 .../archiver/node_modules/lodash/isBuffer.js    |    38 +
 .../archiver/node_modules/lodash/isDate.js      |    27 +
 .../archiver/node_modules/lodash/isElement.js   |    25 +
 .../archiver/node_modules/lodash/isEmpty.js     |    77 +
 .../archiver/node_modules/lodash/isEqual.js     |    35 +
 .../archiver/node_modules/lodash/isEqualWith.js |    41 +
 .../archiver/node_modules/lodash/isError.js     |    36 +
 .../archiver/node_modules/lodash/isFinite.js    |    36 +
 .../archiver/node_modules/lodash/isFunction.js  |    37 +
 .../archiver/node_modules/lodash/isInteger.js   |    33 +
 .../archiver/node_modules/lodash/isLength.js    |    35 +
 .../archiver/node_modules/lodash/isMap.js       |    27 +
 .../archiver/node_modules/lodash/isMatch.js     |    36 +
 .../archiver/node_modules/lodash/isMatchWith.js |    41 +
 .../archiver/node_modules/lodash/isNaN.js       |    38 +
 .../archiver/node_modules/lodash/isNative.js    |    40 +
 .../archiver/node_modules/lodash/isNil.js       |    25 +
 .../archiver/node_modules/lodash/isNull.js      |    22 +
 .../archiver/node_modules/lodash/isNumber.js    |    38 +
 .../archiver/node_modules/lodash/isObject.js    |    31 +
 .../node_modules/lodash/isObjectLike.js         |    29 +
 .../node_modules/lodash/isPlainObject.js        |    62 +
 .../archiver/node_modules/lodash/isRegExp.js    |    27 +
 .../node_modules/lodash/isSafeInteger.js        |    37 +
 .../archiver/node_modules/lodash/isSet.js       |    27 +
 .../archiver/node_modules/lodash/isString.js    |    30 +
 .../archiver/node_modules/lodash/isSymbol.js    |    29 +
 .../node_modules/lodash/isTypedArray.js         |    27 +
 .../archiver/node_modules/lodash/isUndefined.js |    22 +
 .../archiver/node_modules/lodash/isWeakMap.js   |    28 +
 .../archiver/node_modules/lodash/isWeakSet.js   |    28 +
 .../archiver/node_modules/lodash/iteratee.js    |    53 +
 .../archiver/node_modules/lodash/join.js        |    26 +
 .../archiver/node_modules/lodash/kebabCase.js   |    28 +
 .../archiver/node_modules/lodash/keyBy.js       |    36 +
 .../archiver/node_modules/lodash/keys.js        |    37 +
 .../archiver/node_modules/lodash/keysIn.js      |    32 +
 .../archiver/node_modules/lodash/lang.js        |    58 +
 .../archiver/node_modules/lodash/last.js        |    20 +
 .../archiver/node_modules/lodash/lastIndexOf.js |    46 +
 .../archiver/node_modules/lodash/lodash.js      | 17105 ++++++++++
 .../archiver/node_modules/lodash/lodash.min.js  |   137 +
 .../archiver/node_modules/lodash/lowerCase.js   |    27 +
 .../archiver/node_modules/lodash/lowerFirst.js  |    22 +
 node_modules/archiver/node_modules/lodash/lt.js |    29 +
 .../archiver/node_modules/lodash/lte.js         |    30 +
 .../archiver/node_modules/lodash/map.js         |    53 +
 .../archiver/node_modules/lodash/mapKeys.js     |    36 +
 .../archiver/node_modules/lodash/mapValues.js   |    43 +
 .../archiver/node_modules/lodash/matches.js     |    39 +
 .../node_modules/lodash/matchesProperty.js      |    37 +
 .../archiver/node_modules/lodash/math.js        |    17 +
 .../archiver/node_modules/lodash/max.js         |    29 +
 .../archiver/node_modules/lodash/maxBy.js       |    34 +
 .../archiver/node_modules/lodash/mean.js        |    22 +
 .../archiver/node_modules/lodash/meanBy.js      |    31 +
 .../archiver/node_modules/lodash/memoize.js     |    73 +
 .../archiver/node_modules/lodash/merge.js       |    39 +
 .../archiver/node_modules/lodash/mergeWith.js   |    39 +
 .../archiver/node_modules/lodash/method.js      |    34 +
 .../archiver/node_modules/lodash/methodOf.js    |    33 +
 .../archiver/node_modules/lodash/min.js         |    29 +
 .../archiver/node_modules/lodash/minBy.js       |    34 +
 .../archiver/node_modules/lodash/mixin.js       |    74 +
 .../archiver/node_modules/lodash/multiply.js    |    22 +
 .../archiver/node_modules/lodash/negate.js      |    40 +
 .../archiver/node_modules/lodash/next.js        |    35 +
 .../archiver/node_modules/lodash/noop.js        |    17 +
 .../archiver/node_modules/lodash/now.js         |    23 +
 .../archiver/node_modules/lodash/nth.js         |    29 +
 .../archiver/node_modules/lodash/nthArg.js      |    32 +
 .../archiver/node_modules/lodash/number.js      |     5 +
 .../archiver/node_modules/lodash/object.js      |    49 +
 .../archiver/node_modules/lodash/omit.js        |    57 +
 .../archiver/node_modules/lodash/omitBy.js      |    29 +
 .../archiver/node_modules/lodash/once.js        |    25 +
 .../archiver/node_modules/lodash/orderBy.js     |    47 +
 .../archiver/node_modules/lodash/over.js        |    24 +
 .../archiver/node_modules/lodash/overArgs.js    |    61 +
 .../archiver/node_modules/lodash/overEvery.js   |    30 +
 .../archiver/node_modules/lodash/overSome.js    |    30 +
 .../archiver/node_modules/lodash/package.json   |    71 +
 .../archiver/node_modules/lodash/pad.js         |    49 +
 .../archiver/node_modules/lodash/padEnd.js      |    39 +
 .../archiver/node_modules/lodash/padStart.js    |    39 +
 .../archiver/node_modules/lodash/parseInt.js    |    43 +
 .../archiver/node_modules/lodash/partial.js     |    50 +
 .../node_modules/lodash/partialRight.js         |    49 +
 .../archiver/node_modules/lodash/partition.js   |    43 +
 .../archiver/node_modules/lodash/pick.js        |    25 +
 .../archiver/node_modules/lodash/pickBy.js      |    37 +
 .../archiver/node_modules/lodash/plant.js       |    48 +
 .../archiver/node_modules/lodash/property.js    |    32 +
 .../archiver/node_modules/lodash/propertyOf.js  |    30 +
 .../archiver/node_modules/lodash/pull.js        |    29 +
 .../archiver/node_modules/lodash/pullAll.js     |    29 +
 .../archiver/node_modules/lodash/pullAllBy.js   |    33 +
 .../archiver/node_modules/lodash/pullAllWith.js |    32 +
 .../archiver/node_modules/lodash/pullAt.js      |    43 +
 .../archiver/node_modules/lodash/random.js      |    82 +
 .../archiver/node_modules/lodash/range.js       |    46 +
 .../archiver/node_modules/lodash/rangeRight.js  |    41 +
 .../archiver/node_modules/lodash/rearg.js       |    33 +
 .../archiver/node_modules/lodash/reduce.js      |    51 +
 .../archiver/node_modules/lodash/reduceRight.js |    36 +
 .../archiver/node_modules/lodash/reject.js      |    46 +
 .../archiver/node_modules/lodash/remove.js      |    53 +
 .../archiver/node_modules/lodash/repeat.js      |    37 +
 .../archiver/node_modules/lodash/replace.js     |    29 +
 .../archiver/node_modules/lodash/rest.js        |    40 +
 .../archiver/node_modules/lodash/result.js      |    56 +
 .../archiver/node_modules/lodash/reverse.js     |    34 +
 .../archiver/node_modules/lodash/round.js       |    26 +
 .../archiver/node_modules/lodash/sample.js      |    24 +
 .../archiver/node_modules/lodash/sampleSize.js  |    37 +
 .../archiver/node_modules/lodash/seq.js         |    16 +
 .../archiver/node_modules/lodash/set.js         |    35 +
 .../archiver/node_modules/lodash/setWith.js     |    32 +
 .../archiver/node_modules/lodash/shuffle.js     |    25 +
 .../archiver/node_modules/lodash/size.js        |    46 +
 .../archiver/node_modules/lodash/slice.js       |    37 +
 .../archiver/node_modules/lodash/snakeCase.js   |    28 +
 .../archiver/node_modules/lodash/some.js        |    51 +
 .../archiver/node_modules/lodash/sortBy.js      |    48 +
 .../archiver/node_modules/lodash/sortedIndex.js |    24 +
 .../node_modules/lodash/sortedIndexBy.js        |    33 +
 .../node_modules/lodash/sortedIndexOf.js        |    31 +
 .../node_modules/lodash/sortedLastIndex.js      |    25 +
 .../node_modules/lodash/sortedLastIndexBy.js    |    33 +
 .../node_modules/lodash/sortedLastIndexOf.js    |    31 +
 .../archiver/node_modules/lodash/sortedUniq.js  |    24 +
 .../node_modules/lodash/sortedUniqBy.js         |    26 +
 .../archiver/node_modules/lodash/split.js       |    52 +
 .../archiver/node_modules/lodash/spread.js      |    63 +
 .../archiver/node_modules/lodash/startCase.js   |    29 +
 .../archiver/node_modules/lodash/startsWith.js  |    39 +
 .../archiver/node_modules/lodash/string.js      |    33 +
 .../archiver/node_modules/lodash/stubArray.js   |    23 +
 .../archiver/node_modules/lodash/stubFalse.js   |    18 +
 .../archiver/node_modules/lodash/stubObject.js  |    23 +
 .../archiver/node_modules/lodash/stubString.js  |    18 +
 .../archiver/node_modules/lodash/stubTrue.js    |    18 +
 .../archiver/node_modules/lodash/subtract.js    |    22 +
 .../archiver/node_modules/lodash/sum.js         |    24 +
 .../archiver/node_modules/lodash/sumBy.js       |    33 +
 .../archiver/node_modules/lodash/tail.js        |    22 +
 .../archiver/node_modules/lodash/take.js        |    37 +
 .../archiver/node_modules/lodash/takeRight.js   |    39 +
 .../node_modules/lodash/takeRightWhile.js       |    45 +
 .../archiver/node_modules/lodash/takeWhile.js   |    45 +
 .../archiver/node_modules/lodash/tap.js         |    29 +
 .../archiver/node_modules/lodash/template.js    |   238 +
 .../node_modules/lodash/templateSettings.js     |    67 +
 .../archiver/node_modules/lodash/throttle.js    |    69 +
 .../archiver/node_modules/lodash/thru.js        |    28 +
 .../archiver/node_modules/lodash/times.js       |    51 +
 .../archiver/node_modules/lodash/toArray.js     |    58 +
 .../archiver/node_modules/lodash/toFinite.js    |    42 +
 .../archiver/node_modules/lodash/toInteger.js   |    36 +
 .../archiver/node_modules/lodash/toIterator.js  |    23 +
 .../archiver/node_modules/lodash/toJSON.js      |     1 +
 .../archiver/node_modules/lodash/toLength.js    |    38 +
 .../archiver/node_modules/lodash/toLower.js     |    28 +
 .../archiver/node_modules/lodash/toNumber.js    |    66 +
 .../archiver/node_modules/lodash/toPairs.js     |    30 +
 .../archiver/node_modules/lodash/toPairsIn.js   |    30 +
 .../archiver/node_modules/lodash/toPath.js      |    33 +
 .../node_modules/lodash/toPlainObject.js        |    32 +
 .../node_modules/lodash/toSafeInteger.js        |    37 +
 .../archiver/node_modules/lodash/toString.js    |    28 +
 .../archiver/node_modules/lodash/toUpper.js     |    28 +
 .../archiver/node_modules/lodash/transform.js   |    65 +
 .../archiver/node_modules/lodash/trim.js        |    49 +
 .../archiver/node_modules/lodash/trimEnd.js     |    43 +
 .../archiver/node_modules/lodash/trimStart.js   |    43 +
 .../archiver/node_modules/lodash/truncate.js    |   111 +
 .../archiver/node_modules/lodash/unary.js       |    22 +
 .../archiver/node_modules/lodash/unescape.js    |    34 +
 .../archiver/node_modules/lodash/union.js       |    26 +
 .../archiver/node_modules/lodash/unionBy.js     |    39 +
 .../archiver/node_modules/lodash/unionWith.js   |    34 +
 .../archiver/node_modules/lodash/uniq.js        |    25 +
 .../archiver/node_modules/lodash/uniqBy.js      |    31 +
 .../archiver/node_modules/lodash/uniqWith.js    |    28 +
 .../archiver/node_modules/lodash/uniqueId.js    |    28 +
 .../archiver/node_modules/lodash/unset.js       |    34 +
 .../archiver/node_modules/lodash/unzip.js       |    45 +
 .../archiver/node_modules/lodash/unzipWith.js   |    39 +
 .../archiver/node_modules/lodash/update.js      |    35 +
 .../archiver/node_modules/lodash/updateWith.js  |    33 +
 .../archiver/node_modules/lodash/upperCase.js   |    27 +
 .../archiver/node_modules/lodash/upperFirst.js  |    22 +
 .../archiver/node_modules/lodash/util.js        |    34 +
 .../archiver/node_modules/lodash/value.js       |     1 +
 .../archiver/node_modules/lodash/valueOf.js     |     1 +
 .../archiver/node_modules/lodash/values.js      |    34 +
 .../archiver/node_modules/lodash/valuesIn.js    |    32 +
 .../archiver/node_modules/lodash/without.js     |    31 +
 .../archiver/node_modules/lodash/words.js       |    35 +
 .../archiver/node_modules/lodash/wrap.js        |    30 +
 .../archiver/node_modules/lodash/wrapperAt.js   |    48 +
 .../node_modules/lodash/wrapperChain.js         |    34 +
 .../node_modules/lodash/wrapperLodash.js        |   147 +
 .../node_modules/lodash/wrapperReverse.js       |    44 +
 .../node_modules/lodash/wrapperValue.js         |    21 +
 .../archiver/node_modules/lodash/xor.js         |    28 +
 .../archiver/node_modules/lodash/xorBy.js       |    39 +
 .../archiver/node_modules/lodash/xorWith.js     |    34 +
 .../archiver/node_modules/lodash/zip.js         |    22 +
 .../archiver/node_modules/lodash/zipObject.js   |    24 +
 .../node_modules/lodash/zipObjectDeep.js        |    23 +
 .../archiver/node_modules/lodash/zipWith.js     |    32 +
 .../node_modules/minimatch/minimatch.js         |   923 +
 .../node_modules/minimatch/package.json         |    67 +
 node_modules/archiver/package.json              |    99 +
 node_modules/are-we-there-yet/CHANGES.md        |    31 +
 node_modules/are-we-there-yet/index.js          |     4 +
 node_modules/are-we-there-yet/package.json      |    67 +
 node_modules/are-we-there-yet/tracker-base.js   |    11 +
 node_modules/are-we-there-yet/tracker-group.js  |   107 +
 node_modules/are-we-there-yet/tracker-stream.js |    35 +
 node_modules/are-we-there-yet/tracker.js        |    30 +
 node_modules/argparse/HISTORY.md                |   115 +
 node_modules/argparse/examples/arguments.js     |    36 +
 node_modules/argparse/examples/choice.js        |    22 +
 node_modules/argparse/examples/constants.js     |    59 +
 node_modules/argparse/examples/help.js          |    13 +
 node_modules/argparse/examples/nargs.js         |    33 +
 node_modules/argparse/examples/parents.js       |    28 +
 node_modules/argparse/examples/prefix_chars.js  |    23 +
 node_modules/argparse/examples/sub_commands.js  |    49 +
 node_modules/argparse/examples/sum.js           |    35 +
 .../argparse/examples/testformatters.js         |   270 +
 node_modules/argparse/index.js                  |     1 +
 node_modules/argparse/lib/action.js             |   146 +
 node_modules/argparse/lib/action/append.js      |    55 +
 .../argparse/lib/action/append/constant.js      |    47 +
 node_modules/argparse/lib/action/count.js       |    40 +
 node_modules/argparse/lib/action/help.js        |    48 +
 node_modules/argparse/lib/action/store.js       |    50 +
 .../argparse/lib/action/store/constant.js       |    43 +
 node_modules/argparse/lib/action/store/false.js |    27 +
 node_modules/argparse/lib/action/store/true.js  |    26 +
 node_modules/argparse/lib/action/subparsers.js  |   148 +
 node_modules/argparse/lib/action/version.js     |    50 +
 node_modules/argparse/lib/action_container.js   |   481 +
 node_modules/argparse/lib/argparse.js           |    14 +
 node_modules/argparse/lib/argument/error.js     |    50 +
 node_modules/argparse/lib/argument/exclusive.js |    54 +
 node_modules/argparse/lib/argument/group.js     |    75 +
 node_modules/argparse/lib/argument_parser.js    |  1168 +
 node_modules/argparse/lib/const.js              |    18 +
 .../argparse/lib/help/added_formatters.js       |    88 +
 node_modules/argparse/lib/help/formatter.js     |   798 +
 node_modules/argparse/lib/namespace.js          |    77 +
 .../node_modules/underscore.string/.npmignore   |     2 +
 .../node_modules/underscore.string/.travis.yml  |     8 +
 .../underscore.string/README.markdown           |   825 +
 .../node_modules/underscore.string/bower.json   |    33 +
 .../underscore.string/component.json            |    11 +
 .../node_modules/underscore.string/foo.js       |    10 +
 .../node_modules/underscore.string/gulpfile.js  |    26 +
 .../underscore.string/lib/underscore.string.js  |   673 +
 .../underscore.string/libpeerconnection.log     |     0
 .../node_modules/underscore.string/package.json |   108 +
 node_modules/argparse/package.json              |    69 +
 node_modules/array-differ/index.js              |     7 +
 node_modules/array-differ/package.json          |    68 +
 node_modules/array-find-index/index.js          |    25 +
 node_modules/array-find-index/package.json      |    71 +
 node_modules/array-union/index.js               |     6 +
 node_modules/array-union/package.json           |    76 +
 node_modules/array-uniq/index.js                |    62 +
 node_modules/array-uniq/package.json            |    73 +
 node_modules/arrify/index.js                    |     8 +
 node_modules/arrify/package.json                |    70 +
 node_modules/asn1/.npmignore                    |     2 +
 node_modules/asn1/.travis.yml                   |     4 +
 node_modules/asn1/lib/ber/errors.js             |    13 +
 node_modules/asn1/lib/ber/index.js              |    27 +
 node_modules/asn1/lib/ber/reader.js             |   261 +
 node_modules/asn1/lib/ber/types.js              |    36 +
 node_modules/asn1/lib/ber/writer.js             |   316 +
 node_modules/asn1/lib/index.js                  |    20 +
 node_modules/asn1/package.json                  |    69 +
 node_modules/asn1/tst/ber/reader.test.js        |   208 +
 node_modules/asn1/tst/ber/writer.test.js        |   370 +
 node_modules/assert-plus/AUTHORS                |     6 +
 node_modules/assert-plus/CHANGES.md             |    14 +
 node_modules/assert-plus/assert.js              |   211 +
 node_modules/assert-plus/package.json           |    91 +
 node_modules/async-foreach/LICENSE-MIT          |    22 +
 node_modules/async-foreach/dist/ba-foreach.js   |    58 +
 .../async-foreach/dist/ba-foreach.min.js        |     4 +
 node_modules/async-foreach/grunt.js             |    48 +
 node_modules/async-foreach/lib/foreach.js       |    63 +
 node_modules/async-foreach/package.json         |    59 +
 node_modules/async-foreach/test/foreach_test.js |   200 +
 node_modules/async/.gitmodules                  |     9 +
 node_modules/async/.npmignore                   |     4 +
 node_modules/async/Makefile                     |    25 +
 node_modules/async/index.js                     |     3 +
 node_modules/async/lib/async.js                 |   692 +
 node_modules/async/package.json                 |    58 +
 node_modules/asynckit/bench.js                  |    76 +
 node_modules/asynckit/index.js                  |     6 +
 node_modules/asynckit/lib/abort.js              |    29 +
 node_modules/asynckit/lib/async.js              |    34 +
 node_modules/asynckit/lib/defer.js              |    26 +
 node_modules/asynckit/lib/iterate.js            |    75 +
 node_modules/asynckit/lib/readable_asynckit.js  |    91 +
 node_modules/asynckit/lib/readable_parallel.js  |    25 +
 node_modules/asynckit/lib/readable_serial.js    |    25 +
 .../asynckit/lib/readable_serial_ordered.js     |    29 +
 node_modules/asynckit/lib/state.js              |    37 +
 node_modules/asynckit/lib/streamify.js          |   141 +
 node_modules/asynckit/lib/terminator.js         |    29 +
 node_modules/asynckit/package.json              |    96 +
 node_modules/asynckit/parallel.js               |    43 +
 node_modules/asynckit/serial.js                 |    17 +
 node_modules/asynckit/serialOrdered.js          |    75 +
 node_modules/asynckit/stream.js                 |    21 +
 node_modules/aws-sign2/index.js                 |   212 +
 node_modules/aws-sign2/package.json             |    54 +
 node_modules/aws4/.travis.yml                   |     5 +
 node_modules/aws4/aws4.js                       |   332 +
 node_modules/aws4/lru.js                        |    96 +
 node_modules/aws4/package.json                  |   109 +
 node_modules/balanced-match/.npmignore          |     5 +
 node_modules/balanced-match/LICENSE.md          |    21 +
 node_modules/balanced-match/index.js            |    59 +
 node_modules/balanced-match/package.json        |    81 +
 node_modules/bcrypt-pbkdf/index.js              |   556 +
 node_modules/bcrypt-pbkdf/package.json          |    41 +
 node_modules/bl/.jshintrc                       |    59 +
 node_modules/bl/.travis.yml                     |    16 +
 node_modules/bl/LICENSE.md                      |    13 +
 node_modules/bl/bl.js                           |   281 +
 node_modules/bl/package.json                    |    67 +
 node_modules/bl/test/test.js                    |   702 +
 node_modules/block-stream/LICENCE               |    25 +
 node_modules/block-stream/block-stream.js       |   209 +
 node_modules/block-stream/package.json          |    64 +
 node_modules/boom/lib/index.js                  |   433 +
 node_modules/boom/package.json                  |    65 +
 node_modules/brace-expansion/index.js           |   201 +
 node_modules/brace-expansion/package.json       |    87 +
 node_modules/buffer-crc32/index.js              |   111 +
 node_modules/buffer-crc32/package.json          |    74 +
 .../builtin-modules/builtin-modules.json        |    35 +
 node_modules/builtin-modules/index.js           |    10 +
 node_modules/builtin-modules/package.json       |    76 +
 node_modules/builtin-modules/static.js          |     2 +
 node_modules/camelcase-keys/index.js            |    12 +
 node_modules/camelcase-keys/package.json        |    88 +
 node_modules/camelcase/index.js                 |    56 +
 node_modules/camelcase/package.json             |    75 +
 node_modules/caseless/index.js                  |    67 +
 node_modules/caseless/package.json              |    60 +
 node_modules/caseless/test.js                   |    67 +
 node_modules/chalk/index.js                     |   116 +
 node_modules/chalk/package.json                 |   120 +
 node_modules/chownr/chownr.js                   |    52 +
 node_modules/chownr/package.json                |    61 +
 node_modules/cliui/CHANGELOG.md                 |    15 +
 node_modules/cliui/LICENSE.txt                  |    14 +
 node_modules/cliui/index.js                     |   316 +
 node_modules/cliui/package.json                 |   100 +
 node_modules/co/History.md                      |   172 +
 node_modules/co/index.js                        |   237 +
 node_modules/co/package.json                    |    70 +
 node_modules/code-point-at/index.js             |    32 +
 node_modules/code-point-at/package.json         |    74 +
 node_modules/coffee-script/.npmignore           |    11 +
 node_modules/coffee-script/CNAME                |     1 +
 node_modules/coffee-script/README               |    51 +
 node_modules/coffee-script/Rakefile             |    78 +
 node_modules/coffee-script/bin/cake             |     7 +
 node_modules/coffee-script/bin/coffee           |     7 +
 node_modules/coffee-script/extras/jsl.conf      |    44 +
 .../coffee-script/lib/coffee-script/browser.js  |    92 +
 .../coffee-script/lib/coffee-script/cake.js     |   111 +
 .../lib/coffee-script/coffee-script.js          |   167 +
 .../coffee-script/lib/coffee-script/command.js  |   500 +
 .../coffee-script/lib/coffee-script/grammar.js  |   606 +
 .../coffee-script/lib/coffee-script/helpers.js  |    77 +
 .../coffee-script/lib/coffee-script/index.js    |    11 +
 .../coffee-script/lib/coffee-script/lexer.js    |   788 +
 .../coffee-script/lib/coffee-script/nodes.js    |  2986 ++
 .../coffee-script/lib/coffee-script/optparse.js |   138 +
 .../coffee-script/lib/coffee-script/parser.js   |   683 +
 .../coffee-script/lib/coffee-script/repl.js     |   261 +
 .../coffee-script/lib/coffee-script/rewriter.js |   349 +
 .../coffee-script/lib/coffee-script/scope.js    |   146 +
 node_modules/coffee-script/package.json         |    72 +
 node_modules/colors/MIT-LICENSE.txt             |    22 +
 node_modules/colors/colors.js                   |   342 +
 node_modules/colors/example.html                |    76 +
 node_modules/colors/example.js                  |    77 +
 node_modules/colors/package.json                |    56 +
 node_modules/colors/test.js                     |    70 +
 node_modules/colors/themes/winston-dark.js      |    12 +
 node_modules/colors/themes/winston-light.js     |    12 +
 .../combined-stream/lib/combined_stream.js      |   189 +
 node_modules/combined-stream/lib/defer.js       |    26 +
 node_modules/combined-stream/package.json       |    64 +
 node_modules/commander/CHANGELOG.md             |   356 +
 node_modules/commander/index.js                 |  1231 +
 node_modules/commander/package.json             |    73 +
 node_modules/commander/typings/index.d.ts       |   309 +
 .../lib/archivers/archive-entry.js              |    16 +
 .../lib/archivers/archive-output-stream.js      |   117 +
 .../lib/archivers/zip/constants.js              |    71 +
 .../lib/archivers/zip/general-purpose-bit.js    |   101 +
 .../lib/archivers/zip/unix-stat.js              |    53 +
 .../compress-commons/lib/archivers/zip/util.js  |    74 +
 .../lib/archivers/zip/zip-archive-entry.js      |   406 +
 .../archivers/zip/zip-archive-output-stream.js  |   440 +
 .../compress-commons/lib/compress-commons.js    |    13 +
 node_modules/compress-commons/lib/util/index.js |    30 +
 node_modules/compress-commons/package.json      |    77 +
 node_modules/concat-map/.travis.yml             |     4 +
 node_modules/concat-map/README.markdown         |    62 +
 node_modules/concat-map/example/map.js          |     6 +
 node_modules/concat-map/index.js                |    13 +
 node_modules/concat-map/package.json            |    92 +
 node_modules/concat-map/test/map.js             |    39 +
 node_modules/console-control-strings/index.js   |   125 +
 .../console-control-strings/package.json        |    65 +
 node_modules/core-util-is/float.patch           |   604 +
 node_modules/core-util-is/lib/util.js           |   107 +
 node_modules/core-util-is/package.json          |    67 +
 node_modules/core-util-is/test.js               |    68 +
 node_modules/crc/lib/crc1.js                    |    28 +
 node_modules/crc/lib/crc16.js                   |    31 +
 node_modules/crc/lib/crc16_ccitt.js             |    31 +
 node_modules/crc/lib/crc16_kermit.js            |    31 +
 node_modules/crc/lib/crc16_modbus.js            |    31 +
 node_modules/crc/lib/crc16_xmodem.js            |    35 +
 node_modules/crc/lib/crc24.js                   |    31 +
 node_modules/crc/lib/crc32.js                   |    31 +
 node_modules/crc/lib/crc8.js                    |    31 +
 node_modules/crc/lib/crc8_1wire.js              |    31 +
 node_modules/crc/lib/crcjam.js                  |    33 +
 node_modules/crc/lib/create_buffer.js           |    16 +
 node_modules/crc/lib/define_crc.js              |    16 +
 node_modules/crc/lib/index.js                   |    15 +
 node_modules/crc/package.json                   |    69 +
 node_modules/crc32-stream/CHANGELOG.md          |    12 +
 node_modules/crc32-stream/lib/crc32-stream.js   |    44 +
 .../crc32-stream/lib/deflate-crc32-stream.js    |    69 +
 node_modules/crc32-stream/lib/index.js          |    10 +
 node_modules/crc32-stream/package.json          |    74 +
 node_modules/cross-spawn/.editorconfig          |    15 +
 node_modules/cross-spawn/.eslintrc              |     7 +
 node_modules/cross-spawn/.npmignore             |     3 +
 node_modules/cross-spawn/.travis.yml            |     6 +
 node_modules/cross-spawn/appveyor.yml           |    29 +
 node_modules/cross-spawn/index.js               |    59 +
 node_modules/cross-spawn/lib/enoent.js          |    73 +
 node_modules/cross-spawn/lib/parse.js           |   128 +
 node_modules/cross-spawn/lib/resolveCommand.js  |    31 +
 .../cross-spawn/node_modules/.bin/which         |     1 +
 .../cross-spawn/node_modules/lru-cache/index.js |   467 +
 .../node_modules/lru-cache/package.json         |    72 +
 .../cross-spawn/node_modules/which/CHANGELOG.md |   147 +
 .../cross-spawn/node_modules/which/bin/which    |    52 +
 .../cross-spawn/node_modules/which/package.json |    69 +
 .../cross-spawn/node_modules/which/which.js     |   135 +
 node_modules/cross-spawn/package.json           |    85 +
 node_modules/cryptiles/.npmignore               |     3 +
 node_modules/cryptiles/lib/index.js             |    88 +
 .../cryptiles/node_modules/boom/lib/index.js    |   457 +
 .../cryptiles/node_modules/boom/package.json    |    65 +
 node_modules/cryptiles/package.json             |    65 +
 node_modules/currently-unhandled/browser.js     |    27 +
 node_modules/currently-unhandled/core.js        |    33 +
 node_modules/currently-unhandled/index.js       |    12 +
 node_modules/currently-unhandled/package.json   |   107 +
 node_modules/dashdash/CHANGES.md                |   364 +
 node_modules/dashdash/LICENSE.txt               |    24 +
 .../dashdash/etc/dashdash.bash_completion.in    |   389 +
 node_modules/dashdash/lib/dashdash.js           |  1055 +
 node_modules/dashdash/package.json              |    71 +
 node_modules/dateformat/lib/dateformat.js       |   165 +
 node_modules/dateformat/package.json            |    45 +
 node_modules/dateformat/test/test_weekofyear.js |     4 +
 node_modules/dateformat/test/test_weekofyear.sh |    27 +
 node_modules/decamelize/index.js                |    13 +
 node_modules/decamelize/package.json            |    75 +
 node_modules/decompress-response/index.js       |    29 +
 node_modules/decompress-response/package.json   |    90 +
 node_modules/deep-extend/CHANGELOG.md           |    21 +
 node_modules/deep-extend/index.js               |     1 +
 node_modules/deep-extend/lib/deep-extend.js     |   144 +
 node_modules/deep-extend/package.json           |    98 +
 node_modules/delayed-stream/.npmignore          |     1 +
 node_modules/delayed-stream/Makefile            |     7 +
 .../delayed-stream/lib/delayed_stream.js        |   107 +
 node_modules/delayed-stream/package.json        |    66 +
 node_modules/delegates/.npmignore               |     1 +
 node_modules/delegates/History.md               |    22 +
 node_modules/delegates/Makefile                 |     8 +
 node_modules/delegates/index.js                 |   121 +
 node_modules/delegates/package.json             |    52 +
 node_modules/delegates/test/index.js            |    94 +
 node_modules/detect-libc/.npmignore             |     7 +
 node_modules/detect-libc/bin/detect-libc.js     |    18 +
 node_modules/detect-libc/lib/detect-libc.js     |    92 +
 node_modules/detect-libc/package.json           |    70 +
 node_modules/each-async/index.js                |    46 +
 node_modules/each-async/package.json            |    78 +
 node_modules/ecc-jsbn/.npmignore                |    15 +
 node_modules/ecc-jsbn/index.js                  |    57 +
 node_modules/ecc-jsbn/lib/LICENSE-jsbn          |    40 +
 node_modules/ecc-jsbn/lib/ec.js                 |   561 +
 node_modules/ecc-jsbn/lib/sec.js                |   170 +
 node_modules/ecc-jsbn/package.json              |    69 +
 node_modules/ecc-jsbn/test.js                   |    14 +
 node_modules/end-of-stream/index.js             |    87 +
 node_modules/end-of-stream/package.json         |    68 +
 node_modules/error-ex/index.js                  |   133 +
 node_modules/error-ex/package.json              |    90 +
 node_modules/escape-string-regexp/index.js      |    11 +
 node_modules/escape-string-regexp/package.json  |    85 +
 node_modules/esprima/bin/esparse.js             |   117 +
 node_modules/esprima/bin/esvalidate.js          |   177 +
 node_modules/esprima/esprima.js                 |  3908 +++
 node_modules/esprima/package.json               |    84 +
 node_modules/esprima/test/compat.js             |   239 +
 node_modules/esprima/test/reflect.js            |   422 +
 node_modules/esprima/test/run.js                |    66 +
 node_modules/esprima/test/runner.js             |   387 +
 node_modules/esprima/test/test.js               | 20238 ++++++++++++
 node_modules/eventemitter2/index.js             |     1 +
 node_modules/eventemitter2/lib/eventemitter2.js |   573 +
 node_modules/eventemitter2/package.json         |    87 +
 node_modules/exit/.jshintrc                     |    14 +
 node_modules/exit/.npmignore                    |     0
 node_modules/exit/.travis.yml                   |     6 +
 node_modules/exit/LICENSE-MIT                   |    22 +
 node_modules/exit/lib/exit.js                   |    41 +
 node_modules/exit/package.json                  |    77 +
 node_modules/exit/test/exit_test.js             |   121 +
 node_modules/exit/test/fixtures/10-stderr.txt   |    10 +
 .../exit/test/fixtures/10-stdout-stderr.txt     |    20 +
 node_modules/exit/test/fixtures/10-stdout.txt   |    10 +
 node_modules/exit/test/fixtures/100-stderr.txt  |   100 +
 .../exit/test/fixtures/100-stdout-stderr.txt    |   200 +
 node_modules/exit/test/fixtures/100-stdout.txt  |   100 +
 node_modules/exit/test/fixtures/1000-stderr.txt |  1000 +
 .../exit/test/fixtures/1000-stdout-stderr.txt   |  2000 ++
 node_modules/exit/test/fixtures/1000-stdout.txt |  1000 +
 node_modules/exit/test/fixtures/create-files.sh |     8 +
 node_modules/exit/test/fixtures/log-broken.js   |    23 +
 node_modules/exit/test/fixtures/log.js          |    25 +
 node_modules/expand-template/.npmignore         |     1 +
 node_modules/expand-template/.travis.yml        |     8 +
 node_modules/expand-template/index.js           |    25 +
 node_modules/expand-template/package.json       |    62 +
 node_modules/expand-template/test.js            |    47 +
 node_modules/extend/.eslintrc                   |    17 +
 node_modules/extend/.jscs.json                  |   175 +
 node_modules/extend/.npmignore                  |     1 +
 node_modules/extend/.travis.yml                 |   179 +
 node_modules/extend/CHANGELOG.md                |    77 +
 node_modules/extend/component.json              |    32 +
 node_modules/extend/index.js                    |    86 +
 node_modules/extend/package.json                |    80 +
 node_modules/extsprintf/.gitmodules             |     0
 node_modules/extsprintf/.npmignore              |     2 +
 node_modules/extsprintf/Makefile                |    24 +
 node_modules/extsprintf/Makefile.targ           |   285 +
 node_modules/extsprintf/jsl.node.conf           |   137 +
 node_modules/extsprintf/lib/extsprintf.js       |   183 +
 node_modules/extsprintf/package.json            |    48 +
 node_modules/fast-deep-equal/index.d.ts         |     4 +
 node_modules/fast-deep-equal/index.js           |    55 +
 node_modules/fast-deep-equal/package.json       |    89 +
 .../fast-json-stable-stringify/.eslintrc.yml    |    26 +
 .../fast-json-stable-stringify/.npmignore       |     4 +
 .../fast-json-stable-stringify/.travis.yml      |     8 +
 .../benchmark/index.js                          |    31 +
 .../benchmark/test.json                         |   137 +
 .../example/key_cmp.js                          |     7 +
 .../example/nested.js                           |     3 +
 .../fast-json-stable-stringify/example/str.js   |     3 +
 .../example/value_cmp.js                        |     7 +
 .../fast-json-stable-stringify/index.js         |    59 +
 .../fast-json-stable-stringify/package.json     |    82 +
 .../fast-json-stable-stringify/test/cmp.js      |    13 +
 .../fast-json-stable-stringify/test/nested.js   |    44 +
 .../fast-json-stable-stringify/test/str.js      |    46 +
 .../fast-json-stable-stringify/test/to-json.js  |    22 +
 node_modules/find-up/index.js                   |    53 +
 node_modules/find-up/package.json               |    88 +
 node_modules/findup-sync/.jshintrc              |    15 +
 node_modules/findup-sync/.npmignore             |     0
 node_modules/findup-sync/.travis.yml            |     5 +
 node_modules/findup-sync/LICENSE-MIT            |    22 +
 node_modules/findup-sync/lib/findup-sync.js     |    46 +
 .../findup-sync/node_modules/glob/.npmignore    |     2 +
 .../findup-sync/node_modules/glob/.travis.yml   |     3 +
 .../findup-sync/node_modules/glob/examples/g.js |     9 +
 .../node_modules/glob/examples/usr-local.js     |     9 +
 .../findup-sync/node_modules/glob/glob.js       |   728 +
 .../findup-sync/node_modules/glob/package.json  |    65 +
 .../node_modules/glob/test/00-setup.js          |   176 +
 .../node_modules/glob/test/bash-comparison.js   |    63 +
 .../node_modules/glob/test/bash-results.json    |   351 +
 .../node_modules/glob/test/cwd-test.js          |    55 +
 .../node_modules/glob/test/globstar-match.js    |    19 +
 .../findup-sync/node_modules/glob/test/mark.js  |   118 +
 .../glob/test/new-glob-optional-options.js      |    10 +
 .../node_modules/glob/test/nocase-nomagic.js    |   113 +
 .../node_modules/glob/test/pause-resume.js      |    73 +
 .../node_modules/glob/test/readme-issue.js      |    36 +
 .../node_modules/glob/test/root-nomount.js      |    39 +
 .../findup-sync/node_modules/glob/test/root.js  |    46 +
 .../findup-sync/node_modules/glob/test/stat.js  |    32 +
 .../node_modules/glob/test/zz-cleanup.js        |    11 +
 .../findup-sync/node_modules/lodash/LICENSE.txt |    22 +
 .../node_modules/lodash/dist/lodash.compat.js   |  7158 +++++
 .../lodash/dist/lodash.compat.min.js            |    92 +
 .../node_modules/lodash/dist/lodash.js          |  6786 ++++
 .../node_modules/lodash/dist/lodash.min.js      |    87 +
 .../lodash/dist/lodash.underscore.js            |  4979 +++
 .../lodash/dist/lodash.underscore.min.js        |    39 +
 .../findup-sync/node_modules/lodash/lodash.js   |  7180 +++++
 .../node_modules/lodash/package.json            |   127 +
 .../node_modules/minimatch/.npmignore           |     1 +
 .../node_modules/minimatch/minimatch.js         |  1061 +
 .../node_modules/minimatch/package.json         |    65 +
 .../node_modules/minimatch/test/basic.js        |   399 +
 .../node_modules/minimatch/test/brace-expand.js |    33 +
 .../node_modules/minimatch/test/caching.js      |    14 +
 .../node_modules/minimatch/test/defaults.js     |   274 +
 .../test/extglob-ending-with-state-char.js      |     8 +
 node_modules/findup-sync/package.json           |    77 +
 .../findup-sync/test/findup-sync_test.js        |    48 +
 node_modules/findup-sync/test/fixtures/a.txt    |     0
 .../findup-sync/test/fixtures/a/b/bar.txt       |     0
 .../findup-sync/test/fixtures/a/foo.txt         |     0
 node_modules/findup-sync/test/fixtures/aaa.txt  |     0
 node_modules/font-awesome/.npmignore            |    42 +
 node_modules/font-awesome/HELP-US-OUT.txt       |     7 +
 node_modules/font-awesome/css/font-awesome.css  |  2337 ++
 .../font-awesome/css/font-awesome.css.map       |     7 +
 .../font-awesome/css/font-awesome.min.css       |     4 +
 node_modules/font-awesome/fonts/FontAwesome.otf |   Bin 0 -> 134808 bytes
 .../font-awesome/fonts/fontawesome-webfont.eot  |   Bin 0 -> 165742 bytes
 .../font-awesome/fonts/fontawesome-webfont.svg  |  2671 ++
 .../font-awesome/fonts/fontawesome-webfont.ttf  |   Bin 0 -> 165548 bytes
 .../font-awesome/fonts/fontawesome-webfont.woff |   Bin 0 -> 98024 bytes
 .../fonts/fontawesome-webfont.woff2             |   Bin 0 -> 77160 bytes
 node_modules/font-awesome/less/animated.less    |    34 +
 .../font-awesome/less/bordered-pulled.less      |    25 +
 node_modules/font-awesome/less/core.less        |    12 +
 node_modules/font-awesome/less/fixed-width.less |     6 +
 .../font-awesome/less/font-awesome.less         |    18 +
 node_modules/font-awesome/less/icons.less       |   789 +
 node_modules/font-awesome/less/larger.less      |    13 +
 node_modules/font-awesome/less/list.less        |    19 +
 node_modules/font-awesome/less/mixins.less      |    60 +
 node_modules/font-awesome/less/path.less        |    15 +
 .../font-awesome/less/rotated-flipped.less      |    20 +
 .../font-awesome/less/screen-reader.less        |     5 +
 node_modules/font-awesome/less/stacked.less     |    20 +
 node_modules/font-awesome/less/variables.less   |   800 +
 node_modules/font-awesome/package.json          |    75 +
 node_modules/font-awesome/scss/_animated.scss   |    34 +
 .../font-awesome/scss/_bordered-pulled.scss     |    25 +
 node_modules/font-awesome/scss/_core.scss       |    12 +
 .../font-awesome/scss/_fixed-width.scss         |     6 +
 node_modules/font-awesome/scss/_icons.scss      |   789 +
 node_modules/font-awesome/scss/_larger.scss     |    13 +
 node_modules/font-awesome/scss/_list.scss       |    19 +
 node_modules/font-awesome/scss/_mixins.scss     |    60 +
 node_modules/font-awesome/scss/_path.scss       |    15 +
 .../font-awesome/scss/_rotated-flipped.scss     |    20 +
 .../font-awesome/scss/_screen-reader.scss       |     5 +
 node_modules/font-awesome/scss/_stacked.scss    |    20 +
 node_modules/font-awesome/scss/_variables.scss  |   800 +
 .../font-awesome/scss/font-awesome.scss         |    18 +
 node_modules/forever-agent/index.js             |   138 +
 node_modules/forever-agent/package.json         |    55 +
 node_modules/form-data/README.md.bak            |   234 +
 node_modules/form-data/lib/browser.js           |     2 +
 node_modules/form-data/lib/form_data.js         |   457 +
 node_modules/form-data/lib/populate.js          |    10 +
 node_modules/form-data/package.json             |   102 +
 node_modules/fs.realpath/index.js               |    66 +
 node_modules/fs.realpath/old.js                 |   303 +
 node_modules/fs.realpath/package.json           |    68 +
 node_modules/fstream/.npmignore                 |     5 +
 node_modules/fstream/.travis.yml                |     9 +
 node_modules/fstream/examples/filter-pipe.js    |   134 +
 node_modules/fstream/examples/pipe.js           |   118 +
 node_modules/fstream/examples/reader.js         |    68 +
 node_modules/fstream/examples/symlink-write.js  |    27 +
 node_modules/fstream/fstream.js                 |    35 +
 node_modules/fstream/lib/abstract.js            |    85 +
 node_modules/fstream/lib/collect.js             |    70 +
 node_modules/fstream/lib/dir-reader.js          |   252 +
 node_modules/fstream/lib/dir-writer.js          |   174 +
 node_modules/fstream/lib/file-reader.js         |   150 +
 node_modules/fstream/lib/file-writer.js         |   107 +
 node_modules/fstream/lib/get-type.js            |    33 +
 node_modules/fstream/lib/link-reader.js         |    53 +
 node_modules/fstream/lib/link-writer.js         |    95 +
 node_modules/fstream/lib/proxy-reader.js        |    95 +
 node_modules/fstream/lib/proxy-writer.js        |   111 +
 node_modules/fstream/lib/reader.js              |   255 +
 node_modules/fstream/lib/socket-reader.js       |    36 +
 node_modules/fstream/lib/writer.js              |   390 +
 .../fstream/node_modules/graceful-fs/fs.js      |    21 +
 .../node_modules/graceful-fs/graceful-fs.js     |   262 +
 .../node_modules/graceful-fs/legacy-streams.js  |   118 +
 .../node_modules/graceful-fs/package.json       |    80 +
 .../node_modules/graceful-fs/polyfills.js       |   330 +
 node_modules/fstream/package.json               |    66 +
 node_modules/gauge/CHANGELOG.md                 |   160 +
 node_modules/gauge/base-theme.js                |    14 +
 node_modules/gauge/error.js                     |    24 +
 node_modules/gauge/has-color.js                 |    12 +
 node_modules/gauge/index.js                     |   233 +
 node_modules/gauge/package.json                 |    95 +
 node_modules/gauge/plumbing.js                  |    48 +
 node_modules/gauge/process.js                   |     3 +
 node_modules/gauge/progress-bar.js              |    35 +
 node_modules/gauge/render-template.js           |   181 +
 node_modules/gauge/set-immediate.js             |     7 +
 node_modules/gauge/set-interval.js              |     3 +
 node_modules/gauge/spin.js                      |     5 +
 node_modules/gauge/template-item.js             |    73 +
 node_modules/gauge/theme-set.js                 |   115 +
 node_modules/gauge/themes.js                    |    54 +
 node_modules/gauge/wide-truncate.js             |    25 +
 node_modules/gaze/LICENSE-MIT                   |    22 +
 node_modules/gaze/lib/gaze.js                   |   459 +
 node_modules/gaze/lib/helper.js                 |    84 +
 node_modules/gaze/package.json                  |    83 +
 node_modules/generate-function/.npmignore       |     1 +
 node_modules/generate-function/.travis.yml      |     3 +
 node_modules/generate-function/example.js       |    27 +
 node_modules/generate-function/index.js         |    61 +
 node_modules/generate-function/package.json     |    60 +
 node_modules/generate-function/test.js          |    33 +
 .../generate-object-property/.npmignore         |     1 +
 .../generate-object-property/.travis.yml        |     3 +
 node_modules/generate-object-property/index.js  |    12 +
 .../generate-object-property/package.json       |    57 +
 node_modules/generate-object-property/test.js   |    12 +
 node_modules/get-caller-file/index.js           |    20 +
 node_modules/get-caller-file/package.json       |    62 +
 node_modules/get-stdin/index.js                 |    49 +
 node_modules/get-stdin/package.json             |    72 +
 node_modules/getobject/.jshintrc                |    15 +
 node_modules/getobject/.npmignore               |     1 +
 node_modules/getobject/.travis.yml              |     6 +
 node_modules/getobject/LICENSE-MIT              |    22 +
 node_modules/getobject/lib/getobject.js         |    60 +
 node_modules/getobject/package.json             |    74 +
 node_modules/getobject/test/namespace_test.js   |    51 +
 node_modules/getpass/.npmignore                 |     8 +
 node_modules/getpass/.travis.yml                |     9 +
 node_modules/getpass/lib/index.js               |   123 +
 node_modules/getpass/package.json               |    54 +
 node_modules/github-from-package/.travis.yml    |     4 +
 .../github-from-package/example/package.json    |     8 +
 node_modules/github-from-package/example/url.js |     3 +
 node_modules/github-from-package/index.js       |    17 +
 node_modules/github-from-package/package.json   |    63 +
 .../github-from-package/readme.markdown         |    53 +
 node_modules/github-from-package/test/a.json    |     8 +
 node_modules/github-from-package/test/b.json    |     5 +
 node_modules/github-from-package/test/c.json    |     5 +
 node_modules/github-from-package/test/d.json    |     7 +
 node_modules/github-from-package/test/e.json    |     5 +
 node_modules/github-from-package/test/url.js    |    19 +
 node_modules/glob/.npmignore                    |     2 +
 node_modules/glob/.travis.yml                   |     3 +
 node_modules/glob/examples/g.js                 |     9 +
 node_modules/glob/examples/usr-local.js         |     9 +
 node_modules/glob/glob.js                       |   643 +
 .../glob/node_modules/inherits/inherits.js      |    29 +
 .../glob/node_modules/inherits/package.json     |    55 +
 node_modules/glob/package.json                  |    65 +
 node_modules/glob/test/00-setup.js              |   176 +
 node_modules/glob/test/bash-comparison.js       |    63 +
 node_modules/glob/test/bash-results.json        |   348 +
 node_modules/glob/test/cwd-test.js              |    55 +
 node_modules/glob/test/mark.js                  |    74 +
 node_modules/glob/test/nocase-nomagic.js        |   113 +
 node_modules/glob/test/pause-resume.js          |    73 +
 node_modules/glob/test/root-nomount.js          |    39 +
 node_modules/glob/test/root.js                  |    46 +
 node_modules/glob/test/zz-cleanup.js            |    11 +
 node_modules/globule/lib/globule.js             |   192 +
 .../globule/node_modules/glob/changelog.md      |    67 +
 .../globule/node_modules/glob/common.js         |   240 +
 node_modules/globule/node_modules/glob/glob.js  |   790 +
 .../globule/node_modules/glob/package.json      |    80 +
 node_modules/globule/node_modules/glob/sync.js  |   486 +
 .../globule/node_modules/lodash/_DataView.js    |     7 +
 .../globule/node_modules/lodash/_Hash.js        |    32 +
 .../globule/node_modules/lodash/_LazyWrapper.js |    28 +
 .../globule/node_modules/lodash/_ListCache.js   |    32 +
 .../node_modules/lodash/_LodashWrapper.js       |    22 +
 .../globule/node_modules/lodash/_Map.js         |     7 +
 .../globule/node_modules/lodash/_MapCache.js    |    32 +
 .../globule/node_modules/lodash/_Promise.js     |     7 +
 .../globule/node_modules/lodash/_Set.js         |     7 +
 .../globule/node_modules/lodash/_SetCache.js    |    27 +
 .../globule/node_modules/lodash/_Stack.js       |    27 +
 .../globule/node_modules/lodash/_Symbol.js      |     6 +
 .../globule/node_modules/lodash/_Uint8Array.js  |     6 +
 .../globule/node_modules/lodash/_WeakMap.js     |     7 +
 .../globule/node_modules/lodash/_apply.js       |    21 +
 .../node_modules/lodash/_arrayAggregator.js     |    22 +
 .../globule/node_modules/lodash/_arrayEach.js   |    22 +
 .../node_modules/lodash/_arrayEachRight.js      |    21 +
 .../globule/node_modules/lodash/_arrayEvery.js  |    23 +
 .../globule/node_modules/lodash/_arrayFilter.js |    25 +
 .../node_modules/lodash/_arrayIncludes.js       |    17 +
 .../node_modules/lodash/_arrayIncludesWith.js   |    22 +
 .../node_modules/lodash/_arrayLikeKeys.js       |    49 +
 .../globule/node_modules/lodash/_arrayMap.js    |    21 +
 .../globule/node_modules/lodash/_arrayPush.js   |    20 +
 .../globule/node_modules/lodash/_arrayReduce.js |    26 +
 .../node_modules/lodash/_arrayReduceRight.js    |    24 +
 .../globule/node_modules/lodash/_arraySample.js |    15 +
 .../node_modules/lodash/_arraySampleSize.js     |    17 +
 .../node_modules/lodash/_arrayShuffle.js        |    15 +
 .../globule/node_modules/lodash/_arraySome.js   |    23 +
 .../globule/node_modules/lodash/_asciiSize.js   |    12 +
 .../node_modules/lodash/_asciiToArray.js        |    12 +
 .../globule/node_modules/lodash/_asciiWords.js  |    15 +
 .../node_modules/lodash/_assignMergeValue.js    |    20 +
 .../globule/node_modules/lodash/_assignValue.js |    28 +
 .../node_modules/lodash/_assocIndexOf.js        |    21 +
 .../node_modules/lodash/_baseAggregator.js      |    21 +
 .../globule/node_modules/lodash/_baseAssign.js  |    17 +
 .../node_modules/lodash/_baseAssignIn.js        |    17 +
 .../node_modules/lodash/_baseAssignValue.js     |    25 +
 .../globule/node_modules/lodash/_baseAt.js      |    23 +
 .../globule/node_modules/lodash/_baseClamp.js   |    22 +
 .../globule/node_modules/lodash/_baseClone.js   |   171 +
 .../node_modules/lodash/_baseConforms.js        |    18 +
 .../node_modules/lodash/_baseConformsTo.js      |    27 +
 .../globule/node_modules/lodash/_baseCreate.js  |    30 +
 .../globule/node_modules/lodash/_baseDelay.js   |    21 +
 .../node_modules/lodash/_baseDifference.js      |    67 +
 .../globule/node_modules/lodash/_baseEach.js    |    14 +
 .../node_modules/lodash/_baseEachRight.js       |    14 +
 .../globule/node_modules/lodash/_baseEvery.js   |    21 +
 .../node_modules/lodash/_baseExtremum.js        |    32 +
 .../globule/node_modules/lodash/_baseFill.js    |    32 +
 .../globule/node_modules/lodash/_baseFilter.js  |    21 +
 .../node_modules/lodash/_baseFindIndex.js       |    24 +
 .../globule/node_modules/lodash/_baseFindKey.js |    23 +
 .../globule/node_modules/lodash/_baseFlatten.js |    38 +
 .../globule/node_modules/lodash/_baseFor.js     |    16 +
 .../globule/node_modules/lodash/_baseForOwn.js  |    16 +
 .../node_modules/lodash/_baseForOwnRight.js     |    16 +
 .../node_modules/lodash/_baseForRight.js        |    15 +
 .../node_modules/lodash/_baseFunctions.js       |    19 +
 .../globule/node_modules/lodash/_baseGet.js     |    24 +
 .../node_modules/lodash/_baseGetAllKeys.js      |    20 +
 .../globule/node_modules/lodash/_baseGetTag.js  |    28 +
 .../globule/node_modules/lodash/_baseGt.js      |    14 +
 .../globule/node_modules/lodash/_baseHas.js     |    19 +
 .../globule/node_modules/lodash/_baseHasIn.js   |    13 +
 .../globule/node_modules/lodash/_baseInRange.js |    18 +
 .../globule/node_modules/lodash/_baseIndexOf.js |    20 +
 .../node_modules/lodash/_baseIndexOfWith.js     |    23 +
 .../node_modules/lodash/_baseIntersection.js    |    74 +
 .../node_modules/lodash/_baseInverter.js        |    21 +
 .../globule/node_modules/lodash/_baseInvoke.js  |    24 +
 .../node_modules/lodash/_baseIsArguments.js     |    18 +
 .../node_modules/lodash/_baseIsArrayBuffer.js   |    17 +
 .../globule/node_modules/lodash/_baseIsDate.js  |    18 +
 .../globule/node_modules/lodash/_baseIsEqual.js |    28 +
 .../node_modules/lodash/_baseIsEqualDeep.js     |    83 +
 .../globule/node_modules/lodash/_baseIsMap.js   |    18 +
 .../globule/node_modules/lodash/_baseIsMatch.js |    62 +
 .../globule/node_modules/lodash/_baseIsNaN.js   |    12 +
 .../node_modules/lodash/_baseIsNative.js        |    47 +
 .../node_modules/lodash/_baseIsRegExp.js        |    18 +
 .../globule/node_modules/lodash/_baseIsSet.js   |    18 +
 .../node_modules/lodash/_baseIsTypedArray.js    |    60 +
 .../node_modules/lodash/_baseIteratee.js        |    31 +
 .../globule/node_modules/lodash/_baseKeys.js    |    30 +
 .../globule/node_modules/lodash/_baseKeysIn.js  |    33 +
 .../globule/node_modules/lodash/_baseLodash.js  |    10 +
 .../globule/node_modules/lodash/_baseLt.js      |    14 +
 .../globule/node_modules/lodash/_baseMap.js     |    22 +
 .../globule/node_modules/lodash/_baseMatches.js |    22 +
 .../node_modules/lodash/_baseMatchesProperty.js |    33 +
 .../globule/node_modules/lodash/_baseMean.js    |    20 +
 .../globule/node_modules/lodash/_baseMerge.js   |    42 +
 .../node_modules/lodash/_baseMergeDeep.js       |    94 +
 .../globule/node_modules/lodash/_baseNth.js     |    20 +
 .../globule/node_modules/lodash/_baseOrderBy.js |    34 +
 .../globule/node_modules/lodash/_basePick.js    |    19 +
 .../globule/node_modules/lodash/_basePickBy.js  |    30 +
 .../node_modules/lodash/_baseProperty.js        |    14 +
 .../node_modules/lodash/_basePropertyDeep.js    |    16 +
 .../node_modules/lodash/_basePropertyOf.js      |    14 +
 .../globule/node_modules/lodash/_basePullAll.js |    51 +
 .../globule/node_modules/lodash/_basePullAt.js  |    37 +
 .../globule/node_modules/lodash/_baseRandom.js  |    18 +
 .../globule/node_modules/lodash/_baseRange.js   |    28 +
 .../globule/node_modules/lodash/_baseReduce.js  |    23 +
 .../globule/node_modules/lodash/_baseRepeat.js  |    35 +
 .../globule/node_modules/lodash/_baseRest.js    |    17 +
 .../globule/node_modules/lodash/_baseSample.js  |    15 +
 .../node_modules/lodash/_baseSampleSize.js      |    18 +
 .../globule/node_modules/lodash/_baseSet.js     |    47 +
 .../globule/node_modules/lodash/_baseSetData.js |    17 +
 .../node_modules/lodash/_baseSetToString.js     |    22 +
 .../globule/node_modules/lodash/_baseShuffle.js |    15 +
 .../globule/node_modules/lodash/_baseSlice.js   |    31 +
 .../globule/node_modules/lodash/_baseSome.js    |    22 +
 .../globule/node_modules/lodash/_baseSortBy.js  |    21 +
 .../node_modules/lodash/_baseSortedIndex.js     |    42 +
 .../node_modules/lodash/_baseSortedIndexBy.js   |    64 +
 .../node_modules/lodash/_baseSortedUniq.js      |    30 +
 .../globule/node_modules/lodash/_baseSum.js     |    24 +
 .../globule/node_modules/lodash/_baseTimes.js   |    20 +
 .../node_modules/lodash/_baseToNumber.js        |    24 +
 .../globule/node_modules/lodash/_baseToPairs.js |    18 +
 .../node_modules/lodash/_baseToString.js        |    37 +
 .../globule/node_modules/lodash/_baseUnary.js   |    14 +
 .../globule/node_modules/lodash/_baseUniq.js    |    72 +
 .../globule/node_modules/lodash/_baseUnset.js   |    20 +
 .../globule/node_modules/lodash/_baseUpdate.js  |    18 +
 .../globule/node_modules/lodash/_baseValues.js  |    19 +
 .../globule/node_modules/lodash/_baseWhile.js   |    26 +
 .../node_modules/lodash/_baseWrapperValue.js    |    25 +
 .../globule/node_modules/lodash/_baseXor.js     |    36 +
 .../node_modules/lodash/_baseZipObject.js       |    23 +
 .../globule/node_modules/lodash/_cacheHas.js    |    13 +
 .../node_modules/lodash/_castArrayLikeObject.js |    14 +
 .../node_modules/lodash/_castFunction.js        |    14 +
 .../globule/node_modules/lodash/_castPath.js    |    21 +
 .../globule/node_modules/lodash/_castRest.js    |    14 +
 .../globule/node_modules/lodash/_castSlice.js   |    18 +
 .../node_modules/lodash/_charsEndIndex.js       |    19 +
 .../node_modules/lodash/_charsStartIndex.js     |    20 +
 .../node_modules/lodash/_cloneArrayBuffer.js    |    16 +
 .../globule/node_modules/lodash/_cloneBuffer.js |    35 +
 .../node_modules/lodash/_cloneDataView.js       |    16 +
 .../globule/node_modules/lodash/_cloneRegExp.js |    17 +
 .../globule/node_modules/lodash/_cloneSymbol.js |    18 +
 .../node_modules/lodash/_cloneTypedArray.js     |    16 +
 .../node_modules/lodash/_compareAscending.js    |    41 +
 .../node_modules/lodash/_compareMultiple.js     |    44 +
 .../globule/node_modules/lodash/_composeArgs.js |    39 +
 .../node_modules/lodash/_composeArgsRight.js    |    41 +
 .../globule/node_modules/lodash/_copyArray.js   |    20 +
 .../globule/node_modules/lodash/_copyObject.js  |    40 +
 .../globule/node_modules/lodash/_copySymbols.js |    16 +
 .../node_modules/lodash/_copySymbolsIn.js       |    16 +
 .../globule/node_modules/lodash/_coreJsData.js  |     6 +
 .../node_modules/lodash/_countHolders.js        |    21 +
 .../node_modules/lodash/_createAggregator.js    |    23 +
 .../node_modules/lodash/_createAssigner.js      |    37 +
 .../node_modules/lodash/_createBaseEach.js      |    32 +
 .../node_modules/lodash/_createBaseFor.js       |    25 +
 .../globule/node_modules/lodash/_createBind.js  |    28 +
 .../node_modules/lodash/_createCaseFirst.js     |    33 +
 .../node_modules/lodash/_createCompounder.js    |    24 +
 .../globule/node_modules/lodash/_createCtor.js  |    37 +
 .../globule/node_modules/lodash/_createCurry.js |    46 +
 .../globule/node_modules/lodash/_createFind.js  |    25 +
 .../globule/node_modules/lodash/_createFlow.js  |    78 +
 .../node_modules/lodash/_createHybrid.js        |    92 +
 .../node_modules/lodash/_createInverter.js      |    17 +
 .../node_modules/lodash/_createMathOperation.js |    38 +
 .../globule/node_modules/lodash/_createOver.js  |    27 +
 .../node_modules/lodash/_createPadding.js       |    33 +
 .../node_modules/lodash/_createPartial.js       |    43 +
 .../globule/node_modules/lodash/_createRange.js |    30 +
 .../node_modules/lodash/_createRecurry.js       |    56 +
 .../lodash/_createRelationalOperation.js        |    20 +
 .../globule/node_modules/lodash/_createRound.js |    33 +
 .../globule/node_modules/lodash/_createSet.js   |    19 +
 .../node_modules/lodash/_createToPairs.js       |    30 +
 .../globule/node_modules/lodash/_createWrap.js  |   106 +
 .../lodash/_customDefaultsAssignIn.js           |    29 +
 .../node_modules/lodash/_customDefaultsMerge.js |    28 +
 .../node_modules/lodash/_customOmitClone.js     |    16 +
 .../node_modules/lodash/_deburrLetter.js        |    71 +
 .../node_modules/lodash/_defineProperty.js      |    11 +
 .../globule/node_modules/lodash/_equalArrays.js |    83 +
 .../globule/node_modules/lodash/_equalByTag.js  |   112 +
 .../node_modules/lodash/_equalObjects.js        |    89 +
 .../node_modules/lodash/_escapeHtmlChar.js      |    21 +
 .../node_modules/lodash/_escapeStringChar.js    |    22 +
 .../globule/node_modules/lodash/_flatRest.js    |    16 +
 .../globule/node_modules/lodash/_freeGlobal.js  |     4 +
 .../globule/node_modules/lodash/_getAllKeys.js  |    16 +
 .../node_modules/lodash/_getAllKeysIn.js        |    17 +
 .../globule/node_modules/lodash/_getData.js     |    15 +
 .../globule/node_modules/lodash/_getFuncName.js |    31 +
 .../globule/node_modules/lodash/_getHolder.js   |    13 +
 .../globule/node_modules/lodash/_getMapData.js  |    18 +
 .../node_modules/lodash/_getMatchData.js        |    24 +
 .../globule/node_modules/lodash/_getNative.js   |    17 +
 .../node_modules/lodash/_getPrototype.js        |     6 +
 .../globule/node_modules/lodash/_getRawTag.js   |    46 +
 .../globule/node_modules/lodash/_getSymbols.js  |    30 +
 .../node_modules/lodash/_getSymbolsIn.js        |    25 +
 .../globule/node_modules/lodash/_getTag.js      |    58 +
 .../globule/node_modules/lodash/_getValue.js    |    13 +
 .../globule/node_modules/lodash/_getView.js     |    33 +
 .../node_modules/lodash/_getWrapDetails.js      |    17 +
 .../globule/node_modules/lodash/_hasPath.js     |    39 +
 .../globule/node_modules/lodash/_hasUnicode.js  |    26 +
 .../node_modules/lodash/_hasUnicodeWord.js      |    15 +
 .../globule/node_modules/lodash/_hashClear.js   |    15 +
 .../globule/node_modules/lodash/_hashDelete.js  |    17 +
 .../globule/node_modules/lodash/_hashGet.js     |    30 +
 .../globule/node_modules/lodash/_hashHas.js     |    23 +
 .../globule/node_modules/lodash/_hashSet.js     |    23 +
 .../node_modules/lodash/_initCloneArray.js      |    26 +
 .../node_modules/lodash/_initCloneByTag.js      |    77 +
 .../node_modules/lodash/_initCloneObject.js     |    18 +
 .../node_modules/lodash/_insertWrapDetails.js   |    23 +
 .../node_modules/lodash/_isFlattenable.js       |    20 +
 .../globule/node_modules/lodash/_isIndex.js     |    25 +
 .../node_modules/lodash/_isIterateeCall.js      |    30 +
 .../globule/node_modules/lodash/_isKey.js       |    29 +
 .../globule/node_modules/lodash/_isKeyable.js   |    15 +
 .../globule/node_modules/lodash/_isLaziable.js  |    28 +
 .../globule/node_modules/lodash/_isMaskable.js  |    14 +
 .../globule/node_modules/lodash/_isMasked.js    |    20 +
 .../globule/node_modules/lodash/_isPrototype.js |    18 +
 .../node_modules/lodash/_isStrictComparable.js  |    15 +
 .../node_modules/lodash/_iteratorToArray.js     |    18 +
 .../globule/node_modules/lodash/_lazyClone.js   |    23 +
 .../globule/node_modules/lodash/_lazyReverse.js |    23 +
 .../globule/node_modules/lodash/_lazyValue.js   |    69 +
 .../node_modules/lodash/_listCacheClear.js      |    13 +
 .../node_modules/lodash/_listCacheDelete.js     |    35 +
 .../node_modules/lodash/_listCacheGet.js        |    19 +
 .../node_modules/lodash/_listCacheHas.js        |    16 +
 .../node_modules/lodash/_listCacheSet.js        |    26 +
 .../node_modules/lodash/_mapCacheClear.js       |    21 +
 .../node_modules/lodash/_mapCacheDelete.js      |    18 +
 .../globule/node_modules/lodash/_mapCacheGet.js |    16 +
 .../globule/node_modules/lodash/_mapCacheHas.js |    16 +
 .../globule/node_modules/lodash/_mapCacheSet.js |    22 +
 .../globule/node_modules/lodash/_mapToArray.js  |    18 +
 .../lodash/_matchesStrictComparable.js          |    20 +
 .../node_modules/lodash/_memoizeCapped.js       |    26 +
 .../globule/node_modules/lodash/_mergeData.js   |    90 +
 .../globule/node_modules/lodash/_metaMap.js     |     6 +
 .../node_modules/lodash/_nativeCreate.js        |     6 +
 .../globule/node_modules/lodash/_nativeKeys.js  |     6 +
 .../node_modules/lodash/_nativeKeysIn.js        |    20 +
 .../globule/node_modules/lodash/_nodeUtil.js    |    30 +
 .../node_modules/lodash/_objectToString.js      |    22 +
 .../globule/node_modules/lodash/_overArg.js     |    15 +
 .../globule/node_modules/lodash/_overRest.js    |    36 +
 .../globule/node_modules/lodash/_parent.js      |    16 +
 .../globule/node_modules/lodash/_reEscape.js    |     4 +
 .../globule/node_modules/lodash/_reEvaluate.js  |     4 +
 .../node_modules/lodash/_reInterpolate.js       |     4 +
 .../globule/node_modules/lodash/_realNames.js   |     4 +
 .../globule/node_modules/lodash/_reorder.js     |    29 +
 .../node_modules/lodash/_replaceHolders.js      |    29 +
 .../globule/node_modules/lodash/_root.js        |     9 +
 .../globule/node_modules/lodash/_safeGet.js     |    15 +
 .../globule/node_modules/lodash/_setCacheAdd.js |    19 +
 .../globule/node_modules/lodash/_setCacheHas.js |    14 +
 .../globule/node_modules/lodash/_setData.js     |    20 +
 .../globule/node_modules/lodash/_setToArray.js  |    18 +
 .../globule/node_modules/lodash/_setToPairs.js  |    18 +
 .../globule/node_modules/lodash/_setToString.js |    14 +
 .../node_modules/lodash/_setWrapToString.js     |    21 +
 .../globule/node_modules/lodash/_shortOut.js    |    37 +
 .../globule/node_modules/lodash/_shuffleSelf.js |    28 +
 .../globule/node_modules/lodash/_stackClear.js  |    15 +
 .../globule/node_modules/lodash/_stackDelete.js |    18 +
 .../globule/node_modules/lodash/_stackGet.js    |    14 +
 .../globule/node_modules/lodash/_stackHas.js    |    14 +
 .../globule/node_modules/lodash/_stackSet.js    |    34 +
 .../node_modules/lodash/_strictIndexOf.js       |    23 +
 .../node_modules/lodash/_strictLastIndexOf.js   |    21 +
 .../globule/node_modules/lodash/_stringSize.js  |    18 +
 .../node_modules/lodash/_stringToArray.js       |    18 +
 .../node_modules/lodash/_stringToPath.js        |    27 +
 .../globule/node_modules/lodash/_toKey.js       |    21 +
 .../globule/node_modules/lodash/_toSource.js    |    26 +
 .../node_modules/lodash/_unescapeHtmlChar.js    |    21 +
 .../globule/node_modules/lodash/_unicodeSize.js |    44 +
 .../node_modules/lodash/_unicodeToArray.js      |    40 +
 .../node_modules/lodash/_unicodeWords.js        |    69 +
 .../node_modules/lodash/_updateWrapDetails.js   |    46 +
 .../node_modules/lodash/_wrapperClone.js        |    23 +
 node_modules/globule/node_modules/lodash/add.js |    22 +
 .../globule/node_modules/lodash/after.js        |    42 +
 .../globule/node_modules/lodash/array.js        |    67 +
 node_modules/globule/node_modules/lodash/ary.js |    29 +
 .../globule/node_modules/lodash/assign.js       |    58 +
 .../globule/node_modules/lodash/assignIn.js     |    40 +
 .../globule/node_modules/lodash/assignInWith.js |    38 +
 .../globule/node_modules/lodash/assignWith.js   |    37 +
 node_modules/globule/node_modules/lodash/at.js  |    23 +
 .../globule/node_modules/lodash/attempt.js      |    35 +
 .../globule/node_modules/lodash/before.js       |    40 +
 .../globule/node_modules/lodash/bind.js         |    57 +
 .../globule/node_modules/lodash/bindAll.js      |    41 +
 .../globule/node_modules/lodash/bindKey.js      |    68 +
 .../globule/node_modules/lodash/camelCase.js    |    29 +
 .../globule/node_modules/lodash/capitalize.js   |    23 +
 .../globule/node_modules/lodash/castArray.js    |    44 +
 .../globule/node_modules/lodash/ceil.js         |    26 +
 .../globule/node_modules/lodash/chain.js        |    38 +
 .../globule/node_modules/lodash/chunk.js        |    50 +
 .../globule/node_modules/lodash/clamp.js        |    39 +
 .../globule/node_modules/lodash/clone.js        |    36 +
 .../globule/node_modules/lodash/cloneDeep.js    |    29 +
 .../node_modules/lodash/cloneDeepWith.js        |    40 +
 .../globule/node_modules/lodash/cloneWith.js    |    42 +
 .../globule/node_modules/lodash/collection.js   |    30 +
 .../globule/node_modules/lodash/commit.js       |    33 +
 .../globule/node_modules/lodash/compact.js      |    31 +
 .../globule/node_modules/lodash/concat.js       |    43 +
 .../globule/node_modules/lodash/cond.js         |    60 +
 .../globule/node_modules/lodash/conforms.js     |    35 +
 .../globule/node_modules/lodash/conformsTo.js   |    32 +
 .../globule/node_modules/lodash/constant.js     |    26 +
 .../globule/node_modules/lodash/core.js         |  3854 +++
 .../globule/node_modules/lodash/core.min.js     |    29 +
 .../globule/node_modules/lodash/countBy.js      |    40 +
 .../globule/node_modules/lodash/create.js       |    43 +
 .../globule/node_modules/lodash/curry.js        |    57 +
 .../globule/node_modules/lodash/curryRight.js   |    54 +
 .../globule/node_modules/lodash/date.js         |     3 +
 .../globule/node_modules/lodash/debounce.js     |   190 +
 .../globule/node_modules/lodash/deburr.js       |    45 +
 .../globule/node_modules/lodash/defaultTo.js    |    25 +
 .../globule/node_modules/lodash/defaults.js     |    64 +
 .../globule/node_modules/lodash/defaultsDeep.js |    30 +
 .../globule/node_modules/lodash/defer.js        |    26 +
 .../globule/node_modules/lodash/delay.js        |    28 +
 .../globule/node_modules/lodash/difference.js   |    33 +
 .../globule/node_modules/lodash/differenceBy.js |    44 +
 .../node_modules/lodash/differenceWith.js       |    40 +
 .../globule/node_modules/lodash/divide.js       |    22 +
 .../globule/node_modules/lodash/drop.js         |    38 +
 .../globule/node_modules/lodash/dropRight.js    |    39 +
 .../node_modules/lodash/dropRightWhile.js       |    45 +
 .../globule/node_modules/lodash/dropWhile.js    |    45 +
 .../globule/node_modules/lodash/each.js         |     1 +
 .../globule/node_modules/lodash/eachRight.js    |     1 +
 .../globule/node_modules/lodash/endsWith.js     |    43 +
 .../globule/node_modules/lodash/entries.js      |     1 +
 .../globule/node_modules/lodash/entriesIn.js    |     1 +
 node_modules/globule/node_modules/lodash/eq.js  |    37 +
 .../globule/node_modules/lodash/escape.js       |    43 +
 .../globule/node_modules/lodash/escapeRegExp.js |    32 +
 .../globule/node_modules/lodash/every.js        |    56 +
 .../globule/node_modules/lodash/extend.js       |     1 +
 .../globule/node_modules/lodash/extendWith.js   |     1 +
 .../globule/node_modules/lodash/fill.js         |    45 +
 .../globule/node_modules/lodash/filter.js       |    48 +
 .../globule/node_modules/lodash/find.js         |    42 +
 .../globule/node_modules/lodash/findIndex.js    |    55 +
 .../globule/node_modules/lodash/findKey.js      |    44 +
 .../globule/node_modules/lodash/findLast.js     |    25 +
 .../node_modules/lodash/findLastIndex.js        |    59 +
 .../globule/node_modules/lodash/findLastKey.js  |    44 +
 .../globule/node_modules/lodash/first.js        |     1 +
 .../globule/node_modules/lodash/flatMap.js      |    29 +
 .../globule/node_modules/lodash/flatMapDeep.js  |    31 +
 .../globule/node_modules/lodash/flatMapDepth.js |    31 +
 .../globule/node_modules/lodash/flatten.js      |    22 +
 .../globule/node_modules/lodash/flattenDeep.js  |    25 +
 .../globule/node_modules/lodash/flattenDepth.js |    33 +
 .../globule/node_modules/lodash/flip.js         |    28 +
 .../globule/node_modules/lodash/floor.js        |    26 +
 .../globule/node_modules/lodash/flow.js         |    27 +
 .../globule/node_modules/lodash/flowRight.js    |    26 +
 .../globule/node_modules/lodash/forEach.js      |    41 +
 .../globule/node_modules/lodash/forEachRight.js |    31 +
 .../globule/node_modules/lodash/forIn.js        |    39 +
 .../globule/node_modules/lodash/forInRight.js   |    37 +
 .../globule/node_modules/lodash/forOwn.js       |    36 +
 .../globule/node_modules/lodash/forOwnRight.js  |    34 +
 node_modules/globule/node_modules/lodash/fp.js  |     2 +
 .../globule/node_modules/lodash/fp/F.js         |     1 +
 .../globule/node_modules/lodash/fp/T.js         |     1 +
 .../globule/node_modules/lodash/fp/__.js        |     1 +
 .../node_modules/lodash/fp/_baseConvert.js      |   573 +
 .../node_modules/lodash/fp/_convertBrowser.js   |    18 +
 .../node_modules/lodash/fp/_falseOptions.js     |     7 +
 .../globule/node_modules/lodash/fp/_mapping.js  |   368 +
 .../globule/node_modules/lodash/fp/_util.js     |    16 +
 .../globule/node_modules/lodash/fp/add.js       |     5 +
 .../globule/node_modules/lodash/fp/after.js     |     5 +
 .../globule/node_modules/lodash/fp/all.js       |     1 +
 .../globule/node_modules/lodash/fp/allPass.js   |     1 +
 .../globule/node_modules/lodash/fp/always.js    |     1 +
 .../globule/node_modules/lodash/fp/any.js       |     1 +
 .../globule/node_modules/lodash/fp/anyPass.js   |     1 +
 .../globule/node_modules/lodash/fp/apply.js     |     1 +
 .../globule/node_modules/lodash/fp/array.js     |     2 +
 .../globule/node_modules/lodash/fp/ary.js       |     5 +
 .../globule/node_modules/lodash/fp/assign.js    |     5 +
 .../globule/node_modules/lodash/fp/assignAll.js |     5 +
 .../node_modules/lodash/fp/assignAllWith.js     |     5 +
 .../globule/node_modules/lodash/fp/assignIn.js  |     5 +
 .../node_modules/lodash/fp/assignInAll.js       |     5 +
 .../node_modules/lodash/fp/assignInAllWith.js   |     5 +
 .../node_modules/lodash/fp/assignInWith.js      |     5 +
 .../node_modules/lodash/fp/assignWith.js        |     5 +
 .../globule/node_modules/lodash/fp/assoc.js     |     1 +
 .../globule/node_modules/lodash/fp/assocPath.js |     1 +
 .../globule/node_modules/lodash/fp/at.js        |     5 +
 .../globule/node_modules/lodash/fp/attempt.js   |     5 +
 .../globule/node_modules/lodash/fp/before.js    |     5 +
 .../globule/node_modules/lodash/fp/bind.js      |     5 +
 .../globule/node_modules/lodash/fp/bindAll.js   |     5 +
 .../globule/node_modules/lodash/fp/bindKey.js   |     5 +
 .../globule/node_modules/lodash/fp/camelCase.js |     5 +
 .../node_modules/lodash/fp/capitalize.js        |     5 +
 .../globule/node_modules/lodash/fp/castArray.js |     5 +
 .../globule/node_modules/lodash/fp/ceil.js      |     5 +
 .../globule/node_modules/lodash/fp/chain.js     |     5 +
 .../globule/node_modules/lodash/fp/chunk.js     |     5 +
 .../globule/node_modules/lodash/fp/clamp.js     |     5 +
 .../globule/node_modules/lodash/fp/clone.js     |     5 +
 .../globule/node_modules/lodash/fp/cloneDeep.js |     5 +
 .../node_modules/lodash/fp/cloneDeepWith.js     |     5 +
 .../globule/node_modules/lodash/fp/cloneWith.js |     5 +
 .../node_modules/lodash/fp/collection.js        |     2 +
 .../globule/node_modules/lodash/fp/commit.js    |     5 +
 .../globule/node_modules/lodash/fp/compact.js   |     5 +
 .../node_modules/lodash/fp/complement.js        |     1 +
 .../globule/node_modules/lodash/fp/compose.js   |     1 +
 .../globule/node_modules/lodash/fp/concat.js    |     5 +
 .../globule/node_modules/lodash/fp/cond.js      |     5 +
 .../globule/node_modules/lodash/fp/conforms.js  |     1 +
 .../node_modules/lodash/fp/conformsTo.js        |     5 +
 .../globule/node_modules/lodash/fp/constant.js  |     5 +
 .../globule/node_modules/lodash/fp/contains.js  |     1 +
 .../globule/node_modules/lodash/fp/convert.js   |    18 +
 .../globule/node_modules/lodash/fp/countBy.js   |     5 +
 .../globule/node_modules/lodash/fp/create.js    |     5 +
 .../globule/node_modules/lodash/fp/curry.js     |     5 +
 .../globule/node_modules/lodash/fp/curryN.js    |     5 +
 .../node_modules/lodash/fp/curryRight.js        |     5 +
 .../node_modules/lodash/fp/curryRightN.js       |     5 +
 .../globule/node_modules/lodash/fp/date.js      |     2 +
 .../globule/node_modules/lodash/fp/debounce.js  |     5 +
 .../globule/node_modules/lodash/fp/deburr.js    |     5 +
 .../globule/node_modules/lodash/fp/defaultTo.js |     5 +
 .../globule/node_modules/lodash/fp/defaults.js  |     5 +
 .../node_modules/lodash/fp/defaultsAll.js       |     5 +
 .../node_modules/lodash/fp/defaultsDeep.js      |     5 +
 .../node_modules/lodash/fp/defaultsDeepAll.js   |     5 +
 .../globule/node_modules/lodash/fp/defer.js     |     5 +
 .../globule/node_modules/lodash/fp/delay.js     |     5 +
 .../node_modules/lodash/fp/difference.js        |     5 +
 .../node_modules/lodash/fp/differenceBy.js      |     5 +
 .../node_modules/lodash/fp/differenceWith.js    |     5 +
 .../globule/node_modules/lodash/fp/dissoc.js    |     1 +
 .../node_modules/lodash/fp/dissocPath.js        |     1 +
 .../globule/node_modules/lodash/fp/divide.js    |     5 +
 .../globule/node_modules/lodash/fp/drop.js      |     5 +
 .../globule/node_modules/lodash/fp/dropLast.js  |     1 +
 .../node_modules/lodash/fp/dropLastWhile.js     |     1 +
 .../globule/node_modules/lodash/fp/dropRight.js |     5 +
 .../node_modules/lodash/fp/dropRightWhile.js    |     5 +
 .../globule/node_modules/lodash/fp/dropWhile.js |     5 +
 .../globule/node_modules/lodash/fp/each.js      |     1 +
 .../globule/node_modules/lodash/fp/eachRight.js |     1 +
 .../globule/node_modules/lodash/fp/endsWith.js  |     5 +
 .../globule/node_modules/lodash/fp/entries.js   |     1 +
 .../globule/node_modules/lodash/fp/entriesIn.js |     1 +
 .../globule/node_modules/lodash/fp/eq.js        |     5 +
 .../globule/node_modules/lodash/fp/equals.js    |     1 +
 .../globule/node_modules/lodash/fp/escape.js    |     5 +
 .../node_modules/lodash/fp/escapeRegExp.js      |     5 +
 .../globule/node_modules/lodash/fp/every.js     |     5 +
 .../globule/node_modules/lodash/fp/extend.js    |     1 +
 .../globule/node_modules/lodash/fp/extendAll.js |     1 +
 .../node_modules/lodash/fp/extendAllWith.js     |     1 +
 .../node_modules/lodash/fp/extendWith.js        |     1 +
 .../globule/node_modules/lodash/fp/fill.js      |     5 +
 .../globule/node_modules/lodash/fp/filter.js    |     5 +
 .../globule/node_modules/lodash/fp/find.js      |     5 +
 .../globule/node_modules/lodash/fp/findFrom.js  |     5 +
 .../globule/node_modules/lodash/fp/findIndex.js |     5 +
 .../node_modules/lodash/fp/findIndexFrom.js     |     5 +
 .../globule/node_modules/lodash/fp/findKey.js   |     5 +
 .../globule/node_modules/lodash/fp/findLast.js  |     5 +
 .../node_modules/lodash/fp/findLastFrom.js      |     5 +
 .../node_modules/lodash/fp/findLastIndex.js     |     5 +
 .../node_modules/lodash/fp/findLastIndexFrom.js |     5 +
 .../node_modules/lodash/fp/findLastKey.js       |     5 +
 .../globule/node_modules/lodash/fp/first.js     |     1 +
 .../globule/node_modules/lodash/fp/flatMap.js   |     5 +
 .../node_modules/lodash/fp/flatMapDeep.js       |     5 +
 .../node_modules/lodash/fp/flatMapDepth.js      |     5 +
 .../globule/node_modules/lodash/fp/flatten.js   |     5 +
 .../node_modules/lodash/fp/flattenDeep.js       |     5 +
 .../node_modules/lodash/fp/flattenDepth.js      |     5 +
 .../globule/node_modules/lodash/fp/flip.js      |     5 +
 .../globule/node_modules/lodash/fp/floor.js     |     5 +
 .../globule/node_modules/lodash/fp/flow.js      |     5 +
 .../globule/node_modules/lodash/fp/flowRight.js |     5 +
 .../globule/node_modules/lodash/fp/forEach.js   |     5 +
 .../node_modules/lodash/fp/forEachRight.js      |     5 +
 .../globule/node_modules/lodash/fp/forIn.js     |     5 +
 .../node_modules/lodash/fp/forInRight.js        |     5 +
 .../globule/node_modules/lodash/fp/forOwn.js    |     5 +
 .../node_modules/lodash/fp/forOwnRight.js       |     5 +
 .../globule/node_modules/lodash/fp/fromPairs.js |     5 +
 .../globule/node_modules/lodash/fp/function.js  |     2 +
 .../globule/node_modules/lodash/fp/functions.js |     5 +
 .../node_modules/lodash/fp/functionsIn.js       |     5 +
 .../globule/node_modules/lodash/fp/get.js       |     5 +
 .../globule/node_modules/lodash/fp/getOr.js     |     5 +
 .../globule/node_modules/lodash/fp/groupBy.js   |     5 +
 .../globule/node_modules/lodash/fp/gt.js        |     5 +
 .../globule/node_modules/lodash/fp/gte.js       |     5 +
 .../globule/node_modules/lodash/fp/has.js       |     5 +
 .../globule/node_modules/lodash/fp/hasIn.js     |     5 +
 .../globule/node_modules/lodash/fp/head.js      |     5 +
 .../globule/node_modules/lodash/fp/identical.js |     1 +
 .../globule/node_modules/lodash/fp/identity.js  |     5 +
 .../globule/node_modules/lodash/fp/inRange.js   |     5 +
 .../globule/node_modules/lodash/fp/includes.js  |     5 +
 .../node_modules/lodash/fp/includesFrom.js      |     5 +
 .../globule/node_modules/lodash/fp/indexBy.js   |     1 +
 .../globule/node_modules/lodash/fp/indexOf.js   |     5 +
 .../node_modules/lodash/fp/indexOfFrom.js       |     5 +
 .../globule/node_modules/lodash/fp/init.js      |     1 +
 .../globule/node_modules/lodash/fp/initial.js   |     5 +
 .../node_modules/lodash/fp/intersection.js      |     5 +
 .../node_modules/lodash/fp/intersectionBy.js    |     5 +
 .../node_modules/lodash/fp/intersectionWith.js  |     5 +
 .../globule/node_modules/lodash/fp/invert.js    |     5 +
 .../globule/node_modules/lodash/fp/invertBy.js  |     5 +
 .../globule/node_modules/lodash/fp/invertObj.js |     1 +
 .../globule/node_modules/lodash/fp/invoke.js    |     5 +
 .../node_modules/lodash/fp/invokeArgs.js        |     5 +
 .../node_modules/lodash/fp/invokeArgsMap.js     |     5 +
 .../globule/node_modules/lodash/fp/invokeMap.js |     5 +
 .../node_modules/lodash/fp/isArguments.js       |     5 +
 .../globule/node_modules/lodash/fp/isArray.js   |     5 +
 .../node_modules/lodash/fp/isArrayBuffer.js     |     5 +
 .../node_modules/lodash/fp/isArrayLike.js       |     5 +
 .../node_modules/lodash/fp/isArrayLikeObject.js |     5 +
 .../globule/node_modules/lodash/fp/isBoolean.js |     5 +
 .../globule/node_modules/lodash/fp/isBuffer.js  |     5 +
 .../globule/node_modules/lodash/fp/isDate.js    |     5 +
 .../globule/node_modules/lodash/fp/isElement.js |     5 +
 .../globule/node_modules/lodash/fp/isEmpty.js   |     5 +
 .../globule/node_modules/lodash/fp/isEqual.js   |     5 +
 .../node_modules/lodash/fp/isEqualWith.js       |     5 +
 .../globule/node_modules/lodash/fp/isError.js   |     5 +
 .../globule/node_modules/lodash/fp/isFinite.js  |     5 +
 .../node_modules/lodash/fp/isFunction.js        |     5 +
 .../globule/node_modules/lodash/fp/isInteger.js |     5 +
 .../globule/node_modules/lodash/fp/isLength.js  |     5 +
 .../globule/node_modules/lodash/fp/isMap.js     |     5 +
 .../globule/node_modules/lodash/fp/isMatch.js   |     5 +
 .../node_modules/lodash/fp/isMatchWith.js       |     5 +
 .../globule/node_modules/lodash/fp/isNaN.js     |     5 +
 .../globule/node_modules/lodash/fp/isNative.js  |     5 +
 .../globule/node_modules/lodash/fp/isNil.js     |     5 +
 .../globule/node_modules/lodash/fp/isNull.js    |     5 +
 .../globule/node_modules/lodash/fp/isNumber.js  |     5 +
 .../globule/node_modules/lodash/fp/isObject.js  |     5 +
 .../node_modules/lodash/fp/isObjectLike.js      |     5 +
 .../node_modules/lodash/fp/isPlainObject.js     |     5 +
 .../globule/node_modules/lodash/fp/isRegExp.js  |     5 +
 .../node_modules/lodash/fp/isSafeInteger.js     |     5 +
 .../globule/node_modules/lodash/fp/isSet.js     |     5 +
 .../globule/node_modules/lodash/fp/isString.js  |     5 +
 .../globule/node_modules/lodash/fp/isSymbol.js  |     5 +
 .../node_modules/lodash/fp/isTypedArray.js      |     5 +
 .../node_modules/lodash/fp/isUndefined.js       |     5 +
 .../globule/node_modules/lodash/fp/isWeakMap.js |     5 +
 .../globule/node_modules/lodash/fp/isWeakSet.js |     5 +
 .../globule/node_modules/lodash/fp/iteratee.js  |     5 +
 .../globule/node_modules/lodash/fp/join.js      |     5 +
 .../globule/node_modules/lodash/fp/juxt.js      |     1 +
 .../globule/node_modules/lodash/fp/kebabCase.js |     5 +
 .../globule/node_modules/lodash/fp/keyBy.js     |     5 +
 .../globule/node_modules/lodash/fp/keys.js      |     5 +
 .../globule/node_modules/lodash/fp/keysIn.js    |     5 +
 .../globule/node_modules/lodash/fp/lang.js      |     2 +
 .../globule/node_modules/lodash/fp/last.js      |     5 +
 .../node_modules/lodash/fp/lastIndexOf.js       |     5 +
 .../node_modules/lodash/fp/lastIndexOfFrom.js   |     5 +
 .../globule/node_modules/lodash/fp/lowerCase.js |     5 +
 .../node_modules/lodash/fp/lowerFirst.js        |     5 +
 .../globule/node_modules/lodash/fp/lt.js        |     5 +
 .../globule/node_modules/lodash/fp/lte.js       |     5 +
 .../globule/node_modules/lodash/fp/map.js       |     5 +
 .../globule/node_modules/lodash/fp/mapKeys.js   |     5 +
 .../globule/node_modules/lodash/fp/mapValues.js |     5 +
 .../globule/node_modules/lodash/fp/matches.js   |     1 +
 .../node_modules/lodash/fp/matchesProperty.js   |     5 +
 .../globule/node_modules/lodash/fp/math.js      |     2 +
 .../globule/node_modules/lodash/fp/max.js       |     5 +
 .../globule/node_modules/lodash/fp/maxBy.js     |     5 +
 .../globule/node_modules/lodash/fp/mean.js      |     5 +
 .../globule/node_modules/lodash/fp/meanBy.js    |     5 +
 .../globule/node_modules/lodash/fp/memoize.js   |     5 +
 .../globule/node_modules/lodash/fp/merge.js     |     5 +
 .../globule/node_modules/lodash/fp/mergeAll.js  |     5 +
 .../node_modules/lodash/fp/mergeAllWith.js      |     5 +
 .../globule/node_modules/lodash/fp/mergeWith.js |     5 +
 .../globule/node_modules/lodash/fp/method.js    |     5 +
 .../globule/node_modules/lodash/fp/methodOf.js  |     5 +
 .../globule/node_modules/lodash/fp/min.js       |     5 +
 .../globule/node_modules/lodash/fp/minBy.js     |     5 +
 .../globule/node_modules/lodash/fp/mixin.js     |     5 +
 .../globule/node_modules/lodash/fp/multiply.js  |     5 +
 .../globule/node_modules/lodash/fp/nAry.js      |     1 +
 .../globule/node_modules/lodash/fp/negate.js    |     5 +
 .../globule/node_modules/lodash/fp/next.js      |     5 +
 .../globule/node_modules/lodash/fp/noop.js      |     5 +
 .../globule/node_modules/lodash/fp/now.js       |     5 +
 .../globule/node_modules/lodash/fp/nth.js       |     5 +
 .../globule/node_modules/lodash/fp/nthArg.js    |     5 +
 .../globule/node_modules/lodash/fp/number.js    |     2 +
 .../globule/node_modules/lodash/fp/object.js    |     2 +
 .../globule/node_modules/lodash/fp/omit.js      |     5 +
 .../globule/node_modules/lodash/fp/omitAll.js   |     1 +
 .../globule/node_modules/lodash/fp/omitBy.js    |     5 +
 .../globule/node_modules/lodash/fp/once.js      |     5 +
 .../globule/node_modules/lodash/fp/orderBy.js   |     5 +
 .../globule/node_modules/lodash/fp/over.js      |     5 +
 .../globule/node_modules/lodash/fp/overArgs.js  |     5 +
 .../globule/node_modules/lodash/fp/overEvery.js |     5 +
 .../globule/node_modules/lodash/fp/overSome.js  |     5 +
 .../globule/node_modules/lodash/fp/pad.js       |     5 +
 .../globule/node_modules/lodash/fp/padChars.js  |     5 +
 .../node_modules/lodash/fp/padCharsEnd.js       |     5 +
 .../node_modules/lodash/fp/padCharsStart.js     |     5 +
 .../globule/node_modules/lodash/fp/padEnd.js    |     5 +
 .../globule/node_modules/lodash/fp/padStart.js  |     5 +
 .../globule/node_modules/lodash/fp/parseInt.js  |     5 +
 .../globule/node_modules/lodash/fp/partial.js   |     5 +
 .../node_modules/lodash/fp/partialRight.js      |     5 +
 .../globule/node_modules/lodash/fp/partition.js |     5 +
 .../globule/node_modules/lodash/fp/path.js      |     1 +
 .../globule/node_modules/lodash/fp/pathEq.js    |     1 +
 .../globule/node_modules/lodash/fp/pathOr.js    |     1 +
 .../globule/node_modules/lodash/fp/paths.js     |     1 +
 .../globule/node_modules/lodash/fp/pick.js      |     5 +
 .../globule/node_modules/lodash/fp/pickAll.js   |     1 +
 .../globule/node_modules/lodash/fp/pickBy.js    |     5 +
 .../globule/node_modules/lodash/fp/pipe.js      |     1 +
 .../node_modules/lodash/fp/placeholder.js       |     6 +
 .../globule/node_modules/lodash/fp/plant.js     |     5 +
 .../globule/node_modules/lodash/fp/pluck.js     |     1 +
 .../globule/node_modules/lodash/fp/prop.js      |     1 +
 .../globule/node_modules/lodash/fp/propEq.js    |     1 +
 .../globule/node_modules/lodash/fp/propOr.js    |     1 +
 .../globule/node_modules/lodash/fp/property.js  |     1 +
 .../node_modules/lodash/fp/propertyOf.js        |     5 +
 .../globule/node_modules/lodash/fp/props.js     |     1 +
 .../globule/node_modules/lodash/fp/pull.js      |     5 +
 .../globule/node_modules/lodash/fp/pullAll.js   |     5 +
 .../globule/node_modules/lodash/fp/pullAllBy.js |     5 +
 .../node_modules/lodash/fp/pullAllWith.js       |     5 +
 .../globule/node_modules/lodash/fp/pullAt.js    |     5 +
 .../globule/node_modules/lodash/fp/random.js    |     5 +
 .../globule/node_modules/lodash/fp/range.js     |     5 +
 .../node_modules/lodash/fp/rangeRight.js        |     5 +
 .../globule/node_modules/lodash/fp/rangeStep.js |     5 +
 .../node_modules/lodash/fp/rangeStepRight.js    |     5 +
 .../globule/node_modules/lodash/fp/rearg.js     |     5 +
 .../globule/node_modules/lodash/fp/reduce.js    |     5 +
 .../node_modules/lodash/fp/reduceRight.js       |     5 +
 .../globule/node_modules/lodash/fp/reject.js    |     5 +
 .../globule/node_modules/lodash/fp/remove.js    |     5 +
 .../globule/node_modules/lodash/fp/repeat.js    |     5 +
 .../globule/node_modules/lodash/fp/replace.js   |     5 +
 .../globule/node_modules/lodash/fp/rest.js      |     5 +
 .../globule/node_modules/lodash/fp/restFrom.js  |     5 +
 .../globule/node_modules/lodash/fp/result.js    |     5 +
 .../globule/node_modules/lodash/fp/reverse.js   |     5 +
 .../globule/node_modules/lodash/fp/round.js     |     5 +
 .../globule/node_modules/lodash/fp/sample.js    |     5 +
 .../node_modules/lodash/fp/sampleSize.js        |     5 +
 .../globule/node_modules/lodash/fp/seq.js       |     2 +
 .../globule/node_modules/lodash/fp/set.js       |     5 +
 .../globule/node_modules/lodash/fp/setWith.js   |     5 +
 .../globule/node_modules/lodash/fp/shuffle.js   |     5 +
 .../globule/node_modules/lodash/fp/size.js      |     5 +
 .../globule/node_modules/lodash/fp/slice.js     |     5 +
 .../globule/node_modules/lodash/fp/snakeCase.js |     5 +
 .../globule/node_modules/lodash/fp/some.js      |     5 +
 .../globule/node_modules/lodash/fp/sortBy.js    |     5 +
 .../node_modules/lodash/fp/sortedIndex.js       |     5 +
 .../node_modules/lodash/fp/sortedIndexBy.js     |     5 +
 .../node_modules/lodash/fp/sortedIndexOf.js     |     5 +
 .../node_modules/lodash/fp/sortedLastIndex.js   |     5 +
 .../node_modules/lodash/fp/sortedLastIndexBy.js |     5 +
 .../node_modules/lodash/fp/sortedLastIndexOf.js |     5 +
 .../node_modules/lodash/fp/sortedUniq.js        |     5 +
 .../node_modules/lodash/fp/sortedUniqBy.js      |     5 +
 .../globule/node_modules/lodash/fp/split.js     |     5 +
 .../globule/node_modules/lodash/fp/spread.js    |     5 +
 .../node_modules/lodash/fp/spreadFrom.js        |     5 +
 .../globule/node_modules/lodash/fp/startCase.js |     5 +
 .../node_modules/lodash/fp/startsWith.js        |     5 +
 .../globule/node_modules/lodash/fp/string.js    |     2 +
 .../globule/node_modules/lodash/fp/stubArray.js |     5 +
 .../globule/node_modules/lodash/fp/stubFalse.js |     5 +
 .../node_modules/lodash/fp/stubObject.js        |     5 +
 .../node_modules/lodash/fp/stubString.js        |     5 +
 .../globule/node_modules/lodash/fp/stubTrue.js  |     5 +
 .../globule/node_modules/lodash/fp/subtract.js  |     5 +
 .../globule/node_modules/lodash/fp/sum.js       |     5 +
 .../globule/node_modules/lodash/fp/sumBy.js     |     5 +
 .../lodash/fp/symmetricDifference.js            |     1 +
 .../lodash/fp/symmetricDifferenceBy.js          |     1 +
 .../lodash/fp/symmetricDifferenceWith.js        |     1 +
 .../globule/node_modules/lodash/fp/tail.js      |     5 +
 .../globule/node_modules/lodash/fp/take.js      |     5 +
 .../globule/node_modules/lodash/fp/takeLast.js  |     1 +
 .../node_modules/lodash/fp/takeLastWhile.js     |     1 +
 .../globule/node_modules/lodash/fp/takeRight.js |     5 +
 .../node_modules/lodash/fp/takeRightWhile.js    |     5 +
 .../globule/node_modules/lodash/fp/takeWhile.js |     5 +
 .../globule/node_modules/lodash/fp/tap.js       |     5 +
 .../globule/node_modules/lodash/fp/template.js  |     5 +
 .../node_modules/lodash/fp/templateSettings.js  |     5 +
 .../globule/node_modules/lodash/fp/throttle.js  |     5 +
 .../globule/node_modules/lodash/fp/thru.js      |     5 +
 .../globule/node_modules/lodash/fp/times.js     |     5 +
 .../globule/node_modules/lodash/fp/toArray.js   |     5 +
 .../globule/node_modules/lodash/fp/toFinite.js  |     5 +
 .../globule/node_modules/lodash/fp/toInteger.js |     5 +
 .../node_modules/lodash/fp/toIterator.js        |     5 +
 .../globule/node_modules/lodash/fp/toJSON.js    |     5 +
 .../globule/node_modules/lodash/fp/toLength.js  |     5 +
 .../globule/node_modules/lodash/fp/toLower.js   |     5 +
 .../globule/node_modules/lodash/fp/toNumber.js  |     5 +
 .../globule/node_modules/lodash/fp/toPairs.js   |     5 +
 .../globule/node_modules/lodash/fp/toPairsIn.js |     5 +
 .../globule/node_modules/lodash/fp/toPath.js    |     5 +
 .../node_modules/lodash/fp/toPlainObject.js     |     5 +
 .../node_modules/lodash/fp/toSafeInteger.js     |     5 +
 .../globule/node_modules/lodash/fp/toString.js  |     5 +
 .../globule/node_modules/lodash/fp/toUpper.js   |     5 +
 .../globule/node_modules/lodash/fp/transform.js |     5 +
 .../globule/node_modules/lodash/fp/trim.js      |     5 +
 .../globule/node_modules/lodash/fp/trimChars.js |     5 +
 .../node_modules/lodash/fp/trimCharsEnd.js      |     5 +
 .../node_modules/lodash/fp/trimCharsStart.js    |     5 +
 .../globule/node_modules/lodash/fp/trimEnd.js   |     5 +
 .../globule/node_modules/lodash/fp/trimStart.js |     5 +
 .../globule/node_modules/lodash/fp/truncate.js  |     5 +
 .../globule/node_modules/lodash/fp/unapply.js   |     1 +
 .../globule/node_modules/lodash/fp/unary.js     |     5 +
 .../globule/node_modules/lodash/fp/unescape.js  |     5 +
 .../globule/node_modules/lodash/fp/union.js     |     5 +
 .../globule/node_modules/lodash/fp/unionBy.js   |     5 +
 .../globule/node_modules/lodash/fp/unionWith.js |     5 +
 .../globule/node_modules/lodash/fp/uniq.js      |     5 +
 .../globule/node_modules/lodash/fp/uniqBy.js    |     5 +
 .../globule/node_modules/lodash/fp/uniqWith.js  |     5 +
 .../globule/node_modules/lodash/fp/uniqueId.js  |     5 +
 .../globule/node_modules/lodash/fp/unnest.js    |     1 +
 .../globule/node_modules/lodash/fp/unset.js     |     5 +
 .../globule/node_modules/lodash/fp/unzip.js     |     5 +
 .../globule/node_modules/lodash/fp/unzipWith.js |     5 +
 .../globule/node_modules/lodash/fp/update.js    |     5 +
 .../node_modules/lodash/fp/updateWith.js        |     5 +
 .../globule/node_modules/lodash/fp/upperCase.js |     5 +
 .../node_modules/lodash/fp/upperFirst.js        |     5 +
 .../globule/node_modules/lodash/fp/useWith.js   |     1 +
 .../globule/node_modules/lodash/fp/util.js      |     2 +
 .../globule/node_modules/lodash/fp/value.js     |     5 +
 .../globule/node_modules/lodash/fp/valueOf.js   |     5 +
 .../globule/node_modules/lodash/fp/values.js    |     5 +
 .../globule/node_modules/lodash/fp/valuesIn.js  |     5 +
 .../globule/node_modules/lodash/fp/where.js     |     1 +
 .../globule/node_modules/lodash/fp/whereEq.js   |     1 +
 .../globule/node_modules/lodash/fp/without.js   |     5 +
 .../globule/node_modules/lodash/fp/words.js     |     5 +
 .../globule/node_modules/lodash/fp/wrap.js      |     5 +
 .../globule/node_modules/lodash/fp/wrapperAt.js |     5 +
 .../node_modules/lodash/fp/wrapperChain.js      |     5 +
 .../node_modules/lodash/fp/wrapperLodash.js     |     5 +
 .../node_modules/lodash/fp/wrapperReverse.js    |     5 +
 .../node_modules/lodash/fp/wrapperValue.js      |     5 +
 .../globule/node_modules/lodash/fp/xor.js       |     5 +
 .../globule/node_modules/lodash/fp/xorBy.js     |     5 +
 .../globule/node_modules/lodash/fp/xorWith.js   |     5 +
 .../globule/node_modules/lodash/fp/zip.js       |     5 +
 .../globule/node_modules/lodash/fp/zipAll.js    |     5 +
 .../globule/node_modules/lodash/fp/zipObj.js    |     1 +
 .../globule/node_modules/lodash/fp/zipObject.js |     5 +
 .../node_modules/lodash/fp/zipObjectDeep.js     |     5 +
 .../globule/node_modules/lodash/fp/zipWith.js   |     5 +
 .../globule/node_modules/lodash/fromPairs.js    |    28 +
 .../globule/node_modules/lodash/function.js     |    25 +
 .../globule/node_modules/lodash/functions.js    |    31 +
 .../globule/node_modules/lodash/functionsIn.js  |    31 +
 node_modules/globule/node_modules/lodash/get.js |    33 +
 .../globule/node_modules/lodash/groupBy.js      |    41 +
 node_modules/globule/node_modules/lodash/gt.js  |    29 +
 node_modules/globule/node_modules/lodash/gte.js |    30 +
 node_modules/globule/node_modules/lodash/has.js |    35 +
 .../globule/node_modules/lodash/hasIn.js        |    34 +
 .../globule/node_modules/lodash/head.js         |    23 +
 .../globule/node_modules/lodash/identity.js     |    21 +
 .../globule/node_modules/lodash/inRange.js      |    55 +
 .../globule/node_modules/lodash/includes.js     |    53 +
 .../globule/node_modules/lodash/index.js        |     1 +
 .../globule/node_modules/lodash/indexOf.js      |    42 +
 .../globule/node_modules/lodash/initial.js      |    22 +
 .../globule/node_modules/lodash/intersection.js |    30 +
 .../node_modules/lodash/intersectionBy.js       |    45 +
 .../node_modules/lodash/intersectionWith.js     |    41 +
 .../globule/node_modules/lodash/invert.js       |    42 +
 .../globule/node_modules/lodash/invertBy.js     |    56 +
 .../globule/node_modules/lodash/invoke.js       |    24 +
 .../globule/node_modules/lodash/invokeMap.js    |    41 +
 .../globule/node_modules/lodash/isArguments.js  |    36 +
 .../globule/node_modules/lodash/isArray.js      |    26 +
 .../node_modules/lodash/isArrayBuffer.js        |    27 +
 .../globule/node_modules/lodash/isArrayLike.js  |    33 +
 .../node_modules/lodash/isArrayLikeObject.js    |    33 +
 .../globule/node_modules/lodash/isBoolean.js    |    29 +
 .../globule/node_modules/lodash/isBuffer.js     |    38 +
 .../globule/node_modules/lodash/isDate.js       |    27 +
 .../globule/node_modules/lodash/isElement.js    |    25 +
 .../globule/node_modules/lodash/isEmpty.js      |    77 +
 .../globule/node_modules/lodash/isEqual.js      |    35 +
 .../globule/node_modules/lodash/isEqualWith.js  |    41 +
 .../globule/node_modules/lodash/isError.js      |    36 +
 .../globule/node_modules/lodash/isFinite.js     |    36 +
 .../globule/node_modules/lodash/isFunction.js   |    37 +
 .../globule/node_modules/lodash/isInteger.js    |    33 +
 .../globule/node_modules/lodash/isLength.js     |    35 +
 .../globule/node_modules/lodash/isMap.js        |    27 +
 .../globule/node_modules/lodash/isMatch.js      |    36 +
 .../globule/node_modules/lodash/isMatchWith.js  |    41 +
 .../globule/node_modules/lodash/isNaN.js        |    38 +
 .../globule/node_modules/lodash/isNative.js     |    40 +
 .../globule/node_modules/lodash/isNil.js        |    25 +
 .../globule/node_modules/lodash/isNull.js       |    22 +
 .../globule/node_modules/lodash/isNumber.js     |    38 +
 .../globule/node_modules/lodash/isObject.js     |    31 +
 .../globule/node_modules/lodash/isObjectLike.js |    29 +
 .../node_modules/lodash/isPlainObject.js        |    62 +
 .../globule/node_modules/lodash/isRegExp.js     |    27 +
 .../node_modules/lodash/isSafeInteger.js        |    37 +
 .../globule/node_modules/lodash/isSet.js        |    27 +
 .../globule/node_modules/lodash/isString.js     |    30 +
 .../globule/node_modules/lodash/isSymbol.js     |    29 +
 .../globule/node_modules/lodash/isTypedArray.js |    27 +
 .../globule/node_modules/lodash/isUndefined.js  |    22 +
 .../globule/node_modules/lodash/isWeakMap.js    |    28 +
 .../globule/node_modules/lodash/isWeakSet.js    |    28 +
 .../globule/node_modules/lodash/iteratee.js     |    53 +
 .../globule/node_modules/lodash/join.js         |    26 +
 .../globule/node_modules/lodash/kebabCase.js    |    28 +
 .../globule/node_modules/lodash/keyBy.js        |    36 +
 .../globule/node_modules/lodash/keys.js         |    37 +
 .../globule/node_modules/lodash/keysIn.js       |    32 +
 .../globule/node_modules/lodash/lang.js         |    58 +
 .../globule/node_modules/lodash/last.js         |    20 +
 .../globule/node_modules/lodash/lastIndexOf.js  |    46 +
 .../globule/node_modules/lodash/lodash.js       | 17105 ++++++++++
 .../globule/node_modules/lodash/lodash.min.js   |   137 +
 .../globule/node_modules/lodash/lowerCase.js    |    27 +
 .../globule/node_modules/lodash/lowerFirst.js   |    22 +
 node_modules/globule/node_modules/lodash/lt.js  |    29 +
 node_modules/globule/node_modules/lodash/lte.js |    30 +
 node_modules/globule/node_modules/lodash/map.js |    53 +
 .../globule/node_modules/lodash/mapKeys.js      |    36 +
 .../globule/node_modules/lodash/mapValues.js    |    43 +
 .../globule/node_modules/lodash/matches.js      |    39 +
 .../node_modules/lodash/matchesProperty.js      |    37 +
 .../globule/node_modules/lodash/math.js         |    17 +
 node_modules/globule/node_modules/lodash/max.js |    29 +
 .../globule/node_modules/lodash/maxBy.js        |    34 +
 .../globule/node_modules/lodash/mean.js         |    22 +
 .../globule/node_modules/lodash/meanBy.js       |    31 +
 .../globule/node_modules/lodash/memoize.js      |    73 +
 .../globule/node_modules/lodash/merge.js        |    39 +
 .../globule/node_modules/lodash/mergeWith.js    |    39 +
 .../globule/node_modules/lodash/method.js       |    34 +
 .../globule/node_modules/lodash/methodOf.js     |    33 +
 node_modules/globule/node_modules/lodash/min.js |    29 +
 .../globule/node_modules/lodash/minBy.js        |    34 +
 .../globule/node_modules/lodash/mixin.js        |    74 +
 .../globule/node_modules/lodash/multiply.js     |    22 +
 .../globule/node_modules/lodash/negate.js       |    40 +
 .../globule/node_modules/lodash/next.js         |    35 +
 .../globule/node_modules/lodash/noop.js         |    17 +
 node_modules/globule/node_modules/lodash/now.js |    23 +
 node_modules/globule/node_modules/lodash/nth.js |    29 +
 .../globule/node_modules/lodash/nthArg.js       |    32 +
 .../globule/node_modules/lodash/number.js       |     5 +
 .../globule/node_modules/lodash/object.js       |    49 +
 .../globule/node_modules/lodash/omit.js         |    57 +
 .../globule/node_modules/lodash/omitBy.js       |    29 +
 .../globule/node_modules/lodash/once.js         |    25 +
 .../globule/node_modules/lodash/orderBy.js      |    47 +
 .../globule/node_modules/lodash/over.js         |    24 +
 .../globule/node_modules/lodash/overArgs.js     |    61 +
 .../globule/node_modules/lodash/overEvery.js    |    30 +
 .../globule/node_modules/lodash/overSome.js     |    30 +
 .../globule/node_modules/lodash/package.json    |    70 +
 node_modules/globule/node_modules/lodash/pad.js |    49 +
 .../globule/node_modules/lodash/padEnd.js       |    39 +
 .../globule/node_modules/lodash/padStart.js     |    39 +
 .../globule/node_modules/lodash/parseInt.js     |    43 +
 .../globule/node_modules/lodash/partial.js      |    50 +
 .../globule/node_modules/lodash/partialRight.js |    49 +
 .../globule/node_modules/lodash/partition.js    |    43 +
 .../globule/node_modules/lodash/pick.js         |    25 +
 .../globule/node_modules/lodash/pickBy.js       |    37 +
 .../globule/node_modules/lodash/plant.js        |    48 +
 .../globule/node_modules/lodash/property.js     |    32 +
 .../globule/node_modules/lodash/propertyOf.js   |    30 +
 .../globule/node_modules/lodash/pull.js         |    29 +
 .../globule/node_modules/lodash/pullAll.js      |    29 +
 .../globule/node_modules/lodash/pullAllBy.js    |    33 +
 .../globule/node_modules/lodash/pullAllWith.js  |    32 +
 .../globule/node_modules/lodash/pullAt.js       |    43 +
 .../globule/node_modules/lodash/random.js       |    82 +
 .../globule/node_modules/lodash/range.js        |    46 +
 .../globule/node_modules/lodash/rangeRight.js   |    41 +
 .../globule/node_modules/lodash/rearg.js        |    33 +
 .../globule/node_modules/lodash/reduce.js       |    51 +
 .../globule/node_modules/lodash/reduceRight.js  |    36 +
 .../globule/node_modules/lodash/reject.js       |    46 +
 .../globule/node_modules/lodash/remove.js       |    53 +
 .../globule/node_modules/lodash/repeat.js       |    37 +
 .../globule/node_modules/lodash/replace.js      |    29 +
 .../globule/node_modules/lodash/rest.js         |    40 +
 .../globule/node_modules/lodash/result.js       |    56 +
 .../globule/node_modules/lodash/reverse.js      |    34 +
 .../globule/node_modules/lodash/round.js        |    26 +
 .../globule/node_modules/lodash/sample.js       |    24 +
 .../globule/node_modules/lodash/sampleSize.js   |    37 +
 node_modules/globule/node_modules/lodash/seq.js |    16 +
 node_modules/globule/node_modules/lodash/set.js |    35 +
 .../globule/node_modules/lodash/setWith.js      |    32 +
 .../globule/node_modules/lodash/shuffle.js      |    25 +
 .../globule/node_modules/lodash/size.js         |    46 +
 .../globule/node_modules/lodash/slice.js        |    37 +
 .../globule/node_modules/lodash/snakeCase.js    |    28 +
 .../globule/node_modules/lodash/some.js         |    51 +
 .../globule/node_modules/lodash/sortBy.js       |    48 +
 .../globule/node_modules/lodash/sortedIndex.js  |    24 +
 .../node_modules/lodash/sortedIndexBy.js        |    33 +
 .../node_modules/lodash/sortedIndexOf.js        |    31 +
 .../node_modules/lodash/sortedLastIndex.js      |    25 +
 .../node_modules/lodash/sortedLastIndexBy.js    |    33 +
 .../node_modules/lodash/sortedLastIndexOf.js    |    31 +
 .../globule/node_modules/lodash/sortedUniq.js   |    24 +
 .../globule/node_modules/lodash/sortedUniqBy.js |    26 +
 .../globule/node_modules/lodash/split.js        |    52 +
 .../globule/node_modules/lodash/spread.js       |    63 +
 .../globule/node_modules/lodash/startCase.js    |    29 +
 .../globule/node_modules/lodash/startsWith.js   |    39 +
 .../globule/node_modules/lodash/string.js       |    33 +
 .../globule/node_modules/lodash/stubArray.js    |    23 +
 .../globule/node_modules/lodash/stubFalse.js    |    18 +
 .../globule/node_modules/lodash/stubObject.js   |    23 +
 .../globule/node_modules/lodash/stubString.js   |    18 +
 .../globule/node_modules/lodash/stubTrue.js     |    18 +
 .../globule/node_modules/lodash/subtract.js     |    22 +
 node_modules/globule/node_modules/lodash/sum.js |    24 +
 .../globule/node_modules/lodash/sumBy.js        |    33 +
 .../globule/node_modules/lodash/tail.js         |    22 +
 .../globule/node_modules/lodash/take.js         |    37 +
 .../globule/node_modules/lodash/takeRight.js    |    39 +
 .../node_modules/lodash/takeRightWhile.js       |    45 +
 .../globule/node_modules/lodash/takeWhile.js    |    45 +
 node_modules/globule/node_modules/lodash/tap.js |    29 +
 .../globule/node_modules/lodash/template.js     |   238 +
 .../node_modules/lodash/templateSettings.js     |    67 +
 .../globule/node_modules/lodash/throttle.js     |    69 +
 .../globule/node_modules/lodash/thru.js         |    28 +
 .../globule/node_modules/lodash/times.js        |    51 +
 .../globule/node_modules/lodash/toArray.js      |    58 +
 .../globule/node_modules/lodash/toFinite.js     |    42 +
 .../globule/node_modules/lodash/toInteger.js    |    36 +
 .../globule/node_modules/lodash/toIterator.js   |    23 +
 .../globule/node_modules/lodash/toJSON.js       |     1 +
 .../globule/node_modules/lodash/toLength.js     |    38 +
 .../globule/node_modules/lodash/toLower.js      |    28 +
 .../globule/node_modules/lodash/toNumber.js     |    66 +
 .../globule/node_modules/lodash/toPairs.js      |    30 +
 .../globule/node_modules/lodash/toPairsIn.js    |    30 +
 .../globule/node_modules/lodash/toPath.js       |    33 +
 .../node_modules/lodash/toPlainObject.js        |    32 +
 .../node_modules/lodash/toSafeInteger.js        |    37 +
 .../globule/node_modules/lodash/toString.js     |    28 +
 .../globule/node_modules/lodash/toUpper.js      |    28 +
 .../globule/node_modules/lodash/transform.js    |    65 +
 .../globule/node_modules/lodash/trim.js         |    49 +
 .../globule/node_modules/lodash/trimEnd.js      |    43 +
 .../globule/node_modules/lodash/trimStart.js    |    43 +
 .../globule/node_modules/lodash/truncate.js     |   111 +
 .../globule/node_modules/lodash/unary.js        |    22 +
 .../globule/node_modules/lodash/unescape.js     |    34 +
 .../globule/node_modules/lodash/union.js        |    26 +
 .../globule/node_modules/lodash/unionBy.js      |    39 +
 .../globule/node_modules/lodash/unionWith.js    |    34 +
 .../globule/node_modules/lodash/uniq.js         |    25 +
 .../globule/node_modules/lodash/uniqBy.js       |    31 +
 .../globule/node_modules/lodash/uniqWith.js     |    28 +
 .../globule/node_modules/lodash/uniqueId.js     |    28 +
 .../globule/node_modules/lodash/unset.js        |    34 +
 .../globule/node_modules/lodash/unzip.js        |    45 +
 .../globule/node_modules/lodash/unzipWith.js    |    39 +
 .../globule/node_modules/lodash/update.js       |    35 +
 .../globule/node_modules/lodash/updateWith.js   |    33 +
 .../globule/node_modules/lodash/upperCase.js    |    27 +
 .../globule/node_modules/lodash/upperFirst.js   |    22 +
 .../globule/node_modules/lodash/util.js         |    34 +
 .../globule/node_modules/lodash/value.js        |     1 +
 .../globule/node_modules/lodash/valueOf.js      |     1 +
 .../globule/node_modules/lodash/values.js       |    34 +
 .../globule/node_modules/lodash/valuesIn.js     |    32 +
 .../globule/node_modules/lodash/without.js      |    31 +
 .../globule/node_modules/lodash/words.js        |    35 +
 .../globule/node_modules/lodash/wrap.js         |    30 +
 .../globule/node_modules/lodash/wrapperAt.js    |    48 +
 .../globule/node_modules/lodash/wrapperChain.js |    34 +
 .../node_modules/lodash/wrapperLodash.js        |   147 +
 .../node_modules/lodash/wrapperReverse.js       |    44 +
 .../globule/node_modules/lodash/wrapperValue.js |    21 +
 node_modules/globule/node_modules/lodash/xor.js |    28 +
 .../globule/node_modules/lodash/xorBy.js        |    39 +
 .../globule/node_modules/lodash/xorWith.js      |    34 +
 node_modules/globule/node_modules/lodash/zip.js |    22 +
 .../globule/node_modules/lodash/zipObject.js    |    24 +
 .../node_modules/lodash/zipObjectDeep.js        |    23 +
 .../globule/node_modules/lodash/zipWith.js      |    32 +
 .../globule/node_modules/minimatch/minimatch.js |   923 +
 .../globule/node_modules/minimatch/package.json |    68 +
 node_modules/globule/package.json               |    86 +
 node_modules/graceful-fs/.npmignore             |     1 +
 node_modules/graceful-fs/graceful-fs.js         |   442 +
 node_modules/graceful-fs/package.json           |    74 +
 node_modules/graceful-fs/test/open.js           |    46 +
 node_modules/graceful-fs/test/ulimit.js         |   158 +
 node_modules/grunt-cli/CHANGELOG.md             |    24 +
 node_modules/grunt-cli/bin/grunt                |    44 +
 node_modules/grunt-cli/completion/bash          |    49 +
 node_modules/grunt-cli/completion/zsh           |    37 +
 node_modules/grunt-cli/lib/cli.js               |    33 +
 node_modules/grunt-cli/lib/completion.js        |    34 +
 node_modules/grunt-cli/lib/info.js              |    51 +
 node_modules/grunt-cli/node_modules/.bin/nopt   |     1 +
 .../node_modules/findup-sync/.npmignore         |     4 +
 .../node_modules/findup-sync/LICENSE-MIT        |    22 +
 .../node_modules/findup-sync/lib/findup-sync.js |    49 +
 .../node_modules/findup-sync/package.json       |    72 +
 .../grunt-cli/node_modules/glob/common.js       |   245 +
 .../grunt-cli/node_modules/glob/glob.js         |   752 +
 .../grunt-cli/node_modules/glob/package.json    |    79 +
 .../grunt-cli/node_modules/glob/sync.js         |   460 +
 .../node_modules/minimatch/minimatch.js         |   923 +
 .../node_modules/minimatch/package.json         |    67 +
 .../grunt-cli/node_modules/nopt/.npmignore      |     1 +
 .../grunt-cli/node_modules/nopt/.travis.yml     |     9 +
 .../grunt-cli/node_modules/nopt/bin/nopt.js     |    54 +
 .../node_modules/nopt/examples/my-program.js    |    30 +
 .../grunt-cli/node_modules/nopt/lib/nopt.js     |   415 +
 .../grunt-cli/node_modules/nopt/package.json    |    61 +
 .../grunt-cli/node_modules/nopt/test/basic.js   |   273 +
 node_modules/grunt-cli/package.json             |    79 +
 node_modules/grunt-contrib-compress/CHANGELOG   |   180 +
 .../node_modules/lodash/_DataView.js            |     7 +
 .../node_modules/lodash/_Hash.js                |    32 +
 .../node_modules/lodash/_LazyWrapper.js         |    28 +
 .../node_modules/lodash/_ListCache.js           |    32 +
 .../node_modules/lodash/_LodashWrapper.js       |    22 +
 .../node_modules/lodash/_Map.js                 |     7 +
 .../node_modules/lodash/_MapCache.js            |    32 +
 .../node_modules/lodash/_Promise.js             |     7 +
 .../node_modules/lodash/_Set.js                 |     7 +
 .../node_modules/lodash/_SetCache.js            |    27 +
 .../node_modules/lodash/_Stack.js               |    27 +
 .../node_modules/lodash/_Symbol.js              |     6 +
 .../node_modules/lodash/_Uint8Array.js          |     6 +
 .../node_modules/lodash/_WeakMap.js             |     7 +
 .../node_modules/lodash/_apply.js               |    21 +
 .../node_modules/lodash/_arrayAggregator.js     |    22 +
 .../node_modules/lodash/_arrayEach.js           |    22 +
 .../node_modules/lodash/_arrayEachRight.js      |    21 +
 .../node_modules/lodash/_arrayEvery.js          |    23 +
 .../node_modules/lodash/_arrayFilter.js         |    25 +
 .../node_modules/lodash/_arrayIncludes.js       |    17 +
 .../node_modules/lodash/_arrayIncludesWith.js   |    22 +
 .../node_modules/lodash/_arrayLikeKeys.js       |    49 +
 .../node_modules/lodash/_arrayMap.js            |    21 +
 .../node_modules/lodash/_arrayPush.js           |    20 +
 .../node_modules/lodash/_arrayReduce.js         |    26 +
 .../node_modules/lodash/_arrayReduceRight.js    |    24 +
 .../node_modules/lodash/_arraySample.js         |    15 +
 .../node_modules/lodash/_arraySampleSize.js     |    17 +
 .../node_modules/lodash/_arrayShuffle.js        |    15 +
 .../node_modules/lodash/_arraySome.js           |    23 +
 .../node_modules/lodash/_asciiSize.js           |    12 +
 .../node_modules/lodash/_asciiToArray.js        |    12 +
 .../node_modules/lodash/_asciiWords.js          |    15 +
 .../node_modules/lodash/_assignMergeValue.js    |    20 +
 .../node_modules/lodash/_assignValue.js         |    28 +
 .../node_modules/lodash/_assocIndexOf.js        |    21 +
 .../node_modules/lodash/_baseAggregator.js      |    21 +
 .../node_modules/lodash/_baseAssign.js          |    17 +
 .../node_modules/lodash/_baseAssignIn.js        |    17 +
 .../node_modules/lodash/_baseAssignValue.js     |    25 +
 .../node_modules/lodash/_baseAt.js              |    23 +
 .../node_modules/lodash/_baseClamp.js           |    22 +
 .../node_modules/lodash/_baseClone.js           |   171 +
 .../node_modules/lodash/_baseConforms.js        |    18 +
 .../node_modules/lodash/_baseConformsTo.js      |    27 +
 .../node_modules/lodash/_baseCreate.js          |    30 +
 .../node_modules/lodash/_baseDelay.js           |    21 +
 .../node_modules/lodash/_baseDifference.js      |    67 +
 .../node_modules/lodash/_baseEach.js            |    14 +
 .../node_modules/lodash/_baseEachRight.js       |    14 +
 .../node_modules/lodash/_baseEvery.js           |    21 +
 .../node_modules/lodash/_baseExtremum.js        |    32 +
 .../node_modules/lodash/_baseFill.js            |    32 +
 .../node_modules/lodash/_baseFilter.js          |    21 +
 .../node_modules/lodash/_baseFindIndex.js       |    24 +
 .../node_modules/lodash/_baseFindKey.js         |    23 +
 .../node_modules/lodash/_baseFlatten.js         |    38 +
 .../node_modules/lodash/_baseFor.js             |    16 +
 .../node_modules/lodash/_baseForOwn.js          |    16 +
 .../node_modules/lodash/_baseForOwnRight.js     |    16 +
 .../node_modules/lodash/_baseForRight.js        |    15 +
 .../node_modules/lodash/_baseFunctions.js       |    19 +
 .../node_modules/lodash/_baseGet.js             |    24 +
 .../node_modules/lodash/_baseGetAllKeys.js      |    20 +
 .../node_modules/lodash/_baseGetTag.js          |    28 +
 .../node_modules/lodash/_baseGt.js              |    14 +
 .../node_modules/lodash/_baseHas.js             |    19 +
 .../node_modules/lodash/_baseHasIn.js           |    13 +
 .../node_modules/lodash/_baseInRange.js         |    18 +
 .../node_modules/lodash/_baseIndexOf.js         |    20 +
 .../node_modules/lodash/_baseIndexOfWith.js     |    23 +
 .../node_modules/lodash/_baseIntersection.js    |    74 +
 .../node_modules/lodash/_baseInverter.js        |    21 +
 .../node_modules/lodash/_baseInvoke.js          |    24 +
 .../node_modules/lodash/_baseIsArguments.js     |    18 +
 .../node_modules/lodash/_baseIsArrayBuffer.js   |    17 +
 .../node_modules/lodash/_baseIsDate.js          |    18 +
 .../node_modules/lodash/_baseIsEqual.js         |    28 +
 .../node_modules/lodash/_baseIsEqualDeep.js     |    83 +
 .../node_modules/lodash/_baseIsMap.js           |    18 +
 .../node_modules/lodash/_baseIsMatch.js         |    62 +
 .../node_modules/lodash/_baseIsNaN.js           |    12 +
 .../node_modules/lodash/_baseIsNative.js        |    47 +
 .../node_modules/lodash/_baseIsRegExp.js        |    18 +
 .../node_modules/lodash/_baseIsSet.js           |    18 +
 .../node_modules/lodash/_baseIsTypedArray.js    |    60 +
 .../node_modules/lodash/_baseIteratee.js        |    31 +
 .../node_modules/lodash/_baseKeys.js            |    30 +
 .../node_modules/lodash/_baseKeysIn.js          |    33 +
 .../node_modules/lodash/_baseLodash.js          |    10 +
 .../node_modules/lodash/_baseLt.js              |    14 +
 .../node_modules/lodash/_baseMap.js             |    22 +
 .../node_modules/lodash/_baseMatches.js         |    22 +
 .../node_modules/lodash/_baseMatchesProperty.js |    33 +
 .../node_modules/lodash/_baseMean.js            |    20 +
 .../node_modules/lodash/_baseMerge.js           |    42 +
 .../node_modules/lodash/_baseMergeDeep.js       |    94 +
 .../node_modules/lodash/_baseNth.js             |    20 +
 .../node_modules/lodash/_baseOrderBy.js         |    34 +
 .../node_modules/lodash/_basePick.js            |    19 +
 .../node_modules/lodash/_basePickBy.js          |    30 +
 .../node_modules/lodash/_baseProperty.js        |    14 +
 .../node_modules/lodash/_basePropertyDeep.js    |    16 +
 .../node_modules/lodash/_basePropertyOf.js      |    14 +
 .../node_modules/lodash/_basePullAll.js         |    51 +
 .../node_modules/lodash/_basePullAt.js          |    37 +
 .../node_modules/lodash/_baseRandom.js          |    18 +
 .../node_modules/lodash/_baseRange.js           |    28 +
 .../node_modules/lodash/_baseReduce.js          |    23 +
 .../node_modules/lodash/_baseRepeat.js          |    35 +
 .../node_modules/lodash/_baseRest.js            |    17 +
 .../node_modules/lodash/_baseSample.js          |    15 +
 .../node_modules/lodash/_baseSampleSize.js      |    18 +
 .../node_modules/lodash/_baseSet.js             |    47 +
 .../node_modules/lodash/_baseSetData.js         |    17 +
 .../node_modules/lodash/_baseSetToString.js     |    22 +
 .../node_modules/lodash/_baseShuffle.js         |    15 +
 .../node_modules/lodash/_baseSlice.js           |    31 +
 .../node_modules/lodash/_baseSome.js            |    22 +
 .../node_modules/lodash/_baseSortBy.js          |    21 +
 .../node_modules/lodash/_baseSortedIndex.js     |    42 +
 .../node_modules/lodash/_baseSortedIndexBy.js   |    64 +
 .../node_modules/lodash/_baseSortedUniq.js      |    30 +
 .../node_modules/lodash/_baseSum.js             |    24 +
 .../node_modules/lodash/_baseTimes.js           |    20 +
 .../node_modules/lodash/_baseToNumber.js        |    24 +
 .../node_modules/lodash/_baseToPairs.js         |    18 +
 .../node_modules/lodash/_baseToString.js        |    37 +
 .../node_modules/lodash/_baseUnary.js           |    14 +
 .../node_modules/lodash/_baseUniq.js            |    72 +
 .../node_modules/lodash/_baseUnset.js           |    20 +
 .../node_modules/lodash/_baseUpdate.js          |    18 +
 .../node_modules/lodash/_baseValues.js          |    19 +
 .../node_modules/lodash/_baseWhile.js           |    26 +
 .../node_modules/lodash/_baseWrapperValue.js    |    25 +
 .../node_modules/lodash/_baseXor.js             |    36 +
 .../node_modules/lodash/_baseZipObject.js       |    23 +
 .../node_modules/lodash/_cacheHas.js            |    13 +
 .../node_modules/lodash/_castArrayLikeObject.js |    14 +
 .../node_modules/lodash/_castFunction.js        |    14 +
 .../node_modules/lodash/_castPath.js            |    21 +
 .../node_modules/lodash/_castRest.js            |    14 +
 .../node_modules/lodash/_castSlice.js           |    18 +
 .../node_modules/lodash/_charsEndIndex.js       |    19 +
 .../node_modules/lodash/_charsStartIndex.js     |    20 +
 .../node_modules/lodash/_cloneArrayBuffer.js    |    16 +
 .../node_modules/lodash/_cloneBuffer.js         |    35 +
 .../node_modules/lodash/_cloneDataView.js       |    16 +
 .../node_modules/lodash/_cloneRegExp.js         |    17 +
 .../node_modules/lodash/_cloneSymbol.js         |    18 +
 .../node_modules/lodash/_cloneTypedArray.js     |    16 +
 .../node_modules/lodash/_compareAscending.js    |    41 +
 .../node_modules/lodash/_compareMultiple.js     |    44 +
 .../node_modules/lodash/_composeArgs.js         |    39 +
 .../node_modules/lodash/_composeArgsRight.js    |    41 +
 .../node_modules/lodash/_copyArray.js           |    20 +
 .../node_modules/lodash/_copyObject.js          |    40 +
 .../node_modules/lodash/_copySymbols.js         |    16 +
 .../node_modules/lodash/_copySymbolsIn.js       |    16 +
 .../node_modules/lodash/_coreJsData.js          |     6 +
 .../node_modules/lodash/_countHolders.js        |    21 +
 .../node_modules/lodash/_createAggregator.js    |    23 +
 .../node_modules/lodash/_createAssigner.js      |    37 +
 .../node_modules/lodash/_createBaseEach.js      |    32 +
 .../node_modules/lodash/_createBaseFor.js       |    25 +
 .../node_modules/lodash/_createBind.js          |    28 +
 .../node_modules/lodash/_createCaseFirst.js     |    33 +
 .../node_modules/lodash/_createCompounder.js    |    24 +
 .../node_modules/lodash/_createCtor.js          |    37 +
 .../node_modules/lodash/_createCurry.js         |    46 +
 .../node_modules/lodash/_createFind.js          |    25 +
 .../node_modules/lodash/_createFlow.js          |    78 +
 .../node_modules/lodash/_createHybrid.js        |    92 +
 .../node_modules/lodash/_createInverter.js      |    17 +
 .../node_modules/lodash/_createMathOperation.js |    38 +
 .../node_modules/lodash/_createOver.js          |    27 +
 .../node_modules/lodash/_createPadding.js       |    33 +
 .../node_modules/lodash/_createPartial.js       |    43 +
 .../node_modules/lodash/_createRange.js         |    30 +
 .../node_modules/lodash/_createRecurry.js       |    56 +
 .../lodash/_createRelationalOperation.js        |    20 +
 .../node_modules/lodash/_createRound.js         |    33 +
 .../node_modules/lodash/_createSet.js           |    19 +
 .../node_modules/lodash/_createToPairs.js       |    30 +
 .../node_modules/lodash/_createWrap.js          |   106 +
 .../lodash/_customDefaultsAssignIn.js           |    29 +
 .../node_modules/lodash/_customDefaultsMerge.js |    28 +
 .../node_modules/lodash/_customOmitClone.js     |    16 +
 .../node_modules/lodash/_deburrLetter.js        |    71 +
 .../node_modules/lodash/_defineProperty.js      |    11 +
 .../node_modules/lodash/_equalArrays.js         |    83 +
 .../node_modules/lodash/_equalByTag.js          |   112 +
 .../node_modules/lodash/_equalObjects.js        |    89 +
 .../node_modules/lodash/_escapeHtmlChar.js      |    21 +
 .../node_modules/lodash/_escapeStringChar.js    |    22 +
 .../node_modules/lodash/_flatRest.js            |    16 +
 .../node_modules/lodash/_freeGlobal.js          |     4 +
 .../node_modules/lodash/_getAllKeys.js          |    16 +
 .../node_modules/lodash/_getAllKeysIn.js        |    17 +
 .../node_modules/lodash/_getData.js             |    15 +
 .../node_modules/lodash/_getFuncName.js         |    31 +
 .../node_modules/lodash/_getHolder.js           |    13 +
 .../node_modules/lodash/_getMapData.js          |    18 +
 .../node_modules/lodash/_getMatchData.js        |    24 +
 .../node_modules/lodash/_getNative.js           |    17 +
 .../node_modules/lodash/_getPrototype.js        |     6 +
 .../node_modules/lodash/_getRawTag.js           |    46 +
 .../node_modules/lodash/_getSymbols.js          |    30 +
 .../node_modules/lodash/_getSymbolsIn.js        |    25 +
 .../node_modules/lodash/_getTag.js              |    58 +
 .../node_modules/lodash/_getValue.js            |    13 +
 .../node_modules/lodash/_getView.js             |    33 +
 .../node_modules/lodash/_getWrapDetails.js      |    17 +
 .../node_modules/lodash/_hasPath.js             |    39 +
 .../node_modules/lodash/_hasUnicode.js          |    26 +
 .../node_modules/lodash/_hasUnicodeWord.js      |    15 +
 .../node_modules/lodash/_hashClear.js           |    15 +
 .../node_modules/lodash/_hashDelete.js          |    17 +
 .../node_modules/lodash/_hashGet.js             |    30 +
 .../node_modules/lodash/_hashHas.js             |    23 +
 .../node_modules/lodash/_hashSet.js             |    23 +
 .../node_modules/lodash/_initCloneArray.js      |    26 +
 .../node_modules/lodash/_initCloneByTag.js      |    77 +
 .../node_modules/lodash/_initCloneObject.js     |    18 +
 .../node_modules/lodash/_insertWrapDetails.js   |    23 +
 .../node_modules/lodash/_isFlattenable.js       |    20 +
 .../node_modules/lodash/_isIndex.js             |    25 +
 .../node_modules/lodash/_isIterateeCall.js      |    30 +
 .../node_modules/lodash/_isKey.js               |    29 +
 .../node_modules/lodash/_isKeyable.js           |    15 +
 .../node_modules/lodash/_isLaziable.js          |    28 +
 .../node_modules/lodash/_isMaskable.js          |    14 +
 .../node_modules/lodash/_isMasked.js            |    20 +
 .../node_modules/lodash/_isPrototype.js         |    18 +
 .../node_modules/lodash/_isStrictComparable.js  |    15 +
 .../node_modules/lodash/_iteratorToArray.js     |    18 +
 .../node_modules/lodash/_lazyClone.js           |    23 +
 .../node_modules/lodash/_lazyReverse.js         |    23 +
 .../node_modules/lodash/_lazyValue.js           |    69 +
 .../node_modules/lodash/_listCacheClear.js      |    13 +
 .../node_modules/lodash/_listCacheDelete.js     |    35 +
 .../node_modules/lodash/_listCacheGet.js        |    19 +
 .../node_modules/lodash/_listCacheHas.js        |    16 +
 .../node_modules/lodash/_listCacheSet.js        |    26 +
 .../node_modules/lodash/_mapCacheClear.js       |    21 +
 .../node_modules/lodash/_mapCacheDelete.js      |    18 +
 .../node_modules/lodash/_mapCacheGet.js         |    16 +
 .../node_modules/lodash/_mapCacheHas.js         |    16 +
 .../node_modules/lodash/_mapCacheSet.js         |    22 +
 .../node_modules/lodash/_mapToArray.js          |    18 +
 .../lodash/_matchesStrictComparable.js          |    20 +
 .../node_modules/lodash/_memoizeCapped.js       |    26 +
 .../node_modules/lodash/_mergeData.js           |    90 +
 .../node_modules/lodash/_metaMap.js             |     6 +
 .../node_modules/lodash/_nativeCreate.js        |     6 +
 .../node_modules/lodash/_nativeKeys.js          |     6 +
 .../node_modules/lodash/_nativeKeysIn.js        |    20 +
 .../node_modules/lodash/_nodeUtil.js            |    30 +
 .../node_modules/lodash/_objectToString.js      |    22 +
 .../node_modules/lodash/_overArg.js             |    15 +
 .../node_modules/lodash/_overRest.js            |    36 +
 .../node_modules/lodash/_parent.js              |    16 +
 .../node_modules/lodash/_reEscape.js            |     4 +
 .../node_modules/lodash/_reEvaluate.js          |     4 +
 .../node_modules/lodash/_reInterpolate.js       |     4 +
 .../node_modules/lodash/_realNames.js           |     4 +
 .../node_modules/lodash/_reorder.js             |    29 +
 .../node_modules/lodash/_replaceHolders.js      |    29 +
 .../node_modules/lodash/_root.js                |     9 +
 .../node_modules/lodash/_safeGet.js             |    15 +
 .../node_modules/lodash/_setCacheAdd.js         |    19 +
 .../node_modules/lodash/_setCacheHas.js         |    14 +
 .../node_modules/lodash/_setData.js             |    20 +
 .../node_modules/lodash/_setToArray.js          |    18 +
 .../node_modules/lodash/_setToPairs.js          |    18 +
 .../node_modules/lodash/_setToString.js         |    14 +
 .../node_modules/lodash/_setWrapToString.js     |    21 +
 .../node_modules/lodash/_shortOut.js            |    37 +
 .../node_modules/lodash/_shuffleSelf.js         |    28 +
 .../node_modules/lodash/_stackClear.js          |    15 +
 .../node_modules/lodash/_stackDelete.js         |    18 +
 .../node_modules/lodash/_stackGet.js            |    14 +
 .../node_modules/lodash/_stackHas.js            |    14 +
 .../node_modules/lodash/_stackSet.js            |    34 +
 .../node_modules/lodash/_strictIndexOf.js       |    23 +
 .../node_modules/lodash/_strictLastIndexOf.js   |    21 +
 .../node_modules/lodash/_stringSize.js          |    18 +
 .../node_modules/lodash/_stringToArray.js       |    18 +
 .../node_modules/lodash/_stringToPath.js        |    27 +
 .../node_modules/lodash/_toKey.js               |    21 +
 .../node_modules/lodash/_toSource.js            |    26 +
 .../node_modules/lodash/_unescapeHtmlChar.js    |    21 +
 .../node_modules/lodash/_unicodeSize.js         |    44 +
 .../node_modules/lodash/_unicodeToArray.js      |    40 +
 .../node_modules/lodash/_unicodeWords.js        |    69 +
 .../node_modules/lodash/_updateWrapDetails.js   |    46 +
 .../node_modules/lodash/_wrapperClone.js        |    23 +
 .../node_modules/lodash/add.js                  |    22 +
 .../node_modules/lodash/after.js                |    42 +
 .../node_modules/lodash/array.js                |    67 +
 .../node_modules/lodash/ary.js                  |    29 +
 .../node_modules/lodash/assign.js               |    58 +
 .../node_modules/lodash/assignIn.js             |    40 +
 .../node_modules/lodash/assignInWith.js         |    38 +
 .../node_modules/lodash/assignWith.js           |    37 +
 .../node_modules/lodash/at.js                   |    23 +
 .../node_modules/lodash/attempt.js              |    35 +
 .../node_modules/lodash/before.js               |    40 +
 .../node_modules/lodash/bind.js                 |    57 +
 .../node_modules/lodash/bindAll.js              |    41 +
 .../node_modules/lodash/bindKey.js              |    68 +
 .../node_modules/lodash/camelCase.js            |    29 +
 .../node_modules/lodash/capitalize.js           |    23 +
 .../node_modules/lodash/castArray.js            |    44 +
 .../node_modules/lodash/ceil.js                 |    26 +
 .../node_modules/lodash/chain.js                |    38 +
 .../node_modules/lodash/chunk.js                |    50 +
 .../node_modules/lodash/clamp.js                |    39 +
 .../node_modules/lodash/clone.js                |    36 +
 .../node_modules/lodash/cloneDeep.js            |    29 +
 .../node_modules/lodash/cloneDeepWith.js        |    40 +
 .../node_modules/lodash/cloneWith.js            |    42 +
 .../node_modules/lodash/collection.js           |    30 +
 .../node_modules/lodash/commit.js               |    33 +
 .../node_modules/lodash/compact.js              |    31 +
 .../node_modules/lodash/concat.js               |    43 +
 .../node_modules/lodash/cond.js                 |    60 +
 .../node_modules/lodash/conforms.js             |    35 +
 .../node_modules/lodash/conformsTo.js           |    32 +
 .../node_modules/lodash/constant.js             |    26 +
 .../node_modules/lodash/core.js                 |  3854 +++
 .../node_modules/lodash/core.min.js             |    29 +
 .../node_modules/lodash/countBy.js              |    40 +
 .../node_modules/lodash/create.js               |    43 +
 .../node_modules/lodash/curry.js                |    57 +
 .../node_modules/lodash/curryRight.js           |    54 +
 .../node_modules/lodash/date.js                 |     3 +
 .../node_modules/lodash/debounce.js             |   190 +
 .../node_modules/lodash/deburr.js               |    45 +
 .../node_modules/lodash/defaultTo.js            |    25 +
 .../node_modules/lodash/defaults.js             |    64 +
 .../node_modules/lodash/defaultsDeep.js         |    30 +
 .../node_modules/lodash/defer.js                |    26 +
 .../node_modules/lodash/delay.js                |    28 +
 .../node_modules/lodash/difference.js           |    33 +
 .../node_modules/lodash/differenceBy.js         |    44 +
 .../node_modules/lodash/differenceWith.js       |    40 +
 .../node_modules/lodash/divide.js               |    22 +
 .../node_modules/lodash/drop.js                 |    38 +
 .../node_modules/lodash/dropRight.js            |    39 +
 .../node_modules/lodash/dropRightWhile.js       |    45 +
 .../node_modules/lodash/dropWhile.js            |    45 +
 .../node_modules/lodash/each.js                 |     1 +
 .../node_modules/lodash/eachRight.js            |     1 +
 .../node_modules/lodash/endsWith.js             |    43 +
 .../node_modules/lodash/entries.js              |     1 +
 .../node_modules/lodash/entriesIn.js            |     1 +
 .../node_modules/lodash/eq.js                   |    37 +
 .../node_modules/lodash/escape.js               |    43 +
 .../node_modules/lodash/escapeRegExp.js         |    32 +
 .../node_modules/lodash/every.js                |    56 +
 .../node_modules/lodash/extend.js               |     1 +
 .../node_modules/lodash/extendWith.js           |     1 +
 .../node_modules/lodash/fill.js                 |    45 +
 .../node_modules/lodash/filter.js               |    48 +
 .../node_modules/lodash/find.js                 |    42 +
 .../node_modules/lodash/findIndex.js            |    55 +
 .../node_modules/lodash/findKey.js              |    44 +
 .../node_modules/lodash/findLast.js             |    25 +
 .../node_modules/lodash/findLastIndex.js        |    59 +
 .../node_modules/lodash/findLastKey.js          |    44 +
 .../node_modules/lodash/first.js                |     1 +
 .../node_modules/lodash/flatMap.js              |    29 +
 .../node_modules/lodash/flatMapDeep.js          |    31 +
 .../node_modules/lodash/flatMapDepth.js         |    31 +
 .../node_modules/lodash/flatten.js              |    22 +
 .../node_modules/lodash/flattenDeep.js          |    25 +
 .../node_modules/lodash/flattenDepth.js         |    33 +
 .../node_modules/lodash/flip.js                 |    28 +
 .../node_modules/lodash/floor.js                |    26 +
 .../node_modules/lodash/flow.js                 |    27 +
 .../node_modules/lodash/flowRight.js            |    26 +
 .../node_modules/lodash/forEach.js              |    41 +
 .../node_modules/lodash/forEachRight.js         |    31 +
 .../node_modules/lodash/forIn.js                |    39 +
 .../node_modules/lodash/forInRight.js           |    37 +
 .../node_modules/lodash/forOwn.js               |    36 +
 .../node_modules/lodash/forOwnRight.js          |    34 +
 .../node_modules/lodash/fp.js                   |     2 +
 .../node_modules/lodash/fp/F.js                 |     1 +
 .../node_modules/lodash/fp/T.js                 |     1 +
 .../node_modules/lodash/fp/__.js                |     1 +
 .../node_modules/lodash/fp/_baseConvert.js      |   573 +
 .../node_modules/lodash/fp/_convertBrowser.js   |    18 +
 .../node_modules/lodash/fp/_falseOptions.js     |     7 +
 .../node_modules/lodash/fp/_mapping.js          |   368 +
 .../node_modules/lodash/fp/_util.js             |    16 +
 .../node_modules/lodash/fp/add.js               |     5 +
 .../node_modules/lodash/fp/after.js             |     5 +
 .../node_modules/lodash/fp/all.js               |     1 +
 .../node_modules/lodash/fp/allPass.js           |     1 +
 .../node_modules/lodash/fp/always.js            |     1 +
 .../node_modules/lodash/fp/any.js               |     1 +
 .../node_modules/lodash/fp/anyPass.js           |     1 +
 .../node_modules/lodash/fp/apply.js             |     1 +
 .../node_modules/lodash/fp/array.js             |     2 +
 .../node_modules/lodash/fp/ary.js               |     5 +
 .../node_modules/lodash/fp/assign.js            |     5 +
 .../node_modules/lodash/fp/assignAll.js         |     5 +
 .../node_modules/lodash/fp/assignAllWith.js     |     5 +
 .../node_modules/lodash/fp/assignIn.js          |     5 +
 .../node_modules/lodash/fp/assignInAll.js       |     5 +
 .../node_modules/lodash/fp/assignInAllWith.js   |     5 +
 .../node_modules/lodash/fp/assignInWith.js      |     5 +
 .../node_modules/lodash/fp/assignWith.js        |     5 +
 .../node_modules/lodash/fp/assoc.js             |     1 +
 .../node_modules/lodash/fp/assocPath.js         |     1 +
 .../node_modules/lodash/fp/at.js                |     5 +
 .../node_modules/lodash/fp/attempt.js           |     5 +
 .../node_modules/lodash/fp/before.js            |     5 +
 .../node_modules/lodash/fp/bind.js              |     5 +
 .../node_modules/lodash/fp/bindAll.js           |     5 +
 .../node_modules/lodash/fp/bindKey.js           |     5 +
 .../node_modules/lodash/fp/camelCase.js         |     5 +
 .../node_modules/lodash/fp/capitalize.js        |     5 +
 .../node_modules/lodash/fp/castArray.js         |     5 +
 .../node_modules/lodash/fp/ceil.js              |     5 +
 .../node_modules/lodash/fp/chain.js             |     5 +
 .../node_modules/lodash/fp/chunk.js             |     5 +
 .../node_modules/lodash/fp/clamp.js             |     5 +
 .../node_modules/lodash/fp/clone.js             |     5 +
 .../node_modules/lodash/fp/cloneDeep.js         |     5 +
 .../node_modules/lodash/fp/cloneDeepWith.js     |     5 +
 .../node_modules/lodash/fp/cloneWith.js         |     5 +
 .../node_modules/lodash/fp/collection.js        |     2 +
 .../node_modules/lodash/fp/commit.js            |     5 +
 .../node_modules/lodash/fp/compact.js           |     5 +
 .../node_modules/lodash/fp/complement.js        |     1 +
 .../node_modules/lodash/fp/compose.js           |     1 +
 .../node_modules/lodash/fp/concat.js            |     5 +
 .../node_modules/lodash/fp/cond.js              |     5 +
 .../node_modules/lodash/fp/conforms.js          |     1 +
 .../node_modules/lodash/fp/conformsTo.js        |     5 +
 .../node_modules/lodash/fp/constant.js          |     5 +
 .../node_modules/lodash/fp/contains.js          |     1 +
 .../node_modules/lodash/fp/convert.js           |    18 +
 .../node_modules/lodash/fp/countBy.js           |     5 +
 .../node_modules/lodash/fp/create.js            |     5 +
 .../node_modules/lodash/fp/curry.js             |     5 +
 .../node_modules/lodash/fp/curryN.js            |     5 +
 .../node_modules/lodash/fp/curryRight.js        |     5 +
 .../node_modules/lodash/fp/curryRightN.js       |     5 +
 .../node_modules/lodash/fp/date.js              |     2 +
 .../node_modules/lodash/fp/debounce.js          |     5 +
 .../node_modules/lodash/fp/deburr.js            |     5 +
 .../node_modules/lodash/fp/defaultTo.js         |     5 +
 .../node_modules/lodash/fp/defaults.js          |     5 +
 .../node_modules/lodash/fp/defaultsAll.js       |     5 +
 .../node_modules/lodash/fp/defaultsDeep.js      |     5 +
 .../node_modules/lodash/fp/defaultsDeepAll.js   |     5 +
 .../node_modules/lodash/fp/defer.js             |     5 +
 .../node_modules/lodash/fp/delay.js             |     5 +
 .../node_modules/lodash/fp/difference.js        |     5 +
 .../node_modules/lodash/fp/differenceBy.js      |     5 +
 .../node_modules/lodash/fp/differenceWith.js    |     5 +
 .../node_modules/lodash/fp/dissoc.js            |     1 +
 .../node_modules/lodash/fp/dissocPath.js        |     1 +
 .../node_modules/lodash/fp/divide.js            |     5 +
 .../node_modules/lodash/fp/drop.js              |     5 +
 .../node_modules/lodash/fp/dropLast.js          |     1 +
 .../node_modules/lodash/fp/dropLastWhile.js     |     1 +
 .../node_modules/lodash/fp/dropRight.js         |     5 +
 .../node_modules/lodash/fp/dropRightWhile.js    |     5 +
 .../node_modules/lodash/fp/dropWhile.js         |     5 +
 .../node_modules/lodash/fp/each.js              |     1 +
 .../node_modules/lodash/fp/eachRight.js         |     1 +
 .../node_modules/lodash/fp/endsWith.js          |     5 +
 .../node_modules/lodash/fp/entries.js           |     1 +
 .../node_modules/lodash/fp/entriesIn.js         |     1 +
 .../node_modules/lodash/fp/eq.js                |     5 +
 .../node_modules/lodash/fp/equals.js            |     1 +
 .../node_modules/lodash/fp/escape.js            |     5 +
 .../node_modules/lodash/fp/escapeRegExp.js      |     5 +
 .../node_modules/lodash/fp/every.js             |     5 +
 .../node_modules/lodash/fp/extend.js            |     1 +
 .../node_modules/lodash/fp/extendAll.js         |     1 +
 .../node_modules/lodash/fp/extendAllWith.js     |     1 +
 .../node_modules/lodash/fp/extendWith.js        |     1 +
 .../node_modules/lodash/fp/fill.js              |     5 +
 .../node_modules/lodash/fp/filter.js            |     5 +
 .../node_modules/lodash/fp/find.js              |     5 +
 .../node_modules/lodash/fp/findFrom.js          |     5 +
 .../node_modules/lodash/fp/findIndex.js         |     5 +
 .../node_modules/lodash/fp/findIndexFrom.js     |     5 +
 .../node_modules/lodash/fp/findKey.js           |     5 +
 .../node_modules/lodash/fp/findLast.js          |     5 +
 .../node_modules/lodash/fp/findLastFrom.js      |     5 +
 .../node_modules/lodash/fp/findLastIndex.js     |     5 +
 .../node_modules/lodash/fp/findLastIndexFrom.js |     5 +
 .../node_modules/lodash/fp/findLastKey.js       |     5 +
 .../node_modules/lodash/fp/first.js             |     1 +
 .../node_modules/lodash/fp/flatMap.js           |     5 +
 .../node_modules/lodash/fp/flatMapDeep.js       |     5 +
 .../node_modules/lodash/fp/flatMapDepth.js      |     5 +
 .../node_modules/lodash/fp/flatten.js           |     5 +
 .../node_modules/lodash/fp/flattenDeep.js       |     5 +
 .../node_modules/lodash/fp/flattenDepth.js      |     5 +
 .../node_modules/lodash/fp/flip.js              |     5 +
 .../node_modules/lodash/fp/floor.js             |     5 +
 .../node_modules/lodash/fp/flow.js              |     5 +
 .../node_modules/lodash/fp/flowRight.js         |     5 +
 .../node_modules/lodash/fp/forEach.js           |     5 +
 .../node_modules/lodash/fp/forEachRight.js      |     5 +
 .../node_modules/lodash/fp/forIn.js             |     5 +
 .../node_modules/lodash/fp/forInRight.js        |     5 +
 .../node_modules/lodash/fp/forOwn.js            |     5 +
 .../node_modules/lodash/fp/forOwnRight.js       |     5 +
 .../node_modules/lodash/fp/fromPairs.js         |     5 +
 .../node_modules/lodash/fp/function.js          |     2 +
 .../node_modules/lodash/fp/functions.js         |     5 +
 .../node_modules/lodash/fp/functionsIn.js       |     5 +
 .../node_modules/lodash/fp/get.js               |     5 +
 .../node_modules/lodash/fp/getOr.js             |     5 +
 .../node_modules/lodash/fp/groupBy.js           |     5 +
 .../node_modules/lodash/fp/gt.js                |     5 +
 .../node_modules/lodash/fp/gte.js               |     5 +
 .../node_modules/lodash/fp/has.js               |     5 +
 .../node_modules/lodash/fp/hasIn.js             |     5 +
 .../node_modules/lodash/fp/head.js              |     5 +
 .../node_modules/lodash/fp/identical.js         |     1 +
 .../node_modules/lodash/fp/identity.js          |     5 +
 .../node_modules/lodash/fp/inRange.js           |     5 +
 .../node_modules/lodash/fp/includes.js          |     5 +
 .../node_modules/lodash/fp/includesFrom.js      |     5 +
 .../node_modules/lodash/fp/indexBy.js           |     1 +
 .../node_modules/lodash/fp/indexOf.js           |     5 +
 .../node_modules/lodash/fp/indexOfFrom.js       |     5 +
 .../node_modules/lodash/fp/init.js              |     1 +
 .../node_modules/lodash/fp/initial.js           |     5 +
 .../node_modules/lodash/fp/intersection.js      |     5 +
 .../node_modules/lodash/fp/intersectionBy.js    |     5 +
 .../node_modules/lodash/fp/intersectionWith.js  |     5 +
 .../node_modules/lodash/fp/invert.js            |     5 +
 .../node_modules/lodash/fp/invertBy.js          |     5 +
 .../node_modules/lodash/fp/invertObj.js         |     1 +
 .../node_modules/lodash/fp/invoke.js            |     5 +
 .../node_modules/lodash/fp/invokeArgs.js        |     5 +
 .../node_modules/lodash/fp/invokeArgsMap.js     |     5 +
 .../node_modules/lodash/fp/invokeMap.js         |     5 +
 .../node_modules/lodash/fp/isArguments.js       |     5 +
 .../node_modules/lodash/fp/isArray.js           |     5 +
 .../node_modules/lodash/fp/isArrayBuffer.js     |     5 +
 .../node_modules/lodash/fp/isArrayLike.js       |     5 +
 .../node_modules/lodash/fp/isArrayLikeObject.js |     5 +
 .../node_modules/lodash/fp/isBoolean.js         |     5 +
 .../node_modules/lodash/fp/isBuffer.js          |     5 +
 .../node_modules/lodash/fp/isDate.js            |     5 +
 .../node_modules/lodash/fp/isElement.js         |     5 +
 .../node_modules/lodash/fp/isEmpty.js           |     5 +
 .../node_modules/lodash/fp/isEqual.js           |     5 +
 .../node_modules/lodash/fp/isEqualWith.js       |     5 +
 .../node_modules/lodash/fp/isError.js           |     5 +
 .../node_modules/lodash/fp/isFinite.js          |     5 +
 .../node_modules/lodash/fp/isFunction.js        |     5 +
 .../node_modules/lodash/fp/isInteger.js         |     5 +
 .../node_modules/lodash/fp/isLength.js          |     5 +
 .../node_modules/lodash/fp/isMap.js             |     5 +
 .../node_modules/lodash/fp/isMatch.js           |     5 +
 .../node_modules/lodash/fp/isMatchWith.js       |     5 +
 .../node_modules/lodash/fp/isNaN.js             |     5 +
 .../node_modules/lodash/fp/isNative.js          |     5 +
 .../node_modules/lodash/fp/isNil.js             |     5 +
 .../node_modules/lodash/fp/isNull.js            |     5 +
 .../node_modules/lodash/fp/isNumber.js          |     5 +
 .../node_modules/lodash/fp/isObject.js          |     5 +
 .../node_modules/lodash/fp/isObjectLike.js      |     5 +
 .../node_modules/lodash/fp/isPlainObject.js     |     5 +
 .../node_modules/lodash/fp/isRegExp.js          |     5 +
 .../node_modules/lodash/fp/isSafeInteger.js     |     5 +
 .../node_modules/lodash/fp/isSet.js             |     5 +
 .../node_modules/lodash/fp/isString.js          |     5 +
 .../node_modules/lodash/fp/isSymbol.js          |     5 +
 .../node_modules/lodash/fp/isTypedArray.js      |     5 +
 .../node_modules/lodash/fp/isUndefined.js       |     5 +
 .../node_modules/lodash/fp/isWeakMap.js         |     5 +
 .../node_modules/lodash/fp/isWeakSet.js         |     5 +
 .../node_modules/lodash/fp/iteratee.js          |     5 +
 .../node_modules/lodash/fp/join.js              |     5 +
 .../node_modules/lodash/fp/juxt.js              |     1 +
 .../node_modules/lodash/fp/kebabCase.js         |     5 +
 .../node_modules/lodash/fp/keyBy.js             |     5 +
 .../node_modules/lodash/fp/keys.js              |     5 +
 .../node_modules/lodash/fp/keysIn.js            |     5 +
 .../node_modules/lodash/fp/lang.js              |     2 +
 .../node_modules/lodash/fp/last.js              |     5 +
 .../node_modules/lodash/fp/lastIndexOf.js       |     5 +
 .../node_modules/lodash/fp/lastIndexOfFrom.js   |     5 +
 .../node_modules/lodash/fp/lowerCase.js         |     5 +
 .../node_modules/lodash/fp/lowerFirst.js        |     5 +
 .../node_modules/lodash/fp/lt.js                |     5 +
 .../node_modules/lodash/fp/lte.js               |     5 +
 .../node_modules/lodash/fp/map.js               |     5 +
 .../node_modules/lodash/fp/mapKeys.js           |     5 +
 .../node_modules/lodash/fp/mapValues.js         |     5 +
 .../node_modules/lodash/fp/matches.js           |     1 +
 .../node_modules/lodash/fp/matchesProperty.js   |     5 +
 .../node_modules/lodash/fp/math.js              |     2 +
 .../node_modules/lodash/fp/max.js               |     5 +
 .../node_modules/lodash/fp/maxBy.js             |     5 +
 .../node_modules/lodash/fp/mean.js              |     5 +
 .../node_modules/lodash/fp/meanBy.js            |     5 +
 .../node_modules/lodash/fp/memoize.js           |     5 +
 .../node_modules/lodash/fp/merge.js             |     5 +
 .../node_modules/lodash/fp/mergeAll.js          |     5 +
 .../node_modules/lodash/fp/mergeAllWith.js      |     5 +
 .../node_modules/lodash/fp/mergeWith.js         |     5 +
 .../node_modules/lodash/fp/method.js            |     5 +
 .../node_modules/lodash/fp/methodOf.js          |     5 +
 .../node_modules/lodash/fp/min.js               |     5 +
 .../node_modules/lodash/fp/minBy.js             |     5 +
 .../node_modules/lodash/fp/mixin.js             |     5 +
 .../node_modules/lodash/fp/multiply.js          |     5 +
 .../node_modules/lodash/fp/nAry.js              |     1 +
 .../node_modules/lodash/fp/negate.js            |     5 +
 .../node_modules/lodash/fp/next.js              |     5 +
 .../node_modules/lodash/fp/noop.js              |     5 +
 .../node_modules/lodash/fp/now.js               |     5 +
 .../node_modules/lodash/fp/nth.js               |     5 +
 .../node_modules/lodash/fp/nthArg.js            |     5 +
 .../node_modules/lodash/fp/number.js            |     2 +
 .../node_modules/lodash/fp/object.js            |     2 +
 .../node_modules/lodash/fp/omit.js              |     5 +
 .../node_modules/lodash/fp/omitAll.js           |     1 +
 .../node_modules/lodash/fp/omitBy.js            |     5 +
 .../node_modules/lodash/fp/once.js              |     5 +
 .../node_modules/lodash/fp/orderBy.js           |     5 +
 .../node_modules/lodash/fp/over.js              |     5 +
 .../node_modules/lodash/fp/overArgs.js          |     5 +
 .../node_modules/lodash/fp/overEvery.js         |     5 +
 .../node_modules/lodash/fp/overSome.js          |     5 +
 .../node_modules/lodash/fp/pad.js               |     5 +
 .../node_modules/lodash/fp/padChars.js          |     5 +
 .../node_modules/lodash/fp/padCharsEnd.js       |     5 +
 .../node_modules/lodash/fp/padCharsStart.js     |     5 +
 .../node_modules/lodash/fp/padEnd.js            |     5 +
 .../node_modules/lodash/fp/padStart.js          |     5 +
 .../node_modules/lodash/fp/parseInt.js          |     5 +
 .../node_modules/lodash/fp/partial.js           |     5 +
 .../node_modules/lodash/fp/partialRight.js      |     5 +
 .../node_modules/lodash/fp/partition.js         |     5 +
 .../node_modules/lodash/fp/path.js              |     1 +
 .../node_modules/lodash/fp/pathEq.js            |     1 +
 .../node_modules/lodash/fp/pathOr.js            |     1 +
 .../node_modules/lodash/fp/paths.js             |     1 +
 .../node_modules/lodash/fp/pick.js              |     5 +
 .../node_modules/lodash/fp/pickAll.js           |     1 +
 .../node_modules/lodash/fp/pickBy.js            |     5 +
 .../node_modules/lodash/fp/pipe.js              |     1 +
 .../node_modules/lodash/fp/placeholder.js       |     6 +
 .../node_modules/lodash/fp/plant.js             |     5 +
 .../node_modules/lodash/fp/pluck.js             |     1 +
 .../node_modules/lodash/fp/prop.js              |     1 +
 .../node_modules/lodash/fp/propEq.js            |     1 +
 .../node_modules/lodash/fp/propOr.js            |     1 +
 .../node_modules/lodash/fp/property.js          |     1 +
 .../node_modules/lodash/fp/propertyOf.js        |     5 +
 .../node_modules/lodash/fp/props.js             |     1 +
 .../node_modules/lodash/fp/pull.js              |     5 +
 .../node_modules/lodash/fp/pullAll.js           |     5 +
 .../node_modules/lodash/fp/pullAllBy.js         |     5 +
 .../node_modules/lodash/fp/pullAllWith.js       |     5 +
 .../node_modules/lodash/fp/pullAt.js            |     5 +
 .../node_modules/lodash/fp/random.js            |     5 +
 .../node_modules/lodash/fp/range.js             |     5 +
 .../node_modules/lodash/fp/rangeRight.js        |     5 +
 .../node_modules/lodash/fp/rangeStep.js         |     5 +
 .../node_modules/lodash/fp/rangeStepRight.js    |     5 +
 .../node_modules/lodash/fp/rearg.js             |     5 +
 .../node_modules/lodash/fp/reduce.js            |     5 +
 .../node_modules/lodash/fp/reduceRight.js       |     5 +
 .../node_modules/lodash/fp/reject.js            |     5 +
 .../node_modules/lodash/fp/remove.js            |     5 +
 .../node_modules/lodash/fp/repeat.js            |     5 +
 .../node_modules/lodash/fp/replace.js           |     5 +
 .../node_modules/lodash/fp/rest.js              |     5 +
 .../node_modules/lodash/fp/restFrom.js          |     5 +
 .../node_modules/lodash/fp/result.js            |     5 +
 .../node_modules/lodash/fp/reverse.js           |     5 +
 .../node_modules/lodash/fp/round.js             |     5 +
 .../node_modules/lodash/fp/sample.js            |     5 +
 .../node_modules/lodash/fp/sampleSize.js        |     5 +
 .../node_modules/lodash/fp/seq.js               |     2 +
 .../node_modules/lodash/fp/set.js               |     5 +
 .../node_modules/lodash/fp/setWith.js           |     5 +
 .../node_modules/lodash/fp/shuffle.js           |     5 +
 .../node_modules/lodash/fp/size.js              |     5 +
 .../node_modules/lodash/fp/slice.js             |     5 +
 .../node_modules/lodash/fp/snakeCase.js         |     5 +
 .../node_modules/lodash/fp/some.js              |     5 +
 .../node_modules/lodash/fp/sortBy.js            |     5 +
 .../node_modules/lodash/fp/sortedIndex.js       |     5 +
 .../node_modules/lodash/fp/sortedIndexBy.js     |     5 +
 .../node_modules/lodash/fp/sortedIndexOf.js     |     5 +
 .../node_modules/lodash/fp/sortedLastIndex.js   |     5 +
 .../node_modules/lodash/fp/sortedLastIndexBy.js |     5 +
 .../node_modules/lodash/fp/sortedLastIndexOf.js |     5 +
 .../node_modules/lodash/fp/sortedUniq.js        |     5 +
 .../node_modules/lodash/fp/sortedUniqBy.js      |     5 +
 .../node_modules/lodash/fp/split.js             |     5 +
 .../node_modules/lodash/fp/spread.js            |     5 +
 .../node_modules/lodash/fp/spreadFrom.js        |     5 +
 .../node_modules/lodash/fp/startCase.js         |     5 +
 .../node_modules/lodash/fp/startsWith.js        |     5 +
 .../node_modules/lodash/fp/string.js            |     2 +
 .../node_modules/lodash/fp/stubArray.js         |     5 +
 .../node_modules/lodash/fp/stubFalse.js         |     5 +
 .../node_modules/lodash/fp/stubObject.js        |     5 +
 .../node_modules/lodash/fp/stubString.js        |     5 +
 .../node_modules/lodash/fp/stubTrue.js          |     5 +
 .../node_modules/lodash/fp/subtract.js          |     5 +
 .../node_modules/lodash/fp/sum.js               |     5 +
 .../node_modules/lodash/fp/sumBy.js             |     5 +
 .../lodash/fp/symmetricDifference.js            |     1 +
 .../lodash/fp/symmetricDifferenceBy.js          |     1 +
 .../lodash/fp/symmetricDifferenceWith.js        |     1 +
 .../node_modules/lodash/fp/tail.js              |     5 +
 .../node_modules/lodash/fp/take.js              |     5 +
 .../node_modules/lodash/fp/takeLast.js          |     1 +
 .../node_modules/lodash/fp/takeLastWhile.js     |     1 +
 .../node_modules/lodash/fp/takeRight.js         |     5 +
 .../node_modules/lodash/fp/takeRightWhile.js    |     5 +
 .../node_modules/lodash/fp/takeWhile.js         |     5 +
 .../node_modules/lodash/fp/tap.js               |     5 +
 .../node_modules/lodash/fp/template.js          |     5 +
 .../node_modules/lodash/fp/templateSettings.js  |     5 +
 .../node_modules/lodash/fp/throttle.js          |     5 +
 .../node_modules/lodash/fp/thru.js              |     5 +
 .../node_modules/lodash/fp/times.js             |     5 +
 .../node_modules/lodash/fp/toArray.js           |     5 +
 .../node_modules/lodash/fp/toFinite.js          |     5 +
 .../node_modules/lodash/fp/toInteger.js         |     5 +
 .../node_modules/lodash/fp/toIterator.js        |     5 +
 .../node_modules/lodash/fp/toJSON.js            |     5 +
 .../node_modules/lodash/fp/toLength.js          |     5 +
 .../node_modules/lodash/fp/toLower.js           |     5 +
 .../node_modules/lodash/fp/toNumber.js          |     5 +
 .../node_modules/lodash/fp/toPairs.js           |     5 +
 .../node_modules/lodash/fp/toPairsIn.js         |     5 +
 .../node_modules/lodash/fp/toPath.js            |     5 +
 .../node_modules/lodash/fp/toPlainObject.js     |     5 +
 .../node_modules/lodash/fp/toSafeInteger.js     |     5 +
 .../node_modules/lodash/fp/toString.js          |     5 +
 .../node_modules/lodash/fp/toUpper.js           |     5 +
 .../node_modules/lodash/fp/transform.js         |     5 +
 .../node_modules/lodash/fp/trim.js              |     5 +
 .../node_modules/lodash/fp/trimChars.js         |     5 +
 .../node_modules/lodash/fp/trimCharsEnd.js      |     5 +
 .../node_modules/lodash/fp/trimCharsStart.js    |     5 +
 .../node_modules/lodash/fp/trimEnd.js           |     5 +
 .../node_modules/lodash/fp/trimStart.js         |     5 +
 .../node_modules/lodash/fp/truncate.js          |     5 +
 .../node_modules/lodash/fp/unapply.js           |     1 +
 .../node_modules/lodash/fp/unary.js             |     5 +
 .../node_modules/lodash/fp/unescape.js          |     5 +
 .../node_modules/lodash/fp/union.js             |     5 +
 .../node_modules/lodash/fp/unionBy.js           |     5 +
 .../node_modules/lodash/fp/unionWith.js         |     5 +
 .../node_modules/lodash/fp/uniq.js              |     5 +
 .../node_modules/lodash/fp/uniqBy.js            |     5 +
 .../node_modules/lodash/fp/uniqWith.js          |     5 +
 .../node_modules/lodash/fp/uniqueId.js          |     5 +
 .../node_modules/lodash/fp/unnest.js            |     1 +
 .../node_modules/lodash/fp/unset.js             |     5 +
 .../node_modules/lodash/fp/unzip.js             |     5 +
 .../node_modules/lodash/fp/unzipWith.js         |     5 +
 .../node_modules/lodash/fp/update.js            |     5 +
 .../node_modules/lodash/fp/updateWith.js        |     5 +
 .../node_modules/lodash/fp/upperCase.js         |     5 +
 .../node_modules/lodash/fp/upperFirst.js        |     5 +
 .../node_modules/lodash/fp/useWith.js           |     1 +
 .../node_modules/lodash/fp/util.js              |     2 +
 .../node_modules/lodash/fp/value.js             |     5 +
 .../node_modules/lodash/fp/valueOf.js           |     5 +
 .../node_modules/lodash/fp/values.js            |     5 +
 .../node_modules/lodash/fp/valuesIn.js          |     5 +
 .../node_modules/lodash/fp/where.js             |     1 +
 .../node_modules/lodash/fp/whereEq.js           |     1 +
 .../node_modules/lodash/fp/without.js           |     5 +
 .../node_modules/lodash/fp/words.js             |     5 +
 .../node_modules/lodash/fp/wrap.js              |     5 +
 .../node_modules/lodash/fp/wrapperAt.js         |     5 +
 .../node_modules/lodash/fp/wrapperChain.js      |     5 +
 .../node_modules/lodash/fp/wrapperLodash.js     |     5 +
 .../node_modules/lodash/fp/wrapperReverse.js    |     5 +
 .../node_modules/lodash/fp/wrapperValue.js      |     5 +
 .../node_modules/lodash/fp/xor.js               |     5 +
 .../node_modules/lodash/fp/xorBy.js             |     5 +
 .../node_modules/lodash/fp/xorWith.js           |     5 +
 .../node_modules/lodash/fp/zip.js               |     5 +
 .../node_modules/lodash/fp/zipAll.js            |     5 +
 .../node_modules/lodash/fp/zipObj.js            |     1 +
 .../node_modules/lodash/fp/zipObject.js         |     5 +
 .../node_modules/lodash/fp/zipObjectDeep.js     |     5 +
 .../node_modules/lodash/fp/zipWith.js           |     5 +
 .../node_modules/lodash/fromPairs.js            |    28 +
 .../node_modules/lodash/function.js             |    25 +
 .../node_modules/lodash/functions.js            |    31 +
 .../node_modules/lodash/functionsIn.js          |    31 +
 .../node_modules/lodash/get.js                  |    33 +
 .../node_modules/lodash/groupBy.js              |    41 +
 .../node_modules/lodash/gt.js                   |    29 +
 .../node_modules/lodash/gte.js                  |    30 +
 .../node_modules/lodash/has.js                  |    35 +
 .../node_modules/lodash/hasIn.js                |    34 +
 .../node_modules/lodash/head.js                 |    23 +
 .../node_modules/lodash/identity.js             |    21 +
 .../node_modules/lodash/inRange.js              |    55 +
 .../node_modules/lodash/includes.js             |    53 +
 .../node_modules/lodash/index.js                |     1 +
 .../node_modules/lodash/indexOf.js              |    42 +
 .../node_modules/lodash/initial.js              |    22 +
 .../node_modules/lodash/intersection.js         |    30 +
 .../node_modules/lodash/intersectionBy.js       |    45 +
 .../node_modules/lodash/intersectionWith.js     |    41 +
 .../node_modules/lodash/invert.js               |    42 +
 .../node_modules/lodash/invertBy.js             |    56 +
 .../node_modules/lodash/invoke.js               |    24 +
 .../node_modules/lodash/invokeMap.js            |    41 +
 .../node_modules/lodash/isArguments.js          |    36 +
 .../node_modules/lodash/isArray.js              |    26 +
 .../node_modules/lodash/isArrayBuffer.js        |    27 +
 .../node_modules/lodash/isArrayLike.js          |    33 +
 .../node_modules/lodash/isArrayLikeObject.js    |    33 +
 .../node_modules/lodash/isBoolean.js            |    29 +
 .../node_modules/lodash/isBuffer.js             |    38 +
 .../node_modules/lodash/isDate.js               |    27 +
 .../node_modules/lodash/isElement.js            |    25 +
 .../node_modules/lodash/isEmpty.js              |    77 +
 .../node_modules/lodash/isEqual.js              |    35 +
 .../node_modules/lodash/isEqualWith.js          |    41 +
 .../node_modules/lodash/isError.js              |    36 +
 .../node_modules/lodash/isFinite.js             |    36 +
 .../node_modules/lodash/isFunction.js           |    37 +
 .../node_modules/lodash/isInteger.js            |    33 +
 .../node_modules/lodash/isLength.js             |    35 +
 .../node_modules/lodash/isMap.js                |    27 +
 .../node_modules/lodash/isMatch.js              |    36 +
 .../node_modules/lodash/isMatchWith.js          |    41 +
 .../node_modules/lodash/isNaN.js                |    38 +
 .../node_modules/lodash/isNative.js             |    40 +
 .../node_modules/lodash/isNil.js                |    25 +
 .../node_modules/lodash/isNull.js               |    22 +
 .../node_modules/lodash/isNumber.js             |    38 +
 .../node_modules/lodash/isObject.js             |    31 +
 .../node_modules/lodash/isObjectLike.js         |    29 +
 .../node_modules/lodash/isPlainObject.js        |    62 +
 .../node_modules/lodash/isRegExp.js             |    27 +
 .../node_modules/lodash/isSafeInteger.js        |    37 +
 .../node_modules/lodash/isSet.js                |    27 +
 .../node_modules/lodash/isString.js             |    30 +
 .../node_modules/lodash/isSymbol.js             |    29 +
 .../node_modules/lodash/isTypedArray.js         |    27 +
 .../node_modules/lodash/isUndefined.js          |    22 +
 .../node_modules/lodash/isWeakMap.js            |    28 +
 .../node_modules/lodash/isWeakSet.js            |    28 +
 .../node_modules/lodash/iteratee.js             |    53 +
 .../node_modules/lodash/join.js                 |    26 +
 .../node_modules/lodash/kebabCase.js            |    28 +
 .../node_modules/lodash/keyBy.js                |    36 +
 .../node_modules/lodash/keys.js                 |    37 +
 .../node_modules/lodash/keysIn.js               |    32 +
 .../node_modules/lodash/lang.js                 |    58 +
 .../node_modules/lodash/last.js                 |    20 +
 .../node_modules/lodash/lastIndexOf.js          |    46 +
 .../node_modules/lodash/lodash.js               | 17105 ++++++++++
 .../node_modules/lodash/lodash.min.js           |   137 +
 .../node_modules/lodash/lowerCase.js            |    27 +
 .../node_modules/lodash/lowerFirst.js           |    22 +
 .../node_modules/lodash/lt.js                   |    29 +
 .../node_modules/lodash/lte.js                  |    30 +
 .../node_modules/lodash/map.js                  |    53 +
 .../node_modules/lodash/mapKeys.js              |    36 +
 .../node_modules/lodash/mapValues.js            |    43 +
 .../node_modules/lodash/matches.js              |    39 +
 .../node_modules/lodash/matchesProperty.js      |    37 +
 .../node_modules/lodash/math.js                 |    17 +
 .../node_modules/lodash/max.js                  |    29 +
 .../node_modules/lodash/maxBy.js                |    34 +
 .../node_modules/lodash/mean.js                 |    22 +
 .../node_modules/lodash/meanBy.js               |    31 +
 .../node_modules/lodash/memoize.js              |    73 +
 .../node_modules/lodash/merge.js                |    39 +
 .../node_modules/lodash/mergeWith.js            |    39 +
 .../node_modules/lodash/method.js               |    34 +
 .../node_modules/lodash/methodOf.js             |    33 +
 .../node_modules/lodash/min.js                  |    29 +
 .../node_modules/lodash/minBy.js                |    34 +
 .../node_modules/lodash/mixin.js                |    74 +
 .../node_modules/lodash/multiply.js             |    22 +
 .../node_modules/lodash/negate.js               |    40 +
 .../node_modules/lodash/next.js                 |    35 +
 .../node_modules/lodash/noop.js                 |    17 +
 .../node_modules/lodash/now.js                  |    23 +
 .../node_modules/lodash/nth.js                  |    29 +
 .../node_modules/lodash/nthArg.js               |    32 +
 .../node_modules/lodash/number.js               |     5 +
 .../node_modules/lodash/object.js               |    49 +
 .../node_modules/lodash/omit.js                 |    57 +
 .../node_modules/lodash/omitBy.js               |    29 +
 .../node_modules/lodash/once.js                 |    25 +
 .../node_modules/lodash/orderBy.js              |    47 +
 .../node_modules/lodash/over.js                 |    24 +
 .../node_modules/lodash/overArgs.js             |    61 +
 .../node_modules/lodash/overEvery.js            |    30 +
 .../node_modules/lodash/overSome.js             |    30 +
 .../node_modules/lodash/package.json            |    70 +
 .../node_modules/lodash/pad.js                  |    49 +
 .../node_modules/lodash/padEnd.js               |    39 +
 .../node_modules/lodash/padStart.js             |    39 +
 .../node_modules/lodash/parseInt.js             |    43 +
 .../node_modules/lodash/partial.js              |    50 +
 .../node_modules/lodash/partialRight.js         |    49 +
 .../node_modules/lodash/partition.js            |    43 +
 .../node_modules/lodash/pick.js                 |    25 +
 .../node_modules/lodash/pickBy.js               |    37 +
 .../node_modules/lodash/plant.js                |    48 +
 .../node_modules/lodash/property.js             |    32 +
 .../node_modules/lodash/propertyOf.js           |    30 +
 .../node_modules/lodash/pull.js                 |    29 +
 .../node_modules/lodash/pullAll.js              |    29 +
 .../node_modules/lodash/pullAllBy.js            |    33 +
 .../node_modules/lodash/pullAllWith.js          |    32 +
 .../node_modules/lodash/pullAt.js               |    43 +
 .../node_modules/lodash/random.js               |    82 +
 .../node_modules/lodash/range.js                |    46 +
 .../node_modules/lodash/rangeRight.js           |    41 +
 .../node_modules/lodash/rearg.js                |    33 +
 .../node_modules/lodash/reduce.js               |    51 +
 .../node_modules/lodash/reduceRight.js          |    36 +
 .../node_modules/lodash/reject.js               |    46 +
 .../node_modules/lodash/remove.js               |    53 +
 .../node_modules/lodash/repeat.js               |    37 +
 .../node_modules/lodash/replace.js              |    29 +
 .../node_modules/lodash/rest.js                 |    40 +
 .../node_modules/lodash/result.js               |    56 +
 .../node_modules/lodash/reverse.js              |    34 +
 .../node_modules/lodash/round.js                |    26 +
 .../node_modules/lodash/sample.js               |    24 +
 .../node_modules/lodash/sampleSize.js           |    37 +
 .../node_modules/lodash/seq.js                  |    16 +
 .../node_modules/lodash/set.js                  |    35 +
 .../node_modules/lodash/setWith.js              |    32 +
 .../node_modules/lodash/shuffle.js              |    25 +
 .../node_modules/lodash/size.js                 |    46 +
 .../node_modules/lodash/slice.js                |    37 +
 .../node_modules/lodash/snakeCase.js            |    28 +
 .../node_modules/lodash/some.js                 |    51 +
 .../node_modules/lodash/sortBy.js               |    48 +
 .../node_modules/lodash/sortedIndex.js          |    24 +
 .../node_modules/lodash/sortedIndexBy.js        |    33 +
 .../node_modules/lodash/sortedIndexOf.js        |    31 +
 .../node_modules/lodash/sortedLastIndex.js      |    25 +
 .../node_modules/lodash/sortedLastIndexBy.js    |    33 +
 .../node_modules/lodash/sortedLastIndexOf.js    |    31 +
 .../node_modules/lodash/sortedUniq.js           |    24 +
 .../node_modules/lodash/sortedUniqBy.js         |    26 +
 .../node_modules/lodash/split.js                |    52 +
 .../node_modules/lodash/spread.js               |    63 +
 .../node_modules/lodash/startCase.js            |    29 +
 .../node_modules/lodash/startsWith.js           |    39 +
 .../node_modules/lodash/string.js               |    33 +
 .../node_modules/lodash/stubArray.js            |    23 +
 .../node_modules/lodash/stubFalse.js            |    18 +
 .../node_modules/lodash/stubObject.js           |    23 +
 .../node_modules/lodash/stubString.js           |    18 +
 .../node_modules/lodash/stubTrue.js             |    18 +
 .../node_modules/lodash/subtract.js             |    22 +
 .../node_modules/lodash/sum.js                  |    24 +
 .../node_modules/lodash/sumBy.js                |    33 +
 .../node_modules/lodash/tail.js                 |    22 +
 .../node_modules/lodash/take.js                 |    37 +
 .../node_modules/lodash/takeRight.js            |    39 +
 .../node_modules/lodash/takeRightWhile.js       |    45 +
 .../node_modules/lodash/takeWhile.js            |    45 +
 .../node_modules/lodash/tap.js                  |    29 +
 .../node_modules/lodash/template.js             |   238 +
 .../node_modules/lodash/templateSettings.js     |    67 +
 .../node_modules/lodash/throttle.js             |    69 +
 .../node_modules/lodash/thru.js                 |    28 +
 .../node_modules/lodash/times.js                |    51 +
 .../node_modules/lodash/toArray.js              |    58 +
 .../node_modules/lodash/toFinite.js             |    42 +
 .../node_modules/lodash/toInteger.js            |    36 +
 .../node_modules/lodash/toIterator.js           |    23 +
 .../node_modules/lodash/toJSON.js               |     1 +
 .../node_modules/lodash/toLength.js             |    38 +
 .../node_modules/lodash/toLower.js              |    28 +
 .../node_modules/lodash/toNumber.js             |    66 +
 .../node_modules/lodash/toPairs.js              |    30 +
 .../node_modules/lodash/toPairsIn.js            |    30 +
 .../node_modules/lodash/toPath.js               |    33 +
 .../node_modules/lodash/toPlainObject.js        |    32 +
 .../node_modules/lodash/toSafeInteger.js        |    37 +
 .../node_modules/lodash/toString.js             |    28 +
 .../node_modules/lodash/toUpper.js              |    28 +
 .../node_modules/lodash/transform.js            |    65 +
 .../node_modules/lodash/trim.js                 |    49 +
 .../node_modules/lodash/trimEnd.js              |    43 +
 .../node_modules/lodash/trimStart.js            |    43 +
 .../node_modules/lodash/truncate.js             |   111 +
 .../node_modules/lodash/unary.js                |    22 +
 .../node_modules/lodash/unescape.js             |    34 +
 .../node_modules/lodash/union.js                |    26 +
 .../node_modules/lodash/unionBy.js              |    39 +
 .../node_modules/lodash/unionWith.js            |    34 +
 .../node_modules/lodash/uniq.js                 |    25 +
 .../node_modules/lodash/uniqBy.js               |    31 +
 .../node_modules/lodash/uniqWith.js             |    28 +
 .../node_modules/lodash/uniqueId.js             |    28 +
 .../node_modules/lodash/unset.js                |    34 +
 .../node_modules/lodash/unzip.js                |    45 +
 .../node_modules/lodash/unzipWith.js            |    39 +
 .../node_modules/lodash/update.js               |    35 +
 .../node_modules/lodash/updateWith.js           |    33 +
 .../node_modules/lodash/upperCase.js            |    27 +
 .../node_modules/lodash/upperFirst.js           |    22 +
 .../node_modules/lodash/util.js                 |    34 +
 .../node_modules/lodash/value.js                |     1 +
 .../node_modules/lodash/valueOf.js              |     1 +
 .../node_modules/lodash/values.js               |    34 +
 .../node_modules/lodash/valuesIn.js             |    32 +
 .../node_modules/lodash/without.js              |    31 +
 .../node_modules/lodash/words.js                |    35 +
 .../node_modules/lodash/wrap.js                 |    30 +
 .../node_modules/lodash/wrapperAt.js            |    48 +
 .../node_modules/lodash/wrapperChain.js         |    34 +
 .../node_modules/lodash/wrapperLodash.js        |   147 +
 .../node_modules/lodash/wrapperReverse.js       |    44 +
 .../node_modules/lodash/wrapperValue.js         |    21 +
 .../node_modules/lodash/xor.js                  |    28 +
 .../node_modules/lodash/xorBy.js                |    39 +
 .../node_modules/lodash/xorWith.js              |    34 +
 .../node_modules/lodash/zip.js                  |    22 +
 .../node_modules/lodash/zipObject.js            |    24 +
 .../node_modules/lodash/zipObjectDeep.js        |    23 +
 .../node_modules/lodash/zipWith.js              |    32 +
 .../grunt-contrib-compress/package.json         |    85 +
 .../grunt-contrib-compress/tasks/compress.js    |    56 +
 .../tasks/lib/compress.js                       |   282 +
 node_modules/grunt-known-options/index.js       |    68 +
 node_modules/grunt-known-options/package.json   |    56 +
 node_modules/grunt-legacy-log-utils/.jshintrc   |    14 +
 node_modules/grunt-legacy-log-utils/.npmignore  |     1 +
 node_modules/grunt-legacy-log-utils/.travis.yml |    11 +
 node_modules/grunt-legacy-log-utils/LICENSE-MIT |    22 +
 node_modules/grunt-legacy-log-utils/index.js    |   122 +
 .../node_modules/lodash/LICENSE.txt             |    22 +
 .../node_modules/lodash/dist/lodash.compat.js   |  7158 +++++
 .../lodash/dist/lodash.compat.min.js            |    92 +
 .../node_modules/lodash/dist/lodash.js          |  6786 ++++
 .../node_modules/lodash/dist/lodash.min.js      |    87 +
 .../lodash/dist/lodash.underscore.js            |  4979 +++
 .../lodash/dist/lodash.underscore.min.js        |    39 +
 .../node_modules/lodash/lodash.js               |  7180 +++++
 .../node_modules/lodash/package.json            |   127 +
 .../node_modules/underscore.string/.travis.yml  |     8 +
 .../node_modules/underscore.string/Gemfile      |     4 +
 .../node_modules/underscore.string/Gemfile.lock |    17 +
 .../underscore.string/README.markdown           |   814 +
 .../node_modules/underscore.string/Rakefile     |    23 +
 .../underscore.string/component.json            |    11 +
 .../dist/underscore.string.min.js               |     1 +
 .../underscore.string/lib/underscore.string.js  |   673 +
 .../underscore.string/libpeerconnection.log     |     0
 .../node_modules/underscore.string/package.json |    98 +
 .../underscore.string/test/run-qunit.js         |    45 +
 .../underscore.string/test/speed.js             |   148 +
 .../underscore.string/test/strings.js           |   685 +
 .../test/strings_standalone.js                  |    12 +
 .../underscore.string/test/test.html            |    31 +
 .../underscore.string/test/test_standalone.html |    18 +
 .../test/test_underscore/arrays.js              |   200 +
 .../test/test_underscore/chaining.js            |    59 +
 .../test/test_underscore/collections.js         |   426 +
 .../test/test_underscore/functions.js           |   259 +
 .../test/test_underscore/index.html             |    45 +
 .../test/test_underscore/objects.js             |   548 +
 .../test/test_underscore/speed.js               |    75 +
 .../test/test_underscore/utility.js             |   249 +
 .../test/test_underscore/vendor/jquery.js       |  9404 ++++++
 .../test/test_underscore/vendor/jslitmus.js     |   670 +
 .../test/test_underscore/vendor/qunit.css       |   235 +
 .../test/test_underscore/vendor/qunit.js        |  1977 ++
 .../underscore.string/test/underscore.js        |  1201 +
 .../grunt-legacy-log-utils/package.json         |    74 +
 .../grunt-legacy-log-utils/test/index.js        |    79 +
 node_modules/grunt-legacy-log/.jshintrc         |    14 +
 node_modules/grunt-legacy-log/.npmignore        |     1 +
 node_modules/grunt-legacy-log/.travis.yml       |    16 +
 node_modules/grunt-legacy-log/LICENSE-MIT       |    22 +
 node_modules/grunt-legacy-log/examples.js       |    26 +
 node_modules/grunt-legacy-log/index.js          |   285 +
 .../node_modules/lodash/LICENSE.txt             |    22 +
 .../node_modules/lodash/dist/lodash.compat.js   |  7158 +++++
 .../lodash/dist/lodash.compat.min.js            |    92 +
 .../node_modules/lodash/dist/lodash.js          |  6786 ++++
 .../node_modules/lodash/dist/lodash.min.js      |    87 +
 .../lodash/dist/lodash.underscore.js            |  4979 +++
 .../lodash/dist/lodash.underscore.min.js        |    39 +
 .../node_modules/lodash/lodash.js               |  7180 +++++
 .../node_modules/lodash/package.json            |   127 +
 .../node_modules/underscore.string/.travis.yml  |     8 +
 .../node_modules/underscore.string/Gemfile      |     4 +
 .../node_modules/underscore.string/Gemfile.lock |    17 +
 .../underscore.string/README.markdown           |   814 +
 .../node_modules/underscore.string/Rakefile     |    23 +
 .../underscore.string/component.json            |    11 +
 .../dist/underscore.string.min.js               |     1 +
 .../underscore.string/lib/underscore.string.js  |   673 +
 .../underscore.string/libpeerconnection.log     |     0
 .../node_modules/underscore.string/package.json |    98 +
 .../underscore.string/test/run-qunit.js         |    45 +
 .../underscore.string/test/speed.js             |   148 +
 .../underscore.string/test/strings.js           |   685 +
 .../test/strings_standalone.js                  |    12 +
 .../underscore.string/test/test.html            |    31 +
 .../underscore.string/test/test_standalone.html |    18 +
 .../test/test_underscore/arrays.js              |   200 +
 .../test/test_underscore/chaining.js            |    59 +
 .../test/test_underscore/collections.js         |   426 +
 .../test/test_underscore/functions.js           |   259 +
 .../test/test_underscore/index.html             |    45 +
 .../test/test_underscore/objects.js             |   548 +
 .../test/test_underscore/speed.js               |    75 +
 .../test/test_underscore/utility.js             |   249 +
 .../test/test_underscore/vendor/jquery.js       |  9404 ++++++
 .../test/test_underscore/vendor/jslitmus.js     |   670 +
 .../test/test_underscore/vendor/qunit.css       |   235 +
 .../test/test_underscore/vendor/qunit.js        |  1977 ++
 .../underscore.string/test/underscore.js        |  1201 +
 node_modules/grunt-legacy-log/package.json      |    71 +
 node_modules/grunt-legacy-log/test/index.js     |   519 +
 node_modules/grunt-legacy-util/.jshintrc        |    14 +
 node_modules/grunt-legacy-util/.npmignore       |     1 +
 node_modules/grunt-legacy-util/.travis.yml      |    11 +
 node_modules/grunt-legacy-util/LICENSE-MIT      |    22 +
 node_modules/grunt-legacy-util/index.js         |   202 +
 node_modules/grunt-legacy-util/package.json     |    79 +
 .../test/fixtures/Gruntfile-execArgv-child.js   |     7 +
 .../test/fixtures/Gruntfile-execArgv.js         |    17 +
 .../test/fixtures/Gruntfile-print-text.js       |     8 +
 .../grunt-legacy-util/test/fixtures/exec.cmd    |     1 +
 .../grunt-legacy-util/test/fixtures/exec.sh     |     2 +
 .../test/fixtures/spawn-multibyte.js            |    17 +
 .../grunt-legacy-util/test/fixtures/spawn.js    |     8 +
 node_modules/grunt-legacy-util/test/index.js    |   554 +
 node_modules/grunt-sass/package.json            |    83 +
 node_modules/grunt-sass/tasks/sass.js           |    44 +
 node_modules/grunt/.npmignore                   |     7 +
 node_modules/grunt/CONTRIBUTING.md              |     1 +
 node_modules/grunt/LICENSE-MIT                  |    22 +
 node_modules/grunt/appveyor.yml                 |    43 +
 node_modules/grunt/internal-tasks/bump.js       |   151 +
 node_modules/grunt/internal-tasks/subgrunt.js   |    34 +
 node_modules/grunt/lib/grunt.js                 |   165 +
 node_modules/grunt/lib/grunt/cli.js             |   128 +
 node_modules/grunt/lib/grunt/config.js          |   124 +
 node_modules/grunt/lib/grunt/event.js           |    16 +
 node_modules/grunt/lib/grunt/fail.js            |    84 +
 node_modules/grunt/lib/grunt/file.js            |   448 +
 node_modules/grunt/lib/grunt/help.js            |   129 +
 node_modules/grunt/lib/grunt/option.js          |    42 +
 node_modules/grunt/lib/grunt/task.js            |   458 +
 node_modules/grunt/lib/grunt/template.js        |    95 +
 node_modules/grunt/lib/util/task.js             |   342 +
 node_modules/grunt/package.json                 |   109 +
 node_modules/hammerjs/.bowerrc                  |     3 +
 node_modules/hammerjs/.jscsrc                   |    95 +
 node_modules/hammerjs/.jshintrc                 |    22 +
 node_modules/hammerjs/.npmignore                |    21 +
 node_modules/hammerjs/.travis.yml               |    11 +
 node_modules/hammerjs/CHANGELOG.md              |    54 +
 node_modules/hammerjs/CONTRIBUTING.md           |    41 +
 node_modules/hammerjs/Gruntfile.coffee          |   124 +
 node_modules/hammerjs/LICENSE.md                |    21 +
 node_modules/hammerjs/bower.json                |    16 +
 node_modules/hammerjs/changelog.js              |    71 +
 node_modules/hammerjs/component.json            |     8 +
 node_modules/hammerjs/hammer.js                 |  2643 ++
 node_modules/hammerjs/hammer.min.js             |     7 +
 node_modules/hammerjs/hammer.min.js.map         |     1 +
 node_modules/hammerjs/hammer.min.map            |     1 +
 node_modules/hammerjs/package.json              |    81 +
 node_modules/hammerjs/src/expose.js             |    67 +
 node_modules/hammerjs/src/hammer.js             |   128 +
 node_modules/hammerjs/src/hammer.prefix.js      |     2 +
 node_modules/hammerjs/src/hammer.suffix.js      |     1 +
 node_modules/hammerjs/src/input.js              |   394 +
 node_modules/hammerjs/src/input/mouse.js        |    57 +
 node_modules/hammerjs/src/input/pointerevent.js |    88 +
 node_modules/hammerjs/src/input/singletouch.js  |    68 +
 node_modules/hammerjs/src/input/touch.js        |    98 +
 node_modules/hammerjs/src/input/touchmouse.js   |    95 +
 node_modules/hammerjs/src/manager.js            |   312 +
 node_modules/hammerjs/src/recognizer.js         |   327 +
 .../hammerjs/src/recognizers/attribute.js       |    60 +
 node_modules/hammerjs/src/recognizers/pan.js    |    79 +
 node_modules/hammerjs/src/recognizers/pinch.js  |    38 +
 node_modules/hammerjs/src/recognizers/press.js  |    70 +
 node_modules/hammerjs/src/recognizers/rotate.js |    30 +
 node_modules/hammerjs/src/recognizers/swipe.js  |    55 +
 node_modules/hammerjs/src/recognizers/tap.js    |   114 +
 node_modules/hammerjs/src/touchaction.js        |   164 +
 node_modules/hammerjs/src/utils.js              |   371 +
 .../hammerjs/tests/manual/assets/style.css      |    42 +
 .../tests/manual/compute_touch_action.html      |    18 +
 node_modules/hammerjs/tests/manual/input.html   |    51 +
 node_modules/hammerjs/tests/manual/log.html     |    61 +
 .../hammerjs/tests/manual/multiple.html         |    73 +
 node_modules/hammerjs/tests/manual/nested.html  |   217 +
 .../tests/manual/simulator-googlemaps.html      |   100 +
 .../hammerjs/tests/manual/simulator.html        |   118 +
 .../hammerjs/tests/manual/touchaction.html      |    91 +
 node_modules/hammerjs/tests/manual/visual.html  |   211 +
 .../hammerjs/tests/unit/assets/blanket.js       |  5447 ++++
 .../hammerjs/tests/unit/assets/jquery.min.js    |     4 +
 .../hammerjs/tests/unit/assets/lodash.compat.js |  7157 +++++
 .../hammerjs/tests/unit/assets/qunit.css        |   237 +
 .../hammerjs/tests/unit/assets/qunit.js         |  2288 ++
 .../hammerjs/tests/unit/assets/utils.js         |    50 +
 .../hammerjs/tests/unit/gestures/test_pan.js    |    63 +
 .../hammerjs/tests/unit/gestures/test_pinch.js  |    43 +
 .../hammerjs/tests/unit/gestures/test_swipe.js  |    29 +
 node_modules/hammerjs/tests/unit/index.html     |    43 +
 node_modules/hammerjs/tests/unit/test_enable.js |   171 +
 node_modules/hammerjs/tests/unit/test_events.js |    61 +
 .../hammerjs/tests/unit/test_gestures.js        |   208 +
 node_modules/hammerjs/tests/unit/test_hammer.js |   187 +
 .../hammerjs/tests/unit/test_jquery_plugin.js   |    59 +
 .../hammerjs/tests/unit/test_multiple_taps.js   |    90 +
 .../unit/test_nested_gesture_recognizers.js     |   167 +
 .../tests/unit/test_propagation_bubble.js       |    56 +
 .../hammerjs/tests/unit/test_require_failure.js |   111 +
 .../tests/unit/test_simultaneous_recognition.js |   234 +
 node_modules/hammerjs/tests/unit/test_utils.js  |   164 +
 node_modules/har-schema/lib/afterRequest.json   |    30 +
 node_modules/har-schema/lib/beforeRequest.json  |    30 +
 node_modules/har-schema/lib/browser.json        |    20 +
 node_modules/har-schema/lib/cache.json          |    21 +
 node_modules/har-schema/lib/content.json        |    29 +
 node_modules/har-schema/lib/cookie.json         |    36 +
 node_modules/har-schema/lib/creator.json        |    20 +
 node_modules/har-schema/lib/entry.json          |    53 +
 node_modules/har-schema/lib/har.json            |    13 +
 node_modules/har-schema/lib/header.json         |    20 +
 node_modules/har-schema/lib/index.js            |    22 +
 node_modules/har-schema/lib/log.json            |    36 +
 node_modules/har-schema/lib/page.json           |    32 +
 node_modules/har-schema/lib/pageTimings.json    |    18 +
 node_modules/har-schema/lib/postData.json       |    43 +
 node_modules/har-schema/lib/query.json          |    20 +
 node_modules/har-schema/lib/request.json        |    57 +
 node_modules/har-schema/lib/response.json       |    54 +
 node_modules/har-schema/lib/timings.json        |    42 +
 node_modules/har-schema/package.json            |    90 +
 node_modules/har-validator/lib/async.js         |    98 +
 node_modules/har-validator/lib/error.js         |    17 +
 node_modules/har-validator/lib/promise.js       |    95 +
 node_modules/har-validator/package.json         |    79 +
 node_modules/has-ansi/index.js                  |     4 +
 node_modules/has-ansi/package.json              |    99 +
 node_modules/has-unicode/index.js               |    16 +
 node_modules/has-unicode/package.json           |    62 +
 node_modules/hawk/.npmignore                    |     5 +
 node_modules/hawk/client.js                     |     3 +
 node_modules/hawk/dist/browser.js               |   793 +
 node_modules/hawk/lib/browser.js                |   653 +
 node_modules/hawk/lib/client.js                 |   394 +
 node_modules/hawk/lib/crypto.js                 |   128 +
 node_modules/hawk/lib/index.js                  |    17 +
 node_modules/hawk/lib/server.js                 |   550 +
 node_modules/hawk/lib/utils.js                  |   186 +
 node_modules/hawk/package.json                  |    82 +
 node_modules/hoek/.npmignore                    |     3 +
 node_modules/hoek/lib/escape.js                 |   168 +
 node_modules/hoek/lib/index.js                  |   978 +
 node_modules/hoek/package.json                  |    62 +
 node_modules/hooker/LICENSE-MIT                 |    22 +
 node_modules/hooker/child.js                    |   101 +
 node_modules/hooker/dist/ba-hooker.js           |   169 +
 node_modules/hooker/dist/ba-hooker.min.js       |     4 +
 node_modules/hooker/grunt.js                    |    47 +
 node_modules/hooker/lib/hooker.js               |   174 +
 node_modules/hooker/package.json                |    72 +
 node_modules/hooker/parent.js                   |    17 +
 node_modules/hooker/test/hooker_test.js         |   435 +
 node_modules/hosted-git-info/CHANGELOG.md       |    17 +
 node_modules/hosted-git-info/git-host-info.js   |    78 +
 node_modules/hosted-git-info/git-host.js        |   129 +
 node_modules/hosted-git-info/index.js           |   121 +
 node_modules/hosted-git-info/package.json       |    75 +
 node_modules/http-signature/.dir-locals.el      |     6 +
 node_modules/http-signature/.npmignore          |     7 +
 node_modules/http-signature/CHANGES.md          |    46 +
 node_modules/http-signature/http_signing.md     |   363 +
 node_modules/http-signature/lib/index.js        |    29 +
 node_modules/http-signature/lib/parser.js       |   315 +
 node_modules/http-signature/lib/signer.js       |   401 +
 node_modules/http-signature/lib/utils.js        |   112 +
 node_modules/http-signature/lib/verify.js       |    88 +
 node_modules/http-signature/package.json        |    81 +
 node_modules/iconv-lite/.npmignore              |     3 +
 node_modules/iconv-lite/.travis.yml             |     5 +
 node_modules/iconv-lite/encodings/big5.js       |     9 +
 node_modules/iconv-lite/encodings/gbk.js        |     9 +
 node_modules/iconv-lite/encodings/singlebyte.js |   340 +
 node_modules/iconv-lite/encodings/table/big5.js |     1 +
 node_modules/iconv-lite/encodings/table/gbk.js  |     1 +
 .../generation/generate-big5-table.js           |    25 +
 .../generation/generate-singlebyte.js           |   142 +
 node_modules/iconv-lite/index.js                |   231 +
 node_modules/iconv-lite/package.json            |   105 +
 node_modules/iconv-lite/test/big5-test.js       |    36 +
 node_modules/iconv-lite/test/big5File.txt       |    13 +
 node_modules/iconv-lite/test/cyrillic-test.js   |    86 +
 node_modules/iconv-lite/test/gbk-test.js        |    38 +
 node_modules/iconv-lite/test/gbkFile.txt        |    14 +
 node_modules/iconv-lite/test/greek-test.js      |    79 +
 node_modules/iconv-lite/test/main-test.js       |    55 +
 node_modules/iconv-lite/test/performance.js     |    67 +
 node_modules/iconv-lite/test/turkish-test.js    |    90 +
 node_modules/iltorb/CHANGELOG.md                |   219 +
 node_modules/iltorb/binding.gyp                 |    70 +
 node_modules/iltorb/brotli/common/constants.h   |    55 +
 node_modules/iltorb/brotli/common/dictionary.c  |  5886 ++++
 node_modules/iltorb/brotli/common/dictionary.h  |    50 +
 node_modules/iltorb/brotli/common/version.h     |    19 +
 node_modules/iltorb/brotli/dec/bit_reader.c     |    48 +
 node_modules/iltorb/brotli/dec/bit_reader.h     |   360 +
 node_modules/iltorb/brotli/dec/context.h        |   251 +
 node_modules/iltorb/brotli/dec/decode.c         |  2365 ++
 node_modules/iltorb/brotli/dec/huffman.c        |   358 +
 node_modules/iltorb/brotli/dec/huffman.h        |    68 +
 node_modules/iltorb/brotli/dec/port.h           |   168 +
 node_modules/iltorb/brotli/dec/prefix.h         |   751 +
 node_modules/iltorb/brotli/dec/state.c          |   169 +
 node_modules/iltorb/brotli/dec/state.h          |   250 +
 node_modules/iltorb/brotli/dec/transform.h      |   300 +
 .../iltorb/brotli/enc/backward_references.c     |   130 +
 .../iltorb/brotli/enc/backward_references.h     |    39 +
 .../iltorb/brotli/enc/backward_references_hq.c  |   790 +
 .../iltorb/brotli/enc/backward_references_hq.h  |    99 +
 .../iltorb/brotli/enc/backward_references_inc.h |   143 +
 node_modules/iltorb/brotli/enc/bit_cost.c       |    35 +
 node_modules/iltorb/brotli/enc/bit_cost.h       |    63 +
 node_modules/iltorb/brotli/enc/bit_cost_inc.h   |   127 +
 .../iltorb/brotli/enc/block_encoder_inc.h       |    33 +
 node_modules/iltorb/brotli/enc/block_splitter.c |   197 +
 node_modules/iltorb/brotli/enc/block_splitter.h |    51 +
 .../iltorb/brotli/enc/block_splitter_inc.h      |   432 +
 .../iltorb/brotli/enc/brotli_bit_stream.c       |  1341 +
 .../iltorb/brotli/enc/brotli_bit_stream.h       |   107 +
 node_modules/iltorb/brotli/enc/cluster.c        |    56 +
 node_modules/iltorb/brotli/enc/cluster.h        |    48 +
 node_modules/iltorb/brotli/enc/cluster_inc.h    |   315 +
 node_modules/iltorb/brotli/enc/command.h        |   177 +
 .../iltorb/brotli/enc/compress_fragment.c       |   791 +
 .../iltorb/brotli/enc/compress_fragment.h       |    61 +
 .../brotli/enc/compress_fragment_two_pass.c     |   612 +
 .../brotli/enc/compress_fragment_two_pass.h     |    54 +
 node_modules/iltorb/brotli/enc/context.h        |   184 +
 .../iltorb/brotli/enc/dictionary_hash.c         |  1120 +
 .../iltorb/brotli/enc/dictionary_hash.h         |    24 +
 node_modules/iltorb/brotli/enc/encode.c         |  1814 ++
 node_modules/iltorb/brotli/enc/entropy_encode.c |   501 +
 node_modules/iltorb/brotli/enc/entropy_encode.h |   122 +
 .../iltorb/brotli/enc/entropy_encode_static.h   |   539 +
 node_modules/iltorb/brotli/enc/fast_log.h       |   145 +
 .../iltorb/brotli/enc/find_match_length.h       |    80 +
 node_modules/iltorb/brotli/enc/hash.h           |   470 +
 .../brotli/enc/hash_forgetful_chain_inc.h       |   256 +
 .../brotli/enc/hash_longest_match64_inc.h       |   269 +
 .../iltorb/brotli/enc/hash_longest_match_inc.h  |   261 +
 .../brotli/enc/hash_longest_match_quickly_inc.h |   232 +
 .../iltorb/brotli/enc/hash_to_binary_tree_inc.h |   322 +
 node_modules/iltorb/brotli/enc/histogram.c      |    97 +
 node_modules/iltorb/brotli/enc/histogram.h      |    60 +
 node_modules/iltorb/brotli/enc/histogram_inc.h  |    51 +
 node_modules/iltorb/brotli/enc/literal_cost.c   |   175 +
 node_modules/iltorb/brotli/enc/literal_cost.h   |    30 +
 node_modules/iltorb/brotli/enc/memory.c         |   181 +
 node_modules/iltorb/brotli/enc/memory.h         |    63 +
 node_modules/iltorb/brotli/enc/metablock.c      |   528 +
 node_modules/iltorb/brotli/enc/metablock.h      |   100 +
 node_modules/iltorb/brotli/enc/metablock_inc.h  |   183 +
 node_modules/iltorb/brotli/enc/port.h           |   160 +
 node_modules/iltorb/brotli/enc/prefix.h         |    54 +
 node_modules/iltorb/brotli/enc/quality.h        |   160 +
 node_modules/iltorb/brotli/enc/ringbuffer.h     |   160 +
 node_modules/iltorb/brotli/enc/static_dict.c    |   482 +
 node_modules/iltorb/brotli/enc/static_dict.h    |    39 +
 .../iltorb/brotli/enc/static_dict_lut.h         |  5864 ++++
 node_modules/iltorb/brotli/enc/utf8_util.c      |    85 +
 node_modules/iltorb/brotli/enc/utf8_util.h      |    32 +
 node_modules/iltorb/brotli/enc/write_bits.h     |    90 +
 .../iltorb/brotli/include/brotli/decode.h       |   338 +
 .../iltorb/brotli/include/brotli/encode.h       |   440 +
 .../iltorb/brotli/include/brotli/port.h         |   146 +
 .../iltorb/brotli/include/brotli/types.h        |    90 +
 node_modules/iltorb/build/Makefile              |   347 +
 .../build/Release/.deps/Release/iltorb.node.d   |     1 +
 .../obj.target/action_after_build.stamp.d       |     1 +
 .../iltorb/brotli/common/dictionary.o.d         |     8 +
 .../obj.target/iltorb/brotli/dec/bit_reader.o.d |    10 +
 .../obj.target/iltorb/brotli/dec/decode.o.d     |    23 +
 .../obj.target/iltorb/brotli/dec/huffman.o.d    |    11 +
 .../obj.target/iltorb/brotli/dec/state.o.d      |    15 +
 .../iltorb/brotli/enc/backward_references.o.d   |    42 +
 .../brotli/enc/backward_references_hq.o.d       |    40 +
 .../obj.target/iltorb/brotli/enc/bit_cost.o.d   |    27 +
 .../iltorb/brotli/enc/block_splitter.o.d        |    31 +
 .../iltorb/brotli/enc/brotli_bit_stream.o.d     |    34 +
 .../obj.target/iltorb/brotli/enc/cluster.o.d    |    29 +
 .../iltorb/brotli/enc/compress_fragment.o.d     |    34 +
 .../brotli/enc/compress_fragment_two_pass.o.d   |    36 +
 .../iltorb/brotli/enc/dictionary_hash.o.d       |     8 +
 .../obj.target/iltorb/brotli/enc/encode.o.d     |    60 +
 .../iltorb/brotli/enc/entropy_encode.o.d        |    11 +
 .../obj.target/iltorb/brotli/enc/histogram.o.d  |    25 +
 .../iltorb/brotli/enc/literal_cost.o.d          |    13 +
 .../obj.target/iltorb/brotli/enc/memory.o.d     |     9 +
 .../obj.target/iltorb/brotli/enc/metablock.o.d  |    34 +
 .../iltorb/brotli/enc/static_dict.o.d           |    14 +
 .../obj.target/iltorb/brotli/enc/utf8_util.o.d  |    10 +
 .../obj.target/iltorb/src/common/allocator.o.d  |    56 +
 .../iltorb/src/common/stream_coder.o.d          |    58 +
 .../obj.target/iltorb/src/dec/stream_decode.o.d |    65 +
 .../iltorb/src/dec/stream_decode_worker.o.d     |    66 +
 .../obj.target/iltorb/src/enc/stream_encode.o.d |    65 +
 .../iltorb/src/enc/stream_encode_worker.o.d     |    66 +
 .../Release/obj.target/iltorb/src/iltorb.o.d    |    66 +
 .../build/Release/build/bindings/iltorb.node.d  |     1 +
 node_modules/iltorb/build/Release/iltorb.node   |   Bin 0 -> 865472 bytes
 .../Release/obj.target/action_after_build.stamp |     0
 .../iltorb/brotli/common/dictionary.o           |   Bin 0 -> 125800 bytes
 .../obj.target/iltorb/brotli/dec/bit_reader.o   |   Bin 0 -> 3716 bytes
 .../obj.target/iltorb/brotli/dec/decode.o       |   Bin 0 -> 171784 bytes
 .../obj.target/iltorb/brotli/dec/huffman.o      |   Bin 0 -> 15756 bytes
 .../obj.target/iltorb/brotli/dec/state.o        |   Bin 0 -> 15408 bytes
 .../iltorb/brotli/enc/backward_references.o     |   Bin 0 -> 301052 bytes
 .../iltorb/brotli/enc/backward_references_hq.o  |   Bin 0 -> 101232 bytes
 .../obj.target/iltorb/brotli/enc/bit_cost.o     |   Bin 0 -> 25112 bytes
 .../iltorb/brotli/enc/block_splitter.o          |   Bin 0 -> 90292 bytes
 .../iltorb/brotli/enc/brotli_bit_stream.o       |   Bin 0 -> 146348 bytes
 .../obj.target/iltorb/brotli/enc/cluster.o      |   Bin 0 -> 58160 bytes
 .../iltorb/brotli/enc/compress_fragment.o       |   Bin 0 -> 249480 bytes
 .../brotli/enc/compress_fragment_two_pass.o     |   Bin 0 -> 277972 bytes
 .../iltorb/brotli/enc/dictionary_hash.o         |   Bin 0 -> 67496 bytes
 .../obj.target/iltorb/brotli/enc/encode.o       |   Bin 0 -> 178384 bytes
 .../iltorb/brotli/enc/entropy_encode.o          |   Bin 0 -> 24352 bytes
 .../obj.target/iltorb/brotli/enc/histogram.o    |   Bin 0 -> 10284 bytes
 .../obj.target/iltorb/brotli/enc/literal_cost.o |   Bin 0 -> 13276 bytes
 .../obj.target/iltorb/brotli/enc/memory.o       |   Bin 0 -> 4820 bytes
 .../obj.target/iltorb/brotli/enc/metablock.o    |   Bin 0 -> 76820 bytes
 .../obj.target/iltorb/brotli/enc/static_dict.o  |   Bin 0 -> 240244 bytes
 .../obj.target/iltorb/brotli/enc/utf8_util.o    |   Bin 0 -> 4348 bytes
 .../obj.target/iltorb/src/common/allocator.o    |   Bin 0 -> 141964 bytes
 .../obj.target/iltorb/src/common/stream_coder.o |   Bin 0 -> 179908 bytes
 .../obj.target/iltorb/src/dec/stream_decode.o   |   Bin 0 -> 262756 bytes
 .../iltorb/src/dec/stream_decode_worker.o       |   Bin 0 -> 257088 bytes
 .../obj.target/iltorb/src/enc/stream_encode.o   |   Bin 0 -> 273224 bytes
 .../iltorb/src/enc/stream_encode_worker.o       |   Bin 0 -> 257424 bytes
 .../Release/obj.target/iltorb/src/iltorb.o      |   Bin 0 -> 135232 bytes
 .../iltorb/build/action_after_build.target.mk   |    32 +
 node_modules/iltorb/build/binding.Makefile      |     6 +
 node_modules/iltorb/build/bindings/iltorb.node  |   Bin 0 -> 865472 bytes
 node_modules/iltorb/build/config.gypi           |   182 +
 node_modules/iltorb/build/gyp-mac-tool          |   611 +
 node_modules/iltorb/build/iltorb.target.mk      |   225 +
 node_modules/iltorb/index.js                    |   224 +
 node_modules/iltorb/package.json                |    93 +
 node_modules/iltorb/src/common/allocator.cc     |    48 +
 node_modules/iltorb/src/common/allocator.h      |    33 +
 node_modules/iltorb/src/common/stream_coder.cc  |    30 +
 node_modules/iltorb/src/common/stream_coder.h   |    20 +
 node_modules/iltorb/src/dec/decode_index.cc     |    10 +
 node_modules/iltorb/src/dec/stream_decode.cc    |    79 +
 node_modules/iltorb/src/dec/stream_decode.h     |    26 +
 .../iltorb/src/dec/stream_decode_worker.cc      |    56 +
 .../iltorb/src/dec/stream_decode_worker.h       |    21 +
 node_modules/iltorb/src/enc/encode_index.cc     |    10 +
 node_modules/iltorb/src/enc/stream_encode.cc    |   118 +
 node_modules/iltorb/src/enc/stream_encode.h     |    26 +
 .../iltorb/src/enc/stream_encode_worker.cc      |    57 +
 .../iltorb/src/enc/stream_encode_worker.h       |    22 +
 node_modules/iltorb/src/iltorb.cc               |    12 +
 node_modules/in-publish/.npmignore              |    32 +
 node_modules/in-publish/in-install.js           |     4 +
 node_modules/in-publish/in-publish.js           |     4 +
 node_modules/in-publish/index.js                |    28 +
 node_modules/in-publish/not-in-install.js       |     4 +
 node_modules/in-publish/not-in-publish.js       |     4 +
 node_modules/in-publish/package.json            |    54 +
 node_modules/in-publish/test/package.json       |    10 +
 node_modules/indent-string/index.js             |    20 +
 node_modules/indent-string/package.json         |    72 +
 node_modules/inflight/inflight.js               |    54 +
 node_modules/inflight/package.json              |    69 +
 node_modules/inherits/inherits.js               |     7 +
 node_modules/inherits/inherits_browser.js       |    23 +
 node_modules/inherits/package.json              |    77 +
 node_modules/ini/ini.js                         |   194 +
 node_modules/ini/package.json                   |    67 +
 node_modules/invert-kv/index.js                 |    15 +
 node_modules/invert-kv/package.json             |    69 +
 node_modules/is-arrayish/.editorconfig          |    18 +
 node_modules/is-arrayish/.istanbul.yml          |     4 +
 node_modules/is-arrayish/.npmignore             |     5 +
 node_modules/is-arrayish/.travis.yml            |    17 +
 node_modules/is-arrayish/index.js               |    10 +
 node_modules/is-arrayish/package.json           |    70 +
 node_modules/is-builtin-module/index.js         |    10 +
 node_modules/is-builtin-module/package.json     |    79 +
 node_modules/is-finite/index.js                 |     6 +
 node_modules/is-finite/package.json             |    72 +
 node_modules/is-fullwidth-code-point/index.js   |    46 +
 .../is-fullwidth-code-point/package.json        |    81 +
 .../fixtures/invalid-ipv4-addresses.json        |    19 +
 .../fixtures/invalid-ipv6-addresses.json        |   335 +
 .../fixtures/valid-ipv4-addresses.json          |     6 +
 .../fixtures/valid-ipv6-addresses.json          |   189 +
 node_modules/is-my-ip-valid/index.js            |    90 +
 node_modules/is-my-ip-valid/package.json        |    50 +
 node_modules/is-my-ip-valid/test.js             |    26 +
 node_modules/is-my-json-valid/.travis.yml       |     3 +
 node_modules/is-my-json-valid/example.js        |    18 +
 node_modules/is-my-json-valid/formats.js        |    40 +
 node_modules/is-my-json-valid/index.js          |   603 +
 node_modules/is-my-json-valid/package.json      |    67 +
 node_modules/is-my-json-valid/require.js        |    12 +
 .../is-my-json-valid/test/fixtures/cosmic.js    |    84 +
 .../json-schema-draft4/additionalItems.json     |    82 +
 .../additionalProperties.json                   |    88 +
 .../test/json-schema-draft4/allOf.json          |   112 +
 .../test/json-schema-draft4/anyOf.json          |    68 +
 .../test/json-schema-draft4/bignum.json         |   107 +
 .../test/json-schema-draft4/default.json        |    49 +
 .../test/json-schema-draft4/definitions.json    |    32 +
 .../test/json-schema-draft4/dependencies.json   |   113 +
 .../test/json-schema-draft4/enum.json           |    72 +
 .../test/json-schema-draft4/format.json         |   143 +
 .../test/json-schema-draft4/items.json          |    46 +
 .../test/json-schema-draft4/maxItems.json       |    28 +
 .../test/json-schema-draft4/maxLength.json      |    28 +
 .../test/json-schema-draft4/maxProperties.json  |    28 +
 .../test/json-schema-draft4/maximum.json        |    42 +
 .../test/json-schema-draft4/minItems.json       |    28 +
 .../test/json-schema-draft4/minLength.json      |    28 +
 .../test/json-schema-draft4/minProperties.json  |    28 +
 .../test/json-schema-draft4/minimum.json        |    42 +
 .../test/json-schema-draft4/multipleOf.json     |    96 +
 .../test/json-schema-draft4/not.json            |    96 +
 .../test/json-schema-draft4/nullAndFormat.json  |    18 +
 .../test/json-schema-draft4/nullAndObject.json  |    18 +
 .../test/json-schema-draft4/oneOf.json          |    68 +
 .../test/json-schema-draft4/pattern.json        |    23 +
 .../json-schema-draft4/patternProperties.json   |   110 +
 .../test/json-schema-draft4/properties.json     |    92 +
 .../test/json-schema-draft4/ref.json            |   128 +
 .../test/json-schema-draft4/refRemote.json      |    74 +
 .../test/json-schema-draft4/required.json       |    39 +
 .../test/json-schema-draft4/type.json           |   330 +
 .../test/json-schema-draft4/uniqueItems.json    |    79 +
 .../is-my-json-valid/test/json-schema.js        |    23 +
 node_modules/is-my-json-valid/test/misc.js      |   471 +
 .../is-my-json-valid/test/safe-regex.js         |    15 +
 .../is-my-json-valid/test/schema-path.js        |   167 +
 node_modules/is-property/.npmignore             |    17 +
 node_modules/is-property/is-property.js         |     5 +
 node_modules/is-property/package.json           |    67 +
 node_modules/is-typedarray/LICENSE.md           |    18 +
 node_modules/is-typedarray/index.js             |    41 +
 node_modules/is-typedarray/package.json         |    64 +
 node_modules/is-typedarray/test.js              |    34 +
 node_modules/is-utf8/is-utf8.js                 |    76 +
 node_modules/is-utf8/package.json               |    57 +
 node_modules/isarray/.npmignore                 |     1 +
 node_modules/isarray/.travis.yml                |     4 +
 node_modules/isarray/Makefile                   |     6 +
 node_modules/isarray/component.json             |    19 +
 node_modules/isarray/index.js                   |     5 +
 node_modules/isarray/package.json               |    77 +
 node_modules/isarray/test.js                    |    20 +
 node_modules/isexe/.npmignore                   |     2 +
 node_modules/isexe/index.js                     |    57 +
 node_modules/isexe/mode.js                      |    41 +
 node_modules/isexe/package.json                 |    64 +
 node_modules/isexe/test/basic.js                |   221 +
 node_modules/isexe/windows.js                   |    42 +
 node_modules/isstream/.jshintrc                 |    59 +
 node_modules/isstream/.npmignore                |     1 +
 node_modules/isstream/.travis.yml               |    12 +
 node_modules/isstream/LICENSE.md                |    11 +
 node_modules/isstream/isstream.js               |    27 +
 node_modules/isstream/package.json              |    66 +
 node_modules/isstream/test.js                   |   168 +
 node_modules/jquery/AUTHORS.txt                 |   301 +
 node_modules/jquery/LICENSE.txt                 |    36 +
 node_modules/jquery/bower.json                  |    14 +
 node_modules/jquery/dist/core.js                |   476 +
 node_modules/jquery/dist/jquery.js              | 10253 ++++++
 node_modules/jquery/dist/jquery.min.js          |     4 +
 node_modules/jquery/dist/jquery.min.map         |     1 +
 node_modules/jquery/dist/jquery.slim.js         |  8160 +++++
 node_modules/jquery/dist/jquery.slim.min.js     |     4 +
 node_modules/jquery/dist/jquery.slim.min.map    |     1 +
 node_modules/jquery/external/sizzle/LICENSE.txt |    36 +
 .../jquery/external/sizzle/dist/sizzle.js       |  2272 ++
 .../jquery/external/sizzle/dist/sizzle.min.js   |     3 +
 .../jquery/external/sizzle/dist/sizzle.min.map  |     1 +
 node_modules/jquery/package.json                |   125 +
 node_modules/jquery/src/.eslintrc.json          |     5 +
 node_modules/jquery/src/ajax.js                 |   855 +
 node_modules/jquery/src/ajax/jsonp.js           |   102 +
 node_modules/jquery/src/ajax/load.js            |    76 +
 node_modules/jquery/src/ajax/parseXML.js        |    30 +
 node_modules/jquery/src/ajax/script.js          |    77 +
 node_modules/jquery/src/ajax/var/location.js    |     5 +
 node_modules/jquery/src/ajax/var/nonce.js       |     7 +
 node_modules/jquery/src/ajax/var/rquery.js      |     5 +
 node_modules/jquery/src/ajax/xhr.js             |   169 +
 node_modules/jquery/src/attributes.js           |    13 +
 node_modules/jquery/src/attributes/attr.js      |   141 +
 node_modules/jquery/src/attributes/classes.js   |   174 +
 node_modules/jquery/src/attributes/prop.js      |   143 +
 node_modules/jquery/src/attributes/support.js   |    33 +
 node_modules/jquery/src/attributes/val.js       |   190 +
 node_modules/jquery/src/callbacks.js            |   234 +
 node_modules/jquery/src/core.js                 |   476 +
 node_modules/jquery/src/core/DOMEval.js         |    16 +
 node_modules/jquery/src/core/access.js          |    70 +
 node_modules/jquery/src/core/init.js            |   128 +
 node_modules/jquery/src/core/nodeName.js        |    13 +
 node_modules/jquery/src/core/parseHTML.js       |    65 +
 .../jquery/src/core/ready-no-deferred.js        |    96 +
 node_modules/jquery/src/core/ready.js           |    86 +
 node_modules/jquery/src/core/readyException.js  |    13 +
 .../jquery/src/core/stripAndCollapse.js         |    14 +
 node_modules/jquery/src/core/support.js         |    20 +
 node_modules/jquery/src/core/var/rsingleTag.js  |     6 +
 node_modules/jquery/src/css.js                  |   438 +
 node_modules/jquery/src/css/addGetHookIf.js     |    26 +
 node_modules/jquery/src/css/adjustCSS.js        |    71 +
 node_modules/jquery/src/css/curCSS.js           |    65 +
 .../jquery/src/css/hiddenVisibleSelectors.js    |    15 +
 node_modules/jquery/src/css/showHide.js         |   105 +
 node_modules/jquery/src/css/support.js          |    89 +
 node_modules/jquery/src/css/var/cssExpand.js    |     5 +
 node_modules/jquery/src/css/var/getStyles.js    |    17 +
 .../jquery/src/css/var/isHiddenWithinTree.js    |    34 +
 node_modules/jquery/src/css/var/rmargin.js      |     5 +
 node_modules/jquery/src/css/var/rnumnonpx.js    |     7 +
 node_modules/jquery/src/css/var/swap.js         |    26 +
 node_modules/jquery/src/data.js                 |   179 +
 node_modules/jquery/src/data/Data.js            |   161 +
 node_modules/jquery/src/data/var/acceptData.js  |    19 +
 node_modules/jquery/src/data/var/dataPriv.js    |     7 +
 node_modules/jquery/src/data/var/dataUser.js    |     7 +
 node_modules/jquery/src/deferred.js             |   391 +
 .../jquery/src/deferred/exceptionHook.js        |    21 +
 node_modules/jquery/src/deprecated.js           |    40 +
 node_modules/jquery/src/dimensions.js           |    56 +
 node_modules/jquery/src/effects.js              |   699 +
 node_modules/jquery/src/effects/Tween.js        |   123 +
 .../jquery/src/effects/animatedSelector.js      |    15 +
 node_modules/jquery/src/event.js                |   746 +
 node_modules/jquery/src/event/ajax.js           |    22 +
 node_modules/jquery/src/event/alias.js          |    29 +
 node_modules/jquery/src/event/focusin.js        |    55 +
 node_modules/jquery/src/event/support.js        |    11 +
 node_modules/jquery/src/event/trigger.js        |   185 +
 node_modules/jquery/src/exports/amd.js          |    26 +
 node_modules/jquery/src/exports/global.js       |    34 +
 node_modules/jquery/src/jquery.js               |    41 +
 node_modules/jquery/src/manipulation.js         |   488 +
 .../jquery/src/manipulation/_evalUrl.js         |    23 +
 .../jquery/src/manipulation/buildFragment.js    |   104 +
 node_modules/jquery/src/manipulation/getAll.js  |    32 +
 .../jquery/src/manipulation/setGlobalEval.js    |    22 +
 node_modules/jquery/src/manipulation/support.js |    35 +
 .../src/manipulation/var/rcheckableType.js      |     5 +
 .../jquery/src/manipulation/var/rscriptType.js  |     5 +
 .../jquery/src/manipulation/var/rtagName.js     |     5 +
 node_modules/jquery/src/manipulation/wrapMap.js |    29 +
 node_modules/jquery/src/offset.js               |   229 +
 node_modules/jquery/src/queue.js                |   145 +
 node_modules/jquery/src/queue/delay.js          |    24 +
 node_modules/jquery/src/selector-native.js      |   237 +
 node_modules/jquery/src/selector-sizzle.js      |    19 +
 node_modules/jquery/src/selector.js             |     3 +
 node_modules/jquery/src/serialize.js            |   130 +
 node_modules/jquery/src/traversing.js           |   191 +
 .../jquery/src/traversing/findFilter.js         |   106 +
 node_modules/jquery/src/traversing/var/dir.js   |    22 +
 .../jquery/src/traversing/var/rneedsContext.js  |     8 +
 .../jquery/src/traversing/var/siblings.js       |    17 +
 .../jquery/src/var/ObjectFunctionString.js      |     7 +
 node_modules/jquery/src/var/arr.js              |     5 +
 node_modules/jquery/src/var/class2type.js       |     6 +
 node_modules/jquery/src/var/concat.js           |     7 +
 node_modules/jquery/src/var/document.js         |     5 +
 node_modules/jquery/src/var/documentElement.js  |     7 +
 node_modules/jquery/src/var/fnToString.js       |     7 +
 node_modules/jquery/src/var/getProto.js         |     5 +
 node_modules/jquery/src/var/hasOwn.js           |     7 +
 node_modules/jquery/src/var/indexOf.js          |     7 +
 node_modules/jquery/src/var/pnum.js             |     5 +
 node_modules/jquery/src/var/push.js             |     7 +
 node_modules/jquery/src/var/rcssNum.js          |     9 +
 node_modules/jquery/src/var/rnothtmlwhite.js    |     8 +
 node_modules/jquery/src/var/slice.js            |     7 +
 node_modules/jquery/src/var/support.js          |     6 +
 node_modules/jquery/src/var/toString.js         |     7 +
 node_modules/jquery/src/wrap.js                 |    77 +
 node_modules/js-base64/.babelrc                 |     3 +
 node_modules/js-base64/.travis.yml              |     5 +
 node_modules/js-base64/1x1.png                  |   Bin 0 -> 68 bytes
 node_modules/js-base64/LICENSE.md               |    27 +
 node_modules/js-base64/base64.html              |    47 +
 node_modules/js-base64/base64.js                |   226 +
 node_modules/js-base64/base64.min.js            |     1 +
 node_modules/js-base64/base64_utf8              |   217 +
 node_modules/js-base64/bower.json               |    18 +
 node_modules/js-base64/old/base64-1.7.js        |   237 +
 node_modules/js-base64/package.js               |     9 +
 node_modules/js-base64/package.json             |    62 +
 node_modules/js-base64/test-moment/dankogai.js  |    44 +
 node_modules/js-base64/test-moment/es5.js       |    24 +
 node_modules/js-base64/test-moment/es6.js       |    25 +
 node_modules/js-base64/test-moment/index.html   |    40 +
 node_modules/js-base64/test-moment/large.js     |    25 +
 node_modules/js-base64/test-moment/moment.js    |  4535 +++
 node_modules/js-base64/test-moment/yoshinoya.js |    19 +
 node_modules/js-base64/test/dankogai.js         |    44 +
 node_modules/js-base64/test/es5.js              |    24 +
 node_modules/js-base64/test/es6.js              |    25 +
 node_modules/js-base64/test/index.html          |    39 +
 node_modules/js-base64/test/large.js            |    25 +
 node_modules/js-base64/test/yoshinoya.js        |    19 +
 node_modules/js-yaml/HISTORY.md                 |   155 +
 node_modules/js-yaml/bin/js-yaml.js             |   125 +
 node_modules/js-yaml/examples/custom_types.js   |   104 +
 node_modules/js-yaml/examples/custom_types.yaml |    18 +
 node_modules/js-yaml/examples/dumper.js         |    31 +
 node_modules/js-yaml/examples/dumper.json       |    22 +
 .../js-yaml/examples/sample_document.js         |    15 +
 .../js-yaml/examples/sample_document.yaml       |   197 +
 node_modules/js-yaml/index.js                   |     1 +
 node_modules/js-yaml/lib/js-yaml.js             |    33 +
 node_modules/js-yaml/lib/js-yaml/common.js      |    60 +
 node_modules/js-yaml/lib/js-yaml/dumper.js      |   437 +
 node_modules/js-yaml/lib/js-yaml/exception.js   |    25 +
 node_modules/js-yaml/lib/js-yaml/loader.js      |  1549 +
 node_modules/js-yaml/lib/js-yaml/mark.js        |    78 +
 node_modules/js-yaml/lib/js-yaml/require.js     |    23 +
 node_modules/js-yaml/lib/js-yaml/schema.js      |   103 +
 .../js-yaml/lib/js-yaml/schema/default.js       |    16 +
 .../js-yaml/lib/js-yaml/schema/minimal.js       |    13 +
 node_modules/js-yaml/lib/js-yaml/schema/safe.js |    25 +
 node_modules/js-yaml/lib/js-yaml/type.js        |    82 +
 node_modules/js-yaml/lib/js-yaml/type/binary.js |   118 +
 node_modules/js-yaml/lib/js-yaml/type/bool.js   |    74 +
 node_modules/js-yaml/lib/js-yaml/type/float.js  |   102 +
 node_modules/js-yaml/lib/js-yaml/type/int.js    |    85 +
 .../js-yaml/lib/js-yaml/type/js/function.js     |    56 +
 .../js-yaml/lib/js-yaml/type/js/regexp.js       |    56 +
 .../js-yaml/lib/js-yaml/type/js/undefined.js    |    28 +
 node_modules/js-yaml/lib/js-yaml/type/map.js    |    11 +
 node_modules/js-yaml/lib/js-yaml/type/merge.js  |    18 +
 node_modules/js-yaml/lib/js-yaml/type/null.js   |    36 +
 node_modules/js-yaml/lib/js-yaml/type/omap.js   |    53 +
 node_modules/js-yaml/lib/js-yaml/type/pairs.js  |    41 +
 node_modules/js-yaml/lib/js-yaml/type/seq.js    |    11 +
 node_modules/js-yaml/lib/js-yaml/type/set.js    |    31 +
 node_modules/js-yaml/lib/js-yaml/type/str.js    |    11 +
 .../js-yaml/lib/js-yaml/type/timestamp.js       |    91 +
 node_modules/js-yaml/package.json               |    85 +
 node_modules/jsbn/.npmignore                    |     2 +
 node_modules/jsbn/example.html                  |    12 +
 node_modules/jsbn/example.js                    |     3 +
 node_modules/jsbn/index.js                      |  1357 +
 node_modules/jsbn/package.json                  |    58 +
 node_modules/json-schema-traverse/.eslintrc.yml |    27 +
 node_modules/json-schema-traverse/.npmignore    |    60 +
 node_modules/json-schema-traverse/.travis.yml   |     8 +
 node_modules/json-schema-traverse/index.js      |    81 +
 node_modules/json-schema-traverse/package.json  |    74 +
 .../json-schema-traverse/spec/.eslintrc.yml     |     6 +
 .../spec/fixtures/schema.js                     |   125 +
 .../json-schema-traverse/spec/index.spec.js     |   102 +
 node_modules/json-schema/draft-00/hyper-schema  |    68 +
 node_modules/json-schema/draft-00/json-ref      |    26 +
 node_modules/json-schema/draft-00/links         |    33 +
 node_modules/json-schema/draft-00/schema        |   155 +
 node_modules/json-schema/draft-01/hyper-schema  |    68 +
 node_modules/json-schema/draft-01/json-ref      |    26 +
 node_modules/json-schema/draft-01/links         |    33 +
 node_modules/json-schema/draft-01/schema        |   155 +
 node_modules/json-schema/draft-02/hyper-schema  |    68 +
 node_modules/json-schema/draft-02/json-ref      |    26 +
 node_modules/json-schema/draft-02/links         |    35 +
 node_modules/json-schema/draft-02/schema        |   166 +
 .../json-schema/draft-03/examples/address       |    20 +
 .../json-schema/draft-03/examples/calendar      |    53 +
 node_modules/json-schema/draft-03/examples/card |   105 +
 node_modules/json-schema/draft-03/examples/geo  |     8 +
 .../json-schema/draft-03/examples/interfaces    |    23 +
 node_modules/json-schema/draft-03/hyper-schema  |    60 +
 node_modules/json-schema/draft-03/json-ref      |    26 +
 node_modules/json-schema/draft-03/links         |    35 +
 node_modules/json-schema/draft-03/schema        |   174 +
 node_modules/json-schema/draft-04/hyper-schema  |    60 +
 node_modules/json-schema/draft-04/links         |    41 +
 node_modules/json-schema/draft-04/schema        |   189 +
 .../json-schema/draft-zyp-json-schema-03.xml    |  1120 +
 .../json-schema/draft-zyp-json-schema-04.xml    |  1072 +
 node_modules/json-schema/lib/links.js           |    66 +
 node_modules/json-schema/lib/validate.js        |   273 +
 node_modules/json-schema/package.json           |    75 +
 node_modules/json-schema/test/tests.js          |    95 +
 node_modules/json-stringify-safe/.npmignore     |     1 +
 node_modules/json-stringify-safe/CHANGELOG.md   |    14 +
 node_modules/json-stringify-safe/Makefile       |    35 +
 node_modules/json-stringify-safe/package.json   |    71 +
 node_modules/json-stringify-safe/stringify.js   |    27 +
 .../json-stringify-safe/test/mocha.opts         |     2 +
 .../json-stringify-safe/test/stringify_test.js  |   246 +
 node_modules/jsonpointer/LICENSE.md             |    21 +
 node_modules/jsonpointer/jsonpointer.js         |    93 +
 node_modules/jsonpointer/package.json           |    76 +
 node_modules/jsprim/CHANGES.md                  |    49 +
 node_modules/jsprim/CONTRIBUTING.md             |    19 +
 node_modules/jsprim/lib/jsprim.js               |   735 +
 node_modules/jsprim/package.json                |    54 +
 node_modules/lazystream/.npmignore              |     4 +
 node_modules/lazystream/.travis.yml             |     9 +
 node_modules/lazystream/LICENSE-MIT             |    23 +
 node_modules/lazystream/lib/lazystream.js       |    54 +
 node_modules/lazystream/package.json            |    73 +
 node_modules/lazystream/secret                  |    59 +
 node_modules/lazystream/test/data.md            |    13 +
 node_modules/lazystream/test/fs_test.js         |    69 +
 node_modules/lazystream/test/helper.js          |    39 +
 node_modules/lazystream/test/pipe_test.js       |    36 +
 node_modules/lazystream/test/readable_test.js   |    90 +
 node_modules/lazystream/test/writable_test.js   |    59 +
 node_modules/lcid/index.js                      |    22 +
 node_modules/lcid/lcid.json                     |   203 +
 node_modules/lcid/package.json                  |    82 +
 node_modules/load-grunt-tasks/index.js          |    37 +
 node_modules/load-grunt-tasks/package.json      |    83 +
 node_modules/load-json-file/index.js            |    21 +
 .../node_modules/graceful-fs/fs.js              |    21 +
 .../node_modules/graceful-fs/graceful-fs.js     |   262 +
 .../node_modules/graceful-fs/legacy-streams.js  |   118 +
 .../node_modules/graceful-fs/package.json       |    80 +
 .../node_modules/graceful-fs/polyfills.js       |   330 +
 node_modules/load-json-file/package.json        |    82 +
 node_modules/lodash.assign/index.js             |   637 +
 node_modules/lodash.assign/package.json         |    73 +
 node_modules/lodash.clonedeep/index.js          |  1748 ++
 node_modules/lodash.clonedeep/package.json      |    73 +
 node_modules/lodash.mergewith/index.js          |  1963 ++
 node_modules/lodash.mergewith/package.json      |    68 +
 node_modules/lodash/lodash.js                   |  4258 +++
 node_modules/lodash/lodash.min.js               |    35 +
 node_modules/lodash/lodash.underscore.js        |  3688 +++
 node_modules/lodash/lodash.underscore.min.js    |    28 +
 node_modules/lodash/package.json                |    88 +
 node_modules/loud-rejection/api.js              |    11 +
 node_modules/loud-rejection/index.js            |    36 +
 node_modules/loud-rejection/package.json        |    95 +
 node_modules/loud-rejection/register.js         |     2 +
 node_modules/lru-cache/.npmignore               |     1 +
 node_modules/lru-cache/.travis.yml              |     8 +
 node_modules/lru-cache/CONTRIBUTORS             |    14 +
 node_modules/lru-cache/lib/lru-cache.js         |   334 +
 node_modules/lru-cache/package.json             |    61 +
 node_modules/lru-cache/test/basic.js            |   396 +
 node_modules/lru-cache/test/foreach.js          |   120 +
 node_modules/lru-cache/test/memory-leak.js      |    51 +
 node_modules/lru-cache/test/serialize.js        |   216 +
 node_modules/map-obj/index.js                   |    13 +
 node_modules/map-obj/package.json               |    73 +
 node_modules/meow/index.js                      |    82 +
 .../meow/node_modules/minimist/.travis.yml      |     8 +
 .../meow/node_modules/minimist/example/parse.js |     2 +
 .../meow/node_modules/minimist/index.js         |   236 +
 .../meow/node_modules/minimist/package.json     |    77 +
 .../meow/node_modules/minimist/readme.markdown  |    91 +
 .../meow/node_modules/minimist/test/all_bool.js |    32 +
 .../meow/node_modules/minimist/test/bool.js     |   166 +
 .../meow/node_modules/minimist/test/dash.js     |    31 +
 .../node_modules/minimist/test/default_bool.js  |    35 +
 .../meow/node_modules/minimist/test/dotted.js   |    22 +
 .../meow/node_modules/minimist/test/kv_short.js |    16 +
 .../meow/node_modules/minimist/test/long.js     |    31 +
 .../meow/node_modules/minimist/test/num.js      |    36 +
 .../meow/node_modules/minimist/test/parse.js    |   197 +
 .../minimist/test/parse_modified.js             |     9 +
 .../meow/node_modules/minimist/test/short.js    |    67 +
 .../node_modules/minimist/test/stop_early.js    |    15 +
 .../meow/node_modules/minimist/test/unknown.js  |   102 +
 .../node_modules/minimist/test/whitespace.js    |     8 +
 node_modules/meow/package.json                  |    94 +
 node_modules/mime-db/HISTORY.md                 |   368 +
 node_modules/mime-db/db.json                    |  7088 +++++
 node_modules/mime-db/index.js                   |    11 +
 node_modules/mime-db/package.json               |   104 +
 node_modules/mime-types/HISTORY.md              |   260 +
 node_modules/mime-types/index.js                |   188 +
 node_modules/mime-types/package.json            |    93 +
 node_modules/mimic-response/index.js            |    33 +
 node_modules/mimic-response/package.json        |    74 +
 node_modules/minimatch/.npmignore               |     1 +
 node_modules/minimatch/minimatch.js             |  1055 +
 node_modules/minimatch/package.json             |    66 +
 node_modules/minimatch/test/basic.js            |   399 +
 node_modules/minimatch/test/brace-expand.js     |    33 +
 node_modules/minimatch/test/caching.js          |    14 +
 node_modules/minimatch/test/defaults.js         |   274 +
 .../test/extglob-ending-with-state-char.js      |     8 +
 node_modules/minimist/.travis.yml               |     4 +
 node_modules/minimist/example/parse.js          |     2 +
 node_modules/minimist/index.js                  |   187 +
 node_modules/minimist/package.json              |    75 +
 node_modules/minimist/readme.markdown           |    73 +
 node_modules/minimist/test/dash.js              |    24 +
 node_modules/minimist/test/default_bool.js      |    20 +
 node_modules/minimist/test/dotted.js            |    16 +
 node_modules/minimist/test/long.js              |    31 +
 node_modules/minimist/test/parse.js             |   318 +
 node_modules/minimist/test/parse_modified.js    |     9 +
 node_modules/minimist/test/short.js             |    67 +
 node_modules/minimist/test/whitespace.js        |     8 +
 node_modules/mkdirp/.travis.yml                 |     8 +
 node_modules/mkdirp/bin/cmd.js                  |    33 +
 node_modules/mkdirp/bin/usage.txt               |    12 +
 node_modules/mkdirp/examples/pow.js             |     6 +
 node_modules/mkdirp/index.js                    |    98 +
 node_modules/mkdirp/package.json                |    70 +
 node_modules/mkdirp/readme.markdown             |   100 +
 node_modules/mkdirp/test/chmod.js               |    41 +
 node_modules/mkdirp/test/clobber.js             |    38 +
 node_modules/mkdirp/test/mkdirp.js              |    28 +
 node_modules/mkdirp/test/opts_fs.js             |    29 +
 node_modules/mkdirp/test/opts_fs_sync.js        |    27 +
 node_modules/mkdirp/test/perm.js                |    32 +
 node_modules/mkdirp/test/perm_sync.js           |    36 +
 node_modules/mkdirp/test/race.js                |    37 +
 node_modules/mkdirp/test/rel.js                 |    32 +
 node_modules/mkdirp/test/return.js              |    25 +
 node_modules/mkdirp/test/return_sync.js         |    24 +
 node_modules/mkdirp/test/root.js                |    19 +
 node_modules/mkdirp/test/sync.js                |    32 +
 node_modules/mkdirp/test/umask.js               |    28 +
 node_modules/mkdirp/test/umask_sync.js          |    32 +
 node_modules/multimatch/index.js                |    27 +
 .../node_modules/minimatch/minimatch.js         |   923 +
 .../node_modules/minimatch/package.json         |    67 +
 node_modules/multimatch/package.json            |    88 +
 node_modules/nan/CHANGELOG.md                   |   492 +
 node_modules/nan/LICENSE.md                     |    13 +
 node_modules/nan/doc/asyncworker.md             |   146 +
 node_modules/nan/doc/buffers.md                 |    54 +
 node_modules/nan/doc/callback.md                |    76 +
 node_modules/nan/doc/converters.md              |    41 +
 node_modules/nan/doc/errors.md                  |   226 +
 node_modules/nan/doc/json.md                    |    62 +
 node_modules/nan/doc/maybe_types.md             |   583 +
 node_modules/nan/doc/methods.md                 |   659 +
 node_modules/nan/doc/new.md                     |   147 +
 node_modules/nan/doc/node_misc.md               |   123 +
 node_modules/nan/doc/object_wrappers.md         |   263 +
 node_modules/nan/doc/persistent.md              |   295 +
 node_modules/nan/doc/scopes.md                  |    73 +
 node_modules/nan/doc/script.md                  |    38 +
 node_modules/nan/doc/string_bytes.md            |    62 +
 node_modules/nan/doc/v8_internals.md            |   199 +
 node_modules/nan/doc/v8_misc.md                 |    85 +
 node_modules/nan/include_dirs.js                |     1 +
 node_modules/nan/nan.h                          |  2761 ++
 node_modules/nan/nan_callbacks.h                |    88 +
 node_modules/nan/nan_callbacks_12_inl.h         |   512 +
 node_modules/nan/nan_callbacks_pre_12_inl.h     |   520 +
 node_modules/nan/nan_converters.h               |    72 +
 node_modules/nan/nan_converters_43_inl.h        |    48 +
 node_modules/nan/nan_converters_pre_43_inl.h    |    42 +
 .../nan/nan_define_own_property_helper.h        |    29 +
 node_modules/nan/nan_implementation_12_inl.h    |   399 +
 .../nan/nan_implementation_pre_12_inl.h         |   263 +
 node_modules/nan/nan_json.h                     |   166 +
 node_modules/nan/nan_maybe_43_inl.h             |   369 +
 node_modules/nan/nan_maybe_pre_43_inl.h         |   316 +
 node_modules/nan/nan_new.h                      |   340 +
 node_modules/nan/nan_object_wrap.h              |   155 +
 node_modules/nan/nan_persistent_12_inl.h        |   132 +
 node_modules/nan/nan_persistent_pre_12_inl.h    |   242 +
 node_modules/nan/nan_private.h                  |    73 +
 node_modules/nan/nan_string_bytes.h             |   305 +
 node_modules/nan/nan_typedarray_contents.h      |    90 +
 node_modules/nan/nan_weak.h                     |   432 +
 node_modules/nan/package.json                   |   102 +
 node_modules/nan/tools/1to2.js                  |   412 +
 node_modules/nan/tools/package.json             |    19 +
 node_modules/node-abi/.travis.yml               |    24 +
 node_modules/node-abi/CODE_OF_CONDUCT.md        |    73 +
 node_modules/node-abi/CONTRIBUTING.md           |    53 +
 node_modules/node-abi/index.js                  |   110 +
 node_modules/node-abi/package.json              |    69 +
 node_modules/node-abi/test/index.js             |   151 +
 node_modules/node-gyp/.jshintrc                 |     7 +
 node_modules/node-gyp/.npmignore                |     3 +
 node_modules/node-gyp/CHANGELOG.md              |   176 +
 node_modules/node-gyp/addon.gypi                |   133 +
 node_modules/node-gyp/bin/node-gyp.js           |   148 +
 node_modules/node-gyp/gyp/.npmignore            |     1 +
 node_modules/node-gyp/gyp/AUTHORS               |    12 +
 node_modules/node-gyp/gyp/DEPS                  |    24 +
 node_modules/node-gyp/gyp/OWNERS                |     1 +
 node_modules/node-gyp/gyp/PRESUBMIT.py          |   137 +
 .../node-gyp/gyp/buildbot/aosp_manifest.xml     |   466 +
 .../node-gyp/gyp/buildbot/buildbot_run.py       |   136 +
 .../node-gyp/gyp/buildbot/commit_queue/OWNERS   |     6 +
 .../node-gyp/gyp/buildbot/commit_queue/README   |     3 +
 .../gyp/buildbot/commit_queue/cq_config.json    |    15 +
 node_modules/node-gyp/gyp/codereview.settings   |    10 +
 .../node-gyp/gyp/data/win/large-pdb-shim.cc     |    12 +
 node_modules/node-gyp/gyp/gyp                   |     8 +
 node_modules/node-gyp/gyp/gyp.bat               |     5 +
 node_modules/node-gyp/gyp/gyp_main.py           |    16 +
 node_modules/node-gyp/gyp/gyptest.py            |   274 +
 node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py  |   340 +
 .../node-gyp/gyp/pylib/gyp/MSVSProject.py       |   208 +
 .../node-gyp/gyp/pylib/gyp/MSVSSettings.py      |  1096 +
 .../node-gyp/gyp/pylib/gyp/MSVSSettings_test.py |  1483 +
 .../node-gyp/gyp/pylib/gyp/MSVSToolFile.py      |    58 +
 .../node-gyp/gyp/pylib/gyp/MSVSUserFile.py      |   147 +
 node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py |   270 +
 .../node-gyp/gyp/pylib/gyp/MSVSVersion.py       |   443 +
 node_modules/node-gyp/gyp/pylib/gyp/__init__.py |   548 +
 node_modules/node-gyp/gyp/pylib/gyp/common.py   |   608 +
 .../node-gyp/gyp/pylib/gyp/common_test.py       |    72 +
 node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py |   162 +
 .../node-gyp/gyp/pylib/gyp/easy_xml_test.py     |   103 +
 .../node-gyp/gyp/pylib/gyp/flock_tool.py        |    54 +
 .../gyp/pylib/gyp/generator/__init__.py         |     0
 .../gyp/pylib/gyp/generator/analyzer.py         |   741 +
 .../node-gyp/gyp/pylib/gyp/generator/android.py |  1095 +
 .../node-gyp/gyp/pylib/gyp/generator/cmake.py   |  1221 +
 .../pylib/gyp/generator/dump_dependency_json.py |    99 +
 .../node-gyp/gyp/pylib/gyp/generator/eclipse.py |   425 +
 .../node-gyp/gyp/pylib/gyp/generator/gypd.py    |    94 +
 .../node-gyp/gyp/pylib/gyp/generator/gypsh.py   |    56 +
 .../node-gyp/gyp/pylib/gyp/generator/make.py    |  2220 ++
 .../node-gyp/gyp/pylib/gyp/generator/msvs.py    |  3494 +++
 .../gyp/pylib/gyp/generator/msvs_test.py        |    37 +
 .../node-gyp/gyp/pylib/gyp/generator/ninja.py   |  2410 ++
 .../gyp/pylib/gyp/generator/ninja_test.py       |    47 +
 .../node-gyp/gyp/pylib/gyp/generator/xcode.py   |  1300 +
 .../gyp/pylib/gyp/generator/xcode_test.py       |    23 +
 node_modules/node-gyp/gyp/pylib/gyp/input.py    |  2897 ++
 .../node-gyp/gyp/pylib/gyp/input_test.py        |    90 +
 node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py |   610 +
 .../node-gyp/gyp/pylib/gyp/msvs_emulation.py    |  1087 +
 .../node-gyp/gyp/pylib/gyp/ninja_syntax.py      |   160 +
 .../node-gyp/gyp/pylib/gyp/ordered_dict.py      |   289 +
 .../node-gyp/gyp/pylib/gyp/simple_copy.py       |    46 +
 node_modules/node-gyp/gyp/pylib/gyp/win_tool.py |   314 +
 .../node-gyp/gyp/pylib/gyp/xcode_emulation.py   |  1629 +
 .../node-gyp/gyp/pylib/gyp/xcode_ninja.py       |   270 +
 .../node-gyp/gyp/pylib/gyp/xcodeproj_file.py    |  2927 ++
 node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py  |    69 +
 node_modules/node-gyp/gyp/samples/samples       |    81 +
 node_modules/node-gyp/gyp/samples/samples.bat   |     5 +
 node_modules/node-gyp/gyp/setup.py              |    19 +
 node_modules/node-gyp/gyp/tools/README          |    15 +
 node_modules/node-gyp/gyp/tools/Xcode/README    |     5 +
 .../tools/Xcode/Specifications/gyp.pbfilespec   |    27 +
 .../tools/Xcode/Specifications/gyp.xclangspec   |   226 +
 node_modules/node-gyp/gyp/tools/emacs/README    |    12 +
 .../node-gyp/gyp/tools/emacs/gyp-tests.el       |    63 +
 node_modules/node-gyp/gyp/tools/emacs/gyp.el    |   275 +
 .../node-gyp/gyp/tools/emacs/run-unit-tests.sh  |     7 +
 .../node-gyp/gyp/tools/emacs/testdata/media.gyp |  1105 +
 .../tools/emacs/testdata/media.gyp.fontified    |  1107 +
 node_modules/node-gyp/gyp/tools/graphviz.py     |   100 +
 node_modules/node-gyp/gyp/tools/pretty_gyp.py   |   155 +
 node_modules/node-gyp/gyp/tools/pretty_sln.py   |   169 +
 .../node-gyp/gyp/tools/pretty_vcproj.py         |   329 +
 node_modules/node-gyp/lib/Find-VS2017.cs        |   271 +
 node_modules/node-gyp/lib/build.js              |   266 +
 node_modules/node-gyp/lib/clean.js              |    22 +
 node_modules/node-gyp/lib/configure.js          |   523 +
 .../node-gyp/lib/find-node-directory.js         |    61 +
 node_modules/node-gyp/lib/find-vs2017.js        |    46 +
 node_modules/node-gyp/lib/install.js            |   469 +
 node_modules/node-gyp/lib/list.js               |    33 +
 node_modules/node-gyp/lib/node-gyp.js           |   216 +
 node_modules/node-gyp/lib/process-release.js    |   155 +
 node_modules/node-gyp/lib/rebuild.js            |    14 +
 node_modules/node-gyp/lib/remove.js             |    52 +
 node_modules/node-gyp/node_modules/.bin/nopt    |     1 +
 node_modules/node-gyp/node_modules/.bin/semver  |     1 +
 .../node-gyp/node_modules/glob/changelog.md     |    67 +
 .../node-gyp/node_modules/glob/common.js        |   240 +
 node_modules/node-gyp/node_modules/glob/glob.js |   790 +
 .../node-gyp/node_modules/glob/package.json     |    80 +
 node_modules/node-gyp/node_modules/glob/sync.js |   486 +
 .../node-gyp/node_modules/graceful-fs/fs.js     |    21 +
 .../node_modules/graceful-fs/graceful-fs.js     |   262 +
 .../node_modules/graceful-fs/legacy-streams.js  |   118 +
 .../node_modules/graceful-fs/package.json       |    80 +
 .../node_modules/graceful-fs/polyfills.js       |   330 +
 .../node_modules/minimatch/minimatch.js         |   923 +
 .../node_modules/minimatch/package.json         |    68 +
 .../node-gyp/node_modules/nopt/.npmignore       |     1 +
 .../node-gyp/node_modules/nopt/.travis.yml      |     9 +
 .../node-gyp/node_modules/nopt/bin/nopt.js      |    54 +
 .../node_modules/nopt/examples/my-program.js    |    30 +
 .../node-gyp/node_modules/nopt/lib/nopt.js      |   415 +
 .../node-gyp/node_modules/nopt/package.json     |    61 +
 .../node-gyp/node_modules/nopt/test/basic.js    |   273 +
 .../node-gyp/node_modules/semver/bin/semver     |   133 +
 .../node-gyp/node_modules/semver/package.json   |    58 +
 .../node-gyp/node_modules/semver/range.bnf      |    16 +
 .../node-gyp/node_modules/semver/semver.js      |  1203 +
 node_modules/node-gyp/package.json              |   100 +
 .../node-gyp/src/win_delay_load_hook.cc         |    36 +
 node_modules/node-gyp/test/docker.sh            |   164 +
 .../node-gyp/test/fixtures/ca-bundle.crt        |    40 +
 node_modules/node-gyp/test/fixtures/ca.crt      |    21 +
 node_modules/node-gyp/test/fixtures/server.crt  |    19 +
 node_modules/node-gyp/test/fixtures/server.key  |    28 +
 node_modules/node-gyp/test/simple-proxy.js      |    24 +
 node_modules/node-gyp/test/test-addon.js        |    28 +
 .../node-gyp/test/test-configure-python.js      |    74 +
 node_modules/node-gyp/test/test-download.js     |   102 +
 .../node-gyp/test/test-find-accessible-sync.js  |    86 +
 .../node-gyp/test/test-find-node-directory.js   |   115 +
 node_modules/node-gyp/test/test-find-python.js  |   339 +
 node_modules/node-gyp/test/test-options.js      |    25 +
 .../node-gyp/test/test-process-release.js       |   637 +
 node_modules/node-sass/CHANGELOG.md             |   204 +
 node_modules/node-sass/bin/emcc                 |    12 +
 node_modules/node-sass/bin/node-sass            |   406 +
 node_modules/node-sass/binding.gyp              |    91 +
 node_modules/node-sass/lib/binding.js           |    20 +
 node_modules/node-sass/lib/errors.js            |    49 +
 node_modules/node-sass/lib/extensions.js        |   458 +
 node_modules/node-sass/lib/index.js             |   475 +
 node_modules/node-sass/lib/render.js            |   121 +
 node_modules/node-sass/lib/watcher.js           |    93 +
 .../node-sass/node_modules/.bin/har-validator   |     1 +
 .../node-sass/node_modules/assert-plus/AUTHORS  |     6 +
 .../node_modules/assert-plus/CHANGES.md         |     8 +
 .../node_modules/assert-plus/assert.js          |   206 +
 .../node_modules/assert-plus/package.json       |    86 +
 .../node-sass/node_modules/aws-sign2/index.js   |   212 +
 .../node_modules/aws-sign2/package.json         |    54 +
 .../node-sass/node_modules/boom/.npmignore      |    18 +
 .../node-sass/node_modules/boom/.travis.yml     |     8 +
 .../node-sass/node_modules/boom/CONTRIBUTING.md |     1 +
 .../node-sass/node_modules/boom/images/boom.png |   Bin 0 -> 29479 bytes
 .../node-sass/node_modules/boom/lib/index.js    |   318 +
 .../node-sass/node_modules/boom/package.json    |    63 +
 .../node-sass/node_modules/boom/test/index.js   |   654 +
 .../node-sass/node_modules/caseless/index.js    |    66 +
 .../node_modules/caseless/package.json          |    60 +
 .../node-sass/node_modules/caseless/test.js     |    40 +
 .../node-sass/node_modules/cryptiles/.npmignore |    18 +
 .../node_modules/cryptiles/.travis.yml          |     8 +
 .../node_modules/cryptiles/lib/index.js         |    68 +
 .../node_modules/cryptiles/package.json         |    63 +
 .../node_modules/cryptiles/test/index.js        |   102 +
 .../node_modules/form-data/lib/browser.js       |     2 +
 .../node_modules/form-data/lib/form_data.js     |   444 +
 .../node_modules/form-data/lib/populate.js      |    10 +
 .../node_modules/form-data/package.json         |   102 +
 .../node-sass/node_modules/glob/changelog.md    |    67 +
 .../node-sass/node_modules/glob/common.js       |   240 +
 .../node-sass/node_modules/glob/glob.js         |   790 +
 .../node-sass/node_modules/glob/package.json    |    80 +
 .../node-sass/node_modules/glob/sync.js         |   486 +
 .../har-validator/bin/har-validator             |    56 +
 .../node_modules/har-validator/lib/async.js     |    14 +
 .../node_modules/har-validator/lib/error.js     |    10 +
 .../node_modules/har-validator/lib/index.js     |    22 +
 .../node_modules/har-validator/lib/runner.js    |    29 +
 .../har-validator/lib/schemas/cache.json        |    13 +
 .../har-validator/lib/schemas/cacheEntry.json   |    31 +
 .../har-validator/lib/schemas/content.json      |    27 +
 .../har-validator/lib/schemas/cookie.json       |    34 +
 .../har-validator/lib/schemas/creator.json      |    18 +
 .../har-validator/lib/schemas/entry.json        |    51 +
 .../har-validator/lib/schemas/har.json          |    11 +
 .../har-validator/lib/schemas/index.js          |    49 +
 .../har-validator/lib/schemas/log.json          |    34 +
 .../har-validator/lib/schemas/page.json         |    30 +
 .../har-validator/lib/schemas/pageTimings.json  |    16 +
 .../har-validator/lib/schemas/postData.json     |    41 +
 .../har-validator/lib/schemas/record.json       |    18 +
 .../har-validator/lib/schemas/request.json      |    55 +
 .../har-validator/lib/schemas/response.json     |    52 +
 .../har-validator/lib/schemas/timings.json      |    40 +
 .../node_modules/har-validator/package.json     |    93 +
 .../node-sass/node_modules/hawk/.npmignore      |    20 +
 .../node-sass/node_modules/hawk/.travis.yml     |     5 +
 .../node-sass/node_modules/hawk/bower.json      |    24 +
 .../node-sass/node_modules/hawk/component.json  |    19 +
 .../node-sass/node_modules/hawk/dist/client.js  |   343 +
 .../node_modules/hawk/example/usage.js          |    78 +
 .../node-sass/node_modules/hawk/images/hawk.png |   Bin 0 -> 6945 bytes
 .../node-sass/node_modules/hawk/images/logo.png |   Bin 0 -> 71732 bytes
 .../node-sass/node_modules/hawk/lib/browser.js  |   637 +
 .../node-sass/node_modules/hawk/lib/client.js   |   369 +
 .../node-sass/node_modules/hawk/lib/crypto.js   |   126 +
 .../node-sass/node_modules/hawk/lib/index.js    |    15 +
 .../node-sass/node_modules/hawk/lib/server.js   |   548 +
 .../node-sass/node_modules/hawk/lib/utils.js    |   184 +
 .../node-sass/node_modules/hawk/package.json    |    74 +
 .../node-sass/node_modules/hawk/test/browser.js |  1492 +
 .../node-sass/node_modules/hawk/test/client.js  |   440 +
 .../node-sass/node_modules/hawk/test/crypto.js  |    70 +
 .../node-sass/node_modules/hawk/test/index.js   |   378 +
 .../node-sass/node_modules/hawk/test/readme.js  |    95 +
 .../node-sass/node_modules/hawk/test/server.js  |  1329 +
 .../node-sass/node_modules/hawk/test/uri.js     |   838 +
 .../node-sass/node_modules/hawk/test/utils.js   |   149 +
 .../node-sass/node_modules/hoek/.npmignore      |    18 +
 .../node-sass/node_modules/hoek/.travis.yml     |     7 +
 .../node-sass/node_modules/hoek/CONTRIBUTING.md |     1 +
 .../node-sass/node_modules/hoek/images/hoek.png |   Bin 0 -> 37939 bytes
 .../node-sass/node_modules/hoek/lib/escape.js   |   132 +
 .../node-sass/node_modules/hoek/lib/index.js    |   993 +
 .../node-sass/node_modules/hoek/package.json    |    61 +
 .../node-sass/node_modules/hoek/test/escaper.js |    88 +
 .../node-sass/node_modules/hoek/test/index.js   |  2513 ++
 .../node_modules/hoek/test/modules/ignore.txt   |     0
 .../node_modules/hoek/test/modules/test1.js     |     1 +
 .../node_modules/hoek/test/modules/test2.js     |     1 +
 .../node_modules/hoek/test/modules/test3.js     |     1 +
 .../node_modules/http-signature/.dir-locals.el  |     6 +
 .../node_modules/http-signature/.npmignore      |     7 +
 .../node_modules/http-signature/CHANGES.md      |    46 +
 .../node_modules/http-signature/http_signing.md |   363 +
 .../node_modules/http-signature/lib/index.js    |    29 +
 .../node_modules/http-signature/lib/parser.js   |   318 +
 .../node_modules/http-signature/lib/signer.js   |   399 +
 .../node_modules/http-signature/lib/utils.js    |   112 +
 .../node_modules/http-signature/lib/verify.js   |    88 +
 .../node_modules/http-signature/package.json    |    81 +
 .../node_modules/minimatch/minimatch.js         |   923 +
 .../node_modules/minimatch/package.json         |    67 +
 .../node-sass/node_modules/qs/.eslintignore     |     1 +
 .../node-sass/node_modules/qs/.eslintrc         |    19 +
 .../node-sass/node_modules/qs/CHANGELOG.md      |   163 +
 .../node-sass/node_modules/qs/dist/qs.js        |   590 +
 .../node-sass/node_modules/qs/lib/formats.js    |    18 +
 .../node-sass/node_modules/qs/lib/index.js      |    11 +
 .../node-sass/node_modules/qs/lib/parse.js      |   167 +
 .../node-sass/node_modules/qs/lib/stringify.js  |   200 +
 .../node-sass/node_modules/qs/lib/utils.js      |   182 +
 .../node-sass/node_modules/qs/package.json      |    82 +
 .../node-sass/node_modules/qs/test/.eslintrc    |    10 +
 .../node-sass/node_modules/qs/test/index.js     |     7 +
 .../node-sass/node_modules/qs/test/parse.js     |   519 +
 .../node-sass/node_modules/qs/test/stringify.js |   538 +
 .../node-sass/node_modules/qs/test/utils.js     |    22 +
 .../node-sass/node_modules/request/CHANGELOG.md |   662 +
 .../node-sass/node_modules/request/index.js     |   156 +
 .../node-sass/node_modules/request/lib/auth.js  |   168 +
 .../node_modules/request/lib/cookies.js         |    39 +
 .../node_modules/request/lib/getProxyFromURI.js |    79 +
 .../node-sass/node_modules/request/lib/har.js   |   215 +
 .../node_modules/request/lib/helpers.js         |    65 +
 .../node_modules/request/lib/multipart.js       |   112 +
 .../node-sass/node_modules/request/lib/oauth.js |   147 +
 .../node_modules/request/lib/querystring.js     |    51 +
 .../node_modules/request/lib/redirect.js        |   157 +
 .../node_modules/request/lib/tunnel.js          |   176 +
 .../node-sass/node_modules/request/package.json |   120 +
 .../node-sass/node_modules/request/request.js   |  1475 +
 .../node-sass/node_modules/sntp/.npmignore      |    18 +
 .../node-sass/node_modules/sntp/.travis.yml     |     5 +
 .../node-sass/node_modules/sntp/Makefile        |     9 +
 .../node_modules/sntp/examples/offset.js        |    16 +
 .../node_modules/sntp/examples/time.js          |    25 +
 .../node-sass/node_modules/sntp/index.js        |     1 +
 .../node-sass/node_modules/sntp/lib/index.js    |   412 +
 .../node-sass/node_modules/sntp/package.json    |    72 +
 .../node-sass/node_modules/sntp/test/index.js   |   435 +
 .../node_modules/tunnel-agent/index.js          |   243 +
 .../node_modules/tunnel-agent/package.json      |    57 +
 node_modules/node-sass/package.json             |   146 +
 node_modules/node-sass/src/binding.cpp          |   347 +
 node_modules/node-sass/src/callback_bridge.h    |   226 +
 node_modules/node-sass/src/create_string.cpp    |    21 +
 node_modules/node-sass/src/create_string.h      |     8 +
 .../node-sass/src/custom_function_bridge.cpp    |    27 +
 .../node-sass/src/custom_function_bridge.h      |    18 +
 .../node-sass/src/custom_importer_bridge.cpp    |   103 +
 .../node-sass/src/custom_importer_bridge.h      |    22 +
 node_modules/node-sass/src/libsass.gyp          |   114 +
 .../node-sass/src/libsass/.editorconfig         |    15 +
 .../node-sass/src/libsass/.gitattributes        |     2 +
 node_modules/node-sass/src/libsass/.npmignore   |    85 +
 node_modules/node-sass/src/libsass/.travis.yml  |    64 +
 node_modules/node-sass/src/libsass/COPYING      |    25 +
 .../node-sass/src/libsass/GNUmakefile.am        |    88 +
 node_modules/node-sass/src/libsass/INSTALL      |     1 +
 node_modules/node-sass/src/libsass/Makefile     |   351 +
 .../node-sass/src/libsass/Makefile.conf         |    55 +
 node_modules/node-sass/src/libsass/SECURITY.md  |    10 +
 node_modules/node-sass/src/libsass/appveyor.yml |    91 +
 node_modules/node-sass/src/libsass/configure.ac |   138 +
 .../node-sass/src/libsass/contrib/libsass.spec  |    66 +
 .../node-sass/src/libsass/contrib/plugin.cpp    |    60 +
 .../src/libsass/docs/api-context-example.md     |    45 +
 .../src/libsass/docs/api-context-internal.md    |   163 +
 .../node-sass/src/libsass/docs/api-context.md   |   295 +
 .../node-sass/src/libsass/docs/api-doc.md       |   215 +
 .../src/libsass/docs/api-function-example.md    |    67 +
 .../src/libsass/docs/api-function-internal.md   |     8 +
 .../node-sass/src/libsass/docs/api-function.md  |    74 +
 .../src/libsass/docs/api-importer-example.md    |   112 +
 .../src/libsass/docs/api-importer-internal.md   |    20 +
 .../node-sass/src/libsass/docs/api-importer.md  |    86 +
 .../src/libsass/docs/api-value-example.md       |    55 +
 .../src/libsass/docs/api-value-internal.md      |    76 +
 .../node-sass/src/libsass/docs/api-value.md     |   154 +
 .../src/libsass/docs/build-on-darwin.md         |    27 +
 .../src/libsass/docs/build-on-gentoo.md         |    55 +
 .../src/libsass/docs/build-on-windows.md        |   139 +
 .../src/libsass/docs/build-shared-library.md    |    35 +
 .../src/libsass/docs/build-with-autotools.md    |    78 +
 .../src/libsass/docs/build-with-makefiles.md    |    68 +
 .../src/libsass/docs/build-with-mingw.md        |   107 +
 .../libsass/docs/build-with-visual-studio.md    |    90 +
 .../node-sass/src/libsass/docs/build.md         |    97 +
 .../src/libsass/docs/compatibility-plan.md      |    48 +
 .../node-sass/src/libsass/docs/contributing.md  |    17 +
 .../libsass/docs/custom-functions-internal.md   |   122 +
 .../src/libsass/docs/dev-ast-memory.md          |   223 +
 .../src/libsass/docs/implementations.md         |    56 +
 .../node-sass/src/libsass/docs/plugins.md       |    47 +
 .../src/libsass/docs/setup-environment.md       |    68 +
 .../src/libsass/docs/source-map-internals.md    |    51 +
 .../node-sass/src/libsass/docs/trace.md         |    26 +
 .../node-sass/src/libsass/docs/triage.md        |    17 +
 .../node-sass/src/libsass/docs/unicode.md       |    39 +
 node_modules/node-sass/src/libsass/extconf.rb   |     6 +
 .../node-sass/src/libsass/include/sass.h        |    15 +
 .../node-sass/src/libsass/include/sass/base.h   |    89 +
 .../src/libsass/include/sass/context.h          |   170 +
 .../src/libsass/include/sass/functions.h        |   139 +
 .../node-sass/src/libsass/include/sass/values.h |   145 +
 .../src/libsass/include/sass/version.h          |    12 +
 .../src/libsass/include/sass/version.h.in       |    12 +
 .../node-sass/src/libsass/include/sass2scss.h   |   120 +
 node_modules/node-sass/src/libsass/m4/.gitkeep  |     0
 .../libsass/m4/m4-ax_cxx_compile_stdcxx_11.m4   |   167 +
 .../node-sass/src/libsass/res/resource.rc       |    35 +
 .../node-sass/src/libsass/script/bootstrap      |    13 +
 .../node-sass/src/libsass/script/branding       |    10 +
 .../src/libsass/script/ci-build-libsass         |   134 +
 .../src/libsass/script/ci-build-plugin          |    62 +
 .../src/libsass/script/ci-install-compiler      |     6 +
 .../src/libsass/script/ci-install-deps          |    20 +
 .../src/libsass/script/ci-report-coverage       |    42 +
 node_modules/node-sass/src/libsass/script/spec  |     5 +
 .../node-sass/src/libsass/script/tap-driver     |   652 +
 .../node-sass/src/libsass/script/tap-runner     |     1 +
 .../node-sass/src/libsass/script/test-leaks.pl  |   103 +
 .../node-sass/src/libsass/src/GNUmakefile.am    |    54 +
 node_modules/node-sass/src/libsass/src/ast.cpp  |  2226 ++
 node_modules/node-sass/src/libsass/src/ast.hpp  |  3049 ++
 .../src/libsass/src/ast_def_macros.hpp          |    80 +
 .../node-sass/src/libsass/src/ast_fwd_decl.cpp  |    29 +
 .../node-sass/src/libsass/src/ast_fwd_decl.hpp  |   463 +
 .../node-sass/src/libsass/src/b64/cencode.h     |    32 +
 .../node-sass/src/libsass/src/b64/encode.h      |    79 +
 .../node-sass/src/libsass/src/backtrace.cpp     |    46 +
 .../node-sass/src/libsass/src/backtrace.hpp     |    29 +
 .../node-sass/src/libsass/src/base64vlq.cpp     |    44 +
 .../node-sass/src/libsass/src/base64vlq.hpp     |    30 +
 node_modules/node-sass/src/libsass/src/bind.cpp |   311 +
 node_modules/node-sass/src/libsass/src/bind.hpp |    13 +
 .../node-sass/src/libsass/src/c99func.c         |    54 +
 .../node-sass/src/libsass/src/cencode.c         |   108 +
 .../node-sass/src/libsass/src/check_nesting.cpp |   398 +
 .../node-sass/src/libsass/src/check_nesting.hpp |    65 +
 .../node-sass/src/libsass/src/color_maps.cpp    |   648 +
 .../node-sass/src/libsass/src/color_maps.hpp    |   331 +
 .../node-sass/src/libsass/src/constants.cpp     |   179 +
 .../node-sass/src/libsass/src/constants.hpp     |   181 +
 .../node-sass/src/libsass/src/context.cpp       |   880 +
 .../node-sass/src/libsass/src/context.hpp       |   152 +
 .../node-sass/src/libsass/src/cssize.cpp        |   606 +
 .../node-sass/src/libsass/src/cssize.hpp        |    77 +
 .../node-sass/src/libsass/src/debug.hpp         |    43 +
 .../node-sass/src/libsass/src/debugger.hpp      |   800 +
 .../node-sass/src/libsass/src/emitter.cpp       |   297 +
 .../node-sass/src/libsass/src/emitter.hpp       |    99 +
 .../node-sass/src/libsass/src/environment.cpp   |   246 +
 .../node-sass/src/libsass/src/environment.hpp   |   113 +
 .../src/libsass/src/error_handling.cpp          |   235 +
 .../src/libsass/src/error_handling.hpp          |   216 +
 node_modules/node-sass/src/libsass/src/eval.cpp |  1678 +
 node_modules/node-sass/src/libsass/src/eval.hpp |   103 +
 .../node-sass/src/libsass/src/expand.cpp        |   816 +
 .../node-sass/src/libsass/src/expand.hpp        |    82 +
 .../node-sass/src/libsass/src/extend.cpp        |  2130 ++
 .../node-sass/src/libsass/src/extend.hpp        |    86 +
 node_modules/node-sass/src/libsass/src/file.cpp |   485 +
 node_modules/node-sass/src/libsass/src/file.hpp |   133 +
 .../node-sass/src/libsass/src/functions.cpp     |  2234 ++
 .../node-sass/src/libsass/src/functions.hpp     |   198 +
 .../node-sass/src/libsass/src/inspect.cpp       |  1138 +
 .../node-sass/src/libsass/src/inspect.hpp       |   103 +
 node_modules/node-sass/src/libsass/src/json.cpp |  1436 +
 node_modules/node-sass/src/libsass/src/json.hpp |   117 +
 .../src/libsass/src/kwd_arg_macros.hpp          |    28 +
 .../node-sass/src/libsass/src/lexer.cpp         |   181 +
 .../node-sass/src/libsass/src/lexer.hpp         |   315 +
 .../node-sass/src/libsass/src/listize.cpp       |    86 +
 .../node-sass/src/libsass/src/listize.hpp       |    34 +
 .../node-sass/src/libsass/src/mapping.hpp       |    18 +
 .../src/libsass/src/memory/SharedPtr.cpp        |   114 +
 .../src/libsass/src/memory/SharedPtr.hpp        |   206 +
 node_modules/node-sass/src/libsass/src/node.cpp |   319 +
 node_modules/node-sass/src/libsass/src/node.hpp |   118 +
 .../node-sass/src/libsass/src/operation.hpp     |   173 +
 .../node-sass/src/libsass/src/operators.cpp     |   240 +
 .../node-sass/src/libsass/src/operators.hpp     |    30 +
 .../node-sass/src/libsass/src/output.cpp        |   336 +
 .../node-sass/src/libsass/src/output.hpp        |    54 +
 .../node-sass/src/libsass/src/parser.cpp        |  3121 ++
 .../node-sass/src/libsass/src/parser.hpp        |   398 +
 .../node-sass/src/libsass/src/paths.hpp         |    71 +
 .../node-sass/src/libsass/src/plugins.cpp       |   184 +
 .../node-sass/src/libsass/src/plugins.hpp       |    57 +
 .../node-sass/src/libsass/src/position.cpp      |   181 +
 .../node-sass/src/libsass/src/position.hpp      |   124 +
 .../node-sass/src/libsass/src/prelexer.cpp      |  1774 ++
 .../node-sass/src/libsass/src/prelexer.hpp      |   484 +
 .../src/libsass/src/remove_placeholders.cpp     |    84 +
 .../src/libsass/src/remove_placeholders.hpp     |    35 +
 node_modules/node-sass/src/libsass/src/sass.cpp |   149 +
 node_modules/node-sass/src/libsass/src/sass.hpp |   139 +
 .../node-sass/src/libsass/src/sass2scss.cpp     |   864 +
 .../node-sass/src/libsass/src/sass_context.cpp  |   769 +
 .../node-sass/src/libsass/src/sass_context.hpp  |   129 +
 .../src/libsass/src/sass_functions.cpp          |   207 +
 .../src/libsass/src/sass_functions.hpp          |    50 +
 .../node-sass/src/libsass/src/sass_util.cpp     |   149 +
 .../node-sass/src/libsass/src/sass_util.hpp     |   256 +
 .../node-sass/src/libsass/src/sass_values.cpp   |   357 +
 .../node-sass/src/libsass/src/sass_values.hpp   |    82 +
 .../node-sass/src/libsass/src/source_map.cpp    |   195 +
 .../node-sass/src/libsass/src/source_map.hpp    |    62 +
 .../node-sass/src/libsass/src/subset_map.cpp    |    55 +
 .../node-sass/src/libsass/src/subset_map.hpp    |    76 +
 .../src/libsass/src/support/libsass.pc.in       |    11 +
 node_modules/node-sass/src/libsass/src/to_c.cpp |    74 +
 node_modules/node-sass/src/libsass/src/to_c.hpp |    39 +
 .../node-sass/src/libsass/src/to_value.cpp      |   112 +
 .../node-sass/src/libsass/src/to_value.hpp      |    50 +
 .../node-sass/src/libsass/src/units.cpp         |   501 +
 .../node-sass/src/libsass/src/units.hpp         |   109 +
 node_modules/node-sass/src/libsass/src/utf8.h   |    34 +
 .../node-sass/src/libsass/src/utf8/checked.h    |   334 +
 .../node-sass/src/libsass/src/utf8/core.h       |   329 +
 .../node-sass/src/libsass/src/utf8/unchecked.h  |   235 +
 .../node-sass/src/libsass/src/utf8_string.cpp   |   102 +
 .../node-sass/src/libsass/src/utf8_string.hpp   |    37 +
 node_modules/node-sass/src/libsass/src/util.cpp |   733 +
 node_modules/node-sass/src/libsass/src/util.hpp |    61 +
 .../node-sass/src/libsass/src/values.cpp        |   131 +
 .../node-sass/src/libsass/src/values.hpp        |    12 +
 .../node-sass/src/libsass/test/test_node.cpp    |    94 +
 .../node-sass/src/libsass/test/test_paths.cpp   |    28 +
 .../libsass/test/test_selector_difference.cpp   |    25 +
 .../src/libsass/test/test_specificity.cpp       |    25 +
 .../src/libsass/test/test_subset_map.cpp        |   472 +
 .../src/libsass/test/test_superselector.cpp     |    69 +
 .../src/libsass/test/test_unification.cpp       |    31 +
 node_modules/node-sass/src/libsass/version.sh   |    10 +
 .../node-sass/src/libsass/win/libsass.sln       |    39 +
 .../src/libsass/win/libsass.sln.DotSettings     |     9 +
 .../node-sass/src/libsass/win/libsass.targets   |   118 +
 .../node-sass/src/libsass/win/libsass.vcxproj   |   188 +
 .../src/libsass/win/libsass.vcxproj.filters     |   357 +
 .../node-sass/src/sass_context_wrapper.cpp      |    64 +
 .../node-sass/src/sass_context_wrapper.h        |    56 +
 .../node-sass/src/sass_types/boolean.cpp        |    73 +
 node_modules/node-sass/src/sass_types/boolean.h |    31 +
 node_modules/node-sass/src/sass_types/color.cpp |   127 +
 node_modules/node-sass/src/sass_types/color.h   |    34 +
 node_modules/node-sass/src/sass_types/error.cpp |    24 +
 node_modules/node-sass/src/sass_types/error.h   |    19 +
 .../node-sass/src/sass_types/factory.cpp        |    72 +
 node_modules/node-sass/src/sass_types/factory.h |    20 +
 node_modules/node-sass/src/sass_types/list.cpp  |   101 +
 node_modules/node-sass/src/sass_types/list.h    |    25 +
 node_modules/node-sass/src/sass_types/map.cpp   |   118 +
 node_modules/node-sass/src/sass_types/map.h     |    25 +
 node_modules/node-sass/src/sass_types/null.cpp  |    57 +
 node_modules/node-sass/src/sass_types/null.h    |    29 +
 .../node-sass/src/sass_types/number.cpp         |    75 +
 node_modules/node-sass/src/sass_types/number.h  |    25 +
 .../src/sass_types/sass_value_wrapper.h         |   101 +
 .../node-sass/src/sass_types/string.cpp         |    48 +
 node_modules/node-sass/src/sass_types/string.h  |    22 +
 node_modules/node-sass/src/sass_types/value.h   |    42 +
 node_modules/node-sass/test/.eslintrc           |     5 +
 node_modules/node-sass/test/api.js              |  1995 ++
 node_modules/node-sass/test/binding.js          |   129 +
 node_modules/node-sass/test/cli.js              |   804 +
 node_modules/node-sass/test/downloadoptions.js  |    74 +
 node_modules/node-sass/test/errors.js           |    53 +
 .../test/fixtures/compressed/expected.css       |     1 +
 .../test/fixtures/compressed/index.scss         |    16 +
 .../custom-functions/setter-expected.css        |     3 +
 .../test/fixtures/custom-functions/setter.scss  |     1 +
 .../string-conversion-expected.css              |     2 +
 .../custom-functions/string-conversion.scss     |     1 +
 .../test/fixtures/cwd-include-path/expected.css |     2 +
 .../test/fixtures/cwd-include-path/outside.scss |     3 +
 .../fixtures/cwd-include-path/root/index.scss   |     1 +
 .../test/fixtures/depth-first/_common.scss      |     6 +
 .../test/fixtures/depth-first/_struct.scss      |     3 +
 .../test/fixtures/depth-first/_vars.scss        |     5 +
 .../node-sass/test/fixtures/depth-first/a.scss  |     7 +
 .../node-sass/test/fixtures/depth-first/a1.scss |     3 +
 .../node-sass/test/fixtures/depth-first/b.scss  |     5 +
 .../node-sass/test/fixtures/depth-first/b1.scss |     3 +
 .../test/fixtures/depth-first/expected.css      |    32 +
 .../test/fixtures/depth-first/index.scss        |     8 +
 .../extras/my_custom_arrays_of_importers.js     |    12 +
 .../extras/my_custom_functions_setter.js        |    10 +
 .../my_custom_functions_string_conversion.js    |     8 +
 .../fixtures/extras/my_custom_importer_data.js  |     5 +
 .../extras/my_custom_importer_data_cb.js        |     5 +
 .../fixtures/extras/my_custom_importer_error.js |     3 +
 .../fixtures/extras/my_custom_importer_file.js  |     7 +
 .../extras/my_custom_importer_file_and_data.js  |     6 +
 .../my_custom_importer_file_and_data_cb.js      |     6 +
 .../extras/my_custom_importer_file_cb.js        |     7 +
 .../test/fixtures/follow/foo/bar/index.scss     |    16 +
 .../test/fixtures/include-files/bar.scss        |     1 +
 .../chained-imports-with-custom-importer.scss   |     1 +
 .../include-files/expected-importer.css         |     5 +
 .../file-not-processed-by-loader.scss           |     1 +
 .../include-files/file-processed-by-loader.scss |     3 +
 .../test/fixtures/include-files/foo.scss        |     1 +
 .../test/fixtures/include-files/index.scss      |     2 +
 .../test/fixtures/include-path/expected.css     |     3 +
 .../include-path/functions/colorBlue.scss       |     3 +
 .../test/fixtures/include-path/index.scss       |     7 +
 .../test/fixtures/include-path/lib/vars.scss    |     1 +
 .../node-sass/test/fixtures/indent/expected.css |     2 +
 .../node-sass/test/fixtures/indent/index.sass   |     3 +
 .../fixtures/input-directory/sass/_skipped.scss |    16 +
 .../input-directory/sass/nested/three.scss      |    16 +
 .../test/fixtures/input-directory/sass/one.scss |    16 +
 .../test/fixtures/input-directory/sass/two.scss |    16 +
 .../node-sass/test/fixtures/invalid/index.scss  |     3 +
 .../test/fixtures/output-directory/index.scss   |    16 +
 .../test/fixtures/precision/expected.css        |     2 +
 .../test/fixtures/precision/index.scss          |     3 +
 .../test/fixtures/sass-path/expected-orange.css |     3 +
 .../test/fixtures/sass-path/expected-red.css    |     3 +
 .../test/fixtures/sass-path/index.scss          |     6 +
 .../test/fixtures/sass-path/orange/colors.scss  |     1 +
 .../test/fixtures/sass-path/red/colors.scss     |     1 +
 .../node-sass/test/fixtures/simple/expected.css |    11 +
 .../node-sass/test/fixtures/simple/index.scss   |    16 +
 .../test/fixtures/source-comments/expected.css  |    15 +
 .../test/fixtures/source-comments/index.scss    |    16 +
 .../test/fixtures/source-map-embed/expected.css |    13 +
 .../test/fixtures/source-map-embed/index.scss   |    16 +
 .../test/fixtures/source-map/expected.css       |    13 +
 .../test/fixtures/source-map/expected.map       |     9 +
 .../test/fixtures/source-map/index.scss         |    16 +
 .../test/fixtures/watcher/main/one.scss         |     5 +
 .../fixtures/watcher/main/partials/_one.scss    |     5 +
 .../fixtures/watcher/main/partials/_three.scss  |     3 +
 .../fixtures/watcher/main/partials/_two.scss    |     5 +
 .../test/fixtures/watcher/main/three.scss       |     3 +
 .../test/fixtures/watcher/main/two.scss         |     3 +
 .../watcher/sibling/partials/_three.scss        |     3 +
 .../test/fixtures/watcher/sibling/three.scss    |     5 +
 .../test/fixtures/watching-dir-01/index.scss    |     1 +
 .../test/fixtures/watching-dir-02/foo.scss      |     1 +
 .../test/fixtures/watching-dir-02/index.scss    |     1 +
 .../node-sass/test/fixtures/watching/bar.sass   |     2 +
 .../node-sass/test/fixtures/watching/index.sass |     1 +
 .../node-sass/test/fixtures/watching/index.scss |     1 +
 .../node-sass/test/fixtures/watching/white.scss |     1 +
 node_modules/node-sass/test/lowlevel.js         |   243 +
 node_modules/node-sass/test/runtime.js          |   185 +
 node_modules/node-sass/test/spec.js             |   192 +
 node_modules/node-sass/test/types.js            |   643 +
 node_modules/node-sass/test/useragent.js        |    15 +
 node_modules/node-sass/test/watcher.js          |   503 +
 .../node-sass/vendor/darwin-x64-59/binding.node |   Bin 0 -> 3339556 bytes
 node_modules/noop-logger/.npmignore             |     1 +
 node_modules/noop-logger/History.md             |    16 +
 node_modules/noop-logger/Makefile               |     8 +
 node_modules/noop-logger/circle.yml             |     9 +
 node_modules/noop-logger/lib/index.js           |    25 +
 node_modules/noop-logger/package.json           |    52 +
 node_modules/noop-logger/test/index.js          |    18 +
 node_modules/nopt/.npmignore                    |     0
 node_modules/nopt/bin/nopt.js                   |    44 +
 node_modules/nopt/examples/my-program.js        |    30 +
 node_modules/nopt/lib/nopt.js                   |   552 +
 node_modules/nopt/package.json                  |    61 +
 node_modules/normalize-package-data/AUTHORS     |     4 +
 .../lib/extract_description.js                  |    14 +
 .../normalize-package-data/lib/fixer.js         |   417 +
 .../normalize-package-data/lib/make_warning.js  |    23 +
 .../normalize-package-data/lib/normalize.js     |    39 +
 .../normalize-package-data/lib/safe_format.js   |     9 +
 .../normalize-package-data/lib/typos.json       |    25 +
 .../lib/warning_messages.json                   |    30 +
 .../normalize-package-data/package.json         |    82 +
 node_modules/normalize-path/index.js            |    19 +
 node_modules/normalize-path/package.json        |   122 +
 node_modules/npmlog/CHANGELOG.md                |    49 +
 node_modules/npmlog/log.js                      |   309 +
 node_modules/npmlog/package.json                |    67 +
 node_modules/number-is-nan/index.js             |     4 +
 node_modules/number-is-nan/package.json         |    72 +
 node_modules/oauth-sign/index.js                |   136 +
 node_modules/oauth-sign/package.json            |    61 +
 node_modules/object-assign/index.js             |    90 +
 node_modules/object-assign/package.json         |    80 +
 node_modules/once/once.js                       |    42 +
 node_modules/once/package.json                  |    82 +
 node_modules/onetime/index.js                   |    31 +
 node_modules/onetime/package.json               |    69 +
 node_modules/os-homedir/index.js                |    24 +
 node_modules/os-homedir/package.json            |    78 +
 node_modules/os-locale/index.js                 |   127 +
 node_modules/os-locale/package.json             |    79 +
 node_modules/os-tmpdir/index.js                 |    25 +
 node_modules/os-tmpdir/package.json             |    77 +
 node_modules/osenv/osenv.js                     |    72 +
 node_modules/osenv/package.json                 |    77 +
 node_modules/parse-json/index.js                |    35 +
 node_modules/parse-json/package.json            |    82 +
 node_modules/parse-json/vendor/parse.js         |   752 +
 node_modules/parse-json/vendor/unicode.js       |    71 +
 node_modules/path-exists/index.js               |    24 +
 node_modules/path-exists/package.json           |    76 +
 node_modules/path-is-absolute/index.js          |    20 +
 node_modules/path-is-absolute/package.json      |    86 +
 node_modules/path-type/index.js                 |    29 +
 .../path-type/node_modules/graceful-fs/fs.js    |    21 +
 .../node_modules/graceful-fs/graceful-fs.js     |   262 +
 .../node_modules/graceful-fs/legacy-streams.js  |   118 +
 .../node_modules/graceful-fs/package.json       |    80 +
 .../node_modules/graceful-fs/polyfills.js       |   330 +
 node_modules/path-type/package.json             |    88 +
 node_modules/performance-now/.npmignore         |     1 +
 node_modules/performance-now/.tm_properties     |     7 +
 node_modules/performance-now/.travis.yml        |     6 +
 .../performance-now/lib/performance-now.js      |    36 +
 .../performance-now/lib/performance-now.js.map  |    10 +
 node_modules/performance-now/license.txt        |     7 +
 node_modules/performance-now/package.json       |    69 +
 node_modules/performance-now/src/index.d.ts     |     8 +
 .../performance-now/src/performance-now.coffee  |    17 +
 node_modules/performance-now/test/mocha.opts    |     3 +
 .../performance-now/test/performance-now.coffee |    43 +
 .../performance-now/test/scripts.coffee         |    27 +
 node_modules/pify/index.js                      |    68 +
 node_modules/pify/package.json                  |    85 +
 node_modules/pinkie-promise/index.js            |     3 +
 node_modules/pinkie-promise/package.json        |    75 +
 node_modules/pinkie/index.js                    |   292 +
 node_modules/pinkie/package.json                |    72 +
 node_modules/pkg-up/index.js                    |    10 +
 node_modules/pkg-up/package.json                |    88 +
 node_modules/prebuild-install/.travis.yml       |    11 +
 node_modules/prebuild-install/CONTRIBUTING.md   |     8 +
 node_modules/prebuild-install/appveyor.yml      |    39 +
 node_modules/prebuild-install/bin.js            |    59 +
 node_modules/prebuild-install/download.js       |   162 +
 node_modules/prebuild-install/error.js          |    13 +
 node_modules/prebuild-install/help.txt          |    12 +
 node_modules/prebuild-install/index.js          |     1 +
 node_modules/prebuild-install/log.js            |    13 +
 .../node_modules/.bin/detect-libc               |     1 +
 .../node_modules/detect-libc/.npmignore         |     7 +
 .../node_modules/detect-libc/bin/detect-libc.js |    18 +
 .../node_modules/detect-libc/lib/detect-libc.js |    92 +
 .../node_modules/detect-libc/package.json       |    75 +
 .../node_modules/minimist/.travis.yml           |     8 +
 .../node_modules/minimist/example/parse.js      |     2 +
 .../node_modules/minimist/index.js              |   236 +
 .../node_modules/minimist/package.json          |    78 +
 .../node_modules/minimist/readme.markdown       |    91 +
 .../node_modules/minimist/test/all_bool.js      |    32 +
 .../node_modules/minimist/test/bool.js          |   166 +
 .../node_modules/minimist/test/dash.js          |    31 +
 .../node_modules/minimist/test/default_bool.js  |    35 +
 .../node_modules/minimist/test/dotted.js        |    22 +
 .../node_modules/minimist/test/kv_short.js      |    16 +
 .../node_modules/minimist/test/long.js          |    31 +
 .../node_modules/minimist/test/num.js           |    36 +
 .../node_modules/minimist/test/parse.js         |   197 +
 .../minimist/test/parse_modified.js             |     9 +
 .../node_modules/minimist/test/short.js         |    67 +
 .../node_modules/minimist/test/stop_early.js    |    15 +
 .../node_modules/minimist/test/unknown.js       |   102 +
 .../node_modules/minimist/test/whitespace.js    |     8 +
 node_modules/prebuild-install/package.json      |   129 +
 node_modules/prebuild-install/rc.js             |    72 +
 node_modules/prebuild-install/util.js           |    89 +
 node_modules/pretty-bytes/index.js              |    24 +
 node_modules/pretty-bytes/package.json          |    74 +
 node_modules/process-nextick-args/index.js      |    44 +
 node_modules/process-nextick-args/license.md    |    19 +
 node_modules/process-nextick-args/package.json  |    54 +
 node_modules/pseudomap/map.js                   |     9 +
 node_modules/pseudomap/package.json             |    58 +
 node_modules/pseudomap/pseudomap.js             |   113 +
 node_modules/pseudomap/test/basic.js            |    86 +
 node_modules/pump/.travis.yml                   |     5 +
 node_modules/pump/index.js                      |    82 +
 node_modules/pump/package.json                  |    64 +
 node_modules/pump/test-browser.js               |    62 +
 node_modules/pump/test-node.js                  |    53 +
 node_modules/punycode/LICENSE-MIT.txt           |    20 +
 node_modules/punycode/package.json              |    91 +
 node_modules/punycode/punycode.js               |   533 +
 node_modules/qs/.editorconfig                   |    30 +
 node_modules/qs/.eslintignore                   |     1 +
 node_modules/qs/.eslintrc                       |    19 +
 node_modules/qs/CHANGELOG.md                    |   221 +
 node_modules/qs/dist/qs.js                      |   627 +
 node_modules/qs/lib/formats.js                  |    18 +
 node_modules/qs/lib/index.js                    |    11 +
 node_modules/qs/lib/parse.js                    |   174 +
 node_modules/qs/lib/stringify.js                |   210 +
 node_modules/qs/lib/utils.js                    |   202 +
 node_modules/qs/package.json                    |    83 +
 node_modules/qs/test/.eslintrc                  |    15 +
 node_modules/qs/test/index.js                   |     7 +
 node_modules/qs/test/parse.js                   |   573 +
 node_modules/qs/test/stringify.js               |   596 +
 node_modules/qs/test/utils.js                   |    34 +
 node_modules/rc/.npmignore                      |     3 +
 node_modules/rc/LICENSE.APACHE2                 |    15 +
 node_modules/rc/LICENSE.BSD                     |    26 +
 node_modules/rc/LICENSE.MIT                     |    24 +
 node_modules/rc/browser.js                      |     7 +
 node_modules/rc/cli.js                          |     4 +
 node_modules/rc/index.js                        |    53 +
 node_modules/rc/lib/utils.js                    |   104 +
 .../rc/node_modules/minimist/.travis.yml        |     8 +
 .../rc/node_modules/minimist/example/parse.js   |     2 +
 node_modules/rc/node_modules/minimist/index.js  |   236 +
 .../rc/node_modules/minimist/package.json       |    78 +
 .../rc/node_modules/minimist/readme.markdown    |    91 +
 .../rc/node_modules/minimist/test/all_bool.js   |    32 +
 .../rc/node_modules/minimist/test/bool.js       |   166 +
 .../rc/node_modules/minimist/test/dash.js       |    31 +
 .../node_modules/minimist/test/default_bool.js  |    35 +
 .../rc/node_modules/minimist/test/dotted.js     |    22 +
 .../rc/node_modules/minimist/test/kv_short.js   |    16 +
 .../rc/node_modules/minimist/test/long.js       |    31 +
 .../rc/node_modules/minimist/test/num.js        |    36 +
 .../rc/node_modules/minimist/test/parse.js      |   197 +
 .../minimist/test/parse_modified.js             |     9 +
 .../rc/node_modules/minimist/test/short.js      |    67 +
 .../rc/node_modules/minimist/test/stop_early.js |    15 +
 .../rc/node_modules/minimist/test/unknown.js    |   102 +
 .../rc/node_modules/minimist/test/whitespace.js |     8 +
 node_modules/rc/package.json                    |    69 +
 node_modules/rc/test/ini.js                     |    16 +
 node_modules/rc/test/nested-env-vars.js         |    50 +
 node_modules/rc/test/test.js                    |    59 +
 node_modules/read-pkg-up/index.js               |    31 +
 node_modules/read-pkg-up/package.json           |    96 +
 node_modules/read-pkg/index.js                  |    48 +
 node_modules/read-pkg/package.json              |    78 +
 node_modules/readable-stream/.travis.yml        |    55 +
 node_modules/readable-stream/CONTRIBUTING.md    |    38 +
 node_modules/readable-stream/GOVERNANCE.md      |   136 +
 .../doc/wg-meetings/2015-01-30.md               |    60 +
 node_modules/readable-stream/duplex-browser.js  |     1 +
 node_modules/readable-stream/duplex.js          |     1 +
 .../readable-stream/lib/_stream_duplex.js       |   131 +
 .../readable-stream/lib/_stream_passthrough.js  |    47 +
 .../readable-stream/lib/_stream_readable.js     |  1019 +
 .../readable-stream/lib/_stream_transform.js    |   214 +
 .../readable-stream/lib/_stream_writable.js     |   687 +
 .../lib/internal/streams/BufferList.js          |    79 +
 .../lib/internal/streams/destroy.js             |    74 +
 .../lib/internal/streams/stream-browser.js      |     1 +
 .../lib/internal/streams/stream.js              |     1 +
 node_modules/readable-stream/package.json       |    94 +
 node_modules/readable-stream/passthrough.js     |     1 +
 .../readable-stream/readable-browser.js         |     7 +
 node_modules/readable-stream/readable.js        |    19 +
 node_modules/readable-stream/transform.js       |     1 +
 .../readable-stream/writable-browser.js         |     1 +
 node_modules/readable-stream/writable.js        |     8 +
 node_modules/redent/index.js                    |     7 +
 node_modules/redent/package.json                |    79 +
 .../remove-trailing-separator/history.md        |    17 +
 node_modules/remove-trailing-separator/index.js |    17 +
 .../remove-trailing-separator/package.json      |    68 +
 node_modules/repeating/index.js                 |    24 +
 node_modules/repeating/package.json             |    73 +
 node_modules/request/CHANGELOG.md               |   701 +
 node_modules/request/index.js                   |   155 +
 node_modules/request/lib/auth.js                |   167 +
 node_modules/request/lib/cookies.js             |    38 +
 node_modules/request/lib/getProxyFromURI.js     |    79 +
 node_modules/request/lib/har.js                 |   205 +
 node_modules/request/lib/helpers.js             |    66 +
 node_modules/request/lib/multipart.js           |   112 +
 node_modules/request/lib/oauth.js               |   148 +
 node_modules/request/lib/querystring.js         |    50 +
 node_modules/request/lib/redirect.js            |   154 +
 node_modules/request/lib/tunnel.js              |   175 +
 node_modules/request/package.json               |   121 +
 node_modules/request/request.js                 |  1552 +
 node_modules/require-directory/.jshintrc        |    67 +
 node_modules/require-directory/.npmignore       |     1 +
 node_modules/require-directory/.travis.yml      |     3 +
 node_modules/require-directory/README.markdown  |   184 +
 node_modules/require-directory/index.js         |    86 +
 node_modules/require-directory/package.json     |    73 +
 node_modules/require-main-filename/.npmignore   |     3 +
 node_modules/require-main-filename/.travis.yml  |     8 +
 node_modules/require-main-filename/LICENSE.txt  |    14 +
 node_modules/require-main-filename/index.js     |    18 +
 node_modules/require-main-filename/package.json |    62 +
 node_modules/require-main-filename/test.js      |    36 +
 node_modules/resolve-from/index.js              |    23 +
 node_modules/resolve-from/package.json          |    70 +
 node_modules/resolve-pkg/index.js               |    17 +
 node_modules/resolve-pkg/package.json           |    82 +
 node_modules/resolve/.travis.yml                |     4 +
 node_modules/resolve/example/async.js           |     5 +
 node_modules/resolve/example/sync.js            |     3 +
 node_modules/resolve/index.js                   |     5 +
 node_modules/resolve/lib/async.js               |   192 +
 node_modules/resolve/lib/caller.js              |     8 +
 node_modules/resolve/lib/core.js                |     4 +
 node_modules/resolve/lib/core.json              |    38 +
 node_modules/resolve/lib/node-modules-paths.js  |    38 +
 node_modules/resolve/lib/sync.js                |    81 +
 node_modules/resolve/package.json               |    62 +
 node_modules/resolve/readme.markdown            |   148 +
 node_modules/resolve/test/core.js               |    12 +
 node_modules/resolve/test/dotdot.js             |    29 +
 node_modules/resolve/test/dotdot/abc/index.js   |     2 +
 node_modules/resolve/test/dotdot/index.js       |     1 +
 node_modules/resolve/test/faulty_basedir.js     |    17 +
 node_modules/resolve/test/filter.js             |    18 +
 node_modules/resolve/test/filter_sync.js        |    15 +
 node_modules/resolve/test/mock.js               |   142 +
 node_modules/resolve/test/mock_sync.js          |    68 +
 node_modules/resolve/test/module_dir.js         |    56 +
 .../test/module_dir/xmodules/aaa/index.js       |     1 +
 .../test/module_dir/ymodules/aaa/index.js       |     1 +
 .../test/module_dir/zmodules/bbb/main.js        |     1 +
 .../test/module_dir/zmodules/bbb/package.json   |     3 +
 node_modules/resolve/test/node_path.js          |    48 +
 .../resolve/test/node_path/x/aaa/index.js       |     1 +
 .../resolve/test/node_path/x/ccc/index.js       |     1 +
 .../resolve/test/node_path/y/bbb/index.js       |     1 +
 .../resolve/test/node_path/y/ccc/index.js       |     1 +
 node_modules/resolve/test/nonstring.js          |     9 +
 node_modules/resolve/test/pathfilter.js         |    35 +
 .../resolve/test/pathfilter/deep_ref/main.js    |     0
 .../deep_ref/node_modules/deep/alt.js           |     0
 .../deep_ref/node_modules/deep/deeper/ref.js    |     0
 .../deep_ref/node_modules/deep/package.json     |     4 +
 .../deep_ref/node_modules/deep/ref.js           |     0
 node_modules/resolve/test/precedence.js         |    23 +
 node_modules/resolve/test/precedence/aaa.js     |     1 +
 .../resolve/test/precedence/aaa/index.js        |     1 +
 .../resolve/test/precedence/aaa/main.js         |     1 +
 node_modules/resolve/test/precedence/bbb.js     |     1 +
 .../resolve/test/precedence/bbb/main.js         |     1 +
 node_modules/resolve/test/resolver.js           |   281 +
 .../test/resolver/bar/node_modules/foo/index.js |     1 +
 node_modules/resolve/test/resolver/baz/doom.js  |     0
 .../resolve/test/resolver/baz/package.json      |     3 +
 node_modules/resolve/test/resolver/baz/quux.js  |     1 +
 .../biz/node_modules/garply/lib/index.js        |     1 +
 .../biz/node_modules/garply/package.json        |     3 +
 .../resolver/biz/node_modules/grux/index.js     |     1 +
 .../test/resolver/biz/node_modules/tiv/index.js |     1 +
 node_modules/resolve/test/resolver/cup.coffee   |     1 +
 node_modules/resolve/test/resolver/foo.js       |     1 +
 .../test/resolver/incorrect_main/index.js       |     2 +
 .../test/resolver/incorrect_main/package.json   |     3 +
 node_modules/resolve/test/resolver/mug.coffee   |     0
 node_modules/resolve/test/resolver/mug.js       |     0
 .../test/resolver/other_path/lib/other-lib.js   |     0
 .../resolve/test/resolver/other_path/root.js    |     0
 .../punycode/node_modules/punycode/index.js     |     0
 .../resolve/test/resolver/quux/foo/index.js     |     1 +
 .../test/resolver/without_basedir/main.js       |     6 +
 .../without_basedir/node_modules/mymodule.js    |     1 +
 node_modules/resolve/test/resolver_sync.js      |   180 +
 node_modules/resolve/test/subdirs.js            |    13 +
 .../test/subdirs/node_modules/a/b/c/x.json      |     1 +
 .../test/subdirs/node_modules/a/package.json    |     1 +
 node_modules/rimraf/AUTHORS                     |     6 +
 node_modules/rimraf/bin.js                      |    33 +
 node_modules/rimraf/package.json                |    83 +
 node_modules/rimraf/rimraf.js                   |   248 +
 node_modules/rimraf/test/run.sh                 |    16 +
 node_modules/rimraf/test/setup.sh               |    47 +
 node_modules/rimraf/test/test-async.js          |     5 +
 node_modules/rimraf/test/test-sync.js           |     3 +
 node_modules/roboto-fontface/.npmignore         |    11 +
 node_modules/roboto-fontface/bower.json         |    15 +
 node_modules/roboto-fontface/css/mixins.less    |    32 +
 node_modules/roboto-fontface/css/mixins.scss    |    32 +
 .../roboto-condensed-fontface-bold-italic.less  |     3 +
 .../less/roboto-condensed-fontface-bold.less    |     3 +
 .../roboto-condensed-fontface-light-italic.less |     3 +
 .../less/roboto-condensed-fontface-light.less   |     3 +
 ...oboto-condensed-fontface-regular-italic.less |     3 +
 .../less/roboto-condensed-fontface-regular.less |     3 +
 .../less/roboto-condensed-fontface.less         |     6 +
 .../roboto-condensed-fontface.css               |    83 +
 .../roboto-condensed-fontface-bold-italic.scss  |     3 +
 .../sass/roboto-condensed-fontface-bold.scss    |     3 +
 .../roboto-condensed-fontface-light-italic.scss |     3 +
 .../sass/roboto-condensed-fontface-light.scss   |     3 +
 ...oboto-condensed-fontface-regular-italic.scss |     3 +
 .../sass/roboto-condensed-fontface-regular.scss |     3 +
 .../sass/roboto-condensed-fontface.scss         |     6 +
 .../less/roboto-slab-fontface-bold.less         |     3 +
 .../less/roboto-slab-fontface-light.less        |     3 +
 .../less/roboto-slab-fontface-regular.less      |     3 +
 .../less/roboto-slab-fontface-thin.less         |     3 +
 .../roboto-slab/less/roboto-slab-fontface.less  |     4 +
 .../css/roboto-slab/roboto-slab-fontface.css    |    55 +
 .../sass/roboto-slab-fontface-bold.scss         |     3 +
 .../sass/roboto-slab-fontface-light.scss        |     3 +
 .../sass/roboto-slab-fontface-regular.scss      |     3 +
 .../sass/roboto-slab-fontface-thin.scss         |     3 +
 .../roboto-slab/sass/roboto-slab-fontface.scss  |     4 +
 .../less/roboto-fontface-black-italic.less      |     3 +
 .../css/roboto/less/roboto-fontface-black.less  |     3 +
 .../less/roboto-fontface-bold-italic.less       |     3 +
 .../css/roboto/less/roboto-fontface-bold.less   |     3 +
 .../less/roboto-fontface-light-italic.less      |     3 +
 .../css/roboto/less/roboto-fontface-light.less  |     3 +
 .../less/roboto-fontface-medium-italic.less     |     3 +
 .../css/roboto/less/roboto-fontface-medium.less |     3 +
 .../less/roboto-fontface-regular-italic.less    |     3 +
 .../roboto/less/roboto-fontface-regular.less    |     3 +
 .../less/roboto-fontface-thin-italic.less       |     3 +
 .../css/roboto/less/roboto-fontface-thin.less   |     3 +
 .../css/roboto/less/roboto-fontface.less        |    12 +
 .../css/roboto/roboto-fontface.css              |   167 +
 .../sass/roboto-fontface-black-italic.scss      |     3 +
 .../css/roboto/sass/roboto-fontface-black.scss  |     3 +
 .../sass/roboto-fontface-bold-italic.scss       |     3 +
 .../css/roboto/sass/roboto-fontface-bold.scss   |     3 +
 .../sass/roboto-fontface-light-italic.scss      |     3 +
 .../css/roboto/sass/roboto-fontface-light.scss  |     3 +
 .../sass/roboto-fontface-medium-italic.scss     |     3 +
 .../css/roboto/sass/roboto-fontface-medium.scss |     3 +
 .../sass/roboto-fontface-regular-italic.scss    |     3 +
 .../roboto/sass/roboto-fontface-regular.scss    |     3 +
 .../sass/roboto-fontface-thin-italic.scss       |     3 +
 .../css/roboto/sass/roboto-fontface-thin.scss   |     3 +
 .../css/roboto/sass/roboto-fontface.scss        |    12 +
 .../Roboto-Condensed/Roboto-Condensed-Bold.eot  |   Bin 0 -> 21457 bytes
 .../Roboto-Condensed/Roboto-Condensed-Bold.svg  |   643 +
 .../Roboto-Condensed/Roboto-Condensed-Bold.ttf  |   Bin 0 -> 45452 bytes
 .../Roboto-Condensed/Roboto-Condensed-Bold.woff |   Bin 0 -> 25144 bytes
 .../Roboto-Condensed-Bold.woff2                 |   Bin 0 -> 31976 bytes
 .../Roboto-Condensed-BoldItalic.eot             |   Bin 0 -> 25204 bytes
 .../Roboto-Condensed-BoldItalic.svg             |   643 +
 .../Roboto-Condensed-BoldItalic.ttf             |   Bin 0 -> 53660 bytes
 .../Roboto-Condensed-BoldItalic.woff            |   Bin 0 -> 29136 bytes
 .../Roboto-Condensed-BoldItalic.woff2           |   Bin 0 -> 37652 bytes
 .../Roboto-Condensed/Roboto-Condensed-Light.eot |   Bin 0 -> 21661 bytes
 .../Roboto-Condensed/Roboto-Condensed-Light.svg |   643 +
 .../Roboto-Condensed/Roboto-Condensed-Light.ttf |   Bin 0 -> 47108 bytes
 .../Roboto-Condensed-Light.woff                 |   Bin 0 -> 25204 bytes
 .../Roboto-Condensed-Light.woff2                |   Bin 0 -> 14512 bytes
 .../Roboto-Condensed-LightItalic.eot            |   Bin 0 -> 25892 bytes
 .../Roboto-Condensed-LightItalic.svg            |   643 +
 .../Roboto-Condensed-LightItalic.ttf            |   Bin 0 -> 56592 bytes
 .../Roboto-Condensed-LightItalic.woff           |   Bin 0 -> 29796 bytes
 .../Roboto-Condensed-LightItalic.woff2          |   Bin 0 -> 15980 bytes
 .../Roboto-Condensed-Regular.eot                |   Bin 0 -> 21712 bytes
 .../Roboto-Condensed-Regular.svg                |   644 +
 .../Roboto-Condensed-Regular.ttf                |   Bin 0 -> 45668 bytes
 .../Roboto-Condensed-Regular.woff               |   Bin 0 -> 25268 bytes
 .../Roboto-Condensed-Regular.woff2              |   Bin 0 -> 32584 bytes
 .../Roboto-Condensed-RegularItalic.eot          |   Bin 0 -> 25217 bytes
 .../Roboto-Condensed-RegularItalic.svg          |   644 +
 .../Roboto-Condensed-RegularItalic.ttf          |   Bin 0 -> 54528 bytes
 .../Roboto-Condensed-RegularItalic.woff         |   Bin 0 -> 29104 bytes
 .../Roboto-Condensed-RegularItalic.woff2        |   Bin 0 -> 38460 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Bold.eot      |   Bin 0 -> 24548 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Bold.svg      |   679 +
 .../fonts/Roboto-Slab/Roboto-Slab-Bold.ttf      |   Bin 0 -> 170616 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Bold.woff     |   Bin 0 -> 28556 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Bold.woff2    |   Bin 0 -> 21704 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Light.eot     |   Bin 0 -> 23866 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Light.svg     |   678 +
 .../fonts/Roboto-Slab/Roboto-Slab-Light.ttf     |   Bin 0 -> 179096 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Light.woff    |   Bin 0 -> 27816 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Light.woff2   |   Bin 0 -> 21136 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Regular.eot   |   Bin 0 -> 24954 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Regular.svg   |   678 +
 .../fonts/Roboto-Slab/Roboto-Slab-Regular.ttf   |   Bin 0 -> 169064 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Regular.woff  |   Bin 0 -> 28884 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Regular.woff2 |   Bin 0 -> 21952 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Thin.eot      |   Bin 0 -> 23340 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Thin.svg      |   678 +
 .../fonts/Roboto-Slab/Roboto-Slab-Thin.ttf      |   Bin 0 -> 181156 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Thin.woff     |   Bin 0 -> 27144 bytes
 .../fonts/Roboto-Slab/Roboto-Slab-Thin.woff2    |   Bin 0 -> 20628 bytes
 .../fonts/Roboto/Roboto-Black.eot               |   Bin 0 -> 21963 bytes
 .../fonts/Roboto/Roboto-Black.svg               | 10968 +++++++
 .../fonts/Roboto/Roboto-Black.ttf               |   Bin 0 -> 180092 bytes
 .../fonts/Roboto/Roboto-Black.woff              |   Bin 0 -> 90116 bytes
 .../fonts/Roboto/Roboto-Black.woff2             |   Bin 0 -> 65060 bytes
 .../fonts/Roboto/Roboto-BlackItalic.eot         |   Bin 0 -> 26585 bytes
 .../fonts/Roboto/Roboto-BlackItalic.svg         | 11086 +++++++
 .../fonts/Roboto/Roboto-BlackItalic.ttf         |   Bin 0 -> 185460 bytes
 .../fonts/Roboto/Roboto-BlackItalic.woff        |   Bin 0 -> 98896 bytes
 .../fonts/Roboto/Roboto-BlackItalic.woff2       |   Bin 0 -> 72612 bytes
 .../fonts/Roboto/Roboto-Bold.eot                |   Bin 0 -> 22302 bytes
 .../fonts/Roboto/Roboto-Bold.svg                | 11010 +++++++
 .../fonts/Roboto/Roboto-Bold.ttf                |   Bin 0 -> 169964 bytes
 .../fonts/Roboto/Roboto-Bold.woff               |   Bin 0 -> 89208 bytes
 .../fonts/Roboto/Roboto-Bold.woff2              |   Bin 0 -> 63596 bytes
 .../fonts/Roboto/Roboto-BoldItalic.eot          |   Bin 0 -> 26973 bytes
 .../fonts/Roboto/Roboto-BoldItalic.svg          | 11096 +++++++
 .../fonts/Roboto/Roboto-BoldItalic.ttf          |   Bin 0 -> 174372 bytes
 .../fonts/Roboto/Roboto-BoldItalic.woff         |   Bin 0 -> 94400 bytes
 .../fonts/Roboto/Roboto-BoldItalic.woff2        |   Bin 0 -> 68556 bytes
 .../fonts/Roboto/Roboto-Light.eot               |   Bin 0 -> 21893 bytes
 .../fonts/Roboto/Roboto-Light.svg               | 10564 +++++++
 .../fonts/Roboto/Roboto-Light.ttf               |   Bin 0 -> 179192 bytes
 .../fonts/Roboto/Roboto-Light.woff              |   Bin 0 -> 89220 bytes
 .../fonts/Roboto/Roboto-Light.woff2             |   Bin 0 -> 64160 bytes
 .../fonts/Roboto/Roboto-LightItalic.eot         |   Bin 0 -> 27816 bytes
 .../fonts/Roboto/Roboto-LightItalic.svg         | 10646 +++++++
 .../fonts/Roboto/Roboto-LightItalic.ttf         |   Bin 0 -> 183252 bytes
 .../fonts/Roboto/Roboto-LightItalic.woff        |   Bin 0 -> 95332 bytes
 .../fonts/Roboto/Roboto-LightItalic.woff2       |   Bin 0 -> 69836 bytes
 .../fonts/Roboto/Roboto-Medium.eot              |   Bin 0 -> 22488 bytes
 .../fonts/Roboto/Roboto-Medium.svg              | 10999 +++++++
 .../fonts/Roboto/Roboto-Medium.ttf              |   Bin 0 -> 179296 bytes
 .../fonts/Roboto/Roboto-Medium.woff             |   Bin 0 -> 89724 bytes
 .../fonts/Roboto/Roboto-Medium.woff2            |   Bin 0 -> 64808 bytes
 .../fonts/Roboto/Roboto-MediumItalic.eot        |   Bin 0 -> 27581 bytes
 .../fonts/Roboto/Roboto-MediumItalic.svg        | 11100 +++++++
 .../fonts/Roboto/Roboto-MediumItalic.ttf        |   Bin 0 -> 185744 bytes
 .../fonts/Roboto/Roboto-MediumItalic.woff       |   Bin 0 -> 97516 bytes
 .../fonts/Roboto/Roboto-MediumItalic.woff2      |   Bin 0 -> 71608 bytes
 .../fonts/Roboto/Roboto-Regular.eot             |   Bin 0 -> 22093 bytes
 .../fonts/Roboto/Roboto-Regular.svg             | 10520 +++++++
 .../fonts/Roboto/Roboto-Regular.ttf             |   Bin 0 -> 170564 bytes
 .../fonts/Roboto/Roboto-Regular.woff            |   Bin 0 -> 89432 bytes
 .../fonts/Roboto/Roboto-Regular.woff2           |   Bin 0 -> 64184 bytes
 .../fonts/Roboto/Roboto-RegularItalic.eot       |   Bin 0 -> 26885 bytes
 .../fonts/Roboto/Roboto-RegularItalic.svg       | 10629 +++++++
 .../fonts/Roboto/Roboto-RegularItalic.ttf       |   Bin 0 -> 172168 bytes
 .../fonts/Roboto/Roboto-RegularItalic.woff      |   Bin 0 -> 94580 bytes
 .../fonts/Roboto/Roboto-RegularItalic.woff2     |   Bin 0 -> 69276 bytes
 .../fonts/Roboto/Roboto-Thin.eot                |   Bin 0 -> 21239 bytes
 .../fonts/Roboto/Roboto-Thin.svg                | 10617 +++++++
 .../fonts/Roboto/Roboto-Thin.ttf                |   Bin 0 -> 179784 bytes
 .../fonts/Roboto/Roboto-Thin.woff               |   Bin 0 -> 87804 bytes
 .../fonts/Roboto/Roboto-Thin.woff2              |   Bin 0 -> 62824 bytes
 .../fonts/Roboto/Roboto-ThinItalic.eot          |   Bin 0 -> 27851 bytes
 .../fonts/Roboto/Roboto-ThinItalic.svg          | 10726 +++++++
 .../fonts/Roboto/Roboto-ThinItalic.ttf          |   Bin 0 -> 185004 bytes
 .../fonts/Roboto/Roboto-ThinItalic.woff         |   Bin 0 -> 94032 bytes
 .../fonts/Roboto/Roboto-ThinItalic.woff2        |   Bin 0 -> 68140 bytes
 node_modules/roboto-fontface/package.json       |    60 +
 node_modules/roboto-fontface/test.html          |   288 +
 node_modules/roboto-fontface/test.sh            |    18 +
 node_modules/rxjs/AsyncSubject.d.ts             |    15 +
 node_modules/rxjs/AsyncSubject.js               |    53 +
 node_modules/rxjs/AsyncSubject.js.map           |     1 +
 node_modules/rxjs/BehaviorSubject.d.ts          |    14 +
 node_modules/rxjs/BehaviorSubject.js            |    49 +
 node_modules/rxjs/BehaviorSubject.js.map        |     1 +
 node_modules/rxjs/InnerSubscriber.d.ts          |    17 +
 node_modules/rxjs/InnerSubscriber.js            |    36 +
 node_modules/rxjs/InnerSubscriber.js.map        |     1 +
 node_modules/rxjs/LICENSE.txt                   |   202 +
 node_modules/rxjs/Notification.d.ts             |    77 +
 node_modules/rxjs/Notification.js               |   127 +
 node_modules/rxjs/Notification.js.map           |     1 +
 node_modules/rxjs/Observable.d.ts               |    62 +
 node_modules/rxjs/Observable.js                 |   256 +
 node_modules/rxjs/Observable.js.map             |     1 +
 node_modules/rxjs/Observer.d.ts                 |    26 +
 node_modules/rxjs/Observer.js                   |     8 +
 node_modules/rxjs/Observer.js.map               |     1 +
 node_modules/rxjs/Operator.d.ts                 |     5 +
 node_modules/rxjs/Operator.js                   |     2 +
 node_modules/rxjs/Operator.js.map               |     1 +
 node_modules/rxjs/OuterSubscriber.d.ts          |    12 +
 node_modules/rxjs/OuterSubscriber.js            |    30 +
 node_modules/rxjs/OuterSubscriber.js.map        |     1 +
 node_modules/rxjs/ReplaySubject.d.ts            |    18 +
 node_modules/rxjs/ReplaySubject.js              |   102 +
 node_modules/rxjs/ReplaySubject.js.map          |     1 +
 node_modules/rxjs/Rx.d.ts                       |   192 +
 node_modules/rxjs/Rx.js                         |   229 +
 node_modules/rxjs/Rx.js.map                     |     1 +
 node_modules/rxjs/Scheduler.d.ts                |    54 +
 node_modules/rxjs/Scheduler.js                  |    49 +
 node_modules/rxjs/Scheduler.js.map              |     1 +
 node_modules/rxjs/Subject.d.ts                  |    43 +
 node_modules/rxjs/Subject.js                    |   168 +
 node_modules/rxjs/Subject.js.map                |     1 +
 node_modules/rxjs/SubjectSubscription.d.ts      |    15 +
 node_modules/rxjs/SubjectSubscription.js        |    40 +
 node_modules/rxjs/SubjectSubscription.js.map    |     1 +
 node_modules/rxjs/Subscriber.d.ts               |    68 +
 node_modules/rxjs/Subscriber.js                 |   264 +
 node_modules/rxjs/Subscriber.js.map             |     1 +
 node_modules/rxjs/Subscription.d.ts             |    70 +
 node_modules/rxjs/Subscription.js               |   193 +
 node_modules/rxjs/Subscription.js.map           |     1 +
 .../rxjs/add/observable/bindCallback.d.ts       |     6 +
 .../rxjs/add/observable/bindCallback.js         |     5 +
 .../rxjs/add/observable/bindCallback.js.map     |     1 +
 .../rxjs/add/observable/bindNodeCallback.d.ts   |     6 +
 .../rxjs/add/observable/bindNodeCallback.js     |     5 +
 .../rxjs/add/observable/bindNodeCallback.js.map |     1 +
 .../rxjs/add/observable/combineLatest.d.ts      |     6 +
 .../rxjs/add/observable/combineLatest.js        |     5 +
 .../rxjs/add/observable/combineLatest.js.map    |     1 +
 node_modules/rxjs/add/observable/concat.d.ts    |     6 +
 node_modules/rxjs/add/observable/concat.js      |     5 +
 node_modules/rxjs/add/observable/concat.js.map  |     1 +
 node_modules/rxjs/add/observable/defer.d.ts     |     6 +
 node_modules/rxjs/add/observable/defer.js       |     5 +
 node_modules/rxjs/add/observable/defer.js.map   |     1 +
 node_modules/rxjs/add/observable/dom/ajax.d.ts  |     6 +
 node_modules/rxjs/add/observable/dom/ajax.js    |     5 +
 .../rxjs/add/observable/dom/ajax.js.map         |     1 +
 .../rxjs/add/observable/dom/webSocket.d.ts      |     6 +
 .../rxjs/add/observable/dom/webSocket.js        |     5 +
 .../rxjs/add/observable/dom/webSocket.js.map    |     1 +
 node_modules/rxjs/add/observable/empty.d.ts     |     6 +
 node_modules/rxjs/add/observable/empty.js       |     5 +
 node_modules/rxjs/add/observable/empty.js.map   |     1 +
 node_modules/rxjs/add/observable/forkJoin.d.ts  |     6 +
 node_modules/rxjs/add/observable/forkJoin.js    |     5 +
 .../rxjs/add/observable/forkJoin.js.map         |     1 +
 node_modules/rxjs/add/observable/from.d.ts      |     6 +
 node_modules/rxjs/add/observable/from.js        |     5 +
 node_modules/rxjs/add/observable/from.js.map    |     1 +
 node_modules/rxjs/add/observable/fromEvent.d.ts |     6 +
 node_modules/rxjs/add/observable/fromEvent.js   |     5 +
 .../rxjs/add/observable/fromEvent.js.map        |     1 +
 .../rxjs/add/observable/fromEventPattern.d.ts   |     6 +
 .../rxjs/add/observable/fromEventPattern.js     |     5 +
 .../rxjs/add/observable/fromEventPattern.js.map |     1 +
 .../rxjs/add/observable/fromPromise.d.ts        |     6 +
 node_modules/rxjs/add/observable/fromPromise.js |     5 +
 .../rxjs/add/observable/fromPromise.js.map      |     1 +
 node_modules/rxjs/add/observable/generate.d.ts  |     6 +
 node_modules/rxjs/add/observable/generate.js    |     5 +
 .../rxjs/add/observable/generate.js.map         |     1 +
 node_modules/rxjs/add/observable/if.d.ts        |     0
 node_modules/rxjs/add/observable/if.js          |     5 +
 node_modules/rxjs/add/observable/if.js.map      |     1 +
 node_modules/rxjs/add/observable/interval.d.ts  |     6 +
 node_modules/rxjs/add/observable/interval.js    |     5 +
 .../rxjs/add/observable/interval.js.map         |     1 +
 node_modules/rxjs/add/observable/merge.d.ts     |     6 +
 node_modules/rxjs/add/observable/merge.js       |     5 +
 node_modules/rxjs/add/observable/merge.js.map   |     1 +
 node_modules/rxjs/add/observable/never.d.ts     |     6 +
 node_modules/rxjs/add/observable/never.js       |     5 +
 node_modules/rxjs/add/observable/never.js.map   |     1 +
 node_modules/rxjs/add/observable/of.d.ts        |     6 +
 node_modules/rxjs/add/observable/of.js          |     5 +
 node_modules/rxjs/add/observable/of.js.map      |     1 +
 .../rxjs/add/observable/onErrorResumeNext.d.ts  |     6 +
 .../rxjs/add/observable/onErrorResumeNext.js    |     5 +
 .../add/observable/onErrorResumeNext.js.map     |     1 +
 node_modules/rxjs/add/observable/pairs.d.ts     |     6 +
 node_modules/rxjs/add/observable/pairs.js       |     5 +
 node_modules/rxjs/add/observable/pairs.js.map   |     1 +
 node_modules/rxjs/add/observable/race.d.ts      |     6 +
 node_modules/rxjs/add/observable/race.js        |     5 +
 node_modules/rxjs/add/observable/race.js.map    |     1 +
 node_modules/rxjs/add/observable/range.d.ts     |     6 +
 node_modules/rxjs/add/observable/range.js       |     5 +
 node_modules/rxjs/add/observable/range.js.map   |     1 +
 node_modules/rxjs/add/observable/throw.d.ts     |     0
 node_modules/rxjs/add/observable/throw.js       |     5 +
 node_modules/rxjs/add/observable/throw.js.map   |     1 +
 node_modules/rxjs/add/observable/timer.d.ts     |     6 +
 node_modules/rxjs/add/observable/timer.js       |     5 +
 node_modules/rxjs/add/observable/timer.js.map   |     1 +
 node_modules/rxjs/add/observable/using.d.ts     |     6 +
 node_modules/rxjs/add/observable/using.js       |     5 +
 node_modules/rxjs/add/observable/using.js.map   |     1 +
 node_modules/rxjs/add/observable/zip.d.ts       |     6 +
 node_modules/rxjs/add/observable/zip.js         |     5 +
 node_modules/rxjs/add/observable/zip.js.map     |     1 +
 node_modules/rxjs/add/operator/audit.d.ts       |     6 +
 node_modules/rxjs/add/operator/audit.js         |     5 +
 node_modules/rxjs/add/operator/audit.js.map     |     1 +
 node_modules/rxjs/add/operator/auditTime.d.ts   |     6 +
 node_modules/rxjs/add/operator/auditTime.js     |     5 +
 node_modules/rxjs/add/operator/auditTime.js.map |     1 +
 node_modules/rxjs/add/operator/buffer.d.ts      |     6 +
 node_modules/rxjs/add/operator/buffer.js        |     5 +
 node_modules/rxjs/add/operator/buffer.js.map    |     1 +
 node_modules/rxjs/add/operator/bufferCount.d.ts |     6 +
 node_modules/rxjs/add/operator/bufferCount.js   |     5 +
 .../rxjs/add/operator/bufferCount.js.map        |     1 +
 node_modules/rxjs/add/operator/bufferTime.d.ts  |     6 +
 node_modules/rxjs/add/operator/bufferTime.js    |     5 +
 .../rxjs/add/operator/bufferTime.js.map         |     1 +
 .../rxjs/add/operator/bufferToggle.d.ts         |     6 +
 node_modules/rxjs/add/operator/bufferToggle.js  |     5 +
 .../rxjs/add/operator/bufferToggle.js.map       |     1 +
 node_modules/rxjs/add/operator/bufferWhen.d.ts  |     6 +
 node_modules/rxjs/add/operator/bufferWhen.js    |     5 +
 .../rxjs/add/operator/bufferWhen.js.map         |     1 +
 node_modules/rxjs/add/operator/catch.d.ts       |     7 +
 node_modules/rxjs/add/operator/catch.js         |     6 +
 node_modules/rxjs/add/operator/catch.js.map     |     1 +
 node_modules/rxjs/add/operator/combineAll.d.ts  |     6 +
 node_modules/rxjs/add/operator/combineAll.js    |     5 +
 .../rxjs/add/operator/combineAll.js.map         |     1 +
 .../rxjs/add/operator/combineLatest.d.ts        |     6 +
 node_modules/rxjs/add/operator/combineLatest.js |     5 +
 .../rxjs/add/operator/combineLatest.js.map      |     1 +
 node_modules/rxjs/add/operator/concat.d.ts      |     6 +
 node_modules/rxjs/add/operator/concat.js        |     5 +
 node_modules/rxjs/add/operator/concat.js.map    |     1 +
 node_modules/rxjs/add/operator/concatAll.d.ts   |     6 +
 node_modules/rxjs/add/operator/concatAll.js     |     5 +
 node_modules/rxjs/add/operator/concatAll.js.map |     1 +
 node_modules/rxjs/add/operator/concatMap.d.ts   |     6 +
 node_modules/rxjs/add/operator/concatMap.js     |     5 +
 node_modules/rxjs/add/operator/concatMap.js.map |     1 +
 node_modules/rxjs/add/operator/concatMapTo.d.ts |     6 +
 node_modules/rxjs/add/operator/concatMapTo.js   |     5 +
 .../rxjs/add/operator/concatMapTo.js.map        |     1 +
 node_modules/rxjs/add/operator/count.d.ts       |     6 +
 node_modules/rxjs/add/operator/count.js         |     5 +
 node_modules/rxjs/add/operator/count.js.map     |     1 +
 node_modules/rxjs/add/operator/debounce.d.ts    |     6 +
 node_modules/rxjs/add/operator/debounce.js      |     5 +
 node_modules/rxjs/add/operator/debounce.js.map  |     1 +
 .../rxjs/add/operator/debounceTime.d.ts         |     6 +
 node_modules/rxjs/add/operator/debounceTime.js  |     5 +
 .../rxjs/add/operator/debounceTime.js.map       |     1 +
 .../rxjs/add/operator/defaultIfEmpty.d.ts       |     6 +
 .../rxjs/add/operator/defaultIfEmpty.js         |     5 +
 .../rxjs/add/operator/defaultIfEmpty.js.map     |     1 +
 node_modules/rxjs/add/operator/delay.d.ts       |     6 +
 node_modules/rxjs/add/operator/delay.js         |     5 +
 node_modules/rxjs/add/operator/delay.js.map     |     1 +
 node_modules/rxjs/add/operator/delayWhen.d.ts   |     6 +
 node_modules/rxjs/add/operator/delayWhen.js     |     5 +
 node_modules/rxjs/add/operator/delayWhen.js.map |     1 +
 .../rxjs/add/operator/dematerialize.d.ts        |     6 +
 node_modules/rxjs/add/operator/dematerialize.js |     5 +
 .../rxjs/add/operator/dematerialize.js.map      |     1 +
 node_modules/rxjs/add/operator/distinct.d.ts    |     6 +
 node_modules/rxjs/add/operator/distinct.js      |     5 +
 node_modules/rxjs/add/operator/distinct.js.map  |     1 +
 .../rxjs/add/operator/distinctUntilChanged.d.ts |     6 +
 .../rxjs/add/operator/distinctUntilChanged.js   |     5 +
 .../add/operator/distinctUntilChanged.js.map    |     1 +
 .../add/operator/distinctUntilKeyChanged.d.ts   |     6 +
 .../add/operator/distinctUntilKeyChanged.js     |     5 +
 .../add/operator/distinctUntilKeyChanged.js.map |     1 +
 node_modules/rxjs/add/operator/do.d.ts          |     7 +
 node_modules/rxjs/add/operator/do.js            |     6 +
 node_modules/rxjs/add/operator/do.js.map        |     1 +
 node_modules/rxjs/add/operator/elementAt.d.ts   |     6 +
 node_modules/rxjs/add/operator/elementAt.js     |     5 +
 node_modules/rxjs/add/operator/elementAt.js.map |     1 +
 node_modules/rxjs/add/operator/every.d.ts       |     6 +
 node_modules/rxjs/add/operator/every.js         |     5 +
 node_modules/rxjs/add/operator/every.js.map     |     1 +
 node_modules/rxjs/add/operator/exhaust.d.ts     |     6 +
 node_modules/rxjs/add/operator/exhaust.js       |     5 +
 node_modules/rxjs/add/operator/exhaust.js.map   |     1 +
 node_modules/rxjs/add/operator/exhaustMap.d.ts  |     6 +
 node_modules/rxjs/add/operator/exhaustMap.js    |     5 +
 .../rxjs/add/operator/exhaustMap.js.map         |     1 +
 node_modules/rxjs/add/operator/expand.d.ts      |     6 +
 node_modules/rxjs/add/operator/expand.js        |     5 +
 node_modules/rxjs/add/operator/expand.js.map    |     1 +
 node_modules/rxjs/add/operator/filter.d.ts      |     6 +
 node_modules/rxjs/add/operator/filter.js        |     5 +
 node_modules/rxjs/add/operator/filter.js.map    |     1 +
 node_modules/rxjs/add/operator/finally.d.ts     |     7 +
 node_modules/rxjs/add/operator/finally.js       |     6 +
 node_modules/rxjs/add/operator/finally.js.map   |     1 +
 node_modules/rxjs/add/operator/find.d.ts        |     6 +
 node_modules/rxjs/add/operator/find.js          |     5 +
 node_modules/rxjs/add/operator/find.js.map      |     1 +
 node_modules/rxjs/add/operator/findIndex.d.ts   |     6 +
 node_modules/rxjs/add/operator/findIndex.js     |     5 +
 node_modules/rxjs/add/operator/findIndex.js.map |     1 +
 node_modules/rxjs/add/operator/first.d.ts       |     6 +
 node_modules/rxjs/add/operator/first.js         |     5 +
 node_modules/rxjs/add/operator/first.js.map     |     1 +
 node_modules/rxjs/add/operator/groupBy.d.ts     |     6 +
 node_modules/rxjs/add/operator/groupBy.js       |     5 +
 node_modules/rxjs/add/operator/groupBy.js.map   |     1 +
 .../rxjs/add/operator/ignoreElements.d.ts       |     6 +
 .../rxjs/add/operator/ignoreElements.js         |     5 +
 .../rxjs/add/operator/ignoreElements.js.map     |     1 +
 node_modules/rxjs/add/operator/isEmpty.d.ts     |     6 +
 node_modules/rxjs/add/operator/isEmpty.js       |     5 +
 node_modules/rxjs/add/operator/isEmpty.js.map   |     1 +
 node_modules/rxjs/add/operator/last.d.ts        |     6 +
 node_modules/rxjs/add/operator/last.js          |     5 +
 node_modules/rxjs/add/operator/last.js.map      |     1 +
 node_modules/rxjs/add/operator/let.d.ts         |     7 +
 node_modules/rxjs/add/operator/let.js           |     6 +
 node_modules/rxjs/add/operator/let.js.map       |     1 +
 node_modules/rxjs/add/operator/map.d.ts         |     6 +
 node_modules/rxjs/add/operator/map.js           |     5 +
 node_modules/rxjs/add/operator/map.js.map       |     1 +
 node_modules/rxjs/add/operator/mapTo.d.ts       |     6 +
 node_modules/rxjs/add/operator/mapTo.js         |     5 +
 node_modules/rxjs/add/operator/mapTo.js.map     |     1 +
 node_modules/rxjs/add/operator/materialize.d.ts |     6 +
 node_modules/rxjs/add/operator/materialize.js   |     5 +
 .../rxjs/add/operator/materialize.js.map        |     1 +
 node_modules/rxjs/add/operator/max.d.ts         |     6 +
 node_modules/rxjs/add/operator/max.js           |     5 +
 node_modules/rxjs/add/operator/max.js.map       |     1 +
 node_modules/rxjs/add/operator/merge.d.ts       |     6 +
 node_modules/rxjs/add/operator/merge.js         |     5 +
 node_modules/rxjs/add/operator/merge.js.map     |     1 +
 node_modules/rxjs/add/operator/mergeAll.d.ts    |     6 +
 node_modules/rxjs/add/operator/mergeAll.js      |     5 +
 node_modules/rxjs/add/operator/mergeAll.js.map  |     1 +
 node_modules/rxjs/add/operator/mergeMap.d.ts    |     7 +
 node_modules/rxjs/add/operator/mergeMap.js      |     6 +
 node_modules/rxjs/add/operator/mergeMap.js.map  |     1 +
 node_modules/rxjs/add/operator/mergeMapTo.d.ts  |     7 +
 node_modules/rxjs/add/operator/mergeMapTo.js    |     6 +
 .../rxjs/add/operator/mergeMapTo.js.map         |     1 +
 node_modules/rxjs/add/operator/mergeScan.d.ts   |     6 +
 node_modules/rxjs/add/operator/mergeScan.js     |     5 +
 node_modules/rxjs/add/operator/mergeScan.js.map |     1 +
 node_modules/rxjs/add/operator/min.d.ts         |     6 +
 node_modules/rxjs/add/operator/min.js           |     5 +
 node_modules/rxjs/add/operator/min.js.map       |     1 +
 node_modules/rxjs/add/operator/multicast.d.ts   |     6 +
 node_modules/rxjs/add/operator/multicast.js     |     5 +
 node_modules/rxjs/add/operator/multicast.js.map |     1 +
 node_modules/rxjs/add/operator/observeOn.d.ts   |     6 +
 node_modules/rxjs/add/operator/observeOn.js     |     5 +
 node_modules/rxjs/add/operator/observeOn.js.map |     1 +
 .../rxjs/add/operator/onErrorResumeNext.d.ts    |     6 +
 .../rxjs/add/operator/onErrorResumeNext.js      |     5 +
 .../rxjs/add/operator/onErrorResumeNext.js.map  |     1 +
 node_modules/rxjs/add/operator/pairwise.d.ts    |     6 +
 node_modules/rxjs/add/operator/pairwise.js      |     5 +
 node_modules/rxjs/add/operator/pairwise.js.map  |     1 +
 node_modules/rxjs/add/operator/partition.d.ts   |     6 +
 node_modules/rxjs/add/operator/partition.js     |     5 +
 node_modules/rxjs/add/operator/partition.js.map |     1 +
 node_modules/rxjs/add/operator/pluck.d.ts       |     6 +
 node_modules/rxjs/add/operator/pluck.js         |     5 +
 node_modules/rxjs/add/operator/pluck.js.map     |     1 +
 node_modules/rxjs/add/operator/publish.d.ts     |     6 +
 node_modules/rxjs/add/operator/publish.js       |     5 +
 node_modules/rxjs/add/operator/publish.js.map   |     1 +
 .../rxjs/add/operator/publishBehavior.d.ts      |     6 +
 .../rxjs/add/operator/publishBehavior.js        |     5 +
 .../rxjs/add/operator/publishBehavior.js.map    |     1 +
 node_modules/rxjs/add/operator/publishLast.d.ts |     6 +
 node_modules/rxjs/add/operator/publishLast.js   |     5 +
 .../rxjs/add/operator/publishLast.js.map        |     1 +
 .../rxjs/add/operator/publishReplay.d.ts        |     6 +
 node_modules/rxjs/add/operator/publishReplay.js |     5 +
 .../rxjs/add/operator/publishReplay.js.map      |     1 +
 node_modules/rxjs/add/operator/race.d.ts        |     6 +
 node_modules/rxjs/add/operator/race.js          |     5 +
 node_modules/rxjs/add/operator/race.js.map      |     1 +
 node_modules/rxjs/add/operator/reduce.d.ts      |     6 +
 node_modules/rxjs/add/operator/reduce.js        |     5 +
 node_modules/rxjs/add/operator/reduce.js.map    |     1 +
 node_modules/rxjs/add/operator/repeat.d.ts      |     6 +
 node_modules/rxjs/add/operator/repeat.js        |     5 +
 node_modules/rxjs/add/operator/repeat.js.map    |     1 +
 node_modules/rxjs/add/operator/repeatWhen.d.ts  |     6 +
 node_modules/rxjs/add/operator/repeatWhen.js    |     5 +
 .../rxjs/add/operator/repeatWhen.js.map         |     1 +
 node_modules/rxjs/add/operator/retry.d.ts       |     6 +
 node_modules/rxjs/add/operator/retry.js         |     5 +
 node_modules/rxjs/add/operator/retry.js.map     |     1 +
 node_modules/rxjs/add/operator/retryWhen.d.ts   |     6 +
 node_modules/rxjs/add/operator/retryWhen.js     |     5 +
 node_modules/rxjs/add/operator/retryWhen.js.map |     1 +
 node_modules/rxjs/add/operator/sample.d.ts      |     6 +
 node_modules/rxjs/add/operator/sample.js        |     5 +
 node_modules/rxjs/add/operator/sample.js.map    |     1 +
 node_modules/rxjs/add/operator/sampleTime.d.ts  |     6 +
 node_modules/rxjs/add/operator/sampleTime.js    |     5 +
 .../rxjs/add/operator/sampleTime.js.map         |     1 +
 node_modules/rxjs/add/operator/scan.d.ts        |     6 +
 node_modules/rxjs/add/operator/scan.js          |     5 +
 node_modules/rxjs/add/operator/scan.js.map      |     1 +
 .../rxjs/add/operator/sequenceEqual.d.ts        |     6 +
 node_modules/rxjs/add/operator/sequenceEqual.js |     5 +
 .../rxjs/add/operator/sequenceEqual.js.map      |     1 +
 node_modules/rxjs/add/operator/share.d.ts       |     6 +
 node_modules/rxjs/add/operator/share.js         |     5 +
 node_modules/rxjs/add/operator/share.js.map     |     1 +
 node_modules/rxjs/add/operator/shareReplay.d.ts |     6 +
 node_modules/rxjs/add/operator/shareReplay.js   |     5 +
 .../rxjs/add/operator/shareReplay.js.map        |     1 +
 node_modules/rxjs/add/operator/single.d.ts      |     6 +
 node_modules/rxjs/add/operator/single.js        |     5 +
 node_modules/rxjs/add/operator/single.js.map    |     1 +
 node_modules/rxjs/add/operator/skip.d.ts        |     6 +
 node_modules/rxjs/add/operator/skip.js          |     5 +
 node_modules/rxjs/add/operator/skip.js.map      |     1 +
 node_modules/rxjs/add/operator/skipLast.d.ts    |     6 +
 node_modules/rxjs/add/operator/skipLast.js      |     5 +
 node_modules/rxjs/add/operator/skipLast.js.map  |     1 +
 node_modules/rxjs/add/operator/skipUntil.d.ts   |     6 +
 node_modules/rxjs/add/operator/skipUntil.js     |     5 +
 node_modules/rxjs/add/operator/skipUntil.js.map |     1 +
 node_modules/rxjs/add/operator/skipWhile.d.ts   |     6 +
 node_modules/rxjs/add/operator/skipWhile.js     |     5 +
 node_modules/rxjs/add/operator/skipWhile.js.map |     1 +
 node_modules/rxjs/add/operator/startWith.d.ts   |     6 +
 node_modules/rxjs/add/operator/startWith.js     |     5 +
 node_modules/rxjs/add/operator/startWith.js.map |     1 +
 node_modules/rxjs/add/operator/subscribeOn.d.ts |     6 +
 node_modules/rxjs/add/operator/subscribeOn.js   |     5 +
 .../rxjs/add/operator/subscribeOn.js.map        |     1 +
 node_modules/rxjs/add/operator/switch.d.ts      |     7 +
 node_modules/rxjs/add/operator/switch.js        |     6 +
 node_modules/rxjs/add/operator/switch.js.map    |     1 +
 node_modules/rxjs/add/operator/switchMap.d.ts   |     6 +
 node_modules/rxjs/add/operator/switchMap.js     |     5 +
 node_modules/rxjs/add/operator/switchMap.js.map |     1 +
 node_modules/rxjs/add/operator/switchMapTo.d.ts |     6 +
 node_modules/rxjs/add/operator/switchMapTo.js   |     5 +
 .../rxjs/add/operator/switchMapTo.js.map        |     1 +
 node_modules/rxjs/add/operator/take.d.ts        |     6 +
 node_modules/rxjs/add/operator/take.js          |     5 +
 node_modules/rxjs/add/operator/take.js.map      |     1 +
 node_modules/rxjs/add/operator/takeLast.d.ts    |     6 +
 node_modules/rxjs/add/operator/takeLast.js      |     5 +
 node_modules/rxjs/add/operator/takeLast.js.map  |     1 +
 node_modules/rxjs/add/operator/takeUntil.d.ts   |     6 +
 node_modules/rxjs/add/operator/takeUntil.js     |     5 +
 node_modules/rxjs/add/operator/takeUntil.js.map |     1 +
 node_modules/rxjs/add/operator/takeWhile.d.ts   |     6 +
 node_modules/rxjs/add/operator/takeWhile.js     |     5 +
 node_modules/rxjs/add/operator/takeWhile.js.map |     1 +
 node_modules/rxjs/add/operator/throttle.d.ts    |     6 +
 node_modules/rxjs/add/operator/throttle.js      |     5 +
 node_modules/rxjs/add/operator/throttle.js.map  |     1 +
 .../rxjs/add/operator/throttleTime.d.ts         |     6 +
 node_modules/rxjs/add/operator/throttleTime.js  |     5 +
 .../rxjs/add/operator/throttleTime.js.map       |     1 +
 .../rxjs/add/operator/timeInterval.d.ts         |     6 +
 node_modules/rxjs/add/operator/timeInterval.js  |     5 +
 .../rxjs/add/operator/timeInterval.js.map       |     1 +
 node_modules/rxjs/add/operator/timeout.d.ts     |     6 +
 node_modules/rxjs/add/operator/timeout.js       |     5 +
 node_modules/rxjs/add/operator/timeout.js.map   |     1 +
 node_modules/rxjs/add/operator/timeoutWith.d.ts |     6 +
 node_modules/rxjs/add/operator/timeoutWith.js   |     5 +
 .../rxjs/add/operator/timeoutWith.js.map        |     1 +
 node_modules/rxjs/add/operator/timestamp.d.ts   |     6 +
 node_modules/rxjs/add/operator/timestamp.js     |     5 +
 node_modules/rxjs/add/operator/timestamp.js.map |     1 +
 node_modules/rxjs/add/operator/toArray.d.ts     |     6 +
 node_modules/rxjs/add/operator/toArray.js       |     5 +
 node_modules/rxjs/add/operator/toArray.js.map   |     1 +
 node_modules/rxjs/add/operator/toPromise.d.ts   |     6 +
 node_modules/rxjs/add/operator/toPromise.js     |     5 +
 node_modules/rxjs/add/operator/toPromise.js.map |     1 +
 node_modules/rxjs/add/operator/window.d.ts      |     6 +
 node_modules/rxjs/add/operator/window.js        |     5 +
 node_modules/rxjs/add/operator/window.js.map    |     1 +
 node_modules/rxjs/add/operator/windowCount.d.ts |     6 +
 node_modules/rxjs/add/operator/windowCount.js   |     5 +
 .../rxjs/add/operator/windowCount.js.map        |     1 +
 node_modules/rxjs/add/operator/windowTime.d.ts  |     6 +
 node_modules/rxjs/add/operator/windowTime.js    |     5 +
 .../rxjs/add/operator/windowTime.js.map         |     1 +
 .../rxjs/add/operator/windowToggle.d.ts         |     6 +
 node_modules/rxjs/add/operator/windowToggle.js  |     5 +
 .../rxjs/add/operator/windowToggle.js.map       |     1 +
 node_modules/rxjs/add/operator/windowWhen.d.ts  |     6 +
 node_modules/rxjs/add/operator/windowWhen.js    |     5 +
 .../rxjs/add/operator/windowWhen.js.map         |     1 +
 .../rxjs/add/operator/withLatestFrom.d.ts       |     6 +
 .../rxjs/add/operator/withLatestFrom.js         |     5 +
 .../rxjs/add/operator/withLatestFrom.js.map     |     1 +
 node_modules/rxjs/add/operator/zip.d.ts         |     6 +
 node_modules/rxjs/add/operator/zip.js           |     5 +
 node_modules/rxjs/add/operator/zip.js.map       |     1 +
 node_modules/rxjs/add/operator/zipAll.d.ts      |     6 +
 node_modules/rxjs/add/operator/zipAll.js        |     5 +
 node_modules/rxjs/add/operator/zipAll.js.map    |     1 +
 node_modules/rxjs/bundles/Rx.js                 | 16045 ++++++++++
 node_modules/rxjs/bundles/Rx.min.js             |   294 +
 node_modules/rxjs/bundles/Rx.min.js.map         |     8 +
 .../rxjs/observable/ArrayLikeObservable.d.ts    |    18 +
 .../rxjs/observable/ArrayLikeObservable.js      |    70 +
 .../rxjs/observable/ArrayLikeObservable.js.map  |     1 +
 .../rxjs/observable/ArrayObservable.d.ts        |    25 +
 node_modules/rxjs/observable/ArrayObservable.js |   122 +
 .../rxjs/observable/ArrayObservable.js.map      |     1 +
 .../observable/BoundCallbackObservable.d.ts     |    42 +
 .../rxjs/observable/BoundCallbackObservable.js  |   268 +
 .../observable/BoundCallbackObservable.js.map   |     1 +
 .../observable/BoundNodeCallbackObservable.d.ts |    29 +
 .../observable/BoundNodeCallbackObservable.js   |   263 +
 .../BoundNodeCallbackObservable.js.map          |     1 +
 .../rxjs/observable/ConnectableObservable.d.ts  |    21 +
 .../rxjs/observable/ConnectableObservable.js    |   169 +
 .../observable/ConnectableObservable.js.map     |     1 +
 .../rxjs/observable/DeferObservable.d.ts        |    60 +
 node_modules/rxjs/observable/DeferObservable.js |    99 +
 .../rxjs/observable/DeferObservable.js.map      |     1 +
 .../rxjs/observable/EmptyObservable.d.ts        |    62 +
 node_modules/rxjs/observable/EmptyObservable.js |    81 +
 .../rxjs/observable/EmptyObservable.js.map      |     1 +
 .../rxjs/observable/ErrorObservable.d.ts        |    61 +
 node_modules/rxjs/observable/ErrorObservable.js |    83 +
 .../rxjs/observable/ErrorObservable.js.map      |     1 +
 .../rxjs/observable/ForkJoinObservable.d.ts     |    31 +
 .../rxjs/observable/ForkJoinObservable.js       |   112 +
 .../rxjs/observable/ForkJoinObservable.js.map   |     1 +
 .../rxjs/observable/FromEventObservable.d.ts    |    35 +
 .../rxjs/observable/FromEventObservable.js      |   140 +
 .../rxjs/observable/FromEventObservable.js.map  |     1 +
 .../observable/FromEventPatternObservable.d.ts  |    65 +
 .../observable/FromEventPatternObservable.js    |   113 +
 .../FromEventPatternObservable.js.map           |     1 +
 .../rxjs/observable/FromObservable.d.ts         |    16 +
 node_modules/rxjs/observable/FromObservable.js  |   122 +
 .../rxjs/observable/FromObservable.js.map       |     1 +
 .../rxjs/observable/GenerateObservable.d.ts     |   144 +
 .../rxjs/observable/GenerateObservable.js       |   135 +
 .../rxjs/observable/GenerateObservable.js.map   |     1 +
 node_modules/rxjs/observable/IfObservable.d.ts  |    16 +
 node_modules/rxjs/observable/IfObservable.js    |    61 +
 .../rxjs/observable/IfObservable.js.map         |     1 +
 .../rxjs/observable/IntervalObservable.d.ts     |    49 +
 .../rxjs/observable/IntervalObservable.js       |    88 +
 .../rxjs/observable/IntervalObservable.js.map   |     1 +
 .../rxjs/observable/IteratorObservable.d.ts     |    17 +
 .../rxjs/observable/IteratorObservable.js       |   163 +
 .../rxjs/observable/IteratorObservable.js.map   |     1 +
 .../rxjs/observable/NeverObservable.d.ts        |    43 +
 node_modules/rxjs/observable/NeverObservable.js |    59 +
 .../rxjs/observable/NeverObservable.js.map      |     1 +
 .../rxjs/observable/PairsObservable.d.ts        |    48 +
 node_modules/rxjs/observable/PairsObservable.js |    85 +
 .../rxjs/observable/PairsObservable.js.map      |     1 +
 .../rxjs/observable/PromiseObservable.d.ts      |    43 +
 .../rxjs/observable/PromiseObservable.js        |   121 +
 .../rxjs/observable/PromiseObservable.js.map    |     1 +
 .../rxjs/observable/RangeObservable.d.ts        |    48 +
 node_modules/rxjs/observable/RangeObservable.js |    96 +
 .../rxjs/observable/RangeObservable.js.map      |     1 +
 .../rxjs/observable/ScalarObservable.d.ts       |    18 +
 .../rxjs/observable/ScalarObservable.js         |    58 +
 .../rxjs/observable/ScalarObservable.js.map     |     1 +
 .../rxjs/observable/SubscribeOnObservable.d.ts  |    23 +
 .../rxjs/observable/SubscribeOnObservable.js    |    51 +
 .../observable/SubscribeOnObservable.js.map     |     1 +
 .../rxjs/observable/TimerObservable.d.ts        |    60 +
 node_modules/rxjs/observable/TimerObservable.js |   107 +
 .../rxjs/observable/TimerObservable.js.map      |     1 +
 .../rxjs/observable/UsingObservable.d.ts        |    15 +
 node_modules/rxjs/observable/UsingObservable.js |    61 +
 .../rxjs/observable/UsingObservable.js.map      |     1 +
 node_modules/rxjs/observable/bindCallback.d.ts  |     2 +
 node_modules/rxjs/observable/bindCallback.js    |     4 +
 .../rxjs/observable/bindCallback.js.map         |     1 +
 .../rxjs/observable/bindNodeCallback.d.ts       |     2 +
 .../rxjs/observable/bindNodeCallback.js         |     4 +
 .../rxjs/observable/bindNodeCallback.js.map     |     1 +
 node_modules/rxjs/observable/combineLatest.d.ts |    20 +
 node_modules/rxjs/observable/combineLatest.js   |   136 +
 .../rxjs/observable/combineLatest.js.map        |     1 +
 node_modules/rxjs/observable/concat.d.ts        |     2 +
 node_modules/rxjs/observable/concat.js          |     4 +
 node_modules/rxjs/observable/concat.js.map      |     1 +
 node_modules/rxjs/observable/defer.d.ts         |     2 +
 node_modules/rxjs/observable/defer.js           |     4 +
 node_modules/rxjs/observable/defer.js.map       |     1 +
 .../rxjs/observable/dom/AjaxObservable.d.ts     |   133 +
 .../rxjs/observable/dom/AjaxObservable.js       |   415 +
 .../rxjs/observable/dom/AjaxObservable.js.map   |     1 +
 .../rxjs/observable/dom/WebSocketSubject.d.ts   |    83 +
 .../rxjs/observable/dom/WebSocketSubject.js     |   250 +
 .../rxjs/observable/dom/WebSocketSubject.js.map |     1 +
 node_modules/rxjs/observable/dom/ajax.d.ts      |     2 +
 node_modules/rxjs/observable/dom/ajax.js        |     4 +
 node_modules/rxjs/observable/dom/ajax.js.map    |     1 +
 node_modules/rxjs/observable/dom/webSocket.d.ts |     2 +
 node_modules/rxjs/observable/dom/webSocket.js   |     4 +
 .../rxjs/observable/dom/webSocket.js.map        |     1 +
 node_modules/rxjs/observable/empty.d.ts         |     2 +
 node_modules/rxjs/observable/empty.js           |     4 +
 node_modules/rxjs/observable/empty.js.map       |     1 +
 node_modules/rxjs/observable/forkJoin.d.ts      |     2 +
 node_modules/rxjs/observable/forkJoin.js        |     4 +
 node_modules/rxjs/observable/forkJoin.js.map    |     1 +
 node_modules/rxjs/observable/from.d.ts          |     2 +
 node_modules/rxjs/observable/from.js            |     4 +
 node_modules/rxjs/observable/from.js.map        |     1 +
 node_modules/rxjs/observable/fromEvent.d.ts     |     2 +
 node_modules/rxjs/observable/fromEvent.js       |     4 +
 node_modules/rxjs/observable/fromEvent.js.map   |     1 +
 .../rxjs/observable/fromEventPattern.d.ts       |     2 +
 .../rxjs/observable/fromEventPattern.js         |     4 +
 .../rxjs/observable/fromEventPattern.js.map     |     1 +
 node_modules/rxjs/observable/fromPromise.d.ts   |     2 +
 node_modules/rxjs/observable/fromPromise.js     |     4 +
 node_modules/rxjs/observable/fromPromise.js.map |     1 +
 node_modules/rxjs/observable/generate.d.ts      |     2 +
 node_modules/rxjs/observable/generate.js        |     4 +
 node_modules/rxjs/observable/generate.js.map    |     1 +
 node_modules/rxjs/observable/if.d.ts            |     2 +
 node_modules/rxjs/observable/if.js              |     4 +
 node_modules/rxjs/observable/if.js.map          |     1 +
 node_modules/rxjs/observable/interval.d.ts      |     2 +
 node_modules/rxjs/observable/interval.js        |     4 +
 node_modules/rxjs/observable/interval.js.map    |     1 +
 node_modules/rxjs/observable/merge.d.ts         |     2 +
 node_modules/rxjs/observable/merge.js           |     4 +
 node_modules/rxjs/observable/merge.js.map       |     1 +
 node_modules/rxjs/observable/never.d.ts         |     2 +
 node_modules/rxjs/observable/never.js           |     4 +
 node_modules/rxjs/observable/never.js.map       |     1 +
 node_modules/rxjs/observable/of.d.ts            |     2 +
 node_modules/rxjs/observable/of.js              |     4 +
 node_modules/rxjs/observable/of.js.map          |     1 +
 .../rxjs/observable/onErrorResumeNext.d.ts      |     2 +
 .../rxjs/observable/onErrorResumeNext.js        |     4 +
 .../rxjs/observable/onErrorResumeNext.js.map    |     1 +
 node_modules/rxjs/observable/pairs.d.ts         |     2 +
 node_modules/rxjs/observable/pairs.js           |     4 +
 node_modules/rxjs/observable/pairs.js.map       |     1 +
 node_modules/rxjs/observable/race.d.ts          |     2 +
 node_modules/rxjs/observable/race.js            |     4 +
 node_modules/rxjs/observable/race.js.map        |     1 +
 node_modules/rxjs/observable/range.d.ts         |     2 +
 node_modules/rxjs/observable/range.js           |     4 +
 node_modules/rxjs/observable/range.js.map       |     1 +
 node_modules/rxjs/observable/throw.d.ts         |     2 +
 node_modules/rxjs/observable/throw.js           |     4 +
 node_modules/rxjs/observable/throw.js.map       |     1 +
 node_modules/rxjs/observable/timer.d.ts         |     2 +
 node_modules/rxjs/observable/timer.js           |     4 +
 node_modules/rxjs/observable/timer.js.map       |     1 +
 node_modules/rxjs/observable/using.d.ts         |     2 +
 node_modules/rxjs/observable/using.js           |     4 +
 node_modules/rxjs/observable/using.js.map       |     1 +
 node_modules/rxjs/observable/zip.d.ts           |     2 +
 node_modules/rxjs/observable/zip.js             |     4 +
 node_modules/rxjs/observable/zip.js.map         |     1 +
 node_modules/rxjs/operator/audit.d.ts           |    42 +
 node_modules/rxjs/operator/audit.js             |   116 +
 node_modules/rxjs/operator/audit.js.map         |     1 +
 node_modules/rxjs/operator/auditTime.d.ts       |    45 +
 node_modules/rxjs/operator/auditTime.js         |   104 +
 node_modules/rxjs/operator/auditTime.js.map     |     1 +
 node_modules/rxjs/operator/buffer.d.ts          |    34 +
 node_modules/rxjs/operator/buffer.js            |    76 +
 node_modules/rxjs/operator/buffer.js.map        |     1 +
 node_modules/rxjs/operator/bufferCount.d.ts     |    43 +
 node_modules/rxjs/operator/bufferCount.js       |   140 +
 node_modules/rxjs/operator/bufferCount.js.map   |     1 +
 node_modules/rxjs/operator/bufferTime.d.ts      |     5 +
 node_modules/rxjs/operator/bufferTime.js        |   199 +
 node_modules/rxjs/operator/bufferTime.js.map    |     1 +
 node_modules/rxjs/operator/bufferToggle.d.ts    |    40 +
 node_modules/rxjs/operator/bufferToggle.js      |   152 +
 node_modules/rxjs/operator/bufferToggle.js.map  |     1 +
 node_modules/rxjs/operator/bufferWhen.d.ts      |    35 +
 node_modules/rxjs/operator/bufferWhen.js        |   122 +
 node_modules/rxjs/operator/bufferWhen.js.map    |     1 +
 node_modules/rxjs/operator/catch.d.ts           |    61 +
 node_modules/rxjs/operator/catch.js             |   116 +
 node_modules/rxjs/operator/catch.js.map         |     1 +
 node_modules/rxjs/operator/combineAll.d.ts      |    42 +
 node_modules/rxjs/operator/combineAll.js        |    47 +
 node_modules/rxjs/operator/combineAll.js.map    |     1 +
 node_modules/rxjs/operator/combineLatest.d.ts   |    42 +
 node_modules/rxjs/operator/combineLatest.js     |   152 +
 node_modules/rxjs/operator/combineLatest.js.map |     1 +
 node_modules/rxjs/operator/concat.d.ts          |    18 +
 node_modules/rxjs/operator/concat.js            |   174 +
 node_modules/rxjs/operator/concat.js.map        |     1 +
 node_modules/rxjs/operator/concatAll.d.ts       |     4 +
 node_modules/rxjs/operator/concatAll.js         |    56 +
 node_modules/rxjs/operator/concatAll.js.map     |     1 +
 node_modules/rxjs/operator/concatMap.d.ts       |     3 +
 node_modules/rxjs/operator/concatMap.js         |    67 +
 node_modules/rxjs/operator/concatMap.js.map     |     1 +
 node_modules/rxjs/operator/concatMapTo.d.ts     |     3 +
 node_modules/rxjs/operator/concatMapTo.js       |    64 +
 node_modules/rxjs/operator/concatMapTo.js.map   |     1 +
 node_modules/rxjs/operator/count.d.ts           |    50 +
 node_modules/rxjs/operator/count.js             |   111 +
 node_modules/rxjs/operator/count.js.map         |     1 +
 node_modules/rxjs/operator/debounce.d.ts        |    44 +
 node_modules/rxjs/operator/debounce.js          |   127 +
 node_modules/rxjs/operator/debounce.js.map      |     1 +
 node_modules/rxjs/operator/debounceTime.d.ts    |    49 +
 node_modules/rxjs/operator/debounceTime.js      |   116 +
 node_modules/rxjs/operator/debounceTime.js.map  |     1 +
 node_modules/rxjs/operator/defaultIfEmpty.d.ts  |     3 +
 node_modules/rxjs/operator/defaultIfEmpty.js    |    77 +
 .../rxjs/operator/defaultIfEmpty.js.map         |     1 +
 node_modules/rxjs/operator/delay.d.ts           |    42 +
 node_modules/rxjs/operator/delay.js             |   135 +
 node_modules/rxjs/operator/delay.js.map         |     1 +
 node_modules/rxjs/operator/delayWhen.d.ts       |    47 +
 node_modules/rxjs/operator/delayWhen.js         |   192 +
 node_modules/rxjs/operator/delayWhen.js.map     |     1 +
 node_modules/rxjs/operator/dematerialize.d.ts   |    42 +
 node_modules/rxjs/operator/dematerialize.js     |    75 +
 node_modules/rxjs/operator/dematerialize.js.map |     1 +
 node_modules/rxjs/operator/distinct.d.ts        |    65 +
 node_modules/rxjs/operator/distinct.js          |   120 +
 node_modules/rxjs/operator/distinct.js.map      |     1 +
 .../rxjs/operator/distinctUntilChanged.d.ts     |     3 +
 .../rxjs/operator/distinctUntilChanged.js       |   108 +
 .../rxjs/operator/distinctUntilChanged.js.map   |     1 +
 .../rxjs/operator/distinctUntilKeyChanged.d.ts  |     3 +
 .../rxjs/operator/distinctUntilKeyChanged.js    |    70 +
 .../operator/distinctUntilKeyChanged.js.map     |     1 +
 node_modules/rxjs/operator/do.d.ts              |     4 +
 node_modules/rxjs/operator/do.js                |   113 +
 node_modules/rxjs/operator/do.js.map            |     1 +
 node_modules/rxjs/operator/elementAt.d.ts       |    44 +
 node_modules/rxjs/operator/elementAt.js         |   100 +
 node_modules/rxjs/operator/elementAt.js.map     |     1 +
 node_modules/rxjs/operator/every.d.ts           |    16 +
 node_modules/rxjs/operator/every.js             |    74 +
 node_modules/rxjs/operator/every.js.map         |     1 +
 node_modules/rxjs/operator/exhaust.d.ts         |    37 +
 node_modules/rxjs/operator/exhaust.js           |    89 +
 node_modules/rxjs/operator/exhaust.js.map       |     1 +
 node_modules/rxjs/operator/exhaustMap.d.ts      |     3 +
 node_modules/rxjs/operator/exhaustMap.js        |   138 +
 node_modules/rxjs/operator/exhaustMap.js.map    |     1 +
 node_modules/rxjs/operator/expand.d.ts          |    37 +
 node_modules/rxjs/operator/expand.js            |   151 +
 node_modules/rxjs/operator/expand.js.map        |     1 +
 node_modules/rxjs/operator/filter.d.ts          |     3 +
 node_modules/rxjs/operator/filter.js            |    92 +
 node_modules/rxjs/operator/filter.js.map        |     1 +
 node_modules/rxjs/operator/finally.d.ts         |    10 +
 node_modules/rxjs/operator/finally.js           |    43 +
 node_modules/rxjs/operator/finally.js.map       |     1 +
 node_modules/rxjs/operator/find.d.ts            |    29 +
 node_modules/rxjs/operator/find.js              |   101 +
 node_modules/rxjs/operator/find.js.map          |     1 +
 node_modules/rxjs/operator/findIndex.d.ts       |    36 +
 node_modules/rxjs/operator/findIndex.js         |    41 +
 node_modules/rxjs/operator/findIndex.js.map     |     1 +
 node_modules/rxjs/operator/first.d.ts           |     7 +
 node_modules/rxjs/operator/first.js             |   152 +
 node_modules/rxjs/operator/first.js.map         |     1 +
 node_modules/rxjs/operator/groupBy.d.ts         |    29 +
 node_modules/rxjs/operator/groupBy.js           |   274 +
 node_modules/rxjs/operator/groupBy.js.map       |     1 +
 node_modules/rxjs/operator/ignoreElements.d.ts  |    12 +
 node_modules/rxjs/operator/ignoreElements.js    |    47 +
 .../rxjs/operator/ignoreElements.js.map         |     1 +
 node_modules/rxjs/operator/isEmpty.d.ts         |    11 +
 node_modules/rxjs/operator/isEmpty.js           |    52 +
 node_modules/rxjs/operator/isEmpty.js.map       |     1 +
 node_modules/rxjs/operator/last.d.ts            |     7 +
 node_modules/rxjs/operator/last.js              |   119 +
 node_modules/rxjs/operator/last.js.map          |     1 +
 node_modules/rxjs/operator/let.d.ts             |     8 +
 node_modules/rxjs/operator/let.js               |    12 +
 node_modules/rxjs/operator/let.js.map           |     1 +
 node_modules/rxjs/operator/map.d.ts             |    43 +
 node_modules/rxjs/operator/map.js               |    87 +
 node_modules/rxjs/operator/map.js.map           |     1 +
 node_modules/rxjs/operator/mapTo.d.ts           |    28 +
 node_modules/rxjs/operator/mapTo.js             |    63 +
 node_modules/rxjs/operator/mapTo.js.map         |     1 +
 node_modules/rxjs/operator/materialize.d.ts     |    47 +
 node_modules/rxjs/operator/materialize.js       |    90 +
 node_modules/rxjs/operator/materialize.js.map   |     1 +
 node_modules/rxjs/operator/max.d.ts             |    33 +
 node_modules/rxjs/operator/max.js               |    41 +
 node_modules/rxjs/operator/max.js.map           |     1 +
 node_modules/rxjs/operator/merge.d.ts           |    30 +
 node_modules/rxjs/operator/merge.js             |   145 +
 node_modules/rxjs/operator/merge.js.map         |     1 +
 node_modules/rxjs/operator/mergeAll.d.ts        |    28 +
 node_modules/rxjs/operator/mergeAll.js          |   111 +
 node_modules/rxjs/operator/mergeAll.js.map      |     1 +
 node_modules/rxjs/operator/mergeMap.d.ts        |    37 +
 node_modules/rxjs/operator/mergeMap.js          |   171 +
 node_modules/rxjs/operator/mergeMap.js.map      |     1 +
 node_modules/rxjs/operator/mergeMapTo.d.ts      |    37 +
 node_modules/rxjs/operator/mergeMapTo.js        |   155 +
 node_modules/rxjs/operator/mergeMapTo.js.map    |     1 +
 node_modules/rxjs/operator/mergeScan.d.ts       |    66 +
 node_modules/rxjs/operator/mergeScan.js         |   129 +
 node_modules/rxjs/operator/mergeScan.js.map     |     1 +
 node_modules/rxjs/operator/min.d.ts             |    33 +
 node_modules/rxjs/operator/min.js               |    41 +
 node_modules/rxjs/operator/min.js.map           |     1 +
 node_modules/rxjs/operator/multicast.d.ts       |    15 +
 node_modules/rxjs/operator/multicast.js         |    57 +
 node_modules/rxjs/operator/multicast.js.map     |     1 +
 node_modules/rxjs/operator/observeOn.d.ts       |    81 +
 node_modules/rxjs/operator/observeOn.js         |   113 +
 node_modules/rxjs/operator/observeOn.js.map     |     1 +
 .../rxjs/operator/onErrorResumeNext.d.ts        |    15 +
 node_modules/rxjs/operator/onErrorResumeNext.js |   137 +
 .../rxjs/operator/onErrorResumeNext.js.map      |     1 +
 node_modules/rxjs/operator/pairwise.d.ts        |    37 +
 node_modules/rxjs/operator/pairwise.js          |    77 +
 node_modules/rxjs/operator/pairwise.js.map      |     1 +
 node_modules/rxjs/operator/partition.d.ts       |    43 +
 node_modules/rxjs/operator/partition.js         |    52 +
 node_modules/rxjs/operator/partition.js.map     |     1 +
 node_modules/rxjs/operator/pluck.d.ts           |    28 +
 node_modules/rxjs/operator/pluck.js             |    57 +
 node_modules/rxjs/operator/pluck.js.map         |     1 +
 node_modules/rxjs/operator/publish.d.ts         |     5 +
 node_modules/rxjs/operator/publish.js           |    23 +
 node_modules/rxjs/operator/publish.js.map       |     1 +
 node_modules/rxjs/operator/publishBehavior.d.ts |     9 +
 node_modules/rxjs/operator/publishBehavior.js   |    14 +
 .../rxjs/operator/publishBehavior.js.map        |     1 +
 node_modules/rxjs/operator/publishLast.d.ts     |     8 +
 node_modules/rxjs/operator/publishLast.js       |    13 +
 node_modules/rxjs/operator/publishLast.js.map   |     1 +
 node_modules/rxjs/operator/publishReplay.d.ts   |    12 +
 node_modules/rxjs/operator/publishReplay.js     |    18 +
 node_modules/rxjs/operator/publishReplay.js.map |     1 +
 node_modules/rxjs/operator/race.d.ts            |    38 +
 node_modules/rxjs/operator/race.js              |   111 +
 node_modules/rxjs/operator/race.js.map          |     1 +
 node_modules/rxjs/operator/reduce.d.ts          |    29 +
 node_modules/rxjs/operator/reduce.js            |   126 +
 node_modules/rxjs/operator/reduce.js.map        |     1 +
 node_modules/rxjs/operator/repeat.d.ts          |    14 +
 node_modules/rxjs/operator/repeat.js            |    70 +
 node_modules/rxjs/operator/repeat.js.map        |     1 +
 node_modules/rxjs/operator/repeatWhen.d.ts      |    16 +
 node_modules/rxjs/operator/repeatWhen.js        |   108 +
 node_modules/rxjs/operator/repeatWhen.js.map    |     1 +
 node_modules/rxjs/operator/retry.d.ts           |    18 +
 node_modules/rxjs/operator/retry.js             |    65 +
 node_modules/rxjs/operator/retry.js.map         |     1 +
 node_modules/rxjs/operator/retryWhen.d.ts       |    16 +
 node_modules/rxjs/operator/retryWhen.js         |   101 +
 node_modules/rxjs/operator/retryWhen.js.map     |     1 +
 node_modules/rxjs/operator/sample.d.ts          |    36 +
 node_modules/rxjs/operator/sample.js            |    88 +
 node_modules/rxjs/operator/sample.js.map        |     1 +
 node_modules/rxjs/operator/sampleTime.d.ts      |    39 +
 node_modules/rxjs/operator/sampleTime.js        |    91 +
 node_modules/rxjs/operator/sampleTime.js.map    |     1 +
 node_modules/rxjs/operator/scan.d.ts            |     4 +
 node_modules/rxjs/operator/scan.js              |   119 +
 node_modules/rxjs/operator/scan.js.map          |     1 +
 node_modules/rxjs/operator/sequenceEqual.d.ts   |    81 +
 node_modules/rxjs/operator/sequenceEqual.js     |   164 +
 node_modules/rxjs/operator/sequenceEqual.js.map |     1 +
 node_modules/rxjs/operator/share.d.ts           |    14 +
 node_modules/rxjs/operator/share.js             |    24 +
 node_modules/rxjs/operator/share.js.map         |     1 +
 node_modules/rxjs/operator/shareReplay.d.ts     |     7 +
 node_modules/rxjs/operator/shareReplay.js       |    22 +
 node_modules/rxjs/operator/shareReplay.js.map   |     1 +
 node_modules/rxjs/operator/single.d.ts          |    18 +
 node_modules/rxjs/operator/single.js            |    93 +
 node_modules/rxjs/operator/single.js.map        |     1 +
 node_modules/rxjs/operator/skip.d.ts            |    13 +
 node_modules/rxjs/operator/skip.js              |    51 +
 node_modules/rxjs/operator/skip.js.map          |     1 +
 node_modules/rxjs/operator/skipLast.d.ts        |    34 +
 node_modules/rxjs/operator/skipLast.js          |    93 +
 node_modules/rxjs/operator/skipLast.js.map      |     1 +
 node_modules/rxjs/operator/skipUntil.d.ts       |    14 +
 node_modules/rxjs/operator/skipUntil.js         |    71 +
 node_modules/rxjs/operator/skipUntil.js.map     |     1 +
 node_modules/rxjs/operator/skipWhile.d.ts       |    14 +
 node_modules/rxjs/operator/skipWhile.js         |    66 +
 node_modules/rxjs/operator/skipWhile.js.map     |     1 +
 node_modules/rxjs/operator/startWith.d.ts       |     9 +
 node_modules/rxjs/operator/startWith.js         |    46 +
 node_modules/rxjs/operator/startWith.js.map     |     1 +
 node_modules/rxjs/operator/subscribeOn.d.ts     |    14 +
 node_modules/rxjs/operator/subscribeOn.js       |    29 +
 node_modules/rxjs/operator/subscribeOn.js.map   |     1 +
 node_modules/rxjs/operator/switch.d.ts          |    44 +
 node_modules/rxjs/operator/switch.js            |   108 +
 node_modules/rxjs/operator/switch.js.map        |     1 +
 node_modules/rxjs/operator/switchMap.d.ts       |     3 +
 node_modules/rxjs/operator/switchMap.js         |   140 +
 node_modules/rxjs/operator/switchMap.js.map     |     1 +
 node_modules/rxjs/operator/switchMapTo.d.ts     |     3 +
 node_modules/rxjs/operator/switchMapTo.js       |   125 +
 node_modules/rxjs/operator/switchMapTo.js.map   |     1 +
 node_modules/rxjs/operator/take.d.ts            |    35 +
 node_modules/rxjs/operator/take.js              |    89 +
 node_modules/rxjs/operator/take.js.map          |     1 +
 node_modules/rxjs/operator/takeLast.d.ts        |    38 +
 node_modules/rxjs/operator/takeLast.js          |   107 +
 node_modules/rxjs/operator/takeLast.js.map      |     1 +
 node_modules/rxjs/operator/takeUntil.d.ts       |    35 +
 node_modules/rxjs/operator/takeUntil.js         |    75 +
 node_modules/rxjs/operator/takeUntil.js.map     |     1 +
 node_modules/rxjs/operator/takeWhile.d.ts       |    38 +
 node_modules/rxjs/operator/takeWhile.js         |    92 +
 node_modules/rxjs/operator/takeWhile.js.map     |     1 +
 node_modules/rxjs/operator/throttle.d.ts        |    47 +
 node_modules/rxjs/operator/throttle.js          |   142 +
 node_modules/rxjs/operator/throttle.js.map      |     1 +
 node_modules/rxjs/operator/throttleTime.d.ts    |    43 +
 node_modules/rxjs/operator/throttleTime.js      |   116 +
 node_modules/rxjs/operator/throttleTime.js.map  |     1 +
 node_modules/rxjs/operator/timeInterval.d.ts    |    14 +
 node_modules/rxjs/operator/timeInterval.js      |    59 +
 node_modules/rxjs/operator/timeInterval.js.map  |     1 +
 node_modules/rxjs/operator/timeout.d.ts         |    68 +
 node_modules/rxjs/operator/timeout.js           |   141 +
 node_modules/rxjs/operator/timeout.js.map       |     1 +
 node_modules/rxjs/operator/timeoutWith.d.ts     |     4 +
 node_modules/rxjs/operator/timeoutWith.js       |    87 +
 node_modules/rxjs/operator/timeoutWith.js.map   |     1 +
 node_modules/rxjs/operator/timestamp.d.ts       |    14 +
 node_modules/rxjs/operator/timestamp.js         |    50 +
 node_modules/rxjs/operator/timestamp.js.map     |     1 +
 node_modules/rxjs/operator/toArray.d.ts         |     7 +
 node_modules/rxjs/operator/toArray.js           |    45 +
 node_modules/rxjs/operator/toArray.js.map       |     1 +
 node_modules/rxjs/operator/toPromise.d.ts       |     3 +
 node_modules/rxjs/operator/toPromise.js         |    72 +
 node_modules/rxjs/operator/toPromise.js.map     |     1 +
 node_modules/rxjs/operator/window.d.ts          |    38 +
 node_modules/rxjs/operator/window.js            |   110 +
 node_modules/rxjs/operator/window.js.map        |     1 +
 node_modules/rxjs/operator/windowCount.d.ts     |    50 +
 node_modules/rxjs/operator/windowCount.js       |   131 +
 node_modules/rxjs/operator/windowCount.js.map   |     1 +
 node_modules/rxjs/operator/windowTime.d.ts      |    65 +
 node_modules/rxjs/operator/windowTime.js        |   161 +
 node_modules/rxjs/operator/windowTime.js.map    |     1 +
 node_modules/rxjs/operator/windowToggle.d.ts    |    43 +
 node_modules/rxjs/operator/windowToggle.js      |   180 +
 node_modules/rxjs/operator/windowToggle.js.map  |     1 +
 node_modules/rxjs/operator/windowWhen.d.ts      |    40 +
 node_modules/rxjs/operator/windowWhen.js        |   127 +
 node_modules/rxjs/operator/windowWhen.js.map    |     1 +
 node_modules/rxjs/operator/withLatestFrom.d.ts  |    15 +
 node_modules/rxjs/operator/withLatestFrom.js    |   130 +
 .../rxjs/operator/withLatestFrom.js.map         |     1 +
 node_modules/rxjs/operator/zip.d.ts             |    57 +
 node_modules/rxjs/operator/zip.js               |   279 +
 node_modules/rxjs/operator/zip.js.map           |     1 +
 node_modules/rxjs/operator/zipAll.d.ts          |     8 +
 node_modules/rxjs/operator/zipAll.js            |    13 +
 node_modules/rxjs/operator/zipAll.js.map        |     1 +
 node_modules/rxjs/package.json                  |   193 +
 node_modules/rxjs/scheduler/Action.d.ts         |    30 +
 node_modules/rxjs/scheduler/Action.js           |    44 +
 node_modules/rxjs/scheduler/Action.js.map       |     1 +
 .../rxjs/scheduler/AnimationFrameAction.d.ts    |    14 +
 .../rxjs/scheduler/AnimationFrameAction.js      |    55 +
 .../rxjs/scheduler/AnimationFrameAction.js.map  |     1 +
 .../rxjs/scheduler/AnimationFrameScheduler.d.ts |     5 +
 .../rxjs/scheduler/AnimationFrameScheduler.js   |    37 +
 .../scheduler/AnimationFrameScheduler.js.map    |     1 +
 node_modules/rxjs/scheduler/AsapAction.d.ts     |    14 +
 node_modules/rxjs/scheduler/AsapAction.js       |    55 +
 node_modules/rxjs/scheduler/AsapAction.js.map   |     1 +
 node_modules/rxjs/scheduler/AsapScheduler.d.ts  |     5 +
 node_modules/rxjs/scheduler/AsapScheduler.js    |    37 +
 .../rxjs/scheduler/AsapScheduler.js.map         |     1 +
 node_modules/rxjs/scheduler/AsyncAction.d.ts    |    27 +
 node_modules/rxjs/scheduler/AsyncAction.js      |   142 +
 node_modules/rxjs/scheduler/AsyncAction.js.map  |     1 +
 node_modules/rxjs/scheduler/AsyncScheduler.d.ts |    19 +
 node_modules/rxjs/scheduler/AsyncScheduler.js   |    51 +
 .../rxjs/scheduler/AsyncScheduler.js.map        |     1 +
 node_modules/rxjs/scheduler/QueueAction.d.ts    |    16 +
 node_modules/rxjs/scheduler/QueueAction.js      |    49 +
 node_modules/rxjs/scheduler/QueueAction.js.map  |     1 +
 node_modules/rxjs/scheduler/QueueScheduler.d.ts |     3 +
 node_modules/rxjs/scheduler/QueueScheduler.js   |    16 +
 .../rxjs/scheduler/QueueScheduler.js.map        |     1 +
 .../rxjs/scheduler/VirtualTimeScheduler.d.ts    |    33 +
 .../rxjs/scheduler/VirtualTimeScheduler.js      |   113 +
 .../rxjs/scheduler/VirtualTimeScheduler.js.map  |     1 +
 node_modules/rxjs/scheduler/animationFrame.d.ts |    32 +
 node_modules/rxjs/scheduler/animationFrame.js   |    35 +
 .../rxjs/scheduler/animationFrame.js.map        |     1 +
 node_modules/rxjs/scheduler/asap.d.ts           |    36 +
 node_modules/rxjs/scheduler/asap.js             |    39 +
 node_modules/rxjs/scheduler/asap.js.map         |     1 +
 node_modules/rxjs/scheduler/async.d.ts          |    44 +
 node_modules/rxjs/scheduler/async.js            |    47 +
 node_modules/rxjs/scheduler/async.js.map        |     1 +
 node_modules/rxjs/scheduler/queue.d.ts          |    63 +
 node_modules/rxjs/scheduler/queue.js            |    66 +
 node_modules/rxjs/scheduler/queue.js.map        |     1 +
 node_modules/rxjs/src/AsyncSubject.ts           |    45 +
 node_modules/rxjs/src/BehaviorSubject.ts        |    40 +
 node_modules/rxjs/src/InnerSubscriber.ts        |    29 +
 node_modules/rxjs/src/MiscJSDoc.ts              |   451 +
 node_modules/rxjs/src/Notification.ts           |   131 +
 node_modules/rxjs/src/Observable.ts             |   289 +
 node_modules/rxjs/src/Observer.ts               |    36 +
 node_modules/rxjs/src/Operator.ts               |     6 +
 node_modules/rxjs/src/OuterSubscriber.ts        |    23 +
 node_modules/rxjs/src/ReplaySubject.ts          |   104 +
 node_modules/rxjs/src/Rx.global.js              |     5 +
 node_modules/rxjs/src/Rx.ts                     |   222 +
 node_modules/rxjs/src/Scheduler.ts              |    63 +
 node_modules/rxjs/src/Subject.ts                |   170 +
 node_modules/rxjs/src/SubjectSubscription.ts    |    39 +
 node_modules/rxjs/src/Subscriber.ts             |   278 +
 node_modules/rxjs/src/Subscription.ts           |   222 +
 .../rxjs/src/add/observable/bindCallback.ts     |    10 +
 .../rxjs/src/add/observable/bindNodeCallback.ts |    10 +
 .../rxjs/src/add/observable/combineLatest.ts    |    10 +
 node_modules/rxjs/src/add/observable/concat.ts  |    10 +
 node_modules/rxjs/src/add/observable/defer.ts   |    10 +
 .../rxjs/src/add/observable/dom/ajax.ts         |    11 +
 .../rxjs/src/add/observable/dom/webSocket.ts    |    10 +
 node_modules/rxjs/src/add/observable/empty.ts   |    10 +
 .../rxjs/src/add/observable/forkJoin.ts         |    10 +
 node_modules/rxjs/src/add/observable/from.ts    |    10 +
 .../rxjs/src/add/observable/fromEvent.ts        |    10 +
 .../rxjs/src/add/observable/fromEventPattern.ts |    10 +
 .../rxjs/src/add/observable/fromPromise.ts      |    10 +
 .../rxjs/src/add/observable/generate.ts         |    10 +
 node_modules/rxjs/src/add/observable/if.ts      |     4 +
 .../rxjs/src/add/observable/interval.ts         |    10 +
 node_modules/rxjs/src/add/observable/merge.ts   |    10 +
 node_modules/rxjs/src/add/observable/never.ts   |    10 +
 node_modules/rxjs/src/add/observable/of.ts      |    10 +
 .../src/add/observable/onErrorResumeNext.ts     |    10 +
 node_modules/rxjs/src/add/observable/pairs.ts   |    10 +
 node_modules/rxjs/src/add/observable/race.ts    |    10 +
 node_modules/rxjs/src/add/observable/range.ts   |    10 +
 node_modules/rxjs/src/add/observable/throw.ts   |     4 +
 node_modules/rxjs/src/add/observable/timer.ts   |    10 +
 node_modules/rxjs/src/add/observable/using.ts   |    10 +
 node_modules/rxjs/src/add/observable/zip.ts     |    10 +
 node_modules/rxjs/src/add/operator/audit.ts     |    10 +
 node_modules/rxjs/src/add/operator/auditTime.ts |    10 +
 node_modules/rxjs/src/add/operator/buffer.ts    |    11 +
 .../rxjs/src/add/operator/bufferCount.ts        |    11 +
 .../rxjs/src/add/operator/bufferTime.ts         |    11 +
 .../rxjs/src/add/operator/bufferToggle.ts       |    11 +
 .../rxjs/src/add/operator/bufferWhen.ts         |    11 +
 node_modules/rxjs/src/add/operator/catch.ts     |    13 +
 .../rxjs/src/add/operator/combineAll.ts         |    11 +
 .../rxjs/src/add/operator/combineLatest.ts      |    11 +
 node_modules/rxjs/src/add/operator/concat.ts    |    11 +
 node_modules/rxjs/src/add/operator/concatAll.ts |    11 +
 node_modules/rxjs/src/add/operator/concatMap.ts |    11 +
 .../rxjs/src/add/operator/concatMapTo.ts        |    11 +
 node_modules/rxjs/src/add/operator/count.ts     |    11 +
 node_modules/rxjs/src/add/operator/debounce.ts  |    11 +
 .../rxjs/src/add/operator/debounceTime.ts       |    11 +
 .../rxjs/src/add/operator/defaultIfEmpty.ts     |    11 +
 node_modules/rxjs/src/add/operator/delay.ts     |    11 +
 node_modules/rxjs/src/add/operator/delayWhen.ts |    11 +
 .../rxjs/src/add/operator/dematerialize.ts      |    11 +
 node_modules/rxjs/src/add/operator/distinct.ts  |    10 +
 .../src/add/operator/distinctUntilChanged.ts    |    11 +
 .../src/add/operator/distinctUntilKeyChanged.ts |    11 +
 node_modules/rxjs/src/add/operator/do.ts        |    13 +
 node_modules/rxjs/src/add/operator/elementAt.ts |    11 +
 node_modules/rxjs/src/add/operator/every.ts     |    11 +
 node_modules/rxjs/src/add/operator/exhaust.ts   |    11 +
 .../rxjs/src/add/operator/exhaustMap.ts         |    11 +
 node_modules/rxjs/src/add/operator/expand.ts    |    11 +
 node_modules/rxjs/src/add/operator/filter.ts    |    11 +
 node_modules/rxjs/src/add/operator/finally.ts   |    13 +
 node_modules/rxjs/src/add/operator/find.ts      |    11 +
 node_modules/rxjs/src/add/operator/findIndex.ts |    11 +
 node_modules/rxjs/src/add/operator/first.ts     |    11 +
 node_modules/rxjs/src/add/operator/groupBy.ts   |    11 +
 .../rxjs/src/add/operator/ignoreElements.ts     |    11 +
 node_modules/rxjs/src/add/operator/isEmpty.ts   |    11 +
 node_modules/rxjs/src/add/operator/last.ts      |    11 +
 node_modules/rxjs/src/add/operator/let.ts       |    13 +
 node_modules/rxjs/src/add/operator/map.ts       |    11 +
 node_modules/rxjs/src/add/operator/mapTo.ts     |    11 +
 .../rxjs/src/add/operator/materialize.ts        |    11 +
 node_modules/rxjs/src/add/operator/max.ts       |    11 +
 node_modules/rxjs/src/add/operator/merge.ts     |    11 +
 node_modules/rxjs/src/add/operator/mergeAll.ts  |    11 +
 node_modules/rxjs/src/add/operator/mergeMap.ts  |    13 +
 .../rxjs/src/add/operator/mergeMapTo.ts         |    13 +
 node_modules/rxjs/src/add/operator/mergeScan.ts |    11 +
 node_modules/rxjs/src/add/operator/min.ts       |    11 +
 node_modules/rxjs/src/add/operator/multicast.ts |    11 +
 node_modules/rxjs/src/add/operator/observeOn.ts |    11 +
 .../rxjs/src/add/operator/onErrorResumeNext.ts  |    10 +
 node_modules/rxjs/src/add/operator/pairwise.ts  |    11 +
 node_modules/rxjs/src/add/operator/partition.ts |    11 +
 node_modules/rxjs/src/add/operator/pluck.ts     |    11 +
 node_modules/rxjs/src/add/operator/publish.ts   |    11 +
 .../rxjs/src/add/operator/publishBehavior.ts    |    11 +
 .../rxjs/src/add/operator/publishLast.ts        |    11 +
 .../rxjs/src/add/operator/publishReplay.ts      |    11 +
 node_modules/rxjs/src/add/operator/race.ts      |    11 +
 node_modules/rxjs/src/add/operator/reduce.ts    |    11 +
 node_modules/rxjs/src/add/operator/repeat.ts    |    11 +
 .../rxjs/src/add/operator/repeatWhen.ts         |    11 +
 node_modules/rxjs/src/add/operator/retry.ts     |    11 +
 node_modules/rxjs/src/add/operator/retryWhen.ts |    11 +
 node_modules/rxjs/src/add/operator/sample.ts    |    11 +
 .../rxjs/src/add/operator/sampleTime.ts         |    11 +
 node_modules/rxjs/src/add/operator/scan.ts      |    12 +
 .../rxjs/src/add/operator/sequenceEqual.ts      |    11 +
 node_modules/rxjs/src/add/operator/share.ts     |    11 +
 .../rxjs/src/add/operator/shareReplay.ts        |    11 +
 node_modules/rxjs/src/add/operator/single.ts    |    11 +
 node_modules/rxjs/src/add/operator/skip.ts      |    11 +
 node_modules/rxjs/src/add/operator/skipLast.ts  |    10 +
 node_modules/rxjs/src/add/operator/skipUntil.ts |    11 +
 node_modules/rxjs/src/add/operator/skipWhile.ts |    11 +
 node_modules/rxjs/src/add/operator/startWith.ts |    11 +
 .../rxjs/src/add/operator/subscribeOn.ts        |    11 +
 node_modules/rxjs/src/add/operator/switch.ts    |    13 +
 node_modules/rxjs/src/add/operator/switchMap.ts |    11 +
 .../rxjs/src/add/operator/switchMapTo.ts        |    11 +
 node_modules/rxjs/src/add/operator/take.ts      |    11 +
 node_modules/rxjs/src/add/operator/takeLast.ts  |    10 +
 node_modules/rxjs/src/add/operator/takeUntil.ts |    11 +
 node_modules/rxjs/src/add/operator/takeWhile.ts |    11 +
 node_modules/rxjs/src/add/operator/throttle.ts  |    11 +
 .../rxjs/src/add/operator/throttleTime.ts       |    11 +
 .../rxjs/src/add/operator/timeInterval.ts       |    11 +
 node_modules/rxjs/src/add/operator/timeout.ts   |    11 +
 .../rxjs/src/add/operator/timeoutWith.ts        |    11 +
 node_modules/rxjs/src/add/operator/timestamp.ts |    10 +
 node_modules/rxjs/src/add/operator/toArray.ts   |    11 +
 node_modules/rxjs/src/add/operator/toPromise.ts |    11 +
 node_modules/rxjs/src/add/operator/window.ts    |    11 +
 .../rxjs/src/add/operator/windowCount.ts        |    11 +
 .../rxjs/src/add/operator/windowTime.ts         |    11 +
 .../rxjs/src/add/operator/windowToggle.ts       |    11 +
 .../rxjs/src/add/operator/windowWhen.ts         |    11 +
 .../rxjs/src/add/operator/withLatestFrom.ts     |    11 +
 node_modules/rxjs/src/add/operator/zip.ts       |    11 +
 node_modules/rxjs/src/add/operator/zipAll.ts    |    11 +
 .../rxjs/src/observable/ArrayLikeObservable.ts  |    72 +
 .../rxjs/src/observable/ArrayObservable.ts      |   129 +
 .../src/observable/BoundCallbackObservable.ts   |   285 +
 .../observable/BoundNodeCallbackObservable.ts   |   279 +
 .../src/observable/ConnectableObservable.ts     |   179 +
 .../rxjs/src/observable/DeferObservable.ts      |    94 +
 .../rxjs/src/observable/EmptyObservable.ts      |    83 +
 .../rxjs/src/observable/ErrorObservable.ts      |    85 +
 .../rxjs/src/observable/ForkJoinObservable.ts   |   143 +
 .../rxjs/src/observable/FromEventObservable.ts  |   165 +
 .../observable/FromEventPatternObservable.ts    |   110 +
 .../rxjs/src/observable/FromObservable.ts       |   115 +
 .../rxjs/src/observable/GenerateObservable.ts   |   295 +
 .../rxjs/src/observable/IfObservable.ts         |    59 +
 .../rxjs/src/observable/IntervalObservable.ts   |    85 +
 .../rxjs/src/observable/IteratorObservable.ts   |   168 +
 .../rxjs/src/observable/NeverObservable.ts      |    53 +
 .../rxjs/src/observable/PairsObservable.ts      |    95 +
 .../rxjs/src/observable/PromiseObservable.ts    |   130 +
 .../rxjs/src/observable/RangeObservable.ts      |   106 +
 .../rxjs/src/observable/ScalarObservable.ts     |    57 +
 .../src/observable/SubscribeOnObservable.ts     |    50 +
 .../rxjs/src/observable/TimerObservable.ts      |   115 +
 .../rxjs/src/observable/UsingObservable.ts      |    57 +
 .../rxjs/src/observable/bindCallback.ts         |     3 +
 .../rxjs/src/observable/bindNodeCallback.ts     |     3 +
 .../rxjs/src/observable/combineLatest.ts        |   161 +
 node_modules/rxjs/src/observable/concat.ts      |     3 +
 node_modules/rxjs/src/observable/defer.ts       |     3 +
 .../rxjs/src/observable/dom/AjaxObservable.ts   |   468 +
 .../rxjs/src/observable/dom/MiscJSDoc.ts        |    73 +
 .../rxjs/src/observable/dom/WebSocketSubject.ts |   280 +
 node_modules/rxjs/src/observable/dom/ajax.ts    |     3 +
 .../rxjs/src/observable/dom/webSocket.ts        |     3 +
 node_modules/rxjs/src/observable/empty.ts       |     3 +
 node_modules/rxjs/src/observable/forkJoin.ts    |     3 +
 node_modules/rxjs/src/observable/from.ts        |     3 +
 node_modules/rxjs/src/observable/fromEvent.ts   |     3 +
 .../rxjs/src/observable/fromEventPattern.ts     |     3 +
 node_modules/rxjs/src/observable/fromPromise.ts |     3 +
 node_modules/rxjs/src/observable/generate.ts    |     3 +
 node_modules/rxjs/src/observable/if.ts          |     3 +
 node_modules/rxjs/src/observable/interval.ts    |     3 +
 node_modules/rxjs/src/observable/merge.ts       |     3 +
 node_modules/rxjs/src/observable/never.ts       |     3 +
 node_modules/rxjs/src/observable/of.ts          |     3 +
 .../rxjs/src/observable/onErrorResumeNext.ts    |     3 +
 node_modules/rxjs/src/observable/pairs.ts       |     3 +
 node_modules/rxjs/src/observable/race.ts        |     3 +
 node_modules/rxjs/src/observable/range.ts       |     3 +
 node_modules/rxjs/src/observable/throw.ts       |     3 +
 node_modules/rxjs/src/observable/timer.ts       |     3 +
 node_modules/rxjs/src/observable/using.ts       |     3 +
 node_modules/rxjs/src/observable/zip.ts         |     3 +
 node_modules/rxjs/src/operator/audit.ts         |   119 +
 node_modules/rxjs/src/operator/auditTime.ts     |   106 +
 node_modules/rxjs/src/operator/buffer.ts        |    79 +
 node_modules/rxjs/src/operator/bufferCount.ts   |   142 +
 node_modules/rxjs/src/operator/bufferTime.ts    |   234 +
 node_modules/rxjs/src/operator/bufferToggle.ts  |   170 +
 node_modules/rxjs/src/operator/bufferWhen.ts    |   134 +
 node_modules/rxjs/src/operator/catch.ts         |   114 +
 node_modules/rxjs/src/operator/combineAll.ts    |    46 +
 node_modules/rxjs/src/operator/combineLatest.ts |   169 +
 node_modules/rxjs/src/operator/concat.ts        |   186 +
 node_modules/rxjs/src/operator/concatAll.ts     |    60 +
 node_modules/rxjs/src/operator/concatMap.ts     |    71 +
 node_modules/rxjs/src/operator/concatMapTo.ts   |    68 +
 node_modules/rxjs/src/operator/count.ts         |   110 +
 node_modules/rxjs/src/operator/debounce.ts      |   136 +
 node_modules/rxjs/src/operator/debounceTime.ts  |   118 +
 .../rxjs/src/operator/defaultIfEmpty.ts         |    77 +
 node_modules/rxjs/src/operator/delay.ts         |   148 +
 node_modules/rxjs/src/operator/delayWhen.ts     |   204 +
 node_modules/rxjs/src/operator/dematerialize.ts |    69 +
 node_modules/rxjs/src/operator/distinct.ts      |   124 +
 .../rxjs/src/operator/distinctUntilChanged.ts   |   116 +
 .../src/operator/distinctUntilKeyChanged.ts     |    73 +
 node_modules/rxjs/src/operator/do.ts            |   121 +
 node_modules/rxjs/src/operator/elementAt.ts     |    95 +
 node_modules/rxjs/src/operator/every.ts         |    74 +
 node_modules/rxjs/src/operator/exhaust.ts       |    87 +
 node_modules/rxjs/src/operator/exhaustMap.ts    |   149 +
 node_modules/rxjs/src/operator/expand.ts        |   168 +
 node_modules/rxjs/src/operator/filter.ts        |    98 +
 node_modules/rxjs/src/operator/finally.ts       |    37 +
 node_modules/rxjs/src/operator/find.ts          |   106 +
 node_modules/rxjs/src/operator/findIndex.ts     |    41 +
 node_modules/rxjs/src/operator/first.ts         |   172 +
 node_modules/rxjs/src/operator/groupBy.ts       |   293 +
 .../rxjs/src/operator/ignoreElements.ts         |    35 +
 node_modules/rxjs/src/operator/isEmpty.ts       |    48 +
 node_modules/rxjs/src/operator/last.ts          |   138 +
 node_modules/rxjs/src/operator/let.ts           |    11 +
 node_modules/rxjs/src/operator/map.ts           |    82 +
 node_modules/rxjs/src/operator/mapTo.ts         |    65 +
 node_modules/rxjs/src/operator/materialize.ts   |    85 +
 node_modules/rxjs/src/operator/max.ts           |    40 +
 node_modules/rxjs/src/operator/merge.ts         |   168 +
 node_modules/rxjs/src/operator/mergeAll.ts      |   109 +
 node_modules/rxjs/src/operator/mergeMap.ts      |   176 +
 node_modules/rxjs/src/operator/mergeMapTo.ts    |   167 +
 node_modules/rxjs/src/operator/mergeScan.ts     |   133 +
 node_modules/rxjs/src/operator/min.ts           |    40 +
 node_modules/rxjs/src/operator/multicast.ts     |    67 +
 node_modules/rxjs/src/operator/observeOn.ts     |   112 +
 .../rxjs/src/operator/onErrorResumeNext.ts      |   155 +
 node_modules/rxjs/src/operator/pairwise.ts      |    72 +
 node_modules/rxjs/src/operator/partition.ts     |    51 +
 node_modules/rxjs/src/operator/pluck.ts         |    53 +
 node_modules/rxjs/src/operator/publish.ts       |    29 +
 .../rxjs/src/operator/publishBehavior.ts        |    14 +
 node_modules/rxjs/src/operator/publishLast.ts   |    13 +
 node_modules/rxjs/src/operator/publishReplay.ts |    19 +
 node_modules/rxjs/src/operator/race.ts          |   125 +
 node_modules/rxjs/src/operator/reduce.ts        |   125 +
 node_modules/rxjs/src/operator/repeat.ts        |    60 +
 node_modules/rxjs/src/operator/repeatWhen.ts    |   120 +
 node_modules/rxjs/src/operator/retry.ts         |    58 +
 node_modules/rxjs/src/operator/retryWhen.ts     |   116 +
 node_modules/rxjs/src/operator/sample.ts        |    89 +
 node_modules/rxjs/src/operator/sampleTime.ts    |    92 +
 node_modules/rxjs/src/operator/scan.ts          |   112 +
 node_modules/rxjs/src/operator/sequenceEqual.ts |   161 +
 node_modules/rxjs/src/operator/share.ts         |    23 +
 node_modules/rxjs/src/operator/shareReplay.ts   |    26 +
 node_modules/rxjs/src/operator/single.ts        |    93 +
 node_modules/rxjs/src/operator/skip.ts          |    47 +
 node_modules/rxjs/src/operator/skipLast.ts      |    90 +
 node_modules/rxjs/src/operator/skipUntil.ts     |    76 +
 node_modules/rxjs/src/operator/skipWhile.ts     |    64 +
 node_modules/rxjs/src/operator/startWith.ts     |    49 +
 node_modules/rxjs/src/operator/subscribeOn.ts   |    32 +
 node_modules/rxjs/src/operator/switch.ts        |   113 +
 node_modules/rxjs/src/operator/switchMap.ts     |   150 +
 node_modules/rxjs/src/operator/switchMapTo.ts   |   140 +
 node_modules/rxjs/src/operator/take.ts          |    84 +
 node_modules/rxjs/src/operator/takeLast.ts      |   106 +
 node_modules/rxjs/src/operator/takeUntil.ts     |    78 +
 node_modules/rxjs/src/operator/takeWhile.ts     |    88 +
 node_modules/rxjs/src/operator/throttle.ts      |   159 +
 node_modules/rxjs/src/operator/throttleTime.ts  |   123 +
 node_modules/rxjs/src/operator/timeInterval.ts  |    54 +
 node_modules/rxjs/src/operator/timeout.ts       |   148 +
 node_modules/rxjs/src/operator/timeoutWith.ts   |    99 +
 node_modules/rxjs/src/operator/timestamp.ts     |    41 +
 node_modules/rxjs/src/operator/toArray.ts       |    41 +
 node_modules/rxjs/src/operator/toPromise.ts     |    75 +
 node_modules/rxjs/src/operator/window.ts        |   120 +
 node_modules/rxjs/src/operator/windowCount.ts   |   131 +
 node_modules/rxjs/src/operator/windowTime.ts    |   261 +
 node_modules/rxjs/src/operator/windowToggle.ts  |   207 +
 node_modules/rxjs/src/operator/windowWhen.ts    |   139 +
 .../rxjs/src/operator/withLatestFrom.ts         |   146 +
 node_modules/rxjs/src/operator/zip.ts           |   341 +
 node_modules/rxjs/src/operator/zipAll.ts        |    12 +
 node_modules/rxjs/src/scheduler/Action.ts       |    35 +
 .../rxjs/src/scheduler/AnimationFrameAction.ts  |    48 +
 .../src/scheduler/AnimationFrameScheduler.ts    |    31 +
 node_modules/rxjs/src/scheduler/AsapAction.ts   |    48 +
 .../rxjs/src/scheduler/AsapScheduler.ts         |    31 +
 node_modules/rxjs/src/scheduler/AsyncAction.ts  |   154 +
 .../rxjs/src/scheduler/AsyncScheduler.ts        |    47 +
 node_modules/rxjs/src/scheduler/QueueAction.ts  |    43 +
 .../rxjs/src/scheduler/QueueScheduler.ts        |     4 +
 .../rxjs/src/scheduler/VirtualTimeScheduler.ts  |   105 +
 .../rxjs/src/scheduler/animationFrame.ts        |    35 +
 node_modules/rxjs/src/scheduler/asap.ts         |    39 +
 node_modules/rxjs/src/scheduler/async.ts        |    47 +
 node_modules/rxjs/src/scheduler/queue.ts        |    66 +
 node_modules/rxjs/src/symbol/iterator.ts        |    38 +
 node_modules/rxjs/src/symbol/observable.ts      |    26 +
 node_modules/rxjs/src/symbol/rxSubscriber.ts    |    11 +
 node_modules/rxjs/src/testing/ColdObservable.ts |    47 +
 node_modules/rxjs/src/testing/HotObservable.ts  |    52 +
 .../rxjs/src/testing/SubscriptionLog.ts         |     5 +
 .../rxjs/src/testing/SubscriptionLoggable.ts    |    21 +
 node_modules/rxjs/src/testing/TestMessage.ts    |     6 +
 node_modules/rxjs/src/testing/TestScheduler.ts  |   244 +
 node_modules/rxjs/src/util/AnimationFrame.ts    |    29 +
 .../rxjs/src/util/ArgumentOutOfRangeError.ts    |    18 +
 node_modules/rxjs/src/util/EmptyError.ts        |    18 +
 node_modules/rxjs/src/util/FastMap.ts           |    30 +
 node_modules/rxjs/src/util/Immediate.ts         |   238 +
 node_modules/rxjs/src/util/Map.ts               |     4 +
 node_modules/rxjs/src/util/MapPolyfill.ts       |    43 +
 .../rxjs/src/util/ObjectUnsubscribedError.ts    |    17 +
 node_modules/rxjs/src/util/Set.ts               |    40 +
 node_modules/rxjs/src/util/TimeoutError.ts      |    15 +
 .../rxjs/src/util/UnsubscriptionError.ts        |    15 +
 node_modules/rxjs/src/util/applyMixins.ts       |    10 +
 node_modules/rxjs/src/util/assign.ts            |    20 +
 node_modules/rxjs/src/util/errorObject.ts       |     2 +
 node_modules/rxjs/src/util/isArray.ts           |     1 +
 node_modules/rxjs/src/util/isArrayLike.ts       |     1 +
 node_modules/rxjs/src/util/isDate.ts            |     3 +
 node_modules/rxjs/src/util/isFunction.ts        |     3 +
 node_modules/rxjs/src/util/isNumeric.ts         |     9 +
 node_modules/rxjs/src/util/isObject.ts          |     3 +
 node_modules/rxjs/src/util/isPromise.ts         |     3 +
 node_modules/rxjs/src/util/isScheduler.ts       |     4 +
 node_modules/rxjs/src/util/noop.ts              |     2 +
 node_modules/rxjs/src/util/not.ts               |     8 +
 node_modules/rxjs/src/util/root.ts              |    31 +
 node_modules/rxjs/src/util/subscribeToResult.ts |    84 +
 node_modules/rxjs/src/util/toSubscriber.ts      |    25 +
 node_modules/rxjs/src/util/tryCatch.ts          |    17 +
 node_modules/rxjs/symbol/iterator.d.ts          |     6 +
 node_modules/rxjs/symbol/iterator.js            |    38 +
 node_modules/rxjs/symbol/iterator.js.map        |     1 +
 node_modules/rxjs/symbol/observable.d.ts        |     6 +
 node_modules/rxjs/symbol/observable.js          |    26 +
 node_modules/rxjs/symbol/observable.js.map      |     1 +
 node_modules/rxjs/symbol/rxSubscriber.d.ts      |     5 +
 node_modules/rxjs/symbol/rxSubscriber.js        |    10 +
 node_modules/rxjs/symbol/rxSubscriber.js.map    |     1 +
 node_modules/rxjs/testing/ColdObservable.d.ts   |    20 +
 node_modules/rxjs/testing/ColdObservable.js     |    46 +
 node_modules/rxjs/testing/ColdObservable.js.map |     1 +
 node_modules/rxjs/testing/HotObservable.d.ts    |    22 +
 node_modules/rxjs/testing/HotObservable.js      |    48 +
 node_modules/rxjs/testing/HotObservable.js.map  |     1 +
 node_modules/rxjs/testing/SubscriptionLog.d.ts  |     5 +
 node_modules/rxjs/testing/SubscriptionLog.js    |    11 +
 .../rxjs/testing/SubscriptionLog.js.map         |     1 +
 .../rxjs/testing/SubscriptionLoggable.d.ts      |     8 +
 .../rxjs/testing/SubscriptionLoggable.js        |    19 +
 .../rxjs/testing/SubscriptionLoggable.js.map    |     1 +
 node_modules/rxjs/testing/TestMessage.d.ts      |     5 +
 node_modules/rxjs/testing/TestMessage.js        |     2 +
 node_modules/rxjs/testing/TestMessage.js.map    |     1 +
 node_modules/rxjs/testing/TestScheduler.d.ts    |    28 +
 node_modules/rxjs/testing/TestScheduler.js      |   223 +
 node_modules/rxjs/testing/TestScheduler.js.map  |     1 +
 node_modules/rxjs/util/AnimationFrame.d.ts      |     6 +
 node_modules/rxjs/util/AnimationFrame.js        |    34 +
 node_modules/rxjs/util/AnimationFrame.js.map    |     1 +
 .../rxjs/util/ArgumentOutOfRangeError.d.ts      |    13 +
 .../rxjs/util/ArgumentOutOfRangeError.js        |    28 +
 .../rxjs/util/ArgumentOutOfRangeError.js.map    |     1 +
 node_modules/rxjs/util/EmptyError.d.ts          |    13 +
 node_modules/rxjs/util/EmptyError.js            |    28 +
 node_modules/rxjs/util/EmptyError.js.map        |     1 +
 node_modules/rxjs/util/FastMap.d.ts             |     8 +
 node_modules/rxjs/util/FastMap.js               |    31 +
 node_modules/rxjs/util/FastMap.js.map           |     1 +
 node_modules/rxjs/util/Immediate.d.ts           |    23 +
 node_modules/rxjs/util/Immediate.js             |   209 +
 node_modules/rxjs/util/Immediate.js.map         |     1 +
 node_modules/rxjs/util/Map.d.ts                 |     1 +
 node_modules/rxjs/util/Map.js                   |     5 +
 node_modules/rxjs/util/Map.js.map               |     1 +
 node_modules/rxjs/util/MapPolyfill.d.ts         |    10 +
 node_modules/rxjs/util/MapPolyfill.js           |    47 +
 node_modules/rxjs/util/MapPolyfill.js.map       |     1 +
 .../rxjs/util/ObjectUnsubscribedError.d.ts      |    12 +
 .../rxjs/util/ObjectUnsubscribedError.js        |    27 +
 .../rxjs/util/ObjectUnsubscribedError.js.map    |     1 +
 node_modules/rxjs/util/Set.d.ts                 |    11 +
 node_modules/rxjs/util/Set.js                   |    33 +
 node_modules/rxjs/util/Set.js.map               |     1 +
 node_modules/rxjs/util/TimeoutError.d.ts        |    10 +
 node_modules/rxjs/util/TimeoutError.js          |    25 +
 node_modules/rxjs/util/TimeoutError.js.map      |     1 +
 node_modules/rxjs/util/UnsubscriptionError.d.ts |     8 +
 node_modules/rxjs/util/UnsubscriptionError.js   |    25 +
 .../rxjs/util/UnsubscriptionError.js.map        |     1 +
 node_modules/rxjs/util/applyMixins.d.ts         |     1 +
 node_modules/rxjs/util/applyMixins.js           |    13 +
 node_modules/rxjs/util/applyMixins.js.map       |     1 +
 node_modules/rxjs/util/assign.d.ts              |     3 +
 node_modules/rxjs/util/assign.js                |    26 +
 node_modules/rxjs/util/assign.js.map            |     1 +
 node_modules/rxjs/util/errorObject.d.ts         |     1 +
 node_modules/rxjs/util/errorObject.js           |     4 +
 node_modules/rxjs/util/errorObject.js.map       |     1 +
 node_modules/rxjs/util/isArray.d.ts             |     1 +
 node_modules/rxjs/util/isArray.js               |     3 +
 node_modules/rxjs/util/isArray.js.map           |     1 +
 node_modules/rxjs/util/isArrayLike.d.ts         |     1 +
 node_modules/rxjs/util/isArrayLike.js           |     3 +
 node_modules/rxjs/util/isArrayLike.js.map       |     1 +
 node_modules/rxjs/util/isDate.d.ts              |     1 +
 node_modules/rxjs/util/isDate.js                |     6 +
 node_modules/rxjs/util/isDate.js.map            |     1 +
 node_modules/rxjs/util/isFunction.d.ts          |     1 +
 node_modules/rxjs/util/isFunction.js            |     6 +
 node_modules/rxjs/util/isFunction.js.map        |     1 +
 node_modules/rxjs/util/isNumeric.d.ts           |     1 +
 node_modules/rxjs/util/isNumeric.js             |    12 +
 node_modules/rxjs/util/isNumeric.js.map         |     1 +
 node_modules/rxjs/util/isObject.d.ts            |     1 +
 node_modules/rxjs/util/isObject.js              |     6 +
 node_modules/rxjs/util/isObject.js.map          |     1 +
 node_modules/rxjs/util/isPromise.d.ts           |     1 +
 node_modules/rxjs/util/isPromise.js             |     6 +
 node_modules/rxjs/util/isPromise.js.map         |     1 +
 node_modules/rxjs/util/isScheduler.d.ts         |     2 +
 node_modules/rxjs/util/isScheduler.js           |     6 +
 node_modules/rxjs/util/isScheduler.js.map       |     1 +
 node_modules/rxjs/util/noop.d.ts                |     1 +
 node_modules/rxjs/util/noop.js                  |     5 +
 node_modules/rxjs/util/noop.js.map              |     1 +
 node_modules/rxjs/util/not.d.ts                 |     1 +
 node_modules/rxjs/util/not.js                   |    11 +
 node_modules/rxjs/util/not.js.map               |     1 +
 node_modules/rxjs/util/root.d.ts                |     2 +
 node_modules/rxjs/util/root.js                  |    19 +
 node_modules/rxjs/util/root.js.map              |     1 +
 node_modules/rxjs/util/subscribeToResult.d.ts   |     3 +
 node_modules/rxjs/util/subscribeToResult.js     |    78 +
 node_modules/rxjs/util/subscribeToResult.js.map |     1 +
 node_modules/rxjs/util/toSubscriber.d.ts        |     3 +
 node_modules/rxjs/util/toSubscriber.js          |    20 +
 node_modules/rxjs/util/toSubscriber.js.map      |     1 +
 node_modules/rxjs/util/tryCatch.d.ts            |     1 +
 node_modules/rxjs/util/tryCatch.js              |    19 +
 node_modules/rxjs/util/tryCatch.js.map          |     1 +
 node_modules/safe-buffer/.travis.yml            |     7 +
 node_modules/safe-buffer/index.js               |    62 +
 node_modules/safe-buffer/package.json           |    70 +
 node_modules/safe-buffer/test.js                |   101 +
 node_modules/sass-graph/CHANGELOG.md            |   127 +
 node_modules/sass-graph/bin/sassgraph           |   124 +
 .../sass-graph/node_modules/glob/changelog.md   |    67 +
 .../sass-graph/node_modules/glob/common.js      |   240 +
 .../sass-graph/node_modules/glob/glob.js        |   790 +
 .../sass-graph/node_modules/glob/package.json   |    80 +
 .../sass-graph/node_modules/glob/sync.js        |   486 +
 .../sass-graph/node_modules/lodash/_DataView.js |     7 +
 .../sass-graph/node_modules/lodash/_Hash.js     |    32 +
 .../node_modules/lodash/_LazyWrapper.js         |    28 +
 .../node_modules/lodash/_ListCache.js           |    32 +
 .../node_modules/lodash/_LodashWrapper.js       |    22 +
 .../sass-graph/node_modules/lodash/_Map.js      |     7 +
 .../sass-graph/node_modules/lodash/_MapCache.js |    32 +
 .../sass-graph/node_modules/lodash/_Promise.js  |     7 +
 .../sass-graph/node_modules/lodash/_Set.js      |     7 +
 .../sass-graph/node_modules/lodash/_SetCache.js |    27 +
 .../sass-graph/node_modules/lodash/_Stack.js    |    27 +
 .../sass-graph/node_modules/lodash/_Symbol.js   |     6 +
 .../node_modules/lodash/_Uint8Array.js          |     6 +
 .../sass-graph/node_modules/lodash/_WeakMap.js  |     7 +
 .../sass-graph/node_modules/lodash/_apply.js    |    21 +
 .../node_modules/lodash/_arrayAggregator.js     |    22 +
 .../node_modules/lodash/_arrayEach.js           |    22 +
 .../node_modules/lodash/_arrayEachRight.js      |    21 +
 .../node_modules/lodash/_arrayEvery.js          |    23 +
 .../node_modules/lodash/_arrayFilter.js         |    25 +
 .../node_modules/lodash/_arrayIncludes.js       |    17 +
 .../node_modules/lodash/_arrayIncludesWith.js   |    22 +
 .../node_modules/lodash/_arrayLikeKeys.js       |    49 +
 .../sass-graph/node_modules/lodash/_arrayMap.js |    21 +
 .../node_modules/lodash/_arrayPush.js           |    20 +
 .../node_modules/lodash/_arrayReduce.js         |    26 +
 .../node_modules/lodash/_arrayReduceRight.js    |    24 +
 .../node_modules/lodash/_arraySample.js         |    15 +
 .../node_modules/lodash/_arraySampleSize.js     |    17 +
 .../node_modules/lodash/_arrayShuffle.js        |    15 +
 .../node_modules/lodash/_arraySome.js           |    23 +
 .../node_modules/lodash/_asciiSize.js           |    12 +
 .../node_modules/lodash/_asciiToArray.js        |    12 +
 .../node_modules/lodash/_asciiWords.js          |    15 +
 .../node_modules/lodash/_assignMergeValue.js    |    20 +
 .../node_modules/lodash/_assignValue.js         |    28 +
 .../node_modules/lodash/_assocIndexOf.js        |    21 +
 .../node_modules/lodash/_baseAggregator.js      |    21 +
 .../node_modules/lodash/_baseAssign.js          |    17 +
 .../node_modules/lodash/_baseAssignIn.js        |    17 +
 .../node_modules/lodash/_baseAssignValue.js     |    25 +
 .../sass-graph/node_modules/lodash/_baseAt.js   |    23 +
 .../node_modules/lodash/_baseClamp.js           |    22 +
 .../node_modules/lodash/_baseClone.js           |   171 +
 .../node_modules/lodash/_baseConforms.js        |    18 +
 .../node_modules/lodash/_baseConformsTo.js      |    27 +
 .../node_modules/lodash/_baseCreate.js          |    30 +
 .../node_modules/lodash/_baseDelay.js           |    21 +
 .../node_modules/lodash/_baseDifference.js      |    67 +
 .../sass-graph/node_modules/lodash/_baseEach.js |    14 +
 .../node_modules/lodash/_baseEachRight.js       |    14 +
 .../node_modules/lodash/_baseEvery.js           |    21 +
 .../node_modules/lodash/_baseExtremum.js        |    32 +
 .../sass-graph/node_modules/lodash/_baseFill.js |    32 +
 .../node_modules/lodash/_baseFilter.js          |    21 +
 .../node_modules/lodash/_baseFindIndex.js       |    24 +
 .../node_modules/lodash/_baseFindKey.js         |    23 +
 .../node_modules/lodash/_baseFlatten.js         |    38 +
 .../sass-graph/node_modules/lodash/_baseFor.js  |    16 +
 .../node_modules/lodash/_baseForOwn.js          |    16 +
 .../node_modules/lodash/_baseForOwnRight.js     |    16 +
 .../node_modules/lodash/_baseForRight.js        |    15 +
 .../node_modules/lodash/_baseFunctions.js       |    19 +
 .../sass-graph/node_modules/lodash/_baseGet.js  |    24 +
 .../node_modules/lodash/_baseGetAllKeys.js      |    20 +
 .../node_modules/lodash/_baseGetTag.js          |    28 +
 .../sass-graph/node_modules/lodash/_baseGt.js   |    14 +
 .../sass-graph/node_modules/lodash/_baseHas.js  |    19 +
 .../node_modules/lodash/_baseHasIn.js           |    13 +
 .../node_modules/lodash/_baseInRange.js         |    18 +
 .../node_modules/lodash/_baseIndexOf.js         |    20 +
 .../node_modules/lodash/_baseIndexOfWith.js     |    23 +
 .../node_modules/lodash/_baseIntersection.js    |    74 +
 .../node_modules/lodash/_baseInverter.js        |    21 +
 .../node_modules/lodash/_baseInvoke.js          |    24 +
 .../node_modules/lodash/_baseIsArguments.js     |    18 +
 .../node_modules/lodash/_baseIsArrayBuffer.js   |    17 +
 .../node_modules/lodash/_baseIsDate.js          |    18 +
 .../node_modules/lodash/_baseIsEqual.js         |    28 +
 .../node_modules/lodash/_baseIsEqualDeep.js     |    83 +
 .../node_modules/lodash/_baseIsMap.js           |    18 +
 .../node_modules/lodash/_baseIsMatch.js         |    62 +
 .../node_modules/lodash/_baseIsNaN.js           |    12 +
 .../node_modules/lodash/_baseIsNative.js        |    47 +
 .../node_modules/lodash/_baseIsRegExp.js        |    18 +
 .../node_modules/lodash/_baseIsSet.js           |    18 +
 .../node_modules/lodash/_baseIsTypedArray.js    |    60 +
 .../node_modules/lodash/_baseIteratee.js        |    31 +
 .../sass-graph/node_modules/lodash/_baseKeys.js |    30 +
 .../node_modules/lodash/_baseKeysIn.js          |    33 +
 .../node_modules/lodash/_baseLodash.js          |    10 +
 .../sass-graph/node_modules/lodash/_baseLt.js   |    14 +
 .../sass-graph/node_modules/lodash/_baseMap.js  |    22 +
 .../node_modules/lodash/_baseMatches.js         |    22 +
 .../node_modules/lodash/_baseMatchesProperty.js |    33 +
 .../sass-graph/node_modules/lodash/_baseMean.js |    20 +
 .../node_modules/lodash/_baseMerge.js           |    42 +
 .../node_modules/lodash/_baseMergeDeep.js       |    94 +
 .../sass-graph/node_modules/lodash/_baseNth.js  |    20 +
 .../node_modules/lodash/_baseOrderBy.js         |    34 +
 .../sass-graph/node_modules/lodash/_basePick.js |    19 +
 .../node_modules/lodash/_basePickBy.js          |    30 +
 .../node_modules/lodash/_baseProperty.js        |    14 +
 .../node_modules/lodash/_basePropertyDeep.js    |    16 +
 .../node_modules/lodash/_basePropertyOf.js      |    14 +
 .../node_modules/lodash/_basePullAll.js         |    51 +
 .../node_modules/lodash/_basePullAt.js          |    37 +
 .../node_modules/lodash/_baseRandom.js          |    18 +
 .../node_modules/lodash/_baseRange.js           |    28 +
 .../node_modules/lodash/_baseReduce.js          |    23 +
 .../node_modules/lodash/_baseRepeat.js          |    35 +
 .../sass-graph/node_modules/lodash/_baseRest.js |    17 +
 .../node_modules/lodash/_baseSample.js          |    15 +
 .../node_modules/lodash/_baseSampleSize.js      |    18 +
 .../sass-graph/node_modules/lodash/_baseSet.js  |    47 +
 .../node_modules/lodash/_baseSetData.js         |    17 +
 .../node_modules/lodash/_baseSetToString.js     |    22 +
 .../node_modules/lodash/_baseShuffle.js         |    15 +
 .../node_modules/lodash/_baseSlice.js           |    31 +
 .../sass-graph/node_modules/lodash/_baseSome.js |    22 +
 .../node_modules/lodash/_baseSortBy.js          |    21 +
 .../node_modules/lodash/_baseSortedIndex.js     |    42 +
 .../node_modules/lodash/_baseSortedIndexBy.js   |    64 +
 .../node_modules/lodash/_baseSortedUniq.js      |    30 +
 .../sass-graph/node_modules/lodash/_baseSum.js  |    24 +
 .../node_modules/lodash/_baseTimes.js           |    20 +
 .../node_modules/lodash/_baseToNumber.js        |    24 +
 .../node_modules/lodash/_baseToPairs.js         |    18 +
 .../node_modules/lodash/_baseToString.js        |    37 +
 .../node_modules/lodash/_baseUnary.js           |    14 +
 .../sass-graph/node_modules/lodash/_baseUniq.js |    72 +
 .../node_modules/lodash/_baseUnset.js           |    20 +
 .../node_modules/lodash/_baseUpdate.js          |    18 +
 .../node_modules/lodash/_baseValues.js          |    19 +
 .../node_modules/lodash/_baseWhile.js           |    26 +
 .../node_modules/lodash/_baseWrapperValue.js    |    25 +
 .../sass-graph/node_modules/lodash/_baseXor.js  |    36 +
 .../node_modules/lodash/_baseZipObject.js       |    23 +
 .../sass-graph/node_modules/lodash/_cacheHas.js |    13 +
 .../node_modules/lodash/_castArrayLikeObject.js |    14 +
 .../node_modules/lodash/_castFunction.js        |    14 +
 .../sass-graph/node_modules/lodash/_castPath.js |    21 +
 .../sass-graph/node_modules/lodash/_castRest.js |    14 +
 .../node_modules/lodash/_castSlice.js           |    18 +
 .../node_modules/lodash/_charsEndIndex.js       |    19 +
 .../node_modules/lodash/_charsStartIndex.js     |    20 +
 .../node_modules/lodash/_cloneArrayBuffer.js    |    16 +
 .../node_modules/lodash/_cloneBuffer.js         |    35 +
 .../node_modules/lodash/_cloneDataView.js       |    16 +
 .../node_modules/lodash/_cloneRegExp.js         |    17 +
 .../node_modules/lodash/_cloneSymbol.js         |    18 +
 .../node_modules/lodash/_cloneTypedArray.js     |    16 +
 .../node_modules/lodash/_compareAscending.js    |    41 +
 .../node_modules/lodash/_compareMultiple.js     |    44 +
 .../node_modules/lodash/_composeArgs.js         |    39 +
 .../node_modules/lodash/_composeArgsRight.js    |    41 +
 .../node_modules/lodash/_copyArray.js           |    20 +
 .../node_modules/lodash/_copyObject.js          |    40 +
 .../node_modules/lodash/_copySymbols.js         |    16 +
 .../node_modules/lodash/_copySymbolsIn.js       |    16 +
 .../node_modules/lodash/_coreJsData.js          |     6 +
 .../node_modules/lodash/_countHolders.js        |    21 +
 .../node_modules/lodash/_createAggregator.js    |    23 +
 .../node_modules/lodash/_createAssigner.js      |    37 +
 .../node_modules/lodash/_createBaseEach.js      |    32 +
 .../node_modules/lodash/_createBaseFor.js       |    25 +
 .../node_modules/lodash/_createBind.js          |    28 +
 .../node_modules/lodash/_createCaseFirst.js     |    33 +
 .../node_modules/lodash/_createCompounder.js    |    24 +
 .../node_modules/lodash/_createCtor.js          |    37 +
 .../node_modules/lodash/_createCurry.js         |    46 +
 .../node_modules/lodash/_createFind.js          |    25 +
 .../node_modules/lodash/_createFlow.js          |    78 +
 .../node_modules/lodash/_createHybrid.js        |    92 +
 .../node_modules/lodash/_createInverter.js      |    17 +
 .../node_modules/lodash/_createMathOperation.js |    38 +
 .../node_modules/lodash/_createOver.js          |    27 +
 .../node_modules/lodash/_createPadding.js       |    33 +
 .../node_modules/lodash/_createPartial.js       |    43 +
 .../node_modules/lodash/_createRange.js         |    30 +
 .../node_modules/lodash/_createRecurry.js       |    56 +
 .../lodash/_createRelationalOperation.js        |    20 +
 .../node_modules/lodash/_createRound.js         |    33 +
 .../node_modules/lodash/_createSet.js           |    19 +
 .../node_modules/lodash/_createToPairs.js       |    30 +
 .../node_modules/lodash/_createWrap.js          |   106 +
 .../lodash/_customDefaultsAssignIn.js           |    29 +
 .../node_modules/lodash/_customDefaultsMerge.js |    28 +
 .../node_modules/lodash/_customOmitClone.js     |    16 +
 .../node_modules/lodash/_deburrLetter.js        |    71 +
 .../node_modules/lodash/_defineProperty.js      |    11 +
 .../node_modules/lodash/_equalArrays.js         |    83 +
 .../node_modules/lodash/_equalByTag.js          |   112 +
 .../node_modules/lodash/_equalObjects.js        |    89 +
 .../node_modules/lodash/_escapeHtmlChar.js      |    21 +
 .../node_modules/lodash/_escapeStringChar.js    |    22 +
 .../sass-graph/node_modules/lodash/_flatRest.js |    16 +
 .../node_modules/lodash/_freeGlobal.js          |     4 +
 .../node_modules/lodash/_getAllKeys.js          |    16 +
 .../node_modules/lodash/_getAllKeysIn.js        |    17 +
 .../sass-graph/node_modules/lodash/_getData.js  |    15 +
 .../node_modules/lodash/_getFuncName.js         |    31 +
 .../node_modules/lodash/_getHolder.js           |    13 +
 .../node_modules/lodash/_getMapData.js          |    18 +
 .../node_modules/lodash/_getMatchData.js        |    24 +
 .../node_modules/lodash/_getNative.js           |    17 +
 .../node_modules/lodash/_getPrototype.js        |     6 +
 .../node_modules/lodash/_getRawTag.js           |    46 +
 .../node_modules/lodash/_getSymbols.js          |    30 +
 .../node_modules/lodash/_getSymbolsIn.js        |    25 +
 .../sass-graph/node_modules/lodash/_getTag.js   |    58 +
 .../sass-graph/node_modules/lodash/_getValue.js |    13 +
 .../sass-graph/node_modules/lodash/_getView.js  |    33 +
 .../node_modules/lodash/_getWrapDetails.js      |    17 +
 .../sass-graph/node_modules/lodash/_hasPath.js  |    39 +
 .../node_modules/lodash/_hasUnicode.js          |    26 +
 .../node_modules/lodash/_hasUnicodeWord.js      |    15 +
 .../node_modules/lodash/_hashClear.js           |    15 +
 .../node_modules/lodash/_hashDelete.js          |    17 +
 .../sass-graph/node_modules/lodash/_hashGet.js  |    30 +
 .../sass-graph/node_modules/lodash/_hashHas.js  |    23 +
 .../sass-graph/node_modules/lodash/_hashSet.js  |    23 +
 .../node_modules/lodash/_initCloneArray.js      |    26 +
 .../node_modules/lodash/_initCloneByTag.js      |    77 +
 .../node_modules/lodash/_initCloneObject.js     |    18 +
 .../node_modules/lodash/_insertWrapDetails.js   |    23 +
 .../node_modules/lodash/_isFlattenable.js       |    20 +
 .../sass-graph/node_modules/lodash/_isIndex.js  |    25 +
 .../node_modules/lodash/_isIterateeCall.js      |    30 +
 .../sass-graph/node_modules/lodash/_isKey.js    |    29 +
 .../node_modules/lodash/_isKeyable.js           |    15 +
 .../node_modules/lodash/_isLaziable.js          |    28 +
 .../node_modules/lodash/_isMaskable.js          |    14 +
 .../sass-graph/node_modules/lodash/_isMasked.js |    20 +
 .../node_modules/lodash/_isPrototype.js         |    18 +
 .../node_modules/lodash/_isStrictComparable.js  |    15 +
 .../node_modules/lodash/_iteratorToArray.js     |    18 +
 .../node_modules/lodash/_lazyClone.js           |    23 +
 .../node_modules/lodash/_lazyReverse.js         |    23 +
 .../node_modules/lodash/_lazyValue.js           |    69 +
 .../node_modules/lodash/_listCacheClear.js      |    13 +
 .../node_modules/lodash/_listCacheDelete.js     |    35 +
 .../node_modules/lodash/_listCacheGet.js        |    19 +
 .../node_modules/lodash/_listCacheHas.js        |    16 +
 .../node_modules/lodash/_listCacheSet.js        |    26 +
 .../node_modules/lodash/_mapCacheClear.js       |    21 +
 .../node_modules/lodash/_mapCacheDelete.js      |    18 +
 .../node_modules/lodash/_mapCacheGet.js         |    16 +
 .../node_modules/lodash/_mapCacheHas.js         |    16 +
 .../node_modules/lodash/_mapCacheSet.js         |    22 +
 .../node_modules/lodash/_mapToArray.js          |    18 +
 .../lodash/_matchesStrictComparable.js          |    20 +
 .../node_modules/lodash/_memoizeCapped.js       |    26 +
 .../node_modules/lodash/_mergeData.js           |    90 +
 .../sass-graph/node_modules/lodash/_metaMap.js  |     6 +
 .../node_modules/lodash/_nativeCreate.js        |     6 +
 .../node_modules/lodash/_nativeKeys.js          |     6 +
 .../node_modules/lodash/_nativeKeysIn.js        |    20 +
 .../sass-graph/node_modules/lodash/_nodeUtil.js |    30 +
 .../node_modules/lodash/_objectToString.js      |    22 +
 .../sass-graph/node_modules/lodash/_overArg.js  |    15 +
 .../sass-graph/node_modules/lodash/_overRest.js |    36 +
 .../sass-graph/node_modules/lodash/_parent.js   |    16 +
 .../sass-graph/node_modules/lodash/_reEscape.js |     4 +
 .../node_modules/lodash/_reEvaluate.js          |     4 +
 .../node_modules/lodash/_reInterpolate.js       |     4 +
 .../node_modules/lodash/_realNames.js           |     4 +
 .../sass-graph/node_modules/lodash/_reorder.js  |    29 +
 .../node_modules/lodash/_replaceHolders.js      |    29 +
 .../sass-graph/node_modules/lodash/_root.js     |     9 +
 .../sass-graph/node_modules/lodash/_safeGet.js  |    15 +
 .../node_modules/lodash/_setCacheAdd.js         |    19 +
 .../node_modules/lodash/_setCacheHas.js         |    14 +
 .../sass-graph/node_modules/lodash/_setData.js  |    20 +
 .../node_modules/lodash/_setToArray.js          |    18 +
 .../node_modules/lodash/_setToPairs.js          |    18 +
 .../node_modules/lodash/_setToString.js         |    14 +
 .../node_modules/lodash/_setWrapToString.js     |    21 +
 .../sass-graph/node_modules/lodash/_shortOut.js |    37 +
 .../node_modules/lodash/_shuffleSelf.js         |    28 +
 .../node_modules/lodash/_stackClear.js          |    15 +
 .../node_modules/lodash/_stackDelete.js         |    18 +
 .../sass-graph/node_modules/lodash/_stackGet.js |    14 +
 .../sass-graph/node_modules/lodash/_stackHas.js |    14 +
 .../sass-graph/node_modules/lodash/_stackSet.js |    34 +
 .../node_modules/lodash/_strictIndexOf.js       |    23 +
 .../node_modules/lodash/_strictLastIndexOf.js   |    21 +
 .../node_modules/lodash/_stringSize.js          |    18 +
 .../node_modules/lodash/_stringToArray.js       |    18 +
 .../node_modules/lodash/_stringToPath.js        |    27 +
 .../sass-graph/node_modules/lodash/_toKey.js    |    21 +
 .../sass-graph/node_modules/lodash/_toSource.js |    26 +
 .../node_modules/lodash/_unescapeHtmlChar.js    |    21 +
 .../node_modules/lodash/_unicodeSize.js         |    44 +
 .../node_modules/lodash/_unicodeToArray.js      |    40 +
 .../node_modules/lodash/_unicodeWords.js        |    69 +
 .../node_modules/lodash/_updateWrapDetails.js   |    46 +
 .../node_modules/lodash/_wrapperClone.js        |    23 +
 .../sass-graph/node_modules/lodash/add.js       |    22 +
 .../sass-graph/node_modules/lodash/after.js     |    42 +
 .../sass-graph/node_modules/lodash/array.js     |    67 +
 .../sass-graph/node_modules/lodash/ary.js       |    29 +
 .../sass-graph/node_modules/lodash/assign.js    |    58 +
 .../sass-graph/node_modules/lodash/assignIn.js  |    40 +
 .../node_modules/lodash/assignInWith.js         |    38 +
 .../node_modules/lodash/assignWith.js           |    37 +
 .../sass-graph/node_modules/lodash/at.js        |    23 +
 .../sass-graph/node_modules/lodash/attempt.js   |    35 +
 .../sass-graph/node_modules/lodash/before.js    |    40 +
 .../sass-graph/node_modules/lodash/bind.js      |    57 +
 .../sass-graph/node_modules/lodash/bindAll.js   |    41 +
 .../sass-graph/node_modules/lodash/bindKey.js   |    68 +
 .../sass-graph/node_modules/lodash/camelCase.js |    29 +
 .../node_modules/lodash/capitalize.js           |    23 +
 .../sass-graph/node_modules/lodash/castArray.js |    44 +
 .../sass-graph/node_modules/lodash/ceil.js      |    26 +
 .../sass-graph/node_modules/lodash/chain.js     |    38 +
 .../sass-graph/node_modules/lodash/chunk.js     |    50 +
 .../sass-graph/node_modules/lodash/clamp.js     |    39 +
 .../sass-graph/node_modules/lodash/clone.js     |    36 +
 .../sass-graph/node_modules/lodash/cloneDeep.js |    29 +
 .../node_modules/lodash/cloneDeepWith.js        |    40 +
 .../sass-graph/node_modules/lodash/cloneWith.js |    42 +
 .../node_modules/lodash/collection.js           |    30 +
 .../sass-graph/node_modules/lodash/commit.js    |    33 +
 .../sass-graph/node_modules/lodash/compact.js   |    31 +
 .../sass-graph/node_modules/lodash/concat.js    |    43 +
 .../sass-graph/node_modules/lodash/cond.js      |    60 +
 .../sass-graph/node_modules/lodash/conforms.js  |    35 +
 .../node_modules/lodash/conformsTo.js           |    32 +
 .../sass-graph/node_modules/lodash/constant.js  |    26 +
 .../sass-graph/node_modules/lodash/core.js      |  3854 +++
 .../sass-graph/node_modules/lodash/core.min.js  |    29 +
 .../sass-graph/node_modules/lodash/countBy.js   |    40 +
 .../sass-graph/node_modules/lodash/create.js    |    43 +
 .../sass-graph/node_modules/lodash/curry.js     |    57 +
 .../node_modules/lodash/curryRight.js           |    54 +
 .../sass-graph/node_modules/lodash/date.js      |     3 +
 .../sass-graph/node_modules/lodash/debounce.js  |   190 +
 .../sass-graph/node_modules/lodash/deburr.js    |    45 +
 .../sass-graph/node_modules/lodash/defaultTo.js |    25 +
 .../sass-graph/node_modules/lodash/defaults.js  |    64 +
 .../node_modules/lodash/defaultsDeep.js         |    30 +
 .../sass-graph/node_modules/lodash/defer.js     |    26 +
 .../sass-graph/node_modules/lodash/delay.js     |    28 +
 .../node_modules/lodash/difference.js           |    33 +
 .../node_modules/lodash/differenceBy.js         |    44 +
 .../node_modules/lodash/differenceWith.js       |    40 +
 .../sass-graph/node_modules/lodash/divide.js    |    22 +
 .../sass-graph/node_modules/lodash/drop.js      |    38 +
 .../sass-graph/node_modules/lodash/dropRight.js |    39 +
 .../node_modules/lodash/dropRightWhile.js       |    45 +
 .../sass-graph/node_modules/lodash/dropWhile.js |    45 +
 .../sass-graph/node_modules/lodash/each.js      |     1 +
 .../sass-graph/node_modules/lodash/eachRight.js |     1 +
 .../sass-graph/node_modules/lodash/endsWith.js  |    43 +
 .../sass-graph/node_modules/lodash/entries.js   |     1 +
 .../sass-graph/node_modules/lodash/entriesIn.js |     1 +
 .../sass-graph/node_modules/lodash/eq.js        |    37 +
 .../sass-graph/node_modules/lodash/escape.js    |    43 +
 .../node_modules/lodash/escapeRegExp.js         |    32 +
 .../sass-graph/node_modules/lodash/every.js     |    56 +
 .../sass-graph/node_modules/lodash/extend.js    |     1 +
 .../node_modules/lodash/extendWith.js           |     1 +
 .../sass-graph/node_modules/lodash/fill.js      |    45 +
 .../sass-graph/node_modules/lodash/filter.js    |    48 +
 .../sass-graph/node_modules/lodash/find.js      |    42 +
 .../sass-graph/node_modules/lodash/findIndex.js |    55 +
 .../sass-graph/node_modules/lodash/findKey.js   |    44 +
 .../sass-graph/node_modules/lodash/findLast.js  |    25 +
 .../node_modules/lodash/findLastIndex.js        |    59 +
 .../node_modules/lodash/findLastKey.js          |    44 +
 .../sass-graph/node_modules/lodash/first.js     |     1 +
 .../sass-graph/node_modules/lodash/flatMap.js   |    29 +
 .../node_modules/lodash/flatMapDeep.js          |    31 +
 .../node_modules/lodash/flatMapDepth.js         |    31 +
 .../sass-graph/node_modules/lodash/flatten.js   |    22 +
 .../node_modules/lodash/flattenDeep.js          |    25 +
 .../node_modules/lodash/flattenDepth.js         |    33 +
 .../sass-graph/node_modules/lodash/flip.js      |    28 +
 .../sass-graph/node_modules/lodash/floor.js     |    26 +
 .../sass-graph/node_modules/lodash/flow.js      |    27 +
 .../sass-graph/node_modules/lodash/flowRight.js |    26 +
 .../sass-graph/node_modules/lodash/forEach.js   |    41 +
 .../node_modules/lodash/forEachRight.js         |    31 +
 .../sass-graph/node_modules/lodash/forIn.js     |    39 +
 .../node_modules/lodash/forInRight.js           |    37 +
 .../sass-graph/node_modules/lodash/forOwn.js    |    36 +
 .../node_modules/lodash/forOwnRight.js          |    34 +
 .../sass-graph/node_modules/lodash/fp.js        |     2 +
 .../sass-graph/node_modules/lodash/fp/F.js      |     1 +
 .../sass-graph/node_modules/lodash/fp/T.js      |     1 +
 .../sass-graph/node_modules/lodash/fp/__.js     |     1 +
 .../node_modules/lodash/fp/_baseConvert.js      |   573 +
 .../node_modules/lodash/fp/_convertBrowser.js   |    18 +
 .../node_modules/lodash/fp/_falseOptions.js     |     7 +
 .../node_modules/lodash/fp/_mapping.js          |   368 +
 .../sass-graph/node_modules/lodash/fp/_util.js  |    16 +
 .../sass-graph/node_modules/lodash/fp/add.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/after.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/all.js    |     1 +
 .../node_modules/lodash/fp/allPass.js           |     1 +
 .../sass-graph/node_modules/lodash/fp/always.js |     1 +
 .../sass-graph/node_modules/lodash/fp/any.js    |     1 +
 .../node_modules/lodash/fp/anyPass.js           |     1 +
 .../sass-graph/node_modules/lodash/fp/apply.js  |     1 +
 .../sass-graph/node_modules/lodash/fp/array.js  |     2 +
 .../sass-graph/node_modules/lodash/fp/ary.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/assign.js |     5 +
 .../node_modules/lodash/fp/assignAll.js         |     5 +
 .../node_modules/lodash/fp/assignAllWith.js     |     5 +
 .../node_modules/lodash/fp/assignIn.js          |     5 +
 .../node_modules/lodash/fp/assignInAll.js       |     5 +
 .../node_modules/lodash/fp/assignInAllWith.js   |     5 +
 .../node_modules/lodash/fp/assignInWith.js      |     5 +
 .../node_modules/lodash/fp/assignWith.js        |     5 +
 .../sass-graph/node_modules/lodash/fp/assoc.js  |     1 +
 .../node_modules/lodash/fp/assocPath.js         |     1 +
 .../sass-graph/node_modules/lodash/fp/at.js     |     5 +
 .../node_modules/lodash/fp/attempt.js           |     5 +
 .../sass-graph/node_modules/lodash/fp/before.js |     5 +
 .../sass-graph/node_modules/lodash/fp/bind.js   |     5 +
 .../node_modules/lodash/fp/bindAll.js           |     5 +
 .../node_modules/lodash/fp/bindKey.js           |     5 +
 .../node_modules/lodash/fp/camelCase.js         |     5 +
 .../node_modules/lodash/fp/capitalize.js        |     5 +
 .../node_modules/lodash/fp/castArray.js         |     5 +
 .../sass-graph/node_modules/lodash/fp/ceil.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/chain.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/chunk.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/clamp.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/clone.js  |     5 +
 .../node_modules/lodash/fp/cloneDeep.js         |     5 +
 .../node_modules/lodash/fp/cloneDeepWith.js     |     5 +
 .../node_modules/lodash/fp/cloneWith.js         |     5 +
 .../node_modules/lodash/fp/collection.js        |     2 +
 .../sass-graph/node_modules/lodash/fp/commit.js |     5 +
 .../node_modules/lodash/fp/compact.js           |     5 +
 .../node_modules/lodash/fp/complement.js        |     1 +
 .../node_modules/lodash/fp/compose.js           |     1 +
 .../sass-graph/node_modules/lodash/fp/concat.js |     5 +
 .../sass-graph/node_modules/lodash/fp/cond.js   |     5 +
 .../node_modules/lodash/fp/conforms.js          |     1 +
 .../node_modules/lodash/fp/conformsTo.js        |     5 +
 .../node_modules/lodash/fp/constant.js          |     5 +
 .../node_modules/lodash/fp/contains.js          |     1 +
 .../node_modules/lodash/fp/convert.js           |    18 +
 .../node_modules/lodash/fp/countBy.js           |     5 +
 .../sass-graph/node_modules/lodash/fp/create.js |     5 +
 .../sass-graph/node_modules/lodash/fp/curry.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/curryN.js |     5 +
 .../node_modules/lodash/fp/curryRight.js        |     5 +
 .../node_modules/lodash/fp/curryRightN.js       |     5 +
 .../sass-graph/node_modules/lodash/fp/date.js   |     2 +
 .../node_modules/lodash/fp/debounce.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/deburr.js |     5 +
 .../node_modules/lodash/fp/defaultTo.js         |     5 +
 .../node_modules/lodash/fp/defaults.js          |     5 +
 .../node_modules/lodash/fp/defaultsAll.js       |     5 +
 .../node_modules/lodash/fp/defaultsDeep.js      |     5 +
 .../node_modules/lodash/fp/defaultsDeepAll.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/defer.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/delay.js  |     5 +
 .../node_modules/lodash/fp/difference.js        |     5 +
 .../node_modules/lodash/fp/differenceBy.js      |     5 +
 .../node_modules/lodash/fp/differenceWith.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/dissoc.js |     1 +
 .../node_modules/lodash/fp/dissocPath.js        |     1 +
 .../sass-graph/node_modules/lodash/fp/divide.js |     5 +
 .../sass-graph/node_modules/lodash/fp/drop.js   |     5 +
 .../node_modules/lodash/fp/dropLast.js          |     1 +
 .../node_modules/lodash/fp/dropLastWhile.js     |     1 +
 .../node_modules/lodash/fp/dropRight.js         |     5 +
 .../node_modules/lodash/fp/dropRightWhile.js    |     5 +
 .../node_modules/lodash/fp/dropWhile.js         |     5 +
 .../sass-graph/node_modules/lodash/fp/each.js   |     1 +
 .../node_modules/lodash/fp/eachRight.js         |     1 +
 .../node_modules/lodash/fp/endsWith.js          |     5 +
 .../node_modules/lodash/fp/entries.js           |     1 +
 .../node_modules/lodash/fp/entriesIn.js         |     1 +
 .../sass-graph/node_modules/lodash/fp/eq.js     |     5 +
 .../sass-graph/node_modules/lodash/fp/equals.js |     1 +
 .../sass-graph/node_modules/lodash/fp/escape.js |     5 +
 .../node_modules/lodash/fp/escapeRegExp.js      |     5 +
 .../sass-graph/node_modules/lodash/fp/every.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/extend.js |     1 +
 .../node_modules/lodash/fp/extendAll.js         |     1 +
 .../node_modules/lodash/fp/extendAllWith.js     |     1 +
 .../node_modules/lodash/fp/extendWith.js        |     1 +
 .../sass-graph/node_modules/lodash/fp/fill.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/filter.js |     5 +
 .../sass-graph/node_modules/lodash/fp/find.js   |     5 +
 .../node_modules/lodash/fp/findFrom.js          |     5 +
 .../node_modules/lodash/fp/findIndex.js         |     5 +
 .../node_modules/lodash/fp/findIndexFrom.js     |     5 +
 .../node_modules/lodash/fp/findKey.js           |     5 +
 .../node_modules/lodash/fp/findLast.js          |     5 +
 .../node_modules/lodash/fp/findLastFrom.js      |     5 +
 .../node_modules/lodash/fp/findLastIndex.js     |     5 +
 .../node_modules/lodash/fp/findLastIndexFrom.js |     5 +
 .../node_modules/lodash/fp/findLastKey.js       |     5 +
 .../sass-graph/node_modules/lodash/fp/first.js  |     1 +
 .../node_modules/lodash/fp/flatMap.js           |     5 +
 .../node_modules/lodash/fp/flatMapDeep.js       |     5 +
 .../node_modules/lodash/fp/flatMapDepth.js      |     5 +
 .../node_modules/lodash/fp/flatten.js           |     5 +
 .../node_modules/lodash/fp/flattenDeep.js       |     5 +
 .../node_modules/lodash/fp/flattenDepth.js      |     5 +
 .../sass-graph/node_modules/lodash/fp/flip.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/floor.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/flow.js   |     5 +
 .../node_modules/lodash/fp/flowRight.js         |     5 +
 .../node_modules/lodash/fp/forEach.js           |     5 +
 .../node_modules/lodash/fp/forEachRight.js      |     5 +
 .../sass-graph/node_modules/lodash/fp/forIn.js  |     5 +
 .../node_modules/lodash/fp/forInRight.js        |     5 +
 .../sass-graph/node_modules/lodash/fp/forOwn.js |     5 +
 .../node_modules/lodash/fp/forOwnRight.js       |     5 +
 .../node_modules/lodash/fp/fromPairs.js         |     5 +
 .../node_modules/lodash/fp/function.js          |     2 +
 .../node_modules/lodash/fp/functions.js         |     5 +
 .../node_modules/lodash/fp/functionsIn.js       |     5 +
 .../sass-graph/node_modules/lodash/fp/get.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/getOr.js  |     5 +
 .../node_modules/lodash/fp/groupBy.js           |     5 +
 .../sass-graph/node_modules/lodash/fp/gt.js     |     5 +
 .../sass-graph/node_modules/lodash/fp/gte.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/has.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/hasIn.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/head.js   |     5 +
 .../node_modules/lodash/fp/identical.js         |     1 +
 .../node_modules/lodash/fp/identity.js          |     5 +
 .../node_modules/lodash/fp/inRange.js           |     5 +
 .../node_modules/lodash/fp/includes.js          |     5 +
 .../node_modules/lodash/fp/includesFrom.js      |     5 +
 .../node_modules/lodash/fp/indexBy.js           |     1 +
 .../node_modules/lodash/fp/indexOf.js           |     5 +
 .../node_modules/lodash/fp/indexOfFrom.js       |     5 +
 .../sass-graph/node_modules/lodash/fp/init.js   |     1 +
 .../node_modules/lodash/fp/initial.js           |     5 +
 .../node_modules/lodash/fp/intersection.js      |     5 +
 .../node_modules/lodash/fp/intersectionBy.js    |     5 +
 .../node_modules/lodash/fp/intersectionWith.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/invert.js |     5 +
 .../node_modules/lodash/fp/invertBy.js          |     5 +
 .../node_modules/lodash/fp/invertObj.js         |     1 +
 .../sass-graph/node_modules/lodash/fp/invoke.js |     5 +
 .../node_modules/lodash/fp/invokeArgs.js        |     5 +
 .../node_modules/lodash/fp/invokeArgsMap.js     |     5 +
 .../node_modules/lodash/fp/invokeMap.js         |     5 +
 .../node_modules/lodash/fp/isArguments.js       |     5 +
 .../node_modules/lodash/fp/isArray.js           |     5 +
 .../node_modules/lodash/fp/isArrayBuffer.js     |     5 +
 .../node_modules/lodash/fp/isArrayLike.js       |     5 +
 .../node_modules/lodash/fp/isArrayLikeObject.js |     5 +
 .../node_modules/lodash/fp/isBoolean.js         |     5 +
 .../node_modules/lodash/fp/isBuffer.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/isDate.js |     5 +
 .../node_modules/lodash/fp/isElement.js         |     5 +
 .../node_modules/lodash/fp/isEmpty.js           |     5 +
 .../node_modules/lodash/fp/isEqual.js           |     5 +
 .../node_modules/lodash/fp/isEqualWith.js       |     5 +
 .../node_modules/lodash/fp/isError.js           |     5 +
 .../node_modules/lodash/fp/isFinite.js          |     5 +
 .../node_modules/lodash/fp/isFunction.js        |     5 +
 .../node_modules/lodash/fp/isInteger.js         |     5 +
 .../node_modules/lodash/fp/isLength.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/isMap.js  |     5 +
 .../node_modules/lodash/fp/isMatch.js           |     5 +
 .../node_modules/lodash/fp/isMatchWith.js       |     5 +
 .../sass-graph/node_modules/lodash/fp/isNaN.js  |     5 +
 .../node_modules/lodash/fp/isNative.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/isNil.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/isNull.js |     5 +
 .../node_modules/lodash/fp/isNumber.js          |     5 +
 .../node_modules/lodash/fp/isObject.js          |     5 +
 .../node_modules/lodash/fp/isObjectLike.js      |     5 +
 .../node_modules/lodash/fp/isPlainObject.js     |     5 +
 .../node_modules/lodash/fp/isRegExp.js          |     5 +
 .../node_modules/lodash/fp/isSafeInteger.js     |     5 +
 .../sass-graph/node_modules/lodash/fp/isSet.js  |     5 +
 .../node_modules/lodash/fp/isString.js          |     5 +
 .../node_modules/lodash/fp/isSymbol.js          |     5 +
 .../node_modules/lodash/fp/isTypedArray.js      |     5 +
 .../node_modules/lodash/fp/isUndefined.js       |     5 +
 .../node_modules/lodash/fp/isWeakMap.js         |     5 +
 .../node_modules/lodash/fp/isWeakSet.js         |     5 +
 .../node_modules/lodash/fp/iteratee.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/join.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/juxt.js   |     1 +
 .../node_modules/lodash/fp/kebabCase.js         |     5 +
 .../sass-graph/node_modules/lodash/fp/keyBy.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/keys.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/keysIn.js |     5 +
 .../sass-graph/node_modules/lodash/fp/lang.js   |     2 +
 .../sass-graph/node_modules/lodash/fp/last.js   |     5 +
 .../node_modules/lodash/fp/lastIndexOf.js       |     5 +
 .../node_modules/lodash/fp/lastIndexOfFrom.js   |     5 +
 .../node_modules/lodash/fp/lowerCase.js         |     5 +
 .../node_modules/lodash/fp/lowerFirst.js        |     5 +
 .../sass-graph/node_modules/lodash/fp/lt.js     |     5 +
 .../sass-graph/node_modules/lodash/fp/lte.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/map.js    |     5 +
 .../node_modules/lodash/fp/mapKeys.js           |     5 +
 .../node_modules/lodash/fp/mapValues.js         |     5 +
 .../node_modules/lodash/fp/matches.js           |     1 +
 .../node_modules/lodash/fp/matchesProperty.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/math.js   |     2 +
 .../sass-graph/node_modules/lodash/fp/max.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/maxBy.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/mean.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/meanBy.js |     5 +
 .../node_modules/lodash/fp/memoize.js           |     5 +
 .../sass-graph/node_modules/lodash/fp/merge.js  |     5 +
 .../node_modules/lodash/fp/mergeAll.js          |     5 +
 .../node_modules/lodash/fp/mergeAllWith.js      |     5 +
 .../node_modules/lodash/fp/mergeWith.js         |     5 +
 .../sass-graph/node_modules/lodash/fp/method.js |     5 +
 .../node_modules/lodash/fp/methodOf.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/min.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/minBy.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/mixin.js  |     5 +
 .../node_modules/lodash/fp/multiply.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/nAry.js   |     1 +
 .../sass-graph/node_modules/lodash/fp/negate.js |     5 +
 .../sass-graph/node_modules/lodash/fp/next.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/noop.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/now.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/nth.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/nthArg.js |     5 +
 .../sass-graph/node_modules/lodash/fp/number.js |     2 +
 .../sass-graph/node_modules/lodash/fp/object.js |     2 +
 .../sass-graph/node_modules/lodash/fp/omit.js   |     5 +
 .../node_modules/lodash/fp/omitAll.js           |     1 +
 .../sass-graph/node_modules/lodash/fp/omitBy.js |     5 +
 .../sass-graph/node_modules/lodash/fp/once.js   |     5 +
 .../node_modules/lodash/fp/orderBy.js           |     5 +
 .../sass-graph/node_modules/lodash/fp/over.js   |     5 +
 .../node_modules/lodash/fp/overArgs.js          |     5 +
 .../node_modules/lodash/fp/overEvery.js         |     5 +
 .../node_modules/lodash/fp/overSome.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/pad.js    |     5 +
 .../node_modules/lodash/fp/padChars.js          |     5 +
 .../node_modules/lodash/fp/padCharsEnd.js       |     5 +
 .../node_modules/lodash/fp/padCharsStart.js     |     5 +
 .../sass-graph/node_modules/lodash/fp/padEnd.js |     5 +
 .../node_modules/lodash/fp/padStart.js          |     5 +
 .../node_modules/lodash/fp/parseInt.js          |     5 +
 .../node_modules/lodash/fp/partial.js           |     5 +
 .../node_modules/lodash/fp/partialRight.js      |     5 +
 .../node_modules/lodash/fp/partition.js         |     5 +
 .../sass-graph/node_modules/lodash/fp/path.js   |     1 +
 .../sass-graph/node_modules/lodash/fp/pathEq.js |     1 +
 .../sass-graph/node_modules/lodash/fp/pathOr.js |     1 +
 .../sass-graph/node_modules/lodash/fp/paths.js  |     1 +
 .../sass-graph/node_modules/lodash/fp/pick.js   |     5 +
 .../node_modules/lodash/fp/pickAll.js           |     1 +
 .../sass-graph/node_modules/lodash/fp/pickBy.js |     5 +
 .../sass-graph/node_modules/lodash/fp/pipe.js   |     1 +
 .../node_modules/lodash/fp/placeholder.js       |     6 +
 .../sass-graph/node_modules/lodash/fp/plant.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/pluck.js  |     1 +
 .../sass-graph/node_modules/lodash/fp/prop.js   |     1 +
 .../sass-graph/node_modules/lodash/fp/propEq.js |     1 +
 .../sass-graph/node_modules/lodash/fp/propOr.js |     1 +
 .../node_modules/lodash/fp/property.js          |     1 +
 .../node_modules/lodash/fp/propertyOf.js        |     5 +
 .../sass-graph/node_modules/lodash/fp/props.js  |     1 +
 .../sass-graph/node_modules/lodash/fp/pull.js   |     5 +
 .../node_modules/lodash/fp/pullAll.js           |     5 +
 .../node_modules/lodash/fp/pullAllBy.js         |     5 +
 .../node_modules/lodash/fp/pullAllWith.js       |     5 +
 .../sass-graph/node_modules/lodash/fp/pullAt.js |     5 +
 .../sass-graph/node_modules/lodash/fp/random.js |     5 +
 .../sass-graph/node_modules/lodash/fp/range.js  |     5 +
 .../node_modules/lodash/fp/rangeRight.js        |     5 +
 .../node_modules/lodash/fp/rangeStep.js         |     5 +
 .../node_modules/lodash/fp/rangeStepRight.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/rearg.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/reduce.js |     5 +
 .../node_modules/lodash/fp/reduceRight.js       |     5 +
 .../sass-graph/node_modules/lodash/fp/reject.js |     5 +
 .../sass-graph/node_modules/lodash/fp/remove.js |     5 +
 .../sass-graph/node_modules/lodash/fp/repeat.js |     5 +
 .../node_modules/lodash/fp/replace.js           |     5 +
 .../sass-graph/node_modules/lodash/fp/rest.js   |     5 +
 .../node_modules/lodash/fp/restFrom.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/result.js |     5 +
 .../node_modules/lodash/fp/reverse.js           |     5 +
 .../sass-graph/node_modules/lodash/fp/round.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/sample.js |     5 +
 .../node_modules/lodash/fp/sampleSize.js        |     5 +
 .../sass-graph/node_modules/lodash/fp/seq.js    |     2 +
 .../sass-graph/node_modules/lodash/fp/set.js    |     5 +
 .../node_modules/lodash/fp/setWith.js           |     5 +
 .../node_modules/lodash/fp/shuffle.js           |     5 +
 .../sass-graph/node_modules/lodash/fp/size.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/slice.js  |     5 +
 .../node_modules/lodash/fp/snakeCase.js         |     5 +
 .../sass-graph/node_modules/lodash/fp/some.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/sortBy.js |     5 +
 .../node_modules/lodash/fp/sortedIndex.js       |     5 +
 .../node_modules/lodash/fp/sortedIndexBy.js     |     5 +
 .../node_modules/lodash/fp/sortedIndexOf.js     |     5 +
 .../node_modules/lodash/fp/sortedLastIndex.js   |     5 +
 .../node_modules/lodash/fp/sortedLastIndexBy.js |     5 +
 .../node_modules/lodash/fp/sortedLastIndexOf.js |     5 +
 .../node_modules/lodash/fp/sortedUniq.js        |     5 +
 .../node_modules/lodash/fp/sortedUniqBy.js      |     5 +
 .../sass-graph/node_modules/lodash/fp/split.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/spread.js |     5 +
 .../node_modules/lodash/fp/spreadFrom.js        |     5 +
 .../node_modules/lodash/fp/startCase.js         |     5 +
 .../node_modules/lodash/fp/startsWith.js        |     5 +
 .../sass-graph/node_modules/lodash/fp/string.js |     2 +
 .../node_modules/lodash/fp/stubArray.js         |     5 +
 .../node_modules/lodash/fp/stubFalse.js         |     5 +
 .../node_modules/lodash/fp/stubObject.js        |     5 +
 .../node_modules/lodash/fp/stubString.js        |     5 +
 .../node_modules/lodash/fp/stubTrue.js          |     5 +
 .../node_modules/lodash/fp/subtract.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/sum.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/sumBy.js  |     5 +
 .../lodash/fp/symmetricDifference.js            |     1 +
 .../lodash/fp/symmetricDifferenceBy.js          |     1 +
 .../lodash/fp/symmetricDifferenceWith.js        |     1 +
 .../sass-graph/node_modules/lodash/fp/tail.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/take.js   |     5 +
 .../node_modules/lodash/fp/takeLast.js          |     1 +
 .../node_modules/lodash/fp/takeLastWhile.js     |     1 +
 .../node_modules/lodash/fp/takeRight.js         |     5 +
 .../node_modules/lodash/fp/takeRightWhile.js    |     5 +
 .../node_modules/lodash/fp/takeWhile.js         |     5 +
 .../sass-graph/node_modules/lodash/fp/tap.js    |     5 +
 .../node_modules/lodash/fp/template.js          |     5 +
 .../node_modules/lodash/fp/templateSettings.js  |     5 +
 .../node_modules/lodash/fp/throttle.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/thru.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/times.js  |     5 +
 .../node_modules/lodash/fp/toArray.js           |     5 +
 .../node_modules/lodash/fp/toFinite.js          |     5 +
 .../node_modules/lodash/fp/toInteger.js         |     5 +
 .../node_modules/lodash/fp/toIterator.js        |     5 +
 .../sass-graph/node_modules/lodash/fp/toJSON.js |     5 +
 .../node_modules/lodash/fp/toLength.js          |     5 +
 .../node_modules/lodash/fp/toLower.js           |     5 +
 .../node_modules/lodash/fp/toNumber.js          |     5 +
 .../node_modules/lodash/fp/toPairs.js           |     5 +
 .../node_modules/lodash/fp/toPairsIn.js         |     5 +
 .../sass-graph/node_modules/lodash/fp/toPath.js |     5 +
 .../node_modules/lodash/fp/toPlainObject.js     |     5 +
 .../node_modules/lodash/fp/toSafeInteger.js     |     5 +
 .../node_modules/lodash/fp/toString.js          |     5 +
 .../node_modules/lodash/fp/toUpper.js           |     5 +
 .../node_modules/lodash/fp/transform.js         |     5 +
 .../sass-graph/node_modules/lodash/fp/trim.js   |     5 +
 .../node_modules/lodash/fp/trimChars.js         |     5 +
 .../node_modules/lodash/fp/trimCharsEnd.js      |     5 +
 .../node_modules/lodash/fp/trimCharsStart.js    |     5 +
 .../node_modules/lodash/fp/trimEnd.js           |     5 +
 .../node_modules/lodash/fp/trimStart.js         |     5 +
 .../node_modules/lodash/fp/truncate.js          |     5 +
 .../node_modules/lodash/fp/unapply.js           |     1 +
 .../sass-graph/node_modules/lodash/fp/unary.js  |     5 +
 .../node_modules/lodash/fp/unescape.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/union.js  |     5 +
 .../node_modules/lodash/fp/unionBy.js           |     5 +
 .../node_modules/lodash/fp/unionWith.js         |     5 +
 .../sass-graph/node_modules/lodash/fp/uniq.js   |     5 +
 .../sass-graph/node_modules/lodash/fp/uniqBy.js |     5 +
 .../node_modules/lodash/fp/uniqWith.js          |     5 +
 .../node_modules/lodash/fp/uniqueId.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/unnest.js |     1 +
 .../sass-graph/node_modules/lodash/fp/unset.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/unzip.js  |     5 +
 .../node_modules/lodash/fp/unzipWith.js         |     5 +
 .../sass-graph/node_modules/lodash/fp/update.js |     5 +
 .../node_modules/lodash/fp/updateWith.js        |     5 +
 .../node_modules/lodash/fp/upperCase.js         |     5 +
 .../node_modules/lodash/fp/upperFirst.js        |     5 +
 .../node_modules/lodash/fp/useWith.js           |     1 +
 .../sass-graph/node_modules/lodash/fp/util.js   |     2 +
 .../sass-graph/node_modules/lodash/fp/value.js  |     5 +
 .../node_modules/lodash/fp/valueOf.js           |     5 +
 .../sass-graph/node_modules/lodash/fp/values.js |     5 +
 .../node_modules/lodash/fp/valuesIn.js          |     5 +
 .../sass-graph/node_modules/lodash/fp/where.js  |     1 +
 .../node_modules/lodash/fp/whereEq.js           |     1 +
 .../node_modules/lodash/fp/without.js           |     5 +
 .../sass-graph/node_modules/lodash/fp/words.js  |     5 +
 .../sass-graph/node_modules/lodash/fp/wrap.js   |     5 +
 .../node_modules/lodash/fp/wrapperAt.js         |     5 +
 .../node_modules/lodash/fp/wrapperChain.js      |     5 +
 .../node_modules/lodash/fp/wrapperLodash.js     |     5 +
 .../node_modules/lodash/fp/wrapperReverse.js    |     5 +
 .../node_modules/lodash/fp/wrapperValue.js      |     5 +
 .../sass-graph/node_modules/lodash/fp/xor.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/xorBy.js  |     5 +
 .../node_modules/lodash/fp/xorWith.js           |     5 +
 .../sass-graph/node_modules/lodash/fp/zip.js    |     5 +
 .../sass-graph/node_modules/lodash/fp/zipAll.js |     5 +
 .../sass-graph/node_modules/lodash/fp/zipObj.js |     1 +
 .../node_modules/lodash/fp/zipObject.js         |     5 +
 .../node_modules/lodash/fp/zipObjectDeep.js     |     5 +
 .../node_modules/lodash/fp/zipWith.js           |     5 +
 .../sass-graph/node_modules/lodash/fromPairs.js |    28 +
 .../sass-graph/node_modules/lodash/function.js  |    25 +
 .../sass-graph/node_modules/lodash/functions.js |    31 +
 .../node_modules/lodash/functionsIn.js          |    31 +
 .../sass-graph/node_modules/lodash/get.js       |    33 +
 .../sass-graph/node_modules/lodash/groupBy.js   |    41 +
 .../sass-graph/node_modules/lodash/gt.js        |    29 +
 .../sass-graph/node_modules/lodash/gte.js       |    30 +
 .../sass-graph/node_modules/lodash/has.js       |    35 +
 .../sass-graph/node_modules/lodash/hasIn.js     |    34 +
 .../sass-graph/node_modules/lodash/head.js      |    23 +
 .../sass-graph/node_modules/lodash/identity.js  |    21 +
 .../sass-graph/node_modules/lodash/inRange.js   |    55 +
 .../sass-graph/node_modules/lodash/includes.js  |    53 +
 .../sass-graph/node_modules/lodash/index.js     |     1 +
 .../sass-graph/node_modules/lodash/indexOf.js   |    42 +
 .../sass-graph/node_modules/lodash/initial.js   |    22 +
 .../node_modules/lodash/intersection.js         |    30 +
 .../node_modules/lodash/intersectionBy.js       |    45 +
 .../node_modules/lodash/intersectionWith.js     |    41 +
 .../sass-graph/node_modules/lodash/invert.js    |    42 +
 .../sass-graph/node_modules/lodash/invertBy.js  |    56 +
 .../sass-graph/node_modules/lodash/invoke.js    |    24 +
 .../sass-graph/node_modules/lodash/invokeMap.js |    41 +
 .../node_modules/lodash/isArguments.js          |    36 +
 .../sass-graph/node_modules/lodash/isArray.js   |    26 +
 .../node_modules/lodash/isArrayBuffer.js        |    27 +
 .../node_modules/lodash/isArrayLike.js          |    33 +
 .../node_modules/lodash/isArrayLikeObject.js    |    33 +
 .../sass-graph/node_modules/lodash/isBoolean.js |    29 +
 .../sass-graph/node_modules/lodash/isBuffer.js  |    38 +
 .../sass-graph/node_modules/lodash/isDate.js    |    27 +
 .../sass-graph/node_modules/lodash/isElement.js |    25 +
 .../sass-graph/node_modules/lodash/isEmpty.js   |    77 +
 .../sass-graph/node_modules/lodash/isEqual.js   |    35 +
 .../node_modules/lodash/isEqualWith.js          |    41 +
 .../sass-graph/node_modules/lodash/isError.js   |    36 +
 .../sass-graph/node_modules/lodash/isFinite.js  |    36 +
 .../node_modules/lodash/isFunction.js           |    37 +
 .../sass-graph/node_modules/lodash/isInteger.js |    33 +
 .../sass-graph/node_modules/lodash/isLength.js  |    35 +
 .../sass-graph/node_modules/lodash/isMap.js     |    27 +
 .../sass-graph/node_modules/lodash/isMatch.js   |    36 +
 .../node_modules/lodash/isMatchWith.js          |    41 +
 .../sass-graph/node_modules/lodash/isNaN.js     |    38 +
 .../sass-graph/node_modules/lodash/isNative.js  |    40 +
 .../sass-graph/node_modules/lodash/isNil.js     |    25 +
 .../sass-graph/node_modules/lodash/isNull.js    |    22 +
 .../sass-graph/node_modules/lodash/isNumber.js  |    38 +
 .../sass-graph/node_modules/lodash/isObject.js  |    31 +
 .../node_modules/lodash/isObjectLike.js         |    29 +
 .../node_modules/lodash/isPlainObject.js        |    62 +
 .../sass-graph/node_modules/lodash/isRegExp.js  |    27 +
 .../node_modules/lodash/isSafeInteger.js        |    37 +
 .../sass-graph/node_modules/lodash/isSet.js     |    27 +
 .../sass-graph/node_modules/lodash/isString.js  |    30 +
 .../sass-graph/node_modules/lodash/isSymbol.js  |    29 +
 .../node_modules/lodash/isTypedArray.js         |    27 +
 .../node_modules/lodash/isUndefined.js          |    22 +
 .../sass-graph/node_modules/lodash/isWeakMap.js |    28 +
 .../sass-graph/node_modules/lodash/isWeakSet.js |    28 +
 .../sass-graph/node_modules/lodash/iteratee.js  |    53 +
 .../sass-graph/node_modules/lodash/join.js      |    26 +
 .../sass-graph/node_modules/lodash/kebabCase.js |    28 +
 .../sass-graph/node_modules/lodash/keyBy.js     |    36 +
 .../sass-graph/node_modules/lodash/keys.js      |    37 +
 .../sass-graph/node_modules/lodash/keysIn.js    |    32 +
 .../sass-graph/node_modules/lodash/lang.js      |    58 +
 .../sass-graph/node_modules/lodash/last.js      |    20 +
 .../node_modules/lodash/lastIndexOf.js          |    46 +
 .../sass-graph/node_modules/lodash/lodash.js    | 17105 ++++++++++
 .../node_modules/lodash/lodash.min.js           |   137 +
 .../sass-graph/node_modules/lodash/lowerCase.js |    27 +
 .../node_modules/lodash/lowerFirst.js           |    22 +
 .../sass-graph/node_modules/lodash/lt.js        |    29 +
 .../sass-graph/node_modules/lodash/lte.js       |    30 +
 .../sass-graph/node_modules/lodash/map.js       |    53 +
 .../sass-graph/node_modules/lodash/mapKeys.js   |    36 +
 .../sass-graph/node_modules/lodash/mapValues.js |    43 +
 .../sass-graph/node_modules/lodash/matches.js   |    39 +
 .../node_modules/lodash/matchesProperty.js      |    37 +
 .../sass-graph/node_modules/lodash/math.js      |    17 +
 .../sass-graph/node_modules/lodash/max.js       |    29 +
 .../sass-graph/node_modules/lodash/maxBy.js     |    34 +
 .../sass-graph/node_modules/lodash/mean.js      |    22 +
 .../sass-graph/node_modules/lodash/meanBy.js    |    31 +
 .../sass-graph/node_modules/lodash/memoize.js   |    73 +
 .../sass-graph/node_modules/lodash/merge.js     |    39 +
 .../sass-graph/node_modules/lodash/mergeWith.js |    39 +
 .../sass-graph/node_modules/lodash/method.js    |    34 +
 .../sass-graph/node_modules/lodash/methodOf.js  |    33 +
 .../sass-graph/node_modules/lodash/min.js       |    29 +
 .../sass-graph/node_modules/lodash/minBy.js     |    34 +
 .../sass-graph/node_modules/lodash/mixin.js     |    74 +
 .../sass-graph/node_modules/lodash/multiply.js  |    22 +
 .../sass-graph/node_modules/lodash/negate.js    |    40 +
 .../sass-graph/node_modules/lodash/next.js      |    35 +
 .../sass-graph/node_modules/lodash/noop.js      |    17 +
 .../sass-graph/node_modules/lodash/now.js       |    23 +
 .../sass-graph/node_modules/lodash/nth.js       |    29 +
 .../sass-graph/node_modules/lodash/nthArg.js    |    32 +
 .../sass-graph/node_modules/lodash/number.js    |     5 +
 .../sass-graph/node_modules/lodash/object.js    |    49 +
 .../sass-graph/node_modules/lodash/omit.js      |    57 +
 .../sass-graph/node_modules/lodash/omitBy.js    |    29 +
 .../sass-graph/node_modules/lodash/once.js      |    25 +
 .../sass-graph/node_modules/lodash/orderBy.js   |    47 +
 .../sass-graph/node_modules/lodash/over.js      |    24 +
 .../sass-graph/node_modules/lodash/overArgs.js  |    61 +
 .../sass-graph/node_modules/lodash/overEvery.js |    30 +
 .../sass-graph/node_modules/lodash/overSome.js  |    30 +
 .../sass-graph/node_modules/lodash/package.json |    70 +
 .../sass-graph/node_modules/lodash/pad.js       |    49 +
 .../sass-graph/node_modules/lodash/padEnd.js    |    39 +
 .../sass-graph/node_modules/lodash/padStart.js  |    39 +
 .../sass-graph/node_modules/lodash/parseInt.js  |    43 +
 .../sass-graph/node_modules/lodash/partial.js   |    50 +
 .../node_modules/lodash/partialRight.js         |    49 +
 .../sass-graph/node_modules/lodash/partition.js |    43 +
 .../sass-graph/node_modules/lodash/pick.js      |    25 +
 .../sass-graph/node_modules/lodash/pickBy.js    |    37 +
 .../sass-graph/node_modules/lodash/plant.js     |    48 +
 .../sass-graph/node_modules/lodash/property.js  |    32 +
 .../node_modules/lodash/propertyOf.js           |    30 +
 .../sass-graph/node_modules/lodash/pull.js      |    29 +
 .../sass-graph/node_modules/lodash/pullAll.js   |    29 +
 .../sass-graph/node_modules/lodash/pullAllBy.js |    33 +
 .../node_modules/lodash/pullAllWith.js          |    32 +
 .../sass-graph/node_modules/lodash/pullAt.js    |    43 +
 .../sass-graph/node_modules/lodash/random.js    |    82 +
 .../sass-graph/node_modules/lodash/range.js     |    46 +
 .../node_modules/lodash/rangeRight.js           |    41 +
 .../sass-graph/node_modules/lodash/rearg.js     |    33 +
 .../sass-graph/node_modules/lodash/reduce.js    |    51 +
 .../node_modules/lodash/reduceRight.js          |    36 +
 .../sass-graph/node_modules/lodash/reject.js    |    46 +
 .../sass-graph/node_modules/lodash/remove.js    |    53 +
 .../sass-graph/node_modules/lodash/repeat.js    |    37 +
 .../sass-graph/node_modules/lodash/replace.js   |    29 +
 .../sass-graph/node_modules/lodash/rest.js      |    40 +
 .../sass-graph/node_modules/lodash/result.js    |    56 +
 .../sass-graph/node_modules/lodash/reverse.js   |    34 +
 .../sass-graph/node_modules/lodash/round.js     |    26 +
 .../sass-graph/node_modules/lodash/sample.js    |    24 +
 .../node_modules/lodash/sampleSize.js           |    37 +
 .../sass-graph/node_modules/lodash/seq.js       |    16 +
 .../sass-graph/node_modules/lodash/set.js       |    35 +
 .../sass-graph/node_modules/lodash/setWith.js   |    32 +
 .../sass-graph/node_modules/lodash/shuffle.js   |    25 +
 .../sass-graph/node_modules/lodash/size.js      |    46 +
 .../sass-graph/node_modules/lodash/slice.js     |    37 +
 .../sass-graph/node_modules/lodash/snakeCase.js |    28 +
 .../sass-graph/node_modules/lodash/some.js      |    51 +
 .../sass-graph/node_modules/lodash/sortBy.js    |    48 +
 .../node_modules/lodash/sortedIndex.js          |    24 +
 .../node_modules/lodash/sortedIndexBy.js        |    33 +
 .../node_modules/lodash/sortedIndexOf.js        |    31 +
 .../node_modules/lodash/sortedLastIndex.js      |    25 +
 .../node_modules/lodash/sortedLastIndexBy.js    |    33 +
 .../node_modules/lodash/sortedLastIndexOf.js    |    31 +
 .../node_modules/lodash/sortedUniq.js           |    24 +
 .../node_modules/lodash/sortedUniqBy.js         |    26 +
 .../sass-graph/node_modules/lodash/split.js     |    52 +
 .../sass-graph/node_modules/lodash/spread.js    |    63 +
 .../sass-graph/node_modules/lodash/startCase.js |    29 +
 .../node_modules/lodash/startsWith.js           |    39 +
 .../sass-graph/node_modules/lodash/string.js    |    33 +
 .../sass-graph/node_modules/lodash/stubArray.js |    23 +
 .../sass-graph/node_modules/lodash/stubFalse.js |    18 +
 .../node_modules/lodash/stubObject.js           |    23 +
 .../node_modules/lodash/stubString.js           |    18 +
 .../sass-graph/node_modules/lodash/stubTrue.js  |    18 +
 .../sass-graph/node_modules/lodash/subtract.js  |    22 +
 .../sass-graph/node_modules/lodash/sum.js       |    24 +
 .../sass-graph/node_modules/lodash/sumBy.js     |    33 +
 .../sass-graph/node_modules/lodash/tail.js      |    22 +
 .../sass-graph/node_modules/lodash/take.js      |    37 +
 .../sass-graph/node_modules/lodash/takeRight.js |    39 +
 .../node_modules/lodash/takeRightWhile.js       |    45 +
 .../sass-graph/node_modules/lodash/takeWhile.js |    45 +
 .../sass-graph/node_modules/lodash/tap.js       |    29 +
 .../sass-graph/node_modules/lodash/template.js  |   238 +
 .../node_modules/lodash/templateSettings.js     |    67 +
 .../sass-graph/node_modules/lodash/throttle.js  |    69 +
 .../sass-graph/node_modules/lodash/thru.js      |    28 +
 .../sass-graph/node_modules/lodash/times.js     |    51 +
 .../sass-graph/node_modules/lodash/toArray.js   |    58 +
 .../sass-graph/node_modules/lodash/toFinite.js  |    42 +
 .../sass-graph/node_modules/lodash/toInteger.js |    36 +
 .../node_modules/lodash/toIterator.js           |    23 +
 .../sass-graph/node_modules/lodash/toJSON.js    |     1 +
 .../sass-graph/node_modules/lodash/toLength.js  |    38 +
 .../sass-graph/node_modules/lodash/toLower.js   |    28 +
 .../sass-graph/node_modules/lodash/toNumber.js  |    66 +
 .../sass-graph/node_modules/lodash/toPairs.js   |    30 +
 .../sass-graph/node_modules/lodash/toPairsIn.js |    30 +
 .../sass-graph/node_modules/lodash/toPath.js    |    33 +
 .../node_modules/lodash/toPlainObject.js        |    32 +
 .../node_modules/lodash/toSafeInteger.js        |    37 +
 .../sass-graph/node_modules/lodash/toString.js  |    28 +
 .../sass-graph/node_modules/lodash/toUpper.js   |    28 +
 .../sass-graph/node_modules/lodash/transform.js |    65 +
 .../sass-graph/node_modules/lodash/trim.js      |    49 +
 .../sass-graph/node_modules/lodash/trimEnd.js   |    43 +
 .../sass-graph/node_modules/lodash/trimStart.js |    43 +
 .../sass-graph/node_modules/lodash/truncate.js  |   111 +
 .../sass-graph/node_modules/lodash/unary.js     |    22 +
 .../sass-graph/node_modules/lodash/unescape.js  |    34 +
 .../sass-graph/node_modules/lodash/union.js     |    26 +
 .../sass-graph/node_modules/lodash/unionBy.js   |    39 +
 .../sass-graph/node_modules/lodash/unionWith.js |    34 +
 .../sass-graph/node_modules/lodash/uniq.js      |    25 +
 .../sass-graph/node_modules/lodash/uniqBy.js    |    31 +
 .../sass-graph/node_modules/lodash/uniqWith.js  |    28 +
 .../sass-graph/node_modules/lodash/uniqueId.js  |    28 +
 .../sass-graph/node_modules/lodash/unset.js     |    34 +
 .../sass-graph/node_modules/lodash/unzip.js     |    45 +
 .../sass-graph/node_modules/lodash/unzipWith.js |    39 +
 .../sass-graph/node_modules/lodash/update.js    |    35 +
 .../node_modules/lodash/updateWith.js           |    33 +
 .../sass-graph/node_modules/lodash/upperCase.js |    27 +
 .../node_modules/lodash/upperFirst.js           |    22 +
 .../sass-graph/node_modules/lodash/util.js      |    34 +
 .../sass-graph/node_modules/lodash/value.js     |     1 +
 .../sass-graph/node_modules/lodash/valueOf.js   |     1 +
 .../sass-graph/node_modules/lodash/values.js    |    34 +
 .../sass-graph/node_modules/lodash/valuesIn.js  |    32 +
 .../sass-graph/node_modules/lodash/without.js   |    31 +
 .../sass-graph/node_modules/lodash/words.js     |    35 +
 .../sass-graph/node_modules/lodash/wrap.js      |    30 +
 .../sass-graph/node_modules/lodash/wrapperAt.js |    48 +
 .../node_modules/lodash/wrapperChain.js         |    34 +
 .../node_modules/lodash/wrapperLodash.js        |   147 +
 .../node_modules/lodash/wrapperReverse.js       |    44 +
 .../node_modules/lodash/wrapperValue.js         |    21 +
 .../sass-graph/node_modules/lodash/xor.js       |    28 +
 .../sass-graph/node_modules/lodash/xorBy.js     |    39 +
 .../sass-graph/node_modules/lodash/xorWith.js   |    34 +
 .../sass-graph/node_modules/lodash/zip.js       |    22 +
 .../sass-graph/node_modules/lodash/zipObject.js |    24 +
 .../node_modules/lodash/zipObjectDeep.js        |    23 +
 .../sass-graph/node_modules/lodash/zipWith.js   |    32 +
 .../node_modules/minimatch/minimatch.js         |   923 +
 .../node_modules/minimatch/package.json         |    67 +
 node_modules/sass-graph/package.json            |    86 +
 node_modules/sass-graph/parse-imports.js        |    64 +
 node_modules/sass-graph/sass-graph.js           |   160 +
 node_modules/scss-tokenizer/index.js            |     1 +
 node_modules/scss-tokenizer/lib/entry.js        |    21 +
 node_modules/scss-tokenizer/lib/input.js        |    57 +
 node_modules/scss-tokenizer/lib/previous-map.js |   105 +
 .../scss-tokenizer/lib/tokenize-comment.js      |   148 +
 .../scss-tokenizer/lib/tokenize-interpolant.js  |   303 +
 .../scss-tokenizer/lib/tokenize-string.js       |   130 +
 node_modules/scss-tokenizer/lib/tokenize.js     |   302 +
 node_modules/scss-tokenizer/package.json        |    75 +
 node_modules/semver/bin/semver                  |   143 +
 node_modules/semver/package.json                |    59 +
 node_modules/semver/range.bnf                   |    16 +
 node_modules/semver/semver.js                   |  1324 +
 node_modules/set-blocking/CHANGELOG.md          |    26 +
 node_modules/set-blocking/LICENSE.txt           |    14 +
 node_modules/set-blocking/index.js              |     7 +
 node_modules/set-blocking/package.json          |    75 +
 node_modules/set-immediate-shim/index.js        |     7 +
 node_modules/set-immediate-shim/package.json    |    70 +
 node_modules/sigmund/bench.js                   |   283 +
 node_modules/sigmund/package.json               |    68 +
 node_modules/sigmund/sigmund.js                 |    39 +
 node_modules/sigmund/test/basic.js              |    24 +
 node_modules/signal-exit/CHANGELOG.md           |    27 +
 node_modules/signal-exit/LICENSE.txt            |    16 +
 node_modules/signal-exit/index.js               |   157 +
 node_modules/signal-exit/package.json           |    71 +
 node_modules/signal-exit/signals.js             |    53 +
 node_modules/simple-concat/.travis.yml          |     3 +
 node_modules/simple-concat/index.js             |    14 +
 node_modules/simple-concat/package.json         |    63 +
 node_modules/simple-concat/test/basic.js        |    41 +
 node_modules/simple-get/index.js                |   113 +
 node_modules/simple-get/package.json            |    83 +
 node_modules/sntp/.npmignore                    |     3 +
 node_modules/sntp/lib/index.js                  |   412 +
 node_modules/sntp/package.json                  |    68 +
 node_modules/source-map/build/assert-shim.js    |    56 +
 node_modules/source-map/build/mini-require.js   |   152 +
 .../source-map/build/prefix-source-map.jsm      |    21 +
 node_modules/source-map/build/prefix-utils.jsm  |    18 +
 node_modules/source-map/build/suffix-browser.js |     8 +
 .../source-map/build/suffix-source-map.jsm      |     6 +
 node_modules/source-map/build/suffix-utils.jsm  |    21 +
 node_modules/source-map/build/test-prefix.js    |     8 +
 node_modules/source-map/build/test-suffix.js    |     3 +
 node_modules/source-map/lib/source-map.js       |     8 +
 .../source-map/lib/source-map/array-set.js      |   107 +
 .../source-map/lib/source-map/base64-vlq.js     |   146 +
 .../source-map/lib/source-map/base64.js         |    73 +
 .../source-map/lib/source-map/binary-search.js  |   117 +
 .../source-map/lib/source-map/mapping-list.js   |    86 +
 .../source-map/lib/source-map/quick-sort.js     |   120 +
 .../lib/source-map/source-map-consumer.js       |  1077 +
 .../lib/source-map/source-map-generator.js      |   399 +
 .../source-map/lib/source-map/source-node.js    |   414 +
 node_modules/source-map/lib/source-map/util.js  |   370 +
 node_modules/source-map/package.json            |   202 +
 node_modules/spdx-correct/index.js              |   326 +
 node_modules/spdx-correct/package.json          |    84 +
 node_modules/spdx-exceptions/index.json         |    29 +
 node_modules/spdx-exceptions/package.json       |    53 +
 node_modules/spdx-expression-parse/AUTHORS      |     4 +
 node_modules/spdx-expression-parse/index.js     |     8 +
 node_modules/spdx-expression-parse/package.json |   101 +
 node_modules/spdx-expression-parse/parse.js     |   138 +
 node_modules/spdx-expression-parse/scan.js      |   131 +
 node_modules/spdx-license-ids/deprecated.json   |    23 +
 node_modules/spdx-license-ids/index.json        |   344 +
 node_modules/spdx-license-ids/package.json      |    82 +
 node_modules/sshpk/.npmignore                   |     9 +
 node_modules/sshpk/.travis.yml                  |    11 +
 node_modules/sshpk/bin/sshpk-conv               |   202 +
 node_modules/sshpk/bin/sshpk-sign               |   191 +
 node_modules/sshpk/bin/sshpk-verify             |   166 +
 node_modules/sshpk/lib/algs.js                  |   166 +
 node_modules/sshpk/lib/certificate.js           |   377 +
 node_modules/sshpk/lib/dhe.js                   |   413 +
 node_modules/sshpk/lib/ed-compat.js             |    97 +
 node_modules/sshpk/lib/errors.js                |    84 +
 node_modules/sshpk/lib/fingerprint.js           |   161 +
 node_modules/sshpk/lib/formats/auto.js          |   106 +
 node_modules/sshpk/lib/formats/dnssec.js        |   286 +
 node_modules/sshpk/lib/formats/openssh-cert.js  |   322 +
 node_modules/sshpk/lib/formats/pem.js           |   191 +
 node_modules/sshpk/lib/formats/pkcs1.js         |   376 +
 node_modules/sshpk/lib/formats/pkcs8.js         |   616 +
 node_modules/sshpk/lib/formats/rfc4253.js       |   165 +
 node_modules/sshpk/lib/formats/ssh-private.js   |   261 +
 node_modules/sshpk/lib/formats/ssh.js           |   114 +
 node_modules/sshpk/lib/formats/x509-pem.js      |    77 +
 node_modules/sshpk/lib/formats/x509.js          |   729 +
 node_modules/sshpk/lib/identity.js              |   288 +
 node_modules/sshpk/lib/index.js                 |    39 +
 node_modules/sshpk/lib/key.js                   |   275 +
 node_modules/sshpk/lib/private-key.js           |   252 +
 node_modules/sshpk/lib/signature.js             |   313 +
 node_modules/sshpk/lib/ssh-buffer.js            |   148 +
 node_modules/sshpk/lib/utils.js                 |   388 +
 node_modules/sshpk/man/man1/sshpk-conv.1        |   135 +
 node_modules/sshpk/man/man1/sshpk-sign.1        |    81 +
 node_modules/sshpk/man/man1/sshpk-verify.1      |    68 +
 node_modules/sshpk/package.json                 |   105 +
 node_modules/stdout-stream/.npmignore           |     1 +
 node_modules/stdout-stream/.travis.yml          |     6 +
 node_modules/stdout-stream/index.js             |    53 +
 node_modules/stdout-stream/package.json         |    51 +
 node_modules/stdout-stream/test/fixtures/end.js |     8 +
 .../stdout-stream/test/fixtures/hello-world.js  |     4 +
 node_modules/stdout-stream/test/index.js        |    33 +
 node_modules/stream-buffers/.mailmap            |     2 +
 node_modules/stream-buffers/.travis.yml         |    28 +
 node_modules/stream-buffers/UNLICENSE           |    24 +
 .../stream-buffers/coverage/coverage.json       |     1 +
 .../coverage/lcov-report/base.css               |   182 +
 .../coverage/lcov-report/index.html             |    73 +
 .../coverage/lcov-report/lib/constants.js.html  |    63 +
 .../coverage/lcov-report/lib/index.html         |   112 +
 .../lib/readable_streambuffer.js.html           |   453 +
 .../lcov-report/lib/streambuffer.js.html        |    54 +
 .../lib/writable_streambuffer.js.html           |   336 +
 .../coverage/lcov-report/prettify.css           |     1 +
 .../coverage/lcov-report/prettify.js            |     1 +
 .../coverage/lcov-report/sort-arrow-sprite.png  |   Bin 0 -> 209 bytes
 .../coverage/lcov-report/sorter.js              |   156 +
 node_modules/stream-buffers/coverage/lcov.info  |   305 +
 node_modules/stream-buffers/lib/constants.js    |     6 +
 .../stream-buffers/lib/readable_streambuffer.js |   136 +
 node_modules/stream-buffers/lib/streambuffer.js |     3 +
 .../stream-buffers/lib/writable_streambuffer.js |    97 +
 node_modules/stream-buffers/package.json        |    64 +
 node_modules/string-width/index.js              |    37 +
 node_modules/string-width/package.json          |    96 +
 node_modules/string_decoder/.travis.yml         |    50 +
 .../string_decoder/lib/string_decoder.js        |   296 +
 node_modules/string_decoder/package.json        |    63 +
 node_modules/stringstream/.npmignore            |    15 +
 node_modules/stringstream/.travis.yml           |     4 +
 node_modules/stringstream/LICENSE.txt           |    22 +
 node_modules/stringstream/example.js            |    27 +
 node_modules/stringstream/package.json          |    56 +
 node_modules/stringstream/stringstream.js       |   102 +
 node_modules/strip-ansi/index.js                |     6 +
 node_modules/strip-ansi/package.json            |   109 +
 node_modules/strip-bom/index.js                 |    17 +
 node_modules/strip-bom/package.json             |    78 +
 node_modules/strip-indent/cli.js                |    49 +
 node_modules/strip-indent/index.js              |    16 +
 node_modules/strip-indent/package.json          |    82 +
 node_modules/strip-json-comments/index.js       |    70 +
 node_modules/strip-json-comments/package.json   |    79 +
 node_modules/supports-color/index.js            |    50 +
 node_modules/supports-color/package.json        |    93 +
 node_modules/symbol-observable/CHANGELOG.md     |    75 +
 node_modules/symbol-observable/es/index.js      |    12 +
 node_modules/symbol-observable/es/ponyfill.js   |    17 +
 node_modules/symbol-observable/index.d.ts       |     2 +
 node_modules/symbol-observable/index.js         |     1 +
 node_modules/symbol-observable/lib/index.js     |    22 +
 node_modules/symbol-observable/lib/ponyfill.js  |    23 +
 node_modules/symbol-observable/package.json     |    80 +
 node_modules/systemjs-plugin-text/.npmignore    |     1 +
 node_modules/systemjs-plugin-text/package.json  |    43 +
 node_modules/systemjs-plugin-text/test.html     |     4 +
 node_modules/systemjs-plugin-text/text.js       |    12 +
 node_modules/systemjs-plugin-text/text.txt      |     4 +
 node_modules/systemjs/dist/system-production.js |     4 +
 .../systemjs/dist/system-production.js.map      |     1 +
 .../systemjs/dist/system-production.src.js      |  1715 +
 .../systemjs/dist/system-production.src.js.map  |     1 +
 node_modules/systemjs/dist/system.js            |     4 +
 node_modules/systemjs/dist/system.js.map        |     1 +
 node_modules/systemjs/dist/system.src.js        |  4000 +++
 node_modules/systemjs/dist/system.src.js.map    |     1 +
 node_modules/systemjs/package.json              |    85 +
 node_modules/tar-fs/.npmignore                  |     2 +
 node_modules/tar-fs/.travis.yml                 |     3 +
 node_modules/tar-fs/index.js                    |   329 +
 .../tar-fs/node_modules/pump/.travis.yml        |     5 +
 node_modules/tar-fs/node_modules/pump/index.js  |    80 +
 .../tar-fs/node_modules/pump/package.json       |    64 +
 .../tar-fs/node_modules/pump/test-browser.js    |    58 +
 node_modules/tar-fs/node_modules/pump/test.js   |    46 +
 node_modules/tar-fs/package.json                |    76 +
 node_modules/tar-fs/test/fixtures/a/hello.txt   |     1 +
 node_modules/tar-fs/test/fixtures/b/a/test.txt  |     1 +
 node_modules/tar-fs/test/fixtures/c/.npmignore  |     1 +
 node_modules/tar-fs/test/fixtures/d/file1       |     0
 node_modules/tar-fs/test/fixtures/d/file2       |     0
 .../tar-fs/test/fixtures/d/sub-dir/file5        |     0
 .../tar-fs/test/fixtures/d/sub-files/file3      |     0
 .../tar-fs/test/fixtures/d/sub-files/file4      |     0
 .../tar-fs/test/fixtures/e/directory/.ignore    |     0
 node_modules/tar-fs/test/fixtures/e/file        |     0
 node_modules/tar-fs/test/index.js               |   294 +
 node_modules/tar-stream/extract.js              |   246 +
 node_modules/tar-stream/headers.js              |   286 +
 node_modules/tar-stream/index.js                |     2 +
 node_modules/tar-stream/pack.js                 |   254 +
 node_modules/tar-stream/package.json            |    89 +
 node_modules/tar/.npmignore                     |     5 +
 node_modules/tar/.travis.yml                    |     4 +
 node_modules/tar/examples/extracter.js          |    19 +
 node_modules/tar/examples/packer.js             |    24 +
 node_modules/tar/examples/reader.js             |    36 +
 node_modules/tar/lib/buffer-entry.js            |    30 +
 node_modules/tar/lib/entry-writer.js            |   169 +
 node_modules/tar/lib/entry.js                   |   220 +
 node_modules/tar/lib/extended-header-writer.js  |   191 +
 node_modules/tar/lib/extended-header.js         |   140 +
 node_modules/tar/lib/extract.js                 |    94 +
 node_modules/tar/lib/global-header-writer.js    |    14 +
 node_modules/tar/lib/header.js                  |   385 +
 node_modules/tar/lib/pack.js                    |   236 +
 node_modules/tar/lib/parse.js                   |   275 +
 node_modules/tar/package.json                   |    63 +
 node_modules/tar/tar.js                         |   173 +
 node_modules/tar/test/00-setup-fixtures.js      |    53 +
 node_modules/tar/test/cb-never-called-1.0.1.tgz |   Bin 0 -> 4096 bytes
 node_modules/tar/test/dir-normalization.js      |   177 +
 node_modules/tar/test/dir-normalization.tar     |   Bin 0 -> 4608 bytes
 node_modules/tar/test/error-on-broken.js        |    33 +
 node_modules/tar/test/extract-move.js           |   132 +
 node_modules/tar/test/extract.js                |   367 +
 node_modules/tar/test/fixtures.tgz              |   Bin 0 -> 19352 bytes
 node_modules/tar/test/header.js                 |   183 +
 node_modules/tar/test/pack-no-proprietary.js    |   886 +
 node_modules/tar/test/pack.js                   |   952 +
 node_modules/tar/test/parse-discard.js          |    29 +
 node_modules/tar/test/parse.js                  |   359 +
 node_modules/tar/test/zz-cleanup.js             |    20 +
 node_modules/tough-cookie/lib/cookie.js         |  1426 +
 node_modules/tough-cookie/lib/memstore.js       |   170 +
 node_modules/tough-cookie/lib/pathMatch.js      |    61 +
 node_modules/tough-cookie/lib/permuteDomain.js  |    56 +
 node_modules/tough-cookie/lib/pubsuffix.js      |    98 +
 node_modules/tough-cookie/lib/store.js          |    71 +
 node_modules/tough-cookie/package.json          |    97 +
 node_modules/trim-newlines/index.js             |    13 +
 node_modules/trim-newlines/package.json         |    78 +
 node_modules/true-case-path/.npmignore          |     9 +
 node_modules/true-case-path/index.js            |    32 +
 .../true-case-path/node_modules/glob/common.js  |   226 +
 .../true-case-path/node_modules/glob/glob.js    |   765 +
 .../node_modules/glob/package.json              |    79 +
 .../true-case-path/node_modules/glob/sync.js    |   460 +
 .../node_modules/minimatch/minimatch.js         |   923 +
 .../node_modules/minimatch/package.json         |    67 +
 node_modules/true-case-path/package.json        |    66 +
 node_modules/tslib/.gitattributes               |     1 +
 node_modules/tslib/CopyrightNotice.txt          |    15 +
 node_modules/tslib/LICENSE.txt                  |    55 +
 node_modules/tslib/bower.json                   |    34 +
 node_modules/tslib/docs/generator.md            |   486 +
 node_modules/tslib/package.json                 |    70 +
 node_modules/tslib/tslib.d.ts                   |    33 +
 node_modules/tslib/tslib.es6.html               |     1 +
 node_modules/tslib/tslib.es6.js                 |   178 +
 node_modules/tslib/tslib.html                   |     1 +
 node_modules/tslib/tslib.js                     |   241 +
 node_modules/tunnel-agent/index.js              |   244 +
 node_modules/tunnel-agent/package.json          |    60 +
 node_modules/tweetnacl/.npmignore               |     4 +
 node_modules/tweetnacl/AUTHORS.md               |    28 +
 node_modules/tweetnacl/CHANGELOG.md             |   221 +
 node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md |    20 +
 node_modules/tweetnacl/nacl-fast.js             |  2388 ++
 node_modules/tweetnacl/nacl-fast.min.js         |     2 +
 node_modules/tweetnacl/nacl.d.ts                |    98 +
 node_modules/tweetnacl/nacl.js                  |  1175 +
 node_modules/tweetnacl/nacl.min.js              |     1 +
 node_modules/tweetnacl/package.json             |    91 +
 node_modules/underscore.string/.travis.yml      |     8 +
 node_modules/underscore.string/Gemfile          |     5 +
 node_modules/underscore.string/Gemfile.lock     |    34 +
 node_modules/underscore.string/README.markdown  |   668 +
 node_modules/underscore.string/Rakefile         |    28 +
 .../dist/underscore.string.min.js               |     1 +
 .../underscore.string/lib/underscore.string.js  |   525 +
 node_modules/underscore.string/package.json     |    98 +
 .../underscore.string/test/run-qunit.js         |    44 +
 node_modules/underscore.string/test/speed.js    |   138 +
 node_modules/underscore.string/test/strings.js  |   438 +
 .../test/strings_standalone.js                  |    12 +
 node_modules/underscore.string/test/test.html   |    31 +
 .../underscore.string/test/test_standalone.html |    18 +
 .../test/test_underscore/arrays.js              |   166 +
 .../test/test_underscore/chaining.js            |    59 +
 .../test/test_underscore/collections.js         |   270 +
 .../test/test_underscore/functions.js           |   198 +
 .../test/test_underscore/objects.js             |   535 +
 .../test/test_underscore/speed.js               |    70 +
 .../test/test_underscore/temp.js                |    27 +
 .../test/test_underscore/temp_tests.html        |    19 +
 .../test/test_underscore/test.html              |    43 +
 .../test/test_underscore/utility.js             |   155 +
 .../test/test_underscore/vendor/jquery.js       |    19 +
 .../test/test_underscore/vendor/jslitmus.js     |   670 +
 .../test/test_underscore/vendor/qunit.css       |   196 +
 .../test/test_underscore/vendor/qunit.js        |  2360 ++
 .../underscore.string/test/underscore.js        |   999 +
 node_modules/underscore/package.json            |    76 +
 node_modules/underscore/underscore-min.js       |     6 +
 node_modules/underscore/underscore.js           |  1415 +
 node_modules/util-deprecate/History.md          |    16 +
 node_modules/util-deprecate/browser.js          |    67 +
 node_modules/util-deprecate/node.js             |     6 +
 node_modules/util-deprecate/package.json        |    60 +
 node_modules/uuid/.eslintrc.json                |    47 +
 node_modules/uuid/AUTHORS                       |     5 +
 node_modules/uuid/CHANGELOG.md                  |    57 +
 node_modules/uuid/LICENSE.md                    |    21 +
 node_modules/uuid/README_js.md                  |   280 +
 node_modules/uuid/bin/uuid                      |    65 +
 node_modules/uuid/index.js                      |     8 +
 node_modules/uuid/lib/bytesToUuid.js            |    23 +
 node_modules/uuid/lib/md5-browser.js            |   216 +
 node_modules/uuid/lib/md5.js                    |    25 +
 node_modules/uuid/lib/rng-browser.js            |    32 +
 node_modules/uuid/lib/rng.js                    |     8 +
 node_modules/uuid/lib/sha1-browser.js           |    89 +
 node_modules/uuid/lib/sha1.js                   |    25 +
 node_modules/uuid/lib/v35.js                    |    53 +
 node_modules/uuid/package.json                  |    92 +
 node_modules/uuid/v1.js                         |   109 +
 node_modules/uuid/v3.js                         |     4 +
 node_modules/uuid/v4.js                         |    29 +
 node_modules/uuid/v5.js                         |     3 +
 .../validate-npm-package-license/index.js       |    84 +
 .../validate-npm-package-license/package.json   |    65 +
 .../validate-npm-package-license/test.log       |     4 +
 node_modules/verror/.npmignore                  |     9 +
 node_modules/verror/CHANGES.md                  |    28 +
 node_modules/verror/CONTRIBUTING.md             |    19 +
 node_modules/verror/lib/verror.js               |   451 +
 node_modules/verror/package.json                |    55 +
 node_modules/walkdir/.jshintignore              |     3 +
 node_modules/walkdir/.npmignore                 |     2 +
 node_modules/walkdir/.travis.yml                |     5 +
 node_modules/walkdir/CONTRIBUTING.md            |    32 +
 node_modules/walkdir/package.json               |    69 +
 node_modules/walkdir/test/async.js              |    66 +
 node_modules/walkdir/test/comparison/find.js    |    33 +
 node_modules/walkdir/test/comparison/find.py    |    26 +
 .../walkdir/test/comparison/finditsynctest.js   |    15 +
 .../walkdir/test/comparison/findittest.js       |    14 +
 node_modules/walkdir/test/comparison/fstream.js |    24 +
 .../test/comparison/install_test_deps.sh        |     1 +
 node_modules/walkdir/test/comparison/lsr.js     |    18 +
 .../walkdir/test/comparison/package.json        |    10 +
 node_modules/walkdir/test/custom_fs.js          |    34 +
 node_modules/walkdir/test/dir/foo/a/b/c/w       |     0
 node_modules/walkdir/test/dir/foo/a/b/z         |     0
 node_modules/walkdir/test/dir/foo/a/y           |     0
 node_modules/walkdir/test/dir/foo/x             |     0
 .../walkdir/test/dir/nested-symlink/found-me    |     1 +
 .../walkdir/test/dir/symlinks/dir1/file1        |     0
 .../walkdir/test/dir/symlinks/dir2/file2        |     0
 node_modules/walkdir/test/dir/symlinks/file     |     0
 node_modules/walkdir/test/endearly.js           |    19 +
 node_modules/walkdir/test/ignore-during.js      |    19 +
 node_modules/walkdir/test/ignore-first.js       |    18 +
 node_modules/walkdir/test/ignore.js             |    18 +
 node_modules/walkdir/test/max_depth.js          |    30 +
 node_modules/walkdir/test/nested-symlink.js     |    43 +
 node_modules/walkdir/test/no_recurse.js         |    28 +
 node_modules/walkdir/test/nofailemptydir.js     |    34 +
 node_modules/walkdir/test/pauseresume.js        |    36 +
 node_modules/walkdir/test/symlink.js            |    37 +
 node_modules/walkdir/test/sync.js               |    52 +
 node_modules/walkdir/walkdir.js                 |   254 +
 node_modules/which-module/CHANGELOG.md          |    11 +
 node_modules/which-module/index.js              |     9 +
 node_modules/which-module/package.json          |    72 +
 node_modules/which-pm-runs/index.js             |    17 +
 node_modules/which-pm-runs/package.json         |    66 +
 node_modules/which/bin/which                    |    14 +
 node_modules/which/package.json                 |    54 +
 node_modules/which/which.js                     |   101 +
 node_modules/wide-align/align.js                |    65 +
 node_modules/wide-align/package.json            |    70 +
 node_modules/wrap-ansi/index.js                 |   168 +
 node_modules/wrap-ansi/package.json             |   120 +
 node_modules/wrappy/package.json                |    63 +
 node_modules/wrappy/wrappy.js                   |    33 +
 node_modules/xtend/.jshintrc                    |    30 +
 node_modules/xtend/.npmignore                   |     1 +
 node_modules/xtend/LICENCE                      |    19 +
 node_modules/xtend/Makefile                     |     4 +
 node_modules/xtend/immutable.js                 |    19 +
 node_modules/xtend/mutable.js                   |    17 +
 node_modules/xtend/package.json                 |    91 +
 node_modules/xtend/test.js                      |    83 +
 node_modules/y18n/index.js                      |   172 +
 node_modules/y18n/package.json                  |    69 +
 node_modules/yallist/iterator.js                |     7 +
 node_modules/yallist/package.json               |    66 +
 node_modules/yallist/yallist.js                 |   370 +
 node_modules/yargs-parser/CHANGELOG.md          |   169 +
 node_modules/yargs-parser/LICENSE.txt           |    14 +
 node_modules/yargs-parser/index.js              |   759 +
 .../yargs-parser/lib/tokenize-arg-string.js     |    34 +
 .../node_modules/camelcase/index.js             |    56 +
 .../node_modules/camelcase/package.json         |    75 +
 node_modules/yargs-parser/package.json          |    79 +
 node_modules/yargs/CHANGELOG.md                 |   921 +
 node_modules/yargs/completion.sh.hbs            |    28 +
 node_modules/yargs/index.js                     |    31 +
 node_modules/yargs/lib/apply-extends.js         |    41 +
 node_modules/yargs/lib/argsert.js               |    72 +
 node_modules/yargs/lib/assign.js                |    15 +
 node_modules/yargs/lib/command.js               |   334 +
 node_modules/yargs/lib/completion.js            |   104 +
 node_modules/yargs/lib/levenshtein.js           |    47 +
 node_modules/yargs/lib/obj-filter.js            |    10 +
 node_modules/yargs/lib/usage.js                 |   489 +
 node_modules/yargs/lib/validation.js            |   363 +
 node_modules/yargs/lib/yerror.js                |    10 +
 node_modules/yargs/locales/be.json              |    39 +
 node_modules/yargs/locales/de.json              |    39 +
 node_modules/yargs/locales/en.json              |    40 +
 node_modules/yargs/locales/es.json              |    39 +
 node_modules/yargs/locales/fr.json              |    37 +
 node_modules/yargs/locales/hi.json              |    39 +
 node_modules/yargs/locales/hu.json              |    39 +
 node_modules/yargs/locales/id.json              |    40 +
 node_modules/yargs/locales/it.json              |    39 +
 node_modules/yargs/locales/ja.json              |    39 +
 node_modules/yargs/locales/ko.json              |    39 +
 node_modules/yargs/locales/nb.json              |    37 +
 node_modules/yargs/locales/nl.json              |    39 +
 node_modules/yargs/locales/pirate.json          |    12 +
 node_modules/yargs/locales/pl.json              |    39 +
 node_modules/yargs/locales/pt.json              |    38 +
 node_modules/yargs/locales/pt_BR.json           |    40 +
 node_modules/yargs/locales/ru.json              |    39 +
 node_modules/yargs/locales/th.json              |    39 +
 node_modules/yargs/locales/tr.json              |    39 +
 node_modules/yargs/locales/zh_CN.json           |    37 +
 node_modules/yargs/locales/zh_TW.json           |    40 +
 .../yargs/node_modules/camelcase/index.js       |    56 +
 .../yargs/node_modules/camelcase/package.json   |    75 +
 node_modules/yargs/package.json                 |   112 +
 node_modules/yargs/yargs.js                     |  1126 +
 node_modules/zip-stream/CHANGELOG.md            |    18 +
 node_modules/zip-stream/index.js                |   180 +
 .../zip-stream/node_modules/lodash/_DataView.js |     7 +
 .../zip-stream/node_modules/lodash/_Hash.js     |    32 +
 .../node_modules/lodash/_LazyWrapper.js         |    28 +
 .../node_modules/lodash/_ListCache.js           |    32 +
 .../node_modules/lodash/_LodashWrapper.js       |    22 +
 .../zip-stream/node_modules/lodash/_Map.js      |     7 +
 .../zip-stream/node_modules/lodash/_MapCache.js |    32 +
 .../zip-stream/node_modules/lodash/_Promise.js  |     7 +
 .../zip-stream/node_modules/lodash/_Set.js      |     7 +
 .../zip-stream/node_modules/lodash/_SetCache.js |    27 +
 .../zip-stream/node_modules/lodash/_Stack.js    |    27 +
 .../zip-stream/node_modules/lodash/_Symbol.js   |     6 +
 .../node_modules/lodash/_Uint8Array.js          |     6 +
 .../zip-stream/node_modules/lodash/_WeakMap.js  |     7 +
 .../zip-stream/node_modules/lodash/_apply.js    |    21 +
 .../node_modules/lodash/_arrayAggregator.js     |    22 +
 .../node_modules/lodash/_arrayEach.js           |    22 +
 .../node_modules/lodash/_arrayEachRight.js      |    21 +
 .../node_modules/lodash/_arrayEvery.js          |    23 +
 .../node_modules/lodash/_arrayFilter.js         |    25 +
 .../node_modules/lodash/_arrayIncludes.js       |    17 +
 .../node_modules/lodash/_arrayIncludesWith.js   |    22 +
 .../node_modules/lodash/_arrayLikeKeys.js       |    49 +
 .../zip-stream/node_modules/lodash/_arrayMap.js |    21 +
 .../node_modules/lodash/_arrayPush.js           |    20 +
 .../node_modules/lodash/_arrayReduce.js         |    26 +
 .../node_modules/lodash/_arrayReduceRight.js    |    24 +
 .../node_modules/lodash/_arraySample.js         |    15 +
 .../node_modules/lodash/_arraySampleSize.js     |    17 +
 .../node_modules/lodash/_arrayShuffle.js        |    15 +
 .../node_modules/lodash/_arraySome.js           |    23 +
 .../node_modules/lodash/_asciiSize.js           |    12 +
 .../node_modules/lodash/_asciiToArray.js        |    12 +
 .../node_modules/lodash/_asciiWords.js          |    15 +
 .../node_modules/lodash/_assignMergeValue.js    |    20 +
 .../node_modules/lodash/_assignValue.js         |    28 +
 .../node_modules/lodash/_assocIndexOf.js        |    21 +
 .../node_modules/lodash/_baseAggregator.js      |    21 +
 .../node_modules/lodash/_baseAssign.js          |    17 +
 .../node_modules/lodash/_baseAssignIn.js        |    17 +
 .../node_modules/lodash/_baseAssignValue.js     |    25 +
 .../zip-stream/node_modules/lodash/_baseAt.js   |    23 +
 .../node_modules/lodash/_baseClamp.js           |    22 +
 .../node_modules/lodash/_baseClone.js           |   171 +
 .../node_modules/lodash/_baseConforms.js        |    18 +
 .../node_modules/lodash/_baseConformsTo.js      |    27 +
 .../node_modules/lodash/_baseCreate.js          |    30 +
 .../node_modules/lodash/_baseDelay.js           |    21 +
 .../node_modules/lodash/_baseDifference.js      |    67 +
 .../zip-stream/node_modules/lodash/_baseEach.js |    14 +
 .../node_modules/lodash/_baseEachRight.js       |    14 +
 .../node_modules/lodash/_baseEvery.js           |    21 +
 .../node_modules/lodash/_baseExtremum.js        |    32 +
 .../zip-stream/node_modules/lodash/_baseFill.js |    32 +
 .../node_modules/lodash/_baseFilter.js          |    21 +
 .../node_modules/lodash/_baseFindIndex.js       |    24 +
 .../node_modules/lodash/_baseFindKey.js         |    23 +
 .../node_modules/lodash/_baseFlatten.js         |    38 +
 .../zip-stream/node_modules/lodash/_baseFor.js  |    16 +
 .../node_modules/lodash/_baseForOwn.js          |    16 +
 .../node_modules/lodash/_baseForOwnRight.js     |    16 +
 .../node_modules/lodash/_baseForRight.js        |    15 +
 .../node_modules/lodash/_baseFunctions.js       |    19 +
 .../zip-stream/node_modules/lodash/_baseGet.js  |    24 +
 .../node_modules/lodash/_baseGetAllKeys.js      |    20 +
 .../node_modules/lodash/_baseGetTag.js          |    28 +
 .../zip-stream/node_modules/lodash/_baseGt.js   |    14 +
 .../zip-stream/node_modules/lodash/_baseHas.js  |    19 +
 .../node_modules/lodash/_baseHasIn.js           |    13 +
 .../node_modules/lodash/_baseInRange.js         |    18 +
 .../node_modules/lodash/_baseIndexOf.js         |    20 +
 .../node_modules/lodash/_baseIndexOfWith.js     |    23 +
 .../node_modules/lodash/_baseIntersection.js    |    74 +
 .../node_modules/lodash/_baseInverter.js        |    21 +
 .../node_modules/lodash/_baseInvoke.js          |    24 +
 .../node_modules/lodash/_baseIsArguments.js     |    18 +
 .../node_modules/lodash/_baseIsArrayBuffer.js   |    17 +
 .../node_modules/lodash/_baseIsDate.js          |    18 +
 .../node_modules/lodash/_baseIsEqual.js         |    28 +
 .../node_modules/lodash/_baseIsEqualDeep.js     |    83 +
 .../node_modules/lodash/_baseIsMap.js           |    18 +
 .../node_modules/lodash/_baseIsMatch.js         |    62 +
 .../node_modules/lodash/_baseIsNaN.js           |    12 +
 .../node_modules/lodash/_baseIsNative.js        |    47 +
 .../node_modules/lodash/_baseIsRegExp.js        |    18 +
 .../node_modules/lodash/_baseIsSet.js           |    18 +
 .../node_modules/lodash/_baseIsTypedArray.js    |    60 +
 .../node_modules/lodash/_baseIteratee.js        |    31 +
 .../zip-stream/node_modules/lodash/_baseKeys.js |    30 +
 .../node_modules/lodash/_baseKeysIn.js          |    33 +
 .../node_modules/lodash/_baseLodash.js          |    10 +
 .../zip-stream/node_modules/lodash/_baseLt.js   |    14 +
 .../zip-stream/node_modules/lodash/_baseMap.js  |    22 +
 .../node_modules/lodash/_baseMatches.js         |    22 +
 .../node_modules/lodash/_baseMatchesProperty.js |    33 +
 .../zip-stream/node_modules/lodash/_baseMean.js |    20 +
 .../node_modules/lodash/_baseMerge.js           |    42 +
 .../node_modules/lodash/_baseMergeDeep.js       |    94 +
 .../zip-stream/node_modules/lodash/_baseNth.js  |    20 +
 .../node_modules/lodash/_baseOrderBy.js         |    34 +
 .../zip-stream/node_modules/lodash/_basePick.js |    19 +
 .../node_modules/lodash/_basePickBy.js          |    30 +
 .../node_modules/lodash/_baseProperty.js        |    14 +
 .../node_modules/lodash/_basePropertyDeep.js    |    16 +
 .../node_modules/lodash/_basePropertyOf.js      |    14 +
 .../node_modules/lodash/_basePullAll.js         |    51 +
 .../node_modules/lodash/_basePullAt.js          |    37 +
 .../node_modules/lodash/_baseRandom.js          |    18 +
 .../node_modules/lodash/_baseRange.js           |    28 +
 .../node_modules/lodash/_baseReduce.js          |    23 +
 .../node_modules/lodash/_baseRepeat.js          |    35 +
 .../zip-stream/node_modules/lodash/_baseRest.js |    17 +
 .../node_modules/lodash/_baseSample.js          |    15 +
 .../node_modules/lodash/_baseSampleSize.js      |    18 +
 .../zip-stream/node_modules/lodash/_baseSet.js  |    47 +
 .../node_modules/lodash/_baseSetData.js         |    17 +
 .../node_modules/lodash/_baseSetToString.js     |    22 +
 .../node_modules/lodash/_baseShuffle.js         |    15 +
 .../node_modules/lodash/_baseSlice.js           |    31 +
 .../zip-stream/node_modules/lodash/_baseSome.js |    22 +
 .../node_modules/lodash/_baseSortBy.js          |    21 +
 .../node_modules/lodash/_baseSortedIndex.js     |    42 +
 .../node_modules/lodash/_baseSortedIndexBy.js   |    64 +
 .../node_modules/lodash/_baseSortedUniq.js      |    30 +
 .../zip-stream/node_modules/lodash/_baseSum.js  |    24 +
 .../node_modules/lodash/_baseTimes.js           |    20 +
 .../node_modules/lodash/_baseToNumber.js        |    24 +
 .../node_modules/lodash/_baseToPairs.js         |    18 +
 .../node_modules/lodash/_baseToString.js        |    37 +
 .../node_modules/lodash/_baseUnary.js           |    14 +
 .../zip-stream/node_modules/lodash/_baseUniq.js |    72 +
 .../node_modules/lodash/_baseUnset.js           |    20 +
 .../node_modules/lodash/_baseUpdate.js          |    18 +
 .../node_modules/lodash/_baseValues.js          |    19 +
 .../node_modules/lodash/_baseWhile.js           |    26 +
 .../node_modules/lodash/_baseWrapperValue.js    |    25 +
 .../zip-stream/node_modules/lodash/_baseXor.js  |    36 +
 .../node_modules/lodash/_baseZipObject.js       |    23 +
 .../zip-stream/node_modules/lodash/_cacheHas.js |    13 +
 .../node_modules/lodash/_castArrayLikeObject.js |    14 +
 .../node_modules/lodash/_castFunction.js        |    14 +
 .../zip-stream/node_modules/lodash/_castPath.js |    21 +
 .../zip-stream/node_modules/lodash/_castRest.js |    14 +
 .../node_modules/lodash/_castSlice.js           |    18 +
 .../node_modules/lodash/_charsEndIndex.js       |    19 +
 .../node_modules/lodash/_charsStartIndex.js     |    20 +
 .../node_modules/lodash/_cloneArrayBuffer.js    |    16 +
 .../node_modules/lodash/_cloneBuffer.js         |    35 +
 .../node_modules/lodash/_cloneDataView.js       |    16 +
 .../node_modules/lodash/_cloneRegExp.js         |    17 +
 .../node_modules/lodash/_cloneSymbol.js         |    18 +
 .../node_modules/lodash/_cloneTypedArray.js     |    16 +
 .../node_modules/lodash/_compareAscending.js    |    41 +
 .../node_modules/lodash/_compareMultiple.js     |    44 +
 .../node_modules/lodash/_composeArgs.js         |    39 +
 .../node_modules/lodash/_composeArgsRight.js    |    41 +
 .../node_modules/lodash/_copyArray.js           |    20 +
 .../node_modules/lodash/_copyObject.js          |    40 +
 .../node_modules/lodash/_copySymbols.js         |    16 +
 .../node_modules/lodash/_copySymbolsIn.js       |    16 +
 .../node_modules/lodash/_coreJsData.js          |     6 +
 .../node_modules/lodash/_countHolders.js        |    21 +
 .../node_modules/lodash/_createAggregator.js    |    23 +
 .../node_modules/lodash/_createAssigner.js      |    37 +
 .../node_modules/lodash/_createBaseEach.js      |    32 +
 .../node_modules/lodash/_createBaseFor.js       |    25 +
 .../node_modules/lodash/_createBind.js          |    28 +
 .../node_modules/lodash/_createCaseFirst.js     |    33 +
 .../node_modules/lodash/_createCompounder.js    |    24 +
 .../node_modules/lodash/_createCtor.js          |    37 +
 .../node_modules/lodash/_createCurry.js         |    46 +
 .../node_modules/lodash/_createFind.js          |    25 +
 .../node_modules/lodash/_createFlow.js          |    78 +
 .../node_modules/lodash/_createHybrid.js        |    92 +
 .../node_modules/lodash/_createInverter.js      |    17 +
 .../node_modules/lodash/_createMathOperation.js |    38 +
 .../node_modules/lodash/_createOver.js          |    27 +
 .../node_modules/lodash/_createPadding.js       |    33 +
 .../node_modules/lodash/_createPartial.js       |    43 +
 .../node_modules/lodash/_createRange.js         |    30 +
 .../node_modules/lodash/_createRecurry.js       |    56 +
 .../lodash/_createRelationalOperation.js        |    20 +
 .../node_modules/lodash/_createRound.js         |    33 +
 .../node_modules/lodash/_createSet.js           |    19 +
 .../node_modules/lodash/_createToPairs.js       |    30 +
 .../node_modules/lodash/_createWrap.js          |   106 +
 .../lodash/_customDefaultsAssignIn.js           |    29 +
 .../node_modules/lodash/_customDefaultsMerge.js |    28 +
 .../node_modules/lodash/_customOmitClone.js     |    16 +
 .../node_modules/lodash/_deburrLetter.js        |    71 +
 .../node_modules/lodash/_defineProperty.js      |    11 +
 .../node_modules/lodash/_equalArrays.js         |    83 +
 .../node_modules/lodash/_equalByTag.js          |   112 +
 .../node_modules/lodash/_equalObjects.js        |    89 +
 .../node_modules/lodash/_escapeHtmlChar.js      |    21 +
 .../node_modules/lodash/_escapeStringChar.js    |    22 +
 .../zip-stream/node_modules/lodash/_flatRest.js |    16 +
 .../node_modules/lodash/_freeGlobal.js          |     4 +
 .../node_modules/lodash/_getAllKeys.js          |    16 +
 .../node_modules/lodash/_getAllKeysIn.js        |    17 +
 .../zip-stream/node_modules/lodash/_getData.js  |    15 +
 .../node_modules/lodash/_getFuncName.js         |    31 +
 .../node_modules/lodash/_getHolder.js           |    13 +
 .../node_modules/lodash/_getMapData.js          |    18 +
 .../node_modules/lodash/_getMatchData.js        |    24 +
 .../node_modules/lodash/_getNative.js           |    17 +
 .../node_modules/lodash/_getPrototype.js        |     6 +
 .../node_modules/lodash/_getRawTag.js           |    46 +
 .../node_modules/lodash/_getSymbols.js          |    30 +
 .../node_modules/lodash/_getSymbolsIn.js        |    25 +
 .../zip-stream/node_modules/lodash/_getTag.js   |    58 +
 .../zip-stream/node_modules/lodash/_getValue.js |    13 +
 .../zip-stream/node_modules/lodash/_getView.js  |    33 +
 .../node_modules/lodash/_getWrapDetails.js      |    17 +
 .../zip-stream/node_modules/lodash/_hasPath.js  |    39 +
 .../node_modules/lodash/_hasUnicode.js          |    26 +
 .../node_modules/lodash/_hasUnicodeWord.js      |    15 +
 .../node_modules/lodash/_hashClear.js           |    15 +
 .../node_modules/lodash/_hashDelete.js          |    17 +
 .../zip-stream/node_modules/lodash/_hashGet.js  |    30 +
 .../zip-stream/node_modules/lodash/_hashHas.js  |    23 +
 .../zip-stream/node_modules/lodash/_hashSet.js  |    23 +
 .../node_modules/lodash/_initCloneArray.js      |    26 +
 .../node_modules/lodash/_initCloneByTag.js      |    77 +
 .../node_modules/lodash/_initCloneObject.js     |    18 +
 .../node_modules/lodash/_insertWrapDetails.js   |    23 +
 .../node_modules/lodash/_isFlattenable.js       |    20 +
 .../zip-stream/node_modules/lodash/_isIndex.js  |    25 +
 .../node_modules/lodash/_isIterateeCall.js      |    30 +
 .../zip-stream/node_modules/lodash/_isKey.js    |    29 +
 .../node_modules/lodash/_isKeyable.js           |    15 +
 .../node_modules/lodash/_isLaziable.js          |    28 +
 .../node_modules/lodash/_isMaskable.js          |    14 +
 .../zip-stream/node_modules/lodash/_isMasked.js |    20 +
 .../node_modules/lodash/_isPrototype.js         |    18 +
 .../node_modules/lodash/_isStrictComparable.js  |    15 +
 .../node_modules/lodash/_iteratorToArray.js     |    18 +
 .../node_modules/lodash/_lazyClone.js           |    23 +
 .../node_modules/lodash/_lazyReverse.js         |    23 +
 .../node_modules/lodash/_lazyValue.js           |    69 +
 .../node_modules/lodash/_listCacheClear.js      |    13 +
 .../node_modules/lodash/_listCacheDelete.js     |    35 +
 .../node_modules/lodash/_listCacheGet.js        |    19 +
 .../node_modules/lodash/_listCacheHas.js        |    16 +
 .../node_modules/lodash/_listCacheSet.js        |    26 +
 .../node_modules/lodash/_mapCacheClear.js       |    21 +
 .../node_modules/lodash/_mapCacheDelete.js      |    18 +
 .../node_modules/lodash/_mapCacheGet.js         |    16 +
 .../node_modules/lodash/_mapCacheHas.js         |    16 +
 .../node_modules/lodash/_mapCacheSet.js         |    22 +
 .../node_modules/lodash/_mapToArray.js          |    18 +
 .../lodash/_matchesStrictComparable.js          |    20 +
 .../node_modules/lodash/_memoizeCapped.js       |    26 +
 .../node_modules/lodash/_mergeData.js           |    90 +
 .../zip-stream/node_modules/lodash/_metaMap.js  |     6 +
 .../node_modules/lodash/_nativeCreate.js        |     6 +
 .../node_modules/lodash/_nativeKeys.js          |     6 +
 .../node_modules/lodash/_nativeKeysIn.js        |    20 +
 .../zip-stream/node_modules/lodash/_nodeUtil.js |    30 +
 .../node_modules/lodash/_objectToString.js      |    22 +
 .../zip-stream/node_modules/lodash/_overArg.js  |    15 +
 .../zip-stream/node_modules/lodash/_overRest.js |    36 +
 .../zip-stream/node_modules/lodash/_parent.js   |    16 +
 .../zip-stream/node_modules/lodash/_reEscape.js |     4 +
 .../node_modules/lodash/_reEvaluate.js          |     4 +
 .../node_modules/lodash/_reInterpolate.js       |     4 +
 .../node_modules/lodash/_realNames.js           |     4 +
 .../zip-stream/node_modules/lodash/_reorder.js  |    29 +
 .../node_modules/lodash/_replaceHolders.js      |    29 +
 .../zip-stream/node_modules/lodash/_root.js     |     9 +
 .../zip-stream/node_modules/lodash/_safeGet.js  |    15 +
 .../node_modules/lodash/_setCacheAdd.js         |    19 +
 .../node_modules/lodash/_setCacheHas.js         |    14 +
 .../zip-stream/node_modules/lodash/_setData.js  |    20 +
 .../node_modules/lodash/_setToArray.js          |    18 +
 .../node_modules/lodash/_setToPairs.js          |    18 +
 .../node_modules/lodash/_setToString.js         |    14 +
 .../node_modules/lodash/_setWrapToString.js     |    21 +
 .../zip-stream/node_modules/lodash/_shortOut.js |    37 +
 .../node_modules/lodash/_shuffleSelf.js         |    28 +
 .../node_modules/lodash/_stackClear.js          |    15 +
 .../node_modules/lodash/_stackDelete.js         |    18 +
 .../zip-stream/node_modules/lodash/_stackGet.js |    14 +
 .../zip-stream/node_modules/lodash/_stackHas.js |    14 +
 .../zip-stream/node_modules/lodash/_stackSet.js |    34 +
 .../node_modules/lodash/_strictIndexOf.js       |    23 +
 .../node_modules/lodash/_strictLastIndexOf.js   |    21 +
 .../node_modules/lodash/_stringSize.js          |    18 +
 .../node_modules/lodash/_stringToArray.js       |    18 +
 .../node_modules/lodash/_stringToPath.js        |    27 +
 .../zip-stream/node_modules/lodash/_toKey.js    |    21 +
 .../zip-stream/node_modules/lodash/_toSource.js |    26 +
 .../node_modules/lodash/_unescapeHtmlChar.js    |    21 +
 .../node_modules/lodash/_unicodeSize.js         |    44 +
 .../node_modules/lodash/_unicodeToArray.js      |    40 +
 .../node_modules/lodash/_unicodeWords.js        |    69 +
 .../node_modules/lodash/_updateWrapDetails.js   |    46 +
 .../node_modules/lodash/_wrapperClone.js        |    23 +
 .../zip-stream/node_modules/lodash/add.js       |    22 +
 .../zip-stream/node_modules/lodash/after.js     |    42 +
 .../zip-stream/node_modules/lodash/array.js     |    67 +
 .../zip-stream/node_modules/lodash/ary.js       |    29 +
 .../zip-stream/node_modules/lodash/assign.js    |    58 +
 .../zip-stream/node_modules/lodash/assignIn.js  |    40 +
 .../node_modules/lodash/assignInWith.js         |    38 +
 .../node_modules/lodash/assignWith.js           |    37 +
 .../zip-stream/node_modules/lodash/at.js        |    23 +
 .../zip-stream/node_modules/lodash/attempt.js   |    35 +
 .../zip-stream/node_modules/lodash/before.js    |    40 +
 .../zip-stream/node_modules/lodash/bind.js      |    57 +
 .../zip-stream/node_modules/lodash/bindAll.js   |    41 +
 .../zip-stream/node_modules/lodash/bindKey.js   |    68 +
 .../zip-stream/node_modules/lodash/camelCase.js |    29 +
 .../node_modules/lodash/capitalize.js           |    23 +
 .../zip-stream/node_modules/lodash/castArray.js |    44 +
 .../zip-stream/node_modules/lodash/ceil.js      |    26 +
 .../zip-stream/node_modules/lodash/chain.js     |    38 +
 .../zip-stream/node_modules/lodash/chunk.js     |    50 +
 .../zip-stream/node_modules/lodash/clamp.js     |    39 +
 .../zip-stream/node_modules/lodash/clone.js     |    36 +
 .../zip-stream/node_modules/lodash/cloneDeep.js |    29 +
 .../node_modules/lodash/cloneDeepWith.js        |    40 +
 .../zip-stream/node_modules/lodash/cloneWith.js |    42 +
 .../node_modules/lodash/collection.js           |    30 +
 .../zip-stream/node_modules/lodash/commit.js    |    33 +
 .../zip-stream/node_modules/lodash/compact.js   |    31 +
 .../zip-stream/node_modules/lodash/concat.js    |    43 +
 .../zip-stream/node_modules/lodash/cond.js      |    60 +
 .../zip-stream/node_modules/lodash/conforms.js  |    35 +
 .../node_modules/lodash/conformsTo.js           |    32 +
 .../zip-stream/node_modules/lodash/constant.js  |    26 +
 .../zip-stream/node_modules/lodash/core.js      |  3854 +++
 .../zip-stream/node_modules/lodash/core.min.js  |    29 +
 .../zip-stream/node_modules/lodash/countBy.js   |    40 +
 .../zip-stream/node_modules/lodash/create.js    |    43 +
 .../zip-stream/node_modules/lodash/curry.js     |    57 +
 .../node_modules/lodash/curryRight.js           |    54 +
 .../zip-stream/node_modules/lodash/date.js      |     3 +
 .../zip-stream/node_modules/lodash/debounce.js  |   190 +
 .../zip-stream/node_modules/lodash/deburr.js    |    45 +
 .../zip-stream/node_modules/lodash/defaultTo.js |    25 +
 .../zip-stream/node_modules/lodash/defaults.js  |    64 +
 .../node_modules/lodash/defaultsDeep.js         |    30 +
 .../zip-stream/node_modules/lodash/defer.js     |    26 +
 .../zip-stream/node_modules/lodash/delay.js     |    28 +
 .../node_modules/lodash/difference.js           |    33 +
 .../node_modules/lodash/differenceBy.js         |    44 +
 .../node_modules/lodash/differenceWith.js       |    40 +
 .../zip-stream/node_modules/lodash/divide.js    |    22 +
 .../zip-stream/node_modules/lodash/drop.js      |    38 +
 .../zip-stream/node_modules/lodash/dropRight.js |    39 +
 .../node_modules/lodash/dropRightWhile.js       |    45 +
 .../zip-stream/node_modules/lodash/dropWhile.js |    45 +
 .../zip-stream/node_modules/lodash/each.js      |     1 +
 .../zip-stream/node_modules/lodash/eachRight.js |     1 +
 .../zip-stream/node_modules/lodash/endsWith.js  |    43 +
 .../zip-stream/node_modules/lodash/entries.js   |     1 +
 .../zip-stream/node_modules/lodash/entriesIn.js |     1 +
 .../zip-stream/node_modules/lodash/eq.js        |    37 +
 .../zip-stream/node_modules/lodash/escape.js    |    43 +
 .../node_modules/lodash/escapeRegExp.js         |    32 +
 .../zip-stream/node_modules/lodash/every.js     |    56 +
 .../zip-stream/node_modules/lodash/extend.js    |     1 +
 .../node_modules/lodash/extendWith.js           |     1 +
 .../zip-stream/node_modules/lodash/fill.js      |    45 +
 .../zip-stream/node_modules/lodash/filter.js    |    48 +
 .../zip-stream/node_modules/lodash/find.js      |    42 +
 .../zip-stream/node_modules/lodash/findIndex.js |    55 +
 .../zip-stream/node_modules/lodash/findKey.js   |    44 +
 .../zip-stream/node_modules/lodash/findLast.js  |    25 +
 .../node_modules/lodash/findLastIndex.js        |    59 +
 .../node_modules/lodash/findLastKey.js          |    44 +
 .../zip-stream/node_modules/lodash/first.js     |     1 +
 .../zip-stream/node_modules/lodash/flatMap.js   |    29 +
 .../node_modules/lodash/flatMapDeep.js          |    31 +
 .../node_modules/lodash/flatMapDepth.js         |    31 +
 .../zip-stream/node_modules/lodash/flatten.js   |    22 +
 .../node_modules/lodash/flattenDeep.js          |    25 +
 .../node_modules/lodash/flattenDepth.js         |    33 +
 .../zip-stream/node_modules/lodash/flip.js      |    28 +
 .../zip-stream/node_modules/lodash/floor.js     |    26 +
 .../zip-stream/node_modules/lodash/flow.js      |    27 +
 .../zip-stream/node_modules/lodash/flowRight.js |    26 +
 .../zip-stream/node_modules/lodash/forEach.js   |    41 +
 .../node_modules/lodash/forEachRight.js         |    31 +
 .../zip-stream/node_modules/lodash/forIn.js     |    39 +
 .../node_modules/lodash/forInRight.js           |    37 +
 .../zip-stream/node_modules/lodash/forOwn.js    |    36 +
 .../node_modules/lodash/forOwnRight.js          |    34 +
 .../zip-stream/node_modules/lodash/fp.js        |     2 +
 .../zip-stream/node_modules/lodash/fp/F.js      |     1 +
 .../zip-stream/node_modules/lodash/fp/T.js      |     1 +
 .../zip-stream/node_modules/lodash/fp/__.js     |     1 +
 .../node_modules/lodash/fp/_baseConvert.js      |   573 +
 .../node_modules/lodash/fp/_convertBrowser.js   |    18 +
 .../node_modules/lodash/fp/_falseOptions.js     |     7 +
 .../node_modules/lodash/fp/_mapping.js          |   368 +
 .../zip-stream/node_modules/lodash/fp/_util.js  |    16 +
 .../zip-stream/node_modules/lodash/fp/add.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/after.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/all.js    |     1 +
 .../node_modules/lodash/fp/allPass.js           |     1 +
 .../zip-stream/node_modules/lodash/fp/always.js |     1 +
 .../zip-stream/node_modules/lodash/fp/any.js    |     1 +
 .../node_modules/lodash/fp/anyPass.js           |     1 +
 .../zip-stream/node_modules/lodash/fp/apply.js  |     1 +
 .../zip-stream/node_modules/lodash/fp/array.js  |     2 +
 .../zip-stream/node_modules/lodash/fp/ary.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/assign.js |     5 +
 .../node_modules/lodash/fp/assignAll.js         |     5 +
 .../node_modules/lodash/fp/assignAllWith.js     |     5 +
 .../node_modules/lodash/fp/assignIn.js          |     5 +
 .../node_modules/lodash/fp/assignInAll.js       |     5 +
 .../node_modules/lodash/fp/assignInAllWith.js   |     5 +
 .../node_modules/lodash/fp/assignInWith.js      |     5 +
 .../node_modules/lodash/fp/assignWith.js        |     5 +
 .../zip-stream/node_modules/lodash/fp/assoc.js  |     1 +
 .../node_modules/lodash/fp/assocPath.js         |     1 +
 .../zip-stream/node_modules/lodash/fp/at.js     |     5 +
 .../node_modules/lodash/fp/attempt.js           |     5 +
 .../zip-stream/node_modules/lodash/fp/before.js |     5 +
 .../zip-stream/node_modules/lodash/fp/bind.js   |     5 +
 .../node_modules/lodash/fp/bindAll.js           |     5 +
 .../node_modules/lodash/fp/bindKey.js           |     5 +
 .../node_modules/lodash/fp/camelCase.js         |     5 +
 .../node_modules/lodash/fp/capitalize.js        |     5 +
 .../node_modules/lodash/fp/castArray.js         |     5 +
 .../zip-stream/node_modules/lodash/fp/ceil.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/chain.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/chunk.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/clamp.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/clone.js  |     5 +
 .../node_modules/lodash/fp/cloneDeep.js         |     5 +
 .../node_modules/lodash/fp/cloneDeepWith.js     |     5 +
 .../node_modules/lodash/fp/cloneWith.js         |     5 +
 .../node_modules/lodash/fp/collection.js        |     2 +
 .../zip-stream/node_modules/lodash/fp/commit.js |     5 +
 .../node_modules/lodash/fp/compact.js           |     5 +
 .../node_modules/lodash/fp/complement.js        |     1 +
 .../node_modules/lodash/fp/compose.js           |     1 +
 .../zip-stream/node_modules/lodash/fp/concat.js |     5 +
 .../zip-stream/node_modules/lodash/fp/cond.js   |     5 +
 .../node_modules/lodash/fp/conforms.js          |     1 +
 .../node_modules/lodash/fp/conformsTo.js        |     5 +
 .../node_modules/lodash/fp/constant.js          |     5 +
 .../node_modules/lodash/fp/contains.js          |     1 +
 .../node_modules/lodash/fp/convert.js           |    18 +
 .../node_modules/lodash/fp/countBy.js           |     5 +
 .../zip-stream/node_modules/lodash/fp/create.js |     5 +
 .../zip-stream/node_modules/lodash/fp/curry.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/curryN.js |     5 +
 .../node_modules/lodash/fp/curryRight.js        |     5 +
 .../node_modules/lodash/fp/curryRightN.js       |     5 +
 .../zip-stream/node_modules/lodash/fp/date.js   |     2 +
 .../node_modules/lodash/fp/debounce.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/deburr.js |     5 +
 .../node_modules/lodash/fp/defaultTo.js         |     5 +
 .../node_modules/lodash/fp/defaults.js          |     5 +
 .../node_modules/lodash/fp/defaultsAll.js       |     5 +
 .../node_modules/lodash/fp/defaultsDeep.js      |     5 +
 .../node_modules/lodash/fp/defaultsDeepAll.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/defer.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/delay.js  |     5 +
 .../node_modules/lodash/fp/difference.js        |     5 +
 .../node_modules/lodash/fp/differenceBy.js      |     5 +
 .../node_modules/lodash/fp/differenceWith.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/dissoc.js |     1 +
 .../node_modules/lodash/fp/dissocPath.js        |     1 +
 .../zip-stream/node_modules/lodash/fp/divide.js |     5 +
 .../zip-stream/node_modules/lodash/fp/drop.js   |     5 +
 .../node_modules/lodash/fp/dropLast.js          |     1 +
 .../node_modules/lodash/fp/dropLastWhile.js     |     1 +
 .../node_modules/lodash/fp/dropRight.js         |     5 +
 .../node_modules/lodash/fp/dropRightWhile.js    |     5 +
 .../node_modules/lodash/fp/dropWhile.js         |     5 +
 .../zip-stream/node_modules/lodash/fp/each.js   |     1 +
 .../node_modules/lodash/fp/eachRight.js         |     1 +
 .../node_modules/lodash/fp/endsWith.js          |     5 +
 .../node_modules/lodash/fp/entries.js           |     1 +
 .../node_modules/lodash/fp/entriesIn.js         |     1 +
 .../zip-stream/node_modules/lodash/fp/eq.js     |     5 +
 .../zip-stream/node_modules/lodash/fp/equals.js |     1 +
 .../zip-stream/node_modules/lodash/fp/escape.js |     5 +
 .../node_modules/lodash/fp/escapeRegExp.js      |     5 +
 .../zip-stream/node_modules/lodash/fp/every.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/extend.js |     1 +
 .../node_modules/lodash/fp/extendAll.js         |     1 +
 .../node_modules/lodash/fp/extendAllWith.js     |     1 +
 .../node_modules/lodash/fp/extendWith.js        |     1 +
 .../zip-stream/node_modules/lodash/fp/fill.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/filter.js |     5 +
 .../zip-stream/node_modules/lodash/fp/find.js   |     5 +
 .../node_modules/lodash/fp/findFrom.js          |     5 +
 .../node_modules/lodash/fp/findIndex.js         |     5 +
 .../node_modules/lodash/fp/findIndexFrom.js     |     5 +
 .../node_modules/lodash/fp/findKey.js           |     5 +
 .../node_modules/lodash/fp/findLast.js          |     5 +
 .../node_modules/lodash/fp/findLastFrom.js      |     5 +
 .../node_modules/lodash/fp/findLastIndex.js     |     5 +
 .../node_modules/lodash/fp/findLastIndexFrom.js |     5 +
 .../node_modules/lodash/fp/findLastKey.js       |     5 +
 .../zip-stream/node_modules/lodash/fp/first.js  |     1 +
 .../node_modules/lodash/fp/flatMap.js           |     5 +
 .../node_modules/lodash/fp/flatMapDeep.js       |     5 +
 .../node_modules/lodash/fp/flatMapDepth.js      |     5 +
 .../node_modules/lodash/fp/flatten.js           |     5 +
 .../node_modules/lodash/fp/flattenDeep.js       |     5 +
 .../node_modules/lodash/fp/flattenDepth.js      |     5 +
 .../zip-stream/node_modules/lodash/fp/flip.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/floor.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/flow.js   |     5 +
 .../node_modules/lodash/fp/flowRight.js         |     5 +
 .../node_modules/lodash/fp/forEach.js           |     5 +
 .../node_modules/lodash/fp/forEachRight.js      |     5 +
 .../zip-stream/node_modules/lodash/fp/forIn.js  |     5 +
 .../node_modules/lodash/fp/forInRight.js        |     5 +
 .../zip-stream/node_modules/lodash/fp/forOwn.js |     5 +
 .../node_modules/lodash/fp/forOwnRight.js       |     5 +
 .../node_modules/lodash/fp/fromPairs.js         |     5 +
 .../node_modules/lodash/fp/function.js          |     2 +
 .../node_modules/lodash/fp/functions.js         |     5 +
 .../node_modules/lodash/fp/functionsIn.js       |     5 +
 .../zip-stream/node_modules/lodash/fp/get.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/getOr.js  |     5 +
 .../node_modules/lodash/fp/groupBy.js           |     5 +
 .../zip-stream/node_modules/lodash/fp/gt.js     |     5 +
 .../zip-stream/node_modules/lodash/fp/gte.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/has.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/hasIn.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/head.js   |     5 +
 .../node_modules/lodash/fp/identical.js         |     1 +
 .../node_modules/lodash/fp/identity.js          |     5 +
 .../node_modules/lodash/fp/inRange.js           |     5 +
 .../node_modules/lodash/fp/includes.js          |     5 +
 .../node_modules/lodash/fp/includesFrom.js      |     5 +
 .../node_modules/lodash/fp/indexBy.js           |     1 +
 .../node_modules/lodash/fp/indexOf.js           |     5 +
 .../node_modules/lodash/fp/indexOfFrom.js       |     5 +
 .../zip-stream/node_modules/lodash/fp/init.js   |     1 +
 .../node_modules/lodash/fp/initial.js           |     5 +
 .../node_modules/lodash/fp/intersection.js      |     5 +
 .../node_modules/lodash/fp/intersectionBy.js    |     5 +
 .../node_modules/lodash/fp/intersectionWith.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/invert.js |     5 +
 .../node_modules/lodash/fp/invertBy.js          |     5 +
 .../node_modules/lodash/fp/invertObj.js         |     1 +
 .../zip-stream/node_modules/lodash/fp/invoke.js |     5 +
 .../node_modules/lodash/fp/invokeArgs.js        |     5 +
 .../node_modules/lodash/fp/invokeArgsMap.js     |     5 +
 .../node_modules/lodash/fp/invokeMap.js         |     5 +
 .../node_modules/lodash/fp/isArguments.js       |     5 +
 .../node_modules/lodash/fp/isArray.js           |     5 +
 .../node_modules/lodash/fp/isArrayBuffer.js     |     5 +
 .../node_modules/lodash/fp/isArrayLike.js       |     5 +
 .../node_modules/lodash/fp/isArrayLikeObject.js |     5 +
 .../node_modules/lodash/fp/isBoolean.js         |     5 +
 .../node_modules/lodash/fp/isBuffer.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/isDate.js |     5 +
 .../node_modules/lodash/fp/isElement.js         |     5 +
 .../node_modules/lodash/fp/isEmpty.js           |     5 +
 .../node_modules/lodash/fp/isEqual.js           |     5 +
 .../node_modules/lodash/fp/isEqualWith.js       |     5 +
 .../node_modules/lodash/fp/isError.js           |     5 +
 .../node_modules/lodash/fp/isFinite.js          |     5 +
 .../node_modules/lodash/fp/isFunction.js        |     5 +
 .../node_modules/lodash/fp/isInteger.js         |     5 +
 .../node_modules/lodash/fp/isLength.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/isMap.js  |     5 +
 .../node_modules/lodash/fp/isMatch.js           |     5 +
 .../node_modules/lodash/fp/isMatchWith.js       |     5 +
 .../zip-stream/node_modules/lodash/fp/isNaN.js  |     5 +
 .../node_modules/lodash/fp/isNative.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/isNil.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/isNull.js |     5 +
 .../node_modules/lodash/fp/isNumber.js          |     5 +
 .../node_modules/lodash/fp/isObject.js          |     5 +
 .../node_modules/lodash/fp/isObjectLike.js      |     5 +
 .../node_modules/lodash/fp/isPlainObject.js     |     5 +
 .../node_modules/lodash/fp/isRegExp.js          |     5 +
 .../node_modules/lodash/fp/isSafeInteger.js     |     5 +
 .../zip-stream/node_modules/lodash/fp/isSet.js  |     5 +
 .../node_modules/lodash/fp/isString.js          |     5 +
 .../node_modules/lodash/fp/isSymbol.js          |     5 +
 .../node_modules/lodash/fp/isTypedArray.js      |     5 +
 .../node_modules/lodash/fp/isUndefined.js       |     5 +
 .../node_modules/lodash/fp/isWeakMap.js         |     5 +
 .../node_modules/lodash/fp/isWeakSet.js         |     5 +
 .../node_modules/lodash/fp/iteratee.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/join.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/juxt.js   |     1 +
 .../node_modules/lodash/fp/kebabCase.js         |     5 +
 .../zip-stream/node_modules/lodash/fp/keyBy.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/keys.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/keysIn.js |     5 +
 .../zip-stream/node_modules/lodash/fp/lang.js   |     2 +
 .../zip-stream/node_modules/lodash/fp/last.js   |     5 +
 .../node_modules/lodash/fp/lastIndexOf.js       |     5 +
 .../node_modules/lodash/fp/lastIndexOfFrom.js   |     5 +
 .../node_modules/lodash/fp/lowerCase.js         |     5 +
 .../node_modules/lodash/fp/lowerFirst.js        |     5 +
 .../zip-stream/node_modules/lodash/fp/lt.js     |     5 +
 .../zip-stream/node_modules/lodash/fp/lte.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/map.js    |     5 +
 .../node_modules/lodash/fp/mapKeys.js           |     5 +
 .../node_modules/lodash/fp/mapValues.js         |     5 +
 .../node_modules/lodash/fp/matches.js           |     1 +
 .../node_modules/lodash/fp/matchesProperty.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/math.js   |     2 +
 .../zip-stream/node_modules/lodash/fp/max.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/maxBy.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/mean.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/meanBy.js |     5 +
 .../node_modules/lodash/fp/memoize.js           |     5 +
 .../zip-stream/node_modules/lodash/fp/merge.js  |     5 +
 .../node_modules/lodash/fp/mergeAll.js          |     5 +
 .../node_modules/lodash/fp/mergeAllWith.js      |     5 +
 .../node_modules/lodash/fp/mergeWith.js         |     5 +
 .../zip-stream/node_modules/lodash/fp/method.js |     5 +
 .../node_modules/lodash/fp/methodOf.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/min.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/minBy.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/mixin.js  |     5 +
 .../node_modules/lodash/fp/multiply.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/nAry.js   |     1 +
 .../zip-stream/node_modules/lodash/fp/negate.js |     5 +
 .../zip-stream/node_modules/lodash/fp/next.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/noop.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/now.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/nth.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/nthArg.js |     5 +
 .../zip-stream/node_modules/lodash/fp/number.js |     2 +
 .../zip-stream/node_modules/lodash/fp/object.js |     2 +
 .../zip-stream/node_modules/lodash/fp/omit.js   |     5 +
 .../node_modules/lodash/fp/omitAll.js           |     1 +
 .../zip-stream/node_modules/lodash/fp/omitBy.js |     5 +
 .../zip-stream/node_modules/lodash/fp/once.js   |     5 +
 .../node_modules/lodash/fp/orderBy.js           |     5 +
 .../zip-stream/node_modules/lodash/fp/over.js   |     5 +
 .../node_modules/lodash/fp/overArgs.js          |     5 +
 .../node_modules/lodash/fp/overEvery.js         |     5 +
 .../node_modules/lodash/fp/overSome.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/pad.js    |     5 +
 .../node_modules/lodash/fp/padChars.js          |     5 +
 .../node_modules/lodash/fp/padCharsEnd.js       |     5 +
 .../node_modules/lodash/fp/padCharsStart.js     |     5 +
 .../zip-stream/node_modules/lodash/fp/padEnd.js |     5 +
 .../node_modules/lodash/fp/padStart.js          |     5 +
 .../node_modules/lodash/fp/parseInt.js          |     5 +
 .../node_modules/lodash/fp/partial.js           |     5 +
 .../node_modules/lodash/fp/partialRight.js      |     5 +
 .../node_modules/lodash/fp/partition.js         |     5 +
 .../zip-stream/node_modules/lodash/fp/path.js   |     1 +
 .../zip-stream/node_modules/lodash/fp/pathEq.js |     1 +
 .../zip-stream/node_modules/lodash/fp/pathOr.js |     1 +
 .../zip-stream/node_modules/lodash/fp/paths.js  |     1 +
 .../zip-stream/node_modules/lodash/fp/pick.js   |     5 +
 .../node_modules/lodash/fp/pickAll.js           |     1 +
 .../zip-stream/node_modules/lodash/fp/pickBy.js |     5 +
 .../zip-stream/node_modules/lodash/fp/pipe.js   |     1 +
 .../node_modules/lodash/fp/placeholder.js       |     6 +
 .../zip-stream/node_modules/lodash/fp/plant.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/pluck.js  |     1 +
 .../zip-stream/node_modules/lodash/fp/prop.js   |     1 +
 .../zip-stream/node_modules/lodash/fp/propEq.js |     1 +
 .../zip-stream/node_modules/lodash/fp/propOr.js |     1 +
 .../node_modules/lodash/fp/property.js          |     1 +
 .../node_modules/lodash/fp/propertyOf.js        |     5 +
 .../zip-stream/node_modules/lodash/fp/props.js  |     1 +
 .../zip-stream/node_modules/lodash/fp/pull.js   |     5 +
 .../node_modules/lodash/fp/pullAll.js           |     5 +
 .../node_modules/lodash/fp/pullAllBy.js         |     5 +
 .../node_modules/lodash/fp/pullAllWith.js       |     5 +
 .../zip-stream/node_modules/lodash/fp/pullAt.js |     5 +
 .../zip-stream/node_modules/lodash/fp/random.js |     5 +
 .../zip-stream/node_modules/lodash/fp/range.js  |     5 +
 .../node_modules/lodash/fp/rangeRight.js        |     5 +
 .../node_modules/lodash/fp/rangeStep.js         |     5 +
 .../node_modules/lodash/fp/rangeStepRight.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/rearg.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/reduce.js |     5 +
 .../node_modules/lodash/fp/reduceRight.js       |     5 +
 .../zip-stream/node_modules/lodash/fp/reject.js |     5 +
 .../zip-stream/node_modules/lodash/fp/remove.js |     5 +
 .../zip-stream/node_modules/lodash/fp/repeat.js |     5 +
 .../node_modules/lodash/fp/replace.js           |     5 +
 .../zip-stream/node_modules/lodash/fp/rest.js   |     5 +
 .../node_modules/lodash/fp/restFrom.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/result.js |     5 +
 .../node_modules/lodash/fp/reverse.js           |     5 +
 .../zip-stream/node_modules/lodash/fp/round.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/sample.js |     5 +
 .../node_modules/lodash/fp/sampleSize.js        |     5 +
 .../zip-stream/node_modules/lodash/fp/seq.js    |     2 +
 .../zip-stream/node_modules/lodash/fp/set.js    |     5 +
 .../node_modules/lodash/fp/setWith.js           |     5 +
 .../node_modules/lodash/fp/shuffle.js           |     5 +
 .../zip-stream/node_modules/lodash/fp/size.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/slice.js  |     5 +
 .../node_modules/lodash/fp/snakeCase.js         |     5 +
 .../zip-stream/node_modules/lodash/fp/some.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/sortBy.js |     5 +
 .../node_modules/lodash/fp/sortedIndex.js       |     5 +
 .../node_modules/lodash/fp/sortedIndexBy.js     |     5 +
 .../node_modules/lodash/fp/sortedIndexOf.js     |     5 +
 .../node_modules/lodash/fp/sortedLastIndex.js   |     5 +
 .../node_modules/lodash/fp/sortedLastIndexBy.js |     5 +
 .../node_modules/lodash/fp/sortedLastIndexOf.js |     5 +
 .../node_modules/lodash/fp/sortedUniq.js        |     5 +
 .../node_modules/lodash/fp/sortedUniqBy.js      |     5 +
 .../zip-stream/node_modules/lodash/fp/split.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/spread.js |     5 +
 .../node_modules/lodash/fp/spreadFrom.js        |     5 +
 .../node_modules/lodash/fp/startCase.js         |     5 +
 .../node_modules/lodash/fp/startsWith.js        |     5 +
 .../zip-stream/node_modules/lodash/fp/string.js |     2 +
 .../node_modules/lodash/fp/stubArray.js         |     5 +
 .../node_modules/lodash/fp/stubFalse.js         |     5 +
 .../node_modules/lodash/fp/stubObject.js        |     5 +
 .../node_modules/lodash/fp/stubString.js        |     5 +
 .../node_modules/lodash/fp/stubTrue.js          |     5 +
 .../node_modules/lodash/fp/subtract.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/sum.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/sumBy.js  |     5 +
 .../lodash/fp/symmetricDifference.js            |     1 +
 .../lodash/fp/symmetricDifferenceBy.js          |     1 +
 .../lodash/fp/symmetricDifferenceWith.js        |     1 +
 .../zip-stream/node_modules/lodash/fp/tail.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/take.js   |     5 +
 .../node_modules/lodash/fp/takeLast.js          |     1 +
 .../node_modules/lodash/fp/takeLastWhile.js     |     1 +
 .../node_modules/lodash/fp/takeRight.js         |     5 +
 .../node_modules/lodash/fp/takeRightWhile.js    |     5 +
 .../node_modules/lodash/fp/takeWhile.js         |     5 +
 .../zip-stream/node_modules/lodash/fp/tap.js    |     5 +
 .../node_modules/lodash/fp/template.js          |     5 +
 .../node_modules/lodash/fp/templateSettings.js  |     5 +
 .../node_modules/lodash/fp/throttle.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/thru.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/times.js  |     5 +
 .../node_modules/lodash/fp/toArray.js           |     5 +
 .../node_modules/lodash/fp/toFinite.js          |     5 +
 .../node_modules/lodash/fp/toInteger.js         |     5 +
 .../node_modules/lodash/fp/toIterator.js        |     5 +
 .../zip-stream/node_modules/lodash/fp/toJSON.js |     5 +
 .../node_modules/lodash/fp/toLength.js          |     5 +
 .../node_modules/lodash/fp/toLower.js           |     5 +
 .../node_modules/lodash/fp/toNumber.js          |     5 +
 .../node_modules/lodash/fp/toPairs.js           |     5 +
 .../node_modules/lodash/fp/toPairsIn.js         |     5 +
 .../zip-stream/node_modules/lodash/fp/toPath.js |     5 +
 .../node_modules/lodash/fp/toPlainObject.js     |     5 +
 .../node_modules/lodash/fp/toSafeInteger.js     |     5 +
 .../node_modules/lodash/fp/toString.js          |     5 +
 .../node_modules/lodash/fp/toUpper.js           |     5 +
 .../node_modules/lodash/fp/transform.js         |     5 +
 .../zip-stream/node_modules/lodash/fp/trim.js   |     5 +
 .../node_modules/lodash/fp/trimChars.js         |     5 +
 .../node_modules/lodash/fp/trimCharsEnd.js      |     5 +
 .../node_modules/lodash/fp/trimCharsStart.js    |     5 +
 .../node_modules/lodash/fp/trimEnd.js           |     5 +
 .../node_modules/lodash/fp/trimStart.js         |     5 +
 .../node_modules/lodash/fp/truncate.js          |     5 +
 .../node_modules/lodash/fp/unapply.js           |     1 +
 .../zip-stream/node_modules/lodash/fp/unary.js  |     5 +
 .../node_modules/lodash/fp/unescape.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/union.js  |     5 +
 .../node_modules/lodash/fp/unionBy.js           |     5 +
 .../node_modules/lodash/fp/unionWith.js         |     5 +
 .../zip-stream/node_modules/lodash/fp/uniq.js   |     5 +
 .../zip-stream/node_modules/lodash/fp/uniqBy.js |     5 +
 .../node_modules/lodash/fp/uniqWith.js          |     5 +
 .../node_modules/lodash/fp/uniqueId.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/unnest.js |     1 +
 .../zip-stream/node_modules/lodash/fp/unset.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/unzip.js  |     5 +
 .../node_modules/lodash/fp/unzipWith.js         |     5 +
 .../zip-stream/node_modules/lodash/fp/update.js |     5 +
 .../node_modules/lodash/fp/updateWith.js        |     5 +
 .../node_modules/lodash/fp/upperCase.js         |     5 +
 .../node_modules/lodash/fp/upperFirst.js        |     5 +
 .../node_modules/lodash/fp/useWith.js           |     1 +
 .../zip-stream/node_modules/lodash/fp/util.js   |     2 +
 .../zip-stream/node_modules/lodash/fp/value.js  |     5 +
 .../node_modules/lodash/fp/valueOf.js           |     5 +
 .../zip-stream/node_modules/lodash/fp/values.js |     5 +
 .../node_modules/lodash/fp/valuesIn.js          |     5 +
 .../zip-stream/node_modules/lodash/fp/where.js  |     1 +
 .../node_modules/lodash/fp/whereEq.js           |     1 +
 .../node_modules/lodash/fp/without.js           |     5 +
 .../zip-stream/node_modules/lodash/fp/words.js  |     5 +
 .../zip-stream/node_modules/lodash/fp/wrap.js   |     5 +
 .../node_modules/lodash/fp/wrapperAt.js         |     5 +
 .../node_modules/lodash/fp/wrapperChain.js      |     5 +
 .../node_modules/lodash/fp/wrapperLodash.js     |     5 +
 .../node_modules/lodash/fp/wrapperReverse.js    |     5 +
 .../node_modules/lodash/fp/wrapperValue.js      |     5 +
 .../zip-stream/node_modules/lodash/fp/xor.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/xorBy.js  |     5 +
 .../node_modules/lodash/fp/xorWith.js           |     5 +
 .../zip-stream/node_modules/lodash/fp/zip.js    |     5 +
 .../zip-stream/node_modules/lodash/fp/zipAll.js |     5 +
 .../zip-stream/node_modules/lodash/fp/zipObj.js |     1 +
 .../node_modules/lodash/fp/zipObject.js         |     5 +
 .../node_modules/lodash/fp/zipObjectDeep.js     |     5 +
 .../node_modules/lodash/fp/zipWith.js           |     5 +
 .../zip-stream/node_modules/lodash/fromPairs.js |    28 +
 .../zip-stream/node_modules/lodash/function.js  |    25 +
 .../zip-stream/node_modules/lodash/functions.js |    31 +
 .../node_modules/lodash/functionsIn.js          |    31 +
 .../zip-stream/node_modules/lodash/get.js       |    33 +
 .../zip-stream/node_modules/lodash/groupBy.js   |    41 +
 .../zip-stream/node_modules/lodash/gt.js        |    29 +
 .../zip-stream/node_modules/lodash/gte.js       |    30 +
 .../zip-stream/node_modules/lodash/has.js       |    35 +
 .../zip-stream/node_modules/lodash/hasIn.js     |    34 +
 .../zip-stream/node_modules/lodash/head.js      |    23 +
 .../zip-stream/node_modules/lodash/identity.js  |    21 +
 .../zip-stream/node_modules/lodash/inRange.js   |    55 +
 .../zip-stream/node_modules/lodash/includes.js  |    53 +
 .../zip-stream/node_modules/lodash/index.js     |     1 +
 .../zip-stream/node_modules/lodash/indexOf.js   |    42 +
 .../zip-stream/node_modules/lodash/initial.js   |    22 +
 .../node_modules/lodash/intersection.js         |    30 +
 .../node_modules/lodash/intersectionBy.js       |    45 +
 .../node_modules/lodash/intersectionWith.js     |    41 +
 .../zip-stream/node_modules/lodash/invert.js    |    42 +
 .../zip-stream/node_modules/lodash/invertBy.js  |    56 +
 .../zip-stream/node_modules/lodash/invoke.js    |    24 +
 .../zip-stream/node_modules/lodash/invokeMap.js |    41 +
 .../node_modules/lodash/isArguments.js          |    36 +
 .../zip-stream/node_modules/lodash/isArray.js   |    26 +
 .../node_modules/lodash/isArrayBuffer.js        |    27 +
 .../node_modules/lodash/isArrayLike.js          |    33 +
 .../node_modules/lodash/isArrayLikeObject.js    |    33 +
 .../zip-stream/node_modules/lodash/isBoolean.js |    29 +
 .../zip-stream/node_modules/lodash/isBuffer.js  |    38 +
 .../zip-stream/node_modules/lodash/isDate.js    |    27 +
 .../zip-stream/node_modules/lodash/isElement.js |    25 +
 .../zip-stream/node_modules/lodash/isEmpty.js   |    77 +
 .../zip-stream/node_modules/lodash/isEqual.js   |    35 +
 .../node_modules/lodash/isEqualWith.js          |    41 +
 .../zip-stream/node_modules/lodash/isError.js   |    36 +
 .../zip-stream/node_modules/lodash/isFinite.js  |    36 +
 .../node_modules/lodash/isFunction.js           |    37 +
 .../zip-stream/node_modules/lodash/isInteger.js |    33 +
 .../zip-stream/node_modules/lodash/isLength.js  |    35 +
 .../zip-stream/node_modules/lodash/isMap.js     |    27 +
 .../zip-stream/node_modules/lodash/isMatch.js   |    36 +
 .../node_modules/lodash/isMatchWith.js          |    41 +
 .../zip-stream/node_modules/lodash/isNaN.js     |    38 +
 .../zip-stream/node_modules/lodash/isNative.js  |    40 +
 .../zip-stream/node_modules/lodash/isNil.js     |    25 +
 .../zip-stream/node_modules/lodash/isNull.js    |    22 +
 .../zip-stream/node_modules/lodash/isNumber.js  |    38 +
 .../zip-stream/node_modules/lodash/isObject.js  |    31 +
 .../node_modules/lodash/isObjectLike.js         |    29 +
 .../node_modules/lodash/isPlainObject.js        |    62 +
 .../zip-stream/node_modules/lodash/isRegExp.js  |    27 +
 .../node_modules/lodash/isSafeInteger.js        |    37 +
 .../zip-stream/node_modules/lodash/isSet.js     |    27 +
 .../zip-stream/node_modules/lodash/isString.js  |    30 +
 .../zip-stream/node_modules/lodash/isSymbol.js  |    29 +
 .../node_modules/lodash/isTypedArray.js         |    27 +
 .../node_modules/lodash/isUndefined.js          |    22 +
 .../zip-stream/node_modules/lodash/isWeakMap.js |    28 +
 .../zip-stream/node_modules/lodash/isWeakSet.js |    28 +
 .../zip-stream/node_modules/lodash/iteratee.js  |    53 +
 .../zip-stream/node_modules/lodash/join.js      |    26 +
 .../zip-stream/node_modules/lodash/kebabCase.js |    28 +
 .../zip-stream/node_modules/lodash/keyBy.js     |    36 +
 .../zip-stream/node_modules/lodash/keys.js      |    37 +
 .../zip-stream/node_modules/lodash/keysIn.js    |    32 +
 .../zip-stream/node_modules/lodash/lang.js      |    58 +
 .../zip-stream/node_modules/lodash/last.js      |    20 +
 .../node_modules/lodash/lastIndexOf.js          |    46 +
 .../zip-stream/node_modules/lodash/lodash.js    | 17105 ++++++++++
 .../node_modules/lodash/lodash.min.js           |   137 +
 .../zip-stream/node_modules/lodash/lowerCase.js |    27 +
 .../node_modules/lodash/lowerFirst.js           |    22 +
 .../zip-stream/node_modules/lodash/lt.js        |    29 +
 .../zip-stream/node_modules/lodash/lte.js       |    30 +
 .../zip-stream/node_modules/lodash/map.js       |    53 +
 .../zip-stream/node_modules/lodash/mapKeys.js   |    36 +
 .../zip-stream/node_modules/lodash/mapValues.js |    43 +
 .../zip-stream/node_modules/lodash/matches.js   |    39 +
 .../node_modules/lodash/matchesProperty.js      |    37 +
 .../zip-stream/node_modules/lodash/math.js      |    17 +
 .../zip-stream/node_modules/lodash/max.js       |    29 +
 .../zip-stream/node_modules/lodash/maxBy.js     |    34 +
 .../zip-stream/node_modules/lodash/mean.js      |    22 +
 .../zip-stream/node_modules/lodash/meanBy.js    |    31 +
 .../zip-stream/node_modules/lodash/memoize.js   |    73 +
 .../zip-stream/node_modules/lodash/merge.js     |    39 +
 .../zip-stream/node_modules/lodash/mergeWith.js |    39 +
 .../zip-stream/node_modules/lodash/method.js    |    34 +
 .../zip-stream/node_modules/lodash/methodOf.js  |    33 +
 .../zip-stream/node_modules/lodash/min.js       |    29 +
 .../zip-stream/node_modules/lodash/minBy.js     |    34 +
 .../zip-stream/node_modules/lodash/mixin.js     |    74 +
 .../zip-stream/node_modules/lodash/multiply.js  |    22 +
 .../zip-stream/node_modules/lodash/negate.js    |    40 +
 .../zip-stream/node_modules/lodash/next.js      |    35 +
 .../zip-stream/node_modules/lodash/noop.js      |    17 +
 .../zip-stream/node_modules/lodash/now.js       |    23 +
 .../zip-stream/node_modules/lodash/nth.js       |    29 +
 .../zip-stream/node_modules/lodash/nthArg.js    |    32 +
 .../zip-stream/node_modules/lodash/number.js    |     5 +
 .../zip-stream/node_modules/lodash/object.js    |    49 +
 .../zip-stream/node_modules/lodash/omit.js      |    57 +
 .../zip-stream/node_modules/lodash/omitBy.js    |    29 +
 .../zip-stream/node_modules/lodash/once.js      |    25 +
 .../zip-stream/node_modules/lodash/orderBy.js   |    47 +
 .../zip-stream/node_modules/lodash/over.js      |    24 +
 .../zip-stream/node_modules/lodash/overArgs.js  |    61 +
 .../zip-stream/node_modules/lodash/overEvery.js |    30 +
 .../zip-stream/node_modules/lodash/overSome.js  |    30 +
 .../zip-stream/node_modules/lodash/package.json |    70 +
 .../zip-stream/node_modules/lodash/pad.js       |    49 +
 .../zip-stream/node_modules/lodash/padEnd.js    |    39 +
 .../zip-stream/node_modules/lodash/padStart.js  |    39 +
 .../zip-stream/node_modules/lodash/parseInt.js  |    43 +
 .../zip-stream/node_modules/lodash/partial.js   |    50 +
 .../node_modules/lodash/partialRight.js         |    49 +
 .../zip-stream/node_modules/lodash/partition.js |    43 +
 .../zip-stream/node_modules/lodash/pick.js      |    25 +
 .../zip-stream/node_modules/lodash/pickBy.js    |    37 +
 .../zip-stream/node_modules/lodash/plant.js     |    48 +
 .../zip-stream/node_modules/lodash/property.js  |    32 +
 .../node_modules/lodash/propertyOf.js           |    30 +
 .../zip-stream/node_modules/lodash/pull.js      |    29 +
 .../zip-stream/node_modules/lodash/pullAll.js   |    29 +
 .../zip-stream/node_modules/lodash/pullAllBy.js |    33 +
 .../node_modules/lodash/pullAllWith.js          |    32 +
 .../zip-stream/node_modules/lodash/pullAt.js    |    43 +
 .../zip-stream/node_modules/lodash/random.js    |    82 +
 .../zip-stream/node_modules/lodash/range.js     |    46 +
 .../node_modules/lodash/rangeRight.js           |    41 +
 .../zip-stream/node_modules/lodash/rearg.js     |    33 +
 .../zip-stream/node_modules/lodash/reduce.js    |    51 +
 .../node_modules/lodash/reduceRight.js          |    36 +
 .../zip-stream/node_modules/lodash/reject.js    |    46 +
 .../zip-stream/node_modules/lodash/remove.js    |    53 +
 .../zip-stream/node_modules/lodash/repeat.js    |    37 +
 .../zip-stream/node_modules/lodash/replace.js   |    29 +
 .../zip-stream/node_modules/lodash/rest.js      |    40 +
 .../zip-stream/node_modules/lodash/result.js    |    56 +
 .../zip-stream/node_modules/lodash/reverse.js   |    34 +
 .../zip-stream/node_modules/lodash/round.js     |    26 +
 .../zip-stream/node_modules/lodash/sample.js    |    24 +
 .../node_modules/lodash/sampleSize.js           |    37 +
 .../zip-stream/node_modules/lodash/seq.js       |    16 +
 .../zip-stream/node_modules/lodash/set.js       |    35 +
 .../zip-stream/node_modules/lodash/setWith.js   |    32 +
 .../zip-stream/node_modules/lodash/shuffle.js   |    25 +
 .../zip-stream/node_modules/lodash/size.js      |    46 +
 .../zip-stream/node_modules/lodash/slice.js     |    37 +
 .../zip-stream/node_modules/lodash/snakeCase.js |    28 +
 .../zip-stream/node_modules/lodash/some.js      |    51 +
 .../zip-stream/node_modules/lodash/sortBy.js    |    48 +
 .../node_modules/lodash/sortedIndex.js          |    24 +
 .../node_modules/lodash/sortedIndexBy.js        |    33 +
 .../node_modules/lodash/sortedIndexOf.js        |    31 +
 .../node_modules/lodash/sortedLastIndex.js      |    25 +
 .../node_modules/lodash/sortedLastIndexBy.js    |    33 +
 .../node_modules/lodash/sortedLastIndexOf.js    |    31 +
 .../node_modules/lodash/sortedUniq.js           |    24 +
 .../node_modules/lodash/sortedUniqBy.js         |    26 +
 .../zip-stream/node_modules/lodash/split.js     |    52 +
 .../zip-stream/node_modules/lodash/spread.js    |    63 +
 .../zip-stream/node_modules/lodash/startCase.js |    29 +
 .../node_modules/lodash/startsWith.js           |    39 +
 .../zip-stream/node_modules/lodash/string.js    |    33 +
 .../zip-stream/node_modules/lodash/stubArray.js |    23 +
 .../zip-stream/node_modules/lodash/stubFalse.js |    18 +
 .../node_modules/lodash/stubObject.js           |    23 +
 .../node_modules/lodash/stubString.js           |    18 +
 .../zip-stream/node_modules/lodash/stubTrue.js  |    18 +
 .../zip-stream/node_modules/lodash/subtract.js  |    22 +
 .../zip-stream/node_modules/lodash/sum.js       |    24 +
 .../zip-stream/node_modules/lodash/sumBy.js     |    33 +
 .../zip-stream/node_modules/lodash/tail.js      |    22 +
 .../zip-stream/node_modules/lodash/take.js      |    37 +
 .../zip-stream/node_modules/lodash/takeRight.js |    39 +
 .../node_modules/lodash/takeRightWhile.js       |    45 +
 .../zip-stream/node_modules/lodash/takeWhile.js |    45 +
 .../zip-stream/node_modules/lodash/tap.js       |    29 +
 .../zip-stream/node_modules/lodash/template.js  |   238 +
 .../node_modules/lodash/templateSettings.js     |    67 +
 .../zip-stream/node_modules/lodash/throttle.js  |    69 +
 .../zip-stream/node_modules/lodash/thru.js      |    28 +
 .../zip-stream/node_modules/lodash/times.js     |    51 +
 .../zip-stream/node_modules/lodash/toArray.js   |    58 +
 .../zip-stream/node_modules/lodash/toFinite.js  |    42 +
 .../zip-stream/node_modules/lodash/toInteger.js |    36 +
 .../node_modules/lodash/toIterator.js           |    23 +
 .../zip-stream/node_modules/lodash/toJSON.js    |     1 +
 .../zip-stream/node_modules/lodash/toLength.js  |    38 +
 .../zip-stream/node_modules/lodash/toLower.js   |    28 +
 .../zip-stream/node_modules/lodash/toNumber.js  |    66 +
 .../zip-stream/node_modules/lodash/toPairs.js   |    30 +
 .../zip-stream/node_modules/lodash/toPairsIn.js |    30 +
 .../zip-stream/node_modules/lodash/toPath.js    |    33 +
 .../node_modules/lodash/toPlainObject.js        |    32 +
 .../node_modules/lodash/toSafeInteger.js        |    37 +
 .../zip-stream/node_modules/lodash/toString.js  |    28 +
 .../zip-stream/node_modules/lodash/toUpper.js   |    28 +
 .../zip-stream/node_modules/lodash/transform.js |    65 +
 .../zip-stream/node_modules/lodash/trim.js      |    49 +
 .../zip-stream/node_modules/lodash/trimEnd.js   |    43 +
 .../zip-stream/node_modules/lodash/trimStart.js |    43 +
 .../zip-stream/node_modules/lodash/truncate.js  |   111 +
 .../zip-stream/node_modules/lodash/unary.js     |    22 +
 .../zip-stream/node_modules/lodash/unescape.js  |    34 +
 .../zip-stream/node_modules/lodash/union.js     |    26 +
 .../zip-stream/node_modules/lodash/unionBy.js   |    39 +
 .../zip-stream/node_modules/lodash/unionWith.js |    34 +
 .../zip-stream/node_modules/lodash/uniq.js      |    25 +
 .../zip-stream/node_modules/lodash/uniqBy.js    |    31 +
 .../zip-stream/node_modules/lodash/uniqWith.js  |    28 +
 .../zip-stream/node_modules/lodash/uniqueId.js  |    28 +
 .../zip-stream/node_modules/lodash/unset.js     |    34 +
 .../zip-stream/node_modules/lodash/unzip.js     |    45 +
 .../zip-stream/node_modules/lodash/unzipWith.js |    39 +
 .../zip-stream/node_modules/lodash/update.js    |    35 +
 .../node_modules/lodash/updateWith.js           |    33 +
 .../zip-stream/node_modules/lodash/upperCase.js |    27 +
 .../node_modules/lodash/upperFirst.js           |    22 +
 .../zip-stream/node_modules/lodash/util.js      |    34 +
 .../zip-stream/node_modules/lodash/value.js     |     1 +
 .../zip-stream/node_modules/lodash/valueOf.js   |     1 +
 .../zip-stream/node_modules/lodash/values.js    |    34 +
 .../zip-stream/node_modules/lodash/valuesIn.js  |    32 +
 .../zip-stream/node_modules/lodash/without.js   |    31 +
 .../zip-stream/node_modules/lodash/words.js     |    35 +
 .../zip-stream/node_modules/lodash/wrap.js      |    30 +
 .../zip-stream/node_modules/lodash/wrapperAt.js |    48 +
 .../node_modules/lodash/wrapperChain.js         |    34 +
 .../node_modules/lodash/wrapperLodash.js        |   147 +
 .../node_modules/lodash/wrapperReverse.js       |    44 +
 .../node_modules/lodash/wrapperValue.js         |    21 +
 .../zip-stream/node_modules/lodash/xor.js       |    28 +
 .../zip-stream/node_modules/lodash/xorBy.js     |    39 +
 .../zip-stream/node_modules/lodash/xorWith.js   |    34 +
 .../zip-stream/node_modules/lodash/zip.js       |    22 +
 .../zip-stream/node_modules/lodash/zipObject.js |    24 +
 .../node_modules/lodash/zipObjectDeep.js        |    23 +
 .../zip-stream/node_modules/lodash/zipWith.js   |    32 +
 node_modules/zip-stream/package.json            |    82 +
 node_modules/zone.js/CHANGELOG.md               |   901 +
 node_modules/zone.js/LICENSE.wrapped            |    25 +
 node_modules/zone.js/dist/async-test.js         |    81 +
 node_modules/zone.js/dist/fake-async-test.js    |   256 +
 node_modules/zone.js/dist/jasmine-patch.js      |   139 +
 node_modules/zone.js/dist/jasmine-patch.min.js  |     1 +
 .../zone.js/dist/long-stack-trace-zone.js       |   175 +
 .../zone.js/dist/long-stack-trace-zone.min.js   |     1 +
 node_modules/zone.js/dist/mocha-patch.js        |   155 +
 node_modules/zone.js/dist/mocha-patch.min.js    |     1 +
 node_modules/zone.js/dist/proxy.js              |   128 +
 node_modules/zone.js/dist/proxy.min.js          |     1 +
 node_modules/zone.js/dist/sync-test.js          |    43 +
 node_modules/zone.js/dist/task-tracking.js      |    88 +
 node_modules/zone.js/dist/task-tracking.min.js  |     1 +
 node_modules/zone.js/dist/web-api.js            |     1 +
 .../zone.js/dist/webapis-media-query.js         |    57 +
 .../zone.js/dist/webapis-media-query.min.js     |     1 +
 .../zone.js/dist/webapis-notification.js        |    38 +
 .../zone.js/dist/webapis-notification.min.js    |     1 +
 node_modules/zone.js/dist/wtf.js                |   128 +
 node_modules/zone.js/dist/wtf.min.js            |     1 +
 node_modules/zone.js/dist/zone-bluebird.js      |    35 +
 node_modules/zone.js/dist/zone-bluebird.min.js  |     1 +
 node_modules/zone.js/dist/zone-mix.js           |  2518 ++
 node_modules/zone.js/dist/zone-node.js          |  1936 ++
 node_modules/zone.js/dist/zone.js               |  2257 ++
 node_modules/zone.js/dist/zone.js.d.ts          |   537 +
 node_modules/zone.js/dist/zone.min.js           |     2 +
 node_modules/zone.js/dist/zone_externs.js       |   442 +
 node_modules/zone.js/lib/browser/browser.ts     |   182 +
 .../zone.js/lib/browser/define-property.ts      |   107 +
 .../zone.js/lib/browser/event-target.ts         |    36 +
 .../zone.js/lib/browser/property-descriptor.ts  |   131 +
 .../zone.js/lib/browser/register-element.ts     |    44 +
 node_modules/zone.js/lib/browser/rollup-main.ts |    11 +
 .../zone.js/lib/browser/webapis-media-query.ts  |    44 +
 .../zone.js/lib/browser/webapis-notification.ts |    24 +
 node_modules/zone.js/lib/browser/websocket.ts   |    44 +
 node_modules/zone.js/lib/common/timers.ts       |    88 +
 node_modules/zone.js/lib/common/to-string.ts    |    46 +
 node_modules/zone.js/lib/common/utils.ts        |   690 +
 node_modules/zone.js/lib/extra/bluebird.ts      |    20 +
 node_modules/zone.js/lib/jasmine/jasmine.ts     |   140 +
 node_modules/zone.js/lib/mix/rollup-mix.ts      |    12 +
 node_modules/zone.js/lib/mocha/mocha.ts         |   173 +
 node_modules/zone.js/lib/node/events.ts         |    59 +
 node_modules/zone.js/lib/node/fs.ts             |    39 +
 node_modules/zone.js/lib/node/node.ts           |   101 +
 .../zone.js/lib/zone-spec/async-test.ts         |    78 +
 .../zone.js/lib/zone-spec/fake-async-test.ts    |   268 +
 .../zone.js/lib/zone-spec/long-stack-trace.ts   |   174 +
 node_modules/zone.js/lib/zone-spec/proxy.ts     |   139 +
 node_modules/zone.js/lib/zone-spec/sync-test.ts |    35 +
 .../zone.js/lib/zone-spec/task-tracking.ts      |    82 +
 node_modules/zone.js/lib/zone-spec/wtf.ts       |   156 +
 node_modules/zone.js/lib/zone.ts                |  1885 ++
 node_modules/zone.js/package.json               |   116 +
 package-lock.json                               |  3586 +--
 package.json                                    |    66 +-
 platform/core/common/fds-common.module.js       |    48 -
 platform/core/common/fds.animations.js          |   133 -
 .../core/common/services/fds-storage.service.js |   219 -
 .../common/services/fds-storage.service.spec.js |    61 -
 platform/core/common/styles/_basicElements.scss |   130 -
 platform/core/common/styles/_buttonToggles.scss |    98 -
 platform/core/common/styles/_buttons.scss       |   214 -
 platform/core/common/styles/_checkboxes.scss    |    85 -
 platform/core/common/styles/_chips.scss         |    73 -
 .../core/common/styles/_expansionPanels.scss    |    62 -
 platform/core/common/styles/_globalVars.scss    |    69 -
 platform/core/common/styles/_helperClasses.scss |    85 -
 platform/core/common/styles/_inputs.scss        |   109 -
 platform/core/common/styles/_links.scss         |    35 -
 platform/core/common/styles/_menus.scss         |   118 -
 platform/core/common/styles/_modals.scss        |    23 -
 platform/core/common/styles/_panels.scss        |    54 -
 platform/core/common/styles/_progress-bar.scss  |    20 -
 platform/core/common/styles/_radios.scss        |    56 -
 platform/core/common/styles/_sideNav.scss       |    20 -
 platform/core/common/styles/_stepper.scss       |    20 -
 platform/core/common/styles/_tables.scss        |   118 -
 platform/core/common/styles/_tabs.scss          |    41 -
 platform/core/common/styles/_tooltips.scss      |    24 -
 .../core/common/styles/fluid-design-system.scss |    36 -
 .../core/dialogs/_fds-dialog-component.scss     |    21 -
 .../confirm-dialog.component.html               |    45 -
 .../confirm-dialog/confirm-dialog.component.js  |    64 -
 .../confirm-dialog.component.spec.js            |    50 -
 platform/core/dialogs/fds-dialog.component.html |    29 -
 platform/core/dialogs/fds-dialog.component.js   |   102 -
 .../core/dialogs/fds-dialogs.component.spec.js  |    32 -
 platform/core/dialogs/fds-dialogs.module.js     |    87 -
 .../core/dialogs/services/dialog.service.js     |   140 -
 platform/core/fluid-design-system.module.js     |   155 -
 .../snackbars/coaster/_coaster.component.scss   |    63 -
 .../snackbars/coaster/coaster.component.html    |    33 -
 .../core/snackbars/coaster/coaster.component.js |    70 -
 .../snackbars/coaster/coaster.component.spec.js |    32 -
 .../core/snackbars/fds-snackbar.component.html  |    29 -
 .../core/snackbars/fds-snackbar.component.js    |   102 -
 .../snackbars/fds-snackbar.component.spec.js    |    32 -
 platform/core/snackbars/fds-snackbars.module.js |    87 -
 .../core/snackbars/services/snackbar.service.js |   138 -
 platform/core/theming/_all-theme.scss           |    36 -
 platform/systemjs.spec.config.js                |   115 -
 scripts/clean-install                           |    21 -
 scripts/clean-install-skipTests                 |    18 -
 scripts/deploy-gh-pages                         |    21 -
 scripts/dev-install                             |    19 -
 scripts/dev-install-skipTests                   |    16 -
 webapp/css/fds-demo.min.css                     |     3 +
 webapp/css/fds-demo.min.css.gz                  |   Bin 0 -> 11590 bytes
 webapp/css/fds-demo.min.css.map                 |    64 +
 webapp/systemjs.config.js                       |    42 +-
 14028 files changed, 1652155 insertions(+), 7753 deletions(-)
----------------------------------------------------------------------



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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/@angular/animations/browser.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser.es5.js b/node_modules/@angular/animations/@angular/animations/browser.es5.js
new file mode 100644
index 0000000..4148fd1
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser.es5.js
@@ -0,0 +1,4911 @@
+import * as tslib_1 from "tslib";
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+import { AUTO_STYLE, NoopAnimationPlayer, sequence, style, ɵAnimationGroupPlayer, ɵPRE_STYLE } from '@angular/animations';
+/**
+ * @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
+ */
+function optimizeGroupPlayer(players) {
+    switch (players.length) {
+        case 0:
+            return new NoopAnimationPlayer();
+        case 1:
+            return players[0];
+        default:
+            return new ɵAnimationGroupPlayer(players);
+    }
+}
+function normalizeKeyframes(driver, normalizer, element, keyframes, preStyles, postStyles) {
+    if (preStyles === void 0) { preStyles = {}; }
+    if (postStyles === void 0) { postStyles = {}; }
+    var errors = [];
+    var normalizedKeyframes = [];
+    var previousOffset = -1;
+    var previousKeyframe = null;
+    keyframes.forEach(function (kf) {
+        var offset = kf['offset'];
+        var isSameOffset = offset == previousOffset;
+        var normalizedKeyframe = (isSameOffset && previousKeyframe) || {};
+        Object.keys(kf).forEach(function (prop) {
+            var normalizedProp = prop;
+            var normalizedValue = kf[prop];
+            if (prop !== 'offset') {
+                normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);
+                switch (normalizedValue) {
+                    case ɵPRE_STYLE:
+                        normalizedValue = preStyles[prop];
+                        break;
+                    case AUTO_STYLE:
+                        normalizedValue = postStyles[prop];
+                        break;
+                    default:
+                        normalizedValue =
+                            normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);
+                        break;
+                }
+            }
+            normalizedKeyframe[normalizedProp] = normalizedValue;
+        });
+        if (!isSameOffset) {
+            normalizedKeyframes.push(normalizedKeyframe);
+        }
+        previousKeyframe = normalizedKeyframe;
+        previousOffset = offset;
+    });
+    if (errors.length) {
+        var LINE_START = '\n - ';
+        throw new Error("Unable to animate due to the following errors:" + LINE_START + errors.join(LINE_START));
+    }
+    return normalizedKeyframes;
+}
+function listenOnPlayer(player, eventName, event, callback) {
+    switch (eventName) {
+        case 'start':
+            player.onStart(function () { return callback(event && copyAnimationEvent(event, 'start', player.totalTime)); });
+            break;
+        case 'done':
+            player.onDone(function () { return callback(event && copyAnimationEvent(event, 'done', player.totalTime)); });
+            break;
+        case 'destroy':
+            player.onDestroy(function () { return callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)); });
+            break;
+    }
+}
+function copyAnimationEvent(e, phaseName, totalTime) {
+    var event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime);
+    var data = e['_data'];
+    if (data != null) {
+        event['_data'] = data;
+    }
+    return event;
+}
+function makeAnimationEvent(element, triggerName, fromState, toState, phaseName, totalTime) {
+    if (phaseName === void 0) { phaseName = ''; }
+    if (totalTime === void 0) { totalTime = 0; }
+    return { element: element, triggerName: triggerName, fromState: fromState, toState: toState, phaseName: phaseName, totalTime: totalTime };
+}
+function getOrSetAsInMap(map, key, defaultValue) {
+    var value;
+    if (map instanceof Map) {
+        value = map.get(key);
+        if (!value) {
+            map.set(key, value = defaultValue);
+        }
+    }
+    else {
+        value = map[key];
+        if (!value) {
+            value = map[key] = defaultValue;
+        }
+    }
+    return value;
+}
+function parseTimelineCommand(command) {
+    var separatorPos = command.indexOf(':');
+    var id = command.substring(1, separatorPos);
+    var action = command.substr(separatorPos + 1);
+    return [id, action];
+}
+var _contains = function (elm1, elm2) { return false; };
+var _matches = function (element, selector) { return false; };
+var _query = function (element, selector, multi) {
+    return [];
+};
+if (typeof Element != 'undefined') {
+    // this is well supported in all browsers
+    _contains = function (elm1, elm2) { return elm1.contains(elm2); };
+    if (Element.prototype.matches) {
+        _matches = function (element, selector) { return element.matches(selector); };
+    }
+    else {
+        var proto = Element.prototype;
+        var fn_1 = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||
+            proto.oMatchesSelector || proto.webkitMatchesSelector;
+        if (fn_1) {
+            _matches = function (element, selector) { return fn_1.apply(element, [selector]); };
+        }
+    }
+    _query = function (element, selector, multi) {
+        var results = [];
+        if (multi) {
+            results.push.apply(results, element.querySelectorAll(selector));
+        }
+        else {
+            var elm = element.querySelector(selector);
+            if (elm) {
+                results.push(elm);
+            }
+        }
+        return results;
+    };
+}
+var matchesElement = _matches;
+var containsElement = _contains;
+var invokeQuery = _query;
+/**
+ * @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
+ */
+/**
+ * @experimental
+ */
+var NoopAnimationDriver = (function () {
+    function NoopAnimationDriver() {
+    }
+    NoopAnimationDriver.prototype.matchesElement = function (element, selector) {
+        return matchesElement(element, selector);
+    };
+    NoopAnimationDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); };
+    NoopAnimationDriver.prototype.query = function (element, selector, multi) {
+        return invokeQuery(element, selector, multi);
+    };
+    NoopAnimationDriver.prototype.computeStyle = function (element, prop, defaultValue) {
+        return defaultValue || '';
+    };
+    NoopAnimationDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers) {
+        if (previousPlayers === void 0) { previousPlayers = []; }
+        return new NoopAnimationPlayer();
+    };
+    return NoopAnimationDriver;
+}());
+/**
+ * @experimental
+ */
+var AnimationDriver = (function () {
+    function AnimationDriver() {
+    }
+    return AnimationDriver;
+}());
+AnimationDriver.NOOP = new NoopAnimationDriver();
+/**
+ * @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
+ */
+var ONE_SECOND = 1000;
+var SUBSTITUTION_EXPR_START = '{{';
+var SUBSTITUTION_EXPR_END = '}}';
+var ENTER_CLASSNAME = 'ng-enter';
+var LEAVE_CLASSNAME = 'ng-leave';
+var ENTER_SELECTOR = '.ng-enter';
+var LEAVE_SELECTOR = '.ng-leave';
+var NG_TRIGGER_CLASSNAME = 'ng-trigger';
+var NG_TRIGGER_SELECTOR = '.ng-trigger';
+var NG_ANIMATING_CLASSNAME = 'ng-animating';
+var NG_ANIMATING_SELECTOR = '.ng-animating';
+function resolveTimingValue(value) {
+    if (typeof value == 'number')
+        return value;
+    var matches = value.match(/^(-?[\.\d]+)(m?s)/);
+    if (!matches || matches.length < 2)
+        return 0;
+    return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);
+}
+function _convertTimeValueToMS(value, unit) {
+    switch (unit) {
+        case 's':
+            return value * ONE_SECOND;
+        default:
+            return value;
+    }
+}
+function resolveTiming(timings, errors, allowNegativeValues) {
+    return timings.hasOwnProperty('duration') ?
+        timings :
+        parseTimeExpression(timings, errors, allowNegativeValues);
+}
+function parseTimeExpression(exp, errors, allowNegativeValues) {
+    var regex = /^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;
+    var duration;
+    var delay = 0;
+    var easing = '';
+    if (typeof exp === 'string') {
+        var matches = exp.match(regex);
+        if (matches === null) {
+            errors.push("The provided timing value \"" + exp + "\" is invalid.");
+            return { duration: 0, delay: 0, easing: '' };
+        }
+        duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);
+        var delayMatch = matches[3];
+        if (delayMatch != null) {
+            delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]);
+        }
+        var easingVal = matches[5];
+        if (easingVal) {
+            easing = easingVal;
+        }
+    }
+    else {
+        duration = exp;
+    }
+    if (!allowNegativeValues) {
+        var containsErrors = false;
+        var startIndex = errors.length;
+        if (duration < 0) {
+            errors.push("Duration values below 0 are not allowed for this animation step.");
+            containsErrors = true;
+        }
+        if (delay < 0) {
+            errors.push("Delay values below 0 are not allowed for this animation step.");
+            containsErrors = true;
+        }
+        if (containsErrors) {
+            errors.splice(startIndex, 0, "The provided timing value \"" + exp + "\" is invalid.");
+        }
+    }
+    return { duration: duration, delay: delay, easing: easing };
+}
+function copyObj(obj, destination) {
+    if (destination === void 0) { destination = {}; }
+    Object.keys(obj).forEach(function (prop) { destination[prop] = obj[prop]; });
+    return destination;
+}
+function normalizeStyles(styles) {
+    var normalizedStyles = {};
+    if (Array.isArray(styles)) {
+        styles.forEach(function (data) { return copyStyles(data, false, normalizedStyles); });
+    }
+    else {
+        copyStyles(styles, false, normalizedStyles);
+    }
+    return normalizedStyles;
+}
+function copyStyles(styles, readPrototype, destination) {
+    if (destination === void 0) { destination = {}; }
+    if (readPrototype) {
+        // we make use of a for-in loop so that the
+        // prototypically inherited properties are
+        // revealed from the backFill map
+        for (var prop in styles) {
+            destination[prop] = styles[prop];
+        }
+    }
+    else {
+        copyObj(styles, destination);
+    }
+    return destination;
+}
+function setStyles(element, styles) {
+    if (element['style']) {
+        Object.keys(styles).forEach(function (prop) {
+            var camelProp = dashCaseToCamelCase(prop);
+            element.style[camelProp] = styles[prop];
+        });
+    }
+}
+function eraseStyles(element, styles) {
+    if (element['style']) {
+        Object.keys(styles).forEach(function (prop) {
+            var camelProp = dashCaseToCamelCase(prop);
+            element.style[camelProp] = '';
+        });
+    }
+}
+function normalizeAnimationEntry(steps) {
+    if (Array.isArray(steps)) {
+        if (steps.length == 1)
+            return steps[0];
+        return sequence(steps);
+    }
+    return steps;
+}
+function validateStyleParams(value, options, errors) {
+    var params = options.params || {};
+    var matches = extractStyleParams(value);
+    if (matches.length) {
+        matches.forEach(function (varName) {
+            if (!params.hasOwnProperty(varName)) {
+                errors.push("Unable to resolve the local animation param " + varName + " in the given list of values");
+            }
+        });
+    }
+}
+var PARAM_REGEX = new RegExp(SUBSTITUTION_EXPR_START + "\\s*(.+?)\\s*" + SUBSTITUTION_EXPR_END, 'g');
+function extractStyleParams(value) {
+    var params = [];
+    if (typeof value === 'string') {
+        var val = value.toString();
+        var match = void 0;
+        while (match = PARAM_REGEX.exec(val)) {
+            params.push(match[1]);
+        }
+        PARAM_REGEX.lastIndex = 0;
+    }
+    return params;
+}
+function interpolateParams(value, params, errors) {
+    var original = value.toString();
+    var str = original.replace(PARAM_REGEX, function (_, varName) {
+        var localVal = params[varName];
+        // this means that the value was never overidden by the data passed in by the user
+        if (!params.hasOwnProperty(varName)) {
+            errors.push("Please provide a value for the animation param " + varName);
+            localVal = '';
+        }
+        return localVal.toString();
+    });
+    // we do this to assert that numeric values stay as they are
+    return str == original ? value : str;
+}
+function iteratorToArray(iterator) {
+    var arr = [];
+    var item = iterator.next();
+    while (!item.done) {
+        arr.push(item.value);
+        item = iterator.next();
+    }
+    return arr;
+}
+var DASH_CASE_REGEXP = /-+([a-z0-9])/g;
+function dashCaseToCamelCase(input) {
+    return input.replace(DASH_CASE_REGEXP, function () {
+        var m = [];
+        for (var _i = 0; _i < arguments.length; _i++) {
+            m[_i] = arguments[_i];
+        }
+        return m[1].toUpperCase();
+    });
+}
+function allowPreviousPlayerStylesMerge(duration, delay) {
+    return duration === 0 || delay === 0;
+}
+function visitDslNode(visitor, node, context) {
+    switch (node.type) {
+        case 7 /* Trigger */:
+            return visitor.visitTrigger(node, context);
+        case 0 /* State */:
+            return visitor.visitState(node, context);
+        case 1 /* Transition */:
+            return visitor.visitTransition(node, context);
+        case 2 /* Sequence */:
+            return visitor.visitSequence(node, context);
+        case 3 /* Group */:
+            return visitor.visitGroup(node, context);
+        case 4 /* Animate */:
+            return visitor.visitAnimate(node, context);
+        case 5 /* Keyframes */:
+            return visitor.visitKeyframes(node, context);
+        case 6 /* Style */:
+            return visitor.visitStyle(node, context);
+        case 8 /* Reference */:
+            return visitor.visitReference(node, context);
+        case 9 /* AnimateChild */:
+            return visitor.visitAnimateChild(node, context);
+        case 10 /* AnimateRef */:
+            return visitor.visitAnimateRef(node, context);
+        case 11 /* Query */:
+            return visitor.visitQuery(node, context);
+        case 12 /* Stagger */:
+            return visitor.visitStagger(node, context);
+        default:
+            throw new Error("Unable to resolve animation metadata node #" + node.type);
+    }
+}
+/**
+ * @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
+ */
+var ANY_STATE = '*';
+/**
+ * @param {?} transitionValue
+ * @param {?} errors
+ * @return {?}
+ */
+function parseTransitionExpr(transitionValue, errors) {
+    var /** @type {?} */ expressions = [];
+    if (typeof transitionValue == 'string') {
+        ((transitionValue))
+            .split(/\s*,\s*/)
+            .forEach(function (str) { return parseInnerTransitionStr(str, expressions, errors); });
+    }
+    else {
+        expressions.push(/** @type {?} */ (transitionValue));
+    }
+    return expressions;
+}
+/**
+ * @param {?} eventStr
+ * @param {?} expressions
+ * @param {?} errors
+ * @return {?}
+ */
+function parseInnerTransitionStr(eventStr, expressions, errors) {
+    if (eventStr[0] == ':') {
+        eventStr = parseAnimationAlias(eventStr, errors);
+    }
+    var /** @type {?} */ match = eventStr.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);
+    if (match == null || match.length < 4) {
+        errors.push("The provided transition expression \"" + eventStr + "\" is not supported");
+        return expressions;
+    }
+    var /** @type {?} */ fromState = match[1];
+    var /** @type {?} */ separator = match[2];
+    var /** @type {?} */ toState = match[3];
+    expressions.push(makeLambdaFromStates(fromState, toState));
+    var /** @type {?} */ isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;
+    if (separator[0] == '<' && !isFullAnyStateExpr) {
+        expressions.push(makeLambdaFromStates(toState, fromState));
+    }
+}
+/**
+ * @param {?} alias
+ * @param {?} errors
+ * @return {?}
+ */
+function parseAnimationAlias(alias, errors) {
+    switch (alias) {
+        case ':enter':
+            return 'void => *';
+        case ':leave':
+            return '* => void';
+        default:
+            errors.push("The transition alias value \"" + alias + "\" is not supported");
+            return '* => *';
+    }
+}
+var TRUE_BOOLEAN_VALUES = new Set();
+TRUE_BOOLEAN_VALUES.add('true');
+TRUE_BOOLEAN_VALUES.add('1');
+var FALSE_BOOLEAN_VALUES = new Set();
+FALSE_BOOLEAN_VALUES.add('false');
+FALSE_BOOLEAN_VALUES.add('0');
+/**
+ * @param {?} lhs
+ * @param {?} rhs
+ * @return {?}
+ */
+function makeLambdaFromStates(lhs, rhs) {
+    var /** @type {?} */ LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);
+    var /** @type {?} */ RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);
+    return function (fromState, toState) {
+        var /** @type {?} */ lhsMatch = lhs == ANY_STATE || lhs == fromState;
+        var /** @type {?} */ rhsMatch = rhs == ANY_STATE || rhs == toState;
+        if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {
+            lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);
+        }
+        if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {
+            rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);
+        }
+        return lhsMatch && rhsMatch;
+    };
+}
+/**
+ * @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
+ */
+var SELF_TOKEN = ':self';
+var SELF_TOKEN_REGEX = new RegExp("s*" + SELF_TOKEN + "s*,?", 'g');
+/**
+ * @param {?} metadata
+ * @param {?} errors
+ * @return {?}
+ */
+function buildAnimationAst(metadata, errors) {
+    return new AnimationAstBuilderVisitor().build(metadata, errors);
+}
+var LEAVE_TOKEN = ':leave';
+var LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');
+var ENTER_TOKEN = ':enter';
+var ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');
+var ROOT_SELECTOR = '';
+var AnimationAstBuilderVisitor = (function () {
+    function AnimationAstBuilderVisitor() {
+    }
+    /**
+     * @param {?} metadata
+     * @param {?} errors
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.build = function (metadata, errors) {
+        var /** @type {?} */ context = new AnimationAstBuilderContext(errors);
+        this._resetContextStyleTimingState(context);
+        return (visitDslNode(this, normalizeAnimationEntry(metadata), context));
+    };
+    /**
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype._resetContextStyleTimingState = function (context) {
+        context.currentQuerySelector = ROOT_SELECTOR;
+        context.collectedStyles = {};
+        context.collectedStyles[ROOT_SELECTOR] = {};
+        context.currentTime = 0;
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitTrigger = function (metadata, context) {
+        var _this = this;
+        var /** @type {?} */ queryCount = context.queryCount = 0;
+        var /** @type {?} */ depCount = context.depCount = 0;
+        var /** @type {?} */ states = [];
+        var /** @type {?} */ transitions = [];
+        metadata.definitions.forEach(function (def) {
+            _this._resetContextStyleTimingState(context);
+            if (def.type == 0 /* State */) {
+                var /** @type {?} */ stateDef_1 = (def);
+                var /** @type {?} */ name = stateDef_1.name;
+                name.split(/\s*,\s*/).forEach(function (n) {
+                    stateDef_1.name = n;
+                    states.push(_this.visitState(stateDef_1, context));
+                });
+                stateDef_1.name = name;
+            }
+            else if (def.type == 1 /* Transition */) {
+                var /** @type {?} */ transition = _this.visitTransition(/** @type {?} */ (def), context);
+                queryCount += transition.queryCount;
+                depCount += transition.depCount;
+                transitions.push(transition);
+            }
+            else {
+                context.errors.push('only state() and transition() definitions can sit inside of a trigger()');
+            }
+        });
+        return {
+            type: 7 /* Trigger */,
+            name: metadata.name, states: states, transitions: transitions, queryCount: queryCount, depCount: depCount,
+            options: null
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitState = function (metadata, context) {
+        var /** @type {?} */ styleAst = this.visitStyle(metadata.styles, context);
+        var /** @type {?} */ astParams = (metadata.options && metadata.options.params) || null;
+        if (styleAst.containsDynamicStyles) {
+            var /** @type {?} */ missingSubs_1 = new Set();
+            var /** @type {?} */ params_1 = astParams || {};
+            styleAst.styles.forEach(function (value) {
+                if (isObject(value)) {
+                    var /** @type {?} */ stylesObj_1 = (value);
+                    Object.keys(stylesObj_1).forEach(function (prop) {
+                        extractStyleParams(stylesObj_1[prop]).forEach(function (sub) {
+                            if (!params_1.hasOwnProperty(sub)) {
+                                missingSubs_1.add(sub);
+                            }
+                        });
+                    });
+                }
+            });
+            if (missingSubs_1.size) {
+                var /** @type {?} */ missingSubsArr = iteratorToArray(missingSubs_1.values());
+                context.errors.push("state(\"" + metadata.name + "\", ...) must define default values for all the following style substitutions: " + missingSubsArr.join(', '));
+            }
+        }
+        return {
+            type: 0 /* State */,
+            name: metadata.name,
+            style: styleAst,
+            options: astParams ? { params: astParams } : null
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitTransition = function (metadata, context) {
+        context.queryCount = 0;
+        context.depCount = 0;
+        var /** @type {?} */ animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);
+        var /** @type {?} */ matchers = parseTransitionExpr(metadata.expr, context.errors);
+        return {
+            type: 1 /* Transition */,
+            matchers: matchers,
+            animation: animation,
+            queryCount: context.queryCount,
+            depCount: context.depCount,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitSequence = function (metadata, context) {
+        var _this = this;
+        return {
+            type: 2 /* Sequence */,
+            steps: metadata.steps.map(function (s) { return visitDslNode(_this, s, context); }),
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitGroup = function (metadata, context) {
+        var _this = this;
+        var /** @type {?} */ currentTime = context.currentTime;
+        var /** @type {?} */ furthestTime = 0;
+        var /** @type {?} */ steps = metadata.steps.map(function (step) {
+            context.currentTime = currentTime;
+            var /** @type {?} */ innerAst = visitDslNode(_this, step, context);
+            furthestTime = Math.max(furthestTime, context.currentTime);
+            return innerAst;
+        });
+        context.currentTime = furthestTime;
+        return {
+            type: 3 /* Group */,
+            steps: steps,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitAnimate = function (metadata, context) {
+        var /** @type {?} */ timingAst = constructTimingAst(metadata.timings, context.errors);
+        context.currentAnimateTimings = timingAst;
+        var /** @type {?} */ styleAst;
+        var /** @type {?} */ styleMetadata = metadata.styles ? metadata.styles : style({});
+        if (styleMetadata.type == 5 /* Keyframes */) {
+            styleAst = this.visitKeyframes(/** @type {?} */ (styleMetadata), context);
+        }
+        else {
+            var /** @type {?} */ styleMetadata_1 = (metadata.styles);
+            var /** @type {?} */ isEmpty = false;
+            if (!styleMetadata_1) {
+                isEmpty = true;
+                var /** @type {?} */ newStyleData = {};
+                if (timingAst.easing) {
+                    newStyleData['easing'] = timingAst.easing;
+                }
+                styleMetadata_1 = style(newStyleData);
+            }
+            context.currentTime += timingAst.duration + timingAst.delay;
+            var /** @type {?} */ _styleAst = this.visitStyle(styleMetadata_1, context);
+            _styleAst.isEmptyStep = isEmpty;
+            styleAst = _styleAst;
+        }
+        context.currentAnimateTimings = null;
+        return {
+            type: 4 /* Animate */,
+            timings: timingAst,
+            style: styleAst,
+            options: null
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitStyle = function (metadata, context) {
+        var /** @type {?} */ ast = this._makeStyleAst(metadata, context);
+        this._validateStyleAst(ast, context);
+        return ast;
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype._makeStyleAst = function (metadata, context) {
+        var /** @type {?} */ styles = [];
+        if (Array.isArray(metadata.styles)) {
+            ((metadata.styles)).forEach(function (styleTuple) {
+                if (typeof styleTuple == 'string') {
+                    if (styleTuple == AUTO_STYLE) {
+                        styles.push(/** @type {?} */ (styleTuple));
+                    }
+                    else {
+                        context.errors.push("The provided style string value " + styleTuple + " is not allowed.");
+                    }
+                }
+                else {
+                    styles.push(/** @type {?} */ (styleTuple));
+                }
+            });
+        }
+        else {
+            styles.push(metadata.styles);
+        }
+        var /** @type {?} */ containsDynamicStyles = false;
+        var /** @type {?} */ collectedEasing = null;
+        styles.forEach(function (styleData) {
+            if (isObject(styleData)) {
+                var /** @type {?} */ styleMap = (styleData);
+                var /** @type {?} */ easing = styleMap['easing'];
+                if (easing) {
+                    collectedEasing = (easing);
+                    delete styleMap['easing'];
+                }
+                if (!containsDynamicStyles) {
+                    for (var /** @type {?} */ prop in styleMap) {
+                        var /** @type {?} */ value = styleMap[prop];
+                        if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {
+                            containsDynamicStyles = true;
+                            break;
+                        }
+                    }
+                }
+            }
+        });
+        return {
+            type: 6 /* Style */,
+            styles: styles,
+            easing: collectedEasing,
+            offset: metadata.offset, containsDynamicStyles: containsDynamicStyles,
+            options: null
+        };
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype._validateStyleAst = function (ast, context) {
+        var /** @type {?} */ timings = context.currentAnimateTimings;
+        var /** @type {?} */ endTime = context.currentTime;
+        var /** @type {?} */ startTime = context.currentTime;
+        if (timings && startTime > 0) {
+            startTime -= timings.duration + timings.delay;
+        }
+        ast.styles.forEach(function (tuple) {
+            if (typeof tuple == 'string')
+                return;
+            Object.keys(tuple).forEach(function (prop) {
+                var /** @type {?} */ collectedStyles = context.collectedStyles[((context.currentQuerySelector))];
+                var /** @type {?} */ collectedEntry = collectedStyles[prop];
+                var /** @type {?} */ updateCollectedStyle = true;
+                if (collectedEntry) {
+                    if (startTime != endTime && startTime >= collectedEntry.startTime &&
+                        endTime <= collectedEntry.endTime) {
+                        context.errors.push("The CSS property \"" + prop + "\" that exists between the times of \"" + collectedEntry.startTime + "ms\" and \"" + collectedEntry.endTime + "ms\" is also being animated in a parallel animation between the times of \"" + startTime + "ms\" and \"" + endTime + "ms\"");
+                        updateCollectedStyle = false;
+                    }
+                    // we always choose the smaller start time value since we
+                    // want to have a record of the entire animation window where
+                    // the style property is being animated in between
+                    startTime = collectedEntry.startTime;
+                }
+                if (updateCollectedStyle) {
+                    collectedStyles[prop] = { startTime: startTime, endTime: endTime };
+                }
+                if (context.options) {
+                    validateStyleParams(tuple[prop], context.options, context.errors);
+                }
+            });
+        });
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitKeyframes = function (metadata, context) {
+        var _this = this;
+        var /** @type {?} */ ast = { type: 5 /* Keyframes */, styles: [], options: null };
+        if (!context.currentAnimateTimings) {
+            context.errors.push("keyframes() must be placed inside of a call to animate()");
+            return ast;
+        }
+        var /** @type {?} */ MAX_KEYFRAME_OFFSET = 1;
+        var /** @type {?} */ totalKeyframesWithOffsets = 0;
+        var /** @type {?} */ offsets = [];
+        var /** @type {?} */ offsetsOutOfOrder = false;
+        var /** @type {?} */ keyframesOutOfRange = false;
+        var /** @type {?} */ previousOffset = 0;
+        var /** @type {?} */ keyframes = metadata.steps.map(function (styles) {
+            var /** @type {?} */ style$$1 = _this._makeStyleAst(styles, context);
+            var /** @type {?} */ offsetVal = style$$1.offset != null ? style$$1.offset : consumeOffset(style$$1.styles);
+            var /** @type {?} */ offset = 0;
+            if (offsetVal != null) {
+                totalKeyframesWithOffsets++;
+                offset = style$$1.offset = offsetVal;
+            }
+            keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;
+            offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;
+            previousOffset = offset;
+            offsets.push(offset);
+            return style$$1;
+        });
+        if (keyframesOutOfRange) {
+            context.errors.push("Please ensure that all keyframe offsets are between 0 and 1");
+        }
+        if (offsetsOutOfOrder) {
+            context.errors.push("Please ensure that all keyframe offsets are in order");
+        }
+        var /** @type {?} */ length = metadata.steps.length;
+        var /** @type {?} */ generatedOffset = 0;
+        if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {
+            context.errors.push("Not all style() steps within the declared keyframes() contain offsets");
+        }
+        else if (totalKeyframesWithOffsets == 0) {
+            generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);
+        }
+        var /** @type {?} */ limit = length - 1;
+        var /** @type {?} */ currentTime = context.currentTime;
+        var /** @type {?} */ currentAnimateTimings = ((context.currentAnimateTimings));
+        var /** @type {?} */ animateDuration = currentAnimateTimings.duration;
+        keyframes.forEach(function (kf, i) {
+            var /** @type {?} */ offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];
+            var /** @type {?} */ durationUpToThisFrame = offset * animateDuration;
+            context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;
+            currentAnimateTimings.duration = durationUpToThisFrame;
+            _this._validateStyleAst(kf, context);
+            kf.offset = offset;
+            ast.styles.push(kf);
+        });
+        return ast;
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitReference = function (metadata, context) {
+        return {
+            type: 8 /* Reference */,
+            animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitAnimateChild = function (metadata, context) {
+        context.depCount++;
+        return {
+            type: 9 /* AnimateChild */,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitAnimateRef = function (metadata, context) {
+        return {
+            type: 10 /* AnimateRef */,
+            animation: this.visitReference(metadata.animation, context),
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitQuery = function (metadata, context) {
+        var /** @type {?} */ parentSelector = ((context.currentQuerySelector));
+        var /** @type {?} */ options = ((metadata.options || {}));
+        context.queryCount++;
+        context.currentQuery = metadata;
+        var _a = normalizeSelector(metadata.selector), selector = _a[0], includeSelf = _a[1];
+        context.currentQuerySelector =
+            parentSelector.length ? (parentSelector + ' ' + selector) : selector;
+        getOrSetAsInMap(context.collectedStyles, context.currentQuerySelector, {});
+        var /** @type {?} */ animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);
+        context.currentQuery = null;
+        context.currentQuerySelector = parentSelector;
+        return {
+            type: 11 /* Query */,
+            selector: selector,
+            limit: options.limit || 0,
+            optional: !!options.optional, includeSelf: includeSelf, animation: animation,
+            originalSelector: metadata.selector,
+            options: normalizeAnimationOptions(metadata.options)
+        };
+    };
+    /**
+     * @param {?} metadata
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationAstBuilderVisitor.prototype.visitStagger = function (metadata, context) {
+        if (!context.currentQuery) {
+            context.errors.push("stagger() can only be used inside of query()");
+        }
+        var /** @type {?} */ timings = metadata.timings === 'full' ?
+            { duration: 0, delay: 0, easing: 'full' } :
+            resolveTiming(metadata.timings, context.errors, true);
+        return {
+            type: 12 /* Stagger */,
+            animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context), timings: timings,
+            options: null
+        };
+    };
+    return AnimationAstBuilderVisitor;
+}());
+/**
+ * @param {?} selector
+ * @return {?}
+ */
+function normalizeSelector(selector) {
+    var /** @type {?} */ hasAmpersand = selector.split(/\s*,\s*/).find(function (token) { return token == SELF_TOKEN; }) ? true : false;
+    if (hasAmpersand) {
+        selector = selector.replace(SELF_TOKEN_REGEX, '');
+    }
+    selector = selector.replace(ENTER_TOKEN_REGEX, ENTER_SELECTOR)
+        .replace(LEAVE_TOKEN_REGEX, LEAVE_SELECTOR)
+        .replace(/@\*/g, NG_TRIGGER_SELECTOR)
+        .replace(/@\w+/g, function (match) { return NG_TRIGGER_SELECTOR + '-' + match.substr(1); })
+        .replace(/:animating/g, NG_ANIMATING_SELECTOR);
+    return [selector, hasAmpersand];
+}
+/**
+ * @param {?} obj
+ * @return {?}
+ */
+function normalizeParams(obj) {
+    return obj ? copyObj(obj) : null;
+}
+var AnimationAstBuilderContext = (function () {
+    /**
+     * @param {?} errors
+     */
+    function AnimationAstBuilderContext(errors) {
+        this.errors = errors;
+        this.queryCount = 0;
+        this.depCount = 0;
+        this.currentTransition = null;
+        this.currentQuery = null;
+        this.currentQuerySelector = null;
+        this.currentAnimateTimings = null;
+        this.currentTime = 0;
+        this.collectedStyles = {};
+        this.options = null;
+    }
+    return AnimationAstBuilderContext;
+}());
+/**
+ * @param {?} styles
+ * @return {?}
+ */
+function consumeOffset(styles) {
+    if (typeof styles == 'string')
+        return null;
+    var /** @type {?} */ offset = null;
+    if (Array.isArray(styles)) {
+        styles.forEach(function (styleTuple) {
+            if (isObject(styleTuple) && styleTuple.hasOwnProperty('offset')) {
+                var /** @type {?} */ obj = (styleTuple);
+                offset = parseFloat(/** @type {?} */ (obj['offset']));
+                delete obj['offset'];
+            }
+        });
+    }
+    else if (isObject(styles) && styles.hasOwnProperty('offset')) {
+        var /** @type {?} */ obj = (styles);
+        offset = parseFloat(/** @type {?} */ (obj['offset']));
+        delete obj['offset'];
+    }
+    return offset;
+}
+/**
+ * @param {?} value
+ * @return {?}
+ */
+function isObject(value) {
+    return !Array.isArray(value) && typeof value == 'object';
+}
+/**
+ * @param {?} value
+ * @param {?} errors
+ * @return {?}
+ */
+function constructTimingAst(value, errors) {
+    var /** @type {?} */ timings = null;
+    if (value.hasOwnProperty('duration')) {
+        timings = (value);
+    }
+    else if (typeof value == 'number') {
+        var /** @type {?} */ duration = resolveTiming(/** @type {?} */ (value), errors).duration;
+        return makeTimingAst(/** @type {?} */ (duration), 0, '');
+    }
+    var /** @type {?} */ strValue = (value);
+    var /** @type {?} */ isDynamic = strValue.split(/\s+/).some(function (v) { return v.charAt(0) == '{' && v.charAt(1) == '{'; });
+    if (isDynamic) {
+        var /** @type {?} */ ast = (makeTimingAst(0, 0, ''));
+        ast.dynamic = true;
+        ast.strValue = strValue;
+        return (ast);
+    }
+    timings = timings || resolveTiming(strValue, errors);
+    return makeTimingAst(timings.duration, timings.delay, timings.easing);
+}
+/**
+ * @param {?} options
+ * @return {?}
+ */
+function normalizeAnimationOptions(options) {
+    if (options) {
+        options = copyObj(options);
+        if (options['params']) {
+            options['params'] = ((normalizeParams(options['params'])));
+        }
+    }
+    else {
+        options = {};
+    }
+    return options;
+}
+/**
+ * @param {?} duration
+ * @param {?} delay
+ * @param {?} easing
+ * @return {?}
+ */
+function makeTimingAst(duration, delay, easing) {
+    return { duration: duration, delay: delay, easing: easing };
+}
+/**
+ * @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
+ */
+/**
+ * @param {?} element
+ * @param {?} keyframes
+ * @param {?} preStyleProps
+ * @param {?} postStyleProps
+ * @param {?} duration
+ * @param {?} delay
+ * @param {?=} easing
+ * @param {?=} subTimeline
+ * @return {?}
+ */
+function createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing, subTimeline) {
+    if (easing === void 0) { easing = null; }
+    if (subTimeline === void 0) { subTimeline = false; }
+    return {
+        type: 1 /* TimelineAnimation */,
+        element: element,
+        keyframes: keyframes,
+        preStyleProps: preStyleProps,
+        postStyleProps: postStyleProps,
+        duration: duration,
+        delay: delay,
+        totalTime: duration + delay, easing: easing, subTimeline: subTimeline
+    };
+}
+/**
+ * @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
+ */
+var ElementInstructionMap = (function () {
+    function ElementInstructionMap() {
+        this._map = new Map();
+    }
+    /**
+     * @param {?} element
+     * @return {?}
+     */
+    ElementInstructionMap.prototype.consume = function (element) {
+        var /** @type {?} */ instructions = this._map.get(element);
+        if (instructions) {
+            this._map.delete(element);
+        }
+        else {
+            instructions = [];
+        }
+        return instructions;
+    };
+    /**
+     * @param {?} element
+     * @param {?} instructions
+     * @return {?}
+     */
+    ElementInstructionMap.prototype.append = function (element, instructions) {
+        var /** @type {?} */ existingInstructions = this._map.get(element);
+        if (!existingInstructions) {
+            this._map.set(element, existingInstructions = []);
+        }
+        existingInstructions.push.apply(existingInstructions, instructions);
+    };
+    /**
+     * @param {?} element
+     * @return {?}
+     */
+    ElementInstructionMap.prototype.has = function (element) { return this._map.has(element); };
+    /**
+     * @return {?}
+     */
+    ElementInstructionMap.prototype.clear = function () { this._map.clear(); };
+    return ElementInstructionMap;
+}());
+/**
+ * @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
+ */
+var ONE_FRAME_IN_MILLISECONDS = 1;
+/**
+ * @param {?} driver
+ * @param {?} rootElement
+ * @param {?} ast
+ * @param {?=} startingStyles
+ * @param {?=} finalStyles
+ * @param {?=} options
+ * @param {?=} subInstructions
+ * @param {?=} errors
+ * @return {?}
+ */
+function buildAnimationTimelines(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) {
+    if (startingStyles === void 0) { startingStyles = {}; }
+    if (finalStyles === void 0) { finalStyles = {}; }
+    if (errors === void 0) { errors = []; }
+    return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors);
+}
+var AnimationTimelineBuilderVisitor = (function () {
+    function AnimationTimelineBuilderVisitor() {
+    }
+    /**
+     * @param {?} driver
+     * @param {?} rootElement
+     * @param {?} ast
+     * @param {?} startingStyles
+     * @param {?} finalStyles
+     * @param {?} options
+     * @param {?=} subInstructions
+     * @param {?=} errors
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.buildKeyframes = function (driver, rootElement, ast, startingStyles, finalStyles, options, subInstructions, errors) {
+        if (errors === void 0) { errors = []; }
+        subInstructions = subInstructions || new ElementInstructionMap();
+        var /** @type {?} */ context = new AnimationTimelineContext(driver, rootElement, subInstructions, errors, []);
+        context.options = options;
+        context.currentTimeline.setStyles([startingStyles], null, context.errors, options);
+        visitDslNode(this, ast, context);
+        // this checks to see if an actual animation happened
+        var /** @type {?} */ timelines = context.timelines.filter(function (timeline) { return timeline.containsAnimation(); });
+        if (timelines.length && Object.keys(finalStyles).length) {
+            var /** @type {?} */ tl = timelines[timelines.length - 1];
+            if (!tl.allowOnlyTimelineStyles()) {
+                tl.setStyles([finalStyles], null, context.errors, options);
+            }
+        }
+        return timelines.length ? timelines.map(function (timeline) { return timeline.buildKeyframes(); }) :
+            [createTimelineInstruction(rootElement, [], [], [], 0, 0, '', false)];
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitTrigger = function (ast, context) {
+        // these values are not visited in this AST
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitState = function (ast, context) {
+        // these values are not visited in this AST
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitTransition = function (ast, context) {
+        // these values are not visited in this AST
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitAnimateChild = function (ast, context) {
+        var /** @type {?} */ elementInstructions = context.subInstructions.consume(context.element);
+        if (elementInstructions) {
+            var /** @type {?} */ innerContext = context.createSubContext(ast.options);
+            var /** @type {?} */ startTime = context.currentTimeline.currentTime;
+            var /** @type {?} */ endTime = this._visitSubInstructions(elementInstructions, innerContext, /** @type {?} */ (innerContext.options));
+            if (startTime != endTime) {
+                // we do this on the upper context because we created a sub context for
+                // the sub child animations
+                context.transformIntoNewTimeline(endTime);
+            }
+        }
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitAnimateRef = function (ast, context) {
+        var /** @type {?} */ innerContext = context.createSubContext(ast.options);
+        innerContext.transformIntoNewTimeline();
+        this.visitReference(ast.animation, innerContext);
+        context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} instructions
+     * @param {?} context
+     * @param {?} options
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype._visitSubInstructions = function (instructions, context, options) {
+        var /** @type {?} */ startTime = context.currentTimeline.currentTime;
+        var /** @type {?} */ furthestTime = startTime;
+        // this is a special-case for when a user wants to skip a sub
+        // animation from being fired entirely.
+        var /** @type {?} */ duration = options.duration != null ? resolveTimingValue(options.duration) : null;
+        var /** @type {?} */ delay = options.delay != null ? resolveTimingValue(options.delay) : null;
+        if (duration !== 0) {
+            instructions.forEach(function (instruction) {
+                var /** @type {?} */ instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);
+                furthestTime =
+                    Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);
+            });
+        }
+        return furthestTime;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitReference = function (ast, context) {
+        context.updateOptions(ast.options, true);
+        visitDslNode(this, ast.animation, context);
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitSequence = function (ast, context) {
+        var _this = this;
+        var /** @type {?} */ subContextCount = context.subContextCount;
+        var /** @type {?} */ ctx = context;
+        var /** @type {?} */ options = ast.options;
+        if (options && (options.params || options.delay)) {
+            ctx = context.createSubContext(options);
+            ctx.transformIntoNewTimeline();
+            if (options.delay != null) {
+                if (ctx.previousNode.type == 6 /* Style */) {
+                    ctx.currentTimeline.snapshotCurrentStyles();
+                    ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+                }
+                var /** @type {?} */ delay = resolveTimingValue(options.delay);
+                ctx.delayNextStep(delay);
+            }
+        }
+        if (ast.steps.length) {
+            ast.steps.forEach(function (s) { return visitDslNode(_this, s, ctx); });
+            // this is here just incase the inner steps only contain or end with a style() call
+            ctx.currentTimeline.applyStylesToKeyframe();
+            // this means that some animation function within the sequence
+            // ended up creating a sub timeline (which means the current
+            // timeline cannot overlap with the contents of the sequence)
+            if (ctx.subContextCount > subContextCount) {
+                ctx.transformIntoNewTimeline();
+            }
+        }
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitGroup = function (ast, context) {
+        var _this = this;
+        var /** @type {?} */ innerTimelines = [];
+        var /** @type {?} */ furthestTime = context.currentTimeline.currentTime;
+        var /** @type {?} */ delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;
+        ast.steps.forEach(function (s) {
+            var /** @type {?} */ innerContext = context.createSubContext(ast.options);
+            if (delay) {
+                innerContext.delayNextStep(delay);
+            }
+            visitDslNode(_this, s, innerContext);
+            furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);
+            innerTimelines.push(innerContext.currentTimeline);
+        });
+        // this operation is run after the AST loop because otherwise
+        // if the parent timeline's collected styles were updated then
+        // it would pass in invalid data into the new-to-be forked items
+        innerTimelines.forEach(function (timeline) { return context.currentTimeline.mergeTimelineCollectedStyles(timeline); });
+        context.transformIntoNewTimeline(furthestTime);
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype._visitTiming = function (ast, context) {
+        if (((ast)).dynamic) {
+            var /** @type {?} */ strValue = ((ast)).strValue;
+            var /** @type {?} */ timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;
+            return resolveTiming(timingValue, context.errors);
+        }
+        else {
+            return { duration: ast.duration, delay: ast.delay, easing: ast.easing };
+        }
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitAnimate = function (ast, context) {
+        var /** @type {?} */ timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);
+        var /** @type {?} */ timeline = context.currentTimeline;
+        if (timings.delay) {
+            context.incrementTime(timings.delay);
+            timeline.snapshotCurrentStyles();
+        }
+        var /** @type {?} */ style$$1 = ast.style;
+        if (style$$1.type == 5 /* Keyframes */) {
+            this.visitKeyframes(style$$1, context);
+        }
+        else {
+            context.incrementTime(timings.duration);
+            this.visitStyle(/** @type {?} */ (style$$1), context);
+            timeline.applyStylesToKeyframe();
+        }
+        context.currentAnimateTimings = null;
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitStyle = function (ast, context) {
+        var /** @type {?} */ timeline = context.currentTimeline;
+        var /** @type {?} */ timings = ((context.currentAnimateTimings));
+        // this is a special case for when a style() call
+        // directly follows  an animate() call (but not inside of an animate() call)
+        if (!timings && timeline.getCurrentStyleProperties().length) {
+            timeline.forwardFrame();
+        }
+        var /** @type {?} */ easing = (timings && timings.easing) || ast.easing;
+        if (ast.isEmptyStep) {
+            timeline.applyEmptyStep(easing);
+        }
+        else {
+            timeline.setStyles(ast.styles, easing, context.errors, context.options);
+        }
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitKeyframes = function (ast, context) {
+        var /** @type {?} */ currentAnimateTimings = ((context.currentAnimateTimings));
+        var /** @type {?} */ startTime = (((context.currentTimeline))).duration;
+        var /** @type {?} */ duration = currentAnimateTimings.duration;
+        var /** @type {?} */ innerContext = context.createSubContext();
+        var /** @type {?} */ innerTimeline = innerContext.currentTimeline;
+        innerTimeline.easing = currentAnimateTimings.easing;
+        ast.styles.forEach(function (step) {
+            var /** @type {?} */ offset = step.offset || 0;
+            innerTimeline.forwardTime(offset * duration);
+            innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);
+            innerTimeline.applyStylesToKeyframe();
+        });
+        // this will ensure that the parent timeline gets all the styles from
+        // the child even if the new timeline below is not used
+        context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);
+        // we do this because the window between this timeline and the sub timeline
+        // should ensure that the styles within are exactly the same as they were before
+        context.transformIntoNewTimeline(startTime + duration);
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitQuery = function (ast, context) {
+        var _this = this;
+        // in the event that the first step before this is a style step we need
+        // to ensure the styles are applied before the children are animated
+        var /** @type {?} */ startTime = context.currentTimeline.currentTime;
+        var /** @type {?} */ options = ((ast.options || {}));
+        var /** @type {?} */ delay = options.delay ? resolveTimingValue(options.delay) : 0;
+        if (delay && (context.previousNode.type === 6 /* Style */ ||
+            (startTime == 0 && context.currentTimeline.getCurrentStyleProperties().length))) {
+            context.currentTimeline.snapshotCurrentStyles();
+            context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+        }
+        var /** @type {?} */ furthestTime = startTime;
+        var /** @type {?} */ elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);
+        context.currentQueryTotal = elms.length;
+        var /** @type {?} */ sameElementTimeline = null;
+        elms.forEach(function (element, i) {
+            context.currentQueryIndex = i;
+            var /** @type {?} */ innerContext = context.createSubContext(ast.options, element);
+            if (delay) {
+                innerContext.delayNextStep(delay);
+            }
+            if (element === context.element) {
+                sameElementTimeline = innerContext.currentTimeline;
+            }
+            visitDslNode(_this, ast.animation, innerContext);
+            // this is here just incase the inner steps only contain or end
+            // with a style() call (which is here to signal that this is a preparatory
+            // call to style an element before it is animated again)
+            innerContext.currentTimeline.applyStylesToKeyframe();
+            var /** @type {?} */ endTime = innerContext.currentTimeline.currentTime;
+            furthestTime = Math.max(furthestTime, endTime);
+        });
+        context.currentQueryIndex = 0;
+        context.currentQueryTotal = 0;
+        context.transformIntoNewTimeline(furthestTime);
+        if (sameElementTimeline) {
+            context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);
+            context.currentTimeline.snapshotCurrentStyles();
+        }
+        context.previousNode = ast;
+    };
+    /**
+     * @param {?} ast
+     * @param {?} context
+     * @return {?}
+     */
+    AnimationTimelineBuilderVisitor.prototype.visitStagger = function (ast, context) {
+        var /** @type {?} */ parentContext = ((context.parentContext));
+        var /** @type {?} */ tl = context.currentTimeline;
+        var /** @type {?} */ timings = ast.timings;
+        var /** @type {?} */ duration = Math.abs(timings.duration);
+        var /** @type {?} */ maxTime = duration * (context.currentQueryTotal - 1);
+        var /** @type {?} */ delay = duration * context.currentQueryIndex;
+        var /** @type {?} */ staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;
+        switch (staggerTransformer) {
+            case 'reverse':
+                delay = maxTime - delay;
+                break;
+            case 'full':
+                delay = parentContext.currentStaggerTime;
+                break;
+        }
+        var /** @type {?} */ timeline = context.currentTimeline;
+        if (delay) {
+            timeline.delayNextStep(delay);
+        }
+        var /** @type {?} */ startingTime = timeline.currentTime;
+        visitDslNode(this, ast.animation, context);
+        context.previousNode = ast;
+        // time = duration + delay
+        // the reason why this computation is so complex is because
+        // the inner timeline may either have a delay value or a stretched
+        // keyframe depending on if a subtimeline is not used or is used.
+        parentContext.currentStaggerTime =
+            (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);
+    };
+    return AnimationTimelineBuilderVisitor;
+}());
+var DEFAULT_NOOP_PREVIOUS_NODE = ({});
+var AnimationTimelineContext = (function () {
+    /**
+     * @param {?} _driver
+     * @param {?} element
+     * @param {?} subInstructions
+     * @param {?} errors
+     * @param {?} timelines
+     * @param {?=} initialTimeline
+     */
+    function AnimationTimelineContext(_driver, element, subInstructions, errors, timelines, initialTimeline) {
+        this._driver = _driver;
+        this.element = element;
+        this.subInstructions = subInstructions;
+        this.errors = errors;
+        this.timelines = timelines;
+        this.parentContext = null;
+        this.currentAnimateTimings = null;
+        this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+        this.subContextCount = 0;
+        this.options = {};
+        this.currentQueryIndex = 0;
+        this.currentQueryTotal = 0;
+        this.currentStaggerTime = 0;
+        this.currentTimeline = initialTimeline || new TimelineBuilder(element, 0);
+        timelines.push(this.currentTimeline);
+    }
+    Object.defineProperty(AnimationTimelineContext.prototype, "params", {
+        /**
+         * @return {?}
+         */
+        get: function () { return this.options.params; },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @param {?} options
+     * @param {?=} skipIfExists
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.updateOptions = function (options, skipIfExists) {
+        var _this = this;
+        if (!options)
+            return;
+        var /** @type {?} */ newOptions = (options);
+        var /** @type {?} */ optionsToUpdate = this.options;
+        // NOTE: this will get patched up when other animation methods support duration overrides
+        if (newOptions.duration != null) {
+            ((optionsToUpdate)).duration = resolveTimingValue(newOptions.duration);
+        }
+        if (newOptions.delay != null) {
+            optionsToUpdate.delay = resolveTimingValue(newOptions.delay);
+        }
+        var /** @type {?} */ newParams = newOptions.params;
+        if (newParams) {
+            var /** @type {?} */ paramsToUpdate_1 = ((optionsToUpdate.params));
+            if (!paramsToUpdate_1) {
+                paramsToUpdate_1 = this.options.params = {};
+            }
+            Object.keys(newParams).forEach(function (name) {
+                if (!skipIfExists || !paramsToUpdate_1.hasOwnProperty(name)) {
+                    paramsToUpdate_1[name] = interpolateParams(newParams[name], paramsToUpdate_1, _this.errors);
+                }
+            });
+        }
+    };
+    /**
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype._copyOptions = function () {
+        var /** @type {?} */ options = {};
+        if (this.options) {
+            var /** @type {?} */ oldParams_1 = this.options.params;
+            if (oldParams_1) {
+                var /** @type {?} */ params_2 = options['params'] = {};
+                Object.keys(oldParams_1).forEach(function (name) { params_2[name] = oldParams_1[name]; });
+            }
+        }
+        return options;
+    };
+    /**
+     * @param {?=} options
+     * @param {?=} element
+     * @param {?=} newTime
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.createSubContext = function (options, element, newTime) {
+        if (options === void 0) { options = null; }
+        var /** @type {?} */ target = element || this.element;
+        var /** @type {?} */ context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));
+        context.previousNode = this.previousNode;
+        context.currentAnimateTimings = this.currentAnimateTimings;
+        context.options = this._copyOptions();
+        context.updateOptions(options);
+        context.currentQueryIndex = this.currentQueryIndex;
+        context.currentQueryTotal = this.currentQueryTotal;
+        context.parentContext = this;
+        this.subContextCount++;
+        return context;
+    };
+    /**
+     * @param {?=} newTime
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.transformIntoNewTimeline = function (newTime) {
+        this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;
+        this.currentTimeline = this.currentTimeline.fork(this.element, newTime);
+        this.timelines.push(this.currentTimeline);
+        return this.currentTimeline;
+    };
+    /**
+     * @param {?} instruction
+     * @param {?} duration
+     * @param {?} delay
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.appendInstructionToTimeline = function (instruction, duration, delay) {
+        var /** @type {?} */ updatedTimings = {
+            duration: duration != null ? duration : instruction.duration,
+            delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,
+            easing: ''
+        };
+        var /** @type {?} */ builder = new SubTimelineBuilder(instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);
+        this.timelines.push(builder);
+        return updatedTimings;
+    };
+    /**
+     * @param {?} time
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.incrementTime = function (time) {
+        this.currentTimeline.forwardTime(this.currentTimeline.duration + time);
+    };
+    /**
+     * @param {?} delay
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.delayNextStep = function (delay) {
+        // negative delays are not yet supported
+        if (delay > 0) {
+            this.currentTimeline.delayNextStep(delay);
+        }
+    };
+    /**
+     * @param {?} selector
+     * @param {?} originalSelector
+     * @param {?} limit
+     * @param {?} includeSelf
+     * @param {?} optional
+     * @param {?} errors
+     * @return {?}
+     */
+    AnimationTimelineContext.prototype.invokeQuery = function (selector, originalSelector, limit, includeSelf, optional, errors) {
+        var /** @type {?} */ results = [];
+        if (includeSelf) {
+            results.push(this.element);
+        }
+        if (selector.length > 0) {
+            var /** @type {?} */ multi = limit != 1;
+            var /** @type {?} */ elements = this._driver.query(this.element, selector, multi);
+            if (limit !== 0) {
+                elements = elements.slice(0, limit);
+            }
+            results.push.apply(results, elements);
+        }
+        if (!optional && results.length == 0) {
+            errors.push("`query(\"" + originalSelector + "\")` returned zero elements. (Use `query(\"" + originalSelector + "\", { optional: true })` if you wish to allow this.)");
+        }
+        return results;
+    };
+    return AnimationTimelineContext;
+}());
+var TimelineBuilder = (function () {
+    /**
+     * @param {?} element
+     * @param {?} startTime
+     * @param {?=} _elementTimelineStylesLookup
+     */
+    function TimelineBuilder(element, startTime, _elementTimelineStylesLookup) {
+        this.element = element;
+        this.startTime = startTime;
+        this._elementTimelineStylesLookup = _elementTimelineStylesLookup;
+        this.duration = 0;
+        this._previousKeyframe = {};
+        this._currentKeyframe = {};
+        this._keyframes = new Map();
+        this._styleSummary = {};
+        this._pendingStyles = {};
+        this._backFill = {};
+        this._currentEmptyStepKeyframe = null;
+        if (!this._elementTimelineStylesLookup) {
+            this._elementTimelineStylesLookup = new Map();
+        }
+        this._localTimelineStyles = Object.create(this._backFill, {});
+        this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);
+        if (!this._globalTimelineStyles) {
+            this._globalTimelineStyles = this._localTimelineStyles;
+            this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);
+        }
+        this._loadKeyframe();
+    }
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.containsAnimation = function () {
+        switch (this._keyframes.size) {
+            case 0:
+                return false;
+            case 1:
+                return this.getCurrentStyleProperties().length > 0;
+            default:
+                return true;
+        }
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.getCurrentStyleProperties = function () { return Object.keys(this._currentKeyframe); };
+    Object.defineProperty(TimelineBuilder.prototype, "currentTime", {
+        /**
+         * @return {?}
+         */
+        get: function () { return this.startTime + this.duration; },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @param {?} delay
+     * @return {?}
+     */
+    TimelineBuilder.prototype.delayNextStep = function (delay) {
+        // in the event that a style() step is placed right before a stagger()
+        // and that style() step is the very first style() value in the animation
+        // then we need to make a copy of the keyframe [0, copy, 1] so that the delay
+        // properly applies the style() values to work with the stagger...
+        var /** @type {?} */ hasPreStyleStep = this._keyframes.size == 1 && Object.keys(this._pendingStyles).length;
+        if (this.duration || hasPreStyleStep) {
+            this.forwardTime(this.currentTime + delay);
+            if (hasPreStyleStep) {
+                this.snapshotCurrentStyles();
+            }
+        }
+        else {
+            this.startTime += delay;
+        }
+    };
+    /**
+     * @param {?} element
+     * @param {?=} currentTime
+     * @return {?}
+     */
+    TimelineBuilder.prototype.fork = function (element, currentTime) {
+        this.applyStylesToKeyframe();
+        return new TimelineBuilder(element, currentTime || this.currentTime, this._elementTimelineStylesLookup);
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype._loadKeyframe = function () {
+        if (this._currentKeyframe) {
+            this._previousKeyframe = this._currentKeyframe;
+        }
+        this._currentKeyframe = ((this._keyframes.get(this.duration)));
+        if (!this._currentKeyframe) {
+            this._currentKeyframe = Object.create(this._backFill, {});
+            this._keyframes.set(this.duration, this._currentKeyframe);
+        }
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.forwardFrame = function () {
+        this.duration += ONE_FRAME_IN_MILLISECONDS;
+        this._loadKeyframe();
+    };
+    /**
+     * @param {?} time
+     * @return {?}
+     */
+    TimelineBuilder.prototype.forwardTime = function (time) {
+        this.applyStylesToKeyframe();
+        this.duration = time;
+        this._loadKeyframe();
+    };
+    /**
+     * @param {?} prop
+     * @param {?} value
+     * @return {?}
+     */
+    TimelineBuilder.prototype._updateStyle = function (prop, value) {
+        this._localTimelineStyles[prop] = value;
+        this._globalTimelineStyles[prop] = value;
+        this._styleSummary[prop] = { time: this.currentTime, value: value };
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.allowOnlyTimelineStyles = function () { return this._currentEmptyStepKeyframe !== this._currentKeyframe; };
+    /**
+     * @param {?} easing
+     * @return {?}
+     */
+    TimelineBuilder.prototype.applyEmptyStep = function (easing) {
+        var _this = this;
+        if (easing) {
+            this._previousKeyframe['easing'] = easing;
+        }
+        // special case for animate(duration):
+        // all missing styles are filled with a `*` value then
+        // if any destination styles are filled in later on the same
+        // keyframe then they will override the overridden styles
+        // We use `_globalTimelineStyles` here because there may be
+        // styles in previous keyframes that are not present in this timeline
+        Object.keys(this._globalTimelineStyles).forEach(function (prop) {
+            _this._backFill[prop] = _this._globalTimelineStyles[prop] || AUTO_STYLE;
+            _this._currentKeyframe[prop] = AUTO_STYLE;
+        });
+        this._currentEmptyStepKeyframe = this._currentKeyframe;
+    };
+    /**
+     * @param {?} input
+     * @param {?} easing
+     * @param {?} errors
+     * @param {?=} options
+     * @return {?}
+     */
+    TimelineBuilder.prototype.setStyles = function (input, easing, errors, options) {
+        var _this = this;
+        if (easing) {
+            this._previousKeyframe['easing'] = easing;
+        }
+        var /** @type {?} */ params = (options && options.params) || {};
+        var /** @type {?} */ styles = flattenStyles(input, this._globalTimelineStyles);
+        Object.keys(styles).forEach(function (prop) {
+            var /** @type {?} */ val = interpolateParams(styles[prop], params, errors);
+            _this._pendingStyles[prop] = val;
+            if (!_this._localTimelineStyles.hasOwnProperty(prop)) {
+                _this._backFill[prop] = _this._globalTimelineStyles.hasOwnProperty(prop) ?
+                    _this._globalTimelineStyles[prop] :
+                    AUTO_STYLE;
+            }
+            _this._updateStyle(prop, val);
+        });
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.applyStylesToKeyframe = function () {
+        var _this = this;
+        var /** @type {?} */ styles = this._pendingStyles;
+        var /** @type {?} */ props = Object.keys(styles);
+        if (props.length == 0)
+            return;
+        this._pendingStyles = {};
+        props.forEach(function (prop) {
+            var /** @type {?} */ val = styles[prop];
+            _this._currentKeyframe[prop] = val;
+        });
+        Object.keys(this._localTimelineStyles).forEach(function (prop) {
+            if (!_this._currentKeyframe.hasOwnProperty(prop)) {
+                _this._currentKeyframe[prop] = _this._localTimelineStyles[prop];
+            }
+        });
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.snapshotCurrentStyles = function () {
+        var _this = this;
+        Object.keys(this._localTimelineStyles).forEach(function (prop) {
+            var /** @type {?} */ val = _this._localTimelineStyles[prop];
+            _this._pendingStyles[prop] = val;
+            _this._updateStyle(prop, val);
+        });
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.getFinalKeyframe = function () { return this._keyframes.get(this.duration); };
+    Object.defineProperty(TimelineBuilder.prototype, "properties", {
+        /**
+         * @return {?}
+         */
+        get: function () {
+            var /** @type {?} */ properties = [];
+            for (var /** @type {?} */ prop in this._currentKeyframe) {
+                properties.push(prop);
+            }
+            return properties;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @param {?} timeline
+     * @return {?}
+     */
+    TimelineBuilder.prototype.mergeTimelineCollectedStyles = function (timeline) {
+        var _this = this;
+        Object.keys(timeline._styleSummary).forEach(function (prop) {
+            var /** @type {?} */ details0 = _this._styleSummary[prop];
+            var /** @type {?} */ details1 = timeline._styleSummary[prop];
+            if (!details0 || details1.time > details0.time) {
+                _this._updateStyle(prop, details1.value);
+            }
+        });
+    };
+    /**
+     * @return {?}
+     */
+    TimelineBuilder.prototype.buildKeyframes = function () {
+        var _this = this;
+        this.applyStylesToKeyframe();
+        var /** @type {?} */ preStyleProps = new Set();
+        var /** @type {?} */ postStyleProps = new Set();
+        var /** @type {?} */ isEmpty = this._keyframes.size === 1 && this.duration === 0;
+        var /** @type {?} */ finalKeyframes = [];
+        this._keyframes.forEach(function (keyframe, time) {
+            var /** @type {?} */ finalKeyframe = copyStyles(keyframe, true);
+            Object.keys(finalKeyframe).forEach(function (prop) {
+                var /** @type {?} */ value = finalKeyframe[prop];
+                if (value == ɵPRE_STYLE) {
+                    preStyleProps.add(prop);
+                }
+                else if (value == AUTO_STYLE) {
+                    postStyleProps.add(prop);
+                }
+            });
+            if (!isEmpty) {
+                finalKeyframe['offset'] = time / _this.duration;
+            }
+            finalKeyframes.push(finalKeyframe);
+        });
+        var /** @type {?} */ preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];
+        var /** @type {?} */ postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];
+        // special case for a 0-second animation (which is designed just to place styles onscreen)
+        if (isEmpty) {
+            var /** @type {?} */ kf0 = finalKeyframes[0];
+            var /** @type {?} */ kf1 = copyObj(kf0);
+            kf0['offset'] = 0;
+            kf1['offset'] = 1;
+            finalKeyframes = [kf0, kf1];
+        }
+        return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);
+    };
+    return TimelineBuilder;
+}());
+var SubTimelineBuilder = (function (_super) {
+    tslib_1.__extends(SubTimelineBuilder, _super);
+    /**
+     * @param {?} element
+     * @param {?} keyframes
+     * @param {?} preStyleProps
+     * @param {?} postStyleProps
+     * @param {?} timings
+     * @param {?=} _stretchStartingKeyframe
+     */
+    function SubTimelineBuilder(element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe) {
+        if (_stretchStartingKeyframe === void 0) { _stretchStartingKeyframe = false; }
+        var _this = _super.call(this, element, timings.delay) || this;
+        _this.element = element;
+        _this.keyframes = keyframes;
+        _this.preStyleProps = preStyleProps;
+        _this.postStyleProps = postStyleProps;
+        _this._stretchStartingKeyframe = _stretchStartingKeyframe;
+        _this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };
+        return _this;
+    }
+    /**
+     * @return {?}
+     */
+    SubTimelineBuilder.prototype.containsAnimation = function () { return this.keyframes.length > 1; };
+    /**
+     * @return {?}
+     */
+    SubTimelineBuilder.prototype.buildKeyframes = function () {
+        var /** @type {?} */ keyframes = this.keyframes;
+        var _a = this.timings, delay = _a.delay, duration = _a.duration, easing = _a.easing;
+        if (this._stretchStartingKeyframe && delay) {
+            var /** @type {?} */ newKeyframes = [];
+            var /** @type {?} */ totalTime = duration + delay;
+            var /** @type {?} */ startingGap = delay / totalTime;
+            // the original starting keyframe now starts once the delay is done
+            var /** @type {?} */ newFirstKeyframe = copyStyles(keyframes[0], false);
+            newFirstKeyframe['offset'] = 0;
+            newKeyframes.push(newFirstKeyframe);
+            var /** @type {?} */ oldFirstKeyframe = copyStyles(keyframes[0], false);
+            oldFirstKeyframe['offset'] = roundOffset(startingGap);
+            newKeyframes.push(oldFirstKeyframe);
+            /*
+              When the keyframe is stretched then it means that the delay before the animation
+              starts is gone. Instead the first keyframe is placed at the start of the animation
+              and it is then copied to where it starts when the original delay is over. This basically
+              means nothing animates during that delay, but the styles are still renderered. For this
+              to work the original offset values that exist in the original keyframes must be "warped"
+              so that they can take the new keyframe + delay into account.
+      
+              delay=1000, duration=1000, keyframes = 0 .5 1
+      
+              turns into
+      
+              delay=0, duration=2000, keyframes = 0 .33 .66 1
+             */
+            // offsets between 1 ... n -1 are all warped by the keyframe stretch
+            var /** @type {?} */ limit = keyframes.length - 1;
+            for (var /** @type {?} */ i = 1; i <= limit; i++) {
+                var /** @type {?} */ kf = copyStyles(keyframes[i], false);
+                var /** @type {?} */ oldOffset = (kf['offset']);
+                var /** @type {?} */ timeAtKeyframe = delay + oldOffset * duration;
+                kf['offset'] = roundOffset(timeAtKeyframe / totalTime);
+                newKeyframes.push(kf);
+            }
+            // the new starting keyframe should be added at the start
+            duration = totalTime;
+            delay = 0;
+            easing = '';
+            keyframes = newKeyframes;
+        }
+        return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);
+    };
+    return SubTimelineBuilder;
+}(TimelineBuilder));
+/**
+ * @param {?} offset
+ * @param {?=} decimalPoints
+ * @return {?}
+ */
+function roundOffset(offset, decimalPoints) {
+    if (decimalPoints === void 0) { decimalPoints = 3; }
+    var /** @type {?} */ mult = Math.pow(10, decimalPoints - 1);
+    return Math.round(offset * mult) / mult;
+}
+/**
+ * @param {?} input
+ * @param {?} allStyles
+ * @return {?}
+ */
+function flattenStyles(input, allStyles) {
+    var /** @type {?} */ styles = {};
+    var /** @type {?} */ allProperties;
+    input.forEach(function (token) {
+        if (token === '*') {
+            allProperties = allProperties || Object.keys(allStyles);
+            allProperties.forEach(function (prop) { styles[prop] = AUTO_STYLE; });
+        }
+        else {
+            copyStyles(/** @type {?} */ (token), false, styles);
+        }
+    });
+    return styles;
+}
+/**
+ * @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
+ */
+var Animation = (function () {
+    /**
+     * @param {?} _driver
+     * @param {?} input
+     */
+    function Animation(_driver, input) {
+        this._driver = _driver;
+        var errors = [];
+        var ast = buildAnimationAst(input, errors);
+        if (errors.length) {
+            var errorMessage = "animation validation failed:\n" + errors.join("\n");
+            throw new Error(errorMessage);
+        }
+        this._animationAst = ast;
+    }
+    /**
+     * @param {?} element
+     * @param {?} startingStyles
+     * @param {?} destinationStyles
+     * @param {?} options
+     * @param {?=} subInstructions
+     * @return {?}
+     */
+    Animation.prototype.buildTimelines = function (element, startingStyles, destinationStyles, options, subInstructions) {
+        var /** @type {?} */ start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : (startingStyles);
+        var /** @type {?} */ dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : (destinationStyles);
+        var /** @type {?} */ errors = [];
+        subInstructions = subInstructions || new ElementInstructionMap();
+        var /** @type {?} */ result = buildAnimationTimelines(this._driver, element, this._animationAst, start, dest, options, subInstructions, errors);
+        if (errors.length) {
+            var /** @type {?} */ errorMessage = "animation building failed:\n" + errors.join("\n");
+            throw new Error(errorMessage);
+        }
+        return result;
+    };
+    return Animation;
+}());
+/**
+ * @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
+ */
+/**
+ * @experimental Animation support is experimental.
+ */
+/**
+ * @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
+ */ var AnimationStyleNormalizer = (function () {
+    function AnimationStyleNormalizer() {
+    }
+    return AnimationStyleNormalizer;
+}());
+/**
+ * @experimental Animation support is experimental.
+ */
+var NoopAnimationStyleNormalizer = (function () {
+    function NoopAnimationStyleNormalizer() {
+    }
+    NoopAnimationStyleNormalizer.prototype.normalizePropertyName = function (propertyName, errors) { return propertyName; };
+    NoopAnimationStyleNormalizer.prototype.normalizeStyleValue = function (userProvidedProperty, normalizedProperty, value, errors) {
+        return value;
+    };
+    return NoopAnimationStyleNormalizer;
+}());
+/**
+ * @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
+ */
+var WebAnimationsStyleNormalizer = (function (_super) {
+    tslib_1.__extends(WebAnimationsStyleNormalizer, _super);
+    function WebAnimationsStyleNormalizer() {
+        return _super !== null && _super.apply(this, arguments) || this;
+    }
+    /**
+     * @param {?} propertyName
+     * @param {?} errors
+     * @return {?}
+     */
+    WebAnimationsStyleNormalizer.prototype.normalizePropertyName = function (propertyName, errors) {
+        return dashCaseToCamelCase(propertyName);
+    };
+    /**
+     * @param {?} userProvidedProperty
+     * @param {?} normalizedProperty
+     * @param {?} value
+     * @param {?} errors
+     * @return {?}
+     */
+    WebAnimationsStyleNormalizer.prototype.normalizeStyleValue = function (userProvidedProperty, normalizedProperty, value, errors) {
+        var /** @type {?} */ unit = '';
+        var /** @type {?} */ strVal = value.toString().trim();
+        if (DIMENSIONAL_PROP_MAP[normalizedProperty] && value !== 0 && value !== '0') {
+            if (typeof value === 'number') {
+                unit = 'px';
+            }
+            else {
+                var /** @type {?} */ valAndSuffixMatch = value.match(/^[+-]?[\d\.]+([a-z]*)$/);
+                if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {
+                    errors.push("Please provide a CSS unit value for " + userProvidedProperty + ":" + value);
+                }
+            }
+        }
+        return strVal + unit;
+    };
+    return WebAnimationsStyleNormalizer;
+}(AnimationStyleNormalizer));
+var DIMENSIONAL_PROP_MAP = makeBooleanMap('width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective'
+    .split(','));
+/**
+ * @param {?} keys
+ * @return {?}
+ */
+function makeBooleanMap(keys) {
+    var /** @type {?} */ map = {};
+    keys.forEach(function (key) { return map[key] = true

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/stepper.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/stepper.es5.js.map b/node_modules/@angular/cdk/esm5/stepper.es5.js.map
new file mode 100644
index 0000000..a8a3d5a
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/stepper.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"stepper.es5.js","sources":["../../packages/cdk/esm5/stepper/step-label.js","../../packages/cdk/esm5/stepper/stepper.js","../../packages/cdk/esm5/stepper/stepper-button.js","../../packages/cdk/esm5/stepper/stepper-module.js","../../packages/cdk/esm5/stepper/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, TemplateRef } from '@angular/core';\nvar CdkStepLabel = (function () {\n    /**\n     * @param {?} template\n     */\n    function CdkStepLabel(template) {\n        this.template = template;\n    }\n    CdkStepLabel.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkStepLabel]',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkStepLabel.ctorParameters = function () { return [\n        { typ
 e: TemplateRef, },\n    ]; };\n    return CdkStepLabel;\n}());\nexport { CdkStepLabel };\nfunction CdkStepLabel_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkStepLabel.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStepLabel.ctorParameters;\n    /** @type {?} */\n    CdkStepLabel.prototype.template;\n}\n//# sourceMappingURL=step-label.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 { ContentChildren, EventEmitter, Input, Output, Directive, Component, ContentChild, ViewChild, TemplateRef, ViewEncapsulation, Optional, Inject, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core';\nimport { LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { CdkStepLabel } from './step-label';\nimport { coerceBooleanProperty } fro
 m '@angular/cdk/coercion';\nimport { Directionality } from '@angular/cdk/bidi';\n/**\n * Used to generate unique ID for each stepper component.\n */\nvar nextId = 0;\n/**\n * Change event emitted on selection changes.\n */\nvar StepperSelectionEvent = (function () {\n    function StepperSelectionEvent() {\n    }\n    return StepperSelectionEvent;\n}());\nexport { StepperSelectionEvent };\nfunction StepperSelectionEvent_tsickle_Closure_declarations() {\n    /**\n     * Index of the step now selected.\n     * @type {?}\n     */\n    StepperSelectionEvent.prototype.selectedIndex;\n    /**\n     * Index of the step previously selected.\n     * @type {?}\n     */\n    StepperSelectionEvent.prototype.previouslySelectedIndex;\n    /**\n     * The step instance now selected.\n     * @type {?}\n     */\n    StepperSelectionEvent.prototype.selectedStep;\n    /**\n     * The step instance previously selected.\n     * @type {?}\n     */\n    StepperSelectionEvent.prototype.previouslySelectedSte
 p;\n}\nvar CdkStep = (function () {\n    /**\n     * @param {?} _stepper\n     */\n    function CdkStep(_stepper) {\n        this._stepper = _stepper;\n        /**\n         * Whether user has seen the expanded step content or not.\n         */\n        this.interacted = false;\n        this._editable = true;\n        this._optional = false;\n        this._customCompleted = null;\n    }\n    Object.defineProperty(CdkStep.prototype, \"editable\", {\n        /**\n         * @return {?}\n         */\n        get: function () { return this._editable; },\n        /**\n         * @param {?} value\n         * @return {?}\n         */\n        set: function (value) {\n            this._editable = coerceBooleanProperty(value);\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(CdkStep.prototype, \"optional\", {\n        /**\n         * Whether the completion of step is optional or not.\n         * @return {?}\n         */\n        get: func
 tion () { return this._optional; },\n        /**\n         * @param {?} value\n         * @return {?}\n         */\n        set: function (value) {\n            this._optional = coerceBooleanProperty(value);\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(CdkStep.prototype, \"completed\", {\n        /**\n         * Return whether step is completed or not.\n         * @return {?}\n         */\n        get: function () {\n            return this._customCompleted == null ? this._defaultCompleted : this._customCompleted;\n        },\n        /**\n         * @param {?} value\n         * @return {?}\n         */\n        set: function (value) {\n            this._customCompleted = coerceBooleanProperty(value);\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(CdkStep.prototype, \"_defaultCompleted\", {\n        /**\n         * @return {?}\n         */\n        get: function () {\n  
           return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Selects this step component.\n     * @return {?}\n     */\n    CdkStep.prototype.select = function () {\n        this._stepper.selected = this;\n    };\n    /**\n     * @return {?}\n     */\n    CdkStep.prototype.ngOnChanges = function () {\n        // Since basically all inputs of the MdStep get proxied through the view down to the\n        // underlying MdStepHeader, we have to make sure that change detection runs correctly.\n        this._stepper._stateChanged();\n    };\n    CdkStep.decorators = [\n        { type: Component, args: [{selector: 'cdk-step',\n                    exportAs: 'cdkStep',\n                    template: \"<ng-template><ng-content></ng-content></ng-template>\",\n                    encapsulation: ViewEncapsulation.None,\n                    preserveWhitespaces: false,\n 
                    changeDetection: ChangeDetectionStrategy.OnPush,\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkStep.ctorParameters = function () { return [\n        { type: CdkStepper, decorators: [{ type: Inject, args: [forwardRef(function () { return CdkStepper; }),] },] },\n    ]; };\n    CdkStep.propDecorators = {\n        'stepLabel': [{ type: ContentChild, args: [CdkStepLabel,] },],\n        'content': [{ type: ViewChild, args: [TemplateRef,] },],\n        'stepControl': [{ type: Input },],\n        'label': [{ type: Input },],\n        'editable': [{ type: Input },],\n        'optional': [{ type: Input },],\n        'completed': [{ type: Input },],\n    };\n    return CdkStep;\n}());\nexport { CdkStep };\nfunction CdkStep_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkStep.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStep.ctorParameters;\n    /** @type {?} */\n    CdkStep.propDecorators;\n    /*
 *\n     * Template for step label if it exists.\n     * @type {?}\n     */\n    CdkStep.prototype.stepLabel;\n    /**\n     * Template for step content.\n     * @type {?}\n     */\n    CdkStep.prototype.content;\n    /**\n     * The top level abstract control of the step.\n     * @type {?}\n     */\n    CdkStep.prototype.stepControl;\n    /**\n     * Whether user has seen the expanded step content or not.\n     * @type {?}\n     */\n    CdkStep.prototype.interacted;\n    /**\n     * Label of the step.\n     * @type {?}\n     */\n    CdkStep.prototype.label;\n    /** @type {?} */\n    CdkStep.prototype._editable;\n    /** @type {?} */\n    CdkStep.prototype._optional;\n    /** @type {?} */\n    CdkStep.prototype._customCompleted;\n    /** @type {?} */\n    CdkStep.prototype._stepper;\n}\nvar CdkStepper = (function () {\n    /**\n     * @param {?} _dir\n     * @param {?} _changeDetectorRef\n     */\n    function CdkStepper(_dir, _changeDetectorRef) {\n        this._dir = _dir;\n      
   this._changeDetectorRef = _changeDetectorRef;\n        this._linear = false;\n        this._selectedIndex = 0;\n        /**\n         * Event emitted when the selected step has changed.\n         */\n        this.selectionChange = new EventEmitter();\n        /**\n         * The index of the step that the focus can be set.\n         */\n        this._focusIndex = 0;\n        this._groupId = nextId++;\n    }\n    Object.defineProperty(CdkStepper.prototype, \"linear\", {\n        /**\n         * Whether the validity of previous steps should be checked or not.\n         * @return {?}\n         */\n        get: function () { return this._linear; },\n        /**\n         * @param {?} value\n         * @return {?}\n         */\n        set: function (value) { this._linear = coerceBooleanProperty(value); },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(CdkStepper.prototype, \"selectedIndex\", {\n        /**\n         * The index of the select
 ed step.\n         * @return {?}\n         */\n        get: function () { return this._selectedIndex; },\n        /**\n         * @param {?} index\n         * @return {?}\n         */\n        set: function (index) {\n            if (this._anyControlsInvalid(index)\n                || index < this._selectedIndex && !this._steps.toArray()[index].editable) {\n                // remove focus from clicked step header if the step is not able to be selected\n                this._stepHeader.toArray()[index].nativeElement.blur();\n            }\n            else if (this._selectedIndex != index) {\n                this._emitStepperSelectionEvent(index);\n                this._focusIndex = this._selectedIndex;\n            }\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(CdkStepper.prototype, \"selected\", {\n        /**\n         * The step that is selected.\n         * @return {?}\n         */\n        get: function () { return this.
 _steps.toArray()[this.selectedIndex]; },\n        /**\n         * @param {?} step\n         * @return {?}\n         */\n        set: function (step) {\n            this.selectedIndex = this._steps.toArray().indexOf(step);\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Selects and focuses the next step in list.\n     * @return {?}\n     */\n    CdkStepper.prototype.next = function () {\n        this.selectedIndex = Math.min(this._selectedIndex + 1, this._steps.length - 1);\n    };\n    /**\n     * Selects and focuses the previous step in list.\n     * @return {?}\n     */\n    CdkStepper.prototype.previous = function () {\n        this.selectedIndex = Math.max(this._selectedIndex - 1, 0);\n    };\n    /**\n     * Returns a unique id for each step label element.\n     * @param {?} i\n     * @return {?}\n     */\n    CdkStepper.prototype._getStepLabelId = function (i) {\n        return \"mat-step-label-\" + this._groupId + \"-\" + i;\n    }
 ;\n    /**\n     * Returns unique id for each step content element.\n     * @param {?} i\n     * @return {?}\n     */\n    CdkStepper.prototype._getStepContentId = function (i) {\n        return \"mat-step-content-\" + this._groupId + \"-\" + i;\n    };\n    /**\n     * Marks the component to be change detected.\n     * @return {?}\n     */\n    CdkStepper.prototype._stateChanged = function () {\n        this._changeDetectorRef.markForCheck();\n    };\n    /**\n     * Returns position state of the step with the given index.\n     * @param {?} index\n     * @return {?}\n     */\n    CdkStepper.prototype._getAnimationDirection = function (index) {\n        var /** @type {?} */ position = index - this._selectedIndex;\n        if (position < 0) {\n            return this._layoutDirection() === 'rtl' ? 'next' : 'previous';\n        }\n        else if (position > 0) {\n            return this._layoutDirection() === 'rtl' ? 'previous' : 'next';\n        }\n        return 'current';\n    };
 \n    /**\n     * Returns the type of icon to be displayed.\n     * @param {?} index\n     * @return {?}\n     */\n    CdkStepper.prototype._getIndicatorType = function (index) {\n        var /** @type {?} */ step = this._steps.toArray()[index];\n        if (!step.completed || this._selectedIndex == index) {\n            return 'number';\n        }\n        else {\n            return step.editable ? 'edit' : 'done';\n        }\n    };\n    /**\n     * @param {?} newIndex\n     * @return {?}\n     */\n    CdkStepper.prototype._emitStepperSelectionEvent = function (newIndex) {\n        var /** @type {?} */ stepsArray = this._steps.toArray();\n        this.selectionChange.emit({\n            selectedIndex: newIndex,\n            previouslySelectedIndex: this._selectedIndex,\n            selectedStep: stepsArray[newIndex],\n            previouslySelectedStep: stepsArray[this._selectedIndex],\n        });\n        this._selectedIndex = newIndex;\n        this._stateChanged();\n    };\n  
   /**\n     * @param {?} event\n     * @return {?}\n     */\n    CdkStepper.prototype._onKeydown = function (event) {\n        switch (event.keyCode) {\n            case RIGHT_ARROW:\n                if (this._layoutDirection() === 'rtl') {\n                    this._focusPreviousStep();\n                }\n                else {\n                    this._focusNextStep();\n                }\n                break;\n            case LEFT_ARROW:\n                if (this._layoutDirection() === 'rtl') {\n                    this._focusNextStep();\n                }\n                else {\n                    this._focusPreviousStep();\n                }\n                break;\n            case SPACE:\n            case ENTER:\n                this.selectedIndex = this._focusIndex;\n                break;\n            default:\n                // Return to avoid calling preventDefault on keys that are not explicitly handled.\n                return;\n        }\n        event.preventDe
 fault();\n    };\n    /**\n     * @return {?}\n     */\n    CdkStepper.prototype._focusNextStep = function () {\n        this._focusStep((this._focusIndex + 1) % this._steps.length);\n    };\n    /**\n     * @return {?}\n     */\n    CdkStepper.prototype._focusPreviousStep = function () {\n        this._focusStep((this._focusIndex + this._steps.length - 1) % this._steps.length);\n    };\n    /**\n     * @param {?} index\n     * @return {?}\n     */\n    CdkStepper.prototype._focusStep = function (index) {\n        this._focusIndex = index;\n        this._stepHeader.toArray()[this._focusIndex].nativeElement.focus();\n    };\n    /**\n     * @param {?} index\n     * @return {?}\n     */\n    CdkStepper.prototype._anyControlsInvalid = function (index) {\n        this._steps.toArray()[this._selectedIndex].interacted = true;\n        if (this._linear && index >= 0) {\n            return this._steps.toArray().slice(0, index).some(function (step) { return step.stepControl.invalid; });\n   
      }\n        return false;\n    };\n    /**\n     * @return {?}\n     */\n    CdkStepper.prototype._layoutDirection = function () {\n        return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n    };\n    CdkStepper.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkStepper]',\n                    exportAs: 'cdkStepper',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkStepper.ctorParameters = function () { return [\n        { type: Directionality, decorators: [{ type: Optional },] },\n        { type: ChangeDetectorRef, },\n    ]; };\n    CdkStepper.propDecorators = {\n        '_steps': [{ type: ContentChildren, args: [CdkStep,] },],\n        'linear': [{ type: Input },],\n        'selectedIndex': [{ type: Input },],\n        'selected': [{ type: Input },],\n        'selectionChange': [{ type: Output },],\n    };\n    return CdkStepper;\n}());\nexport { CdkStepper };\nfunction CdkStepper_tsickle_Closure
 _declarations() {\n    /** @type {?} */\n    CdkStepper.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStepper.ctorParameters;\n    /** @type {?} */\n    CdkStepper.propDecorators;\n    /**\n     * The list of step components that the stepper is holding.\n     * @type {?}\n     */\n    CdkStepper.prototype._steps;\n    /**\n     * The list of step headers of the steps in the stepper.\n     * @type {?}\n     */\n    CdkStepper.prototype._stepHeader;\n    /** @type {?} */\n    CdkStepper.prototype._linear;\n    /** @type {?} */\n    CdkStepper.prototype._selectedIndex;\n    /**\n     * Event emitted when the selected step has changed.\n     * @type {?}\n     */\n    CdkStepper.prototype.selectionChange;\n    /**\n     * The index of the step that the focus can be set.\n     * @type {?}\n     */\n    CdkStepper.prototype._focusIndex;\n    /**\n     * Used to track unique ID for each stepper component.\n     * @type {?}\n     */\n    CdkStepper.prototype._gr
 oupId;\n    /** @type {?} */\n    CdkStepper.prototype._dir;\n    /** @type {?} */\n    CdkStepper.prototype._changeDetectorRef;\n}\n//# sourceMappingURL=stepper.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 } from '@angular/core';\nimport { CdkStepper } from './stepper';\n/**\n * Button that moves to the next step in a stepper workflow.\n */\nvar CdkStepperNext = (function () {\n    /**\n     * @param {?} _stepper\n     */\n    function CdkStepperNext(_stepper) {\n        this._stepper = _stepper;\n    }\n    CdkStepperNext.decorators = [\n        { type: Directive, args: [{\n                    selector: 'button[cdkStepperNext]',\n                    host: { '(click)': '_stepper.next()' }\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkStepperNext.ctorParameters 
 = function () { return [\n        { type: CdkStepper, },\n    ]; };\n    return CdkStepperNext;\n}());\nexport { CdkStepperNext };\nfunction CdkStepperNext_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkStepperNext.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStepperNext.ctorParameters;\n    /** @type {?} */\n    CdkStepperNext.prototype._stepper;\n}\n/**\n * Button that moves to the previous step in a stepper workflow.\n */\nvar CdkStepperPrevious = (function () {\n    /**\n     * @param {?} _stepper\n     */\n    function CdkStepperPrevious(_stepper) {\n        this._stepper = _stepper;\n    }\n    CdkStepperPrevious.decorators = [\n        { type: Directive, args: [{\n                    selector: 'button[cdkStepperPrevious]',\n                    host: { '(click)': '_stepper.previous()' }\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkStepperPrevious.ctorParameters = function () { return [\n        { t
 ype: CdkStepper, },\n    ]; };\n    return CdkStepperPrevious;\n}());\nexport { CdkStepperPrevious };\nfunction CdkStepperPrevious_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkStepperPrevious.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStepperPrevious.ctorParameters;\n    /** @type {?} */\n    CdkStepperPrevious.prototype._stepper;\n}\n//# sourceMappingURL=stepper-button.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 { CdkStepper, CdkStep } from './stepper';\nimport { CommonModule } from '@angular/common';\nimport { CdkStepLabel } from './step-label';\nimport { CdkStepperNext, CdkStepperPrevious } from './stepper-button';\nimport { BidiModule } from '@angular/cdk/bidi';\nvar CdkStepperModule = (function () {\n    fu
 nction CdkStepperModule() {\n    }\n    CdkStepperModule.decorators = [\n        { type: NgModule, args: [{\n                    imports: [BidiModule, CommonModule],\n                    exports: [CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious],\n                    declarations: [CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious]\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkStepperModule.ctorParameters = function () { return []; };\n    return CdkStepperModule;\n}());\nexport { CdkStepperModule };\nfunction CdkStepperModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkStepperModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStepperModule.ctorParameters;\n}\n//# sourceMappingURL=stepper-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { StepperSelectionEvent, CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious, CdkS
 tepperModule } 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/esm5/table.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/table.es5.js b/node_modules/@angular/cdk/esm5/table.es5.js
new file mode 100644
index 0000000..2c78e22
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/table.es5.js
@@ -0,0 +1,819 @@
+/**
+ * @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 { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, ElementRef, Input, IterableDiffers, NgModule, Renderer2, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation, isDevMode } from '@angular/core';
+import { __extends } from 'tslib';
+import * as tslib_1 from 'tslib';
+import { takeUntil } from 'rxjs/operator/takeUntil';
+import { BehaviorSubject } from 'rxjs/BehaviorSubject';
+import { Subject } from 'rxjs/Subject';
+import { CommonModule } from '@angular/common';
+import { DataSource } from '@angular/cdk/collections';
+
+/**
+ * The row template that can be used by the mat-table. Should not be used outside of the
+ * material library.
+ */
+var CDK_ROW_TEMPLATE = "<ng-container cdkCellOutlet></ng-container>";
+/**
+ * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs
+ * for changes and notifying the table.
+ * @abstract
+ */
+var BaseRowDef = (function () {
+    /**
+     * @param {?} template
+     * @param {?} _differs
+     */
+    function BaseRowDef(template, _differs) {
+        this.template = template;
+        this._differs = _differs;
+    }
+    /**
+     * @param {?} changes
+     * @return {?}
+     */
+    BaseRowDef.prototype.ngOnChanges = function (changes) {
+        // Create a new columns differ if one does not yet exist. Initialize it based on initial value
+        // of the columns property or an empty array if none is provided.
+        var /** @type {?} */ columns = changes['columns'].currentValue || [];
+        if (!this._columnsDiffer) {
+            this._columnsDiffer = this._differs.find(columns).create();
+            this._columnsDiffer.diff(columns);
+        }
+    };
+    /**
+     * Returns the difference between the current columns and the columns from the last diff, or null
+     * if there is no difference.
+     * @return {?}
+     */
+    BaseRowDef.prototype.getColumnsDiff = function () {
+        return this._columnsDiffer.diff(this.columns);
+    };
+    return BaseRowDef;
+}());
+/**
+ * Header row definition for the CDK table.
+ * Captures the header row's template and other header properties such as the columns to display.
+ */
+var CdkHeaderRowDef = (function (_super) {
+    __extends(CdkHeaderRowDef, _super);
+    /**
+     * @param {?} template
+     * @param {?} _differs
+     */
+    function CdkHeaderRowDef(template, _differs) {
+        return _super.call(this, template, _differs) || this;
+    }
+    CdkHeaderRowDef.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdkHeaderRowDef]',
+                    inputs: ['columns: cdkHeaderRowDef'],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkHeaderRowDef.ctorParameters = function () { return [
+        { type: TemplateRef, },
+        { type: IterableDiffers, },
+    ]; };
+    return CdkHeaderRowDef;
+}(BaseRowDef));
+/**
+ * Data row definition for the CDK table.
+ * Captures the header row's template and other row properties such as the columns to display and
+ * a when predicate that describes when this row should be used.
+ */
+var CdkRowDef = (function (_super) {
+    __extends(CdkRowDef, _super);
+    /**
+     * @param {?} template
+     * @param {?} _differs
+     */
+    function CdkRowDef(template, _differs) {
+        return _super.call(this, template, _differs) || this;
+    }
+    CdkRowDef.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdkRowDef]',
+                    inputs: ['columns: cdkRowDefColumns', 'when: cdkRowDefWhen'],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkRowDef.ctorParameters = function () { return [
+        { type: TemplateRef, },
+        { type: IterableDiffers, },
+    ]; };
+    return CdkRowDef;
+}(BaseRowDef));
+/**
+ * Outlet for rendering cells inside of a row or header row.
+ * \@docs-private
+ */
+var CdkCellOutlet = (function () {
+    /**
+     * @param {?} _viewContainer
+     */
+    function CdkCellOutlet(_viewContainer) {
+        this._viewContainer = _viewContainer;
+        CdkCellOutlet.mostRecentCellOutlet = this;
+    }
+    CdkCellOutlet.decorators = [
+        { type: Directive, args: [{ selector: '[cdkCellOutlet]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkCellOutlet.ctorParameters = function () { return [
+        { type: ViewContainerRef, },
+    ]; };
+    return CdkCellOutlet;
+}());
+/**
+ * Header template container that contains the cell outlet. Adds the right class and role.
+ */
+var CdkHeaderRow = (function () {
+    function CdkHeaderRow() {
+    }
+    CdkHeaderRow.decorators = [
+        { type: Component, args: [{selector: 'cdk-header-row',
+                    template: CDK_ROW_TEMPLATE,
+                    host: {
+                        'class': 'cdk-header-row',
+                        'role': 'row',
+                    },
+                    changeDetection: ChangeDetectionStrategy.OnPush,
+                    encapsulation: ViewEncapsulation.None,
+                    preserveWhitespaces: false,
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkHeaderRow.ctorParameters = function () { return []; };
+    return CdkHeaderRow;
+}());
+/**
+ * Data row template container that contains the cell outlet. Adds the right class and role.
+ */
+var CdkRow = (function () {
+    function CdkRow() {
+    }
+    CdkRow.decorators = [
+        { type: Component, args: [{selector: 'cdk-row',
+                    template: CDK_ROW_TEMPLATE,
+                    host: {
+                        'class': 'cdk-row',
+                        'role': 'row',
+                    },
+                    changeDetection: ChangeDetectionStrategy.OnPush,
+                    encapsulation: ViewEncapsulation.None,
+                    preserveWhitespaces: false,
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkRow.ctorParameters = function () { return []; };
+    return CdkRow;
+}());
+
+/**
+ * Cell definition for a CDK table.
+ * Captures the template of a column's data row cell as well as cell-specific properties.
+ */
+var CdkCellDef = (function () {
+    /**
+     * @param {?} template
+     */
+    function CdkCellDef(template) {
+        this.template = template;
+    }
+    CdkCellDef.decorators = [
+        { type: Directive, args: [{ selector: '[cdkCellDef]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkCellDef.ctorParameters = function () { return [
+        { type: TemplateRef, },
+    ]; };
+    return CdkCellDef;
+}());
+/**
+ * Header cell definition for a CDK table.
+ * Captures the template of a column's header cell and as well as cell-specific properties.
+ */
+var CdkHeaderCellDef = (function () {
+    /**
+     * @param {?} template
+     */
+    function CdkHeaderCellDef(template) {
+        this.template = template;
+    }
+    CdkHeaderCellDef.decorators = [
+        { type: Directive, args: [{ selector: '[cdkHeaderCellDef]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkHeaderCellDef.ctorParameters = function () { return [
+        { type: TemplateRef, },
+    ]; };
+    return CdkHeaderCellDef;
+}());
+/**
+ * Column definition for the CDK table.
+ * Defines a set of cells available for a table column.
+ */
+var CdkColumnDef = (function () {
+    function CdkColumnDef() {
+    }
+    Object.defineProperty(CdkColumnDef.prototype, "name", {
+        /**
+         * Unique name for this column.
+         * @return {?}
+         */
+        get: function () { return this._name; },
+        /**
+         * @param {?} name
+         * @return {?}
+         */
+        set: function (name) {
+            this._name = name;
+            this.cssClassFriendlyName = name.replace(/[^a-z0-9_-]/ig, '-');
+        },
+        enumerable: true,
+        configurable: true
+    });
+    CdkColumnDef.decorators = [
+        { type: Directive, args: [{ selector: '[cdkColumnDef]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkColumnDef.ctorParameters = function () { return []; };
+    CdkColumnDef.propDecorators = {
+        'name': [{ type: Input, args: ['cdkColumnDef',] },],
+        'cell': [{ type: ContentChild, args: [CdkCellDef,] },],
+        'headerCell': [{ type: ContentChild, args: [CdkHeaderCellDef,] },],
+    };
+    return CdkColumnDef;
+}());
+/**
+ * Header cell template container that adds the right classes and role.
+ */
+var CdkHeaderCell = (function () {
+    /**
+     * @param {?} columnDef
+     * @param {?} elementRef
+     * @param {?} renderer
+     */
+    function CdkHeaderCell(columnDef, elementRef, renderer) {
+        renderer.addClass(elementRef.nativeElement, "cdk-column-" + columnDef.cssClassFriendlyName);
+    }
+    CdkHeaderCell.decorators = [
+        { type: Directive, args: [{
+                    selector: 'cdk-header-cell',
+                    host: {
+                        'class': 'cdk-header-cell',
+                        'role': 'columnheader',
+                    },
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkHeaderCell.ctorParameters = function () { return [
+        { type: CdkColumnDef, },
+        { type: ElementRef, },
+        { type: Renderer2, },
+    ]; };
+    return CdkHeaderCell;
+}());
+/**
+ * Cell template container that adds the right classes and role.
+ */
+var CdkCell = (function () {
+    /**
+     * @param {?} columnDef
+     * @param {?} elementRef
+     * @param {?} renderer
+     */
+    function CdkCell(columnDef, elementRef, renderer) {
+        renderer.addClass(elementRef.nativeElement, "cdk-column-" + columnDef.cssClassFriendlyName);
+    }
+    CdkCell.decorators = [
+        { type: Directive, args: [{
+                    selector: 'cdk-cell',
+                    host: {
+                        'class': 'cdk-cell',
+                        'role': 'gridcell',
+                    },
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkCell.ctorParameters = function () { return [
+        { type: CdkColumnDef, },
+        { type: ElementRef, },
+        { type: Renderer2, },
+    ]; };
+    return CdkCell;
+}());
+
+/**
+ * Returns an error to be thrown when attempting to find an unexisting column.
+ * \@docs-private
+ * @param {?} id Id whose lookup failed.
+ * @return {?}
+ */
+function getTableUnknownColumnError(id) {
+    return Error("cdk-table: Could not find column with id \"" + id + "\".");
+}
+/**
+ * Returns an error to be thrown when two column definitions have the same name.
+ * \@docs-private
+ * @param {?} name
+ * @return {?}
+ */
+function getTableDuplicateColumnNameError(name) {
+    return Error("cdk-table: Duplicate column definition name provided: \"" + name + "\".");
+}
+/**
+ * Returns an error to be thrown when there are multiple rows that are missing a when function.
+ * \@docs-private
+ * @return {?}
+ */
+function getTableMultipleDefaultRowDefsError() {
+    return Error("cdk-table: There can only be one default row without a when predicate function.");
+}
+/**
+ * Returns an error to be thrown when there are no matching row defs for a particular set of data.
+ * \@docs-private
+ * @return {?}
+ */
+function getTableMissingMatchingRowDefError() {
+    return Error("cdk-table: Could not find a matching row definition for the provided row data.");
+}
+
+/**
+ * Provides a handle for the table to grab the view container's ng-container to insert data rows.
+ * \@docs-private
+ */
+var RowPlaceholder = (function () {
+    /**
+     * @param {?} viewContainer
+     */
+    function RowPlaceholder(viewContainer) {
+        this.viewContainer = viewContainer;
+    }
+    RowPlaceholder.decorators = [
+        { type: Directive, args: [{ selector: '[rowPlaceholder]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    RowPlaceholder.ctorParameters = function () { return [
+        { type: ViewContainerRef, },
+    ]; };
+    return RowPlaceholder;
+}());
+/**
+ * Provides a handle for the table to grab the view container's ng-container to insert the header.
+ * \@docs-private
+ */
+var HeaderRowPlaceholder = (function () {
+    /**
+     * @param {?} viewContainer
+     */
+    function HeaderRowPlaceholder(viewContainer) {
+        this.viewContainer = viewContainer;
+    }
+    HeaderRowPlaceholder.decorators = [
+        { type: Directive, args: [{ selector: '[headerRowPlaceholder]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    HeaderRowPlaceholder.ctorParameters = function () { return [
+        { type: ViewContainerRef, },
+    ]; };
+    return HeaderRowPlaceholder;
+}());
+/**
+ * The table template that can be used by the mat-table. Should not be used outside of the
+ * material library.
+ */
+var CDK_TABLE_TEMPLATE = "\n  <ng-container headerRowPlaceholder></ng-container>\n  <ng-container rowPlaceholder></ng-container>";
+/**
+ * A data table that connects with a data source to retrieve data of type `T` and renders
+ * a header row and data rows. Updates the rows when new data is provided by the data source.
+ */
+var CdkTable = (function () {
+    /**
+     * @param {?} _differs
+     * @param {?} _changeDetectorRef
+     * @param {?} elementRef
+     * @param {?} renderer
+     * @param {?} role
+     */
+    function CdkTable(_differs, _changeDetectorRef, elementRef, renderer, role) {
+        this._differs = _differs;
+        this._changeDetectorRef = _changeDetectorRef;
+        /**
+         * Subject that emits when the component has been destroyed.
+         */
+        this._onDestroy = new Subject();
+        /**
+         * Latest data provided by the data source through the connect interface.
+         */
+        this._data = [];
+        /**
+         * Map of all the user's defined columns (header and data cell template) identified by name.
+         */
+        this._columnDefsByName = new Map();
+        /**
+         * Stream containing the latest information on what rows are being displayed on screen.
+         * Can be used by the data source to as a heuristic of what data should be provided.
+         */
+        this.viewChange = new BehaviorSubject({ start: 0, end: Number.MAX_VALUE });
+        if (!role) {
+            renderer.setAttribute(elementRef.nativeElement, 'role', 'grid');
+        }
+    }
+    Object.defineProperty(CdkTable.prototype, "trackBy", {
+        /**
+         * @return {?}
+         */
+        get: function () { return this._trackByFn; },
+        /**
+         * Tracking function that will be used to check the differences in data changes. Used similarly
+         * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data
+         * relative to the function to know if a row should be added/removed/moved.
+         * Accepts a function that takes two parameters, `index` and `item`.
+         * @param {?} fn
+         * @return {?}
+         */
+        set: function (fn) {
+            if (isDevMode() &&
+                fn != null && typeof fn !== 'function' && (console) && (console.warn)) {
+                console.warn("trackBy must be a function, but received " + JSON.stringify(fn) + ".");
+            }
+            this._trackByFn = fn;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(CdkTable.prototype, "dataSource", {
+        /**
+         * Provides a stream containing the latest data array to render. Influenced by the table's
+         * stream of view window (what rows are currently on screen).
+         * @return {?}
+         */
+        get: function () { return this._dataSource; },
+        /**
+         * @param {?} dataSource
+         * @return {?}
+         */
+        set: function (dataSource) {
+            if (this._dataSource !== dataSource) {
+                this._switchDataSource(dataSource);
+            }
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    CdkTable.prototype.ngOnInit = function () {
+        // TODO(andrewseguin): Setup a listener for scrolling, emit the calculated view to viewChange
+        this._dataDiffer = this._differs.find([]).create(this._trackByFn);
+    };
+    /**
+     * @return {?}
+     */
+    CdkTable.prototype.ngAfterContentInit = function () {
+        var _this = this;
+        this._cacheColumnDefsByName();
+        this._columnDefs.changes.subscribe(function () { return _this._cacheColumnDefsByName(); });
+        this._renderHeaderRow();
+    };
+    /**
+     * @return {?}
+     */
+    CdkTable.prototype.ngAfterContentChecked = function () {
+        this._renderUpdatedColumns();
+        var /** @type {?} */ defaultRowDefs = this._rowDefs.filter(function (def) { return !def.when; });
+        if (defaultRowDefs.length > 1) {
+            throw getTableMultipleDefaultRowDefsError();
+        }
+        this._defaultRowDef = defaultRowDefs[0];
+        if (this.dataSource && !this._renderChangeSubscription) {
+            this._observeRenderChanges();
+        }
+    };
+    /**
+     * @return {?}
+     */
+    CdkTable.prototype.ngOnDestroy = function () {
+        this._rowPlaceholder.viewContainer.clear();
+        this._headerRowPlaceholder.viewContainer.clear();
+        this._onDestroy.next();
+        this._onDestroy.complete();
+        if (this.dataSource) {
+            this.dataSource.disconnect(this);
+        }
+    };
+    /**
+     * Update the map containing the content's column definitions.
+     * @return {?}
+     */
+    CdkTable.prototype._cacheColumnDefsByName = function () {
+        var _this = this;
+        this._columnDefsByName.clear();
+        this._columnDefs.forEach(function (columnDef) {
+            if (_this._columnDefsByName.has(columnDef.name)) {
+                throw getTableDuplicateColumnNameError(columnDef.name);
+            }
+            _this._columnDefsByName.set(columnDef.name, columnDef);
+        });
+    };
+    /**
+     * Check if the header or rows have changed what columns they want to display. If there is a diff,
+     * then re-render that section.
+     * @return {?}
+     */
+    CdkTable.prototype._renderUpdatedColumns = function () {
+        var _this = this;
+        // Re-render the rows when the row definition columns change.
+        this._rowDefs.forEach(function (def) {
+            if (!!def.getColumnsDiff()) {
+                // Reset the data to an empty array so that renderRowChanges will re-render all new rows.
+                _this._dataDiffer.diff([]);
+                _this._rowPlaceholder.viewContainer.clear();
+                _this._renderRowChanges();
+            }
+        });
+        // Re-render the header row if there is a difference in its columns.
+        if (this._headerDef.getColumnsDiff()) {
+            this._headerRowPlaceholder.viewContainer.clear();
+            this._renderHeaderRow();
+        }
+    };
+    /**
+     * Switch to the provided data source by resetting the data and unsubscribing from the current
+     * render change subscription if one exists. If the data source is null, interpret this by
+     * clearing the row placeholder. Otherwise start listening for new data.
+     * @param {?} dataSource
+     * @return {?}
+     */
+    CdkTable.prototype._switchDataSource = function (dataSource) {
+        this._data = [];
+        if (this.dataSource) {
+            this.dataSource.disconnect(this);
+        }
+        // Stop listening for data from the previous data source.
+        if (this._renderChangeSubscription) {
+            this._renderChangeSubscription.unsubscribe();
+            this._renderChangeSubscription = null;
+        }
+        // Remove the table's rows if there is now no data source
+        if (!dataSource) {
+            this._rowPlaceholder.viewContainer.clear();
+        }
+        this._dataSource = dataSource;
+    };
+    /**
+     * Set up a subscription for the data provided by the data source.
+     * @return {?}
+     */
+    CdkTable.prototype._observeRenderChanges = function () {
+        var _this = this;
+        this._renderChangeSubscription = takeUntil.call(this.dataSource.connect(this), this._onDestroy)
+            .subscribe(function (data) {
+            _this._data = data;
+            _this._renderRowChanges();
+        });
+    };
+    /**
+     * Create the embedded view for the header template and place it in the header row view container.
+     * @return {?}
+     */
+    CdkTable.prototype._renderHeaderRow = function () {
+        var /** @type {?} */ cells = this._getHeaderCellTemplatesForRow(this._headerDef);
+        if (!cells.length) {
+            return;
+        }
+        // TODO(andrewseguin): add some code to enforce that exactly
+        //   one CdkCellOutlet was instantiated as a result
+        //   of `createEmbeddedView`.
+        this._headerRowPlaceholder.viewContainer
+            .createEmbeddedView(this._headerDef.template, { cells: cells });
+        cells.forEach(function (cell) {
+            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, {});
+        });
+        this._changeDetectorRef.markForCheck();
+    };
+    /**
+     * Check for changes made in the data and render each change (row added/removed/moved).
+     * @return {?}
+     */
+    CdkTable.prototype._renderRowChanges = function () {
+        var _this = this;
+        var /** @type {?} */ changes = this._dataDiffer.diff(this._data);
+        if (!changes) {
+            return;
+        }
+        var /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;
+        changes.forEachOperation(function (item, adjustedPreviousIndex, currentIndex) {
+            if (item.previousIndex == null) {
+                _this._insertRow(_this._data[currentIndex], currentIndex);
+            }
+            else if (currentIndex == null) {
+                viewContainer.remove(adjustedPreviousIndex);
+            }
+            else {
+                var /** @type {?} */ view = viewContainer.get(adjustedPreviousIndex);
+                viewContainer.move(/** @type {?} */ ((view)), currentIndex);
+            }
+        });
+        this._updateRowContext();
+    };
+    /**
+     * Finds the matching row definition that should be used for this row data. If there is only
+     * one row definition, it is returned. Otherwise, find the row definition that has a when
+     * predicate that returns true with the data. If none return true, return the default row
+     * definition.
+     * @param {?} data
+     * @param {?} i
+     * @return {?}
+     */
+    CdkTable.prototype._getRowDef = function (data, i) {
+        if (this._rowDefs.length == 1) {
+            return this._rowDefs.first;
+        }
+        var /** @type {?} */ rowDef = this._rowDefs.find(function (def) { return def.when && def.when(data, i); }) || this._defaultRowDef;
+        if (!rowDef) {
+            throw getTableMissingMatchingRowDefError();
+        }
+        return rowDef;
+    };
+    /**
+     * Create the embedded view for the data row template and place it in the correct index location
+     * within the data row view container.
+     * @param {?} rowData
+     * @param {?} index
+     * @return {?}
+     */
+    CdkTable.prototype._insertRow = function (rowData, index) {
+        var /** @type {?} */ row = this._getRowDef(rowData, index);
+        // Row context that will be provided to both the created embedded row view and its cells.
+        var /** @type {?} */ context = { $implicit: rowData };
+        // TODO(andrewseguin): add some code to enforce that exactly one
+        //   CdkCellOutlet was instantiated as a result  of `createEmbeddedView`.
+        this._rowPlaceholder.viewContainer.createEmbeddedView(row.template, context, index);
+        // Insert empty cells if there is no data to improve rendering time.
+        var /** @type {?} */ cells = rowData ? this._getCellTemplatesForRow(row) : [];
+        cells.forEach(function (cell) {
+            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, context);
+        });
+        this._changeDetectorRef.markForCheck();
+    };
+    /**
+     * Updates the context for each row to reflect any data changes that may have caused
+     * rows to be added, removed, or moved. The view container contains the same context
+     * that was provided to each of its cells.
+     * @return {?}
+     */
+    CdkTable.prototype._updateRowContext = function () {
+        var /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;
+        for (var /** @type {?} */ index = 0, /** @type {?} */ count = viewContainer.length; index < count; index++) {
+            var /** @type {?} */ viewRef = (viewContainer.get(index));
+            viewRef.context.index = index;
+            viewRef.context.count = count;
+            viewRef.context.first = index === 0;
+            viewRef.context.last = index === count - 1;
+            viewRef.context.even = index % 2 === 0;
+            viewRef.context.odd = !viewRef.context.even;
+        }
+    };
+    /**
+     * Returns the cell template definitions to insert into the header
+     * as defined by its list of columns to display.
+     * @param {?} headerDef
+     * @return {?}
+     */
+    CdkTable.prototype._getHeaderCellTemplatesForRow = function (headerDef) {
+        var _this = this;
+        if (!headerDef.columns) {
+            return [];
+        }
+        return headerDef.columns.map(function (columnId) {
+            var /** @type {?} */ column = _this._columnDefsByName.get(columnId);
+            if (!column) {
+                throw getTableUnknownColumnError(columnId);
+            }
+            return column.headerCell;
+        });
+    };
+    /**
+     * Returns the cell template definitions to insert in the provided row
+     * as defined by its list of columns to display.
+     * @param {?} rowDef
+     * @return {?}
+     */
+    CdkTable.prototype._getCellTemplatesForRow = function (rowDef) {
+        var _this = this;
+        if (!rowDef.columns) {
+            return [];
+        }
+        return rowDef.columns.map(function (columnId) {
+            var /** @type {?} */ column = _this._columnDefsByName.get(columnId);
+            if (!column) {
+                throw getTableUnknownColumnError(columnId);
+            }
+            return column.cell;
+        });
+    };
+    CdkTable.decorators = [
+        { type: Component, args: [{selector: 'cdk-table',
+                    exportAs: 'cdkTable',
+                    template: CDK_TABLE_TEMPLATE,
+                    host: {
+                        'class': 'cdk-table',
+                    },
+                    encapsulation: ViewEncapsulation.None,
+                    preserveWhitespaces: false,
+                    changeDetection: ChangeDetectionStrategy.OnPush,
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkTable.ctorParameters = function () { return [
+        { type: IterableDiffers, },
+        { type: ChangeDetectorRef, },
+        { type: ElementRef, },
+        { type: Renderer2, },
+        { type: undefined, decorators: [{ type: Attribute, args: ['role',] },] },
+    ]; };
+    CdkTable.propDecorators = {
+        'trackBy': [{ type: Input },],
+        'dataSource': [{ type: Input },],
+        '_rowPlaceholder': [{ type: ViewChild, args: [RowPlaceholder,] },],
+        '_headerRowPlaceholder': [{ type: ViewChild, args: [HeaderRowPlaceholder,] },],
+        '_columnDefs': [{ type: ContentChildren, args: [CdkColumnDef,] },],
+        '_headerDef': [{ type: ContentChild, args: [CdkHeaderRowDef,] },],
+        '_rowDefs': [{ type: ContentChildren, args: [CdkRowDef,] },],
+    };
+    return CdkTable;
+}());
+
+var EXPORTED_DECLARATIONS = [
+    CdkTable,
+    CdkRowDef,
+    CdkCellDef,
+    CdkCellOutlet,
+    CdkHeaderCellDef,
+    CdkColumnDef,
+    CdkCell,
+    CdkRow,
+    CdkHeaderCell,
+    CdkHeaderRow,
+    CdkHeaderRowDef,
+    RowPlaceholder,
+    HeaderRowPlaceholder,
+];
+var CdkTableModule = (function () {
+    function CdkTableModule() {
+    }
+    CdkTableModule.decorators = [
+        { type: NgModule, args: [{
+                    imports: [CommonModule],
+                    exports: [EXPORTED_DECLARATIONS],
+                    declarations: [EXPORTED_DECLARATIONS]
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkTableModule.ctorParameters = function () { return []; };
+    return CdkTableModule;
+}());
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { DataSource, RowPlaceholder, HeaderRowPlaceholder, CDK_TABLE_TEMPLATE, CdkTable, CdkCellDef, CdkHeaderCellDef, CdkColumnDef, CdkHeaderCell, CdkCell, CDK_ROW_TEMPLATE, BaseRowDef, CdkHeaderRowDef, CdkRowDef, CdkCellOutlet, CdkHeaderRow, CdkRow, CdkTableModule };
+//# sourceMappingURL=table.es5.js.map


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-a11y.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-a11y.umd.js b/node_modules/@angular/cdk/bundles/cdk-a11y.umd.js
new file mode 100644
index 0000000..ac4fe98
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-a11y.umd.js
@@ -0,0 +1,1724 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rxjs/Subject'), require('rxjs/Subscription'), require('@angular/cdk/keycodes'), require('@angular/cdk/rxjs'), require('@angular/core'), require('@angular/cdk/platform'), require('@angular/cdk/coercion'), require('rxjs/observable/of'), require('@angular/common')) :
+	typeof define === 'function' && define.amd ? define(['exports', 'rxjs/Subject', 'rxjs/Subscription', '@angular/cdk/keycodes', '@angular/cdk/rxjs', '@angular/core', '@angular/cdk/platform', '@angular/cdk/coercion', 'rxjs/observable/of', '@angular/common'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.a11y = global.ng.cdk.a11y || {}),global.Rx,global.Rx,global.ng.cdk.keycodes,global.ng.cdk.rxjs,global.ng.core,global.ng.cdk.platform,global.ng.cdk.coercion,global.Rx.Observable,global.ng.common));
+}(this, (function (exports,rxjs_Subject,rxjs_Subscription,_angular_cdk_keycodes,_angular_cdk_rxjs,_angular_core,_angular_cdk_platform,_angular_cdk_coercion,rxjs_observable_of,_angular_common) { 'use strict';
+
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+/* global Reflect, Promise */
+
+var extendStatics = Object.setPrototypeOf ||
+    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+
+function __extends(d, b) {
+    extendStatics(d, b);
+    function __() { this.constructor = d; }
+    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+
+/**
+ * This class manages keyboard events for selectable lists. If you pass it a query list
+ * of items, it will set the active item correctly when arrow events occur.
+ */
+var ListKeyManager = (function () {
+    /**
+     * @param {?} _items
+     */
+    function ListKeyManager(_items) {
+        this._items = _items;
+        this._activeItemIndex = -1;
+        this._wrap = false;
+        this._letterKeyStream = new rxjs_Subject.Subject();
+        this._typeaheadSubscription = rxjs_Subscription.Subscription.EMPTY;
+        this._pressedLetters = [];
+        /**
+         * Stream that emits any time the TAB key is pressed, so components can react
+         * when focus is shifted off of the list.
+         */
+        this.tabOut = new rxjs_Subject.Subject();
+    }
+    /**
+     * Turns on wrapping mode, which ensures that the active item will wrap to
+     * the other end of list when there are no more items in the given direction.
+     * @return {?}
+     */
+    ListKeyManager.prototype.withWrap = function () {
+        this._wrap = true;
+        return this;
+    };
+    /**
+     * Turns on typeahead mode which allows users to set the active item by typing.
+     * @param {?=} debounceInterval Time to wait after the last keystroke before setting the active item.
+     * @return {?}
+     */
+    ListKeyManager.prototype.withTypeAhead = function (debounceInterval) {
+        var _this = this;
+        if (debounceInterval === void 0) { debounceInterval = 200; }
+        if (this._items.length && this._items.some(function (item) { return typeof item.getLabel !== 'function'; })) {
+            throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');
+        }
+        this._typeaheadSubscription.unsubscribe();
+        // Debounce the presses of non-navigational keys, collect the ones that correspond to letters
+        // and convert those letters back into a string. Afterwards find the first item that starts
+        // with that string and select it.
+        this._typeaheadSubscription = _angular_cdk_rxjs.RxChain.from(this._letterKeyStream)
+            .call(_angular_cdk_rxjs.doOperator, function (keyCode) { return _this._pressedLetters.push(keyCode); })
+            .call(_angular_cdk_rxjs.debounceTime, debounceInterval)
+            .call(_angular_cdk_rxjs.filter, function () { return _this._pressedLetters.length > 0; })
+            .call(_angular_cdk_rxjs.map, function () { return _this._pressedLetters.join(''); })
+            .subscribe(function (inputString) {
+            var /** @type {?} */ items = _this._items.toArray();
+            // Start at 1 because we want to start searching at the item immediately
+            // following the current active item.
+            for (var /** @type {?} */ i = 1; i < items.length + 1; i++) {
+                var /** @type {?} */ index = (_this._activeItemIndex + i) % items.length;
+                var /** @type {?} */ item = items[index];
+                if (!item.disabled && ((item.getLabel))().toUpperCase().trim().indexOf(inputString) === 0) {
+                    _this.setActiveItem(index);
+                    break;
+                }
+            }
+            _this._pressedLetters = [];
+        });
+        return this;
+    };
+    /**
+     * Sets the active item to the item at the index specified.
+     * @param {?} index The index of the item to be set as active.
+     * @return {?}
+     */
+    ListKeyManager.prototype.setActiveItem = function (index) {
+        this._activeItemIndex = index;
+        this._activeItem = this._items.toArray()[index];
+    };
+    /**
+     * Sets the active item depending on the key event passed in.
+     * @param {?} event Keyboard event to be used for determining which element should be active.
+     * @return {?}
+     */
+    ListKeyManager.prototype.onKeydown = function (event) {
+        switch (event.keyCode) {
+            case _angular_cdk_keycodes.DOWN_ARROW:
+                this.setNextItemActive();
+                break;
+            case _angular_cdk_keycodes.UP_ARROW:
+                this.setPreviousItemActive();
+                break;
+            case _angular_cdk_keycodes.TAB:
+                this.tabOut.next();
+                return;
+            default:
+                var /** @type {?} */ keyCode = event.keyCode;
+                // Attempt to use the `event.key` which also maps it to the user's keyboard language,
+                // otherwise fall back to resolving alphanumeric characters via the keyCode.
+                if (event.key && event.key.length === 1) {
+                    this._letterKeyStream.next(event.key.toLocaleUpperCase());
+                }
+                else if ((keyCode >= _angular_cdk_keycodes.A && keyCode <= _angular_cdk_keycodes.Z) || (keyCode >= _angular_cdk_keycodes.ZERO && keyCode <= _angular_cdk_keycodes.NINE)) {
+                    this._letterKeyStream.next(String.fromCharCode(keyCode));
+                }
+                // Note that we return here, in order to avoid preventing
+                // the default action of non-navigational keys.
+                return;
+        }
+        this._pressedLetters = [];
+        event.preventDefault();
+    };
+    Object.defineProperty(ListKeyManager.prototype, "activeItemIndex", {
+        /**
+         * Index of the currently active item.
+         * @return {?}
+         */
+        get: function () {
+            return this._activeItemIndex;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(ListKeyManager.prototype, "activeItem", {
+        /**
+         * The active item.
+         * @return {?}
+         */
+        get: function () {
+            return this._activeItem;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Sets the active item to the first enabled item in the list.
+     * @return {?}
+     */
+    ListKeyManager.prototype.setFirstItemActive = function () {
+        this._setActiveItemByIndex(0, 1);
+    };
+    /**
+     * Sets the active item to the last enabled item in the list.
+     * @return {?}
+     */
+    ListKeyManager.prototype.setLastItemActive = function () {
+        this._setActiveItemByIndex(this._items.length - 1, -1);
+    };
+    /**
+     * Sets the active item to the next enabled item in the list.
+     * @return {?}
+     */
+    ListKeyManager.prototype.setNextItemActive = function () {
+        this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);
+    };
+    /**
+     * Sets the active item to a previous enabled item in the list.
+     * @return {?}
+     */
+    ListKeyManager.prototype.setPreviousItemActive = function () {
+        this._activeItemIndex < 0 && this._wrap ? this.setLastItemActive()
+            : this._setActiveItemByDelta(-1);
+    };
+    /**
+     * Allows setting of the activeItemIndex without any other effects.
+     * @param {?} index The new activeItemIndex.
+     * @return {?}
+     */
+    ListKeyManager.prototype.updateActiveItemIndex = function (index) {
+        this._activeItemIndex = index;
+    };
+    /**
+     * This method sets the active item, given a list of items and the delta between the
+     * currently active item and the new active item. It will calculate differently
+     * depending on whether wrap mode is turned on.
+     * @param {?} delta
+     * @param {?=} items
+     * @return {?}
+     */
+    ListKeyManager.prototype._setActiveItemByDelta = function (delta, items) {
+        if (items === void 0) { items = this._items.toArray(); }
+        this._wrap ? this._setActiveInWrapMode(delta, items)
+            : this._setActiveInDefaultMode(delta, items);
+    };
+    /**
+     * Sets the active item properly given "wrap" mode. In other words, it will continue to move
+     * down the list until it finds an item that is not disabled, and it will wrap if it
+     * encounters either end of the list.
+     * @param {?} delta
+     * @param {?} items
+     * @return {?}
+     */
+    ListKeyManager.prototype._setActiveInWrapMode = function (delta, items) {
+        // when active item would leave menu, wrap to beginning or end
+        this._activeItemIndex =
+            (this._activeItemIndex + delta + items.length) % items.length;
+        // skip all disabled menu items recursively until an enabled one is reached
+        if (items[this._activeItemIndex].disabled) {
+            this._setActiveInWrapMode(delta, items);
+        }
+        else {
+            this.setActiveItem(this._activeItemIndex);
+        }
+    };
+    /**
+     * Sets the active item properly given the default mode. In other words, it will
+     * continue to move down the list until it finds an item that is not disabled. If
+     * it encounters either end of the list, it will stop and not wrap.
+     * @param {?} delta
+     * @param {?} items
+     * @return {?}
+     */
+    ListKeyManager.prototype._setActiveInDefaultMode = function (delta, items) {
+        this._setActiveItemByIndex(this._activeItemIndex + delta, delta, items);
+    };
+    /**
+     * Sets the active item to the first enabled item starting at the index specified. If the
+     * item is disabled, it will move in the fallbackDelta direction until it either
+     * finds an enabled item or encounters the end of the list.
+     * @param {?} index
+     * @param {?} fallbackDelta
+     * @param {?=} items
+     * @return {?}
+     */
+    ListKeyManager.prototype._setActiveItemByIndex = function (index, fallbackDelta, items) {
+        if (items === void 0) { items = this._items.toArray(); }
+        if (!items[index]) {
+            return;
+        }
+        while (items[index].disabled) {
+            index += fallbackDelta;
+            if (!items[index]) {
+                return;
+            }
+        }
+        this.setActiveItem(index);
+    };
+    return ListKeyManager;
+}());
+
+var ActiveDescendantKeyManager = (function (_super) {
+    __extends(ActiveDescendantKeyManager, _super);
+    function ActiveDescendantKeyManager() {
+        return _super !== null && _super.apply(this, arguments) || this;
+    }
+    /**
+     * This method sets the active item to the item at the specified index.
+     * It also adds active styles to the newly active item and removes active
+     * styles from the previously active item.
+     * @param {?} index
+     * @return {?}
+     */
+    ActiveDescendantKeyManager.prototype.setActiveItem = function (index) {
+        if (this.activeItem) {
+            this.activeItem.setInactiveStyles();
+        }
+        _super.prototype.setActiveItem.call(this, index);
+        if (this.activeItem) {
+            this.activeItem.setActiveStyles();
+        }
+    };
+    return ActiveDescendantKeyManager;
+}(ListKeyManager));
+
+/**
+ * IDs are deliminated by an empty space, as per the spec.
+ */
+var ID_DELIMINATOR = ' ';
+/**
+ * Adds the given ID to the specified ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ * @param {?} el
+ * @param {?} attr
+ * @param {?} id
+ * @return {?}
+ */
+function addAriaReferencedId(el, attr, id) {
+    var /** @type {?} */ ids = getAriaReferenceIds(el, attr);
+    if (ids.some(function (existingId) { return existingId.trim() == id.trim(); })) {
+        return;
+    }
+    ids.push(id.trim());
+    el.setAttribute(attr, ids.join(ID_DELIMINATOR));
+}
+/**
+ * Removes the given ID from the specified ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ * @param {?} el
+ * @param {?} attr
+ * @param {?} id
+ * @return {?}
+ */
+function removeAriaReferencedId(el, attr, id) {
+    var /** @type {?} */ ids = getAriaReferenceIds(el, attr);
+    var /** @type {?} */ filteredIds = ids.filter(function (val) { return val != id.trim(); });
+    el.setAttribute(attr, filteredIds.join(ID_DELIMINATOR));
+}
+/**
+ * Gets the list of IDs referenced by the given ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ * @param {?} el
+ * @param {?} attr
+ * @return {?}
+ */
+function getAriaReferenceIds(el, attr) {
+    // Get string array of all individual ids (whitespace deliminated) in the attribute value
+    return (el.getAttribute(attr) || '').match(/\S+/g) || [];
+}
+
+/**
+ * ID used for the body container where all messages are appended.
+ */
+var MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';
+/**
+ * ID prefix used for each created message element.
+ */
+var CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';
+/**
+ * Attribute given to each host element that is described by a message element.
+ */
+var CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';
+/**
+ * Global incremental identifier for each registered message element.
+ */
+var nextId = 0;
+/**
+ * Global map of all registered message elements that have been placed into the document.
+ */
+var messageRegistry = new Map();
+/**
+ * Container for all registered messages.
+ */
+var messagesContainer = null;
+/**
+ * Utility that creates visually hidden elements with a message content. Useful for elements that
+ * want to use aria-describedby to further describe themselves without adding additional visual
+ * content.
+ * \@docs-private
+ */
+var AriaDescriber = (function () {
+    /**
+     * @param {?} _platform
+     */
+    function AriaDescriber(_platform) {
+        this._platform = _platform;
+    }
+    /**
+     * Adds to the host element an aria-describedby reference to a hidden element that contains
+     * the message. If the same message has already been registered, then it will reuse the created
+     * message element.
+     * @param {?} hostElement
+     * @param {?} message
+     * @return {?}
+     */
+    AriaDescriber.prototype.describe = function (hostElement, message) {
+        if (!this._platform.isBrowser || !message.trim()) {
+            return;
+        }
+        if (!messageRegistry.has(message)) {
+            createMessageElement(message);
+        }
+        if (!isElementDescribedByMessage(hostElement, message)) {
+            addMessageReference(hostElement, message);
+        }
+    };
+    /**
+     * Removes the host element's aria-describedby reference to the message element.
+     * @param {?} hostElement
+     * @param {?} message
+     * @return {?}
+     */
+    AriaDescriber.prototype.removeDescription = function (hostElement, message) {
+        if (!this._platform.isBrowser || !message.trim()) {
+            return;
+        }
+        if (isElementDescribedByMessage(hostElement, message)) {
+            removeMessageReference(hostElement, message);
+        }
+        var /** @type {?} */ registeredMessage = messageRegistry.get(message);
+        if (registeredMessage && registeredMessage.referenceCount === 0) {
+            deleteMessageElement(message);
+        }
+        if (messagesContainer && messagesContainer.childNodes.length === 0) {
+            deleteMessagesContainer();
+        }
+    };
+    /**
+     * Unregisters all created message elements and removes the message container.
+     * @return {?}
+     */
+    AriaDescriber.prototype.ngOnDestroy = function () {
+        if (!this._platform.isBrowser) {
+            return;
+        }
+        var /** @type {?} */ describedElements = document.querySelectorAll("[" + CDK_DESCRIBEDBY_HOST_ATTRIBUTE + "]");
+        for (var /** @type {?} */ i = 0; i < describedElements.length; i++) {
+            removeCdkDescribedByReferenceIds(describedElements[i]);
+            describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);
+        }
+        if (messagesContainer) {
+            deleteMessagesContainer();
+        }
+        messageRegistry.clear();
+    };
+    AriaDescriber.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    AriaDescriber.ctorParameters = function () { return [
+        { type: _angular_cdk_platform.Platform, },
+    ]; };
+    return AriaDescriber;
+}());
+/**
+ * Creates a new element in the visually hidden message container element with the message
+ * as its content and adds it to the message registry.
+ * @param {?} message
+ * @return {?}
+ */
+function createMessageElement(message) {
+    var /** @type {?} */ messageElement = document.createElement('div');
+    messageElement.setAttribute('id', CDK_DESCRIBEDBY_ID_PREFIX + "-" + nextId++);
+    messageElement.appendChild(/** @type {?} */ ((document.createTextNode(message))));
+    if (!messagesContainer) {
+        createMessagesContainer();
+    } /** @type {?} */
+    ((messagesContainer)).appendChild(messageElement);
+    messageRegistry.set(message, { messageElement: messageElement, referenceCount: 0 });
+}
+/**
+ * Deletes the message element from the global messages container.
+ * @param {?} message
+ * @return {?}
+ */
+function deleteMessageElement(message) {
+    var /** @type {?} */ registeredMessage = messageRegistry.get(message);
+    var /** @type {?} */ messageElement = registeredMessage && registeredMessage.messageElement;
+    if (messagesContainer && messageElement) {
+        messagesContainer.removeChild(messageElement);
+    }
+    messageRegistry.delete(message);
+}
+/**
+ * Creates the global container for all aria-describedby messages.
+ * @return {?}
+ */
+function createMessagesContainer() {
+    messagesContainer = document.createElement('div');
+    messagesContainer.setAttribute('id', MESSAGES_CONTAINER_ID);
+    messagesContainer.setAttribute('aria-hidden', 'true');
+    messagesContainer.style.display = 'none';
+    document.body.appendChild(messagesContainer);
+}
+/**
+ * Deletes the global messages container.
+ * @return {?}
+ */
+function deleteMessagesContainer() {
+    document.body.removeChild(/** @type {?} */ ((messagesContainer)));
+    messagesContainer = null;
+}
+/**
+ * Removes all cdk-describedby messages that are hosted through the element.
+ * @param {?} element
+ * @return {?}
+ */
+function removeCdkDescribedByReferenceIds(element) {
+    // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX
+    var /** @type {?} */ originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby')
+        .filter(function (id) { return id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0; });
+    element.setAttribute('aria-describedby', originalReferenceIds.join(' '));
+}
+/**
+ * Adds a message reference to the element using aria-describedby and increments the registered
+ * message's reference count.
+ * @param {?} element
+ * @param {?} message
+ * @return {?}
+ */
+function addMessageReference(element, message) {
+    var /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));
+    // Add the aria-describedby reference and set the describedby_host attribute to mark the element.
+    addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);
+    element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, '');
+    registeredMessage.referenceCount++;
+}
+/**
+ * Removes a message reference from the element using aria-describedby and decrements the registered
+ * message's reference count.
+ * @param {?} element
+ * @param {?} message
+ * @return {?}
+ */
+function removeMessageReference(element, message) {
+    var /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));
+    registeredMessage.referenceCount--;
+    removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);
+    element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);
+}
+/**
+ * Returns true if the element has been described by the provided message ID.
+ * @param {?} element
+ * @param {?} message
+ * @return {?}
+ */
+function isElementDescribedByMessage(element, message) {
+    var /** @type {?} */ referenceIds = getAriaReferenceIds(element, 'aria-describedby');
+    var /** @type {?} */ registeredMessage = messageRegistry.get(message);
+    var /** @type {?} */ messageId = registeredMessage && registeredMessage.messageElement.id;
+    return !!messageId && referenceIds.indexOf(messageId) != -1;
+}
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} platform
+ * @return {?}
+ */
+function ARIA_DESCRIBER_PROVIDER_FACTORY(parentDispatcher, platform) {
+    return parentDispatcher || new AriaDescriber(platform);
+}
+/**
+ * \@docs-private
+ */
+var ARIA_DESCRIBER_PROVIDER = {
+    // If there is already an AriaDescriber available, use that. Otherwise, provide a new one.
+    provide: AriaDescriber,
+    deps: [
+        [new _angular_core.Optional(), new _angular_core.SkipSelf(), AriaDescriber],
+        _angular_cdk_platform.Platform
+    ],
+    useFactory: ARIA_DESCRIBER_PROVIDER_FACTORY
+};
+
+/**
+ * Screenreaders will often fire fake mousedown events when a focusable element
+ * is activated using the keyboard. We can typically distinguish between these faked
+ * mousedown events and real mousedown events using the "buttons" property. While
+ * real mousedowns will indicate the mouse button that was pressed (e.g. "1" for
+ * the left mouse button), faked mousedowns will usually set the property value to 0.
+ * @param {?} event
+ * @return {?}
+ */
+function isFakeMousedownFromScreenReader(event) {
+    return event.buttons === 0;
+}
+
+var FocusKeyManager = (function (_super) {
+    __extends(FocusKeyManager, _super);
+    function FocusKeyManager() {
+        return _super !== null && _super.apply(this, arguments) || this;
+    }
+    /**
+     * This method sets the active item to the item at the specified index.
+     * It also adds focuses the newly active item.
+     * @param {?} index
+     * @return {?}
+     */
+    FocusKeyManager.prototype.setActiveItem = function (index) {
+        _super.prototype.setActiveItem.call(this, index);
+        if (this.activeItem) {
+            this.activeItem.focus();
+        }
+    };
+    return FocusKeyManager;
+}(ListKeyManager));
+
+/**
+ * Utility for checking the interactivity of an element, such as whether is is focusable or
+ * tabbable.
+ */
+var InteractivityChecker = (function () {
+    /**
+     * @param {?} _platform
+     */
+    function InteractivityChecker(_platform) {
+        this._platform = _platform;
+    }
+    /**
+     * Gets whether an element is disabled.
+     *
+     * @param {?} element Element to be checked.
+     * @return {?} Whether the element is disabled.
+     */
+    InteractivityChecker.prototype.isDisabled = function (element) {
+        // This does not capture some cases, such as a non-form control with a disabled attribute or
+        // a form control inside of a disabled form, but should capture the most common cases.
+        return element.hasAttribute('disabled');
+    };
+    /**
+     * Gets whether an element is visible for the purposes of interactivity.
+     *
+     * This will capture states like `display: none` and `visibility: hidden`, but not things like
+     * being clipped by an `overflow: hidden` parent or being outside the viewport.
+     *
+     * @param {?} element
+     * @return {?} Whether the element is visible.
+     */
+    InteractivityChecker.prototype.isVisible = function (element) {
+        return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';
+    };
+    /**
+     * Gets whether an element can be reached via Tab key.
+     * Assumes that the element has already been checked with isFocusable.
+     *
+     * @param {?} element Element to be checked.
+     * @return {?} Whether the element is tabbable.
+     */
+    InteractivityChecker.prototype.isTabbable = function (element) {
+        // Nothing is tabbable on the the server 😎
+        if (!this._platform.isBrowser) {
+            return false;
+        }
+        var /** @type {?} */ frameElement = (getWindow(element).frameElement);
+        if (frameElement) {
+            var /** @type {?} */ frameType = frameElement && frameElement.nodeName.toLowerCase();
+            // Frame elements inherit their tabindex onto all child elements.
+            if (getTabIndexValue(frameElement) === -1) {
+                return false;
+            }
+            // Webkit and Blink consider anything inside of an <object> element as non-tabbable.
+            if ((this._platform.BLINK || this._platform.WEBKIT) && frameType === 'object') {
+                return false;
+            }
+            // Webkit and Blink disable tabbing to an element inside of an invisible frame.
+            if ((this._platform.BLINK || this._platform.WEBKIT) && !this.isVisible(frameElement)) {
+                return false;
+            }
+        }
+        var /** @type {?} */ nodeName = element.nodeName.toLowerCase();
+        var /** @type {?} */ tabIndexValue = getTabIndexValue(element);
+        if (element.hasAttribute('contenteditable')) {
+            return tabIndexValue !== -1;
+        }
+        if (nodeName === 'iframe') {
+            // The frames may be tabbable depending on content, but it's not possibly to reliably
+            // investigate the content of the frames.
+            return false;
+        }
+        if (nodeName === 'audio') {
+            if (!element.hasAttribute('controls')) {
+                // By default an <audio> element without the controls enabled is not tabbable.
+                return false;
+            }
+            else if (this._platform.BLINK) {
+                // In Blink <audio controls> elements are always tabbable.
+                return true;
+            }
+        }
+        if (nodeName === 'video') {
+            if (!element.hasAttribute('controls') && this._platform.TRIDENT) {
+                // In Trident a <video> element without the controls enabled is not tabbable.
+                return false;
+            }
+            else if (this._platform.BLINK || this._platform.FIREFOX) {
+                // In Chrome and Firefox <video controls> elements are always tabbable.
+                return true;
+            }
+        }
+        if (nodeName === 'object' && (this._platform.BLINK || this._platform.WEBKIT)) {
+            // In all Blink and WebKit based browsers <object> elements are never tabbable.
+            return false;
+        }
+        // In iOS the browser only considers some specific elements as tabbable.
+        if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {
+            return false;
+        }
+        return element.tabIndex >= 0;
+    };
+    /**
+     * Gets whether an element can be focused by the user.
+     *
+     * @param {?} element Element to be checked.
+     * @return {?} Whether the element is focusable.
+     */
+    InteractivityChecker.prototype.isFocusable = function (element) {
+        // Perform checks in order of left to most expensive.
+        // Again, naive approach that does not capture many edge cases and browser quirks.
+        return isPotentiallyFocusable(element) && !this.isDisabled(element) && this.isVisible(element);
+    };
+    InteractivityChecker.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    InteractivityChecker.ctorParameters = function () { return [
+        { type: _angular_cdk_platform.Platform, },
+    ]; };
+    return InteractivityChecker;
+}());
+/**
+ * Checks whether the specified element has any geometry / rectangles.
+ * @param {?} element
+ * @return {?}
+ */
+function hasGeometry(element) {
+    // Use logic from jQuery to check for an invisible element.
+    // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12
+    return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+}
+/**
+ * Gets whether an element's
+ * @param {?} element
+ * @return {?}
+ */
+function isNativeFormElement(element) {
+    var /** @type {?} */ nodeName = element.nodeName.toLowerCase();
+    return nodeName === 'input' ||
+        nodeName === 'select' ||
+        nodeName === 'button' ||
+        nodeName === 'textarea';
+}
+/**
+ * Gets whether an element is an <input type="hidden">.
+ * @param {?} element
+ * @return {?}
+ */
+function isHiddenInput(element) {
+    return isInputElement(element) && element.type == 'hidden';
+}
+/**
+ * Gets whether an element is an anchor that has an href attribute.
+ * @param {?} element
+ * @return {?}
+ */
+function isAnchorWithHref(element) {
+    return isAnchorElement(element) && element.hasAttribute('href');
+}
+/**
+ * Gets whether an element is an input element.
+ * @param {?} element
+ * @return {?}
+ */
+function isInputElement(element) {
+    return element.nodeName.toLowerCase() == 'input';
+}
+/**
+ * Gets whether an element is an anchor element.
+ * @param {?} element
+ * @return {?}
+ */
+function isAnchorElement(element) {
+    return element.nodeName.toLowerCase() == 'a';
+}
+/**
+ * Gets whether an element has a valid tabindex.
+ * @param {?} element
+ * @return {?}
+ */
+function hasValidTabIndex(element) {
+    if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {
+        return false;
+    }
+    var /** @type {?} */ tabIndex = element.getAttribute('tabindex');
+    // IE11 parses tabindex="" as the value "-32768"
+    if (tabIndex == '-32768') {
+        return false;
+    }
+    return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));
+}
+/**
+ * Returns the parsed tabindex from the element attributes instead of returning the
+ * evaluated tabindex from the browsers defaults.
+ * @param {?} element
+ * @return {?}
+ */
+function getTabIndexValue(element) {
+    if (!hasValidTabIndex(element)) {
+        return null;
+    }
+    // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054
+    var /** @type {?} */ tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);
+    return isNaN(tabIndex) ? -1 : tabIndex;
+}
+/**
+ * Checks whether the specified element is potentially tabbable on iOS
+ * @param {?} element
+ * @return {?}
+ */
+function isPotentiallyTabbableIOS(element) {
+    var /** @type {?} */ nodeName = element.nodeName.toLowerCase();
+    var /** @type {?} */ inputType = nodeName === 'input' && ((element)).type;
+    return inputType === 'text'
+        || inputType === 'password'
+        || nodeName === 'select'
+        || nodeName === 'textarea';
+}
+/**
+ * Gets whether an element is potentially focusable without taking current visible/disabled state
+ * into account.
+ * @param {?} element
+ * @return {?}
+ */
+function isPotentiallyFocusable(element) {
+    // Inputs are potentially focusable *unless* they're type="hidden".
+    if (isHiddenInput(element)) {
+        return false;
+    }
+    return isNativeFormElement(element) ||
+        isAnchorWithHref(element) ||
+        element.hasAttribute('contenteditable') ||
+        hasValidTabIndex(element);
+}
+/**
+ * Gets the parent window of a DOM node with regards of being inside of an iframe.
+ * @param {?} node
+ * @return {?}
+ */
+function getWindow(node) {
+    return node.ownerDocument.defaultView || window;
+}
+
+/**
+ * Class that allows for trapping focus within a DOM element.
+ *
+ * NOTE: This class currently uses a very simple (naive) approach to focus trapping.
+ * It assumes that the tab order is the same as DOM order, which is not necessarily true.
+ * Things like tabIndex > 0, flex `order`, and shadow roots can cause to two to misalign.
+ * This will be replaced with a more intelligent solution before the library is considered stable.
+ */
+var FocusTrap = (function () {
+    /**
+     * @param {?} _element
+     * @param {?} _platform
+     * @param {?} _checker
+     * @param {?} _ngZone
+     * @param {?=} deferAnchors
+     */
+    function FocusTrap(_element, _platform, _checker, _ngZone, deferAnchors) {
+        if (deferAnchors === void 0) { deferAnchors = false; }
+        this._element = _element;
+        this._platform = _platform;
+        this._checker = _checker;
+        this._ngZone = _ngZone;
+        this._enabled = true;
+        if (!deferAnchors) {
+            this.attachAnchors();
+        }
+    }
+    Object.defineProperty(FocusTrap.prototype, "enabled", {
+        /**
+         * Whether the focus trap is active.
+         * @return {?}
+         */
+        get: function () { return this._enabled; },
+        /**
+         * @param {?} val
+         * @return {?}
+         */
+        set: function (val) {
+            this._enabled = val;
+            if (this._startAnchor && this._endAnchor) {
+                this._startAnchor.tabIndex = this._endAnchor.tabIndex = this._enabled ? 0 : -1;
+            }
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * Destroys the focus trap by cleaning up the anchors.
+     * @return {?}
+     */
+    FocusTrap.prototype.destroy = function () {
+        if (this._startAnchor && this._startAnchor.parentNode) {
+            this._startAnchor.parentNode.removeChild(this._startAnchor);
+        }
+        if (this._endAnchor && this._endAnchor.parentNode) {
+            this._endAnchor.parentNode.removeChild(this._endAnchor);
+        }
+        this._startAnchor = this._endAnchor = null;
+    };
+    /**
+     * Inserts the anchors into the DOM. This is usually done automatically
+     * in the constructor, but can be deferred for cases like directives with `*ngIf`.
+     * @return {?}
+     */
+    FocusTrap.prototype.attachAnchors = function () {
+        var _this = this;
+        // If we're not on the browser, there can be no focus to trap.
+        if (!this._platform.isBrowser) {
+            return;
+        }
+        if (!this._startAnchor) {
+            this._startAnchor = this._createAnchor();
+        }
+        if (!this._endAnchor) {
+            this._endAnchor = this._createAnchor();
+        }
+        this._ngZone.runOutsideAngular(function () {
+            ((_this._startAnchor)).addEventListener('focus', function () {
+                _this.focusLastTabbableElement();
+            }); /** @type {?} */
+            ((_this._endAnchor)).addEventListener('focus', function () {
+                _this.focusFirstTabbableElement();
+            });
+            if (_this._element.parentNode) {
+                _this._element.parentNode.insertBefore(/** @type {?} */ ((_this._startAnchor)), _this._element);
+                _this._element.parentNode.insertBefore(/** @type {?} */ ((_this._endAnchor)), _this._element.nextSibling);
+            }
+        });
+    };
+    /**
+     * Waits for the zone to stabilize, then either focuses the first element that the
+     * user specified, or the first tabbable element.
+     * @return {?} Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusInitialElementWhenReady = function () {
+        var _this = this;
+        return new Promise(function (resolve) {
+            _this._executeOnStable(function () { return resolve(_this.focusInitialElement()); });
+        });
+    };
+    /**
+     * Waits for the zone to stabilize, then focuses
+     * the first tabbable element within the focus trap region.
+     * @return {?} Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusFirstTabbableElementWhenReady = function () {
+        var _this = this;
+        return new Promise(function (resolve) {
+            _this._executeOnStable(function () { return resolve(_this.focusFirstTabbableElement()); });
+        });
+    };
+    /**
+     * Waits for the zone to stabilize, then focuses
+     * the last tabbable element within the focus trap region.
+     * @return {?} Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusLastTabbableElementWhenReady = function () {
+        var _this = this;
+        return new Promise(function (resolve) {
+            _this._executeOnStable(function () { return resolve(_this.focusLastTabbableElement()); });
+        });
+    };
+    /**
+     * Get the specified boundary element of the trapped region.
+     * @param {?} bound The boundary to get (start or end of trapped region).
+     * @return {?} The boundary element.
+     */
+    FocusTrap.prototype._getRegionBoundary = function (bound) {
+        // Contains the deprecated version of selector, for temporary backwards comparability.
+        var /** @type {?} */ markers = (this._element.querySelectorAll("[cdk-focus-region-" + bound + "], " +
+            ("[cdk-focus-" + bound + "]")));
+        for (var /** @type {?} */ i = 0; i < markers.length; i++) {
+            if (markers[i].hasAttribute("cdk-focus-" + bound)) {
+                console.warn("Found use of deprecated attribute 'cdk-focus-" + bound + "'," +
+                    (" use 'cdk-focus-region-" + bound + "' instead."), markers[i]);
+            }
+        }
+        if (bound == 'start') {
+            return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);
+        }
+        return markers.length ?
+            markers[markers.length - 1] : this._getLastTabbableElement(this._element);
+    };
+    /**
+     * Focuses the element that should be focused when the focus trap is initialized.
+     * @return {?} Returns whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusInitialElement = function () {
+        var /** @type {?} */ redirectToElement = (this._element.querySelector('[cdk-focus-initial]'));
+        if (redirectToElement) {
+            redirectToElement.focus();
+            return true;
+        }
+        return this.focusFirstTabbableElement();
+    };
+    /**
+     * Focuses the first tabbable element within the focus trap region.
+     * @return {?} Returns whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusFirstTabbableElement = function () {
+        var /** @type {?} */ redirectToElement = this._getRegionBoundary('start');
+        if (redirectToElement) {
+            redirectToElement.focus();
+        }
+        return !!redirectToElement;
+    };
+    /**
+     * Focuses the last tabbable element within the focus trap region.
+     * @return {?} Returns whether focus was moved successfuly.
+     */
+    FocusTrap.prototype.focusLastTabbableElement = function () {
+        var /** @type {?} */ redirectToElement = this._getRegionBoundary('end');
+        if (redirectToElement) {
+            redirectToElement.focus();
+        }
+        return !!redirectToElement;
+    };
+    /**
+     * Get the first tabbable element from a DOM subtree (inclusive).
+     * @param {?} root
+     * @return {?}
+     */
+    FocusTrap.prototype._getFirstTabbableElement = function (root) {
+        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {
+            return root;
+        }
+        // Iterate in DOM order. Note that IE doesn't have `children` for SVG so we fall
+        // back to `childNodes` which includes text nodes, comments etc.
+        var /** @type {?} */ children = root.children || root.childNodes;
+        for (var /** @type {?} */ i = 0; i < children.length; i++) {
+            var /** @type {?} */ tabbableChild = children[i].nodeType === Node.ELEMENT_NODE ?
+                this._getFirstTabbableElement(/** @type {?} */ (children[i])) :
+                null;
+            if (tabbableChild) {
+                return tabbableChild;
+            }
+        }
+        return null;
+    };
+    /**
+     * Get the last tabbable element from a DOM subtree (inclusive).
+     * @param {?} root
+     * @return {?}
+     */
+    FocusTrap.prototype._getLastTabbableElement = function (root) {
+        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {
+            return root;
+        }
+        // Iterate in reverse DOM order.
+        var /** @type {?} */ children = root.children || root.childNodes;
+        for (var /** @type {?} */ i = children.length - 1; i >= 0; i--) {
+            var /** @type {?} */ tabbableChild = children[i].nodeType === Node.ELEMENT_NODE ?
+                this._getLastTabbableElement(/** @type {?} */ (children[i])) :
+                null;
+            if (tabbableChild) {
+                return tabbableChild;
+            }
+        }
+        return null;
+    };
+    /**
+     * Creates an anchor element.
+     * @return {?}
+     */
+    FocusTrap.prototype._createAnchor = function () {
+        var /** @type {?} */ anchor = document.createElement('div');
+        anchor.tabIndex = this._enabled ? 0 : -1;
+        anchor.classList.add('cdk-visually-hidden');
+        anchor.classList.add('cdk-focus-trap-anchor');
+        return anchor;
+    };
+    /**
+     * Executes a function when the zone is stable.
+     * @param {?} fn
+     * @return {?}
+     */
+    FocusTrap.prototype._executeOnStable = function (fn) {
+        if (this._ngZone.isStable) {
+            fn();
+        }
+        else {
+            _angular_cdk_rxjs.first.call(this._ngZone.onStable.asObservable()).subscribe(fn);
+        }
+    };
+    return FocusTrap;
+}());
+/**
+ * Factory that allows easy instantiation of focus traps.
+ */
+var FocusTrapFactory = (function () {
+    /**
+     * @param {?} _checker
+     * @param {?} _platform
+     * @param {?} _ngZone
+     */
+    function FocusTrapFactory(_checker, _platform, _ngZone) {
+        this._checker = _checker;
+        this._platform = _platform;
+        this._ngZone = _ngZone;
+    }
+    /**
+     * @param {?} element
+     * @param {?=} deferAnchors
+     * @return {?}
+     */
+    FocusTrapFactory.prototype.create = function (element, deferAnchors) {
+        if (deferAnchors === void 0) { deferAnchors = false; }
+        return new FocusTrap(element, this._platform, this._checker, this._ngZone, deferAnchors);
+    };
+    FocusTrapFactory.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    FocusTrapFactory.ctorParameters = function () { return [
+        { type: InteractivityChecker, },
+        { type: _angular_cdk_platform.Platform, },
+        { type: _angular_core.NgZone, },
+    ]; };
+    return FocusTrapFactory;
+}());
+/**
+ * Directive for trapping focus within a region.
+ * @deprecated
+ */
+var FocusTrapDeprecatedDirective = (function () {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _focusTrapFactory
+     */
+    function FocusTrapDeprecatedDirective(_elementRef, _focusTrapFactory) {
+        this._elementRef = _elementRef;
+        this._focusTrapFactory = _focusTrapFactory;
+        this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);
+    }
+    Object.defineProperty(FocusTrapDeprecatedDirective.prototype, "disabled", {
+        /**
+         * Whether the focus trap is active.
+         * @return {?}
+         */
+        get: function () { return !this.focusTrap.enabled; },
+        /**
+         * @param {?} val
+         * @return {?}
+         */
+        set: function (val) {
+            this.focusTrap.enabled = !_angular_cdk_coercion.coerceBooleanProperty(val);
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    FocusTrapDeprecatedDirective.prototype.ngOnDestroy = function () {
+        this.focusTrap.destroy();
+    };
+    /**
+     * @return {?}
+     */
+    FocusTrapDeprecatedDirective.prototype.ngAfterContentInit = function () {
+        this.focusTrap.attachAnchors();
+    };
+    FocusTrapDeprecatedDirective.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: 'cdk-focus-trap',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    FocusTrapDeprecatedDirective.ctorParameters = function () { return [
+        { type: _angular_core.ElementRef, },
+        { type: FocusTrapFactory, },
+    ]; };
+    FocusTrapDeprecatedDirective.propDecorators = {
+        'disabled': [{ type: _angular_core.Input },],
+    };
+    return FocusTrapDeprecatedDirective;
+}());
+/**
+ * Directive for trapping focus within a region.
+ */
+var FocusTrapDirective = (function () {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _focusTrapFactory
+     */
+    function FocusTrapDirective(_elementRef, _focusTrapFactory) {
+        this._elementRef = _elementRef;
+        this._focusTrapFactory = _focusTrapFactory;
+        this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);
+    }
+    Object.defineProperty(FocusTrapDirective.prototype, "enabled", {
+        /**
+         * Whether the focus trap is active.
+         * @return {?}
+         */
+        get: function () { return this.focusTrap.enabled; },
+        /**
+         * @param {?} value
+         * @return {?}
+         */
+        set: function (value) { this.focusTrap.enabled = _angular_cdk_coercion.coerceBooleanProperty(value); },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    FocusTrapDirective.prototype.ngOnDestroy = function () {
+        this.focusTrap.destroy();
+    };
+    /**
+     * @return {?}
+     */
+    FocusTrapDirective.prototype.ngAfterContentInit = function () {
+        this.focusTrap.attachAnchors();
+    };
+    FocusTrapDirective.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: '[cdkTrapFocus]',
+                    exportAs: 'cdkTrapFocus',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    FocusTrapDirective.ctorParameters = function () { return [
+        { type: _angular_core.ElementRef, },
+        { type: FocusTrapFactory, },
+    ]; };
+    FocusTrapDirective.propDecorators = {
+        'enabled': [{ type: _angular_core.Input, args: ['cdkTrapFocus',] },],
+    };
+    return FocusTrapDirective;
+}());
+
+var LIVE_ANNOUNCER_ELEMENT_TOKEN = new _angular_core.InjectionToken('liveAnnouncerElement');
+var LiveAnnouncer = (function () {
+    /**
+     * @param {?} elementToken
+     * @param {?} platform
+     */
+    function LiveAnnouncer(elementToken, platform) {
+        // Only do anything if we're on the browser platform.
+        if (platform.isBrowser) {
+            // We inject the live element as `any` because the constructor signature cannot reference
+            // browser globals (HTMLElement) on non-browser environments, since having a class decorator
+            // causes TypeScript to preserve the constructor signature types.
+            this._liveElement = elementToken || this._createLiveElement();
+        }
+    }
+    /**
+     * Announces a message to screenreaders.
+     * @param {?} message Message to be announced to the screenreader
+     * @param {?=} politeness The politeness of the announcer element
+     * @return {?}
+     */
+    LiveAnnouncer.prototype.announce = function (message, politeness) {
+        var _this = this;
+        if (politeness === void 0) { politeness = 'polite'; }
+        this._liveElement.textContent = '';
+        // TODO: ensure changing the politeness works on all environments we support.
+        this._liveElement.setAttribute('aria-live', politeness);
+        // This 100ms timeout is necessary for some browser + screen-reader combinations:
+        // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.
+        // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a
+        //   second time without clearing and then using a non-zero delay.
+        // (using JAWS 17 at time of this writing).
+        setTimeout(function () { return _this._liveElement.textContent = message; }, 100);
+    };
+    /**
+     * @return {?}
+     */
+    LiveAnnouncer.prototype.ngOnDestroy = function () {
+        if (this._liveElement && this._liveElement.parentNode) {
+            this._liveElement.parentNode.removeChild(this._liveElement);
+        }
+    };
+    /**
+     * @return {?}
+     */
+    LiveAnnouncer.prototype._createLiveElement = function () {
+        var /** @type {?} */ liveEl = document.createElement('div');
+        liveEl.classList.add('cdk-visually-hidden');
+        liveEl.setAttribute('aria-atomic', 'true');
+        liveEl.setAttribute('aria-live', 'polite');
+        document.body.appendChild(liveEl);
+        return liveEl;
+    };
+    LiveAnnouncer.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    LiveAnnouncer.ctorParameters = function () { return [
+        { type: undefined, decorators: [{ type: _angular_core.Optional }, { type: _angular_core.Inject, args: [LIVE_ANNOUNCER_ELEMENT_TOKEN,] },] },
+        { type: _angular_cdk_platform.Platform, },
+    ]; };
+    return LiveAnnouncer;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} liveElement
+ * @param {?} platform
+ * @return {?}
+ */
+function LIVE_ANNOUNCER_PROVIDER_FACTORY(parentDispatcher, liveElement, platform) {
+    return parentDispatcher || new LiveAnnouncer(liveElement, platform);
+}
+/**
+ * \@docs-private
+ */
+var LIVE_ANNOUNCER_PROVIDER = {
+    // If there is already a LiveAnnouncer available, use that. Otherwise, provide a new one.
+    provide: LiveAnnouncer,
+    deps: [
+        [new _angular_core.Optional(), new _angular_core.SkipSelf(), LiveAnnouncer],
+        [new _angular_core.Optional(), new _angular_core.Inject(LIVE_ANNOUNCER_ELEMENT_TOKEN)],
+        _angular_cdk_platform.Platform,
+    ],
+    useFactory: LIVE_ANNOUNCER_PROVIDER_FACTORY
+};
+
+// This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found
+// that a value of around 650ms seems appropriate.
+var TOUCH_BUFFER_MS = 650;
+/**
+ * Monitors mouse and keyboard events to determine the cause of focus events.
+ */
+var FocusMonitor = (function () {
+    /**
+     * @param {?} _ngZone
+     * @param {?} _platform
+     */
+    function FocusMonitor(_ngZone, _platform) {
+        var _this = this;
+        this._ngZone = _ngZone;
+        this._platform = _platform;
+        /**
+         * The focus origin that the next focus event is a result of.
+         */
+        this._origin = null;
+        /**
+         * Whether the window has just been focused.
+         */
+        this._windowFocused = false;
+        /**
+         * Weak map of elements being monitored to their info.
+         */
+        this._elementInfo = new WeakMap();
+        this._ngZone.runOutsideAngular(function () { return _this._registerDocumentEvents(); });
+    }
+    /**
+     * Monitors focus on an element and applies appropriate CSS classes.
+     * @param {?} element The element to monitor
+     * @param {?} renderer The renderer to use to apply CSS classes to the element.
+     * @param {?} checkChildren Whether to count the element as focused when its children are focused.
+     * @return {?} An observable that emits when the focus state of the element changes.
+     *     When the element is blurred, null will be emitted.
+     */
+    FocusMonitor.prototype.monitor = function (element, renderer, checkChildren) {
+        var _this = this;
+        // Do nothing if we're not on the browser platform.
+        if (!this._platform.isBrowser) {
+            return rxjs_observable_of.of(null);
+        }
+        // Check if we're already monitoring this element.
+        if (this._elementInfo.has(element)) {
+            var /** @type {?} */ cachedInfo = this._elementInfo.get(element); /** @type {?} */
+            ((cachedInfo)).checkChildren = checkChildren;
+            return ((cachedInfo)).subject.asObservable();
+        }
+        // Create monitored element info.
+        var /** @type {?} */ info = {
+            unlisten: function () { },
+            checkChildren: checkChildren,
+            renderer: renderer,
+            subject: new rxjs_Subject.Subject()
+        };
+        this._elementInfo.set(element, info);
+        // Start listening. We need to listen in capture phase since focus events don't bubble.
+        var /** @type {?} */ focusListener = function (event) { return _this._onFocus(event, element); };
+        var /** @type {?} */ blurListener = function (event) { return _this._onBlur(event, element); };
+        this._ngZone.runOutsideAngular(function () {
+            element.addEventListener('focus', focusListener, true);
+            element.addEventListener('blur', blurListener, true);
+        });
+        // Create an unlisten function for later.
+        info.unlisten = function () {
+            element.removeEventListener('focus', focusListener, true);
+            element.removeEventListener('blur', blurListener, true);
+        };
+        return info.subject.asObservable();
+    };
+    /**
+     * Stops monitoring an element and removes all focus classes.
+     * @param {?} element The element to stop monitoring.
+     * @return {?}
+     */
+    FocusMonitor.prototype.stopMonitoring = function (element) {
+        var /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (elementInfo) {
+            elementInfo.unlisten();
+            elementInfo.subject.complete();
+            this._setClasses(element);
+            this._elementInfo.delete(element);
+        }
+    };
+    /**
+     * Focuses the element via the specified focus origin.
+     * @param {?} element The element to focus.
+     * @param {?} origin The focus origin.
+     * @return {?}
+     */
+    FocusMonitor.prototype.focusVia = function (element, origin) {
+        this._setOriginForCurrentEventQueue(origin);
+        element.focus();
+    };
+    /**
+     * Register necessary event listeners on the document and window.
+     * @return {?}
+     */
+    FocusMonitor.prototype._registerDocumentEvents = function () {
+        var _this = this;
+        // Do nothing if we're not on the browser platform.
+        if (!this._platform.isBrowser) {
+            return;
+        }
+        // Note: we listen to events in the capture phase so we can detect them even if the user stops
+        // propagation.
+        // On keydown record the origin and clear any touch event that may be in progress.
+        document.addEventListener('keydown', function () {
+            _this._lastTouchTarget = null;
+            _this._setOriginForCurrentEventQueue('keyboard');
+        }, true);
+        // On mousedown record the origin only if there is not touch target, since a mousedown can
+        // happen as a result of a touch event.
+        document.addEventListener('mousedown', function () {
+            if (!_this._lastTouchTarget) {
+                _this._setOriginForCurrentEventQueue('mouse');
+            }
+        }, true);
+        // When the touchstart event fires the focus event is not yet in the event queue. This means
+        // we can't rely on the trick used above (setting timeout of 0ms). Instead we wait 650ms to
+        // see if a focus happens.
+        document.addEventListener('touchstart', function (event) {
+            if (_this._touchTimeout != null) {
+                clearTimeout(_this._touchTimeout);
+            }
+            _this._lastTouchTarget = event.target;
+            _this._touchTimeout = setTimeout(function () { return _this._lastTouchTarget = null; }, TOUCH_BUFFER_MS);
+        }, true);
+        // Make a note of when the window regains focus, so we can restore the origin info for the
+        // focused element.
+        window.addEventListener('focus', function () {
+            _this._windowFocused = true;
+            setTimeout(function () { return _this._windowFocused = false; }, 0);
+        });
+    };
+    /**
+     * Sets the focus classes on the element based on the given focus origin.
+     * @param {?} element The element to update the classes on.
+     * @param {?=} origin The focus origin.
+     * @return {?}
+     */
+    FocusMonitor.prototype._setClasses = function (element, origin) {
+        var /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (elementInfo) {
+            var /** @type {?} */ toggleClass = function (className, shouldSet) {
+                shouldSet ? elementInfo.renderer.addClass(element, className) :
+                    elementInfo.renderer.removeClass(element, className);
+            };
+            toggleClass('cdk-focused', !!origin);
+            toggleClass('cdk-touch-focused', origin === 'touch');
+            toggleClass('cdk-keyboard-focused', origin === 'keyboard');
+            toggleClass('cdk-mouse-focused', origin === 'mouse');
+            toggleClass('cdk-program-focused', origin === 'program');
+        }
+    };
+    /**
+     * Sets the origin and schedules an async function to clear it at the end of the event queue.
+     * @param {?} origin The origin to set.
+     * @return {?}
+     */
+    FocusMonitor.prototype._setOriginForCurrentEventQueue = function (origin) {
+        var _this = this;
+        this._origin = origin;
+        setTimeout(function () { return _this._origin = null; }, 0);
+    };
+    /**
+     * Checks whether the given focus event was caused by a touchstart event.
+     * @param {?} event The focus event to check.
+     * @return {?} Whether the event was caused by a touch.
+     */
+    FocusMonitor.prototype._wasCausedByTouch = function (event) {
+        // Note(mmalerba): This implementation is not quite perfect, there is a small edge case.
+        // Consider the following dom structure:
+        //
+        // <div #parent tabindex="0" cdkFocusClasses>
+        //   <div #child (click)="#parent.focus()"></div>
+        // </div>
+        //
+        // If the user touches the #child element and the #parent is programmatically focused as a
+        // result, this code will still consider it to have been caused by the touch event and will
+        // apply the cdk-touch-focused class rather than the cdk-program-focused class. This is a
+        // relatively small edge-case that can be worked around by using
+        // focusVia(parentEl, renderer,  'program') to focus the parent element.
+        //
+        // If we decide that we absolutely must handle this case correctly, we can do so by listening
+        // for the first focus event after the touchstart, and then the first blur event after that
+        // focus event. When that blur event fires we know that whatever follows is not a result of the
+        // touchstart.
+        var /** @type {?} */ focusTarget = event.target;
+        return this._lastTouchTarget instanceof Node && focusTarget instanceof Node &&
+            (focusTarget === this._lastTouchTarget || focusTarget.contains(this._lastTouchTarget));
+    };
+    /**
+     * Handles focus events on a registered element.
+     * @param {?} event The focus event.
+     * @param {?} element The monitored element.
+     * @return {?}
+     */
+    FocusMonitor.prototype._onFocus = function (event, element) {
+        // NOTE(mmalerba): We currently set the classes based on the focus origin of the most recent
+        // focus event affecting the monitored element. If we want to use the origin of the first event
+        // instead we should check for the cdk-focused class here and return if the element already has
+        // it. (This only matters for elements that have includesChildren = true).
+        // If we are not counting child-element-focus as focused, make sure that the event target is the
+        // monitored element itself.
+        var /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (!elementInfo || (!elementInfo.checkChildren && element !== event.target)) {
+            return;
+        }
+        // If we couldn't detect a cause for the focus event, it's due to one of three reasons:
+        // 1) The window has just regained focus, in which case we want to restore the focused state of
+        //    the element from before the window blurred.
+        // 2) It was caused by a touch event, in which case we mark the origin as 'touch'.
+        // 3) The element was programmatically focused, in which case we should mark the origin as
+        //    'program'.
+        if (!this._origin) {
+            if (this._windowFocused && this._lastFocusOrigin) {
+                this._origin = this._lastFocusOrigin;
+            }
+            else if (this._wasCausedByTouch(event)) {
+                this._origin = 'touch';
+            }
+            else {
+                this._origin = 'program';
+            }
+        }
+        this._setClasses(element, this._origin);
+        elementInfo.subject.next(this._origin);
+        this._lastFocusOrigin = this._origin;
+        this._origin = null;
+    };
+    /**
+     * Handles blur events on a registered element.
+     * @param {?} event The blur event.
+     * @param {?} element The monitored element.
+     * @return {?}
+     */
+    FocusMonitor.prototype._onBlur = function (event, element) {
+        // If we are counting child-element-focus as focused, make sure that we aren't just blurring in
+        // order to focus another child of the monitored element.
+        var /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (!elementInfo || (elementInfo.checkChildren && event.relatedTarget instanceof Node &&
+            element.contains(event.relatedTarget))) {
+            return;
+        }
+        this._setClasses(element);
+        elementInfo.subject.next(null);
+    };
+    FocusMonitor.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    FocusMonitor.ctorParameters = function () { return [
+        { type: _angular_core.NgZone, },
+        { type: _angular_cdk_platform.Platform, },
+    ]; };
+    return FocusMonitor;
+}());
+/**
+ * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or
+ * programmatically) and adds corresponding classes to the element.
+ *
+ * There are two variants of this directive:
+ * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is
+ *    focused.
+ * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.
+ */
+var CdkMonitorFocus = (function () {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _focusMonitor
+     * @param {?} renderer
+     */
+    function CdkMonitorFocus(_elementRef, _focusMonitor, renderer) {
+        var _this = this;
+        this._elementRef = _elementRef;
+        this._focusMonitor = _focusMonitor;
+        this.cdkFocusChange = new _angular_core.EventEmitter();
+        this._monitorSubscription = this._focusMonitor.monitor(this._elementRef.nativeElement, renderer, this._elementRef.nativeElement.hasAttribute('cdkMonitorSubtreeFocus'))
+            .subscribe(function (origin) { return _this.cdkFocusChange.emit(origin); });
+    }
+    /**
+     * @return {?}
+     */
+    CdkMonitorFocus.prototype.ngOnDestroy = function () {
+        this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);
+        this._monitorSubscription.unsubscribe();
+    };
+    CdkMonitorFocus.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkMonitorFocus.ctorParameters = function () { return [
+        { type: _angular_core.ElementRef, },
+        { type: FocusMonitor, },
+        { type: _angular_core.Renderer2, },
+    ]; };
+    CdkMonitorFocus.propDecorators = {
+        'cdkFocusChange': [{ type: _angular_core.Output },],
+    };
+    return CdkMonitorFocus;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} ngZone
+ * @param {?} platform
+ * @return {?}
+ */
+function FOCUS_MONITOR_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {
+    return parentDispatcher || new FocusMonitor(ngZone, platform);
+}
+/**
+ * \@docs-private
+ */
+var FOCUS_MONITOR_PROVIDER = {
+    // If there is already a FocusMonitor available, use that. Otherwise, provide a new one.
+    provide: FocusMonitor,
+    deps: [[new _angular_core.Optional(), new _angular_core.SkipSelf(), FocusMonitor], _angular_core.NgZone, _angular_cdk_platform.Platform],
+    useFactory: FOCUS_MONITOR_PROVIDER_FACTORY
+};
+
+var A11yModule = (function () {
+    function A11yModule() {
+    }
+    A11yModule.decorators = [
+        { type: _angular_core.NgModule, args: [{
+                    imports: [_angular_common.CommonModule, _angular_cdk_platform.PlatformModule],
+                    declarations: [FocusTrapDirective, FocusTrapDeprecatedDirective, CdkMonitorFocus],
+                    exports: [FocusTrapDirective, FocusTrapDeprecatedDirective, CdkMonitorFocus],
+                    providers: [
+                        InteractivityChecker,
+                        FocusTrapFactory,
+                        AriaDescriber,
+                        LIVE_ANNOUNCER_PROVIDER,
+                        ARIA_DESCRIBER_PROVIDER,
+                        FOCUS_MONITOR_PROVIDER,
+                    ]
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    A11yModule.ctorParameters = function () { return []; };
+    return A11yModule;
+}());
+
+exports.ActiveDescendantKeyManager = ActiveDescendantKeyManager;
+exports.MESSAGES_CONTAINER_ID = MESSAGES_CONTAINER_ID;
+exports.CDK_DESCRIBEDBY_ID_PREFIX = CDK_DESCRIBEDBY_ID_PREFIX;
+exports.CDK_DESCRIBEDBY_HOST_ATTRIBUTE = CDK_DESCRIBEDBY_HOST_ATTRIBUTE;
+exports.AriaDescriber = AriaDescriber;
+exports.ARIA_DESCRIBER_PROVIDER_FACTORY = ARIA_DESCRIBER_PROVIDER_FACTORY;
+exports.ARIA_DESCRIBER_PROVIDER = ARIA_DESCRIBER_PROVIDER;
+exports.isFakeMousedownFromScreenReader = isFakeMousedownFromScreenReader;
+exports.FocusKeyManager = FocusKeyManager;
+exports.FocusTrap = FocusTrap;
+exports.FocusTrapFactory = FocusTrapFactory;
+exports.FocusTrapDeprecatedDirective = FocusTrapDeprecatedDirective;
+exports.FocusTrapDirective = FocusTrapDirective;
+exports.InteractivityChecker = InteractivityChecker;
+exports.ListKeyManager = ListKeyManager;
+exports.LIVE_ANNOUNCER_ELEMENT_TOKEN = LIVE_ANNOUNCER_ELEMENT_TOKEN;
+exports.LiveAnnouncer = LiveAnnouncer;
+exports.LIVE_ANNOUNCER_PROVIDER_FACTORY = LIVE_ANNOUNCER_PROVIDER_FACTORY;
+exports.LIVE_ANNOUNCER_PROVIDER = LIVE_ANNOUNCER_PROVIDER;
+exports.TOUCH_BUFFER_MS = TOUCH_BUFFER_MS;
+exports.FocusMonitor = FocusMonitor;
+exports.CdkMonitorFocus = CdkMonitorFocus;
+exports.FOCUS_MONITOR_PROVIDER_FACTORY = FOCUS_MONITOR_PROVIDER_FACTORY;
+exports.FOCUS_MONITOR_PROVIDER = FOCUS_MONITOR_PROVIDER;
+exports.A11yModule = A11yModule;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-a11y.umd.js.map


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

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

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

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-stepper.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-stepper.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-stepper.umd.min.js.map
new file mode 100644
index 0000000..c72a121
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-stepper.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-stepper.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","stepper","core","keycodes","coercion","bidi","common","this","_angular_core","_angular_cdk_keycodes","_angular_cdk_coercion","_angular_cdk_bidi","_angular_common","CdkStepLabel","template","decorators","type","Directive","args","selector","ctorParameters","TemplateRef","nextId","StepperSelectionEvent","CdkStep","_stepper","interacted","_editable","_optional","_customCompleted","Object","defineProperty","prototype","get","set","value","coerceBooleanProperty","enumerable","configurable","_defaultCompleted","stepControl","valid","select","selected","ngOnChanges","_stateChanged","Component","exportAs","encapsulation","ViewEncapsulation","None","preserveWhitespaces","changeDetection","ChangeDetectionStrategy","OnPush","CdkStepper","Inject","forwardRef","propDecorators","stepLabel","ContentChild","content","ViewChild
 ","Input","label","editable","optional","completed","_dir","_changeDetectorRef","_linear","_selectedIndex","selectionChange","EventEmitter","_focusIndex","_groupId","index","_anyControlsInvalid","_steps","toArray","_stepHeader","nativeElement","blur","_emitStepperSelectionEvent","selectedIndex","step","indexOf","next","Math","min","length","previous","max","_getStepLabelId","i","_getStepContentId","markForCheck","_getAnimationDirection","position","_layoutDirection","_getIndicatorType","newIndex","stepsArray","emit","previouslySelectedIndex","selectedStep","previouslySelectedStep","_onKeydown","event","keyCode","RIGHT_ARROW","_focusPreviousStep","_focusNextStep","LEFT_ARROW","SPACE","ENTER","preventDefault","_focusStep","focus","slice","some","invalid","Directionality","Optional","ChangeDetectorRef","ContentChildren","linear","Output","CdkStepperNext","host","(click)","CdkStepperPrevious","CdkStepperModule","NgModule","imports","BidiModule","CommonModule","declarations"],"mappings":
 "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","file":"/Users/karakara/repos/material2/dist/bundles/cdk-stepper.umd.min.js"}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/scrolling.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/scrolling.js b/node_modules/@angular/cdk/esm2015/scrolling.js
new file mode 100644
index 0000000..99ee5f6
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/scrolling.js
@@ -0,0 +1,401 @@
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Directive, ElementRef, Injectable, NgModule, NgZone, Optional, Renderer2, SkipSelf } from '@angular/core';
+import { Platform, PlatformModule } from '@angular/cdk/platform';
+import { Subject } from 'rxjs/Subject';
+import { Subscription } from 'rxjs/Subscription';
+import { fromEvent } from 'rxjs/observable/fromEvent';
+import { auditTime } from 'rxjs/operator/auditTime';
+import { merge } from 'rxjs/observable/merge';
+import { of } from 'rxjs/observable/of';
+
+/**
+ * Time in ms to throttle the scrolling events by default.
+ */
+const DEFAULT_SCROLL_TIME = 20;
+/**
+ * Service contained all registered Scrollable references and emits an event when any one of the
+ * Scrollable references emit a scrolled event.
+ */
+class ScrollDispatcher {
+    /**
+     * @param {?} _ngZone
+     * @param {?} _platform
+     */
+    constructor(_ngZone, _platform) {
+        this._ngZone = _ngZone;
+        this._platform = _platform;
+        /**
+         * Subject for notifying that a registered scrollable reference element has been scrolled.
+         */
+        this._scrolled = new Subject();
+        /**
+         * Keeps track of the global `scroll` and `resize` subscriptions.
+         */
+        this._globalSubscription = null;
+        /**
+         * Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards.
+         */
+        this._scrolledCount = 0;
+        /**
+         * Map of all the scrollable references that are registered with the service and their
+         * scroll event subscriptions.
+         */
+        this.scrollableReferences = new Map();
+    }
+    /**
+     * Registers a Scrollable with the service and listens for its scrolled events. When the
+     * scrollable is scrolled, the service emits the event in its scrolled observable.
+     * @param {?} scrollable Scrollable instance to be registered.
+     * @return {?}
+     */
+    register(scrollable) {
+        const /** @type {?} */ scrollSubscription = scrollable.elementScrolled().subscribe(() => this._notify());
+        this.scrollableReferences.set(scrollable, scrollSubscription);
+    }
+    /**
+     * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.
+     * @param {?} scrollable Scrollable instance to be deregistered.
+     * @return {?}
+     */
+    deregister(scrollable) {
+        const /** @type {?} */ scrollableReference = this.scrollableReferences.get(scrollable);
+        if (scrollableReference) {
+            scrollableReference.unsubscribe();
+            this.scrollableReferences.delete(scrollable);
+        }
+    }
+    /**
+     * Subscribes to an observable that emits an event whenever any of the registered Scrollable
+     * references (or window, document, or body) fire a scrolled event. Can provide a time in ms
+     * to override the default "throttle" time.
+     * @param {?=} auditTimeInMs
+     * @param {?=} callback
+     * @return {?}
+     */
+    scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME, callback) {
+        // Scroll events can only happen on the browser, so do nothing if we're not on the browser.
+        if (!this._platform.isBrowser) {
+            return Subscription.EMPTY;
+        }
+        // In the case of a 0ms delay, use an observable without auditTime
+        // since it does add a perceptible delay in processing overhead.
+        let /** @type {?} */ observable = auditTimeInMs > 0 ?
+            auditTime.call(this._scrolled.asObservable(), auditTimeInMs) :
+            this._scrolled.asObservable();
+        this._scrolledCount++;
+        if (!this._globalSubscription) {
+            this._globalSubscription = this._ngZone.runOutsideAngular(() => {
+                return fromEvent(window.document, 'scroll').subscribe(() => this._notify());
+            });
+        }
+        // Note that we need to do the subscribing from here, in order to be able to remove
+        // the global event listeners once there are no more subscriptions.
+        let /** @type {?} */ subscription = observable.subscribe(callback);
+        subscription.add(() => {
+            this._scrolledCount--;
+            if (this._globalSubscription && !this.scrollableReferences.size && !this._scrolledCount) {
+                this._globalSubscription.unsubscribe();
+                this._globalSubscription = null;
+            }
+        });
+        return subscription;
+    }
+    /**
+     * Returns all registered Scrollables that contain the provided element.
+     * @param {?} elementRef
+     * @return {?}
+     */
+    getScrollContainers(elementRef) {
+        const /** @type {?} */ scrollingContainers = [];
+        this.scrollableReferences.forEach((_subscription, scrollable) => {
+            if (this.scrollableContainsElement(scrollable, elementRef)) {
+                scrollingContainers.push(scrollable);
+            }
+        });
+        return scrollingContainers;
+    }
+    /**
+     * Returns true if the element is contained within the provided Scrollable.
+     * @param {?} scrollable
+     * @param {?} elementRef
+     * @return {?}
+     */
+    scrollableContainsElement(scrollable, elementRef) {
+        let /** @type {?} */ element = elementRef.nativeElement;
+        let /** @type {?} */ scrollableElement = scrollable.getElementRef().nativeElement;
+        // Traverse through the element parents until we reach null, checking if any of the elements
+        // are the scrollable's element.
+        do {
+            if (element == scrollableElement) {
+                return true;
+            }
+        } while (element = element.parentElement);
+        return false;
+    }
+    /**
+     * Sends a notification that a scroll event has been fired.
+     * @return {?}
+     */
+    _notify() {
+        this._scrolled.next();
+    }
+}
+ScrollDispatcher.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+ScrollDispatcher.ctorParameters = () => [
+    { type: NgZone, },
+    { type: Platform, },
+];
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} ngZone
+ * @param {?} platform
+ * @return {?}
+ */
+function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {
+    return parentDispatcher || new ScrollDispatcher(ngZone, platform);
+}
+/**
+ * \@docs-private
+ */
+const SCROLL_DISPATCHER_PROVIDER = {
+    // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.
+    provide: ScrollDispatcher,
+    deps: [[new Optional(), new SkipSelf(), ScrollDispatcher], NgZone, Platform],
+    useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY
+};
+
+/**
+ * Sends an event when the directive's element is scrolled. Registers itself with the
+ * ScrollDispatcher service to include itself as part of its collection of scrolling events that it
+ * can be listened to through the service.
+ */
+class Scrollable {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _scroll
+     * @param {?} _ngZone
+     * @param {?} _renderer
+     */
+    constructor(_elementRef, _scroll, _ngZone, _renderer) {
+        this._elementRef = _elementRef;
+        this._scroll = _scroll;
+        this._ngZone = _ngZone;
+        this._renderer = _renderer;
+        this._elementScrolled = new Subject();
+    }
+    /**
+     * @return {?}
+     */
+    ngOnInit() {
+        this._scrollListener = this._ngZone.runOutsideAngular(() => {
+            return this._renderer.listen(this.getElementRef().nativeElement, 'scroll', (event) => {
+                this._elementScrolled.next(event);
+            });
+        });
+        this._scroll.register(this);
+    }
+    /**
+     * @return {?}
+     */
+    ngOnDestroy() {
+        this._scroll.deregister(this);
+        if (this._scrollListener) {
+            this._scrollListener();
+            this._scrollListener = null;
+        }
+    }
+    /**
+     * Returns observable that emits when a scroll event is fired on the host element.
+     * @return {?}
+     */
+    elementScrolled() {
+        return this._elementScrolled.asObservable();
+    }
+    /**
+     * @return {?}
+     */
+    getElementRef() {
+        return this._elementRef;
+    }
+}
+Scrollable.decorators = [
+    { type: Directive, args: [{
+                selector: '[cdk-scrollable], [cdkScrollable]'
+            },] },
+];
+/**
+ * @nocollapse
+ */
+Scrollable.ctorParameters = () => [
+    { type: ElementRef, },
+    { type: ScrollDispatcher, },
+    { type: NgZone, },
+    { type: Renderer2, },
+];
+
+/**
+ * Time in ms to throttle the resize events by default.
+ */
+const DEFAULT_RESIZE_TIME = 20;
+/**
+ * Simple utility for getting the bounds of the browser viewport.
+ * \@docs-private
+ */
+class ViewportRuler {
+    /**
+     * @param {?} platform
+     * @param {?} ngZone
+     * @param {?} scrollDispatcher
+     */
+    constructor(platform, ngZone, scrollDispatcher) {
+        this._change = platform.isBrowser ? ngZone.runOutsideAngular(() => {
+            return merge(fromEvent(window, 'resize'), fromEvent(window, 'orientationchange'));
+        }) : of();
+        // Subscribe to scroll and resize events and update the document rectangle on changes.
+        this._invalidateCacheSubscriptions = [
+            scrollDispatcher.scrolled(0, () => this._cacheViewportGeometry()),
+            this.change().subscribe(() => this._cacheViewportGeometry())
+        ];
+    }
+    /**
+     * @return {?}
+     */
+    ngOnDestroy() {
+        this._invalidateCacheSubscriptions.forEach(subscription => subscription.unsubscribe());
+    }
+    /**
+     * Gets a ClientRect for the viewport's bounds.
+     * @param {?=} documentRect
+     * @return {?}
+     */
+    getViewportRect(documentRect = this._documentRect) {
+        // Cache the document bounding rect so that we don't recompute it for multiple calls.
+        if (!documentRect) {
+            this._cacheViewportGeometry();
+            documentRect = this._documentRect;
+        }
+        // Use the document element's bounding rect rather than the window scroll properties
+        // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll
+        // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different
+        // conceptual viewports. Under most circumstances these viewports are equivalent, but they
+        // can disagree when the page is pinch-zoomed (on devices that support touch).
+        // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4
+        // We use the documentElement instead of the body because, by default (without a css reset)
+        // browsers typically give the document body an 8px margin, which is not included in
+        // getBoundingClientRect().
+        const /** @type {?} */ scrollPosition = this.getViewportScrollPosition(documentRect);
+        const /** @type {?} */ height = window.innerHeight;
+        const /** @type {?} */ width = window.innerWidth;
+        return {
+            top: scrollPosition.top,
+            left: scrollPosition.left,
+            bottom: scrollPosition.top + height,
+            right: scrollPosition.left + width,
+            height,
+            width,
+        };
+    }
+    /**
+     * Gets the (top, left) scroll position of the viewport.
+     * @param {?=} documentRect
+     * @return {?}
+     */
+    getViewportScrollPosition(documentRect = this._documentRect) {
+        // Cache the document bounding rect so that we don't recompute it for multiple calls.
+        if (!documentRect) {
+            this._cacheViewportGeometry();
+            documentRect = this._documentRect;
+        }
+        // The top-left-corner of the viewport is determined by the scroll position of the document
+        // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about
+        // whether `document.body` or `document.documentElement` is the scrolled element, so reading
+        // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of
+        // `document.documentElement` works consistently, where the `top` and `left` values will
+        // equal negative the scroll position.
+        const /** @type {?} */ top = -((documentRect)).top || document.body.scrollTop || window.scrollY ||
+            document.documentElement.scrollTop || 0;
+        const /** @type {?} */ left = -((documentRect)).left || document.body.scrollLeft || window.scrollX ||
+            document.documentElement.scrollLeft || 0;
+        return { top, left };
+    }
+    /**
+     * Returns a stream that emits whenever the size of the viewport changes.
+     * @param {?=} throttleTime
+     * @return {?}
+     */
+    change(throttleTime = DEFAULT_RESIZE_TIME) {
+        return throttleTime > 0 ? auditTime.call(this._change, throttleTime) : this._change;
+    }
+    /**
+     * Caches the latest client rectangle of the document element.
+     * @return {?}
+     */
+    _cacheViewportGeometry() {
+        this._documentRect = document.documentElement.getBoundingClientRect();
+    }
+}
+ViewportRuler.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+ViewportRuler.ctorParameters = () => [
+    { type: Platform, },
+    { type: NgZone, },
+    { type: ScrollDispatcher, },
+];
+/**
+ * \@docs-private
+ * @param {?} parentRuler
+ * @param {?} platform
+ * @param {?} ngZone
+ * @param {?} scrollDispatcher
+ * @return {?}
+ */
+function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, platform, ngZone, scrollDispatcher) {
+    return parentRuler || new ViewportRuler(platform, ngZone, scrollDispatcher);
+}
+/**
+ * \@docs-private
+ */
+const VIEWPORT_RULER_PROVIDER = {
+    // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.
+    provide: ViewportRuler,
+    deps: [[new Optional(), new SkipSelf(), ViewportRuler], Platform, NgZone, ScrollDispatcher],
+    useFactory: VIEWPORT_RULER_PROVIDER_FACTORY
+};
+
+class ScrollDispatchModule {
+}
+ScrollDispatchModule.decorators = [
+    { type: NgModule, args: [{
+                imports: [PlatformModule],
+                exports: [Scrollable],
+                declarations: [Scrollable],
+                providers: [SCROLL_DISPATCHER_PROVIDER],
+            },] },
+];
+/**
+ * @nocollapse
+ */
+ScrollDispatchModule.ctorParameters = () => [];
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { DEFAULT_SCROLL_TIME, ScrollDispatcher, SCROLL_DISPATCHER_PROVIDER_FACTORY, SCROLL_DISPATCHER_PROVIDER, Scrollable, DEFAULT_RESIZE_TIME, ViewportRuler, VIEWPORT_RULER_PROVIDER_FACTORY, VIEWPORT_RULER_PROVIDER, ScrollDispatchModule };
+//# sourceMappingURL=scrolling.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/scrolling.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/scrolling.js.map b/node_modules/@angular/cdk/esm2015/scrolling.js.map
new file mode 100644
index 0000000..b8ad538
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/scrolling.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"scrolling.js","sources":["../../packages/cdk/scrolling/scroll-dispatcher.js","../../packages/cdk/scrolling/scrollable.js","../../packages/cdk/scrolling/viewport-ruler.js","../../packages/cdk/scrolling/scrolling-module.js","../../packages/cdk/scrolling/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Injectable, NgZone, Optional, SkipSelf } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { Subject } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { fromEvent } from 'rxjs/observable/fromEvent';\nimport { auditTime } from 'rxjs/operator/auditTime';\n/**\n * Time in ms to throttle the scrolling events by default.\n */\nexport const DEFAULT_SCROLL_TIME = 20;\n/**\n * Service contained all registered Scrolla
 ble references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nexport class ScrollDispatcher {\n    /**\n     * @param {?} _ngZone\n     * @param {?} _platform\n     */\n    constructor(_ngZone, _platform) {\n        this._ngZone = _ngZone;\n        this._platform = _platform;\n        /**\n         * Subject for notifying that a registered scrollable reference element has been scrolled.\n         */\n        this._scrolled = new Subject();\n        /**\n         * Keeps track of the global `scroll` and `resize` subscriptions.\n         */\n        this._globalSubscription = null;\n        /**\n         * Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards.\n         */\n        this._scrolledCount = 0;\n        /**\n         * Map of all the scrollable references that are registered with the service and their\n         * scroll event subscriptions.\n         */\n        this.scrollableReferences = n
 ew Map();\n    }\n    /**\n     * Registers a Scrollable with the service and listens for its scrolled events. When the\n     * scrollable is scrolled, the service emits the event in its scrolled observable.\n     * @param {?} scrollable Scrollable instance to be registered.\n     * @return {?}\n     */\n    register(scrollable) {\n        const /** @type {?} */ scrollSubscription = scrollable.elementScrolled().subscribe(() => this._notify());\n        this.scrollableReferences.set(scrollable, scrollSubscription);\n    }\n    /**\n     * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\n     * @param {?} scrollable Scrollable instance to be deregistered.\n     * @return {?}\n     */\n    deregister(scrollable) {\n        const /** @type {?} */ scrollableReference = this.scrollableReferences.get(scrollable);\n        if (scrollableReference) {\n            scrollableReference.unsubscribe();\n            this.scrollableReferences.delete(scrollable)
 ;\n        }\n    }\n    /**\n     * Subscribes to an observable that emits an event whenever any of the registered Scrollable\n     * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n     * to override the default \"throttle\" time.\n     * @param {?=} auditTimeInMs\n     * @param {?=} callback\n     * @return {?}\n     */\n    scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME, callback) {\n        // Scroll events can only happen on the browser, so do nothing if we're not on the browser.\n        if (!this._platform.isBrowser) {\n            return Subscription.EMPTY;\n        }\n        // In the case of a 0ms delay, use an observable without auditTime\n        // since it does add a perceptible delay in processing overhead.\n        let /** @type {?} */ observable = auditTimeInMs > 0 ?\n            auditTime.call(this._scrolled.asObservable(), auditTimeInMs) :\n            this._scrolled.asObservable();\n        this._scrolledCount++;\n      
   if (!this._globalSubscription) {\n            this._globalSubscription = this._ngZone.runOutsideAngular(() => {\n                return fromEvent(window.document, 'scroll').subscribe(() => this._notify());\n            });\n        }\n        // Note that we need to do the subscribing from here, in order to be able to remove\n        // the global event listeners once there are no more subscriptions.\n        let /** @type {?} */ subscription = observable.subscribe(callback);\n        subscription.add(() => {\n            this._scrolledCount--;\n            if (this._globalSubscription && !this.scrollableReferences.size && !this._scrolledCount) {\n                this._globalSubscription.unsubscribe();\n                this._globalSubscription = null;\n            }\n        });\n        return subscription;\n    }\n    /**\n     * Returns all registered Scrollables that contain the provided element.\n     * @param {?} elementRef\n     * @return {?}\n     */\n    getScrollContaine
 rs(elementRef) {\n        const /** @type {?} */ scrollingContainers = [];\n        this.scrollableReferences.forEach((_subscription, scrollable) => {\n            if (this.scrollableContainsElement(scrollable, elementRef)) {\n                scrollingContainers.push(scrollable);\n            }\n        });\n        return scrollingContainers;\n    }\n    /**\n     * Returns true if the element is contained within the provided Scrollable.\n     * @param {?} scrollable\n     * @param {?} elementRef\n     * @return {?}\n     */\n    scrollableContainsElement(scrollable, elementRef) {\n        let /** @type {?} */ element = elementRef.nativeElement;\n        let /** @type {?} */ scrollableElement = scrollable.getElementRef().nativeElement;\n        // Traverse through the element parents until we reach null, checking if any of the elements\n        // are the scrollable's element.\n        do {\n            if (element == scrollableElement) {\n                return true;\n            
 }\n        } while (element = element.parentElement);\n        return false;\n    }\n    /**\n     * Sends a notification that a scroll event has been fired.\n     * @return {?}\n     */\n    _notify() {\n        this._scrolled.next();\n    }\n}\nScrollDispatcher.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nScrollDispatcher.ctorParameters = () => [\n    { type: NgZone, },\n    { type: Platform, },\n];\nfunction ScrollDispatcher_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ScrollDispatcher.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ScrollDispatcher.ctorParameters;\n    /**\n     * Subject for notifying that a registered scrollable reference element has been scrolled.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype._scrolled;\n    /**\n     * Keeps track of the global `scroll` and `resize` subscriptions.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype._globalSubscription;\n    /**\n     * Ke
 eps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype._scrolledCount;\n    /**\n     * Map of all the scrollable references that are registered with the service and their\n     * scroll event subscriptions.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype.scrollableReferences;\n    /** @type {?} */\n    ScrollDispatcher.prototype._ngZone;\n    /** @type {?} */\n    ScrollDispatcher.prototype._platform;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} ngZone\n * @param {?} platform\n * @return {?}\n */\nexport function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {\n    return parentDispatcher || new ScrollDispatcher(ngZone, platform);\n}\n/**\n * \\@docs-private\n */\nexport const SCROLL_DISPATCHER_PROVIDER = {\n    // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.\n    provide: ScrollDi
 spatcher,\n    deps: [[new Optional(), new SkipSelf(), ScrollDispatcher], NgZone, Platform],\n    useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=scroll-dispatcher.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Directive, ElementRef, NgZone, Renderer2 } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { ScrollDispatcher } from './scroll-dispatcher';\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nexport class Scrollable {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _scroll\n     * @param {?} _ngZone\n     * @param {?} _renderer\n     */\n    constructor
 (_elementRef, _scroll, _ngZone, _renderer) {\n        this._elementRef = _elementRef;\n        this._scroll = _scroll;\n        this._ngZone = _ngZone;\n        this._renderer = _renderer;\n        this._elementScrolled = new Subject();\n    }\n    /**\n     * @return {?}\n     */\n    ngOnInit() {\n        this._scrollListener = this._ngZone.runOutsideAngular(() => {\n            return this._renderer.listen(this.getElementRef().nativeElement, 'scroll', (event) => {\n                this._elementScrolled.next(event);\n            });\n        });\n        this._scroll.register(this);\n    }\n    /**\n     * @return {?}\n     */\n    ngOnDestroy() {\n        this._scroll.deregister(this);\n        if (this._scrollListener) {\n            this._scrollListener();\n            this._scrollListener = null;\n        }\n    }\n    /**\n     * Returns observable that emits when a scroll event is fired on the host element.\n     * @return {?}\n     */\n    elementScrolled() {\n        retur
 n this._elementScrolled.asObservable();\n    }\n    /**\n     * @return {?}\n     */\n    getElementRef() {\n        return this._elementRef;\n    }\n}\nScrollable.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdk-scrollable], [cdkScrollable]'\n            },] },\n];\n/**\n * @nocollapse\n */\nScrollable.ctorParameters = () => [\n    { type: ElementRef, },\n    { type: ScrollDispatcher, },\n    { type: NgZone, },\n    { type: Renderer2, },\n];\nfunction Scrollable_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Scrollable.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    Scrollable.ctorParameters;\n    /** @type {?} */\n    Scrollable.prototype._elementScrolled;\n    /** @type {?} */\n    Scrollable.prototype._scrollListener;\n    /** @type {?} */\n    Scrollable.prototype._elementRef;\n    /** @type {?} */\n    Scrollable.prototype._scroll;\n    /** @type {?} */\n    Scrollable.prototype._ngZone;\n    /** @type {?} *
 /\n    Scrollable.prototype._renderer;\n}\n//# sourceMappingURL=scrollable.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, NgZone } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { ScrollDispatcher } from './scroll-dispatcher';\nimport { fromEvent } from 'rxjs/observable/fromEvent';\nimport { merge } from 'rxjs/observable/merge';\nimport { auditTime } from 'rxjs/operator/auditTime';\nimport { of as observableOf } from 'rxjs/observable/of';\n/**\n * Time in ms to throttle the resize events by default.\n */\nexport const DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * \\@docs-private\n */\nexport class ViewportRuler {\n    /**\n     * @param {?} platform\n     * @param {?} ngZone\n     * @p
 aram {?} scrollDispatcher\n     */\n    constructor(platform, ngZone, scrollDispatcher) {\n        this._change = platform.isBrowser ? ngZone.runOutsideAngular(() => {\n            return merge(fromEvent(window, 'resize'), fromEvent(window, 'orientationchange'));\n        }) : observableOf();\n        // Subscribe to scroll and resize events and update the document rectangle on changes.\n        this._invalidateCacheSubscriptions = [\n            scrollDispatcher.scrolled(0, () => this._cacheViewportGeometry()),\n            this.change().subscribe(() => this._cacheViewportGeometry())\n        ];\n    }\n    /**\n     * @return {?}\n     */\n    ngOnDestroy() {\n        this._invalidateCacheSubscriptions.forEach(subscription => subscription.unsubscribe());\n    }\n    /**\n     * Gets a ClientRect for the viewport's bounds.\n     * @param {?=} documentRect\n     * @return {?}\n     */\n    getViewportRect(documentRect = this._documentRect) {\n        // Cache the document bounding r
 ect so that we don't recompute it for multiple calls.\n        if (!documentRect) {\n            this._cacheViewportGeometry();\n            documentRect = this._documentRect;\n        }\n        // Use the document element's bounding rect rather than the window scroll properties\n        // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n        // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n        // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n        // can disagree when the page is pinch-zoomed (on devices that support touch).\n        // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n        // We use the documentElement instead of the body because, by default (without a css reset)\n        // browsers typically give the document body an 8px margin, which is not included in\n        // getBoundingClientRect().\n        const /** @ty
 pe {?} */ scrollPosition = this.getViewportScrollPosition(documentRect);\n        const /** @type {?} */ height = window.innerHeight;\n        const /** @type {?} */ width = window.innerWidth;\n        return {\n            top: scrollPosition.top,\n            left: scrollPosition.left,\n            bottom: scrollPosition.top + height,\n            right: scrollPosition.left + width,\n            height,\n            width,\n        };\n    }\n    /**\n     * Gets the (top, left) scroll position of the viewport.\n     * @param {?=} documentRect\n     * @return {?}\n     */\n    getViewportScrollPosition(documentRect = this._documentRect) {\n        // Cache the document bounding rect so that we don't recompute it for multiple calls.\n        if (!documentRect) {\n            this._cacheViewportGeometry();\n            documentRect = this._documentRect;\n        }\n        // The top-left-corner of the viewport is determined by the scroll position of the document\n        // body, n
 ormally 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 /** @type {?} */ top = -((documentRect)).top || document.body.scrollTop || window.scrollY ||\n            document.documentElement.scrollTop || 0;\n        const /** @type {?} */ left = -((documentRect)).left || document.body.scrollLeft || window.scrollX ||\n            document.documentElement.scrollLeft || 0;\n        return { top, left };\n    }\n    /**\n     * Returns a stream that emits whenever the size of the viewport changes.\n     * @param {?=} throttleTime\n     * @return {?}\n     */\n    change(throttleTime = DEFAULT_RESIZE_TIME) {\n       
  return throttleTime > 0 ? auditTime.call(this._change, throttleTime) : this._change;\n    }\n    /**\n     * Caches the latest client rectangle of the document element.\n     * @return {?}\n     */\n    _cacheViewportGeometry() {\n        this._documentRect = document.documentElement.getBoundingClientRect();\n    }\n}\nViewportRuler.decorators = [\n    { type: Injectable },\n];\n/**\n * @nocollapse\n */\nViewportRuler.ctorParameters = () => [\n    { type: Platform, },\n    { type: NgZone, },\n    { type: ScrollDispatcher, },\n];\nfunction ViewportRuler_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ViewportRuler.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ViewportRuler.ctorParameters;\n    /**\n     * Cached document client rectangle.\n     * @type {?}\n     */\n    ViewportRuler.prototype._documentRect;\n    /**\n     * Stream of viewport change events.\n     * @type {?}\n     */\n    ViewportRuler.prototype._change;\n    /**\n     * Subsc
 riptions to streams that invalidate the cached viewport dimensions.\n     * @type {?}\n     */\n    ViewportRuler.prototype._invalidateCacheSubscriptions;\n}\n/**\n * \\@docs-private\n * @param {?} parentRuler\n * @param {?} platform\n * @param {?} ngZone\n * @param {?} scrollDispatcher\n * @return {?}\n */\nexport function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, platform, ngZone, scrollDispatcher) {\n    return parentRuler || new ViewportRuler(platform, ngZone, scrollDispatcher);\n}\n/**\n * \\@docs-private\n */\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, ScrollDispatcher],\n    useFactory: VIEWPORT_RULER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=viewport-ruler.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by
  an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgModule } from '@angular/core';\nimport { SCROLL_DISPATCHER_PROVIDER } from './scroll-dispatcher';\nimport { Scrollable } from './scrollable';\nimport { PlatformModule } from '@angular/cdk/platform';\nexport class ScrollDispatchModule {\n}\nScrollDispatchModule.decorators = [\n    { type: NgModule, args: [{\n                imports: [PlatformModule],\n                exports: [Scrollable],\n                declarations: [Scrollable],\n                providers: [SCROLL_DISPATCHER_PROVIDER],\n            },] },\n];\n/**\n * @nocollapse\n */\nScrollDispatchModule.ctorParameters = () => [];\nfunction ScrollDispatchModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ScrollDispatchModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ScrollDispatchModule.ctorParameters;\n}\n//# sourceMappingURL=scrolling-module.js.map","/**\n * Generated b
 undle index. Do not edit.\n */\nexport { DEFAULT_SCROLL_TIME, ScrollDispatcher, SCROLL_DISPATCHER_PROVIDER_FACTORY, SCROLL_DISPATCHER_PROVIDER, Scrollable, DEFAULT_RESIZE_TIME, ViewportRuler, VIEWPORT_RULER_PROVIDER_FACTORY, VIEWPORT_RULER_PROVIDER, ScrollDispatchModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["observableOf"],"mappings":"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"}
\ No newline at end of file

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

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/stepper.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/stepper.js.map b/node_modules/@angular/cdk/esm2015/stepper.js.map
new file mode 100644
index 0000000..4d0c9fa
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/stepper.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"stepper.js","sources":["../../packages/cdk/stepper/step-label.js","../../packages/cdk/stepper/stepper.js","../../packages/cdk/stepper/stepper-button.js","../../packages/cdk/stepper/stepper-module.js","../../packages/cdk/stepper/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, TemplateRef } from '@angular/core';\nexport class CdkStepLabel {\n    /**\n     * @param {?} template\n     */\n    constructor(template) {\n        this.template = template;\n    }\n}\nCdkStepLabel.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdkStepLabel]',\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkStepLabel.ctorParameters = () => [\n    { type: TemplateRef, },\n];\nfunction CdkStepLabel_tsickle_Closure_declarations() {\n    /** @type {?}
  */\n    CdkStepLabel.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStepLabel.ctorParameters;\n    /** @type {?} */\n    CdkStepLabel.prototype.template;\n}\n//# sourceMappingURL=step-label.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 { ContentChildren, EventEmitter, Input, Output, Directive, Component, ContentChild, ViewChild, TemplateRef, ViewEncapsulation, Optional, Inject, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core';\nimport { LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { CdkStepLabel } from './step-label';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directionality } from '@angular/cdk/bidi';\n/**\n * Used to generate unique ID for each stepper component.\n */\nlet nextId = 
 0;\n/**\n * Change event emitted on selection changes.\n */\nexport class StepperSelectionEvent {\n}\nfunction StepperSelectionEvent_tsickle_Closure_declarations() {\n    /**\n     * Index of the step now selected.\n     * @type {?}\n     */\n    StepperSelectionEvent.prototype.selectedIndex;\n    /**\n     * Index of the step previously selected.\n     * @type {?}\n     */\n    StepperSelectionEvent.prototype.previouslySelectedIndex;\n    /**\n     * The step instance now selected.\n     * @type {?}\n     */\n    StepperSelectionEvent.prototype.selectedStep;\n    /**\n     * The step instance previously selected.\n     * @type {?}\n     */\n    StepperSelectionEvent.prototype.previouslySelectedStep;\n}\nexport class CdkStep {\n    /**\n     * @param {?} _stepper\n     */\n    constructor(_stepper) {\n        this._stepper = _stepper;\n        /**\n         * Whether user has seen the expanded step content or not.\n         */\n        this.interacted = false;\n        this._editabl
 e = true;\n        this._optional = false;\n        this._customCompleted = null;\n    }\n    /**\n     * @return {?}\n     */\n    get editable() { return this._editable; }\n    /**\n     * @param {?} value\n     * @return {?}\n     */\n    set editable(value) {\n        this._editable = coerceBooleanProperty(value);\n    }\n    /**\n     * Whether the completion of step is optional or not.\n     * @return {?}\n     */\n    get optional() { return this._optional; }\n    /**\n     * @param {?} value\n     * @return {?}\n     */\n    set optional(value) {\n        this._optional = coerceBooleanProperty(value);\n    }\n    /**\n     * Return whether step is completed or not.\n     * @return {?}\n     */\n    get completed() {\n        return this._customCompleted == null ? this._defaultCompleted : this._customCompleted;\n    }\n    /**\n     * @param {?} value\n     * @return {?}\n     */\n    set completed(value) {\n        this._customCompleted = coerceBooleanProperty(value);\n    }
 \n    /**\n     * @return {?}\n     */\n    get _defaultCompleted() {\n        return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n    }\n    /**\n     * Selects this step component.\n     * @return {?}\n     */\n    select() {\n        this._stepper.selected = this;\n    }\n    /**\n     * @return {?}\n     */\n    ngOnChanges() {\n        // Since basically all inputs of the MdStep get proxied through the view down to the\n        // underlying MdStepHeader, we have to make sure that change detection runs correctly.\n        this._stepper._stateChanged();\n    }\n}\nCdkStep.decorators = [\n    { type: Component, args: [{selector: 'cdk-step',\n                exportAs: 'cdkStep',\n                template: \"<ng-template><ng-content></ng-content></ng-template>\",\n                encapsulation: ViewEncapsulation.None,\n                preserveWhitespaces: false,\n                changeDetection: ChangeDetectionStrategy.OnPush,\n            },] },
 \n];\n/**\n * @nocollapse\n */\nCdkStep.ctorParameters = () => [\n    { type: CdkStepper, decorators: [{ type: Inject, args: [forwardRef(() => CdkStepper),] },] },\n];\nCdkStep.propDecorators = {\n    'stepLabel': [{ type: ContentChild, args: [CdkStepLabel,] },],\n    'content': [{ type: ViewChild, args: [TemplateRef,] },],\n    'stepControl': [{ type: Input },],\n    'label': [{ type: Input },],\n    'editable': [{ type: Input },],\n    'optional': [{ type: Input },],\n    'completed': [{ type: Input },],\n};\nfunction CdkStep_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkStep.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStep.ctorParameters;\n    /** @type {?} */\n    CdkStep.propDecorators;\n    /**\n     * Template for step label if it exists.\n     * @type {?}\n     */\n    CdkStep.prototype.stepLabel;\n    /**\n     * Template for step content.\n     * @type {?}\n     */\n    CdkStep.prototype.content;\n    /**\n     * The top lev
 el abstract control of the step.\n     * @type {?}\n     */\n    CdkStep.prototype.stepControl;\n    /**\n     * Whether user has seen the expanded step content or not.\n     * @type {?}\n     */\n    CdkStep.prototype.interacted;\n    /**\n     * Label of the step.\n     * @type {?}\n     */\n    CdkStep.prototype.label;\n    /** @type {?} */\n    CdkStep.prototype._editable;\n    /** @type {?} */\n    CdkStep.prototype._optional;\n    /** @type {?} */\n    CdkStep.prototype._customCompleted;\n    /** @type {?} */\n    CdkStep.prototype._stepper;\n}\nexport class CdkStepper {\n    /**\n     * @param {?} _dir\n     * @param {?} _changeDetectorRef\n     */\n    constructor(_dir, _changeDetectorRef) {\n        this._dir = _dir;\n        this._changeDetectorRef = _changeDetectorRef;\n        this._linear = false;\n        this._selectedIndex = 0;\n        /**\n         * Event emitted when the selected step has changed.\n         */\n        this.selectionChange = new EventEmitter();\n
         /**\n         * The index of the step that the focus can be set.\n         */\n        this._focusIndex = 0;\n        this._groupId = nextId++;\n    }\n    /**\n     * Whether the validity of previous steps should be checked or not.\n     * @return {?}\n     */\n    get linear() { return this._linear; }\n    /**\n     * @param {?} value\n     * @return {?}\n     */\n    set linear(value) { this._linear = coerceBooleanProperty(value); }\n    /**\n     * The index of the selected step.\n     * @return {?}\n     */\n    get selectedIndex() { return this._selectedIndex; }\n    /**\n     * @param {?} index\n     * @return {?}\n     */\n    set selectedIndex(index) {\n        if (this._anyControlsInvalid(index)\n            || index < this._selectedIndex && !this._steps.toArray()[index].editable) {\n            // remove focus from clicked step header if the step is not able to be selected\n            this._stepHeader.toArray()[index].nativeElement.blur();\n        }\n        els
 e if (this._selectedIndex != index) {\n            this._emitStepperSelectionEvent(index);\n            this._focusIndex = this._selectedIndex;\n        }\n    }\n    /**\n     * The step that is selected.\n     * @return {?}\n     */\n    get selected() { return this._steps.toArray()[this.selectedIndex]; }\n    /**\n     * @param {?} step\n     * @return {?}\n     */\n    set selected(step) {\n        this.selectedIndex = this._steps.toArray().indexOf(step);\n    }\n    /**\n     * Selects and focuses the next step in list.\n     * @return {?}\n     */\n    next() {\n        this.selectedIndex = Math.min(this._selectedIndex + 1, this._steps.length - 1);\n    }\n    /**\n     * Selects and focuses the previous step in list.\n     * @return {?}\n     */\n    previous() {\n        this.selectedIndex = Math.max(this._selectedIndex - 1, 0);\n    }\n    /**\n     * Returns a unique id for each step label element.\n     * @param {?} i\n     * @return {?}\n     */\n    _getStepLabelId(i) {
 \n        return `mat-step-label-${this._groupId}-${i}`;\n    }\n    /**\n     * Returns unique id for each step content element.\n     * @param {?} i\n     * @return {?}\n     */\n    _getStepContentId(i) {\n        return `mat-step-content-${this._groupId}-${i}`;\n    }\n    /**\n     * Marks the component to be change detected.\n     * @return {?}\n     */\n    _stateChanged() {\n        this._changeDetectorRef.markForCheck();\n    }\n    /**\n     * Returns position state of the step with the given index.\n     * @param {?} index\n     * @return {?}\n     */\n    _getAnimationDirection(index) {\n        const /** @type {?} */ position = index - this._selectedIndex;\n        if (position < 0) {\n            return this._layoutDirection() === 'rtl' ? 'next' : 'previous';\n        }\n        else if (position > 0) {\n            return this._layoutDirection() === 'rtl' ? 'previous' : 'next';\n        }\n        return 'current';\n    }\n    /**\n     * Returns the type of icon to b
 e displayed.\n     * @param {?} index\n     * @return {?}\n     */\n    _getIndicatorType(index) {\n        const /** @type {?} */ step = this._steps.toArray()[index];\n        if (!step.completed || this._selectedIndex == index) {\n            return 'number';\n        }\n        else {\n            return step.editable ? 'edit' : 'done';\n        }\n    }\n    /**\n     * @param {?} newIndex\n     * @return {?}\n     */\n    _emitStepperSelectionEvent(newIndex) {\n        const /** @type {?} */ stepsArray = this._steps.toArray();\n        this.selectionChange.emit({\n            selectedIndex: newIndex,\n            previouslySelectedIndex: this._selectedIndex,\n            selectedStep: stepsArray[newIndex],\n            previouslySelectedStep: stepsArray[this._selectedIndex],\n        });\n        this._selectedIndex = newIndex;\n        this._stateChanged();\n    }\n    /**\n     * @param {?} event\n     * @return {?}\n     */\n    _onKeydown(event) {\n        switch (event.key
 Code) {\n            case RIGHT_ARROW:\n                if (this._layoutDirection() === 'rtl') {\n                    this._focusPreviousStep();\n                }\n                else {\n                    this._focusNextStep();\n                }\n                break;\n            case LEFT_ARROW:\n                if (this._layoutDirection() === 'rtl') {\n                    this._focusNextStep();\n                }\n                else {\n                    this._focusPreviousStep();\n                }\n                break;\n            case SPACE:\n            case ENTER:\n                this.selectedIndex = this._focusIndex;\n                break;\n            default:\n                // Return to avoid calling preventDefault on keys that are not explicitly handled.\n                return;\n        }\n        event.preventDefault();\n    }\n    /**\n     * @return {?}\n     */\n    _focusNextStep() {\n        this._focusStep((this._focusIndex + 1) % this._steps.leng
 th);\n    }\n    /**\n     * @return {?}\n     */\n    _focusPreviousStep() {\n        this._focusStep((this._focusIndex + this._steps.length - 1) % this._steps.length);\n    }\n    /**\n     * @param {?} index\n     * @return {?}\n     */\n    _focusStep(index) {\n        this._focusIndex = index;\n        this._stepHeader.toArray()[this._focusIndex].nativeElement.focus();\n    }\n    /**\n     * @param {?} index\n     * @return {?}\n     */\n    _anyControlsInvalid(index) {\n        this._steps.toArray()[this._selectedIndex].interacted = true;\n        if (this._linear && index >= 0) {\n            return this._steps.toArray().slice(0, index).some(step => step.stepControl.invalid);\n        }\n        return false;\n    }\n    /**\n     * @return {?}\n     */\n    _layoutDirection() {\n        return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n    }\n}\nCdkStepper.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdkStepper]',\n             
    exportAs: 'cdkStepper',\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkStepper.ctorParameters = () => [\n    { type: Directionality, decorators: [{ type: Optional },] },\n    { type: ChangeDetectorRef, },\n];\nCdkStepper.propDecorators = {\n    '_steps': [{ type: ContentChildren, args: [CdkStep,] },],\n    'linear': [{ type: Input },],\n    'selectedIndex': [{ type: Input },],\n    'selected': [{ type: Input },],\n    'selectionChange': [{ type: Output },],\n};\nfunction CdkStepper_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkStepper.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStepper.ctorParameters;\n    /** @type {?} */\n    CdkStepper.propDecorators;\n    /**\n     * The list of step components that the stepper is holding.\n     * @type {?}\n     */\n    CdkStepper.prototype._steps;\n    /**\n     * The list of step headers of the steps in the stepper.\n     * @type {?}\n     */\n    CdkStepper.prototype._stepHeader;\n  
   /** @type {?} */\n    CdkStepper.prototype._linear;\n    /** @type {?} */\n    CdkStepper.prototype._selectedIndex;\n    /**\n     * Event emitted when the selected step has changed.\n     * @type {?}\n     */\n    CdkStepper.prototype.selectionChange;\n    /**\n     * The index of the step that the focus can be set.\n     * @type {?}\n     */\n    CdkStepper.prototype._focusIndex;\n    /**\n     * Used to track unique ID for each stepper component.\n     * @type {?}\n     */\n    CdkStepper.prototype._groupId;\n    /** @type {?} */\n    CdkStepper.prototype._dir;\n    /** @type {?} */\n    CdkStepper.prototype._changeDetectorRef;\n}\n//# sourceMappingURL=stepper.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 } from '@angular/core';\nimport { CdkStepper } from './stepper';\n/**\n * Button that
  moves to the next step in a stepper workflow.\n */\nexport class CdkStepperNext {\n    /**\n     * @param {?} _stepper\n     */\n    constructor(_stepper) {\n        this._stepper = _stepper;\n    }\n}\nCdkStepperNext.decorators = [\n    { type: Directive, args: [{\n                selector: 'button[cdkStepperNext]',\n                host: { '(click)': '_stepper.next()' }\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkStepperNext.ctorParameters = () => [\n    { type: CdkStepper, },\n];\nfunction CdkStepperNext_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkStepperNext.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStepperNext.ctorParameters;\n    /** @type {?} */\n    CdkStepperNext.prototype._stepper;\n}\n/**\n * Button that moves to the previous step in a stepper workflow.\n */\nexport class CdkStepperPrevious {\n    /**\n     * @param {?} _stepper\n     */\n    constructor(_stepper) {\n        this._stepper = _stepper;\n    }\n
 }\nCdkStepperPrevious.decorators = [\n    { type: Directive, args: [{\n                selector: 'button[cdkStepperPrevious]',\n                host: { '(click)': '_stepper.previous()' }\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkStepperPrevious.ctorParameters = () => [\n    { type: CdkStepper, },\n];\nfunction CdkStepperPrevious_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkStepperPrevious.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStepperPrevious.ctorParameters;\n    /** @type {?} */\n    CdkStepperPrevious.prototype._stepper;\n}\n//# sourceMappingURL=stepper-button.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 { CdkStepper, CdkStep } from './stepper';\nimport { CommonModule } from '@angular/common';\n
 import { CdkStepLabel } from './step-label';\nimport { CdkStepperNext, CdkStepperPrevious } from './stepper-button';\nimport { BidiModule } from '@angular/cdk/bidi';\nexport class CdkStepperModule {\n}\nCdkStepperModule.decorators = [\n    { type: NgModule, args: [{\n                imports: [BidiModule, CommonModule],\n                exports: [CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious],\n                declarations: [CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious]\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkStepperModule.ctorParameters = () => [];\nfunction CdkStepperModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkStepperModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkStepperModule.ctorParameters;\n}\n//# sourceMappingURL=stepper-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { StepperSelectionEvent, CdkStep, CdkStepper, CdkStepLabel, Cd
 kStepperNext, CdkStepperPrevious, CdkStepperModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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"}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/src/animation_event.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/src/animation_event.d.ts b/node_modules/@angular/animations/src/animation_event.d.ts
new file mode 100644
index 0000000..3777ff4
--- /dev/null
+++ b/node_modules/@angular/animations/src/animation_event.d.ts
@@ -0,0 +1,46 @@
+/**
+ * @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
+ */
+/**
+ * An instance of this class is returned as an event parameter when an animation
+ * callback is captured for an animation either during the start or done phase.
+ *
+ * ```typescript
+ * @Component({
+ *   host: {
+ *     '[@myAnimationTrigger]': 'someExpression',
+ *     '(@myAnimationTrigger.start)': 'captureStartEvent($event)',
+ *     '(@myAnimationTrigger.done)': 'captureDoneEvent($event)',
+ *   },
+ *   animations: [
+ *     trigger("myAnimationTrigger", [
+ *        // ...
+ *     ])
+ *   ]
+ * })
+ * class MyComponent {
+ *   someExpression: any = false;
+ *   captureStartEvent(event: AnimationEvent) {
+ *     // the toState, fromState and totalTime data is accessible from the event variable
+ *   }
+ *
+ *   captureDoneEvent(event: AnimationEvent) {
+ *     // the toState, fromState and totalTime data is accessible from the event variable
+ *   }
+ * }
+ * ```
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationEvent {
+    fromState: string;
+    toState: string;
+    totalTime: number;
+    phaseName: string;
+    element: any;
+    triggerName: string;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/src/animation_metadata.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/src/animation_metadata.d.ts b/node_modules/@angular/animations/src/animation_metadata.d.ts
new file mode 100644
index 0000000..4d97eb8
--- /dev/null
+++ b/node_modules/@angular/animations/src/animation_metadata.d.ts
@@ -0,0 +1,1053 @@
+/**
+ * @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
+ */
+export interface ɵStyleData {
+    [key: string]: string | number;
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are created internally
+ * within the Angular animation DSL.
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare type AnimateTimings = {
+    duration: number;
+    delay: number;
+    easing: string | null;
+};
+/**
+ * `AnimationOptions` represents options that can be passed into most animation DSL methods.
+ * When options are provided, the delay value of an animation can be changed and animation input
+ * parameters can be passed in to change styling and timing data when an animation is started.
+ *
+ * The following animation DSL functions are able to accept animation option data:
+ *
+ * - {@link transition transition()}
+ * - {@link sequence sequence()}
+ * - {@link group group()}
+ * - {@link query query()}
+ * - {@link animation animation()}
+ * - {@link useAnimation useAnimation()}
+ * - {@link animateChild animateChild()}
+ *
+ * Programmatic animations built using {@link AnimationBuilder the AnimationBuilder service} also
+ * make use of AnimationOptions.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationOptions {
+    delay?: number | string;
+    params?: {
+        [name: string]: any;
+    };
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are created internally
+ * within the Angular animation DSL when {@link animateChild animateChild()} is used.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimateChildOptions extends AnimationOptions {
+    duration?: number | string;
+}
+/**
+ * Metadata representing the entry of animations. Usages of this enum are created
+ * each time an animation DSL function is used.
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare const enum AnimationMetadataType {
+    State = 0,
+    Transition = 1,
+    Sequence = 2,
+    Group = 3,
+    Animate = 4,
+    Keyframes = 5,
+    Style = 6,
+    Trigger = 7,
+    Reference = 8,
+    AnimateChild = 9,
+    AnimateRef = 10,
+    Query = 11,
+    Stagger = 12,
+}
+/**
+ * @experimental Animation support is experimental.
+ */
+export declare const AUTO_STYLE = "*";
+/**
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationMetadata {
+    type: AnimationMetadataType;
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link trigger trigger animation function} is called.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationTriggerMetadata extends AnimationMetadata {
+    name: string;
+    definitions: AnimationMetadata[];
+    options: {
+        params?: {
+            [name: string]: any;
+        };
+    } | null;
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link state state animation function} is called.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationStateMetadata extends AnimationMetadata {
+    name: string;
+    styles: AnimationStyleMetadata;
+    options?: {
+        params: {
+            [name: string]: any;
+        };
+    };
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link transition transition animation function} is called.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationTransitionMetadata extends AnimationMetadata {
+    expr: string;
+    animation: AnimationMetadata | AnimationMetadata[];
+    options: AnimationOptions | null;
+}
+/**
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationReferenceMetadata extends AnimationMetadata {
+    animation: AnimationMetadata | AnimationMetadata[];
+    options: AnimationOptions | null;
+}
+/**
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationQueryMetadata extends AnimationMetadata {
+    selector: string;
+    animation: AnimationMetadata | AnimationMetadata[];
+    options: AnimationQueryOptions | null;
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link keyframes keyframes animation function} is called.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationKeyframesSequenceMetadata extends AnimationMetadata {
+    steps: AnimationStyleMetadata[];
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link style style animation function} is called.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationStyleMetadata extends AnimationMetadata {
+    styles: '*' | {
+        [key: string]: string | number;
+    } | Array<{
+        [key: string]: string | number;
+    } | '*'>;
+    offset: number | null;
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link animate animate animation function} is called.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationAnimateMetadata extends AnimationMetadata {
+    timings: string | number | AnimateTimings;
+    styles: AnimationStyleMetadata | AnimationKeyframesSequenceMetadata | null;
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link animateChild animateChild animation function} is called.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationAnimateChildMetadata extends AnimationMetadata {
+    options: AnimationOptions | null;
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link useAnimation useAnimation animation function} is called.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationAnimateRefMetadata extends AnimationMetadata {
+    animation: AnimationReferenceMetadata;
+    options: AnimationOptions | null;
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link sequence sequence animation function} is called.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationSequenceMetadata extends AnimationMetadata {
+    steps: AnimationMetadata[];
+    options: AnimationOptions | null;
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link group group animation function} is called.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationGroupMetadata extends AnimationMetadata {
+    steps: AnimationMetadata[];
+    options: AnimationOptions | null;
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link query query animation function} is called.
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationQueryOptions extends AnimationOptions {
+    optional?: boolean;
+    /**
+     * Used to limit the total amount of results from the start of the query list.
+     *
+     * If a negative value is provided then the queried results will be limited from the
+     * end of the query list towards the beginning (e.g. if `limit: -3` is used then the
+     * final 3 (or less) queried results will be used for the animation).
+     */
+    limit?: number;
+}
+/**
+ * Metadata representing the entry of animations. Instances of this interface are provided via the
+ * animation DSL when the {@link stagger stagger animation function} is called.
+ *
+* @experimental Animation support is experimental.
+*/
+export interface AnimationStaggerMetadata extends AnimationMetadata {
+    timings: string | number;
+    animation: AnimationMetadata | AnimationMetadata[];
+}
+/**
+ * `trigger` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the
+ * {@link Component#animations component animations metadata page} to gain a better
+ * understanding of how animations in Angular are used.
+ *
+ * `trigger` Creates an animation trigger which will a list of {@link state state} and
+ * {@link transition transition} entries that will be evaluated when the expression
+ * bound to the trigger changes.
+ *
+ * Triggers are registered within the component annotation data under the
+ * {@link Component#animations animations section}. An animation trigger can be placed on an element
+ * within a template by referencing the name of the trigger followed by the expression value that
+ the
+ * trigger is bound to (in the form of `[@triggerName]="expression"`.
+ *
+ * Animation trigger bindings strigify values and then match the previous and current values against
+ * any linked transitions. If a boolean value is provided into the trigger binding then it will both
+ * be represented as `1` or `true` and `0` or `false` for a true and false boolean values
+ * respectively.
+ *
+ * ### Usage
+ *
+ * `trigger` will create an animation trigger reference based on the provided `name` value. The
+ * provided `animation` value is expected to be an array consisting of {@link state state} and
+ * {@link transition transition} declarations.
+ *
+ * ```typescript
+ * @Component({
+ *   selector: 'my-component',
+ *   templateUrl: 'my-component-tpl.html',
+ *   animations: [
+ *     trigger("myAnimationTrigger", [
+ *       state(...),
+ *       state(...),
+ *       transition(...),
+ *       transition(...)
+ *     ])
+ *   ]
+ * })
+ * class MyComponent {
+ *   myStatusExp = "something";
+ * }
+ * ```
+ *
+ * The template associated with this component will make use of the `myAnimationTrigger` animation
+ trigger by binding to an element within its template code.
+ *
+ * ```html
+ * <!-- somewhere inside of my-component-tpl.html -->
+ * <div [@myAnimationTrigger]="myStatusExp">...</div>
+ * ```
+ *
+ * ## Disable Animations
+ * A special animation control binding called `@.disabled` can be placed on an element which will
+ then disable animations for any inner animation triggers situated within the element as well as
+ any animations on the element itself.
+ *
+ * When true, the `@.disabled` binding will prevent all animations from rendering. The example
+ below shows how to use this feature:
+ *
+ * ```ts
+ * @Component({
+ *   selector: 'my-component',
+ *   template: `
+ *     <div [@.disabled]="isDisabled">
+ *       <div [@childAnimation]="exp"></div>
+ *     </div>
+ *   `,
+ *   animations: [
+ *     trigger("childAnimation", [
+ *       // ...
+ *     ])
+ *   ]
+ * })
+ * class MyComponent {
+ *   isDisabled = true;
+ *   exp = '...';
+ * }
+ * ```
+ *
+ * The `@childAnimation` trigger will not animate because `@.disabled` prevents it from happening
+ (when true).
+ *
+ * Note that `@.disbled` will only disable all animations (this means any animations running on
+ * the same element will also be disabled).
+ *
+ * ### Disabling Animations Application-wide
+ * When an area of the template is set to have animations disabled, **all** inner components will
+ also have their animations disabled as well. This means that all animations for an angular
+ application can be disabled by placing a host binding set on `@.disabled` on the topmost Angular
+ component.
+ *
+ * ```ts
+ * import {Component, HostBinding} from '@angular/core';
+ *
+ * @Component({
+ *   selector: 'app-component',
+ *   templateUrl: 'app.component.html',
+ * })
+ * class AppComponent {
+ *   @HostBinding('@.disabled')
+ *   public animationsDisabled = true;
+ * }
+ * ```
+ *
+ * ### What about animations that us `query()` and `animateChild()`?
+ * Despite inner animations being disabled, a parent animation can {@link query query} for inner
+ elements located in disabled areas of the template and still animate them as it sees fit. This is
+ also the case for when a sub animation is queried by a parent and then later animated using {@link
+ animateChild animateChild}.
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function trigger(name: string, definitions: AnimationMetadata[]): AnimationTriggerMetadata;
+/**
+ * `animate` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `animate` specifies an animation step that will apply the provided `styles` data for a given
+ * amount of time based on the provided `timing` expression value. Calls to `animate` are expected
+ * to be used within {@link sequence an animation sequence}, {@link group group}, or {@link
+ * transition transition}.
+ *
+ * ### Usage
+ *
+ * The `animate` function accepts two input parameters: `timing` and `styles`:
+ *
+ * - `timing` is a string based value that can be a combination of a duration with optional delay
+ * and easing values. The format for the expression breaks down to `duration delay easing`
+ * (therefore a value such as `1s 100ms ease-out` will be parse itself into `duration=1000,
+ * delay=100, easing=ease-out`. If a numeric value is provided then that will be used as the
+ * `duration` value in millisecond form.
+ * - `styles` is the style input data which can either be a call to {@link style style} or {@link
+ * keyframes keyframes}. If left empty then the styles from the destination state will be collected
+ * and used (this is useful when describing an animation step that will complete an animation by
+ * {@link transition#the-final-animate-call animating to the final state}).
+ *
+ * ```typescript
+ * // various functions for specifying timing data
+ * animate(500, style(...))
+ * animate("1s", style(...))
+ * animate("100ms 0.5s", style(...))
+ * animate("5s ease", style(...))
+ * animate("5s 10ms cubic-bezier(.17,.67,.88,.1)", style(...))
+ *
+ * // either style() of keyframes() can be used
+ * animate(500, style({ background: "red" }))
+ * animate(500, keyframes([
+ *   style({ background: "blue" })),
+ *   style({ background: "red" }))
+ * ])
+ * ```
+ *
+ * {@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function animate(timings: string | number, styles?: AnimationStyleMetadata | AnimationKeyframesSequenceMetadata | null): AnimationAnimateMetadata;
+/**
+ * `group` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `group` specifies a list of animation steps that are all run in parallel. Grouped animations are
+ * useful when a series of styles must be animated/closed off at different starting/ending times.
+ *
+ * The `group` function can either be used within a {@link sequence sequence} or a {@link transition
+ * transition} and it will only continue to the next instruction once all of the inner animation
+ * steps have completed.
+ *
+ * ### Usage
+ *
+ * The `steps` data that is passed into the `group` animation function can either consist of {@link
+ * style style} or {@link animate animate} function calls. Each call to `style()` or `animate()`
+ * within a group will be executed instantly (use {@link keyframes keyframes} or a {@link
+ * animate#usage animate() with a delay value} to offset styles to be applied at a later time).
+ *
+ * ```typescript
+ * group([
+ *   animate("1s", { background: "black" }))
+ *   animate("2s", { color: "white" }))
+ * ])
+ * ```
+ *
+ * {@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function group(steps: AnimationMetadata[], options?: AnimationOptions | null): AnimationGroupMetadata;
+/**
+ * `sequence` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used by
+ * default when an array is passed as animation data into {@link transition transition}.)
+ *
+ * The `sequence` function can either be used within a {@link group group} or a {@link transition
+ * transition} and it will only continue to the next instruction once each of the inner animation
+ * steps have completed.
+ *
+ * To perform animation styling in parallel with other animation steps then have a look at the
+ * {@link group group} animation function.
+ *
+ * ### Usage
+ *
+ * The `steps` data that is passed into the `sequence` animation function can either consist of
+ * {@link style style} or {@link animate animate} function calls. A call to `style()` will apply the
+ * provided styling data immediately while a call to `animate()` will apply its styling data over a
+ * given time depending on its timing data.
+ *
+ * ```typescript
+ * sequence([
+ *   style({ opacity: 0 })),
+ *   animate("1s", { opacity: 1 }))
+ * ])
+ * ```
+ *
+ * {@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function sequence(steps: AnimationMetadata[], options?: AnimationOptions | null): AnimationSequenceMetadata;
+/**
+ * `style` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `style` declares a key/value object containing CSS properties/styles that can then be used for
+ * {@link state animation states}, within an {@link sequence animation sequence}, or as styling data
+ * for both {@link animate animate} and {@link keyframes keyframes}.
+ *
+ * ### Usage
+ *
+ * `style` takes in a key/value string map as data and expects one or more CSS property/value pairs
+ * to be defined.
+ *
+ * ```typescript
+ * // string values are used for css properties
+ * style({ background: "red", color: "blue" })
+ *
+ * // numerical (pixel) values are also supported
+ * style({ width: 100, height: 0 })
+ * ```
+ *
+ * #### Auto-styles (using `*`)
+ *
+ * When an asterix (`*`) character is used as a value then it will be detected from the element
+ * being animated and applied as animation data when the animation starts.
+ *
+ * This feature proves useful for a state depending on layout and/or environment factors; in such
+ * cases the styles are calculated just before the animation starts.
+ *
+ * ```typescript
+ * // the steps below will animate from 0 to the
+ * // actual height of the element
+ * style({ height: 0 }),
+ * animate("1s", style({ height: "*" }))
+ * ```
+ *
+ * {@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function style(tokens: '*' | {
+    [key: string]: string | number;
+} | Array<'*' | {
+    [key: string]: string | number;
+}>): AnimationStyleMetadata;
+/**
+ * `state` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `state` declares an animation state within the given trigger. When a state is active within a
+ * component then its associated styles will persist on the element that the trigger is attached to
+ * (even when the animation ends).
+ *
+ * To animate between states, have a look at the animation {@link transition transition} DSL
+ * function. To register states to an animation trigger please have a look at the {@link trigger
+ * trigger} function.
+ *
+ * #### The `void` state
+ *
+ * The `void` state value is a reserved word that angular uses to determine when the element is not
+ * apart of the application anymore (e.g. when an `ngIf` evaluates to false then the state of the
+ * associated element is void).
+ *
+ * #### The `*` (default) state
+ *
+ * The `*` state (when styled) is a fallback state that will be used if the state that is being
+ * animated is not declared within the trigger.
+ *
+ * ### Usage
+ *
+ * `state` will declare an animation state with its associated styles
+ * within the given trigger.
+ *
+ * - `stateNameExpr` can be one or more state names separated by commas.
+ * - `styles` refers to the {@link style styling data} that will be persisted on the element once
+ * the state has been reached.
+ *
+ * ```typescript
+ * // "void" is a reserved name for a state and is used to represent
+ * // the state in which an element is detached from from the application.
+ * state("void", style({ height: 0 }))
+ *
+ * // user-defined states
+ * state("closed", style({ height: 0 }))
+ * state("open, visible", style({ height: "*" }))
+ * ```
+ *
+ * {@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function state(name: string, styles: AnimationStyleMetadata, options?: {
+    params: {
+        [name: string]: any;
+    };
+}): AnimationStateMetadata;
+/**
+ * `keyframes` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `keyframes` specifies a collection of {@link style style} entries each optionally characterized
+ * by an `offset` value.
+ *
+ * ### Usage
+ *
+ * The `keyframes` animation function is designed to be used alongside the {@link animate animate}
+ * animation function. Instead of applying animations from where they are currently to their
+ * destination, keyframes can describe how each style entry is applied and at what point within the
+ * animation arc (much like CSS Keyframe Animations do).
+ *
+ * For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at what
+ * percentage of the animate time the styles will be applied.
+ *
+ * ```typescript
+ * // the provided offset values describe when each backgroundColor value is applied.
+ * animate("5s", keyframes([
+ *   style({ backgroundColor: "red", offset: 0 }),
+ *   style({ backgroundColor: "blue", offset: 0.2 }),
+ *   style({ backgroundColor: "orange", offset: 0.3 }),
+ *   style({ backgroundColor: "black", offset: 1 })
+ * ]))
+ * ```
+ *
+ * Alternatively, if there are no `offset` values used within the style entries then the offsets
+ * will be calculated automatically.
+ *
+ * ```typescript
+ * animate("5s", keyframes([
+ *   style({ backgroundColor: "red" }) // offset = 0
+ *   style({ backgroundColor: "blue" }) // offset = 0.33
+ *   style({ backgroundColor: "orange" }) // offset = 0.66
+ *   style({ backgroundColor: "black" }) // offset = 1
+ * ]))
+ * ```
+ *
+ * {@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function keyframes(steps: AnimationStyleMetadata[]): AnimationKeyframesSequenceMetadata;
+/**
+ * `transition` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `transition` declares the {@link sequence sequence of animation steps} that will be run when the
+ * provided `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 =>
+ * state2` which consists of two known states (use an asterix (`*`) to refer to a dynamic starting
+ * and/or ending state).
+ *
+ * A function can also be provided as the `stateChangeExpr` argument for a transition and this
+ * function will be executed each time a state change occurs. If the value returned within the
+ * function is true then the associated animation will be run.
+ *
+ * Animation transitions are placed within an {@link trigger animation trigger}. For an transition
+ * to animate to a state value and persist its styles then one or more {@link state animation
+ * states} is expected to be defined.
+ *
+ * ### Usage
+ *
+ * An animation transition is kicked off the `stateChangeExpr` predicate evaluates to true based on
+ * what the previous state is and what the current state has become. In other words, if a transition
+ * is defined that matches the old/current state criteria then the associated animation will be
+ * triggered.
+ *
+ * ```typescript
+ * // all transition/state changes are defined within an animation trigger
+ * trigger("myAnimationTrigger", [
+ *   // if a state is defined then its styles will be persisted when the
+ *   // animation has fully completed itself
+ *   state("on", style({ background: "green" })),
+ *   state("off", style({ background: "grey" })),
+ *
+ *   // a transition animation that will be kicked off when the state value
+ *   // bound to "myAnimationTrigger" changes from "on" to "off"
+ *   transition("on => off", animate(500)),
+ *
+ *   // it is also possible to do run the same animation for both directions
+ *   transition("on <=> off", animate(500)),
+ *
+ *   // or to define multiple states pairs separated by commas
+ *   transition("on => off, off => void", animate(500)),
+ *
+ *   // this is a catch-all state change for when an element is inserted into
+ *   // the page and the destination state is unknown
+ *   transition("void => *", [
+ *     style({ opacity: 0 }),
+ *     animate(500)
+ *   ]),
+ *
+ *   // this will capture a state change between any states
+ *   transition("* => *", animate("1s 0s")),
+ *
+ *   // you can also go full out and include a function
+ *   transition((fromState, toState) => {
+ *     // when `true` then it will allow the animation below to be invoked
+ *     return fromState == "off" && toState == "on";
+ *   }, animate("1s 0s"))
+ * ])
+ * ```
+ *
+ * The template associated with this component will make use of the `myAnimationTrigger` animation
+ * trigger by binding to an element within its template code.
+ *
+ * ```html
+ * <!-- somewhere inside of my-component-tpl.html -->
+ * <div [@myAnimationTrigger]="myStatusExp">...</div>
+ * ```
+ *
+ * #### The final `animate` call
+ *
+ * If the final step within the transition steps is a call to `animate()` that **only** uses a
+ * timing value with **no style data** then it will be automatically used as the final animation arc
+ * for the element to animate itself to the final state. This involves an automatic mix of
+ * adding/removing CSS styles so that the element will be in the exact state it should be for the
+ * applied state to be presented correctly.
+ *
+ * ```
+ * // start off by hiding the element, but make sure that it animates properly to whatever state
+ * // is currently active for "myAnimationTrigger"
+ * transition("void => *", [
+ *   style({ opacity: 0 }),
+ *   animate(500)
+ * ])
+ * ```
+ *
+ * ### Transition Aliases (`:enter` and `:leave`)
+ *
+ * Given that enter (insertion) and leave (removal) animations are so common, the `transition`
+ * function accepts both `:enter` and `:leave` values which are aliases for the `void => *` and `*
+ * => void` state changes.
+ *
+ * ```
+ * transition(":enter", [
+ *   style({ opacity: 0 }),
+ *   animate(500, style({ opacity: 1 }))
+ * ])
+ * transition(":leave", [
+ *   animate(500, style({ opacity: 0 }))
+ * ])
+ * ```
+ *
+ * ### Boolean values
+ * if a trigger binding value is a boolean value then it can be matched using a transition
+ * expression that compares `true` and `false` or `1` and `0`.
+ *
+ * ```
+ * // in the template
+ * <div [@openClose]="open ? true : false">...</div>
+ *
+ * // in the component metadata
+ * trigger('openClose', [
+ *   state('true', style({ height: '*' })),
+ *   state('false', style({ height: '0px' })),
+ *   transition('false <=> true', animate(500))
+ * ])
+ * ```
+ * {@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function transition(stateChangeExpr: string, steps: AnimationMetadata | AnimationMetadata[], options?: AnimationOptions | null): AnimationTransitionMetadata;
+/**
+ * `animation` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language.
+ *
+ * `var myAnimation = animation(...)` is designed to produce a reusable animation that can be later
+ * invoked in another animation or sequence. Reusable animations are designed to make use of
+ * animation parameters and the produced animation can be used via the `useAnimation` method.
+ *
+ * ```
+ * var fadeAnimation = animation([
+ *   style({ opacity: '{{ start }}' }),
+ *   animate('{{ time }}',
+ *     style({ opacity: '{{ end }}'}))
+ * ], { params: { time: '1000ms', start: 0, end: 1 }});
+ * ```
+ *
+ * If parameters are attached to an animation then they act as **default parameter values**. When an
+ * animation is invoked via `useAnimation` then parameter values are allowed to be passed in
+ * directly. If any of the passed in parameter values are missing then the default values will be
+ * used.
+ *
+ * ```
+ * useAnimation(fadeAnimation, {
+ *   params: {
+ *     time: '2s',
+ *     start: 1,
+ *     end: 0
+ *   }
+ * })
+ * ```
+ *
+ * If one or more parameter values are missing before animated then an error will be thrown.
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function animation(steps: AnimationMetadata | AnimationMetadata[], options?: AnimationOptions | null): AnimationReferenceMetadata;
+/**
+ * `animateChild` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It works by allowing a queried element to execute its own
+ * animation within the animation sequence.
+ *
+ * Each time an animation is triggered in angular, the parent animation
+ * will always get priority and any child animations will be blocked. In order
+ * for a child animation to run, the parent animation must query each of the elements
+ * containing child animations and then allow the animations to run using `animateChild`.
+ *
+ * The example HTML code below shows both parent and child elements that have animation
+ * triggers that will execute at the same time.
+ *
+ * ```html
+ * <!-- parent-child.component.html -->
+ * <button (click)="exp =! exp">Toggle</button>
+ * <hr>
+ *
+ * <div [@parentAnimation]="exp">
+ *   <header>Hello</header>
+ *   <div [@childAnimation]="exp">
+ *       one
+ *   </div>
+ *   <div [@childAnimation]="exp">
+ *       two
+ *   </div>
+ *   <div [@childAnimation]="exp">
+ *       three
+ *   </div>
+ * </div>
+ * ```
+ *
+ * Now when the `exp` value changes to true, only the `parentAnimation` animation will animate
+ * because it has priority. However, using `query` and `animateChild` each of the inner animations
+ * can also fire:
+ *
+ * ```ts
+ * // parent-child.component.ts
+ * import {trigger, transition, animate, style, query, animateChild} from '@angular/animations';
+ * @Component({
+ *   selector: 'parent-child-component',
+ *   animations: [
+ *     trigger('parentAnimation', [
+ *       transition('false => true', [
+ *         query('header', [
+ *           style({ opacity: 0 }),
+ *           animate(500, style({ opacity: 1 }))
+ *         ]),
+ *         query('@childAnimation', [
+ *           animateChild()
+ *         ])
+ *       ])
+ *     ]),
+ *     trigger('childAnimation', [
+ *       transition('false => true', [
+ *         style({ opacity: 0 }),
+ *         animate(500, style({ opacity: 1 }))
+ *       ])
+ *     ])
+ *   ]
+ * })
+ * class ParentChildCmp {
+ *   exp: boolean = false;
+ * }
+ * ```
+ *
+ * In the animation code above, when the `parentAnimation` transition kicks off it first queries to
+ * find the header element and fades it in. It then finds each of the sub elements that contain the
+ * `@childAnimation` trigger and then allows for their animations to fire.
+ *
+ * This example can be further extended by using stagger:
+ *
+ * ```ts
+ * query('@childAnimation', stagger(100, [
+ *   animateChild()
+ * ]))
+ * ```
+ *
+ * Now each of the sub animations start off with respect to the `100ms` staggering step.
+ *
+ * ## The first frame of child animations
+ * When sub animations are executed using `animateChild` the animation engine will always apply the
+ * first frame of every sub animation immediately at the start of the animation sequence. This way
+ * the parent animation does not need to set any initial styling data on the sub elements before the
+ * sub animations kick off.
+ *
+ * In the example above the first frame of the `childAnimation`'s `false => true` transition
+ * consists of a style of `opacity: 0`. This is applied immediately when the `parentAnimation`
+ * animation transition sequence starts. Only then when the `@childAnimation` is queried and called
+ * with `animateChild` will it then animate to its destination of `opacity: 1`.
+ *
+ * Note that this feature designed to be used alongside {@link query query()} and it will only work
+ * with animations that are assigned using the Angular animation DSL (this means that CSS keyframes
+ * and transitions are not handled by this API).
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function animateChild(options?: AnimateChildOptions | null): AnimationAnimateChildMetadata;
+/**
+ * `useAnimation` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It is used to kick off a reusable animation that is created using {@link
+ * animation animation()}.
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function useAnimation(animation: AnimationReferenceMetadata, options?: AnimationOptions | null): AnimationAnimateRefMetadata;
+/**
+ * `query` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language.
+ *
+ * query() is used to find one or more inner elements within the current element that is
+ * being animated within the sequence. The provided animation steps are applied
+ * to the queried element (by default, an array is provided, then this will be
+ * treated as an animation sequence).
+ *
+ * ### Usage
+ *
+ * query() is designed to collect mutiple elements and works internally by using
+ * `element.querySelectorAll`. An additional options object can be provided which
+ * can be used to limit the total amount of items to be collected.
+ *
+ * ```js
+ * query('div', [
+ *   animate(...),
+ *   animate(...)
+ * ], { limit: 1 })
+ * ```
+ *
+ * query(), by default, will throw an error when zero items are found. If a query
+ * has the `optional` flag set to true then this error will be ignored.
+ *
+ * ```js
+ * query('.some-element-that-may-not-be-there', [
+ *   animate(...),
+ *   animate(...)
+ * ], { optional: true })
+ * ```
+ *
+ * ### Special Selector Values
+ *
+ * The selector value within a query can collect elements that contain angular-specific
+ * characteristics
+ * using special pseudo-selectors tokens.
+ *
+ * These include:
+ *
+ *  - Querying for newly inserted/removed elements using `query(":enter")`/`query(":leave")`
+ *  - Querying all currently animating elements using `query(":animating")`
+ *  - Querying elements that contain an animation trigger using `query("@triggerName")`
+ *  - Querying all elements that contain an animation triggers using `query("@*")`
+ *  - Including the current element into the animation sequence using `query(":self")`
+ *
+ *
+ *  Each of these pseudo-selector tokens can be merged together into a combined query selector
+ * string:
+ *
+ *  ```
+ *  query(':self, .record:enter, .record:leave, @subTrigger', [...])
+ *  ```
+ *
+ * ### Demo
+ *
+ * ```
+ * @Component({
+ *   selector: 'inner',
+ *   template: `
+ *     <div [@queryAnimation]="exp">
+ *       <h1>Title</h1>
+ *       <div class="content">
+ *         Blah blah blah
+ *       </div>
+ *     </div>
+ *   `,
+ *   animations: [
+ *    trigger('queryAnimation', [
+ *      transition('* => goAnimate', [
+ *        // hide the inner elements
+ *        query('h1', style({ opacity: 0 })),
+ *        query('.content', style({ opacity: 0 })),
+ *
+ *        // animate the inner elements in, one by one
+ *        query('h1', animate(1000, style({ opacity: 1 })),
+ *        query('.content', animate(1000, style({ opacity: 1 })),
+ *      ])
+ *    ])
+ *  ]
+ * })
+ * class Cmp {
+ *   exp = '';
+ *
+ *   goAnimate() {
+ *     this.exp = 'goAnimate';
+ *   }
+ * }
+ * ```
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function query(selector: string, animation: AnimationMetadata | AnimationMetadata[], options?: AnimationQueryOptions | null): AnimationQueryMetadata;
+/**
+ * `stagger` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It is designed to be used inside of an animation {@link query query()}
+ * and works by issuing a timing gap between after each queried item is animated.
+ *
+ * ### Usage
+ *
+ * In the example below there is a container element that wraps a list of items stamped out
+ * by an ngFor. The container element contains an animation trigger that will later be set
+ * to query for each of the inner items.
+ *
+ * ```html
+ * <!-- list.component.html -->
+ * <button (click)="toggle()">Show / Hide Items</button>
+ * <hr />
+ * <div [@listAnimation]="items.length">
+ *   <div *ngFor="let item of items">
+ *     {{ item }}
+ *   </div>
+ * </div>
+ * ```
+ *
+ * The component code for this looks as such:
+ *
+ * ```ts
+ * import {trigger, transition, style, animate, query, stagger} from '@angular/animations';
+ * @Component({
+ *   templateUrl: 'list.component.html',
+ *   animations: [
+ *     trigger('listAnimation', [
+ *        //...
+ *     ])
+ *   ]
+ * })
+ * class ListComponent {
+ *   items = [];
+ *
+ *   showItems() {
+ *     this.items = [0,1,2,3,4];
+ *   }
+ *
+ *   hideItems() {
+ *     this.items = [];
+ *   }
+ *
+ *   toggle() {
+ *     this.items.length ? this.hideItems() : this.showItems();
+ *   }
+ * }
+ * ```
+ *
+ * And now for the animation trigger code:
+ *
+ * ```ts
+ * trigger('listAnimation', [
+ *   transition('* => *', [ // each time the binding value changes
+ *     query(':leave', [
+ *       stagger(100, [
+ *         animate('0.5s', style({ opacity: 0 }))
+ *       ])
+ *     ]),
+ *     query(':enter', [
+ *       style({ opacity: 0 }),
+ *       stagger(100, [
+ *         animate('0.5s', style({ opacity: 1 }))
+ *       ])
+ *     ])
+ *   ])
+ * ])
+ * ```
+ *
+ * Now each time the items are added/removed then either the opacity
+ * fade-in animation will run or each removed item will be faded out.
+ * When either of these animations occur then a stagger effect will be
+ * applied after each item's animation is started.
+ *
+ * @experimental Animation support is experimental.
+ */
+export declare function stagger(timings: string | number, animation: AnimationMetadata | AnimationMetadata[]): AnimationStaggerMetadata;

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/src/animations.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/src/animations.d.ts b/node_modules/@angular/animations/src/animations.d.ts
new file mode 100644
index 0000000..131bab0
--- /dev/null
+++ b/node_modules/@angular/animations/src/animations.d.ts
@@ -0,0 +1,17 @@
+/**
+ * @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
+ */
+/**
+ * @module
+ * @description
+ * Entry point for all animation APIs of the animation package.
+ */
+export { AnimationBuilder, AnimationFactory } from './animation_builder';
+export { AnimationEvent } from './animation_event';
+export { AUTO_STYLE, AnimateChildOptions, AnimateTimings, AnimationAnimateChildMetadata, AnimationAnimateMetadata, AnimationAnimateRefMetadata, AnimationGroupMetadata, AnimationKeyframesSequenceMetadata, AnimationMetadata, AnimationMetadataType, AnimationOptions, AnimationQueryMetadata, AnimationQueryOptions, AnimationReferenceMetadata, AnimationSequenceMetadata, AnimationStaggerMetadata, AnimationStateMetadata, AnimationStyleMetadata, AnimationTransitionMetadata, AnimationTriggerMetadata, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, ɵStyleData } from './animation_metadata';
+export { AnimationPlayer, NoopAnimationPlayer } from './players/animation_player';
+export * from './private_export';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/src/players/animation_group_player.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/src/players/animation_group_player.d.ts b/node_modules/@angular/animations/src/players/animation_group_player.d.ts
new file mode 100644
index 0000000..7cbe2f0
--- /dev/null
+++ b/node_modules/@angular/animations/src/players/animation_group_player.d.ts
@@ -0,0 +1,31 @@
+import { AnimationPlayer } from './animation_player';
+export declare class AnimationGroupPlayer implements AnimationPlayer {
+    private _players;
+    private _onDoneFns;
+    private _onStartFns;
+    private _finished;
+    private _started;
+    private _destroyed;
+    private _onDestroyFns;
+    parentPlayer: AnimationPlayer | null;
+    totalTime: number;
+    constructor(_players: AnimationPlayer[]);
+    private _onFinish();
+    init(): void;
+    onStart(fn: () => void): void;
+    private _onStart();
+    onDone(fn: () => void): void;
+    onDestroy(fn: () => void): void;
+    hasStarted(): boolean;
+    play(): void;
+    pause(): void;
+    restart(): void;
+    finish(): void;
+    destroy(): void;
+    private _onDestroy();
+    reset(): void;
+    setPosition(p: number): void;
+    getPosition(): number;
+    readonly players: AnimationPlayer[];
+    beforeDestroy(): void;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/src/players/animation_player.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/src/players/animation_player.d.ts b/node_modules/@angular/animations/src/players/animation_player.d.ts
new file mode 100644
index 0000000..2c08b1e
--- /dev/null
+++ b/node_modules/@angular/animations/src/players/animation_player.d.ts
@@ -0,0 +1,54 @@
+/**
+ * AnimationPlayer controls an animation sequence that was produced from a programmatic animation.
+ * (see {@link AnimationBuilder AnimationBuilder} for more information on how to create programmatic
+ * animations.)
+ *
+ * @experimental Animation support is experimental.
+ */
+export interface AnimationPlayer {
+    onDone(fn: () => void): void;
+    onStart(fn: () => void): void;
+    onDestroy(fn: () => void): void;
+    init(): void;
+    hasStarted(): boolean;
+    play(): void;
+    pause(): void;
+    restart(): void;
+    finish(): void;
+    destroy(): void;
+    reset(): void;
+    setPosition(p: any): void;
+    getPosition(): number;
+    parentPlayer: AnimationPlayer | null;
+    readonly totalTime: number;
+    beforeDestroy?: () => any;
+}
+/**
+ * @experimental Animation support is experimental.
+ */
+export declare class NoopAnimationPlayer implements AnimationPlayer {
+    private _onDoneFns;
+    private _onStartFns;
+    private _onDestroyFns;
+    private _started;
+    private _destroyed;
+    private _finished;
+    parentPlayer: AnimationPlayer | null;
+    totalTime: number;
+    constructor();
+    private _onFinish();
+    onStart(fn: () => void): void;
+    onDone(fn: () => void): void;
+    onDestroy(fn: () => void): void;
+    hasStarted(): boolean;
+    init(): void;
+    play(): void;
+    private _onStart();
+    pause(): void;
+    restart(): void;
+    finish(): void;
+    destroy(): void;
+    reset(): void;
+    setPosition(p: number): void;
+    getPosition(): number;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/src/private_export.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/src/private_export.d.ts b/node_modules/@angular/animations/src/private_export.d.ts
new file mode 100644
index 0000000..606bab2
--- /dev/null
+++ b/node_modules/@angular/animations/src/private_export.d.ts
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+export { AnimationGroupPlayer as ɵAnimationGroupPlayer } from './players/animation_group_player';
+export declare const ɵPRE_STYLE = "!";

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/src/util.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/src/util.d.ts b/node_modules/@angular/animations/src/util.d.ts
new file mode 100644
index 0000000..886c668
--- /dev/null
+++ b/node_modules/@angular/animations/src/util.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @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
+ */
+export declare function scheduleMicroTask(cb: () => any): void;

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/_a11y.scss
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/_a11y.scss b/node_modules/@angular/cdk/_a11y.scss
new file mode 100644
index 0000000..b9bbc41
--- /dev/null
+++ b/node_modules/@angular/cdk/_a11y.scss
@@ -0,0 +1,23 @@
+@mixin cdk-a11y {
+  .cdk-visually-hidden {
+    border: 0;
+    clip: rect(0 0 0 0);
+    height: 1px;
+    margin: -1px;
+    overflow: hidden;
+    padding: 0;
+    position: absolute;
+    width: 1px;
+  }
+}
+
+/**
+ * Applies styles for users in high contrast mode. Note that this only applies
+ * to Microsoft browsers. Chrome can be included by checking for the `html[hc]`
+ * attribute, however Chrome handles high contrast differently.
+ */
+@mixin cdk-high-contrast {
+  @media screen and (-ms-high-contrast: active) {
+    @content;
+  }
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/_overlay.scss
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/_overlay.scss b/node_modules/@angular/cdk/_overlay.scss
new file mode 100644
index 0000000..766bd60
--- /dev/null
+++ b/node_modules/@angular/cdk/_overlay.scss
@@ -0,0 +1,93 @@
+// We want overlays to always appear over user content, so set a baseline
+// very high z-index for the overlay container, which is where we create the new
+// stacking context for all overlays.
+$cdk-z-index-overlay-container: 1000;
+$cdk-z-index-overlay: 1000;
+$cdk-z-index-overlay-backdrop: 1000;
+
+// Background color for all of the backdrops
+$cdk-overlay-dark-backdrop-background: rgba(0, 0, 0, 0.6);
+
+// Default backdrop animation is based on the Material Design swift-ease-out.
+$backdrop-animation-duration: 400ms !default;
+$backdrop-animation-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1) !default;
+
+
+@mixin cdk-overlay() {
+  .cdk-overlay-container, .cdk-global-overlay-wrapper {
+    // Disable events from being captured on the overlay container.
+    pointer-events: none;
+
+    // The container should be the size of the viewport.
+    top: 0;
+    left: 0;
+    height: 100%;
+    width: 100%;
+  }
+
+  // The overlay-container is an invisible element which contains all individual overlays.
+  .cdk-overlay-container {
+    position: fixed;
+    z-index: $cdk-z-index-overlay-container;
+  }
+
+  // We use an extra wrapper element in order to use make the overlay itself a flex item.
+  // This makes centering the overlay easy without running into the subpixel rendering
+  // problems tied to using `transform` and without interfering with the other position
+  // strategies.
+  .cdk-global-overlay-wrapper {
+    display: flex;
+    position: absolute;
+    z-index: $cdk-z-index-overlay;
+  }
+
+  // A single overlay pane.
+  .cdk-overlay-pane {
+    position: absolute;
+    pointer-events: auto;
+    box-sizing: border-box;
+    z-index: $cdk-z-index-overlay;
+  }
+
+  .cdk-overlay-backdrop {
+    // TODO(jelbourn): reuse sidenav fullscreen mixin.
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+
+    z-index: $cdk-z-index-overlay-backdrop;
+    pointer-events: auto;
+    -webkit-tap-highlight-color: transparent;
+    transition: opacity $backdrop-animation-duration $backdrop-animation-timing-function;
+    opacity: 0;
+
+    &.cdk-overlay-backdrop-showing {
+      opacity: 0.48;
+    }
+  }
+
+  .cdk-overlay-dark-backdrop {
+    background: $cdk-overlay-dark-backdrop-background;
+  }
+
+  .cdk-overlay-transparent-backdrop {
+    background: none;
+  }
+
+  // Used when disabling global scrolling.
+  .cdk-global-scrollblock {
+    position: fixed;
+
+    // Necessary for the content not to lose its width. Note that we're using 100%, instead of
+    // 100vw, because 100vw includes the width plus the scrollbar, whereas 100% is the width
+    // that the element had before we made it `fixed`.
+    width: 100%;
+
+    // Note: this will always add a scrollbar to whatever element it is on, which can
+    // potentially result in double scrollbars. It shouldn't be an issue, because we won't
+    // block scrolling on a page that doesn't have a scrollbar in the first place.
+    overflow-y: scroll;
+  }
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y-prebuilt.css
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y-prebuilt.css b/node_modules/@angular/cdk/a11y-prebuilt.css
new file mode 100644
index 0000000..fc348fd
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y-prebuilt.css
@@ -0,0 +1 @@
+.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y.d.ts b/node_modules/@angular/cdk/a11y.d.ts
new file mode 100644
index 0000000..5f291cf
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @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
+ */
+export * from './a11y/index';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y.metadata.json b/node_modules/@angular/cdk/a11y.metadata.json
new file mode 100644
index 0000000..90c7d2b
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y.metadata.json
@@ -0,0 +1,12 @@
+{
+  "__symbolic": "module",
+  "version": 3,
+  "metadata": {},
+  "exports": [
+    {
+      "from": "./a11y/index"
+    }
+  ],
+  "flatModuleIndexRedirect": true,
+  "importAs": "@angular/cdk/a11y"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/index.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/index.d.ts b/node_modules/@angular/cdk/a11y/index.d.ts
new file mode 100644
index 0000000..5a30354
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/index.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @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
+ */
+export * from './typings/index';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/index.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/index.metadata.json b/node_modules/@angular/cdk/a11y/index.metadata.json
new file mode 100644
index 0000000..c0d17e5
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/index.metadata.json
@@ -0,0 +1,12 @@
+{
+  "__symbolic": "module",
+  "version": 3,
+  "metadata": {},
+  "exports": [
+    {
+      "from": "./typings/index"
+    }
+  ],
+  "flatModuleIndexRedirect": true,
+  "importAs": "@angular/cdk/a11y"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/package.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/package.json b/node_modules/@angular/cdk/a11y/package.json
new file mode 100644
index 0000000..07200cd
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/package.json
@@ -0,0 +1,7 @@
+{
+  "name": "@angular/cdk/a11y",
+  "typings": "../a11y.d.ts",
+  "main": "../bundles/cdk-a11y.umd.js",
+  "module": "../esm5/a11y.es5.js",
+  "es2015": "../esm2015/a11y.js"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/a11y-module.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/a11y-module.d.ts b/node_modules/@angular/cdk/a11y/typings/a11y-module.d.ts
new file mode 100644
index 0000000..8d39e03
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/a11y-module.d.ts
@@ -0,0 +1,2 @@
+export declare class A11yModule {
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/activedescendant-key-manager.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/activedescendant-key-manager.d.ts b/node_modules/@angular/cdk/a11y/typings/activedescendant-key-manager.d.ts
new file mode 100644
index 0000000..2943560
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/activedescendant-key-manager.d.ts
@@ -0,0 +1,25 @@
+/**
+ * @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 { ListKeyManager, ListKeyManagerOption } from './list-key-manager';
+/**
+ * This is the interface for highlightable items (used by the ActiveDescendantKeyManager).
+ * Each item must know how to style itself as active or inactive and whether or not it is
+ * currently disabled.
+ */
+export interface Highlightable extends ListKeyManagerOption {
+    setActiveStyles(): void;
+    setInactiveStyles(): void;
+}
+export declare class ActiveDescendantKeyManager<T> extends ListKeyManager<Highlightable & T> {
+    /**
+     * This method sets the active item to the item at the specified index.
+     * It also adds active styles to the newly active item and removes active
+     * styles from the previously active item.
+     */
+    setActiveItem(index: number): void;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/aria-describer.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/aria-describer.d.ts b/node_modules/@angular/cdk/a11y/typings/aria-describer.d.ts
new file mode 100644
index 0000000..6477f0b
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/aria-describer.d.ts
@@ -0,0 +1,51 @@
+/**
+ * @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 { Optional } from '@angular/core';
+import { Platform } from '@angular/cdk/platform';
+/**
+ * Interface used to register message elements and keep a count of how many registrations have
+ * the same message and the reference to the message element used for the aria-describedby.
+ */
+export interface RegisteredMessage {
+    messageElement: Element;
+    referenceCount: number;
+}
+/** ID used for the body container where all messages are appended. */
+export declare const MESSAGES_CONTAINER_ID = "cdk-describedby-message-container";
+/** ID prefix used for each created message element. */
+export declare const CDK_DESCRIBEDBY_ID_PREFIX = "cdk-describedby-message";
+/** Attribute given to each host element that is described by a message element. */
+export declare const CDK_DESCRIBEDBY_HOST_ATTRIBUTE = "cdk-describedby-host";
+/**
+ * Utility that creates visually hidden elements with a message content. Useful for elements that
+ * want to use aria-describedby to further describe themselves without adding additional visual
+ * content.
+ * @docs-private
+ */
+export declare class AriaDescriber {
+    private _platform;
+    constructor(_platform: Platform);
+    /**
+     * Adds to the host element an aria-describedby reference to a hidden element that contains
+     * the message. If the same message has already been registered, then it will reuse the created
+     * message element.
+     */
+    describe(hostElement: Element, message: string): void;
+    /** Removes the host element's aria-describedby reference to the message element. */
+    removeDescription(hostElement: Element, message: string): void;
+    /** Unregisters all created message elements and removes the message container. */
+    ngOnDestroy(): void;
+}
+/** @docs-private */
+export declare function ARIA_DESCRIBER_PROVIDER_FACTORY(parentDispatcher: AriaDescriber, platform: Platform): AriaDescriber;
+/** @docs-private */
+export declare const ARIA_DESCRIBER_PROVIDER: {
+    provide: typeof AriaDescriber;
+    deps: (Optional[] | typeof Platform)[];
+    useFactory: (parentDispatcher: AriaDescriber, platform: Platform) => AriaDescriber;
+};

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/aria-reference.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/aria-reference.d.ts b/node_modules/@angular/cdk/a11y/typings/aria-reference.d.ts
new file mode 100644
index 0000000..3e39404
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/aria-reference.d.ts
@@ -0,0 +1,15 @@
+/**
+ * Adds the given ID to the specified ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ */
+export declare function addAriaReferencedId(el: Element, attr: string, id: string): void;
+/**
+ * Removes the given ID from the specified ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ */
+export declare function removeAriaReferencedId(el: Element, attr: string, id: string): void;
+/**
+ * Gets the list of IDs referenced by the given ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ */
+export declare function getAriaReferenceIds(el: Element, attr: string): string[];

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/fake-mousedown.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/fake-mousedown.d.ts b/node_modules/@angular/cdk/a11y/typings/fake-mousedown.d.ts
new file mode 100644
index 0000000..ac3b375
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/fake-mousedown.d.ts
@@ -0,0 +1,15 @@
+/**
+ * @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
+ */
+/**
+ * Screenreaders will often fire fake mousedown events when a focusable element
+ * is activated using the keyboard. We can typically distinguish between these faked
+ * mousedown events and real mousedown events using the "buttons" property. While
+ * real mousedowns will indicate the mouse button that was pressed (e.g. "1" for
+ * the left mouse button), faked mousedowns will usually set the property value to 0.
+ */
+export declare function isFakeMousedownFromScreenReader(event: MouseEvent): boolean;

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/focus-key-manager.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/focus-key-manager.d.ts b/node_modules/@angular/cdk/a11y/typings/focus-key-manager.d.ts
new file mode 100644
index 0000000..ae1dc94
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/focus-key-manager.d.ts
@@ -0,0 +1,23 @@
+/**
+ * @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 { ListKeyManager, ListKeyManagerOption } from './list-key-manager';
+/**
+ * This is the interface for focusable items (used by the FocusKeyManager).
+ * Each item must know how to focus itself, whether or not it is currently disabled
+ * and be able to supply it's label.
+ */
+export interface FocusableOption extends ListKeyManagerOption {
+    focus(): void;
+}
+export declare class FocusKeyManager<T> extends ListKeyManager<FocusableOption & T> {
+    /**
+     * This method sets the active item to the item at the specified index.
+     * It also adds focuses the newly active item.
+     */
+    setActiveItem(index: number): void;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/focus-monitor.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/focus-monitor.d.ts b/node_modules/@angular/cdk/a11y/typings/focus-monitor.d.ts
new file mode 100644
index 0000000..463d67a
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/focus-monitor.d.ts
@@ -0,0 +1,106 @@
+/**
+ * @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 { Platform } from '@angular/cdk/platform';
+import { ElementRef, EventEmitter, NgZone, OnDestroy, Optional, Renderer2 } from '@angular/core';
+import { Observable } from 'rxjs/Observable';
+export declare const TOUCH_BUFFER_MS = 650;
+export declare type FocusOrigin = 'touch' | 'mouse' | 'keyboard' | 'program' | null;
+/** Monitors mouse and keyboard events to determine the cause of focus events. */
+export declare class FocusMonitor {
+    private _ngZone;
+    private _platform;
+    /** The focus origin that the next focus event is a result of. */
+    private _origin;
+    /** The FocusOrigin of the last focus event tracked by the FocusMonitor. */
+    private _lastFocusOrigin;
+    /** Whether the window has just been focused. */
+    private _windowFocused;
+    /** The target of the last touch event. */
+    private _lastTouchTarget;
+    /** The timeout id of the touch timeout, used to cancel timeout later. */
+    private _touchTimeout;
+    /** Weak map of elements being monitored to their info. */
+    private _elementInfo;
+    constructor(_ngZone: NgZone, _platform: Platform);
+    /**
+     * Monitors focus on an element and applies appropriate CSS classes.
+     * @param element The element to monitor
+     * @param renderer The renderer to use to apply CSS classes to the element.
+     * @param checkChildren Whether to count the element as focused when its children are focused.
+     * @returns An observable that emits when the focus state of the element changes.
+     *     When the element is blurred, null will be emitted.
+     */
+    monitor(element: HTMLElement, renderer: Renderer2, checkChildren: boolean): Observable<FocusOrigin>;
+    /**
+     * Stops monitoring an element and removes all focus classes.
+     * @param element The element to stop monitoring.
+     */
+    stopMonitoring(element: HTMLElement): void;
+    /**
+     * Focuses the element via the specified focus origin.
+     * @param element The element to focus.
+     * @param origin The focus origin.
+     */
+    focusVia(element: HTMLElement, origin: FocusOrigin): void;
+    /** Register necessary event listeners on the document and window. */
+    private _registerDocumentEvents();
+    /**
+     * Sets the focus classes on the element based on the given focus origin.
+     * @param element The element to update the classes on.
+     * @param origin The focus origin.
+     */
+    private _setClasses(element, origin?);
+    /**
+     * Sets the origin and schedules an async function to clear it at the end of the event queue.
+     * @param origin The origin to set.
+     */
+    private _setOriginForCurrentEventQueue(origin);
+    /**
+     * Checks whether the given focus event was caused by a touchstart event.
+     * @param event The focus event to check.
+     * @returns Whether the event was caused by a touch.
+     */
+    private _wasCausedByTouch(event);
+    /**
+     * Handles focus events on a registered element.
+     * @param event The focus event.
+     * @param element The monitored element.
+     */
+    private _onFocus(event, element);
+    /**
+     * Handles blur events on a registered element.
+     * @param event The blur event.
+     * @param element The monitored element.
+     */
+    _onBlur(event: FocusEvent, element: HTMLElement): void;
+}
+/**
+ * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or
+ * programmatically) and adds corresponding classes to the element.
+ *
+ * There are two variants of this directive:
+ * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is
+ *    focused.
+ * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.
+ */
+export declare class CdkMonitorFocus implements OnDestroy {
+    private _elementRef;
+    private _focusMonitor;
+    private _monitorSubscription;
+    cdkFocusChange: EventEmitter<FocusOrigin>;
+    constructor(_elementRef: ElementRef, _focusMonitor: FocusMonitor, renderer: Renderer2);
+    ngOnDestroy(): void;
+}
+/** @docs-private */
+export declare function FOCUS_MONITOR_PROVIDER_FACTORY(parentDispatcher: FocusMonitor, ngZone: NgZone, platform: Platform): FocusMonitor;
+/** @docs-private */
+export declare const FOCUS_MONITOR_PROVIDER: {
+    provide: typeof FocusMonitor;
+    deps: (Optional[] | typeof Platform | typeof NgZone)[];
+    useFactory: (parentDispatcher: FocusMonitor, ngZone: NgZone, platform: Platform) => FocusMonitor;
+};

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/focus-trap.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/focus-trap.d.ts b/node_modules/@angular/cdk/a11y/typings/focus-trap.d.ts
new file mode 100644
index 0000000..f16af28
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/focus-trap.d.ts
@@ -0,0 +1,120 @@
+/**
+ * @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 { ElementRef, NgZone, OnDestroy, AfterContentInit } from '@angular/core';
+import { Platform } from '@angular/cdk/platform';
+import { InteractivityChecker } from './interactivity-checker';
+/**
+ * Class that allows for trapping focus within a DOM element.
+ *
+ * NOTE: This class currently uses a very simple (naive) approach to focus trapping.
+ * It assumes that the tab order is the same as DOM order, which is not necessarily true.
+ * Things like tabIndex > 0, flex `order`, and shadow roots can cause to two to misalign.
+ * This will be replaced with a more intelligent solution before the library is considered stable.
+ */
+export declare class FocusTrap {
+    private _element;
+    private _platform;
+    private _checker;
+    private _ngZone;
+    private _startAnchor;
+    private _endAnchor;
+    /** Whether the focus trap is active. */
+    enabled: boolean;
+    private _enabled;
+    constructor(_element: HTMLElement, _platform: Platform, _checker: InteractivityChecker, _ngZone: NgZone, deferAnchors?: boolean);
+    /** Destroys the focus trap by cleaning up the anchors. */
+    destroy(): void;
+    /**
+     * Inserts the anchors into the DOM. This is usually done automatically
+     * in the constructor, but can be deferred for cases like directives with `*ngIf`.
+     */
+    attachAnchors(): void;
+    /**
+     * Waits for the zone to stabilize, then either focuses the first element that the
+     * user specified, or the first tabbable element.
+     * @returns Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    focusInitialElementWhenReady(): Promise<boolean>;
+    /**
+     * Waits for the zone to stabilize, then focuses
+     * the first tabbable element within the focus trap region.
+     * @returns Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    focusFirstTabbableElementWhenReady(): Promise<boolean>;
+    /**
+     * Waits for the zone to stabilize, then focuses
+     * the last tabbable element within the focus trap region.
+     * @returns Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    focusLastTabbableElementWhenReady(): Promise<boolean>;
+    /**
+     * Get the specified boundary element of the trapped region.
+     * @param bound The boundary to get (start or end of trapped region).
+     * @returns The boundary element.
+     */
+    private _getRegionBoundary(bound);
+    /**
+     * Focuses the element that should be focused when the focus trap is initialized.
+     * @returns Returns whether focus was moved successfuly.
+     */
+    focusInitialElement(): boolean;
+    /**
+     * Focuses the first tabbable element within the focus trap region.
+     * @returns Returns whether focus was moved successfuly.
+     */
+    focusFirstTabbableElement(): boolean;
+    /**
+     * Focuses the last tabbable element within the focus trap region.
+     * @returns Returns whether focus was moved successfuly.
+     */
+    focusLastTabbableElement(): boolean;
+    /** Get the first tabbable element from a DOM subtree (inclusive). */
+    private _getFirstTabbableElement(root);
+    /** Get the last tabbable element from a DOM subtree (inclusive). */
+    private _getLastTabbableElement(root);
+    /** Creates an anchor element. */
+    private _createAnchor();
+    /** Executes a function when the zone is stable. */
+    private _executeOnStable(fn);
+}
+/** Factory that allows easy instantiation of focus traps. */
+export declare class FocusTrapFactory {
+    private _checker;
+    private _platform;
+    private _ngZone;
+    constructor(_checker: InteractivityChecker, _platform: Platform, _ngZone: NgZone);
+    create(element: HTMLElement, deferAnchors?: boolean): FocusTrap;
+}
+/**
+ * Directive for trapping focus within a region.
+ * @deprecated
+ */
+export declare class FocusTrapDeprecatedDirective implements OnDestroy, AfterContentInit {
+    private _elementRef;
+    private _focusTrapFactory;
+    focusTrap: FocusTrap;
+    /** Whether the focus trap is active. */
+    disabled: boolean;
+    constructor(_elementRef: ElementRef, _focusTrapFactory: FocusTrapFactory);
+    ngOnDestroy(): void;
+    ngAfterContentInit(): void;
+}
+/** Directive for trapping focus within a region. */
+export declare class FocusTrapDirective implements OnDestroy, AfterContentInit {
+    private _elementRef;
+    private _focusTrapFactory;
+    focusTrap: FocusTrap;
+    /** Whether the focus trap is active. */
+    enabled: boolean;
+    constructor(_elementRef: ElementRef, _focusTrapFactory: FocusTrapFactory);
+    ngOnDestroy(): void;
+    ngAfterContentInit(): void;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/index.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/index.d.ts b/node_modules/@angular/cdk/a11y/typings/index.d.ts
new file mode 100644
index 0000000..e5daacf
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/index.d.ts
@@ -0,0 +1,4 @@
+/**
+ * Generated bundle index. Do not edit.
+ */
+export * from './public-api';


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/observers.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/observers.es5.js b/node_modules/@angular/cdk/esm5/observers.es5.js
new file mode 100644
index 0000000..f248cc6
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/observers.es5.js
@@ -0,0 +1,137 @@
+/**
+ * @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
+ */
+var MatMutationObserverFactory = (function () {
+    function MatMutationObserverFactory() {
+    }
+    /**
+     * @param {?} callback
+     * @return {?}
+     */
+    MatMutationObserverFactory.prototype.create = function (callback) {
+        return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);
+    };
+    MatMutationObserverFactory.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    MatMutationObserverFactory.ctorParameters = function () { return []; };
+    return MatMutationObserverFactory;
+}());
+/**
+ * Directive that triggers a callback whenever the content of
+ * its associated element has changed.
+ */
+var ObserveContent = (function () {
+    /**
+     * @param {?} _mutationObserverFactory
+     * @param {?} _elementRef
+     * @param {?} _ngZone
+     */
+    function ObserveContent(_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 {?}
+     */
+    ObserveContent.prototype.ngAfterContentInit = function () {
+        var _this = this;
+        if (this.debounce > 0) {
+            this._ngZone.runOutsideAngular(function () {
+                RxChain.from(_this._debouncer)
+                    .call(debounceTime, _this.debounce)
+                    .subscribe(function (mutations) { return _this.event.emit(mutations); });
+            });
+        }
+        else {
+            this._debouncer.subscribe(function (mutations) { return _this.event.emit(mutations); });
+        }
+        this._observer = this._ngZone.runOutsideAngular(function () {
+            return _this._mutationObserverFactory.create(function (mutations) {
+                _this._debouncer.next(mutations);
+            });
+        });
+        if (this._observer) {
+            this._observer.observe(this._elementRef.nativeElement, {
+                characterData: true,
+                childList: true,
+                subtree: true
+            });
+        }
+    };
+    /**
+     * @return {?}
+     */
+    ObserveContent.prototype.ngOnDestroy = function () {
+        if (this._observer) {
+            this._observer.disconnect();
+        }
+        this._debouncer.complete();
+    };
+    ObserveContent.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdkObserveContent]',
+                    exportAs: 'cdkObserveContent',
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    ObserveContent.ctorParameters = function () { return [
+        { type: MatMutationObserverFactory, },
+        { type: ElementRef, },
+        { type: NgZone, },
+    ]; };
+    ObserveContent.propDecorators = {
+        'event': [{ type: Output, args: ['cdkObserveContent',] },],
+        'debounce': [{ type: Input },],
+    };
+    return ObserveContent;
+}());
+var ObserversModule = (function () {
+    function ObserversModule() {
+    }
+    ObserversModule.decorators = [
+        { type: NgModule, args: [{
+                    exports: [ObserveContent],
+                    declarations: [ObserveContent],
+                    providers: [MatMutationObserverFactory]
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    ObserversModule.ctorParameters = function () { return []; };
+    return ObserversModule;
+}());
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { MatMutationObserverFactory, ObserveContent, ObserversModule };
+//# sourceMappingURL=observers.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/observers.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/observers.es5.js.map b/node_modules/@angular/cdk/esm5/observers.es5.js.map
new file mode 100644
index 0000000..2ee7ad2
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/observers.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"observers.es5.js","sources":["../../packages/cdk/esm5/observers/observe-content.js","../../packages/cdk/esm5/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 */\nvar MatMutationObserverFactory = (function () {\n    function MatMutationObserverFactory() {\n    }\n    /**\n     * @param {?} callback\n     * @return {?}\n     */\n    MatMutationObserverFactory.prototype.create = function (callback) {\n        return typeof MutationObserver
  === 'undefined' ? null : new MutationObserver(callback);\n    };\n    MatMutationObserverFactory.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    MatMutationObserverFactory.ctorParameters = function () { return []; };\n    return MatMutationObserverFactory;\n}());\nexport { MatMutationObserverFactory };\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 */\nvar ObserveContent = (function () {\n    /**\n     * @param {?} _mutationObserverFactory\n     * @param {?} _elementRef\n     * @param {?} _ngZone\n     */\n    function ObserveContent(_mutationObserverFactory, _elementRef, _ngZone) {\n        this._mutationObserverFactory = _mutationO
 bserverFactory;\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    ObserveContent.prototype.ngAfterContentInit = function () {\n        var _this = this;\n        if (this.debounce > 0) {\n            this._ngZone.runOutsideAngular(function () {\n                RxChain.from(_this._debouncer)\n                    .call(debounceTime, _this.debounce)\n                    .subscribe(function (mutations) { return _this.event.emit(mutations); });\n            });\n        }\n        else {\n            this._debouncer.subscribe(function (mutations) { return _this.event.emit(mutations); });\n        }\n        this._observer = this._ngZon
 e.runOutsideAngular(function () {\n            return _this._mutationObserverFactory.create(function (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: true\n            });\n        }\n    };\n    /**\n     * @return {?}\n     */\n    ObserveContent.prototype.ngOnDestroy = function () {\n        if (this._observer) {\n            this._observer.disconnect();\n        }\n        this._debouncer.complete();\n    };\n    ObserveContent.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkObserveContent]',\n                    exportAs: 'cdkObserveContent',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    ObserveContent.ctorParameters = function () { return [\n        { type: MatMutation
 ObserverFactory, },\n        { type: ElementRef, },\n        { type: NgZone, },\n    ]; };\n    ObserveContent.propDecorators = {\n        'event': [{ type: Output, args: ['cdkObserveContent',] },],\n        'debounce': [{ type: Input },],\n    };\n    return ObserveContent;\n}());\nexport { ObserveContent };\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    /** @type {?} */\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}\nvar ObserversModule = (function () {\n    function ObserversModule() {\n    }\n    ObserversModule.decorators = [\n        { type: NgModule, args: [{\n                    exports: [ObserveContent],\n                    declarations: [ObserveContent],\n                    providers: [MatMutationObserverFactory]\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    ObserversModule.ctorParameters = function () { return []; };\n    return ObserversModule;\n}());\nexport { ObserversModule };\nfunction ObserversModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ObserversModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ObserversModule.ctorParameters;\n}\n//# sou
 rceMappingURL=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


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/bundles/animations-browser.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations-browser.umd.min.js.map b/node_modules/@angular/animations/bundles/animations-browser.umd.min.js.map
new file mode 100644
index 0000000..1a5e747
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations-browser.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"animations-browser.umd.min.js","sources":["../../../../packages/animations/browser/src/render/transition_animation_engine.ts","../../../../packages/animations/browser/src/util.ts","../../../../packages/animations/browser/src/render/animation_engine_next.ts","../../../../packages/animations/browser/src/render/web_animations/web_animations_player.ts","../../../../packages/animations/browser/src/render/web_animations/web_animations_driver.ts","../../../../packages/animations/browser/src/dsl/style_normalization/web_animations_style_normalizer.ts","../../../../packages/animations/browser/src/dsl/animation_transition_factory.ts","../../../../packages/animations/browser/src/dsl/animation_trigger.ts","../../../../packages/animations/browser/src/render/timeline_animation_engine.ts","../../../../packages/animations/browser/src/dsl/animation_ast_builder.ts","../../../../packages/animations/browser/src/dsl/element_instruction_map.ts","../../../../packages/animations/browser
 /src/dsl/animation_timeline_builder.ts","../../../../packages/animations/browser/src/dsl/animation.ts","../../../../packages/animations/browser/src/dsl/style_normalization/animation_style_normalizer.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../packages/animations/browser/src/render/shared.ts","../../../../packages/animations/browser/src/render/animation_driver.ts","../../../../packages/animations/browser/src/dsl/animation_transition_instruction.ts","../../../../packages/animations/browser/src/dsl/animation_timeline_instruction.ts","../../../../packages/animations/browser/src/dsl/animation_transition_expr.ts"],"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\nimport {AUTO_STYLE, AnimationOptions, AnimationPlayer, NoopAnimationPlayer, ɵAnimationGroupPlayer as AnimationGroupPlayer, ɵPRE_S
 TYLE as PRE_STYLE, ɵStyleData} from '@angular/animations';\n\nimport {AnimationTimelineInstruction} from '../dsl/animation_timeline_instruction';\nimport {AnimationTransitionFactory} from '../dsl/animation_transition_factory';\nimport {AnimationTransitionInstruction} from '../dsl/animation_transition_instruction';\nimport {AnimationTrigger} from '../dsl/animation_trigger';\nimport {ElementInstructionMap} from '../dsl/element_instruction_map';\nimport {AnimationStyleNormalizer} from '../dsl/style_normalization/animation_style_normalizer';\nimport {ENTER_CLASSNAME, LEAVE_CLASSNAME, NG_ANIMATING_CLASSNAME, NG_ANIMATING_SELECTOR, NG_TRIGGER_CLASSNAME, NG_TRIGGER_SELECTOR, copyObj, eraseStyles, setStyles} from '../util';\n\nimport {AnimationDriver} from './animation_driver';\nimport {getOrSetAsInMap, listenOnPlayer, makeAnimationEvent, normalizeKeyframes, optimizeGroupPlayer} from './shared';\n\nconst /** @type {?} */ QUEUED_CLASSNAME = 'ng-animate-queued';\nconst /** @type {?} */ QUEUE
 D_SELECTOR = '.ng-animate-queued';\nconst /** @type {?} */ DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst /** @type {?} */ DISABLED_SELECTOR = '.ng-animate-disabled';\n\nconst /** @type {?} */ EMPTY_PLAYER_ARRAY: TransitionAnimationPlayer[] = [];\nconst /** @type {?} */ NULL_REMOVAL_STATE: ElementAnimationState = {\n  namespaceId: '',\n  setForRemoval: null,\n  hasAnimation: false,\n  removedBeforeQueried: false\n};\nconst /** @type {?} */ NULL_REMOVED_QUERIED_STATE: ElementAnimationState = {\n  namespaceId: '',\n  setForRemoval: null,\n  hasAnimation: false,\n  removedBeforeQueried: true\n};\n\ninterface TriggerListener {\n  name: string;\n  phase: string;\n  callback: (event: any) => any;\n}\n\nexport interface QueueInstruction {\n  element: any;\n  triggerName: string;\n  fromState: StateValue;\n  toState: StateValue;\n  transition: AnimationTransitionFactory;\n  player: TransitionAnimationPlayer;\n  isFallbackTransition: boolean;\n}\n\nexport const /** @type {?} */ REMOVAL_F
 LAG = '__ng_removed';\n\nexport interface ElementAnimationState {\n  setForRemoval: any;\n  hasAnimation: boolean;\n  namespaceId: string;\n  removedBeforeQueried: boolean;\n}\nexport class StateValue {\npublic value: string;\npublic options: AnimationOptions;\n/**\n * @return {?}\n */\nget params(): {[key: string]: any} { return /** @type {?} */(( this.options.params as{[key: string]: any})); }\n/**\n * @param {?} input\n */\nconstructor(input: any) {\n    const isObj = input && input.hasOwnProperty('value');\n    const value = isObj ? input['value'] : input;\n    this.value = normalizeTriggerValue(value);\n    if (isObj) {\n      const options = copyObj(input as any);\n      delete options['value'];\n      this.options = options as AnimationOptions;\n    } else {\n      this.options = {};\n    }\n    if (!this.options.params) {\n      this.options.params = {};\n    }\n  }\n/**\n * @param {?} options\n * @return {?}\n */\nabsorbOptions(options: AnimationOptions) {\n    const /** @t
 ype {?} */ newParams = options.params;\n    if (newParams) {\n      const /** @type {?} */ oldParams = /** @type {?} */(( this.options.params));\n      Object.keys(newParams).forEach(prop => {\n        if (oldParams[prop] == null) {\n          oldParams[prop] = newParams[prop];\n        }\n      });\n    }\n  }\n}\n\nfunction StateValue_tsickle_Closure_declarations() {\n/** @type {?} */\nStateValue.prototype.value;\n/** @type {?} */\nStateValue.prototype.options;\n}\n\n\nexport const /** @type {?} */ VOID_VALUE = 'void';\nexport const /** @type {?} */ DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nexport const /** @type {?} */ DELETED_STATE_VALUE = new StateValue('DELETED');\nexport class AnimationTransitionNamespace {\npublic players: TransitionAnimationPlayer[] = [];\nprivate _triggers: {[triggerName: string]: AnimationTrigger} = {};\nprivate _queue: QueueInstruction[] = [];\nprivate _elementListeners = new Map<any, TriggerListener[]>();\nprivate _hostClassName: string;\n/**\n
  * @param {?} id\n * @param {?} hostElement\n * @param {?} _engine\n */\nconstructor(\npublic id: string,\npublic hostElement: any,\nprivate _engine: TransitionAnimationEngine) {\n    this._hostClassName = 'ng-tns-' + id;\n    addClass(hostElement, this._hostClassName);\n  }\n/**\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\nlisten(element: any, name: string, phase: string, callback: (event: any) => boolean): () => any {\n    if (!this._triggers.hasOwnProperty(name)) {\n      throw new Error(`Unable to listen on the animation trigger event \"${\n          phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n    }\n\n    if (phase == null || phase.length == 0) {\n      throw new Error(`Unable to listen on the animation trigger \"${\n          name}\" because the provided event is undefined!`);\n    }\n\n    if (!isTriggerEventValid(phase)) {\n      throw new Error(`The provided animation trigger event 
 \"${phase}\" for the animation trigger \"${\n          name}\" is not supported!`);\n    }\n\n    const /** @type {?} */ listeners = getOrSetAsInMap(this._elementListeners, element, []);\n    const /** @type {?} */ data = {name, phase, callback};\n    listeners.push(data);\n\n    const /** @type {?} */ triggersWithStates = getOrSetAsInMap(this._engine.statesByElement, element, {});\n    if (!triggersWithStates.hasOwnProperty(name)) {\n      addClass(element, NG_TRIGGER_CLASSNAME);\n      addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n      triggersWithStates[name] = null;\n    }\n\n    return () => {\n      // the event listener is removed AFTER the flush has occurred such\n      // that leave animations callbacks can fire (otherwise if the node\n      // is removed in between then the listeners would be deregistered)\n      this._engine.afterFlush(() => {\n        const /** @type {?} */ index = listeners.indexOf(data);\n        if (index >= 0) {\n          listeners.splice(
 index, 1);\n        }\n\n        if (!this._triggers[name]) {\n          delete triggersWithStates[name];\n        }\n      });\n    };\n  }\n/**\n * @param {?} name\n * @param {?} ast\n * @return {?}\n */\nregister(name: string, ast: AnimationTrigger): boolean {\n    if (this._triggers[name]) {\n      // throw\n      return false;\n    } else {\n      this._triggers[name] = ast;\n      return true;\n    }\n  }\n/**\n * @param {?} name\n * @return {?}\n */\nprivate _getTrigger(name: string) {\n    const /** @type {?} */ trigger = this._triggers[name];\n    if (!trigger) {\n      throw new Error(`The provided animation trigger \"${name}\" has not been registered!`);\n    }\n    return trigger;\n  }\n/**\n * @param {?} element\n * @param {?} triggerName\n * @param {?} value\n * @param {?=} defaultToFallback\n * @return {?}\n */\ntrigger(element: any, triggerName: string, value: any, defaultToFallback: boolean = true):\n      TransitionAnimationPlayer|undefined {\n    const /** @type {
 ?} */ trigger = this._getTrigger(triggerName);\n    const /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element);\n\n    let /** @type {?} */ triggersWithStates = this._engine.statesByElement.get(element);\n    if (!triggersWithStates) {\n      addClass(element, NG_TRIGGER_CLASSNAME);\n      addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n      this._engine.statesByElement.set(element, triggersWithStates = {});\n    }\n\n    let /** @type {?} */ fromState = triggersWithStates[triggerName];\n    const /** @type {?} */ toState = new StateValue(value);\n\n    const /** @type {?} */ isObj = value && value.hasOwnProperty('value');\n    if (!isObj && fromState) {\n      toState.absorbOptions(fromState.options);\n    }\n\n    triggersWithStates[triggerName] = toState;\n\n    if (!fromState) {\n      fromState = DEFAULT_STATE_VALUE;\n    } else if (fromState === DELETED_STATE_VALUE) {\n      return player;\n    }\n\n    const /** @type {?} */ is
 Removal = toState.value === VOID_VALUE;\n\n    // normally this isn't reached by here, however, if an object expression\n    // is passed in then it may be a new object each time. Comparing the value\n    // is important since that will stay the same despite there being a new object.\n    // The removal arc here is special cased because the same element is triggered\n    // twice in the event that it contains animations on the outer/inner portions\n    // of the host container\n    if (!isRemoval && fromState.value === toState.value) {\n      // this means that despite the value not changing, some inner params\n      // have changed which means that the animation final styles need to be applied\n      if (!objEquals(fromState.params, toState.params)) {\n        const /** @type {?} */ errors: any[] = [];\n        const /** @type {?} */ fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n        const /** @type {?} */ toStyles = trigger.matchStyles(toState.va
 lue, toState.params, errors);\n        if (errors.length) {\n          this._engine.reportError(errors);\n        } else {\n          this._engine.afterFlush(() => {\n            eraseStyles(element, fromStyles);\n            setStyles(element, toStyles);\n          });\n        }\n      }\n      return;\n    }\n\n    const /** @type {?} */ playersOnElement: TransitionAnimationPlayer[] =\n        getOrSetAsInMap(this._engine.playersByElement, element, []);\n    playersOnElement.forEach(player => {\n      // only remove the player if it is queued on the EXACT same trigger/namespace\n      // we only also deal with queued players here because if the animation has\n      // started then we want to keep the player alive until the flush happens\n      // (which is where the previousPlayers are passed into the new palyer)\n      if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n        player.destroy();\n      }\n    });\n\n    let /** @type {?} *
 / transition = trigger.matchTransition(fromState.value, toState.value);\n    let /** @type {?} */ isFallbackTransition = false;\n    if (!transition) {\n      if (!defaultToFallback) return;\n      transition = trigger.fallbackTransition;\n      isFallbackTransition = true;\n    }\n\n    this._engine.totalQueuedPlayers++;\n    this._queue.push(\n        {element, triggerName, transition, fromState, toState, player, isFallbackTransition});\n\n    if (!isFallbackTransition) {\n      addClass(element, QUEUED_CLASSNAME);\n      player.onStart(() => { removeClass(element, QUEUED_CLASSNAME); });\n    }\n\n    player.onDone(() => {\n      let /** @type {?} */ index = this.players.indexOf(player);\n      if (index >= 0) {\n        this.players.splice(index, 1);\n      }\n\n      const /** @type {?} */ players = this._engine.playersByElement.get(element);\n      if (players) {\n        let /** @type {?} */ index = players.indexOf(player);\n        if (index >= 0) {\n          players.splice(
 index, 1);\n        }\n      }\n    });\n\n    this.players.push(player);\n    playersOnElement.push(player);\n\n    return player;\n  }\n/**\n * @param {?} name\n * @return {?}\n */\nderegister(name: string) {\n    delete this._triggers[name];\n\n    this._engine.statesByElement.forEach((stateMap, element) => { delete stateMap[name]; });\n\n    this._elementListeners.forEach((listeners, element) => {\n      this._elementListeners.set(\n          element, listeners.filter(entry => { return entry.name != name; }));\n    });\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nclearElementCache(element: any) {\n    this._engine.statesByElement.delete(element);\n    this._elementListeners.delete(element);\n    const /** @type {?} */ elementPlayers = this._engine.playersByElement.get(element);\n    if (elementPlayers) {\n      elementPlayers.forEach(player => player.destroy());\n      this._engine.playersByElement.delete(element);\n    }\n  }\n/**\n * @param {?} rootElement\n * @param
  {?} context\n * @param {?=} animate\n * @return {?}\n */\nprivate _destroyInnerNodes(rootElement: any, context: any, animate: boolean = false) {\n    this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true).forEach(elm => {\n      if (animate && containsClass(elm, this._hostClassName)) {\n        const /** @type {?} */ innerNs = this._engine.namespacesByHostElement.get(elm);\n\n        // special case for a host element with animations on the same element\n        if (innerNs) {\n          innerNs.removeNode(elm, context, true);\n        }\n\n        this.removeNode(elm, context, true);\n      } else {\n        this.clearElementCache(elm);\n      }\n    });\n  }\n/**\n * @param {?} element\n * @param {?} context\n * @param {?=} doNotRecurse\n * @return {?}\n */\nremoveNode(element: any, context: any, doNotRecurse?: boolean): void {\n    const /** @type {?} */ engine = this._engine;\n\n    if (!doNotRecurse && element.childElementCount) {\n      this._destroyInnerNodes(elem
 ent, context, true);\n    }\n\n    const /** @type {?} */ triggerStates = engine.statesByElement.get(element);\n    if (triggerStates) {\n      const /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n      Object.keys(triggerStates).forEach(triggerName => {\n        // this check is here in the event that an element is removed\n        // twice (both on the host level and the component level)\n        if (this._triggers[triggerName]) {\n          const /** @type {?} */ player = this.trigger(element, triggerName, VOID_VALUE, false);\n          if (player) {\n            players.push(player);\n          }\n        }\n      });\n\n      if (players.length) {\n        engine.markElementAsRemoved(this.id, element, true, context);\n        optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n        return;\n      }\n    }\n\n    // find the player that is animating and make sure that the\n    // removal is delayed until that player has completed\n    l
 et /** @type {?} */ containsPotentialParentTransition = false;\n    if (engine.totalAnimations) {\n      const /** @type {?} */ currentPlayers =\n          engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n\n      // when this `if statement` does not continue forward it means that\n      // a previous animation query has selected the current element and\n      // is animating it. In this situation want to continue fowards and\n      // allow the element to be queued up for animation later.\n      if (currentPlayers && currentPlayers.length) {\n        containsPotentialParentTransition = true;\n      } else {\n        let /** @type {?} */ parent = element;\n        while (parent = parent.parentNode) {\n          const /** @type {?} */ triggers = engine.statesByElement.get(parent);\n          if (triggers) {\n            containsPotentialParentTransition = true;\n            break;\n          }\n        }\n      }\n    }\n\n    // at this stage we know that th
 e element will either get removed\n    // during flush or will be picked up by a parent query. Either way\n    // we need to fire the listeners for this element when it DOES get\n    // removed (once the query parent animation is done or after flush)\n    const /** @type {?} */ listeners = this._elementListeners.get(element);\n    if (listeners) {\n      const /** @type {?} */ visitedTriggers = new Set<string>();\n      listeners.forEach(listener => {\n        const /** @type {?} */ triggerName = listener.name;\n        if (visitedTriggers.has(triggerName)) return;\n        visitedTriggers.add(triggerName);\n\n        const /** @type {?} */ trigger = this._triggers[triggerName];\n        const /** @type {?} */ transition = trigger.fallbackTransition;\n        const /** @type {?} */ elementStates = /** @type {?} */(( engine.statesByElement.get(element)));\n        const /** @type {?} */ fromState = elementStates[triggerName] || DEFAULT_STATE_VALUE;\n        const /** @type {?} */ toS
 tate = new StateValue(VOID_VALUE);\n        const /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element);\n\n        this._engine.totalQueuedPlayers++;\n        this._queue.push({\n          element,\n          triggerName,\n          transition,\n          fromState,\n          toState,\n          player,\n          isFallbackTransition: true\n        });\n      });\n    }\n\n    // whether or not a parent has an animation we need to delay the deferral of the leave\n    // operation until we have more information (which we do after flush() has been called)\n    if (containsPotentialParentTransition) {\n      engine.markElementAsRemoved(this.id, element, false, context);\n    } else {\n      // we do this after the flush has occurred such\n      // that the callbacks can be fired\n      engine.afterFlush(() => this.clearElementCache(element));\n      engine.destroyInnerAnimations(element);\n      engine._onRemovalComplete(element, context);\n    }\n  
 }\n/**\n * @param {?} element\n * @param {?} parent\n * @return {?}\n */\ninsertNode(element: any, parent: any): void { addClass(element, this._hostClassName); }\n/**\n * @param {?} microtaskId\n * @return {?}\n */\ndrainQueuedTransitions(microtaskId: number): QueueInstruction[] {\n    const /** @type {?} */ instructions: QueueInstruction[] = [];\n    this._queue.forEach(entry => {\n      const /** @type {?} */ player = entry.player;\n      if (player.destroyed) return;\n\n      const /** @type {?} */ element = entry.element;\n      const /** @type {?} */ listeners = this._elementListeners.get(element);\n      if (listeners) {\n        listeners.forEach((listener: TriggerListener) => {\n          if (listener.name == entry.triggerName) {\n            const /** @type {?} */ baseEvent = makeAnimationEvent(\n                element, entry.triggerName, entry.fromState.value, entry.toState.value);\n            ( /** @type {?} */((baseEvent as any)))['_data'] = microtaskId;\n            l
 istenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n          }\n        });\n      }\n\n      if (player.markedForDestroy) {\n        this._engine.afterFlush(() => {\n          // now we can destroy the element properly since the event listeners have\n          // been bound to the player\n          player.destroy();\n        });\n      } else {\n        instructions.push(entry);\n      }\n    });\n\n    this._queue = [];\n\n    return instructions.sort((a, b) => {\n      // if depCount == 0 them move to front\n      // otherwise if a contains b then move back\n      const /** @type {?} */ d0 = a.transition.ast.depCount;\n      const /** @type {?} */ d1 = b.transition.ast.depCount;\n      if (d0 == 0 || d1 == 0) {\n        return d0 - d1;\n      }\n      return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n    });\n  }\n/**\n * @param {?} context\n * @return {?}\n */\ndestroy(context: any) {\n    this.players.forEach(p => p.destroy());
 \n    this._destroyInnerNodes(this.hostElement, context);\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nelementContainsData(element: any): boolean {\n    let /** @type {?} */ containsData = false;\n    if (this._elementListeners.has(element)) containsData = true;\n    containsData =\n        (this._queue.find(entry => entry.element === element) ? true : false) || containsData;\n    return containsData;\n  }\n}\n\nfunction AnimationTransitionNamespace_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationTransitionNamespace.prototype.players;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._triggers;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._queue;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._elementListeners;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._hostClassName;\n/** @type {?} */\nAnimationTransitionNamespace.prototype.id;\n/** @type {?} */\nAnimationTransitionNamespace.prototype.hostElement;\n/** @type {?}
  */\nAnimationTransitionNamespace.prototype._engine;\n}\n\n\nexport interface QueuedTransition {\n  element: any;\n  instruction: AnimationTransitionInstruction;\n  player: TransitionAnimationPlayer;\n}\nexport class TransitionAnimationEngine {\npublic players: TransitionAnimationPlayer[] = [];\npublic newHostElements = new Map<any, AnimationTransitionNamespace>();\npublic playersByElement = new Map<any, TransitionAnimationPlayer[]>();\npublic playersByQueriedElement = new Map<any, TransitionAnimationPlayer[]>();\npublic statesByElement = new Map<any, {[triggerName: string]: StateValue}>();\npublic disabledNodes = new Set<any>();\npublic totalAnimations = 0;\npublic totalQueuedPlayers = 0;\nprivate _namespaceLookup: {[id: string]: AnimationTransitionNamespace} = {};\nprivate _namespaceList: AnimationTransitionNamespace[] = [];\nprivate _flushFns: (() => any)[] = [];\nprivate _whenQuietFns: (() => any)[] = [];\npublic namespacesByHostElement = new Map<any, AnimationTransitionNamespac
 e>();\npublic collectedEnterElements: any[] = [];\npublic collectedLeaveElements: any[] = [];\npublic onRemovalComplete = (element: any, context: any) => {};\n/**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n_onRemovalComplete(element: any, context: any) { this.onRemovalComplete(element, context); }\n/**\n * @param {?} driver\n * @param {?} _normalizer\n */\nconstructor(public driver: AnimationDriver,\nprivate _normalizer: AnimationStyleNormalizer) {}\n/**\n * @return {?}\n */\nget queuedPlayers(): TransitionAnimationPlayer[] {\n    const /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n    this._namespaceList.forEach(ns => {\n      ns.players.forEach(player => {\n        if (player.queued) {\n          players.push(player);\n        }\n      });\n    });\n    return players;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\ncreateNamespace(namespaceId: string, hostElement: any) {\n    const /** @type {?} */ ns =
  new AnimationTransitionNamespace(namespaceId, hostElement, this);\n    if (hostElement.parentNode) {\n      this._balanceNamespaceList(ns, hostElement);\n    } else {\n      // defer this later until flush during when the host element has\n      // been inserted so that we know exactly where to place it in\n      // the namespace list\n      this.newHostElements.set(hostElement, ns);\n\n      // given that this host element is apart of the animation code, it\n      // may or may not be inserted by a parent node that is an of an\n      // animation renderer type. If this happens then we can still have\n      // access to this item when we query for :enter nodes. If the parent\n      // is a renderer then the set data-structure will normalize the entry\n      this.collectEnterElement(hostElement);\n    }\n    return this._namespaceLookup[namespaceId] = ns;\n  }\n/**\n * @param {?} ns\n * @param {?} hostElement\n * @return {?}\n */\nprivate _balanceNamespaceList(ns: AnimationTransitio
 nNamespace, hostElement: any) {\n    const /** @type {?} */ limit = this._namespaceList.length - 1;\n    if (limit >= 0) {\n      let /** @type {?} */ found = false;\n      for (let /** @type {?} */ i = limit; i >= 0; i--) {\n        const /** @type {?} */ nextNamespace = this._namespaceList[i];\n        if (this.driver.containsElement(nextNamespace.hostElement, hostElement)) {\n          this._namespaceList.splice(i + 1, 0, ns);\n          found = true;\n          break;\n        }\n      }\n      if (!found) {\n        this._namespaceList.splice(0, 0, ns);\n      }\n    } else {\n      this._namespaceList.push(ns);\n    }\n\n    this.namespacesByHostElement.set(hostElement, ns);\n    return ns;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\nregister(namespaceId: string, hostElement: any) {\n    let /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n    if (!ns) {\n      ns = this.createNamespace(namespaceId, hostElement);\n    }\n    
 return ns;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} name\n * @param {?} trigger\n * @return {?}\n */\nregisterTrigger(namespaceId: string, name: string, trigger: AnimationTrigger) {\n    let /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n    if (ns && ns.register(name, trigger)) {\n      this.totalAnimations++;\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\ndestroy(namespaceId: string, context: any) {\n    if (!namespaceId) return;\n\n    const /** @type {?} */ ns = this._fetchNamespace(namespaceId);\n\n    this.afterFlush(() => {\n      this.namespacesByHostElement.delete(ns.hostElement);\n      delete this._namespaceLookup[namespaceId];\n      const /** @type {?} */ index = this._namespaceList.indexOf(ns);\n      if (index >= 0) {\n        this._namespaceList.splice(index, 1);\n      }\n    });\n\n    this.afterFlushAnimationsDone(() => ns.destroy(context));\n  }\n/**\n * @param {?} id\n * @return {?}\n */\nprivate _
 fetchNamespace(id: string) { return this._namespaceLookup[id]; }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\ntrigger(namespaceId: string, element: any, name: string, value: any): boolean {\n    if (isElementNode(element)) {\n      this._fetchNamespace(namespaceId).trigger(element, name, value);\n      return true;\n    }\n    return false;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\ninsertNode(namespaceId: string, element: any, parent: any, insertBefore: boolean): void {\n    if (!isElementNode(element)) return;\n\n    // special case for when an element is removed and reinserted (move operation)\n    // when this occurs we do not want to use the element for deletion later\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n    if (details && details.setForRemoval) {\n
       details.setForRemoval = false;\n    }\n\n    // in the event that the namespaceId is blank then the caller\n    // code does not contain any animation code in it, but it is\n    // just being called so that the node is marked as being inserted\n    if (namespaceId) {\n      this._fetchNamespace(namespaceId).insertNode(element, parent);\n    }\n\n    // only *directives and host elements are inserted before\n    if (insertBefore) {\n      this.collectEnterElement(element);\n    }\n  }\n/**\n * @param {?} element\n * @return {?}\n */\ncollectEnterElement(element: any) { this.collectedEnterElements.push(element); }\n/**\n * @param {?} element\n * @param {?} value\n * @return {?}\n */\nmarkElementAsDisabled(element: any, value: boolean) {\n    if (value) {\n      if (!this.disabledNodes.has(element)) {\n        this.disabledNodes.add(element);\n        addClass(element, DISABLED_CLASSNAME);\n      }\n    } else if (this.disabledNodes.has(element)) {\n      this.disabledNodes.delet
 e(element);\n      removeClass(element, DISABLED_CLASSNAME);\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @param {?=} doNotRecurse\n * @return {?}\n */\nremoveNode(namespaceId: string, element: any, context: any, doNotRecurse?: boolean): void {\n    if (!isElementNode(element)) {\n      this._onRemovalComplete(element, context);\n      return;\n    }\n\n    const /** @type {?} */ ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n    if (ns) {\n      ns.removeNode(element, context, doNotRecurse);\n    } else {\n      this.markElementAsRemoved(namespaceId, element, false, context);\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?=} hasAnimation\n * @param {?=} context\n * @return {?}\n */\nmarkElementAsRemoved(namespaceId: string, element: any, hasAnimation?: boolean, context?: any) {\n    this.collectedLeaveElements.push(element);\n    element[REMOVAL_FLAG] = {\n      namespaceId,\n      setF
 orRemoval: context, hasAnimation,\n      removedBeforeQueried: false\n    };\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\nlisten(\n      namespaceId: string, element: any, name: string, phase: string,\n      callback: (event: any) => boolean): () => any {\n    if (isElementNode(element)) {\n      return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n    }\n    return () => {};\n  }\n/**\n * @param {?} entry\n * @param {?} subTimelines\n * @return {?}\n */\nprivate _buildInstruction(entry: QueueInstruction, subTimelines: ElementInstructionMap) {\n    return entry.transition.build(\n        this.driver, entry.element, entry.fromState.value, entry.toState.value,\n        entry.fromState.options, entry.toState.options, subTimelines);\n  }\n/**\n * @param {?} containerElement\n * @return {?}\n */\ndestroyInnerAnimations(containerElement: any) {\n    let /** @t
 ype {?} */ elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n    elements.forEach(element => {\n      const /** @type {?} */ players = this.playersByElement.get(element);\n      if (players) {\n        players.forEach(player => {\n          // special case for when an element is set for destruction, but hasn't started.\n          // in this situation we want to delay the destruction until the flush occurs\n          // so that any event listeners attached to the player are triggered.\n          if (player.queued) {\n            player.markedForDestroy = true;\n          } else {\n            player.destroy();\n          }\n        });\n      }\n      const /** @type {?} */ stateMap = this.statesByElement.get(element);\n      if (stateMap) {\n        Object.keys(stateMap).forEach(triggerName => stateMap[triggerName] = DELETED_STATE_VALUE);\n      }\n    });\n\n    if (this.playersByQueriedElement.size == 0) return;\n\n    elements = this.driver.query(contain
 erElement, NG_ANIMATING_SELECTOR, true);\n    if (elements.length) {\n      elements.forEach(element => {\n        const /** @type {?} */ players = this.playersByQueriedElement.get(element);\n        if (players) {\n          players.forEach(player => player.finish());\n        }\n      });\n    }\n  }\n/**\n * @return {?}\n */\nwhenRenderingDone(): Promise<any> {\n    return new Promise(resolve => {\n      if (this.players.length) {\n        return optimizeGroupPlayer(this.players).onDone(() => resolve());\n      } else {\n        resolve();\n      }\n    });\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nprocessLeaveNode(element: any) {\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n    if (details && details.setForRemoval) {\n      // this will prevent it from removing it twice\n      element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n      if (details.namespaceId) {\n        this.destroyInnerAnimations(element);\n   
      const /** @type {?} */ ns = this._fetchNamespace(details.namespaceId);\n        if (ns) {\n          ns.clearElementCache(element);\n        }\n      }\n      this._onRemovalComplete(element, details.setForRemoval);\n    }\n\n    if (this.driver.matchesElement(element, DISABLED_SELECTOR)) {\n      this.markElementAsDisabled(element, false);\n    }\n\n    this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n      this.markElementAsDisabled(element, false);\n    });\n  }\n/**\n * @param {?=} microtaskId\n * @return {?}\n */\nflush(microtaskId: number = -1) {\n    let /** @type {?} */ players: AnimationPlayer[] = [];\n    if (this.newHostElements.size) {\n      this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n      this.newHostElements.clear();\n    }\n\n    if (this._namespaceList.length &&\n        (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n      const /** @type {?} */ cleanupFns: Function[] = [];
 \n      try {\n        players = this._flushAnimations(cleanupFns, microtaskId);\n      } finally {\n        for (let /** @type {?} */ i = 0; i < cleanupFns.length; i++) {\n          cleanupFns[i]();\n        }\n      }\n    } else {\n      for (let /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n        const /** @type {?} */ element = this.collectedLeaveElements[i];\n        this.processLeaveNode(element);\n      }\n    }\n\n    this.totalQueuedPlayers = 0;\n    this.collectedEnterElements.length = 0;\n    this.collectedLeaveElements.length = 0;\n    this._flushFns.forEach(fn => fn());\n    this._flushFns = [];\n\n    if (this._whenQuietFns.length) {\n      // we move these over to a variable so that\n      // if any new callbacks are registered in another\n      // flush they do not populate the existing set\n      const /** @type {?} */ quietFns = this._whenQuietFns;\n      this._whenQuietFns = [];\n\n      if (players.length) {\n        optimizeGroupPlay
 er(players).onDone(() => { quietFns.forEach(fn => fn()); });\n      } else {\n        quietFns.forEach(fn => fn());\n      }\n    }\n  }\n/**\n * @param {?} errors\n * @return {?}\n */\nreportError(errors: string[]) {\n    throw new Error(\n        `Unable to process animations due to the following failed trigger transitions\\n ${\n            errors.join('\\n')}`);\n  }\n/**\n * @param {?} cleanupFns\n * @param {?} microtaskId\n * @return {?}\n */\nprivate _flushAnimations(cleanupFns: Function[], microtaskId: number):\n      TransitionAnimationPlayer[] {\n    const /** @type {?} */ subTimelines = new ElementInstructionMap();\n    const /** @type {?} */ skippedPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ skippedPlayersMap = new Map<any, AnimationPlayer[]>();\n    const /** @type {?} */ queuedInstructions: QueuedTransition[] = [];\n    const /** @type {?} */ queriedElements = new Map<any, TransitionAnimationPlayer[]>();\n    const /** @type {?} */ allPreStyl
 eElements = new Map<any, Set<string>>();\n    const /** @type {?} */ allPostStyleElements = new Map<any, Set<string>>();\n\n    const /** @type {?} */ disabledElementsSet = new Set<any>();\n    this.disabledNodes.forEach(node => {\n      disabledElementsSet.add(node);\n      const /** @type {?} */ nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n      for (let /** @type {?} */ i = 0; i < nodesThatAreDisabled.length; i++) {\n        disabledElementsSet.add(nodesThatAreDisabled[i]);\n      }\n    });\n\n    const /** @type {?} */ bodyNode = getBodyNode();\n    const /** @type {?} */ allEnterNodes: any[] = this.collectedEnterElements.length ?\n        this.collectedEnterElements.filter(createIsRootFilterFn(this.collectedEnterElements)) :\n        [];\n\n    // this must occur before the instructions are built below such that\n    // the :enter queries match the elements (since the timeline queries\n    // are fired during instruction building).\n    for (let /** 
 @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n      addClass(allEnterNodes[i], ENTER_CLASSNAME);\n    }\n\n    const /** @type {?} */ allLeaveNodes: any[] = [];\n    const /** @type {?} */ leaveNodesWithoutAnimations = new Set<any>();\n    for (let /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n      const /** @type {?} */ element = this.collectedLeaveElements[i];\n      const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n      if (details && details.setForRemoval) {\n        addClass(element, LEAVE_CLASSNAME);\n        allLeaveNodes.push(element);\n        if (!details.hasAnimation) {\n          leaveNodesWithoutAnimations.add(element);\n        }\n      }\n    }\n\n    cleanupFns.push(() => {\n      allEnterNodes.forEach(element => removeClass(element, ENTER_CLASSNAME));\n      allLeaveNodes.forEach(element => {\n        removeClass(element, LEAVE_CLASSNAME);\n        this.processLeaveNode(element)
 ;\n      });\n    });\n\n    const /** @type {?} */ allPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ erroneousTransitions: AnimationTransitionInstruction[] = [];\n    for (let /** @type {?} */ i = this._namespaceList.length - 1; i >= 0; i--) {\n      const /** @type {?} */ ns = this._namespaceList[i];\n      ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n        const /** @type {?} */ player = entry.player;\n        allPlayers.push(player);\n\n        const /** @type {?} */ element = entry.element;\n        if (!bodyNode || !this.driver.containsElement(bodyNode, element)) {\n          player.destroy();\n          return;\n        }\n\n        const /** @type {?} */ instruction = /** @type {?} */(( this._buildInstruction(entry, subTimelines)));\n        if (instruction.errors && instruction.errors.length) {\n          erroneousTransitions.push(instruction);\n          return;\n        }\n\n        // if a unmatched transition is queued to go then 
 it SHOULD NOT render\n        // an animation and cancel the previously running animations.\n        if (entry.isFallbackTransition) {\n          player.onStart(() => eraseStyles(element, instruction.fromStyles));\n          player.onDestroy(() => setStyles(element, instruction.toStyles));\n          skippedPlayers.push(player);\n          return;\n        }\n\n        // this means that if a parent animation uses this animation as a sub trigger\n        // then it will instruct the timeline builder to not add a player delay, but\n        // instead stretch the first keyframe gap up until the animation starts. The\n        // reason this is important is to prevent extra initialization styles from being\n        // required by the user in the animation.\n        instruction.timelines.forEach(tl => tl.stretchStartingKeyframe = true);\n\n        subTimelines.append(element, instruction.timelines);\n\n        const /** @type {?} */ tuple = {instruction, player, element};\n\n        queu
 edInstructions.push(tuple);\n\n        instruction.queriedElements.forEach(\n            element => getOrSetAsInMap(queriedElements, element, []).push(player));\n\n        instruction.preStyleProps.forEach((stringMap, element) => {\n          const /** @type {?} */ props = Object.keys(stringMap);\n          if (props.length) {\n            let /** @type {?} */ setVal: Set<string> = /** @type {?} */(( allPreStyleElements.get(element)));\n            if (!setVal) {\n              allPreStyleElements.set(element, setVal = new Set<string>());\n            }\n            props.forEach(prop => setVal.add(prop));\n          }\n        });\n\n        instruction.postStyleProps.forEach((stringMap, element) => {\n          const /** @type {?} */ props = Object.keys(stringMap);\n          let /** @type {?} */ setVal: Set<string> = /** @type {?} */(( allPostStyleElements.get(element)));\n          if (!setVal) {\n            allPostStyleElements.set(element, setVal = new Set<string>());\n      
     }\n          props.forEach(prop => setVal.add(prop));\n        });\n      });\n    }\n\n    if (erroneousTransitions.length) {\n      const /** @type {?} */ errors: string[] = [];\n      erroneousTransitions.forEach(instruction => {\n        errors.push(`@${instruction.triggerName} has failed due to:\\n`); /** @type {?} */((\n        instruction.errors)).forEach(error => errors.push(`- ${error}\\n`));\n      });\n\n      allPlayers.forEach(player => player.destroy());\n      this.reportError(errors);\n    }\n\n    // these can only be detected here since we have a map of all the elements\n    // that have animations attached to them... We use a set here in the event\n    // multiple enter captures on the same element were caught in different\n    // renderer namespaces (e.g. when a @trigger was on a host binding that had *ngIf)\n    const /** @type {?} */ enterNodesWithoutAnimations = new Set<any>();\n    for (let /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n      c
 onst /** @type {?} */ element = allEnterNodes[i];\n      if (!subTimelines.has(element)) {\n        enterNodesWithoutAnimations.add(element);\n      }\n    }\n\n    const /** @type {?} */ allPreviousPlayersMap = new Map<any, TransitionAnimationPlayer[]>();\n    let /** @type {?} */ sortedParentElements: any[] = [];\n    queuedInstructions.forEach(entry => {\n      const /** @type {?} */ element = entry.element;\n      if (subTimelines.has(element)) {\n        sortedParentElements.unshift(element);\n        this._beforeAnimationBuild(\n            entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n      }\n    });\n\n    skippedPlayers.forEach(player => {\n      const /** @type {?} */ element = player.element;\n      const /** @type {?} */ previousPlayers =\n          this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n      previousPlayers.forEach(prevPlayer => {\n        getOrSetAsInMap(allPreviousPlayersMap, element, []).push
 (prevPlayer);\n        prevPlayer.destroy();\n      });\n    });\n\n    // this is a special case for nodes that will be removed (either by)\n    // having their own leave animations or by being queried in a container\n    // that will be removed once a parent animation is complete. The idea\n    // here is that * styles must be identical to ! styles because of\n    // backwards compatibility (* is also filled in by default in many places).\n    // Otherwise * styles will return an empty value or auto since the element\n    // that is being getComputedStyle'd will not be visible (since * = destination)\n    const /** @type {?} */ replaceNodes = allLeaveNodes.filter(node => {\n      return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n    });\n\n    // POST STAGE: fill the * styles\n    const [postStylesMap, allLeaveQueriedNodes] = cloakAndComputeStyles(\n        this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n\n    allLeaveQu
 eriedNodes.forEach(node => {\n      if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n        replaceNodes.push(node);\n      }\n    });\n\n    // PRE STAGE: fill the ! styles\n    const [preStylesMap] = allPreStyleElements.size ?\n        cloakAndComputeStyles(\n            this.driver, enterNodesWithoutAnimations, allPreStyleElements, PRE_STYLE) :\n        [new Map<any, ɵStyleData>()];\n\n    replaceNodes.forEach(node => {\n      const /** @type {?} */ post = postStylesMap.get(node);\n      const /** @type {?} */ pre = preStylesMap.get(node);\n      postStylesMap.set(node, /** @type {?} */(( { ...post, ...pre } as any)));\n    });\n\n    const /** @type {?} */ rootPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ subPlayers: TransitionAnimationPlayer[] = [];\n    queuedInstructions.forEach(entry => {\n      const {element, player, instruction} = entry;\n      // this means that it was never consumed by a parent animation which\n 
      // means that it is independent and therefore should be set for animation\n      if (subTimelines.has(element)) {\n        if (disabledElementsSet.has(element)) {\n          skippedPlayers.push(player);\n          return;\n        }\n\n        const /** @type {?} */ innerPlayer = this._buildAnimation(\n            player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap,\n            postStylesMap);\n        player.setRealPlayer(innerPlayer);\n\n        let /** @type {?} */ parentHasPriority: any = null;\n        for (let /** @type {?} */ i = 0; i < sortedParentElements.length; i++) {\n          const /** @type {?} */ parent = sortedParentElements[i];\n          if (parent === element) break;\n          if (this.driver.containsElement(parent, element)) {\n            parentHasPriority = parent;\n            break;\n          }\n        }\n\n        if (parentHasPriority) {\n          const /** @type {?} */ parentPlayers = this.playersByElement.get
 (parentHasPriority);\n          if (parentPlayers && parentPlayers.length) {\n            player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n          }\n          skippedPlayers.push(player);\n        } else {\n          rootPlayers.push(player);\n        }\n      } else {\n        eraseStyles(element, instruction.fromStyles);\n        player.onDestroy(() => setStyles(element, instruction.toStyles));\n        // there still might be a ancestor player animating this\n        // element therefore we will still add it as a sub player\n        // even if its animation may be disabled\n        subPlayers.push(player);\n        if (disabledElementsSet.has(element)) {\n          skippedPlayers.push(player);\n        }\n      }\n    });\n\n    // find all of the sub players' corresponding inner animation player\n    subPlayers.forEach(player => {\n      // even if any players are not found for a sub animation then it\n      // will still complete itself after the next tick since it
 's Noop\n      const /** @type {?} */ playersForElement = skippedPlayersMap.get(player.element);\n      if (playersForElement && playersForElement.length) {\n        const /** @type {?} */ innerPlayer = optimizeGroupPlayer(playersForElement);\n        player.setRealPlayer(innerPlayer);\n      }\n    });\n\n    // the reason why we don't actually play the animation is\n    // because all that a skipped player is designed to do is to\n    // fire the start/done transition callback events\n    skippedPlayers.forEach(player => {\n      if (player.parentPlayer) {\n        player.parentPlayer.onDestroy(() => player.destroy());\n      } else {\n        player.destroy();\n      }\n    });\n\n    // run through all of the queued removals and see if they\n    // were picked up by a query. If not then perform the removal\n    // operation right away unless a parent animation is ongoing.\n    for (let /** @type {?} */ i = 0; i < allLeaveNodes.length; i++) {\n      const /** @type {?} */ element
  = allLeaveNodes[i];\n      const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n      removeClass(element, LEAVE_CLASSNAME);\n\n      // this means the element has a removal animation that is being\n      // taken care of and therefore the inner elements will hang around\n      // until that animation is over (or the parent queried animation)\n      if (details && details.hasAnimation) continue;\n\n      let /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n\n      // if this element is queried or if it contains queried children\n      // then we want for the element not to be removed from the page\n      // until the queried animations have finished\n      if (queriedElements.size) {\n        let /** @type {?} */ queriedPlayerResults = queriedElements.get(element);\n        if (queriedPlayerResults && queriedPlayerResults.length) {\n          players.push(...queriedPlayerResults);\n        }\n\n        let /** @type {?} 
 */ queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n        for (let /** @type {?} */ j = 0; j < queriedInnerElements.length; j++) {\n          let /** @type {?} */ queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n          if (queriedPlayers && queriedPlayers.length) {\n            players.push(...queriedPlayers);\n          }\n        }\n      }\n\n      const /** @type {?} */ activePlayers = players.filter(p => !p.destroyed);\n      if (activePlayers.length) {\n        removeNodesAfterAnimationDone(this, element, activePlayers);\n      } else {\n        this.processLeaveNode(element);\n      }\n    }\n\n    // this is required so the cleanup method doesn't remove them\n    allLeaveNodes.length = 0;\n\n    rootPlayers.forEach(player => {\n      this.players.push(player);\n      player.onDone(() => {\n        player.destroy();\n\n        const /** @type {?} */ index = this.players.indexOf(player);\n        this.players.splice(index, 1)
 ;\n      });\n      player.play();\n    });\n\n    return rootPlayers;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @return {?}\n */\nelementContainsData(namespaceId: string, element: any) {\n    let /** @type {?} */ containsData = false;\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n    if (details && details.setForRemoval) containsData = true;\n    if (this.playersByElement.has(element)) containsData = true;\n    if (this.playersByQueriedElement.has(element)) containsData = true;\n    if (this.statesByElement.has(element)) containsData = true;\n    return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n  }\n/**\n * @param {?} callback\n * @return {?}\n */\nafterFlush(callback: () => any) { this._flushFns.push(callback); }\n/**\n * @param {?} callback\n * @return {?}\n */\nafterFlushAnimationsDone(callback: () => any) { this._whenQuietFns.push(callback); }\n/**\n * @par
 am {?} element\n * @param {?} isQueriedElement\n * @param {?=} namespaceId\n * @param {?=} triggerName\n * @param {?=} toStateValue\n * @return {?}\n */\nprivate _getPreviousPlayers(\n      element: string, isQueriedElement: boolean, namespaceId?: string, triggerName?: string,\n      toStateValue?: any): TransitionAnimationPlayer[] {\n    let /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n    if (isQueriedElement) {\n      const /** @type {?} */ queriedElementPlayers = this.playersByQueriedElement.get(element);\n      if (queriedElementPlayers) {\n        players = queriedElementPlayers;\n      }\n    } else {\n      const /** @type {?} */ elementPlayers = this.playersByElement.get(element);\n      if (elementPlayers) {\n        const /** @type {?} */ isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n        elementPlayers.forEach(player => {\n          if (player.queued) return;\n          if (!isRemovalAnimation && player.triggerName != triggerName) 
 return;\n          players.push(player);\n        });\n      }\n    }\n    if (namespaceId || triggerName) {\n      players = players.filter(player => {\n        if (namespaceId && namespaceId != player.namespaceId) return false;\n        if (triggerName && triggerName != player.triggerName) return false;\n        return true;\n      });\n    }\n    return players;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @return {?}\n */\nprivate _beforeAnimationBuild(\n      namespaceId: string, instruction: AnimationTransitionInstruction,\n      allPreviousPlayersMap: Map<any, TransitionAnimationPlayer[]>) {\n    const /** @type {?} */ triggerName = instruction.triggerName;\n    const /** @type {?} */ rootElement = instruction.element;\n\n    // when a removal animation occurs, ALL previous players are collected\n    // and destroyed (even if they are outside of the current namespace)\n    const /** @type {?} */ targetNameSpaceId: st
 ring|undefined =\n        instruction.isRemovalTransition ? undefined : namespaceId;\n    const /** @type {?} */ targetTriggerName: string|undefined =\n        instruction.isRemovalTransition ? undefined : triggerName;\n\n    instruction.timelines.map(timelineInstruction => {\n      const /** @type {?} */ element = timelineInstruction.element;\n      const /** @type {?} */ isQueriedElement = element !== rootElement;\n      const /** @type {?} */ players = getOrSetAsInMap(allPreviousPlayersMap, element, []);\n      const /** @type {?} */ previousPlayers = this._getPreviousPlayers(\n          element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n      previousPlayers.forEach(player => {\n        const /** @type {?} */ realPlayer = /** @type {?} */(( player.getRealPlayer() as any));\n        if (realPlayer.beforeDestroy) {\n          realPlayer.beforeDestroy();\n        }\n        player.destroy();\n        players.push(player);\n      });\n    });\n\n
     // this needs to be done so that the PRE/POST styles can be\n    // computed properly without interfering with the previous animation\n    eraseStyles(rootElement, instruction.fromStyles);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @param {?} skippedPlayersMap\n * @param {?} preStylesMap\n * @param {?} postStylesMap\n * @return {?}\n */\nprivate _buildAnimation(\n      namespaceId: string, instruction: AnimationTransitionInstruction,\n      allPreviousPlayersMap: Map<any, TransitionAnimationPlayer[]>,\n      skippedPlayersMap: Map<any, AnimationPlayer[]>, preStylesMap: Map<any, ɵStyleData>,\n      postStylesMap: Map<any, ɵStyleData>): AnimationPlayer {\n    const /** @type {?} */ triggerName = instruction.triggerName;\n    const /** @type {?} */ rootElement = instruction.element;\n\n    // we first run this so that the previous animation player\n    // data can be passed into the successive animation players\n    co
 nst /** @type {?} */ allQueriedPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ allConsumedElements = new Set<any>();\n    const /** @type {?} */ allSubElements = new Set<any>();\n    const /** @type {?} */ allNewPlayers = instruction.timelines.map(timelineInstruction => {\n      const /** @type {?} */ element = timelineInstruction.element;\n      allConsumedElements.add(element);\n\n      // FIXME (matsko): make sure to-be-removed animations are removed properly\n      const /** @type {?} */ details = element[REMOVAL_FLAG];\n      if (details && details.removedBeforeQueried) return new NoopAnimationPlayer();\n\n      const /** @type {?} */ isQueriedElement = element !== rootElement;\n      const /** @type {?} */ previousPlayers =\n          flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n                                  .map(p => p.getRealPlayer()))\n              .filter(p => {\n                // the `element` is not apart of
  the AnimationPlayer definition, but\n                // Mock/WebAnimations\n                // use the element within their implementation. This will be added in Angular5 to\n                // AnimationPlayer\n                const /** @type {?} */ pp = /** @type {?} */(( p as any));\n                return pp.element ? pp.element === element : false;\n              });\n\n      const /** @type {?} */ preStyles = preStylesMap.get(element);\n      const /** @type {?} */ postStyles = postStylesMap.get(element);\n      const /** @type {?} */ keyframes = normalizeKeyframes(\n          this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles,\n          postStyles);\n      const /** @type {?} */ player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n\n      // this means that this particular player belongs to a sub trigger. It is\n      // important that we match this player up with the corresponding (@trigger.listener)\n      if (timeline
 Instruction.subTimeline && skippedPlayersMap) {\n        allSubElements.add(element);\n      }\n\n      if (isQueriedElement) {\n        const /** @type {?} */ wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n        wrappedPlayer.setRealPlayer(player);\n        allQueriedPlayers.push(wrappedPlayer);\n      }\n\n      return player;\n    });\n\n    allQueriedPlayers.forEach(player => {\n      getOrSetAsInMap(this.playersByQueriedElement, player.element, []).push(player);\n      player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n    });\n\n    allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n    const /** @type {?} */ player = optimizeGroupPlayer(allNewPlayers);\n    player.onDestroy(() => {\n      allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n      setStyles(rootElement, instruction.toStyles);\n    });\n\n    // this basically mak
 es all of the callbacks for sub element animations\n    // be dependent on the upper players for when they finish\n    allSubElements.forEach(\n        element => { getOrSetAsInMap(skippedPlayersMap, element, []).push(player); });\n\n    return player;\n  }\n/**\n * @param {?} instruction\n * @param {?} keyframes\n * @param {?} previousPlayers\n * @return {?}\n */\nprivate _buildPlayer(\n      instruction: AnimationTimelineInstruction, keyframes: ɵStyleData[],\n      previousPlayers: AnimationPlayer[]): AnimationPlayer {\n    if (keyframes.length > 0) {\n      return this.driver.animate(\n          instruction.element, keyframes, instruction.duration, instruction.delay,\n          instruction.easing, previousPlayers);\n    }\n\n    // special case for when an empty transition|definition is provided\n    // ... there is no point in rendering an empty animation\n    return new NoopAnimationPlayer();\n  }\n}\n\nfunction TransitionAnimationEngine_tsickle_Closure_declarations() {\n/** @
 type {?} */\nTransitionAnimationEngine.prototype.players;\n/** @type {?} */\nTransitionAnimationEngine.prototype.newHostElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.playersByElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.playersByQueriedElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.statesByElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.disabledNodes;\n/** @type {?} */\nTransitionAnimationEngine.prototype.totalAnimations;\n/** @type {?} */\nTransitionAnimationEngine.prototype.totalQueuedPlayers;\n/** @type {?} */\nTransitionAnimationEngine.prototype._namespaceLookup;\n/** @type {?} */\nTransitionAnimationEngine.prototype._namespaceList;\n/** @type {?} */\nTransitionAnimationEngine.prototype._flushFns;\n/** @type {?} */\nTransitionAnimationEngine.prototype._whenQuietFns;\n/** @type {?} */\nTransitionAnimationEngine.prototype.namespacesByHostElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.collectedE
 nterElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.collectedLeaveElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.onRemovalComplete;\n/** @type {?} */\nTransitionAnimationEngine.prototype.driver;\n/** @type {?} */\nTransitionAnimationEngine.prototype._normalizer;\n}\n\nexport class TransitionAnimationPlayer implements AnimationPlayer {\nprivate _player: AnimationPlayer = new NoopAnimationPlayer();\nprivate _containsRealPlayer = false;\nprivate _queuedCallbacks: {[name: string]: (() => any)[]} = {};\nprivate _destroyed = false;\npublic parentPlayer: AnimationPlayer;\npublic markedForDestroy: boolean = false;\n/**\n * @param {?} namespaceId\n * @param {?} triggerName\n * @param {?} element\n */\nconstructor(public namespaceId: string,\npublic triggerName: string,\npublic element: any) {}\n/**\n * @return {?}\n */\nget queued() { return this._containsRealPlayer == false; }\n/**\n * @return {?}\n */\nget destroyed() { return this._destroyed; }\n/**\n * 
 @param {?} player\n * @return {?}\n */\nsetRealPlayer(player: AnimationPlayer) {\n    if (this._containsRealPlayer) return;\n\n    this._player = player;\n    Object.keys(this._queuedCallbacks).forEach(phase => {\n      this._queuedCallbacks[phase].forEach(\n          callback => listenOnPlayer(player, phase, undefined, callback));\n    });\n    this._queuedCallbacks = {};\n    this._containsRealPlayer = true;\n  }\n/**\n * @return {?}\n */\ngetRealPlayer() { return this._player; }\n/**\n * @param {?} name\n * @param {?} callback\n * @return {?}\n */\nprivate _queueEvent(name: string, callback: (event: any) => any): void {\n    getOrSetAsInMap(this._queuedCallbacks, name, []).push(callback);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void {\n    if (this.queued) {\n      this._queueEvent('done', fn);\n    }\n    this._player.onDone(fn);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void {\n    if (this.queued) {\n      this
 ._queueEvent('start', fn);\n    }\n    this._player.onStart(fn);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void {\n    if (this.queued) {\n      this._queueEvent('destroy', fn);\n    }\n    this._player.onDestroy(fn);\n  }\n/**\n * @return {?}\n */\ninit(): void { this._player.init(); }\n/**\n * @return {?}\n */\nhasStarted(): boolean { return this.queued ? false : this._player.hasStarted(); }\n/**\n * @return {?}\n */\nplay(): void { !this.queued && this._player.play(); }\n/**\n * @return {?}\n */\npause(): void { !this.queued && this._player.pause(); }\n/**\n * @return {?}\n */\nrestart(): void { !this.queued && this._player.restart(); }\n/**\n * @return {?}\n */\nfinish(): void { this._player.finish(); }\n/**\n * @return {?}\n */\ndestroy(): void {\n    this._destroyed = true;\n    this._player.destroy();\n  }\n/**\n * @return {?}\n */\nreset(): void { !this.queued && this._player.reset(); }\n/**\n * @param {?} p\n * @return {?}\n */\nsetPositio
 n(p: any): void {\n    if (!this.queued) {\n      this._player.setPosition(p);\n    }\n  }\n/**\n * @return {?}\n */\ngetPosition(): number { return this.queued ? 0 : this._player.getPosition(); }\n/**\n * @return {?}\n */\nget totalTime(): number { return this._player.totalTime; }\n}\n\nfunction TransitionAnimationPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nTransitionAnimationPlayer.prototype._player;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._containsRealPlayer;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._queuedCallbacks;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._destroyed;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.parentPlayer;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.markedForDestroy;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.namespaceId;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.triggerName;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.element;\n}\n\n/**\n * @par
 am {?} map\n * @param {?} key\n * @param {?} value\n * @return {?}\n */\nfunction deleteOrUnsetInMap(map: Map<any, any[]>| {[key: string]: any}, key: any, value: any) {\n  let /** @type {?} */ currentValues: any[]|null|undefined;\n  if (map instanceof Map) {\n    currentValues = map.get(key);\n    if (currentValues) {\n      if (currentValues.length) {\n        const /** @type {?} */ index = currentValues.indexOf(value);\n        currentValues.splice(index, 1);\n      }\n      if (currentValues.length == 0) {\n        map.delete(key);\n      }\n    }\n  } else {\n    currentValues = map[key];\n    if (currentValues) {\n      if (currentValues.length) {\n        const /** @type {?} */ index = currentValues.indexOf(value);\n        currentValues.splice(index, 1);\n      }\n      if (currentValues.length == 0) {\n        delete map[key];\n      }\n    }\n  }\n  return currentValues;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction normalizeTriggerValue(value: any): any {\n  
 // we use `!= null` here because it's the most simple\n  // way to test against a \"falsy\" value without mixing\n  // in empty strings or a zero value. DO NOT OPTIMIZE.\n  return value != null ? value : null;\n}\n/**\n * @param {?} node\n * @return {?}\n */\nfunction isElementNode(node: any) {\n  return node && node['nodeType'] === 1;\n}\n/**\n * @param {?} eventName\n * @return {?}\n */\nfunction isTriggerEventValid(eventName: string): boolean {\n  return eventName == 'start' || eventName == 'done';\n}\n/**\n * @param {?} element\n * @param {?=} value\n * @return {?}\n */\nfunction cloakElement(element: any, value?: string) {\n  const /** @type {?} */ oldValue = element.style.display;\n  element.style.display = value != null ? value : 'none';\n  return oldValue;\n}\n/**\n * @param {?} driver\n * @param {?} elements\n * @param {?} elementPropsMap\n * @param {?} defaultStyle\n * @return {?}\n */\nfunction cloakAndComputeStyles(\n    driver: AnimationDriver, elements: Set<any>, eleme
 ntPropsMap: Map<any, Set<string>>,\n    defaultStyle: string): [Map<any, ɵStyleData>, any[]] {\n  const /** @type {?} */ cloakVals: string[] = [];\n  elements.forEach(element => cloakVals.push(cloakElement(element)));\n\n  const /** @type {?} */ valuesMap = new Map<any, ɵStyleData>();\n  const /** @type {?} */ failedElements: any[] = [];\n\n  elementPropsMap.forEach((props: Set<string>, element: any) => {\n    const /** @type {?} */ styles: ɵStyleData = {};\n    props.forEach(prop => {\n      const /** @type {?} */ value = styles[prop] = driver.computeStyle(element, prop, defaultStyle);\n\n      // there is no easy way to detect this because a sub element could be removed\n      // by a parent animation element being detached.\n      if (!value || value.length == 0) {\n        element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n        failedElements.push(element);\n      }\n    });\n    valuesMap.set(element, styles);\n  });\n\n  // we use a index variable here since Set.forEac
 h(a, i) does not return\n  // an index value for the closure (but instead just the value)\n  let /** @type {?} */ i = 0;\n  elements.forEach(element => cloakElement(element, cloakVals[i++]));\n  return [valuesMap, failedElements];\n}\n/**\n * @param {?} nodes\n * @return {?}\n */\nfunction createIsRootFilterFn(nodes: any): (node: any) => boolean {\n  const /** @type {?} */ nodeSet = new Set(nodes);\n  const /** @type {?} */ knownRootContainer = new Set();\n  let /** @type {?} */ isRoot: (node: any) => boolean;\n  isRoot = node => {\n    if (!node) return true;\n    if (nodeSet.has(node.parentNode)) return false;\n    if (knownRootContainer.has(node.parentNode)) return true;\n    if (isRoot(node.parentNode)) {\n      knownRootContainer.add(node);\n      return true;\n    }\n    return false;\n  };\n  return isRoot;\n}\n\nconst /** @type {?} */ CLASSES_CACHE_KEY = '$$classes';\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction containsClass(element: an
 y, className: string): boolean {\n  if (element.classList) {\n    return element.classList.contains(className);\n  } else {\n    const /** @type {?} */ classes = element[CLASSES_CACHE_KEY];\n    return classes && classes[className];\n  }\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction addClass(element: any, className: string) {\n  if (element.classList) {\n    element.classList.add(className);\n  } else {\n    let /** @type {?} */ classes: {[className: string]: boolean} = element[CLASSES_CACHE_KEY];\n    if (!classes) {\n      classes = element[CLASSES_CACHE_KEY] = {};\n    }\n    classes[className] = true;\n  }\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction removeClass(element: any, className: string) {\n  if (element.classList) {\n    element.classList.remove(className);\n  } else {\n    let /** @type {?} */ classes: {[className: string]: boolean} = element[CLASSES_CACHE_KEY];\n    if (classes) {\n     
  delete classes[className];\n    }\n  }\n}\n/**\n * @return {?}\n */\nfunction getBodyNode(): any|null {\n  if (typeof document != 'undefined') {\n    return document.body;\n  }\n  return null;\n}\n/**\n * @param {?} engine\n * @param {?} element\n * @param {?} players\n * @return {?}\n */\nfunction removeNodesAfterAnimationDone(\n    engine: TransitionAnimationEngine, element: any, players: AnimationPlayer[]) {\n  optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\n/**\n * @param {?} players\n * @return {?}\n */\nfunction flattenGroupPlayers(players: AnimationPlayer[]): AnimationPlayer[] {\n  const /** @type {?} */ finalPlayers: AnimationPlayer[] = [];\n  _flattenGroupPlayersRecur(players, finalPlayers);\n  return finalPlayers;\n}\n/**\n * @param {?} players\n * @param {?} finalPlayers\n * @return {?}\n */\nfunction _flattenGroupPlayersRecur(players: AnimationPlayer[], finalPlayers: AnimationPlayer[]) {\n  for (let /** @type {?} */ i = 0; i < players.le
 ngth; i++) {\n    const /** @type {?} */ player = players[i];\n    if (player instanceof AnimationGroupPlayer) {\n      _flattenGroupPlayersRecur(player.players, finalPlayers);\n    } else {\n      finalPlayers.push( /** @type {?} */((player as AnimationPlayer)));\n    }\n  }\n}\n/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction objEquals(a: {[key: string]: any}, b: {[key: string]: any}): boolean {\n  const /** @type {?} */ k1 = Object.keys(a);\n  const /** @type {?} */ k2 = Object.keys(b);\n  if (k1.length != k2.length) return false;\n  for (let /** @type {?} */ i = 0; i < k1.length; i++) {\n    const /** @type {?} */ prop = k1[i];\n    if (!b.hasOwnProperty(prop) || a[prop] !== b[prop]) return false;\n  }\n  return true;\n}\n/**\n * @param {?} element\n * @param {?} allPreStyleElements\n * @param {?} allPostStyleElements\n * @return {?}\n */\nfunction replacePostStylesAsPre(\n    element: any, allPreStyleElements: Map<any, Set<string>>,\n    allPostStyleElements
 : Map<any, Set<string>>): boolean {\n  const /** @type {?} */ postEntry = allPostStyleElements.get(element);\n  if (!postEntry) return false;\n\n  let /** @type {?} */ preEntry = allPreStyleElements.get(element);\n  if (preEntry) {\n    postEntry.forEach(data => /** @type {?} */(( preEntry)).add(data));\n  } else {\n    allPreStyleElements.set(element, postEntry);\n  }\n\n  allPostStyleElements.delete(element);\n  return true;\n}\n","/**\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 {AnimateTimings, AnimationMetadata, AnimationMetadataType, AnimationOptions, sequence, ɵStyleData} from '@angular/animations';\nimport {Ast as AnimationAst, AstVisitor as AnimationAstVisitor} from './dsl/animation_ast';\nimport {AnimationDslVisitor} from './dsl/animation_dsl_visitor';\n\nexport const ONE_SECOND = 1000;\n\nexport const SUBS
 TITUTION_EXPR_START = '{{';\nexport const SUBSTITUTION_EXPR_END = '}}';\nexport const ENTER_CLASSNAME = 'ng-enter';\nexport const LEAVE_CLASSNAME = 'ng-leave';\nexport const ENTER_SELECTOR = '.ng-enter';\nexport const LEAVE_SELECTOR = '.ng-leave';\nexport const NG_TRIGGER_CLASSNAME = 'ng-trigger';\nexport const NG_TRIGGER_SELECTOR = '.ng-trigger';\nexport const NG_ANIMATING_CLASSNAME = 'ng-animating';\nexport const NG_ANIMATING_SELECTOR = '.ng-animating';\n\nexport function resolveTimingValue(value: string | number) {\n  if (typeof value == 'number') return value;\n\n  const matches = (value as string).match(/^(-?[\\.\\d]+)(m?s)/);\n  if (!matches || matches.length < 2) return 0;\n\n  return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\n\nfunction _convertTimeValueToMS(value: number, unit: string): number {\n  switch (unit) {\n    case 's':\n      return value * ONE_SECOND;\n    default:  // ms or something else\n      return value;\n  }\n}\n\nexport function resolv
 eTiming(\n    timings: string | number | AnimateTimings, errors: any[], allowNegativeValues?: boolean) {\n  return timings.hasOwnProperty('duration') ?\n      <AnimateTimings>timings :\n      parseTimeExpression(<string|number>timings, errors, allowNegativeValues);\n}\n\nfunction parseTimeExpression(\n    exp: string | number, errors: string[], allowNegativeValues?: boolean): AnimateTimings {\n  const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n  let duration: number;\n  let delay: number = 0;\n  let easing: string = '';\n  if (typeof exp === 'string') {\n    const matches = exp.match(regex);\n    if (matches === null) {\n      errors.push(`The provided timing value \"${exp}\" is invalid.`);\n      return {duration: 0, delay: 0, easing: ''};\n    }\n\n    duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n\n    const delayMatch = matches[3];\n    if (delayMatch != null) {\n      delay = _convertTimeValueToMS(Math.f
 loor(parseFloat(delayMatch)), matches[4]);\n    }\n\n    const easingVal = matches[5];\n    if (easingVal) {\n      easing = easingVal;\n    }\n  } else {\n    duration = <number>exp;\n  }\n\n  if (!allowNegativeValues) {\n    let containsErrors = false;\n    let startIndex = errors.length;\n    if (duration < 0) {\n      errors.push(`Duration values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (delay < 0) {\n      errors.push(`Delay values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (containsErrors) {\n      errors.splice(startIndex, 0, `The provided timing value \"${exp}\" is invalid.`);\n    }\n  }\n\n  return {duration, delay, easing};\n}\n\nexport function copyObj(\n    obj: {[key: string]: any}, destination: {[key: string]: any} = {}): {[key: string]: any} {\n  Object.keys(obj).forEach(prop => { destination[prop] = obj[prop]; });\n  return destination;\n}\n\nexport function
  normalizeStyles(styles: ɵStyleData | ɵStyleData[]): ɵStyleData {\n  const normalizedStyles: ɵStyleData = {};\n  if (Array.isArray(styles)) {\n    styles.forEach(data => copyStyles(data, false, normalizedStyles));\n  } else {\n    copyStyles(styles, false, normalizedStyles);\n  }\n  return normalizedStyles;\n}\n\nexport function copyStyles(\n    styles: ɵStyleData, readPrototype: boolean, destination: ɵStyleData = {}): ɵStyleData {\n  if (readPrototype) {\n    // we make use of a for-in loop so that the\n    // prototypically inherited properties are\n    // revealed from the backFill map\n    for (let prop in styles) {\n      destination[prop] = styles[prop];\n    }\n  } else {\n    copyObj(styles, destination);\n  }\n  return destination;\n}\n\nexport function setStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = styles[prop];\
 n    });\n  }\n}\n\nexport function eraseStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = '';\n    });\n  }\n}\n\nexport function normalizeAnimationEntry(steps: AnimationMetadata | AnimationMetadata[]):\n    AnimationMetadata {\n  if (Array.isArray(steps)) {\n    if (steps.length == 1) return steps[0];\n    return sequence(steps);\n  }\n  return steps as AnimationMetadata;\n}\n\nexport function validateStyleParams(\n    value: string | number, options: AnimationOptions, errors: any[]) {\n  const params = options.params || {};\n  const matches = extractStyleParams(value);\n  if (matches.length) {\n    matches.forEach(varName => {\n      if (!params.hasOwnProperty(varName)) {\n        errors.push(\n            `Unable to resolve the local animation param ${varName} in the given list of values`);\n      }\n    });\n  }\n}\n\nconst PARAM_
 REGEX =\n    new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nexport function extractStyleParams(value: string | number): string[] {\n  let params: string[] = [];\n  if (typeof value === 'string') {\n    const val = value.toString();\n\n    let match: any;\n    while (match = PARAM_REGEX.exec(val)) {\n      params.push(match[1] as string);\n    }\n    PARAM_REGEX.lastIndex = 0;\n  }\n  return params;\n}\n\nexport function interpolateParams(\n    value: string | number, params: {[name: string]: any}, errors: any[]): string|number {\n  const original = value.toString();\n  const str = original.replace(PARAM_REGEX, (_, varName) => {\n    let localVal = params[varName];\n    // this means that the value was never overidden by the data passed in by the user\n    if (!params.hasOwnProperty(varName)) {\n      errors.push(`Please provide a value for the animation param ${varName}`);\n      localVal = '';\n    }\n    return localVal.toString();\n  });\
 n\n  // we do this to assert that numeric values stay as they are\n  return str == original ? value : str;\n}\n\nexport function iteratorToArray(iterator: any): any[] {\n  const arr: any[] = [];\n  let item = iterator.next();\n  while (!item.done) {\n    arr.push(item.value);\n    item = iterator.next();\n  }\n  return arr;\n}\n\nexport function mergeAnimationOptions(\n    source: AnimationOptions, destination: AnimationOptions): AnimationOptions {\n  if (source.params) {\n    const p0 = source.params;\n    if (!destination.params) {\n      destination.params = {};\n    }\n    const p1 = destination.params;\n    Object.keys(p0).forEach(param => {\n      if (!p1.hasOwnProperty(param)) {\n        p1[param] = p0[param];\n      }\n    });\n  }\n  return destination;\n}\n\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: any[]) => m[1].toUpperCase());\n}\n\nexport function allowPreviou
 sPlayerStylesMerge(duration: number, delay: number) {\n  return duration === 0 || delay === 0;\n}\n\nexport function visitDslNode(\n    visitor: AnimationDslVisitor, node: AnimationMetadata, context: any): any;\nexport function visitDslNode(\n    visitor: AnimationAstVisitor, node: AnimationAst<AnimationMetadataType>, context: any): any;\nexport function visitDslNode(visitor: any, node: any, context: any): any {\n  switch (node.type) {\n    case AnimationMetadataType.Trigger:\n      return visitor.visitTrigger(node, context);\n    case AnimationMetadataType.State:\n      return visitor.visitState(node, context);\n    case AnimationMetadataType.Transition:\n      return visitor.visitTransition(node, context);\n    case AnimationMetadataType.Sequence:\n      return visitor.visitSequence(node, context);\n    case AnimationMetadataType.Group:\n      return visitor.visitGroup(node, context);\n    case AnimationMetadataType.Animate:\n      return visitor.visitAnimate(node, context);\n    
 case AnimationMetadataType.Keyframes:\n      return visitor.visitKeyframes(node, context);\n    case AnimationMetadataType.Style:\n      return visitor.visitStyle(node, context);\n    case AnimationMetadataType.Reference:\n      return visitor.visitReference(node, context);\n    case AnimationMetadataType.AnimateChild:\n      return visitor.visitAnimateChild(node, context);\n    case AnimationMetadataType.AnimateRef:\n      return visitor.visitAnimateRef(node, context);\n    case AnimationMetadataType.Query:\n      return visitor.visitQuery(node, context);\n    case AnimationMetadataType.Stagger:\n      return visitor.visitStagger(node, context);\n    default:\n      throw new Error(`Unable to resolve animation metadata node #${node.type}`);\n  }\n}\n","/**\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\nimport {AnimationMeta
 data, AnimationPlayer, AnimationTriggerMetadata} from '@angular/animations';\nimport {TriggerAst} from '../dsl/animation_ast';\nimport {buildAnimationAst} from '../dsl/animation_ast_builder';\nimport {AnimationTrigger, buildTrigger} from '../dsl/animation_trigger';\nimport {AnimationStyleNormalizer} from '../dsl/style_normalization/animation_style_normalizer';\n\nimport {AnimationDriver} from './animation_driver';\nimport {parseTimelineCommand} from './shared';\nimport {TimelineAnimationEngine} from './timeline_animation_engine';\nimport {TransitionAnimationEngine} from './transition_animation_engine';\nexport class AnimationEngine {\nprivate _transitionEngine: TransitionAnimationEngine;\nprivate _timelineEngine: TimelineAnimationEngine;\nprivate _triggerCache: {[key: string]: AnimationTrigger} = {};\npublic onRemovalComplete = (element: any, context: any) => {};\n/**\n * @param {?} driver\n * @param {?} normalizer\n */\nconstructor(driver: AnimationDriver, normalizer: AnimationStyl
 eNormalizer) {\n    this._transitionEngine = new TransitionAnimationEngine(driver, normalizer);\n    this._timelineEngine = new TimelineAnimationEngine(driver, normalizer);\n\n    this._transitionEngine.onRemovalComplete = (element: any, context: any) =>\n        this.onRemovalComplete(element, context);\n  }\n/**\n * @param {?} componentId\n * @param {?} namespaceId\n * @param {?} hostElement\n * @param {?} name\n * @param {?} metadata\n * @return {?}\n */\nregisterTrigger(\n      componentId: string, namespaceId: string, hostElement: any, name: string,\n      metadata: AnimationTriggerMetadata): void {\n    const /** @type {?} */ cacheKey = componentId + '-' + name;\n    let /** @type {?} */ trigger = this._triggerCache[cacheKey];\n    if (!trigger) {\n      const /** @type {?} */ errors: any[] = [];\n      const /** @type {?} */ ast = /** @type {?} */(( buildAnimationAst( /** @type {?} */((metadata as AnimationMetadata)), errors) as TriggerAst));\n      if (errors.length) {\n    
     throw new Error(\n            `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.join(\"\\n - \")}`);\n      }\n      trigger = buildTrigger(name, ast);\n      this._triggerCache[cacheKey] = trigger;\n    }\n    this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\nregister(namespaceId: string, hostElement: any) {\n    this._transitionEngine.register(namespaceId, hostElement);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\ndestroy(namespaceId: string, context: any) {\n    this._transitionEngine.destroy(namespaceId, context);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\nonInsert(namespaceId: string, element: any, parent: any, insertBefore: boolean): void {\n    this._transitionEngine.insertNode(namespaceId, element,
  parent, insertBefore);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\nonRemove(namespaceId: string, element: any, context: any): void {\n    this._transitionEngine.removeNode(namespaceId, element, context);\n  }\n/**\n * @param {?} element\n * @param {?} disable\n * @return {?}\n */\ndisableAnimations(element: any, disable: boolean) {\n    this._transitionEngine.markElementAsDisabled(element, disable);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} property\n * @param {?} value\n * @return {?}\n */\nprocess(namespaceId: string, element: any, property: string, value: any) {\n    if (property.charAt(0) == '@') {\n      const [id, action] = parseTimelineCommand(property);\n      const /** @type {?} */ args = /** @type {?} */(( value as any[]));\n      this._timelineEngine.command(id, element, action, args);\n    } else {\n      this._transitionEngine.trigger(namespaceId, element, property, value);\n 
    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} eventName\n * @param {?} eventPhase\n * @param {?} callback\n * @return {?}\n */\nlisten(\n      namespaceId: string, element: any, eventName: string, eventPhase: string,\n      callback: (event: any) => any): () => any {\n    // @@listen\n    if (eventName.charAt(0) == '@') {\n      const [id, action] = parseTimelineCommand(eventName);\n      return this._timelineEngine.listen(id, element, action, callback);\n    }\n    return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n  }\n/**\n * @param {?=} microtaskId\n * @return {?}\n */\nflush(microtaskId: number = -1): void { this._transitionEngine.flush(microtaskId); }\n/**\n * @return {?}\n */\nget players(): AnimationPlayer[] {\n    return ( /** @type {?} */((this._transitionEngine.players as AnimationPlayer[])))\n        .concat( /** @type {?} */((this._timelineEngine.players as AnimationPlayer[])));\n  }\n/**\n * @
 return {?}\n */\nwhenRenderingDone(): Promise<any> { return this._transitionEngine.whenRenderingDone(); }\n}\n\nfunction AnimationEngine_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationEngine.prototype._transitionEngine;\n/** @type {?} */\nAnimationEngine.prototype._timelineEngine;\n/** @type {?} */\nAnimationEngine.prototype._triggerCache;\n/** @type {?} */\nAnimationEngine.prototype.onRemovalComplete;\n}\n\n","/**\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\nimport {AnimationPlayer} from '@angular/animations';\n\nimport {allowPreviousPlayerStylesMerge, copyStyles} from '../../util';\n\nimport {DOMAnimation} from './dom_animation';\nexport class WebAnimationsPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _onDestroyFns: Function[] = [];
 \nprivate _player: DOMAnimation;\nprivate _duration: number;\nprivate _delay: number;\nprivate _initialized = false;\nprivate _finished = false;\nprivate _started = false;\nprivate _destroyed = false;\nprivate _finalKeyframe: {[key: string]: string | number};\npublic time = 0;\npublic parentPlayer: AnimationPlayer|null = null;\npublic previousStyles: {[styleName: string]: string | number} = {};\npublic currentSnapshot: {[styleName: string]: string | number} = {};\n/**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} options\n * @param {?=} previousPlayers\n */\nconstructor(\npublic element: any,\npublic keyframes: {[key: string]: string | number}[],\npublic options: {[key: string]: string | number},\nprivate previousPlayers: WebAnimationsPlayer[] = []) {\n    this._duration = <number>options['duration'];\n    this._delay = <number>options['delay'] || 0;\n    this.time = this._duration + this._delay;\n\n    if (allowPreviousPlayerStylesMerge(this._duration, this._delay)
 ) {\n      previousPlayers.forEach(player => {\n        let styles = player.currentSnapshot;\n        Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]);\n      });\n    }\n  }\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._finished) {\n      this._finished = true;\n      this._onDoneFns.forEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @return {?}\n */\ninit(): void {\n    this._buildPlayer();\n    this._preparePlayerBeforeStart();\n  }\n/**\n * @return {?}\n */\nprivate _buildPlayer(): void {\n    if (this._initialized) return;\n    this._initialized = true;\n\n    const /** @type {?} */ keyframes = this.keyframes.map(styles => copyStyles(styles, false));\n    const /** @type {?} */ previousStyleProps = Object.keys(this.previousStyles);\n    if (previousStyleProps.length) {\n      let /** @type {?} */ startingKeyframe = keyframes[0];\n      let /** @type {?} */ missingStyleProps: string[] = [];\n      previousStyleP
 rops.forEach(prop => {\n        if (!startingKeyframe.hasOwnProperty(prop)) {\n          missingStyleProps.push(prop);\n        }\n        startingKeyframe[prop] = this.previousStyles[prop];\n      });\n\n      if (missingStyleProps.length) {\n    

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/@angular/animations.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations.es5.js b/node_modules/@angular/animations/@angular/animations.es5.js
new file mode 100644
index 0000000..203f808
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations.es5.js
@@ -0,0 +1,1316 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+/**
+ * @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
+ */
+/**
+ * AnimationBuilder is an injectable service that is available when the {\@link
+ * BrowserAnimationsModule BrowserAnimationsModule} or {\@link NoopAnimationsModule
+ * NoopAnimationsModule} modules are used within an application.
+ *
+ * The purpose if this service is to produce an animation sequence programmatically within an
+ * angular component or directive.
+ *
+ * Programmatic animations are first built and then a player is created when the build animation is
+ * attached to an element.
+ *
+ * ```ts
+ * // remember to include the BrowserAnimationsModule module for this to work...
+ * import {AnimationBuilder} from '\@angular/animations';
+ *
+ * class MyCmp {
+ *   constructor(private _builder: AnimationBuilder) {}
+ *
+ *   makeAnimation(element: any) {
+ *     // first build the animation
+ *     const myAnimation = this._builder.build([
+ *       style({ width: 0 }),
+ *       animate(1000, style({ width: '100px' }))
+ *     ]);
+ *
+ *     // then create a player from it
+ *     const player = myAnimation.create(element);
+ *
+ *     player.play();
+ *   }
+ * }
+ * ```
+ *
+ * When an animation is built an instance of {\@link AnimationFactory AnimationFactory} will be
+ * returned. Using that an {\@link AnimationPlayer AnimationPlayer} can be created which can then be
+ * used to start the animation.
+ *
+ * \@experimental Animation support is experimental.
+ * @abstract
+ */
+var AnimationBuilder = (function () {
+    function AnimationBuilder() {
+    }
+    /**
+     * @abstract
+     * @param {?} animation
+     * @return {?}
+     */
+    AnimationBuilder.prototype.build = function (animation) { };
+    return AnimationBuilder;
+}());
+/**
+ * An instance of `AnimationFactory` is returned from {\@link AnimationBuilder#build
+ * AnimationBuilder.build}.
+ *
+ * \@experimental Animation support is experimental.
+ * @abstract
+ */
+var AnimationFactory = (function () {
+    function AnimationFactory() {
+    }
+    /**
+     * @abstract
+     * @param {?} element
+     * @param {?=} options
+     * @return {?}
+     */
+    AnimationFactory.prototype.create = function (element, options) { };
+    return AnimationFactory;
+}());
+/**
+ * \@experimental Animation support is experimental.
+ */
+var AUTO_STYLE = '*';
+/**
+ * `trigger` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the
+ * {\@link Component#animations component animations metadata page} to gain a better
+ * understanding of how animations in Angular are used.
+ *
+ * `trigger` Creates an animation trigger which will a list of {\@link state state} and
+ * {\@link transition transition} entries that will be evaluated when the expression
+ * bound to the trigger changes.
+ *
+ * Triggers are registered within the component annotation data under the
+ * {\@link Component#animations animations section}. An animation trigger can be placed on an element
+ * within a template by referencing the name of the trigger followed by the expression value that
+ * the
+ * trigger is bound to (in the form of `[\@triggerName]="expression"`.
+ *
+ * Animation trigger bindings strigify values and then match the previous and current values against
+ * any linked transitions. If a boolean value is provided into the trigger binding then it will both
+ * be represented as `1` or `true` and `0` or `false` for a true and false boolean values
+ * respectively.
+ *
+ * ### Usage
+ *
+ * `trigger` will create an animation trigger reference based on the provided `name` value. The
+ * provided `animation` value is expected to be an array consisting of {\@link state state} and
+ * {\@link transition transition} declarations.
+ *
+ * ```typescript
+ * \@Component({
+ *   selector: 'my-component',
+ *   templateUrl: 'my-component-tpl.html',
+ *   animations: [
+ *     trigger("myAnimationTrigger", [
+ *       state(...),
+ *       state(...),
+ *       transition(...),
+ *       transition(...)
+ *     ])
+ *   ]
+ * })
+ * class MyComponent {
+ *   myStatusExp = "something";
+ * }
+ * ```
+ *
+ * The template associated with this component will make use of the `myAnimationTrigger` animation
+ * trigger by binding to an element within its template code.
+ *
+ * ```html
+ * <!-- somewhere inside of my-component-tpl.html -->
+ * <div [\@myAnimationTrigger]="myStatusExp">...</div>
+ * ```
+ *
+ * ## Disable Animations
+ * A special animation control binding called `\@.disabled` can be placed on an element which will
+ * then disable animations for any inner animation triggers situated within the element as well as
+ * any animations on the element itself.
+ *
+ * When true, the `\@.disabled` binding will prevent all animations from rendering. The example
+ * below shows how to use this feature:
+ *
+ * ```ts
+ * \@Component({
+ *   selector: 'my-component',
+ *   template: `
+ *     <div [\@.disabled]="isDisabled">
+ *       <div [\@childAnimation]="exp"></div>
+ *     </div>
+ *   `,
+ *   animations: [
+ *     trigger("childAnimation", [
+ *       // ...
+ *     ])
+ *   ]
+ * })
+ * class MyComponent {
+ *   isDisabled = true;
+ *   exp = '...';
+ * }
+ * ```
+ *
+ * The `\@childAnimation` trigger will not animate because `\@.disabled` prevents it from happening
+ * (when true).
+ *
+ * Note that `\@.disbled` will only disable all animations (this means any animations running on
+ * the same element will also be disabled).
+ *
+ * ### Disabling Animations Application-wide
+ * When an area of the template is set to have animations disabled, **all** inner components will
+ * also have their animations disabled as well. This means that all animations for an angular
+ * application can be disabled by placing a host binding set on `\@.disabled` on the topmost Angular
+ * component.
+ *
+ * ```ts
+ * import {Component, HostBinding} from '\@angular/core';
+ *
+ * \@Component({
+ *   selector: 'app-component',
+ *   templateUrl: 'app.component.html',
+ * })
+ * class AppComponent {
+ *   \@HostBinding('\@.disabled')
+ *   public animationsDisabled = true;
+ * }
+ * ```
+ *
+ * ### What about animations that us `query()` and `animateChild()`?
+ * Despite inner animations being disabled, a parent animation can {\@link query query} for inner
+ * elements located in disabled areas of the template and still animate them as it sees fit. This is
+ * also the case for when a sub animation is queried by a parent and then later animated using {\@link
+ * animateChild animateChild}.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} name
+ * @param {?} definitions
+ * @return {?}
+ */
+function trigger(name, definitions) {
+    return { type: 7 /* Trigger */, name: name, definitions: definitions, options: {} };
+}
+/**
+ * `animate` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `animate` specifies an animation step that will apply the provided `styles` data for a given
+ * amount of time based on the provided `timing` expression value. Calls to `animate` are expected
+ * to be used within {\@link sequence an animation sequence}, {\@link group group}, or {\@link
+ * transition transition}.
+ *
+ * ### Usage
+ *
+ * The `animate` function accepts two input parameters: `timing` and `styles`:
+ *
+ * - `timing` is a string based value that can be a combination of a duration with optional delay
+ * and easing values. The format for the expression breaks down to `duration delay easing`
+ * (therefore a value such as `1s 100ms ease-out` will be parse itself into `duration=1000,
+ * delay=100, easing=ease-out`. If a numeric value is provided then that will be used as the
+ * `duration` value in millisecond form.
+ * - `styles` is the style input data which can either be a call to {\@link style style} or {\@link
+ * keyframes keyframes}. If left empty then the styles from the destination state will be collected
+ * and used (this is useful when describing an animation step that will complete an animation by
+ * {\@link transition#the-final-animate-call animating to the final state}).
+ *
+ * ```typescript
+ * // various functions for specifying timing data
+ * animate(500, style(...))
+ * animate("1s", style(...))
+ * animate("100ms 0.5s", style(...))
+ * animate("5s ease", style(...))
+ * animate("5s 10ms cubic-bezier(.17,.67,.88,.1)", style(...))
+ *
+ * // either style() of keyframes() can be used
+ * animate(500, style({ background: "red" }))
+ * animate(500, keyframes([
+ *   style({ background: "blue" })),
+ *   style({ background: "red" }))
+ * ])
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} timings
+ * @param {?=} styles
+ * @return {?}
+ */
+function animate(timings, styles) {
+    if (styles === void 0) { styles = null; }
+    return { type: 4 /* Animate */, styles: styles, timings: timings };
+}
+/**
+ * `group` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `group` specifies a list of animation steps that are all run in parallel. Grouped animations are
+ * useful when a series of styles must be animated/closed off at different starting/ending times.
+ *
+ * The `group` function can either be used within a {\@link sequence sequence} or a {\@link transition
+ * transition} and it will only continue to the next instruction once all of the inner animation
+ * steps have completed.
+ *
+ * ### Usage
+ *
+ * The `steps` data that is passed into the `group` animation function can either consist of {\@link
+ * style style} or {\@link animate animate} function calls. Each call to `style()` or `animate()`
+ * within a group will be executed instantly (use {\@link keyframes keyframes} or a {\@link
+ * animate#usage animate() with a delay value} to offset styles to be applied at a later time).
+ *
+ * ```typescript
+ * group([
+ *   animate("1s", { background: "black" }))
+ *   animate("2s", { color: "white" }))
+ * ])
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function group(steps, options) {
+    if (options === void 0) { options = null; }
+    return { type: 3 /* Group */, steps: steps, options: options };
+}
+/**
+ * `sequence` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used by
+ * default when an array is passed as animation data into {\@link transition transition}.)
+ *
+ * The `sequence` function can either be used within a {\@link group group} or a {\@link transition
+ * transition} and it will only continue to the next instruction once each of the inner animation
+ * steps have completed.
+ *
+ * To perform animation styling in parallel with other animation steps then have a look at the
+ * {\@link group group} animation function.
+ *
+ * ### Usage
+ *
+ * The `steps` data that is passed into the `sequence` animation function can either consist of
+ * {\@link style style} or {\@link animate animate} function calls. A call to `style()` will apply the
+ * provided styling data immediately while a call to `animate()` will apply its styling data over a
+ * given time depending on its timing data.
+ *
+ * ```typescript
+ * sequence([
+ *   style({ opacity: 0 })),
+ *   animate("1s", { opacity: 1 }))
+ * ])
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function sequence(steps, options) {
+    if (options === void 0) { options = null; }
+    return { type: 2 /* Sequence */, steps: steps, options: options };
+}
+/**
+ * `style` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `style` declares a key/value object containing CSS properties/styles that can then be used for
+ * {\@link state animation states}, within an {\@link sequence animation sequence}, or as styling data
+ * for both {\@link animate animate} and {\@link keyframes keyframes}.
+ *
+ * ### Usage
+ *
+ * `style` takes in a key/value string map as data and expects one or more CSS property/value pairs
+ * to be defined.
+ *
+ * ```typescript
+ * // string values are used for css properties
+ * style({ background: "red", color: "blue" })
+ *
+ * // numerical (pixel) values are also supported
+ * style({ width: 100, height: 0 })
+ * ```
+ *
+ * #### Auto-styles (using `*`)
+ *
+ * When an asterix (`*`) character is used as a value then it will be detected from the element
+ * being animated and applied as animation data when the animation starts.
+ *
+ * This feature proves useful for a state depending on layout and/or environment factors; in such
+ * cases the styles are calculated just before the animation starts.
+ *
+ * ```typescript
+ * // the steps below will animate from 0 to the
+ * // actual height of the element
+ * style({ height: 0 }),
+ * animate("1s", style({ height: "*" }))
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} tokens
+ * @return {?}
+ */
+function style(tokens) {
+    return { type: 6 /* Style */, styles: tokens, offset: null };
+}
+/**
+ * `state` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `state` declares an animation state within the given trigger. When a state is active within a
+ * component then its associated styles will persist on the element that the trigger is attached to
+ * (even when the animation ends).
+ *
+ * To animate between states, have a look at the animation {\@link transition transition} DSL
+ * function. To register states to an animation trigger please have a look at the {\@link trigger
+ * trigger} function.
+ *
+ * #### The `void` state
+ *
+ * The `void` state value is a reserved word that angular uses to determine when the element is not
+ * apart of the application anymore (e.g. when an `ngIf` evaluates to false then the state of the
+ * associated element is void).
+ *
+ * #### The `*` (default) state
+ *
+ * The `*` state (when styled) is a fallback state that will be used if the state that is being
+ * animated is not declared within the trigger.
+ *
+ * ### Usage
+ *
+ * `state` will declare an animation state with its associated styles
+ * within the given trigger.
+ *
+ * - `stateNameExpr` can be one or more state names separated by commas.
+ * - `styles` refers to the {\@link style styling data} that will be persisted on the element once
+ * the state has been reached.
+ *
+ * ```typescript
+ * // "void" is a reserved name for a state and is used to represent
+ * // the state in which an element is detached from from the application.
+ * state("void", style({ height: 0 }))
+ *
+ * // user-defined states
+ * state("closed", style({ height: 0 }))
+ * state("open, visible", style({ height: "*" }))
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} name
+ * @param {?} styles
+ * @param {?=} options
+ * @return {?}
+ */
+function state(name, styles, options) {
+    return { type: 0 /* State */, name: name, styles: styles, options: options };
+}
+/**
+ * `keyframes` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `keyframes` specifies a collection of {\@link style style} entries each optionally characterized
+ * by an `offset` value.
+ *
+ * ### Usage
+ *
+ * The `keyframes` animation function is designed to be used alongside the {\@link animate animate}
+ * animation function. Instead of applying animations from where they are currently to their
+ * destination, keyframes can describe how each style entry is applied and at what point within the
+ * animation arc (much like CSS Keyframe Animations do).
+ *
+ * For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at what
+ * percentage of the animate time the styles will be applied.
+ *
+ * ```typescript
+ * // the provided offset values describe when each backgroundColor value is applied.
+ * animate("5s", keyframes([
+ *   style({ backgroundColor: "red", offset: 0 }),
+ *   style({ backgroundColor: "blue", offset: 0.2 }),
+ *   style({ backgroundColor: "orange", offset: 0.3 }),
+ *   style({ backgroundColor: "black", offset: 1 })
+ * ]))
+ * ```
+ *
+ * Alternatively, if there are no `offset` values used within the style entries then the offsets
+ * will be calculated automatically.
+ *
+ * ```typescript
+ * animate("5s", keyframes([
+ *   style({ backgroundColor: "red" }) // offset = 0
+ *   style({ backgroundColor: "blue" }) // offset = 0.33
+ *   style({ backgroundColor: "orange" }) // offset = 0.66
+ *   style({ backgroundColor: "black" }) // offset = 1
+ * ]))
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @return {?}
+ */
+function keyframes(steps) {
+    return { type: 5 /* Keyframes */, steps: steps };
+}
+/**
+ * `transition` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `transition` declares the {\@link sequence sequence of animation steps} that will be run when the
+ * provided `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 =>
+ * state2` which consists of two known states (use an asterix (`*`) to refer to a dynamic starting
+ * and/or ending state).
+ *
+ * A function can also be provided as the `stateChangeExpr` argument for a transition and this
+ * function will be executed each time a state change occurs. If the value returned within the
+ * function is true then the associated animation will be run.
+ *
+ * Animation transitions are placed within an {\@link trigger animation trigger}. For an transition
+ * to animate to a state value and persist its styles then one or more {\@link state animation
+ * states} is expected to be defined.
+ *
+ * ### Usage
+ *
+ * An animation transition is kicked off the `stateChangeExpr` predicate evaluates to true based on
+ * what the previous state is and what the current state has become. In other words, if a transition
+ * is defined that matches the old/current state criteria then the associated animation will be
+ * triggered.
+ *
+ * ```typescript
+ * // all transition/state changes are defined within an animation trigger
+ * trigger("myAnimationTrigger", [
+ *   // if a state is defined then its styles will be persisted when the
+ *   // animation has fully completed itself
+ *   state("on", style({ background: "green" })),
+ *   state("off", style({ background: "grey" })),
+ *
+ *   // a transition animation that will be kicked off when the state value
+ *   // bound to "myAnimationTrigger" changes from "on" to "off"
+ *   transition("on => off", animate(500)),
+ *
+ *   // it is also possible to do run the same animation for both directions
+ *   transition("on <=> off", animate(500)),
+ *
+ *   // or to define multiple states pairs separated by commas
+ *   transition("on => off, off => void", animate(500)),
+ *
+ *   // this is a catch-all state change for when an element is inserted into
+ *   // the page and the destination state is unknown
+ *   transition("void => *", [
+ *     style({ opacity: 0 }),
+ *     animate(500)
+ *   ]),
+ *
+ *   // this will capture a state change between any states
+ *   transition("* => *", animate("1s 0s")),
+ *
+ *   // you can also go full out and include a function
+ *   transition((fromState, toState) => {
+ *     // when `true` then it will allow the animation below to be invoked
+ *     return fromState == "off" && toState == "on";
+ *   }, animate("1s 0s"))
+ * ])
+ * ```
+ *
+ * The template associated with this component will make use of the `myAnimationTrigger` animation
+ * trigger by binding to an element within its template code.
+ *
+ * ```html
+ * <!-- somewhere inside of my-component-tpl.html -->
+ * <div [\@myAnimationTrigger]="myStatusExp">...</div>
+ * ```
+ *
+ * #### The final `animate` call
+ *
+ * If the final step within the transition steps is a call to `animate()` that **only** uses a
+ * timing value with **no style data** then it will be automatically used as the final animation arc
+ * for the element to animate itself to the final state. This involves an automatic mix of
+ * adding/removing CSS styles so that the element will be in the exact state it should be for the
+ * applied state to be presented correctly.
+ *
+ * ```
+ * // start off by hiding the element, but make sure that it animates properly to whatever state
+ * // is currently active for "myAnimationTrigger"
+ * transition("void => *", [
+ *   style({ opacity: 0 }),
+ *   animate(500)
+ * ])
+ * ```
+ *
+ * ### Transition Aliases (`:enter` and `:leave`)
+ *
+ * Given that enter (insertion) and leave (removal) animations are so common, the `transition`
+ * function accepts both `:enter` and `:leave` values which are aliases for the `void => *` and `*
+ * => void` state changes.
+ *
+ * ```
+ * transition(":enter", [
+ *   style({ opacity: 0 }),
+ *   animate(500, style({ opacity: 1 }))
+ * ])
+ * transition(":leave", [
+ *   animate(500, style({ opacity: 0 }))
+ * ])
+ * ```
+ *
+ * ### Boolean values
+ * if a trigger binding value is a boolean value then it can be matched using a transition
+ * expression that compares `true` and `false` or `1` and `0`.
+ *
+ * ```
+ * // in the template
+ * <div [\@openClose]="open ? true : false">...</div>
+ *
+ * // in the component metadata
+ * trigger('openClose', [
+ *   state('true', style({ height: '*' })),
+ *   state('false', style({ height: '0px' })),
+ *   transition('false <=> true', animate(500))
+ * ])
+ * ```
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} stateChangeExpr
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function transition(stateChangeExpr, steps, options) {
+    if (options === void 0) { options = null; }
+    return { type: 1 /* Transition */, expr: stateChangeExpr, animation: steps, options: options };
+}
+/**
+ * `animation` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language.
+ *
+ * `var myAnimation = animation(...)` is designed to produce a reusable animation that can be later
+ * invoked in another animation or sequence. Reusable animations are designed to make use of
+ * animation parameters and the produced animation can be used via the `useAnimation` method.
+ *
+ * ```
+ * var fadeAnimation = animation([
+ *   style({ opacity: '{{ start }}' }),
+ *   animate('{{ time }}',
+ *     style({ opacity: '{{ end }}'}))
+ * ], { params: { time: '1000ms', start: 0, end: 1 }});
+ * ```
+ *
+ * If parameters are attached to an animation then they act as **default parameter values**. When an
+ * animation is invoked via `useAnimation` then parameter values are allowed to be passed in
+ * directly. If any of the passed in parameter values are missing then the default values will be
+ * used.
+ *
+ * ```
+ * useAnimation(fadeAnimation, {
+ *   params: {
+ *     time: '2s',
+ *     start: 1,
+ *     end: 0
+ *   }
+ * })
+ * ```
+ *
+ * If one or more parameter values are missing before animated then an error will be thrown.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function animation(steps, options) {
+    if (options === void 0) { options = null; }
+    return { type: 8 /* Reference */, animation: steps, options: options };
+}
+/**
+ * `animateChild` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It works by allowing a queried element to execute its own
+ * animation within the animation sequence.
+ *
+ * Each time an animation is triggered in angular, the parent animation
+ * will always get priority and any child animations will be blocked. In order
+ * for a child animation to run, the parent animation must query each of the elements
+ * containing child animations and then allow the animations to run using `animateChild`.
+ *
+ * The example HTML code below shows both parent and child elements that have animation
+ * triggers that will execute at the same time.
+ *
+ * ```html
+ * <!-- parent-child.component.html -->
+ * <button (click)="exp =! exp">Toggle</button>
+ * <hr>
+ *
+ * <div [\@parentAnimation]="exp">
+ *   <header>Hello</header>
+ *   <div [\@childAnimation]="exp">
+ *       one
+ *   </div>
+ *   <div [\@childAnimation]="exp">
+ *       two
+ *   </div>
+ *   <div [\@childAnimation]="exp">
+ *       three
+ *   </div>
+ * </div>
+ * ```
+ *
+ * Now when the `exp` value changes to true, only the `parentAnimation` animation will animate
+ * because it has priority. However, using `query` and `animateChild` each of the inner animations
+ * can also fire:
+ *
+ * ```ts
+ * // parent-child.component.ts
+ * import {trigger, transition, animate, style, query, animateChild} from '\@angular/animations';
+ * \@Component({
+ *   selector: 'parent-child-component',
+ *   animations: [
+ *     trigger('parentAnimation', [
+ *       transition('false => true', [
+ *         query('header', [
+ *           style({ opacity: 0 }),
+ *           animate(500, style({ opacity: 1 }))
+ *         ]),
+ *         query('\@childAnimation', [
+ *           animateChild()
+ *         ])
+ *       ])
+ *     ]),
+ *     trigger('childAnimation', [
+ *       transition('false => true', [
+ *         style({ opacity: 0 }),
+ *         animate(500, style({ opacity: 1 }))
+ *       ])
+ *     ])
+ *   ]
+ * })
+ * class ParentChildCmp {
+ *   exp: boolean = false;
+ * }
+ * ```
+ *
+ * In the animation code above, when the `parentAnimation` transition kicks off it first queries to
+ * find the header element and fades it in. It then finds each of the sub elements that contain the
+ * `\@childAnimation` trigger and then allows for their animations to fire.
+ *
+ * This example can be further extended by using stagger:
+ *
+ * ```ts
+ * query('\@childAnimation', stagger(100, [
+ *   animateChild()
+ * ]))
+ * ```
+ *
+ * Now each of the sub animations start off with respect to the `100ms` staggering step.
+ *
+ * ## The first frame of child animations
+ * When sub animations are executed using `animateChild` the animation engine will always apply the
+ * first frame of every sub animation immediately at the start of the animation sequence. This way
+ * the parent animation does not need to set any initial styling data on the sub elements before the
+ * sub animations kick off.
+ *
+ * In the example above the first frame of the `childAnimation`'s `false => true` transition
+ * consists of a style of `opacity: 0`. This is applied immediately when the `parentAnimation`
+ * animation transition sequence starts. Only then when the `\@childAnimation` is queried and called
+ * with `animateChild` will it then animate to its destination of `opacity: 1`.
+ *
+ * Note that this feature designed to be used alongside {\@link query query()} and it will only work
+ * with animations that are assigned using the Angular animation DSL (this means that CSS keyframes
+ * and transitions are not handled by this API).
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?=} options
+ * @return {?}
+ */
+function animateChild(options) {
+    if (options === void 0) { options = null; }
+    return { type: 9 /* AnimateChild */, options: options };
+}
+/**
+ * `useAnimation` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It is used to kick off a reusable animation that is created using {\@link
+ * animation animation()}.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} animation
+ * @param {?=} options
+ * @return {?}
+ */
+function useAnimation(animation, options) {
+    if (options === void 0) { options = null; }
+    return { type: 10 /* AnimateRef */, animation: animation, options: options };
+}
+/**
+ * `query` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language.
+ *
+ * query() is used to find one or more inner elements within the current element that is
+ * being animated within the sequence. The provided animation steps are applied
+ * to the queried element (by default, an array is provided, then this will be
+ * treated as an animation sequence).
+ *
+ * ### Usage
+ *
+ * query() is designed to collect mutiple elements and works internally by using
+ * `element.querySelectorAll`. An additional options object can be provided which
+ * can be used to limit the total amount of items to be collected.
+ *
+ * ```js
+ * query('div', [
+ *   animate(...),
+ *   animate(...)
+ * ], { limit: 1 })
+ * ```
+ *
+ * query(), by default, will throw an error when zero items are found. If a query
+ * has the `optional` flag set to true then this error will be ignored.
+ *
+ * ```js
+ * query('.some-element-that-may-not-be-there', [
+ *   animate(...),
+ *   animate(...)
+ * ], { optional: true })
+ * ```
+ *
+ * ### Special Selector Values
+ *
+ * The selector value within a query can collect elements that contain angular-specific
+ * characteristics
+ * using special pseudo-selectors tokens.
+ *
+ * These include:
+ *
+ *  - Querying for newly inserted/removed elements using `query(":enter")`/`query(":leave")`
+ *  - Querying all currently animating elements using `query(":animating")`
+ *  - Querying elements that contain an animation trigger using `query("\@triggerName")`
+ *  - Querying all elements that contain an animation triggers using `query("\@*")`
+ *  - Including the current element into the animation sequence using `query(":self")`
+ *
+ *
+ *  Each of these pseudo-selector tokens can be merged together into a combined query selector
+ * string:
+ *
+ *  ```
+ *  query(':self, .record:enter, .record:leave, \@subTrigger', [...])
+ *  ```
+ *
+ * ### Demo
+ *
+ * ```
+ * \@Component({
+ *   selector: 'inner',
+ *   template: `
+ *     <div [\@queryAnimation]="exp">
+ *       <h1>Title</h1>
+ *       <div class="content">
+ *         Blah blah blah
+ *       </div>
+ *     </div>
+ *   `,
+ *   animations: [
+ *    trigger('queryAnimation', [
+ *      transition('* => goAnimate', [
+ *        // hide the inner elements
+ *        query('h1', style({ opacity: 0 })),
+ *        query('.content', style({ opacity: 0 })),
+ *
+ *        // animate the inner elements in, one by one
+ *        query('h1', animate(1000, style({ opacity: 1 })),
+ *        query('.content', animate(1000, style({ opacity: 1 })),
+ *      ])
+ *    ])
+ *  ]
+ * })
+ * class Cmp {
+ *   exp = '';
+ *
+ *   goAnimate() {
+ *     this.exp = 'goAnimate';
+ *   }
+ * }
+ * ```
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} selector
+ * @param {?} animation
+ * @param {?=} options
+ * @return {?}
+ */
+function query(selector, animation, options) {
+    if (options === void 0) { options = null; }
+    return { type: 11 /* Query */, selector: selector, animation: animation, options: options };
+}
+/**
+ * `stagger` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It is designed to be used inside of an animation {\@link query query()}
+ * and works by issuing a timing gap between after each queried item is animated.
+ *
+ * ### Usage
+ *
+ * In the example below there is a container element that wraps a list of items stamped out
+ * by an ngFor. The container element contains an animation trigger that will later be set
+ * to query for each of the inner items.
+ *
+ * ```html
+ * <!-- list.component.html -->
+ * <button (click)="toggle()">Show / Hide Items</button>
+ * <hr />
+ * <div [\@listAnimation]="items.length">
+ *   <div *ngFor="let item of items">
+ *     {{ item }}
+ *   </div>
+ * </div>
+ * ```
+ *
+ * The component code for this looks as such:
+ *
+ * ```ts
+ * import {trigger, transition, style, animate, query, stagger} from '\@angular/animations';
+ * \@Component({
+ *   templateUrl: 'list.component.html',
+ *   animations: [
+ *     trigger('listAnimation', [
+ *        //...
+ *     ])
+ *   ]
+ * })
+ * class ListComponent {
+ *   items = [];
+ *
+ *   showItems() {
+ *     this.items = [0,1,2,3,4];
+ *   }
+ *
+ *   hideItems() {
+ *     this.items = [];
+ *   }
+ *
+ *   toggle() {
+ *     this.items.length ? this.hideItems() : this.showItems();
+ *   }
+ * }
+ * ```
+ *
+ * And now for the animation trigger code:
+ *
+ * ```ts
+ * trigger('listAnimation', [
+ *   transition('* => *', [ // each time the binding value changes
+ *     query(':leave', [
+ *       stagger(100, [
+ *         animate('0.5s', style({ opacity: 0 }))
+ *       ])
+ *     ]),
+ *     query(':enter', [
+ *       style({ opacity: 0 }),
+ *       stagger(100, [
+ *         animate('0.5s', style({ opacity: 1 }))
+ *       ])
+ *     ])
+ *   ])
+ * ])
+ * ```
+ *
+ * Now each time the items are added/removed then either the opacity
+ * fade-in animation will run or each removed item will be faded out.
+ * When either of these animations occur then a stagger effect will be
+ * applied after each item's animation is started.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} timings
+ * @param {?} animation
+ * @return {?}
+ */
+function stagger(timings, animation) {
+    return { type: 12 /* Stagger */, timings: timings, animation: animation };
+}
+/**
+ * @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
+ * @param {?} cb
+ * @return {?}
+ */
+function scheduleMicroTask(cb) {
+    Promise.resolve(null).then(cb);
+}
+/**
+ * @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
+ */
+/**
+ * \@experimental Animation support is experimental.
+ */
+var NoopAnimationPlayer = (function () {
+    function NoopAnimationPlayer() {
+        this._onDoneFns = [];
+        this._onStartFns = [];
+        this._onDestroyFns = [];
+        this._started = false;
+        this._destroyed = false;
+        this._finished = false;
+        this.parentPlayer = null;
+        this.totalTime = 0;
+    }
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype._onFinish = function () {
+        if (!this._finished) {
+            this._finished = true;
+            this._onDoneFns.forEach(function (fn) { return fn(); });
+            this._onDoneFns = [];
+        }
+    };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.hasStarted = function () { return this._started; };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.init = function () { };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.play = function () {
+        if (!this.hasStarted()) {
+            this.triggerMicrotask();
+            this._onStart();
+        }
+        this._started = true;
+    };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.triggerMicrotask = function () {
+        var _this = this;
+        scheduleMicroTask(function () { return _this._onFinish(); });
+    };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype._onStart = function () {
+        this._onStartFns.forEach(function (fn) { return fn(); });
+        this._onStartFns = [];
+    };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.pause = function () { };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.restart = function () { };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.finish = function () { this._onFinish(); };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.destroy = function () {
+        if (!this._destroyed) {
+            this._destroyed = true;
+            if (!this.hasStarted()) {
+                this._onStart();
+            }
+            this.finish();
+            this._onDestroyFns.forEach(function (fn) { return fn(); });
+            this._onDestroyFns = [];
+        }
+    };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.reset = function () { };
+    /**
+     * @param {?} p
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.setPosition = function (p) { };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.getPosition = function () { return 0; };
+    return NoopAnimationPlayer;
+}());
+/**
+ * @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
+ */
+var AnimationGroupPlayer = (function () {
+    /**
+     * @param {?} _players
+     */
+    function AnimationGroupPlayer(_players) {
+        var _this = this;
+        this._players = _players;
+        this._onDoneFns = [];
+        this._onStartFns = [];
+        this._finished = false;
+        this._started = false;
+        this._destroyed = false;
+        this._onDestroyFns = [];
+        this.parentPlayer = null;
+        this.totalTime = 0;
+        var doneCount = 0;
+        var destroyCount = 0;
+        var startCount = 0;
+        var total = this._players.length;
+        if (total == 0) {
+            scheduleMicroTask(function () { return _this._onFinish(); });
+        }
+        else {
+            this._players.forEach(function (player) {
+                player.parentPlayer = _this;
+                player.onDone(function () {
+                    if (++doneCount >= total) {
+                        _this._onFinish();
+                    }
+                });
+                player.onDestroy(function () {
+                    if (++destroyCount >= total) {
+                        _this._onDestroy();
+                    }
+                });
+                player.onStart(function () {
+                    if (++startCount >= total) {
+                        _this._onStart();
+                    }
+                });
+            });
+        }
+        this.totalTime = this._players.reduce(function (time, player) { return Math.max(time, player.totalTime); }, 0);
+    }
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype._onFinish = function () {
+        if (!this._finished) {
+            this._finished = true;
+            this._onDoneFns.forEach(function (fn) { return fn(); });
+            this._onDoneFns = [];
+        }
+    };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.init = function () { this._players.forEach(function (player) { return player.init(); }); };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype._onStart = function () {
+        if (!this.hasStarted()) {
+            this._onStartFns.forEach(function (fn) { return fn(); });
+            this._onStartFns = [];
+            this._started = true;
+        }
+    };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.hasStarted = function () { return this._started; };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.play = function () {
+        if (!this.parentPlayer) {
+            this.init();
+        }
+        this._onStart();
+        this._players.forEach(function (player) { return player.play(); });
+    };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.pause = function () { this._players.forEach(function (player) { return player.pause(); }); };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.restart = function () { this._players.forEach(function (player) { return player.restart(); }); };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.finish = function () {
+        this._onFinish();
+        this._players.forEach(function (player) { return player.finish(); });
+    };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.destroy = function () { this._onDestroy(); };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype._onDestroy = function () {
+        if (!this._destroyed) {
+            this._destroyed = true;
+            this._onFinish();
+            this._players.forEach(function (player) { return player.destroy(); });
+            this._onDestroyFns.forEach(function (fn) { return fn(); });
+            this._onDestroyFns = [];
+        }
+    };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.reset = function () {
+        this._players.forEach(function (player) { return player.reset(); });
+        this._destroyed = false;
+        this._finished = false;
+        this._started = false;
+    };
+    /**
+     * @param {?} p
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.setPosition = function (p) {
+        var /** @type {?} */ timeAtPosition = p * this.totalTime;
+        this._players.forEach(function (player) {
+            var /** @type {?} */ position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;
+            player.setPosition(position);
+        });
+    };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.getPosition = function () {
+        var /** @type {?} */ min = 0;
+        this._players.forEach(function (player) {
+            var /** @type {?} */ p = player.getPosition();
+            min = Math.min(p, min);
+        });
+        return min;
+    };
+    Object.defineProperty(AnimationGroupPlayer.prototype, "players", {
+        /**
+         * @return {?}
+         */
+        get: function () { return this._players; },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.beforeDestroy = function () {
+        this.players.forEach(function (player) {
+            if (player.beforeDestroy) {
+                player.beforeDestroy();
+            }
+        });
+    };
+    return AnimationGroupPlayer;
+}());
+/**
+ * @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
+ */
+var ɵPRE_STYLE = '!';
+/**
+ * @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
+ */
+/**
+ * @module
+ * @description
+ * Entry point for all animation APIs of the animation package.
+ */
+/**
+ * @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
+ */
+/**
+ * @module
+ * @description
+ * Entry point for all public APIs of the animation package.
+ */
+/**
+ * Generated bundle index. Do not edit.
+ */
+export { AnimationBuilder, AnimationFactory, AUTO_STYLE, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, NoopAnimationPlayer, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE };
+//# sourceMappingURL=animations.es5.js.map


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/table.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/table.js b/node_modules/@angular/cdk/esm2015/table.js
new file mode 100644
index 0000000..0e63bcd
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/table.js
@@ -0,0 +1,775 @@
+/**
+ * @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 { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, ElementRef, Input, IterableDiffers, NgModule, Renderer2, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation, isDevMode } from '@angular/core';
+import { takeUntil } from 'rxjs/operator/takeUntil';
+import { BehaviorSubject } from 'rxjs/BehaviorSubject';
+import { Subject } from 'rxjs/Subject';
+import { CommonModule } from '@angular/common';
+import { DataSource } from '@angular/cdk/collections';
+
+/**
+ * The row template that can be used by the mat-table. Should not be used outside of the
+ * material library.
+ */
+const CDK_ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;
+/**
+ * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs
+ * for changes and notifying the table.
+ * @abstract
+ */
+class BaseRowDef {
+    /**
+     * @param {?} template
+     * @param {?} _differs
+     */
+    constructor(template, _differs) {
+        this.template = template;
+        this._differs = _differs;
+    }
+    /**
+     * @param {?} changes
+     * @return {?}
+     */
+    ngOnChanges(changes) {
+        // Create a new columns differ if one does not yet exist. Initialize it based on initial value
+        // of the columns property or an empty array if none is provided.
+        const /** @type {?} */ columns = changes['columns'].currentValue || [];
+        if (!this._columnsDiffer) {
+            this._columnsDiffer = this._differs.find(columns).create();
+            this._columnsDiffer.diff(columns);
+        }
+    }
+    /**
+     * Returns the difference between the current columns and the columns from the last diff, or null
+     * if there is no difference.
+     * @return {?}
+     */
+    getColumnsDiff() {
+        return this._columnsDiffer.diff(this.columns);
+    }
+}
+/**
+ * Header row definition for the CDK table.
+ * Captures the header row's template and other header properties such as the columns to display.
+ */
+class CdkHeaderRowDef extends BaseRowDef {
+    /**
+     * @param {?} template
+     * @param {?} _differs
+     */
+    constructor(template, _differs) {
+        super(template, _differs);
+    }
+}
+CdkHeaderRowDef.decorators = [
+    { type: Directive, args: [{
+                selector: '[cdkHeaderRowDef]',
+                inputs: ['columns: cdkHeaderRowDef'],
+            },] },
+];
+/**
+ * @nocollapse
+ */
+CdkHeaderRowDef.ctorParameters = () => [
+    { type: TemplateRef, },
+    { type: IterableDiffers, },
+];
+/**
+ * Data row definition for the CDK table.
+ * Captures the header row's template and other row properties such as the columns to display and
+ * a when predicate that describes when this row should be used.
+ */
+class CdkRowDef extends BaseRowDef {
+    /**
+     * @param {?} template
+     * @param {?} _differs
+     */
+    constructor(template, _differs) {
+        super(template, _differs);
+    }
+}
+CdkRowDef.decorators = [
+    { type: Directive, args: [{
+                selector: '[cdkRowDef]',
+                inputs: ['columns: cdkRowDefColumns', 'when: cdkRowDefWhen'],
+            },] },
+];
+/**
+ * @nocollapse
+ */
+CdkRowDef.ctorParameters = () => [
+    { type: TemplateRef, },
+    { type: IterableDiffers, },
+];
+/**
+ * Outlet for rendering cells inside of a row or header row.
+ * \@docs-private
+ */
+class CdkCellOutlet {
+    /**
+     * @param {?} _viewContainer
+     */
+    constructor(_viewContainer) {
+        this._viewContainer = _viewContainer;
+        CdkCellOutlet.mostRecentCellOutlet = this;
+    }
+}
+CdkCellOutlet.decorators = [
+    { type: Directive, args: [{ selector: '[cdkCellOutlet]' },] },
+];
+/**
+ * @nocollapse
+ */
+CdkCellOutlet.ctorParameters = () => [
+    { type: ViewContainerRef, },
+];
+/**
+ * Header template container that contains the cell outlet. Adds the right class and role.
+ */
+class CdkHeaderRow {
+}
+CdkHeaderRow.decorators = [
+    { type: Component, args: [{selector: 'cdk-header-row',
+                template: CDK_ROW_TEMPLATE,
+                host: {
+                    'class': 'cdk-header-row',
+                    'role': 'row',
+                },
+                changeDetection: ChangeDetectionStrategy.OnPush,
+                encapsulation: ViewEncapsulation.None,
+                preserveWhitespaces: false,
+            },] },
+];
+/**
+ * @nocollapse
+ */
+CdkHeaderRow.ctorParameters = () => [];
+/**
+ * Data row template container that contains the cell outlet. Adds the right class and role.
+ */
+class CdkRow {
+}
+CdkRow.decorators = [
+    { type: Component, args: [{selector: 'cdk-row',
+                template: CDK_ROW_TEMPLATE,
+                host: {
+                    'class': 'cdk-row',
+                    'role': 'row',
+                },
+                changeDetection: ChangeDetectionStrategy.OnPush,
+                encapsulation: ViewEncapsulation.None,
+                preserveWhitespaces: false,
+            },] },
+];
+/**
+ * @nocollapse
+ */
+CdkRow.ctorParameters = () => [];
+
+/**
+ * Cell definition for a CDK table.
+ * Captures the template of a column's data row cell as well as cell-specific properties.
+ */
+class CdkCellDef {
+    /**
+     * @param {?} template
+     */
+    constructor(template) {
+        this.template = template;
+    }
+}
+CdkCellDef.decorators = [
+    { type: Directive, args: [{ selector: '[cdkCellDef]' },] },
+];
+/**
+ * @nocollapse
+ */
+CdkCellDef.ctorParameters = () => [
+    { type: TemplateRef, },
+];
+/**
+ * Header cell definition for a CDK table.
+ * Captures the template of a column's header cell and as well as cell-specific properties.
+ */
+class CdkHeaderCellDef {
+    /**
+     * @param {?} template
+     */
+    constructor(template) {
+        this.template = template;
+    }
+}
+CdkHeaderCellDef.decorators = [
+    { type: Directive, args: [{ selector: '[cdkHeaderCellDef]' },] },
+];
+/**
+ * @nocollapse
+ */
+CdkHeaderCellDef.ctorParameters = () => [
+    { type: TemplateRef, },
+];
+/**
+ * Column definition for the CDK table.
+ * Defines a set of cells available for a table column.
+ */
+class CdkColumnDef {
+    /**
+     * Unique name for this column.
+     * @return {?}
+     */
+    get name() { return this._name; }
+    /**
+     * @param {?} name
+     * @return {?}
+     */
+    set name(name) {
+        this._name = name;
+        this.cssClassFriendlyName = name.replace(/[^a-z0-9_-]/ig, '-');
+    }
+}
+CdkColumnDef.decorators = [
+    { type: Directive, args: [{ selector: '[cdkColumnDef]' },] },
+];
+/**
+ * @nocollapse
+ */
+CdkColumnDef.ctorParameters = () => [];
+CdkColumnDef.propDecorators = {
+    'name': [{ type: Input, args: ['cdkColumnDef',] },],
+    'cell': [{ type: ContentChild, args: [CdkCellDef,] },],
+    'headerCell': [{ type: ContentChild, args: [CdkHeaderCellDef,] },],
+};
+/**
+ * Header cell template container that adds the right classes and role.
+ */
+class CdkHeaderCell {
+    /**
+     * @param {?} columnDef
+     * @param {?} elementRef
+     * @param {?} renderer
+     */
+    constructor(columnDef, elementRef, renderer) {
+        renderer.addClass(elementRef.nativeElement, `cdk-column-${columnDef.cssClassFriendlyName}`);
+    }
+}
+CdkHeaderCell.decorators = [
+    { type: Directive, args: [{
+                selector: 'cdk-header-cell',
+                host: {
+                    'class': 'cdk-header-cell',
+                    'role': 'columnheader',
+                },
+            },] },
+];
+/**
+ * @nocollapse
+ */
+CdkHeaderCell.ctorParameters = () => [
+    { type: CdkColumnDef, },
+    { type: ElementRef, },
+    { type: Renderer2, },
+];
+/**
+ * Cell template container that adds the right classes and role.
+ */
+class CdkCell {
+    /**
+     * @param {?} columnDef
+     * @param {?} elementRef
+     * @param {?} renderer
+     */
+    constructor(columnDef, elementRef, renderer) {
+        renderer.addClass(elementRef.nativeElement, `cdk-column-${columnDef.cssClassFriendlyName}`);
+    }
+}
+CdkCell.decorators = [
+    { type: Directive, args: [{
+                selector: 'cdk-cell',
+                host: {
+                    'class': 'cdk-cell',
+                    'role': 'gridcell',
+                },
+            },] },
+];
+/**
+ * @nocollapse
+ */
+CdkCell.ctorParameters = () => [
+    { type: CdkColumnDef, },
+    { type: ElementRef, },
+    { type: Renderer2, },
+];
+
+/**
+ * Returns an error to be thrown when attempting to find an unexisting column.
+ * \@docs-private
+ * @param {?} id Id whose lookup failed.
+ * @return {?}
+ */
+function getTableUnknownColumnError(id) {
+    return Error(`cdk-table: Could not find column with id "${id}".`);
+}
+/**
+ * Returns an error to be thrown when two column definitions have the same name.
+ * \@docs-private
+ * @param {?} name
+ * @return {?}
+ */
+function getTableDuplicateColumnNameError(name) {
+    return Error(`cdk-table: Duplicate column definition name provided: "${name}".`);
+}
+/**
+ * Returns an error to be thrown when there are multiple rows that are missing a when function.
+ * \@docs-private
+ * @return {?}
+ */
+function getTableMultipleDefaultRowDefsError() {
+    return Error(`cdk-table: There can only be one default row without a when predicate function.`);
+}
+/**
+ * Returns an error to be thrown when there are no matching row defs for a particular set of data.
+ * \@docs-private
+ * @return {?}
+ */
+function getTableMissingMatchingRowDefError() {
+    return Error(`cdk-table: Could not find a matching row definition for the provided row data.`);
+}
+
+/**
+ * Provides a handle for the table to grab the view container's ng-container to insert data rows.
+ * \@docs-private
+ */
+class RowPlaceholder {
+    /**
+     * @param {?} viewContainer
+     */
+    constructor(viewContainer) {
+        this.viewContainer = viewContainer;
+    }
+}
+RowPlaceholder.decorators = [
+    { type: Directive, args: [{ selector: '[rowPlaceholder]' },] },
+];
+/**
+ * @nocollapse
+ */
+RowPlaceholder.ctorParameters = () => [
+    { type: ViewContainerRef, },
+];
+/**
+ * Provides a handle for the table to grab the view container's ng-container to insert the header.
+ * \@docs-private
+ */
+class HeaderRowPlaceholder {
+    /**
+     * @param {?} viewContainer
+     */
+    constructor(viewContainer) {
+        this.viewContainer = viewContainer;
+    }
+}
+HeaderRowPlaceholder.decorators = [
+    { type: Directive, args: [{ selector: '[headerRowPlaceholder]' },] },
+];
+/**
+ * @nocollapse
+ */
+HeaderRowPlaceholder.ctorParameters = () => [
+    { type: ViewContainerRef, },
+];
+/**
+ * The table template that can be used by the mat-table. Should not be used outside of the
+ * material library.
+ */
+const CDK_TABLE_TEMPLATE = `
+  <ng-container headerRowPlaceholder></ng-container>
+  <ng-container rowPlaceholder></ng-container>`;
+/**
+ * A data table that connects with a data source to retrieve data of type `T` and renders
+ * a header row and data rows. Updates the rows when new data is provided by the data source.
+ */
+class CdkTable {
+    /**
+     * @param {?} _differs
+     * @param {?} _changeDetectorRef
+     * @param {?} elementRef
+     * @param {?} renderer
+     * @param {?} role
+     */
+    constructor(_differs, _changeDetectorRef, elementRef, renderer, role) {
+        this._differs = _differs;
+        this._changeDetectorRef = _changeDetectorRef;
+        /**
+         * Subject that emits when the component has been destroyed.
+         */
+        this._onDestroy = new Subject();
+        /**
+         * Latest data provided by the data source through the connect interface.
+         */
+        this._data = [];
+        /**
+         * Map of all the user's defined columns (header and data cell template) identified by name.
+         */
+        this._columnDefsByName = new Map();
+        /**
+         * Stream containing the latest information on what rows are being displayed on screen.
+         * Can be used by the data source to as a heuristic of what data should be provided.
+         */
+        this.viewChange = new BehaviorSubject({ start: 0, end: Number.MAX_VALUE });
+        if (!role) {
+            renderer.setAttribute(elementRef.nativeElement, 'role', 'grid');
+        }
+    }
+    /**
+     * Tracking function that will be used to check the differences in data changes. Used similarly
+     * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data
+     * relative to the function to know if a row should be added/removed/moved.
+     * Accepts a function that takes two parameters, `index` and `item`.
+     * @param {?} fn
+     * @return {?}
+     */
+    set trackBy(fn) {
+        if (isDevMode() &&
+            fn != null && typeof fn !== 'function' && (console) && (console.warn)) {
+            console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}.`);
+        }
+        this._trackByFn = fn;
+    }
+    /**
+     * @return {?}
+     */
+    get trackBy() { return this._trackByFn; }
+    /**
+     * Provides a stream containing the latest data array to render. Influenced by the table's
+     * stream of view window (what rows are currently on screen).
+     * @return {?}
+     */
+    get dataSource() { return this._dataSource; }
+    /**
+     * @param {?} dataSource
+     * @return {?}
+     */
+    set dataSource(dataSource) {
+        if (this._dataSource !== dataSource) {
+            this._switchDataSource(dataSource);
+        }
+    }
+    /**
+     * @return {?}
+     */
+    ngOnInit() {
+        // TODO(andrewseguin): Setup a listener for scrolling, emit the calculated view to viewChange
+        this._dataDiffer = this._differs.find([]).create(this._trackByFn);
+    }
+    /**
+     * @return {?}
+     */
+    ngAfterContentInit() {
+        this._cacheColumnDefsByName();
+        this._columnDefs.changes.subscribe(() => this._cacheColumnDefsByName());
+        this._renderHeaderRow();
+    }
+    /**
+     * @return {?}
+     */
+    ngAfterContentChecked() {
+        this._renderUpdatedColumns();
+        const /** @type {?} */ defaultRowDefs = this._rowDefs.filter(def => !def.when);
+        if (defaultRowDefs.length > 1) {
+            throw getTableMultipleDefaultRowDefsError();
+        }
+        this._defaultRowDef = defaultRowDefs[0];
+        if (this.dataSource && !this._renderChangeSubscription) {
+            this._observeRenderChanges();
+        }
+    }
+    /**
+     * @return {?}
+     */
+    ngOnDestroy() {
+        this._rowPlaceholder.viewContainer.clear();
+        this._headerRowPlaceholder.viewContainer.clear();
+        this._onDestroy.next();
+        this._onDestroy.complete();
+        if (this.dataSource) {
+            this.dataSource.disconnect(this);
+        }
+    }
+    /**
+     * Update the map containing the content's column definitions.
+     * @return {?}
+     */
+    _cacheColumnDefsByName() {
+        this._columnDefsByName.clear();
+        this._columnDefs.forEach(columnDef => {
+            if (this._columnDefsByName.has(columnDef.name)) {
+                throw getTableDuplicateColumnNameError(columnDef.name);
+            }
+            this._columnDefsByName.set(columnDef.name, columnDef);
+        });
+    }
+    /**
+     * Check if the header or rows have changed what columns they want to display. If there is a diff,
+     * then re-render that section.
+     * @return {?}
+     */
+    _renderUpdatedColumns() {
+        // Re-render the rows when the row definition columns change.
+        this._rowDefs.forEach(def => {
+            if (!!def.getColumnsDiff()) {
+                // Reset the data to an empty array so that renderRowChanges will re-render all new rows.
+                this._dataDiffer.diff([]);
+                this._rowPlaceholder.viewContainer.clear();
+                this._renderRowChanges();
+            }
+        });
+        // Re-render the header row if there is a difference in its columns.
+        if (this._headerDef.getColumnsDiff()) {
+            this._headerRowPlaceholder.viewContainer.clear();
+            this._renderHeaderRow();
+        }
+    }
+    /**
+     * Switch to the provided data source by resetting the data and unsubscribing from the current
+     * render change subscription if one exists. If the data source is null, interpret this by
+     * clearing the row placeholder. Otherwise start listening for new data.
+     * @param {?} dataSource
+     * @return {?}
+     */
+    _switchDataSource(dataSource) {
+        this._data = [];
+        if (this.dataSource) {
+            this.dataSource.disconnect(this);
+        }
+        // Stop listening for data from the previous data source.
+        if (this._renderChangeSubscription) {
+            this._renderChangeSubscription.unsubscribe();
+            this._renderChangeSubscription = null;
+        }
+        // Remove the table's rows if there is now no data source
+        if (!dataSource) {
+            this._rowPlaceholder.viewContainer.clear();
+        }
+        this._dataSource = dataSource;
+    }
+    /**
+     * Set up a subscription for the data provided by the data source.
+     * @return {?}
+     */
+    _observeRenderChanges() {
+        this._renderChangeSubscription = takeUntil.call(this.dataSource.connect(this), this._onDestroy)
+            .subscribe(data => {
+            this._data = data;
+            this._renderRowChanges();
+        });
+    }
+    /**
+     * Create the embedded view for the header template and place it in the header row view container.
+     * @return {?}
+     */
+    _renderHeaderRow() {
+        const /** @type {?} */ cells = this._getHeaderCellTemplatesForRow(this._headerDef);
+        if (!cells.length) {
+            return;
+        }
+        // TODO(andrewseguin): add some code to enforce that exactly
+        //   one CdkCellOutlet was instantiated as a result
+        //   of `createEmbeddedView`.
+        this._headerRowPlaceholder.viewContainer
+            .createEmbeddedView(this._headerDef.template, { cells });
+        cells.forEach(cell => {
+            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, {});
+        });
+        this._changeDetectorRef.markForCheck();
+    }
+    /**
+     * Check for changes made in the data and render each change (row added/removed/moved).
+     * @return {?}
+     */
+    _renderRowChanges() {
+        const /** @type {?} */ changes = this._dataDiffer.diff(this._data);
+        if (!changes) {
+            return;
+        }
+        const /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;
+        changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {
+            if (item.previousIndex == null) {
+                this._insertRow(this._data[currentIndex], currentIndex);
+            }
+            else if (currentIndex == null) {
+                viewContainer.remove(adjustedPreviousIndex);
+            }
+            else {
+                const /** @type {?} */ view = viewContainer.get(adjustedPreviousIndex);
+                viewContainer.move(/** @type {?} */ ((view)), currentIndex);
+            }
+        });
+        this._updateRowContext();
+    }
+    /**
+     * Finds the matching row definition that should be used for this row data. If there is only
+     * one row definition, it is returned. Otherwise, find the row definition that has a when
+     * predicate that returns true with the data. If none return true, return the default row
+     * definition.
+     * @param {?} data
+     * @param {?} i
+     * @return {?}
+     */
+    _getRowDef(data, i) {
+        if (this._rowDefs.length == 1) {
+            return this._rowDefs.first;
+        }
+        let /** @type {?} */ rowDef = this._rowDefs.find(def => def.when && def.when(data, i)) || this._defaultRowDef;
+        if (!rowDef) {
+            throw getTableMissingMatchingRowDefError();
+        }
+        return rowDef;
+    }
+    /**
+     * Create the embedded view for the data row template and place it in the correct index location
+     * within the data row view container.
+     * @param {?} rowData
+     * @param {?} index
+     * @return {?}
+     */
+    _insertRow(rowData, index) {
+        const /** @type {?} */ row = this._getRowDef(rowData, index);
+        // Row context that will be provided to both the created embedded row view and its cells.
+        const /** @type {?} */ context = { $implicit: rowData };
+        // TODO(andrewseguin): add some code to enforce that exactly one
+        //   CdkCellOutlet was instantiated as a result  of `createEmbeddedView`.
+        this._rowPlaceholder.viewContainer.createEmbeddedView(row.template, context, index);
+        // Insert empty cells if there is no data to improve rendering time.
+        const /** @type {?} */ cells = rowData ? this._getCellTemplatesForRow(row) : [];
+        cells.forEach(cell => {
+            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, context);
+        });
+        this._changeDetectorRef.markForCheck();
+    }
+    /**
+     * Updates the context for each row to reflect any data changes that may have caused
+     * rows to be added, removed, or moved. The view container contains the same context
+     * that was provided to each of its cells.
+     * @return {?}
+     */
+    _updateRowContext() {
+        const /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;
+        for (let /** @type {?} */ index = 0, /** @type {?} */ count = viewContainer.length; index < count; index++) {
+            const /** @type {?} */ viewRef = (viewContainer.get(index));
+            viewRef.context.index = index;
+            viewRef.context.count = count;
+            viewRef.context.first = index === 0;
+            viewRef.context.last = index === count - 1;
+            viewRef.context.even = index % 2 === 0;
+            viewRef.context.odd = !viewRef.context.even;
+        }
+    }
+    /**
+     * Returns the cell template definitions to insert into the header
+     * as defined by its list of columns to display.
+     * @param {?} headerDef
+     * @return {?}
+     */
+    _getHeaderCellTemplatesForRow(headerDef) {
+        if (!headerDef.columns) {
+            return [];
+        }
+        return headerDef.columns.map(columnId => {
+            const /** @type {?} */ column = this._columnDefsByName.get(columnId);
+            if (!column) {
+                throw getTableUnknownColumnError(columnId);
+            }
+            return column.headerCell;
+        });
+    }
+    /**
+     * Returns the cell template definitions to insert in the provided row
+     * as defined by its list of columns to display.
+     * @param {?} rowDef
+     * @return {?}
+     */
+    _getCellTemplatesForRow(rowDef) {
+        if (!rowDef.columns) {
+            return [];
+        }
+        return rowDef.columns.map(columnId => {
+            const /** @type {?} */ column = this._columnDefsByName.get(columnId);
+            if (!column) {
+                throw getTableUnknownColumnError(columnId);
+            }
+            return column.cell;
+        });
+    }
+}
+CdkTable.decorators = [
+    { type: Component, args: [{selector: 'cdk-table',
+                exportAs: 'cdkTable',
+                template: CDK_TABLE_TEMPLATE,
+                host: {
+                    'class': 'cdk-table',
+                },
+                encapsulation: ViewEncapsulation.None,
+                preserveWhitespaces: false,
+                changeDetection: ChangeDetectionStrategy.OnPush,
+            },] },
+];
+/**
+ * @nocollapse
+ */
+CdkTable.ctorParameters = () => [
+    { type: IterableDiffers, },
+    { type: ChangeDetectorRef, },
+    { type: ElementRef, },
+    { type: Renderer2, },
+    { type: undefined, decorators: [{ type: Attribute, args: ['role',] },] },
+];
+CdkTable.propDecorators = {
+    'trackBy': [{ type: Input },],
+    'dataSource': [{ type: Input },],
+    '_rowPlaceholder': [{ type: ViewChild, args: [RowPlaceholder,] },],
+    '_headerRowPlaceholder': [{ type: ViewChild, args: [HeaderRowPlaceholder,] },],
+    '_columnDefs': [{ type: ContentChildren, args: [CdkColumnDef,] },],
+    '_headerDef': [{ type: ContentChild, args: [CdkHeaderRowDef,] },],
+    '_rowDefs': [{ type: ContentChildren, args: [CdkRowDef,] },],
+};
+
+const EXPORTED_DECLARATIONS = [
+    CdkTable,
+    CdkRowDef,
+    CdkCellDef,
+    CdkCellOutlet,
+    CdkHeaderCellDef,
+    CdkColumnDef,
+    CdkCell,
+    CdkRow,
+    CdkHeaderCell,
+    CdkHeaderRow,
+    CdkHeaderRowDef,
+    RowPlaceholder,
+    HeaderRowPlaceholder,
+];
+class CdkTableModule {
+}
+CdkTableModule.decorators = [
+    { type: NgModule, args: [{
+                imports: [CommonModule],
+                exports: [EXPORTED_DECLARATIONS],
+                declarations: [EXPORTED_DECLARATIONS]
+            },] },
+];
+/**
+ * @nocollapse
+ */
+CdkTableModule.ctorParameters = () => [];
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { DataSource, RowPlaceholder, HeaderRowPlaceholder, CDK_TABLE_TEMPLATE, CdkTable, CdkCellDef, CdkHeaderCellDef, CdkColumnDef, CdkHeaderCell, CdkCell, CDK_ROW_TEMPLATE, BaseRowDef, CdkHeaderRowDef, CdkRowDef, CdkCellOutlet, CdkHeaderRow, CdkRow, CdkTableModule };
+//# sourceMappingURL=table.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/table.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/table.js.map b/node_modules/@angular/cdk/esm2015/table.js.map
new file mode 100644
index 0000000..1fc542c
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/table.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"table.js","sources":["../../packages/cdk/table/row.js","../../packages/cdk/table/cell.js","../../packages/cdk/table/table-errors.js","../../packages/cdk/table/table.js","../../packages/cdk/table/table-module.js","../../packages/cdk/table/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 { ChangeDetectionStrategy, Component, Directive, IterableDiffers, TemplateRef, ViewContainerRef, ViewEncapsulation, } from '@angular/core';\n/**\n * The row template that can be used by the mat-table. Should not be used outside of the\n * material library.\n */\nexport const CDK_ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;\n/**\n * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs\n * for changes and notifying the table.\n * @ab
 stract\n */\nexport class BaseRowDef {\n    /**\n     * @param {?} template\n     * @param {?} _differs\n     */\n    constructor(template, _differs) {\n        this.template = template;\n        this._differs = _differs;\n    }\n    /**\n     * @param {?} changes\n     * @return {?}\n     */\n    ngOnChanges(changes) {\n        // Create a new columns differ if one does not yet exist. Initialize it based on initial value\n        // of the columns property or an empty array if none is provided.\n        const /** @type {?} */ columns = changes['columns'].currentValue || [];\n        if (!this._columnsDiffer) {\n            this._columnsDiffer = this._differs.find(columns).create();\n            this._columnsDiffer.diff(columns);\n        }\n    }\n    /**\n     * Returns the difference between the current columns and the columns from the last diff, or null\n     * if there is no difference.\n     * @return {?}\n     */\n    getColumnsDiff() {\n        return this._columnsDiffer.dif
 f(this.columns);\n    }\n}\nfunction BaseRowDef_tsickle_Closure_declarations() {\n    /**\n     * The columns to be displayed on this row.\n     * @type {?}\n     */\n    BaseRowDef.prototype.columns;\n    /**\n     * Differ used to check if any changes were made to the columns.\n     * @type {?}\n     */\n    BaseRowDef.prototype._columnsDiffer;\n    /** @type {?} */\n    BaseRowDef.prototype.template;\n    /** @type {?} */\n    BaseRowDef.prototype._differs;\n}\n/**\n * Header row definition for the CDK table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nexport class CdkHeaderRowDef extends BaseRowDef {\n    /**\n     * @param {?} template\n     * @param {?} _differs\n     */\n    constructor(template, _differs) {\n        super(template, _differs);\n    }\n}\nCdkHeaderRowDef.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdkHeaderRowDef]',\n                inputs: ['columns: cdkHeaderRowDef'
 ],\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkHeaderRowDef.ctorParameters = () => [\n    { type: TemplateRef, },\n    { type: IterableDiffers, },\n];\nfunction CdkHeaderRowDef_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkHeaderRowDef.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkHeaderRowDef.ctorParameters;\n}\n/**\n * Data row definition for the CDK table.\n * Captures the header row's template and other row properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\nexport class CdkRowDef extends BaseRowDef {\n    /**\n     * @param {?} template\n     * @param {?} _differs\n     */\n    constructor(template, _differs) {\n        super(template, _differs);\n    }\n}\nCdkRowDef.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdkRowDef]',\n                inputs: ['columns: cdkRowDefColumns', 'when: cdkRowDefWhen'],\n            },] },\n];\
 n/**\n * @nocollapse\n */\nCdkRowDef.ctorParameters = () => [\n    { type: TemplateRef, },\n    { type: IterableDiffers, },\n];\nfunction CdkRowDef_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkRowDef.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkRowDef.ctorParameters;\n    /**\n     * Function that should return true if this row template should be used for the provided row data\n     * and index. If left undefined, this row will be considered the default row template to use when\n     * no other when functions return true for the data.\n     * For every row, there must be at least one when function that passes or an undefined to default.\n     * @type {?}\n     */\n    CdkRowDef.prototype.when;\n}\n/**\n * Outlet for rendering cells inside of a row or header row.\n * \\@docs-private\n */\nexport class CdkCellOutlet {\n    /**\n     * @param {?} _viewContainer\n     */\n    constructor(_viewContainer) {\n        this._viewContainer = _v
 iewContainer;\n        CdkCellOutlet.mostRecentCellOutlet = this;\n    }\n}\nCdkCellOutlet.decorators = [\n    { type: Directive, args: [{ selector: '[cdkCellOutlet]' },] },\n];\n/**\n * @nocollapse\n */\nCdkCellOutlet.ctorParameters = () => [\n    { type: ViewContainerRef, },\n];\nfunction CdkCellOutlet_tsickle_Closure_declarations() {\n    /**\n     * Static property containing the latest constructed instance of this class.\n     * Used by the CDK table when each CdkHeaderRow and CdkRow component is created using\n     * createEmbeddedView. After one of these components are created, this property will provide\n     * a handle to provide that component's cells and context. After init, the CdkCellOutlet will\n     * construct the cells with the provided context.\n     * @type {?}\n     */\n    CdkCellOutlet.mostRecentCellOutlet;\n    /** @type {?} */\n    CdkCellOutlet.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkCellOutlet.ctorParameters;\n    /**\n  
    * The ordered list of cells to render within this outlet's view container\n     * @type {?}\n     */\n    CdkCellOutlet.prototype.cells;\n    /**\n     * The data context to be provided to each cell\n     * @type {?}\n     */\n    CdkCellOutlet.prototype.context;\n    /** @type {?} */\n    CdkCellOutlet.prototype._viewContainer;\n}\n/**\n * Header template container that contains the cell outlet. Adds the right class and role.\n */\nexport class CdkHeaderRow {\n}\nCdkHeaderRow.decorators = [\n    { type: Component, args: [{selector: 'cdk-header-row',\n                template: CDK_ROW_TEMPLATE,\n                host: {\n                    'class': 'cdk-header-row',\n                    'role': 'row',\n                },\n                changeDetection: ChangeDetectionStrategy.OnPush,\n                encapsulation: ViewEncapsulation.None,\n                preserveWhitespaces: false,\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkHeaderRow.ctorParameters = () => [];\nfunc
 tion CdkHeaderRow_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkHeaderRow.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkHeaderRow.ctorParameters;\n}\n/**\n * Data row template container that contains the cell outlet. Adds the right class and role.\n */\nexport class CdkRow {\n}\nCdkRow.decorators = [\n    { type: Component, args: [{selector: 'cdk-row',\n                template: CDK_ROW_TEMPLATE,\n                host: {\n                    'class': 'cdk-row',\n                    'role': 'row',\n                },\n                changeDetection: ChangeDetectionStrategy.OnPush,\n                encapsulation: ViewEncapsulation.None,\n                preserveWhitespaces: false,\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkRow.ctorParameters = () => [];\nfunction CdkRow_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkRow.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkRow.ctorParamete
 rs;\n}\n//# sourceMappingURL=row.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 { ContentChild, Directive, ElementRef, Input, Renderer2, TemplateRef } from '@angular/core';\n/**\n * Cell definition for a CDK table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nexport class CdkCellDef {\n    /**\n     * @param {?} template\n     */\n    constructor(template) {\n        this.template = template;\n    }\n}\nCdkCellDef.decorators = [\n    { type: Directive, args: [{ selector: '[cdkCellDef]' },] },\n];\n/**\n * @nocollapse\n */\nCdkCellDef.ctorParameters = () => [\n    { type: TemplateRef, },\n];\nfunction CdkCellDef_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkCellDef.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    Cdk
 CellDef.ctorParameters;\n    /** @type {?} */\n    CdkCellDef.prototype.template;\n}\n/**\n * Header cell definition for a CDK table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nexport class CdkHeaderCellDef {\n    /**\n     * @param {?} template\n     */\n    constructor(template) {\n        this.template = template;\n    }\n}\nCdkHeaderCellDef.decorators = [\n    { type: Directive, args: [{ selector: '[cdkHeaderCellDef]' },] },\n];\n/**\n * @nocollapse\n */\nCdkHeaderCellDef.ctorParameters = () => [\n    { type: TemplateRef, },\n];\nfunction CdkHeaderCellDef_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkHeaderCellDef.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkHeaderCellDef.ctorParameters;\n    /** @type {?} */\n    CdkHeaderCellDef.prototype.template;\n}\n/**\n * Column definition for the CDK table.\n * Defines a set of cells available for a table column.\n */\nexport class Cdk
 ColumnDef {\n    /**\n     * Unique name for this column.\n     * @return {?}\n     */\n    get name() { return this._name; }\n    /**\n     * @param {?} name\n     * @return {?}\n     */\n    set name(name) {\n        this._name = name;\n        this.cssClassFriendlyName = name.replace(/[^a-z0-9_-]/ig, '-');\n    }\n}\nCdkColumnDef.decorators = [\n    { type: Directive, args: [{ selector: '[cdkColumnDef]' },] },\n];\n/**\n * @nocollapse\n */\nCdkColumnDef.ctorParameters = () => [];\nCdkColumnDef.propDecorators = {\n    'name': [{ type: Input, args: ['cdkColumnDef',] },],\n    'cell': [{ type: ContentChild, args: [CdkCellDef,] },],\n    'headerCell': [{ type: ContentChild, args: [CdkHeaderCellDef,] },],\n};\nfunction CdkColumnDef_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkColumnDef.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkColumnDef.ctorParameters;\n    /** @type {?} */\n    CdkColumnDef.propDecorators;\n    /** @type {?} */\n   
  CdkColumnDef.prototype._name;\n    /**\n     * \\@docs-private\n     * @type {?}\n     */\n    CdkColumnDef.prototype.cell;\n    /**\n     * \\@docs-private\n     * @type {?}\n     */\n    CdkColumnDef.prototype.headerCell;\n    /**\n     * Transformed version of the column name that can be used as part of a CSS classname. Excludes\n     * all non-alphanumeric characters and the special characters '-' and '_'. Any characters that\n     * do not match are replaced by the '-' character.\n     * @type {?}\n     */\n    CdkColumnDef.prototype.cssClassFriendlyName;\n}\n/**\n * Header cell template container that adds the right classes and role.\n */\nexport class CdkHeaderCell {\n    /**\n     * @param {?} columnDef\n     * @param {?} elementRef\n     * @param {?} renderer\n     */\n    constructor(columnDef, elementRef, renderer) {\n        renderer.addClass(elementRef.nativeElement, `cdk-column-${columnDef.cssClassFriendlyName}`);\n    }\n}\nCdkHeaderCell.decorators = [\n    { type: D
 irective, args: [{\n                selector: 'cdk-header-cell',\n                host: {\n                    'class': 'cdk-header-cell',\n                    'role': 'columnheader',\n                },\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkHeaderCell.ctorParameters = () => [\n    { type: CdkColumnDef, },\n    { type: ElementRef, },\n    { type: Renderer2, },\n];\nfunction CdkHeaderCell_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkHeaderCell.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkHeaderCell.ctorParameters;\n}\n/**\n * Cell template container that adds the right classes and role.\n */\nexport class CdkCell {\n    /**\n     * @param {?} columnDef\n     * @param {?} elementRef\n     * @param {?} renderer\n     */\n    constructor(columnDef, elementRef, renderer) {\n        renderer.addClass(elementRef.nativeElement, `cdk-column-${columnDef.cssClassFriendlyName}`);\n    }\n}\nCdkCell.decorators = [\n    { type: Dire
 ctive, args: [{\n                selector: 'cdk-cell',\n                host: {\n                    'class': 'cdk-cell',\n                    'role': 'gridcell',\n                },\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkCell.ctorParameters = () => [\n    { type: CdkColumnDef, },\n    { type: ElementRef, },\n    { type: Renderer2, },\n];\nfunction CdkCell_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkCell.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkCell.ctorParameters;\n}\n//# sourceMappingURL=cell.js.map","/**\n * Returns an error to be thrown when attempting to find an unexisting column.\n * \\@docs-private\n * @param {?} id Id whose lookup failed.\n * @return {?}\n */\nexport function getTableUnknownColumnError(id) {\n    return Error(`cdk-table: Could not find column with id \"${id}\".`);\n}\n/**\n * Returns an error to be thrown when two column definitions have the same name.\n * \\@docs-private\n * @param {?} nam
 e\n * @return {?}\n */\nexport function getTableDuplicateColumnNameError(name) {\n    return Error(`cdk-table: Duplicate column definition name provided: \"${name}\".`);\n}\n/**\n * Returns an error to be thrown when there are multiple rows that are missing a when function.\n * \\@docs-private\n * @return {?}\n */\nexport function getTableMultipleDefaultRowDefsError() {\n    return Error(`cdk-table: There can only be one default row without a when predicate function.`);\n}\n/**\n * Returns an error to be thrown when there are no matching row defs for a particular set of data.\n * \\@docs-private\n * @return {?}\n */\nexport function getTableMissingMatchingRowDefError() {\n    return Error(`cdk-table: Could not find a matching row definition for the provided row data.`);\n}\n//# sourceMappingURL=table-errors.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 { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, ElementRef, Input, isDevMode, IterableDiffers, Renderer2, ViewChild, ViewContainerRef, ViewEncapsulation, } from '@angular/core';\nimport { CdkCellOutlet, CdkHeaderRowDef, CdkRowDef } from './row';\nimport { takeUntil } from 'rxjs/operator/takeUntil';\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\nimport { Subject } from 'rxjs/Subject';\nimport { CdkColumnDef } from './cell';\nimport { getTableDuplicateColumnNameError, getTableMissingMatchingRowDefError, getTableMultipleDefaultRowDefsError, getTableUnknownColumnError } from './table-errors';\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * \\@docs-private\n */\nexport class RowPlaceholder {\n    /**\n     * @param {?} viewContainer\n     */\n    constructor(viewContainer) {\n        this.viewContainer = viewC
 ontainer;\n    }\n}\nRowPlaceholder.decorators = [\n    { type: Directive, args: [{ selector: '[rowPlaceholder]' },] },\n];\n/**\n * @nocollapse\n */\nRowPlaceholder.ctorParameters = () => [\n    { type: ViewContainerRef, },\n];\nfunction RowPlaceholder_tsickle_Closure_declarations() {\n    /** @type {?} */\n    RowPlaceholder.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    RowPlaceholder.ctorParameters;\n    /** @type {?} */\n    RowPlaceholder.prototype.viewContainer;\n}\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the header.\n * \\@docs-private\n */\nexport class HeaderRowPlaceholder {\n    /**\n     * @param {?} viewContainer\n     */\n    constructor(viewContainer) {\n        this.viewContainer = viewContainer;\n    }\n}\nHeaderRowPlaceholder.decorators = [\n    { type: Directive, args: [{ selector: '[headerRowPlaceholder]' },] },\n];\n/**\n * @nocollapse\n */\nHeaderRowPlaceholder.ctorParameters = () => 
 [\n    { type: ViewContainerRef, },\n];\nfunction HeaderRowPlaceholder_tsickle_Closure_declarations() {\n    /** @type {?} */\n    HeaderRowPlaceholder.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    HeaderRowPlaceholder.ctorParameters;\n    /** @type {?} */\n    HeaderRowPlaceholder.prototype.viewContainer;\n}\n/**\n * The table template that can be used by the mat-table. Should not be used outside of the\n * material library.\n */\nexport const CDK_TABLE_TEMPLATE = `\n  <ng-container headerRowPlaceholder></ng-container>\n  <ng-container rowPlaceholder></ng-container>`;\n/**\n * A data table that connects with a data source to retrieve data of type `T` and renders\n * a header row and data rows. Updates the rows when new data is provided by the data source.\n */\nexport class CdkTable {\n    /**\n     * @param {?} _differs\n     * @param {?} _changeDetectorRef\n     * @param {?} elementRef\n     * @param {?} renderer\n     * @param {?} role\n     */\n    co
 nstructor(_differs, _changeDetectorRef, elementRef, renderer, role) {\n        this._differs = _differs;\n        this._changeDetectorRef = _changeDetectorRef;\n        /**\n         * Subject that emits when the component has been destroyed.\n         */\n        this._onDestroy = new Subject();\n        /**\n         * Latest data provided by the data source through the connect interface.\n         */\n        this._data = [];\n        /**\n         * Map of all the user's defined columns (header and data cell template) identified by name.\n         */\n        this._columnDefsByName = new Map();\n        /**\n         * Stream containing the latest information on what rows are being displayed on screen.\n         * Can be used by the data source to as a heuristic of what data should be provided.\n         */\n        this.viewChange = new BehaviorSubject({ start: 0, end: Number.MAX_VALUE });\n        if (!role) {\n            renderer.setAttribute(elementRef.nativeElement, 'role'
 , 'grid');\n        }\n    }\n    /**\n     * Tracking function that will be used to check the differences in data changes. Used similarly\n     * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data\n     * relative to the function to know if a row should be added/removed/moved.\n     * Accepts a function that takes two parameters, `index` and `item`.\n     * @param {?} fn\n     * @return {?}\n     */\n    set trackBy(fn) {\n        if (isDevMode() &&\n            fn != null && typeof fn !== 'function' && (console) && (console.warn)) {\n            console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}.`);\n        }\n        this._trackByFn = fn;\n    }\n    /**\n     * @return {?}\n     */\n    get trackBy() { return this._trackByFn; }\n    /**\n     * Provides a stream containing the latest data array to render. Influenced by the table's\n     * stream of view window (what rows are currently on screen).\n     * @retu
 rn {?}\n     */\n    get dataSource() { return this._dataSource; }\n    /**\n     * @param {?} dataSource\n     * @return {?}\n     */\n    set dataSource(dataSource) {\n        if (this._dataSource !== dataSource) {\n            this._switchDataSource(dataSource);\n        }\n    }\n    /**\n     * @return {?}\n     */\n    ngOnInit() {\n        // TODO(andrewseguin): Setup a listener for scrolling, emit the calculated view to viewChange\n        this._dataDiffer = this._differs.find([]).create(this._trackByFn);\n    }\n    /**\n     * @return {?}\n     */\n    ngAfterContentInit() {\n        this._cacheColumnDefsByName();\n        this._columnDefs.changes.subscribe(() => this._cacheColumnDefsByName());\n        this._renderHeaderRow();\n    }\n    /**\n     * @return {?}\n     */\n    ngAfterContentChecked() {\n        this._renderUpdatedColumns();\n        const /** @type {?} */ defaultRowDefs = this._rowDefs.filter(def => !def.when);\n        if (defaultRowDefs.length > 1) {\n  
           throw getTableMultipleDefaultRowDefsError();\n        }\n        this._defaultRowDef = defaultRowDefs[0];\n        if (this.dataSource && !this._renderChangeSubscription) {\n            this._observeRenderChanges();\n        }\n    }\n    /**\n     * @return {?}\n     */\n    ngOnDestroy() {\n        this._rowPlaceholder.viewContainer.clear();\n        this._headerRowPlaceholder.viewContainer.clear();\n        this._onDestroy.next();\n        this._onDestroy.complete();\n        if (this.dataSource) {\n            this.dataSource.disconnect(this);\n        }\n    }\n    /**\n     * Update the map containing the content's column definitions.\n     * @return {?}\n     */\n    _cacheColumnDefsByName() {\n        this._columnDefsByName.clear();\n        this._columnDefs.forEach(columnDef => {\n            if (this._columnDefsByName.has(columnDef.name)) {\n                throw getTableDuplicateColumnNameError(columnDef.name);\n            }\n            this._columnDefsByName.
 set(columnDef.name, columnDef);\n        });\n    }\n    /**\n     * Check if the header or rows have changed what columns they want to display. If there is a diff,\n     * then re-render that section.\n     * @return {?}\n     */\n    _renderUpdatedColumns() {\n        // Re-render the rows when the row definition columns change.\n        this._rowDefs.forEach(def => {\n            if (!!def.getColumnsDiff()) {\n                // Reset the data to an empty array so that renderRowChanges will re-render all new rows.\n                this._dataDiffer.diff([]);\n                this._rowPlaceholder.viewContainer.clear();\n                this._renderRowChanges();\n            }\n        });\n        // Re-render the header row if there is a difference in its columns.\n        if (this._headerDef.getColumnsDiff()) {\n            this._headerRowPlaceholder.viewContainer.clear();\n            this._renderHeaderRow();\n        }\n    }\n    /**\n     * Switch to the provided data source 
 by resetting the data and unsubscribing from the current\n     * render change subscription if one exists. If the data source is null, interpret this by\n     * clearing the row placeholder. Otherwise start listening for new data.\n     * @param {?} dataSource\n     * @return {?}\n     */\n    _switchDataSource(dataSource) {\n        this._data = [];\n        if (this.dataSource) {\n            this.dataSource.disconnect(this);\n        }\n        // Stop listening for data from the previous data source.\n        if (this._renderChangeSubscription) {\n            this._renderChangeSubscription.unsubscribe();\n            this._renderChangeSubscription = null;\n        }\n        // Remove the table's rows if there is now no data source\n        if (!dataSource) {\n            this._rowPlaceholder.viewContainer.clear();\n        }\n        this._dataSource = dataSource;\n    }\n    /**\n     * Set up a subscription for the data provided by the data source.\n     * @return {?}\n     *
 /\n    _observeRenderChanges() {\n        this._renderChangeSubscription = takeUntil.call(this.dataSource.connect(this), this._onDestroy)\n            .subscribe(data => {\n            this._data = data;\n            this._renderRowChanges();\n        });\n    }\n    /**\n     * Create the embedded view for the header template and place it in the header row view container.\n     * @return {?}\n     */\n    _renderHeaderRow() {\n        const /** @type {?} */ cells = this._getHeaderCellTemplatesForRow(this._headerDef);\n        if (!cells.length) {\n            return;\n        }\n        // TODO(andrewseguin): add some code to enforce that exactly\n        //   one CdkCellOutlet was instantiated as a result\n        //   of `createEmbeddedView`.\n        this._headerRowPlaceholder.viewContainer\n            .createEmbeddedView(this._headerDef.template, { cells });\n        cells.forEach(cell => {\n            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.
 template, {});\n        });\n        this._changeDetectorRef.markForCheck();\n    }\n    /**\n     * Check for changes made in the data and render each change (row added/removed/moved).\n     * @return {?}\n     */\n    _renderRowChanges() {\n        const /** @type {?} */ changes = this._dataDiffer.diff(this._data);\n        if (!changes) {\n            return;\n        }\n        const /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;\n        changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n            if (item.previousIndex == null) {\n                this._insertRow(this._data[currentIndex], currentIndex);\n            }\n            else if (currentIndex == null) {\n                viewContainer.remove(adjustedPreviousIndex);\n            }\n            else {\n                const /** @type {?} */ view = viewContainer.get(adjustedPreviousIndex);\n                viewContainer.move(/** @type {?} */ ((view)), currentIndex);\n       
      }\n        });\n        this._updateRowContext();\n    }\n    /**\n     * Finds the matching row definition that should be used for this row data. If there is only\n     * one row definition, it is returned. Otherwise, find the row definition that has a when\n     * predicate that returns true with the data. If none return true, return the default row\n     * definition.\n     * @param {?} data\n     * @param {?} i\n     * @return {?}\n     */\n    _getRowDef(data, i) {\n        if (this._rowDefs.length == 1) {\n            return this._rowDefs.first;\n        }\n        let /** @type {?} */ rowDef = this._rowDefs.find(def => def.when && def.when(data, i)) || this._defaultRowDef;\n        if (!rowDef) {\n            throw getTableMissingMatchingRowDefError();\n        }\n        return rowDef;\n    }\n    /**\n     * Create the embedded view for the data row template and place it in the correct index location\n     * within the data row view container.\n     * @param {?} rowDat
 a\n     * @param {?} index\n     * @return {?}\n     */\n    _insertRow(rowData, index) {\n        const /** @type {?} */ row = this._getRowDef(rowData, index);\n        // Row context that will be provided to both the created embedded row view and its cells.\n        const /** @type {?} */ context = { $implicit: rowData };\n        // TODO(andrewseguin): add some code to enforce that exactly one\n        //   CdkCellOutlet was instantiated as a result  of `createEmbeddedView`.\n        this._rowPlaceholder.viewContainer.createEmbeddedView(row.template, context, index);\n        // Insert empty cells if there is no data to improve rendering time.\n        const /** @type {?} */ cells = rowData ? this._getCellTemplatesForRow(row) : [];\n        cells.forEach(cell => {\n            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, context);\n        });\n        this._changeDetectorRef.markForCheck();\n    }\n    /**\n     * Updates the context for ea
 ch row to reflect any data changes that may have caused\n     * rows to be added, removed, or moved. The view container contains the same context\n     * that was provided to each of its cells.\n     * @return {?}\n     */\n    _updateRowContext() {\n        const /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;\n        for (let /** @type {?} */ index = 0, /** @type {?} */ count = viewContainer.length; index < count; index++) {\n            const /** @type {?} */ viewRef = (viewContainer.get(index));\n            viewRef.context.index = index;\n            viewRef.context.count = count;\n            viewRef.context.first = index === 0;\n            viewRef.context.last = index === count - 1;\n            viewRef.context.even = index % 2 === 0;\n            viewRef.context.odd = !viewRef.context.even;\n        }\n    }\n    /**\n     * Returns the cell template definitions to insert into the header\n     * as defined by its list of columns to display.\n     * @pa
 ram {?} headerDef\n     * @return {?}\n     */\n    _getHeaderCellTemplatesForRow(headerDef) {\n        if (!headerDef.columns) {\n            return [];\n        }\n        return headerDef.columns.map(columnId => {\n            const /** @type {?} */ column = this._columnDefsByName.get(columnId);\n            if (!column) {\n                throw getTableUnknownColumnError(columnId);\n            }\n            return column.headerCell;\n        });\n    }\n    /**\n     * Returns the cell template definitions to insert in the provided row\n     * as defined by its list of columns to display.\n     * @param {?} rowDef\n     * @return {?}\n     */\n    _getCellTemplatesForRow(rowDef) {\n        if (!rowDef.columns) {\n            return [];\n        }\n        return rowDef.columns.map(columnId => {\n            const /** @type {?} */ column = this._columnDefsByName.get(columnId);\n            if (!column) {\n                throw getTableUnknownColumnError(columnId);\n            
 }\n            return column.cell;\n        });\n    }\n}\nCdkTable.decorators = [\n    { type: Component, args: [{selector: 'cdk-table',\n                exportAs: 'cdkTable',\n                template: CDK_TABLE_TEMPLATE,\n                host: {\n                    'class': 'cdk-table',\n                },\n                encapsulation: ViewEncapsulation.None,\n                preserveWhitespaces: false,\n                changeDetection: ChangeDetectionStrategy.OnPush,\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkTable.ctorParameters = () => [\n    { type: IterableDiffers, },\n    { type: ChangeDetectorRef, },\n    { type: ElementRef, },\n    { type: Renderer2, },\n    { type: undefined, decorators: [{ type: Attribute, args: ['role',] },] },\n];\nCdkTable.propDecorators = {\n    'trackBy': [{ type: Input },],\n    'dataSource': [{ type: Input },],\n    '_rowPlaceholder': [{ type: ViewChild, args: [RowPlaceholder,] },],\n    '_headerRowPlaceholder': [{ type: ViewChild, 
 args: [HeaderRowPlaceholder,] },],\n    '_columnDefs': [{ type: ContentChildren, args: [CdkColumnDef,] },],\n    '_headerDef': [{ type: ContentChild, args: [CdkHeaderRowDef,] },],\n    '_rowDefs': [{ type: ContentChildren, args: [CdkRowDef,] },],\n};\nfunction CdkTable_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkTable.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkTable.ctorParameters;\n    /** @type {?} */\n    CdkTable.propDecorators;\n    /**\n     * Subject that emits when the component has been destroyed.\n     * @type {?}\n     */\n    CdkTable.prototype._onDestroy;\n    /**\n     * Latest data provided by the data source through the connect interface.\n     * @type {?}\n     */\n    CdkTable.prototype._data;\n    /**\n     * Subscription that listens for the data provided by the data source.\n     * @type {?}\n     */\n    CdkTable.prototype._renderChangeSubscription;\n    /**\n     * Map of all the user's defined columns (heade
 r and data cell template) identified by name.\n     * @type {?}\n     */\n    CdkTable.prototype._columnDefsByName;\n    /**\n     * Differ used to find the changes in the data provided by the data source.\n     * @type {?}\n     */\n    CdkTable.prototype._dataDiffer;\n    /**\n     * Stores the row definition that does not have a when predicate.\n     * @type {?}\n     */\n    CdkTable.prototype._defaultRowDef;\n    /** @type {?} */\n    CdkTable.prototype._trackByFn;\n    /** @type {?} */\n    CdkTable.prototype._dataSource;\n    /**\n     * Stream containing the latest information on what rows are being displayed on screen.\n     * Can be used by the data source to as a heuristic of what data should be provided.\n     * @type {?}\n     */\n    CdkTable.prototype.viewChange;\n    /** @type {?} */\n    CdkTable.prototype._rowPlaceholder;\n    /** @type {?} */\n    CdkTable.prototype._headerRowPlaceholder;\n    /**\n     * The column definitions provided by the user that contain wh
 at the header and cells should\n     * render for each column.\n     * @type {?}\n     */\n    CdkTable.prototype._columnDefs;\n    /**\n     * Template definition used as the header container.\n     * @type {?}\n     */\n    CdkTable.prototype._headerDef;\n    /**\n     * Set of template definitions that used as the data row containers.\n     * @type {?}\n     */\n    CdkTable.prototype._rowDefs;\n    /** @type {?} */\n    CdkTable.prototype._differs;\n    /** @type {?} */\n    CdkTable.prototype._changeDetectorRef;\n}\n//# sourceMappingURL=table.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 { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { HeaderRowPlaceholder, RowPlaceholder, CdkTable } from './table';\nimport { CdkCellOutlet, CdkHeaderRow, CdkHeaderRowDef, Cd
 kRow, CdkRowDef } from './row';\nimport { CdkColumnDef, CdkHeaderCellDef, CdkHeaderCell, CdkCell, CdkCellDef } from './cell';\nconst /** @type {?} */ EXPORTED_DECLARATIONS = [\n    CdkTable,\n    CdkRowDef,\n    CdkCellDef,\n    CdkCellOutlet,\n    CdkHeaderCellDef,\n    CdkColumnDef,\n    CdkCell,\n    CdkRow,\n    CdkHeaderCell,\n    CdkHeaderRow,\n    CdkHeaderRowDef,\n    RowPlaceholder,\n    HeaderRowPlaceholder,\n];\nexport class CdkTableModule {\n}\nCdkTableModule.decorators = [\n    { type: NgModule, args: [{\n                imports: [CommonModule],\n                exports: [EXPORTED_DECLARATIONS],\n                declarations: [EXPORTED_DECLARATIONS]\n            },] },\n];\n/**\n * @nocollapse\n */\nCdkTableModule.ctorParameters = () => [];\nfunction CdkTableModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CdkTableModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    CdkTableModule.ctorParameters;\n}\n//# sourceMappingURL=tabl
 e-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { DataSource, RowPlaceholder, HeaderRowPlaceholder, CDK_TABLE_TEMPLATE, CdkTable, CdkCellDef, CdkHeaderCellDef, CdkColumnDef, CdkHeaderCell, CdkCell, CDK_ROW_TEMPLATE, BaseRowDef, CdkHeaderRowDef, CdkRowDef, CdkCellOutlet, CdkHeaderRow, CdkRow, CdkTableModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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"}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/.github/PULL_REQUEST_TEMPLATE.md
----------------------------------------------------------------------
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index 25f2d97..0000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,28 +0,0 @@
-Thank you for submitting a contribution to Apache NiFi Fluid Design System.
-
-In order to streamline the review of the contribution we ask you
-to ensure the following steps have been taken:
-
-### For all changes:
-- [ ] Is there a JIRA ticket associated with this PR? Is it referenced
-     in the commit message?
-
-- [ ] Does your PR title start with either NIFI-XXXX or NIFIREG-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
-
-- [ ] Has your PR been rebased against the latest commit within the target branch (typically master)?
-
-- [ ] Is your initial contribution a single, squashed commit?
-
-### For code changes:
-- [ ] Have you written or updated unit tests to verify your changes?
-- [ ] Have you ensured that a full build and that the full suite of unit tests is executed via npm run clean:install at the root nifi-fds folder?
-- [ ] Have you written or updated the Apache NiFi Fluid Design System demo application to demonstrate any new functionality, provide examples of usage, and to verify your changes via npm start at the nifi-fds/target folder?
-- [ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under [ASF 2.0](http://www.apache.org/legal/resolved.html#category-a)?
-- [ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-fds?
-- [ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-fds?
-
-### For documentation related changes:
-- [ ] Have you ensured that format looks appropriate for the output in which it is rendered?
-
-### Note:
-Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index a19bd7a..74a1c48 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,14 @@
-node_modules/
 target/
+platform/
+scripts/
+.github/
+gh-pages*
+Gruntfile.js
+karma*
 npm-debug.log*
+README.md
+LICENSE
+NOTICE
 
 # Intellij
 .idea/

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/Gruntfile.js
----------------------------------------------------------------------
diff --git a/Gruntfile.js b/Gruntfile.js
deleted file mode 100644
index 45b43f4..0000000
--- a/Gruntfile.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-module.exports = function (grunt) {
-    // load all grunt tasks matching the ['grunt-*', '@*/grunt-*'] patterns
-    require('load-grunt-tasks')(grunt);
-
-    grunt.initConfig({
-        sass: {
-            options: {
-                outputStyle: 'compressed',
-                sourceMap: true
-            },
-            minifyFds: {
-                files: [{
-                    './platform/core/common/styles/css/fluid-design-system.min.css': ['./platform/core/common/styles/fluid-design-system.scss']
-                }]
-            },
-            minifyFdsDemo: {
-                files: [{
-                    './webapp/css/fds-demo.min.css': ['./webapp/theming/fds-demo.scss']
-                }]
-            }
-        },
-        compress: {
-            options: {
-                mode: 'gzip'
-            },
-            fdsStyles: {
-                files: [{
-                    expand: true,
-                    src: ['./platform/core/common/styles/css/fluid-design-system.min.css'],
-                    dest: './',
-                    ext: '.min.css.gz'
-                }]
-            },
-            fdsDemoStyles: {
-                files: [{
-                    expand: true,
-                    src: ['./webapp/css/fds-demo.min.css'],
-                    dest: './',
-                    ext: '.min.css.gz'
-                }]
-            }
-        },
-        bump: {
-            options: {
-                files: ['package.json'],
-                updateConfigs: [],
-                commit: true,
-                commitMessage: 'Release FDS-%VERSION%',
-                commitFiles: ['-a'],
-                createTag: true,
-                tagName: 'FDS-%VERSION%',
-                tagMessage: 'Version FDS-%VERSION%',
-                push: true,
-                pushTo: 'origin',
-                gitDescribeOptions: '--tags --always --abbrev=1 --dirty=-d',
-                globalReplace: false,
-                prereleaseName: 'RC',
-                metadata: '',
-                regExp: false
-            }
-        }
-    });
-    grunt.registerTask('compile-fds-styles', ['sass:minifyFds', 'compress:fdsStyles']);
-    grunt.registerTask('compile-fds-demo-styles', ['sass:minifyFdsDemo', 'compress:fdsDemoStyles']);
-};

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index c7c91cd..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,240 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-This product bundles 'Apache NiFi Registry' source code which is available under an ASLv2 license.
-
-    Copyright (c) 2018 Apache NiFi Registry https://nifi.apache.org/registry.html
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-This product bundles 'Angular Quickstart' which is available under an MIT license.
-
-    Copyright (c) 2010-2016 Google, Inc. http://angularjs.org
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in
-    all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-    THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/NOTICE
----------------------------------------------------------------------
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index 50b77ff..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache NiFi Fluid Design System
-Copyright 2014-2018 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
deleted file mode 100644
index cdbce26..0000000
--- a/README.md
+++ /dev/null
@@ -1,116 +0,0 @@
-# Apache NiFi Fluid Design System
-
-The Apache NiFi Fluid Design System module is an atomic reusable platform providing consistent set of UI/UX components for open source friendly web applications to consume. Checkout the demo web application on the `gh-pages` branch to see a complete example of an Angular application that leverages this NGModule. This demo application allows users to interact with and provides sample code for the available UI/UX components: [https://apache.github.io/nifi-fds/](https://apache.github.io/nifi-fds/).
-
-#### npm
-
-For developers not interested in building the FDS NgModule you can use **npm** to install the distribution files.
-
-```bash
-npm install nifi-fds
-```
-
-## Setup
-
-Import the **Fluid Design System** NgModule into your angular application:
-
-```javascript
-var fdsCore = require('fluid-design-system/core');
-AppModule.prototype = {
-    constructor: AppModule
-};
-
-AppModule.annotations = [
-    new ngCore.NgModule({
-        imports: [
-            fdsCore,
-    ...
-  ],
-  ...
-})
-...
-```
-
-## Styles, Icons and Theming
-
-A typical theme file will look something like this:
-
-```javascript
-@import '../../platform/core/theming/all-theme';
-
-$primaryColor: #9E737D;
-$primaryColorHover: #915D69;
-$accentColor: #d0dbe0;
-$accentColorHover: #CCCCCC;
-
-// Include the base styles for Angular Material core. We include this here so that you only
-// have to load a single css file for Angular Material in your app.
-@include mat-core;
-
-// Define the palettes
-$fds-base-palette: (50: #89df79, 100: $primaryColorHover, 200: #65d550, 300: #53d03b, 400: #46c32f, 500: $primaryColor, 600: $primaryColor, 700: #89df79, 800: #29701b, 900: #215c16, A100: #9be48d, A200: #ade9a2, A400: #bfedb6, A700: #1a4711, contrast: (50: $black-87-opacity, 100: $black-87-opacity, 200: $black-87-opacity, 300: white, 400: white, 500: $white-87-opacity, 600: $white-87-opacity, 700: $white-87-opacity, 800: $white-87-opacity, 900: $white-87-opacity, A100: $black-87-opacity, A200: white, A400: white, A700: $white-87-opacity));
-$fds-accent-palette: (50: #89df79, 100: $accentColorHover, 200: #65d550, 300: #53d03b, 400: #46c32f, 500: $accentColor, 600: $accentColor, 700: #89df79, 800: #29701b, 900: #215c16, A100: #9be48d, A200: #ade9a2, A400: #bfedb6, A700: #1a4711, contrast: (50: $black-87-opacity, 100: $black-87-opacity, 200: $black-87-opacity, 300: white, 400: white, 500: $white-87-opacity, 600: $white-87-opacity, 700: $white-87-opacity, 800: $white-87-opacity, 900: $white-87-opacity, A100: $black-87-opacity, A200: white, A400: white, A700: $white-87-opacity));
-$fds-warn-palette: (50: #81410f, 100: #D14A50, 200: #af5814, 300: #c66317, 400: #dd6f19, 500: $warnColor, 600: $warnColor, 700: #eea66e, 800: #f1b485, 900: #f4c29b, A100: #ec9857, A200: #89df79, A400: #89df79, A700: #f6d0b2, contrast: (50: $black-87-opacity, 100: $black-87-opacity, 200: $black-87-opacity, 300: white, 400: white, 500: $white-87-opacity, 600: $white-87-opacity, 700: $white-87-opacity, 800: $white-87-opacity, 900: $white-87-opacity, A100: $black-87-opacity, A200: white, A400: white, A700: $white-87-opacity));
-$fds-primary: mat-palette($fds-base-palette, 500, 100, 500);
-$fds-accent: mat-palette($fds-accent-palette, 500, 100, 500);
-$fds-warn: mat-palette($fds-warn-palette, 500, 100, 500);
-
-// Define the theme (Optionally specify a default, lighter, and darker hue.)
-$fds-theme: mat-light-theme($fds-primary, $fds-accent, $fds-warn);
-
-// FDS theme mixin
-@include fds-theme($fds-theme);
-```
-
-NiFi Fluid Design System UI/UX Platform comes with a base CSS file `node_modules/fluid-design-system/core/common/styles/css/fluid-design-system.min.css` (includes icons).
-
-## Building
-
-Developers can easily build this project using **npm**.
-
-First install or update your local project's **npm** tools:
-
-```bash
-npm install
-```
-
-Next run:
-
-```bash
-npm run clean:install
-```
-
-or to run without unit tests run:
-
-```bash
-npm run clean:install:skipTests
-```
-
-## Developing
-
-Developers can easily skip the re-instalation of node_modules and run unit tests in development mode using **npm**.
-
-```bash
-npm run dev:install
-```
-
-or to run without unit tests run:
-
-```bash
-npm run dev:install:skipTests
-```
-
-## Running locally
-
-Once built you can start the application from the target directory via:
-
-```bash
-npm start
-```
-
-The demo application should now be availalbe at: [http://127.0.0.1:8080/](http://127.0.0.1:8080/).
-
-## Release Managment
-
-For developers with permissions releasing a new version of the NiFi Fluid Design System is simple with [grunt bump](https://github.com/vojtajina/grunt-bump)
-

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/gh-pages.index.html
----------------------------------------------------------------------
diff --git a/gh-pages.index.html b/gh-pages.index.html
deleted file mode 100644
index e55dbb9..0000000
--- a/gh-pages.index.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the 'License'); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-      http://www.apache.org/licenses/LICENSE-2.0
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an 'AS IS' BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Apache NiFi Fluid Design System Demo</title>
-    <base href='/nifi-fds/'>
-    <meta charset='UTF-8'>
-    <meta name='viewport' content='width=device-width, initial-scale=1'>
-    <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
-    <link rel="stylesheet" href="node_modules/@covalent/core/common/platform.css">
-    <link rel="stylesheet" href='node_modules/nifi-fds/platform/core/common/styles/css/fluid-design-system.min.css'/>
-    <link rel="stylesheet" href='webapp/css/fds-demo.min.css'/>
-    <link rel='stylesheet' href='node_modules/font-awesome/css/font-awesome.css'/>
-</head>
-<body>
-<fds-app></fds-app>
-</body>
-<script src="node_modules/systemjs/dist/system.src.js"></script>
-<script src="webapp/systemjs.config.js?"></script>
-<script>
-  System.import('webapp/fds-bootstrap.js').catch(function(err) {console.error(err);});
-</script>
-</html>

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/gh-pages.package.json
----------------------------------------------------------------------
diff --git a/gh-pages.package.json b/gh-pages.package.json
deleted file mode 100644
index 58da069..0000000
--- a/gh-pages.package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-  "name": "nifi-fds-demo",
-  "version": "0.0.0",
-  "scripts": {
-    "start": "./node_modules/http-server/bin/http-server .",
-    "build:webapp": "./node_modules/grunt-cli/bin/grunt compile-fds-demo-styles",
-    "build:platform": "npm install && cd ./node_modules/nifi-fds && npm install && npm run build && rm -rf ./node_modules && rm -rf ./package-lock.json"
-  },
-  "description": "The Apache NiFi Fluid Design System demo provides users with an example web application that consumes the NgModule and allows users to interact with the UI/UX components.",
-  "keywords": [
-    "fluid design system",
-    "angular",
-    "material",
-    "material design",
-    "components",
-    "reusable",
-    "covalent"
-  ],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/apache/nifi-fds.git"
-  },
-  "bugs": {
-    "url": "https://github.com/apache/nifi-fds/issues"
-  },
-  "license": "Apache License, Version 2.0",
-  "dependencies": {
-    "@angular/animations": "4.4.6",
-    "@angular/cdk": "2.0.0-beta.12",
-    "@angular/common": "4.4.6",
-    "@angular/compiler": "4.4.6",
-    "@angular/core": "4.4.6",
-    "@angular/flex-layout": "2.0.0-beta.9",
-    "@angular/forms": "4.4.6",
-    "@angular/http": "4.4.6",
-    "@angular/material": "2.0.0-beta.12",
-    "@angular/platform-browser": "4.4.6",
-    "@angular/platform-browser-dynamic": "4.4.6",
-    "@angular/router": "4.4.6",
-    "@covalent/core": "1.0.0-beta.8-1",
-    "detect-libc": "1.0.3",
-    "font-awesome": "4.7.0",
-    "hammerjs": "2.0.8",
-    "jquery": "3.2.1",
-    "node-gyp": "3.6.2",
-    "roboto-fontface": "0.7.0",
-    "rxjs": "5.4.3",
-    "systemjs": "0.20.17",
-    "systemjs-plugin-text": "0.0.11",
-    "zone.js": "0.8.7"
-  },
-  "devDependencies": {
-    "grunt": "0.4.5",
-    "grunt-cli": "1.2.0",
-    "grunt-contrib-compress": "1.4.3",
-    "grunt-sass": "2.0.0",
-    "load-grunt-tasks": "3.5.2"
-  }
-}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/gh-pages.systemjs.config.js
----------------------------------------------------------------------
diff --git a/gh-pages.systemjs.config.js b/gh-pages.systemjs.config.js
deleted file mode 100644
index d4587e1..0000000
--- a/gh-pages.systemjs.config.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-(function (global) {
-    System.config({
-        paths: {
-            // paths serve as alias
-            'npm:': 'node_modules/'
-        },
-        // map tells the System loader where to look for things
-        map: {
-            'text': 'npm:systemjs-plugin-text/text.js',
-            'app': './webapp',
-
-            // jquery
-            'jquery': 'npm:jquery/dist/jquery.min.js',
-
-            // Angular
-            '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
-            '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
-            '@angular/common/http': 'npm:@angular/common/bundles/common-http.umd.js',
-            '@angular/common/http/testing': 'npm:@angular/common/bundles/common-http-testing.umd.js',
-            '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
-            '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
-            '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
-            '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
-            '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
-            '@angular/flex-layout': 'npm:@angular/flex-layout/bundles/flex-layout.umd.js',
-            '@angular/material': 'npm:@angular/material/bundles/material.umd.js',
-            '@angular/platform-browser/animations': 'npm:@angular/platform-browser/bundles/platform-browser-animations.umd.js',
-            '@angular/cdk': 'npm:@angular/cdk/bundles/cdk.umd.js',
-            '@angular/cdk/a11y': 'npm:@angular/cdk/bundles/cdk-a11y.umd.js',
-            '@angular/cdk/accordion': 'npm:@angular/cdk/bundles/cdk-accordion.umd.js',
-            '@angular/cdk/layout': 'npm:@angular/cdk/bundles/cdk-layout.umd.js',
-            '@angular/cdk/collections': 'npm:@angular/cdk/bundles/cdk-collections.umd.js',
-            '@angular/cdk/observers': 'npm:@angular/cdk/bundles/cdk-observers.umd.js',
-            '@angular/cdk/overlay': 'npm:@angular/cdk/bundles/cdk-overlay.umd.js',
-            '@angular/cdk/platform': 'npm:@angular/cdk/bundles/cdk-platform.umd.js',
-            '@angular/cdk/portal': 'npm:@angular/cdk/bundles/cdk-portal.umd.js',
-            '@angular/cdk/keycodes': 'npm:@angular/cdk/bundles/cdk-keycodes.umd.js',
-            '@angular/cdk/bidi': 'npm:@angular/cdk/bundles/cdk-bidi.umd.js',
-            '@angular/cdk/coercion': 'npm:@angular/cdk/bundles/cdk-coercion.umd.js',
-            '@angular/cdk/table': 'npm:@angular/cdk/bundles/cdk-table.umd.js',
-            '@angular/cdk/rxjs': 'npm:@angular/cdk/bundles/cdk-rxjs.umd.js',
-            '@angular/cdk/scrolling': 'npm:@angular/cdk/bundles/cdk-scrolling.umd.js',
-            '@angular/cdk/stepper': 'npm:@angular/cdk/bundles/cdk-stepper.umd.js',
-            '@angular/animations': 'npm:@angular/animations/bundles/animations.umd.js',
-            '@angular/animations/browser': 'npm:@angular/animations/bundles/animations-browser.umd.js',
-            '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
-
-            // needed to support gestures for angular material
-            'hammerjs': 'npm:hammerjs/hammer.min.js',
-
-            // Covalent
-            '@covalent/core': 'npm:@covalent/core/bundles/core.umd.min.js',
-
-            // other libraries
-            'rxjs': 'npm:rxjs',
-            'zone.js': 'npm:zone.js/dist/zone.js',
-            'core-js': 'npm:core-js/client/shim.min.js',
-            'superagent': 'npm:superagent/superagent.js',
-            'querystring': 'npm:querystring',
-            'tslib': 'npm:tslib/tslib.js',
-
-            // Fluid Design System
-            '@fluid-design-system/core': 'npm:nifi-fds/platform/core/fluid-design-system.module.js',
-            '@fluid-design-system/dialogs': 'npm:nifi-fds/platform/core/dialogs/fds-dialogs.module.js',
-            '@fluid-design-system/dialog-component': 'npm:nifi-fds/platform/core/dialogs/fds-dialog.component.js',
-            '@fluid-design-system/dialog-service': 'npm:nifi-fds/platform/core/dialogs/services/dialog.service.js',
-            '@fluid-design-system/confirm-dialog-component': 'npm:nifi-fds/platform/core/dialogs/confirm-dialog/confirm-dialog.component.js',
-            '@fluid-design-system/snackbars': 'npm:nifi-fds/platform/core/snackbars/fds-snackbars.module.js',
-            '@fluid-design-system/snackbar-component': 'npm:nifi-fds/platform/core/snackbars/fds-snackbar.component.js',
-            '@fluid-design-system/snackbar-service': 'npm:nifi-fds/platform/core/snackbars/services/snackbar.service.js',
-            '@fluid-design-system/coaster-component': 'npm:nifi-fds/platform/core/snackbars/coaster/coaster.component.js'
-        },
-        // packages tells the System loader how to load when no filename and/or no extension
-        packages: {
-            app: {
-                defaultExtension: 'js',
-                meta: {
-                    './*.js': {
-                        loader: 'webapp/systemjs-angular-loader.js'
-                    }
-                }
-            },
-            'webapp/systemjs-angular-loader.js': {
-                loader: false
-            },
-            'rxjs': {
-                defaultExtension: 'js'
-            },
-            'querystring': {
-                main: './index.js',
-                defaultExtension: 'js'
-            },
-            'moment': {
-                main: './moment.js',
-                defaultExtension: 'js'
-            },
-            'angular2-moment': {
-                main: './index.js',
-                defaultExtension: 'js'
-            }
-        }
-    });
-})(this);

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index fb66cad..e55dbb9 100644
--- a/index.html
+++ b/index.html
@@ -16,12 +16,12 @@
 <html>
 <head>
     <title>Apache NiFi Fluid Design System Demo</title>
-    <base href='/'>
+    <base href='/nifi-fds/'>
     <meta charset='UTF-8'>
     <meta name='viewport' content='width=device-width, initial-scale=1'>
     <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
     <link rel="stylesheet" href="node_modules/@covalent/core/common/platform.css">
-    <link rel="stylesheet" href='platform/core/common/styles/css/fluid-design-system.min.css'/>
+    <link rel="stylesheet" href='node_modules/nifi-fds/platform/core/common/styles/css/fluid-design-system.min.css'/>
     <link rel="stylesheet" href='webapp/css/fds-demo.min.css'/>
     <link rel='stylesheet' href='node_modules/font-awesome/css/font-awesome.css'/>
 </head>

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/karma-test-shim.js
----------------------------------------------------------------------
diff --git a/karma-test-shim.js b/karma-test-shim.js
deleted file mode 100644
index eeeb18d..0000000
--- a/karma-test-shim.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// /*global jasmine, __karma__, window*/
-Error.stackTraceLimit = 0; // "No stacktrace"" is usually best for app testing.
-
-// Uncomment to get full stacktrace output. Sometimes helpful, usually not.
-// Error.stackTraceLimit = Infinity; //
-
-jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000;
-
-// builtPaths: root paths for output ("built") files
-// get from karma.config.js, then prefix with '/base/'
-var builtPaths = (__karma__.config.builtPaths)
-    .map(function (p) {
-        return '/base/' + p;
-    });
-
-__karma__.loaded = function () {
-};
-
-function isJsFile(path) {
-    return path.slice(-3) == '.js';
-}
-
-function isSpecFile(path) {
-    return /\.spec\.(.*\.)?js$/.test(path);
-}
-
-// Is a "built" file if is JavaScript file in one of the "built" folders
-function isBuiltFile(path) {
-    return isJsFile(path) &&
-        builtPaths.reduce(function (keep, bp) {
-            return keep || (path.substr(0, bp.length) === bp);
-        }, false);
-}
-
-var allSpecFiles = Object.keys(window.__karma__.files)
-    .filter(isSpecFile)
-    .filter(isBuiltFile);
-
-System.config({
-    // Base URL for System.js calls. 'base/' is where Karma serves files from.
-    baseURL: 'base',
-
-    // Map the angular testing umd bundles
-    map: {
-        '@angular/core/testing': 'npm:@angular/core/bundles/core-testing.umd.js',
-        '@angular/common/testing': 'npm:@angular/common/bundles/common-testing.umd.js',
-        '@angular/compiler/testing': 'npm:@angular/compiler/bundles/compiler-testing.umd.js',
-        '@angular/platform-browser/testing': 'npm:@angular/platform-browser/bundles/platform-browser-testing.umd.js',
-        '@angular/platform-browser-dynamic/testing': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic-testing.umd.js',
-        '@angular/http/testing': 'npm:@angular/http/bundles/http-testing.umd.js',
-        '@angular/router/testing': 'npm:@angular/router/bundles/router-testing.umd.js',
-        '@angular/forms/testing': 'npm:@angular/forms/bundles/forms-testing.umd.js'
-    }
-});
-
-System.import('platform/systemjs.spec.config.js')
-    .then(initTestBed)
-    .then(initTesting);
-
-/** Optional SystemJS configuration extras. Keep going w/o it */
-function importSystemJsExtras() {
-    return System.import('platform/systemjs.config.extras.js')
-        .catch(function (reason) {
-            console.log(
-                'Warning: System.import could not load the optional "systemjs.config.extras.js". Did you omit it by accident? Continuing without it.'
-            );
-            console.log(reason);
-        });
-}
-
-function initTestBed() {
-    return Promise.all([
-        System.import('@angular/core/testing'),
-        System.import('@angular/platform-browser-dynamic/testing')
-    ])
-
-        .then(function (providers) {
-            var coreTesting = providers[0];
-            var browserTesting = providers[1];
-
-            coreTesting.TestBed.initTestEnvironment(
-                browserTesting.BrowserDynamicTestingModule,
-                browserTesting.platformBrowserDynamicTesting());
-        })
-}
-
-// Import all spec files and start karma
-function initTesting() {
-    return Promise.all(
-        allSpecFiles.map(function (moduleName) {
-            return System.import(moduleName);
-        })
-    )
-        .then(__karma__.start, __karma__.error);
-}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/karma.conf.js
----------------------------------------------------------------------
diff --git a/karma.conf.js b/karma.conf.js
deleted file mode 100644
index 19f0125..0000000
--- a/karma.conf.js
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-module.exports = function (config) {
-
-    var appBase = 'platform/';       // app JS and map files
-
-    config.set({
-        basePath: '',
-        browserNoActivityTimeout: 9999999, //default 10000
-        browserDisconnectTimeout: 999999, // default 2000
-        browserDisconnectTolerance: 1, // default 0
-        captureTimeout: 999999,
-        frameworks: ['jasmine'],
-        customLaunchers: {
-            Chrome_travis_ci: {
-                base: 'ChromeHeadless',
-                flags: ['--no-sandbox']
-            }
-        },
-        plugins: [
-            require('karma-jasmine'),
-            require('karma-chrome-launcher'),
-            require('karma-jasmine-html-reporter'),
-            require('karma-spec-reporter'),
-            require('karma-coverage')
-        ],
-
-        client: {
-            builtPaths: [appBase], // add more spec base paths as needed
-            clearContext: false // leave Jasmine Spec Runner output visible in browser
-        },
-
-        files: [
-            // System.js for module loading
-            'node_modules/systemjs/dist/system.src.js',
-
-            // Polyfills
-            'node_modules/core-js/client/shim.js',
-
-            // zone.js
-            'node_modules/zone.js/dist/zone.js',
-            'node_modules/zone.js/dist/long-stack-trace-zone.js',
-            'node_modules/zone.js/dist/proxy.js',
-            'node_modules/zone.js/dist/sync-test.js',
-            'node_modules/zone.js/dist/jasmine-patch.js',
-            'node_modules/zone.js/dist/async-test.js',
-            'node_modules/zone.js/dist/fake-async-test.js',
-
-            // RxJs
-            {pattern: 'node_modules/rxjs/**/*.js', included: false, watched: false},
-            {pattern: 'node_modules/rxjs/**/*.js.map', included: false, watched: false},
-
-            // Paths loaded via module imports:
-            {pattern: 'node_modules/systemjs/**/*.js.map', included: false, watched: false},
-            {pattern: 'node_modules/@angular/**/*.js', included: false, watched: false},
-            {pattern: 'node_modules/@angular/**/*.js.map', included: false, watched: false},
-            {pattern: 'node_modules/jquery/**/*.js', included: false, watched: false},
-            {pattern: 'node_modules/systemjs-plugin-text/text.js', included: false, watched: false},
-
-            {pattern: appBase + 'systemjs.spec.config.js', included: false, watched: false},
-            'karma-test-shim.js', // optionally extend SystemJS mapping e.g., with barrels
-
-            // Include the Fluid Design System templates in the test suite.
-            {
-                pattern: 'platform/core/**/*.html',
-                included: true,
-                watched: true,
-                served: true
-            },
-
-            // Paths for debugging with source maps in dev tools
-            {pattern: appBase + '**/*.css.map', included: false, watched: false},
-            {pattern: appBase + '**/*.js', included: false, watched: false}
-        ],
-
-        // Proxied base paths for loading assets
-        proxies: {
-            // required for modules fetched by SystemJS
-            '/base/fds/node_modules/': '/base/node_modules/'
-        },
-
-        exclude: [],
-        preprocessors: {
-            'platform/**/!(*spec|*mock|*stub|*config|*extras|).js': 'coverage'
-        },
-        reporters: ['kjhtml', 'spec', 'coverage'],
-        coverageReporter: {
-            type: 'html',
-            dir: 'coverage/'
-        },
-        specReporter: {
-            failFast: false
-        },
-        port: 9876,
-        colors: true,
-        logLevel: config.LOG_INFO,
-        autoWatch: true,
-        browsers: ['Chrome'],
-        singleRun: false
-    });
-
-    if (process.env.TRAVIS) {
-        config.set({
-            browsers: ['Chrome_travis_ci']
-        });
-
-        // Override base config
-        config.set({
-            singleRun: true,
-            autoWatch: false,
-            reporters: ['spec', 'coverage'],
-            specReporter: {
-                failFast: true
-            }
-        });
-    }
-}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/cake
----------------------------------------------------------------------
diff --git a/node_modules/.bin/cake b/node_modules/.bin/cake
new file mode 120000
index 0000000..d95f32a
--- /dev/null
+++ b/node_modules/.bin/cake
@@ -0,0 +1 @@
+../coffee-script/bin/cake
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/coffee
----------------------------------------------------------------------
diff --git a/node_modules/.bin/coffee b/node_modules/.bin/coffee
new file mode 120000
index 0000000..b57f275
--- /dev/null
+++ b/node_modules/.bin/coffee
@@ -0,0 +1 @@
+../coffee-script/bin/coffee
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/detect-libc
----------------------------------------------------------------------
diff --git a/node_modules/.bin/detect-libc b/node_modules/.bin/detect-libc
new file mode 120000
index 0000000..b4c4b76
--- /dev/null
+++ b/node_modules/.bin/detect-libc
@@ -0,0 +1 @@
+../detect-libc/bin/detect-libc.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/esparse
----------------------------------------------------------------------
diff --git a/node_modules/.bin/esparse b/node_modules/.bin/esparse
new file mode 120000
index 0000000..7423b18
--- /dev/null
+++ b/node_modules/.bin/esparse
@@ -0,0 +1 @@
+../esprima/bin/esparse.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/esvalidate
----------------------------------------------------------------------
diff --git a/node_modules/.bin/esvalidate b/node_modules/.bin/esvalidate
new file mode 120000
index 0000000..16069ef
--- /dev/null
+++ b/node_modules/.bin/esvalidate
@@ -0,0 +1 @@
+../esprima/bin/esvalidate.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/grunt
----------------------------------------------------------------------
diff --git a/node_modules/.bin/grunt b/node_modules/.bin/grunt
new file mode 120000
index 0000000..1ac2c4d
--- /dev/null
+++ b/node_modules/.bin/grunt
@@ -0,0 +1 @@
+../grunt-cli/bin/grunt
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/in-install
----------------------------------------------------------------------
diff --git a/node_modules/.bin/in-install b/node_modules/.bin/in-install
new file mode 120000
index 0000000..08c9689
--- /dev/null
+++ b/node_modules/.bin/in-install
@@ -0,0 +1 @@
+../in-publish/in-install.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/in-publish
----------------------------------------------------------------------
diff --git a/node_modules/.bin/in-publish b/node_modules/.bin/in-publish
new file mode 120000
index 0000000..ae9e779
--- /dev/null
+++ b/node_modules/.bin/in-publish
@@ -0,0 +1 @@
+../in-publish/in-publish.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/js-yaml
----------------------------------------------------------------------
diff --git a/node_modules/.bin/js-yaml b/node_modules/.bin/js-yaml
new file mode 120000
index 0000000..9dbd010
--- /dev/null
+++ b/node_modules/.bin/js-yaml
@@ -0,0 +1 @@
+../js-yaml/bin/js-yaml.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/mkdirp
----------------------------------------------------------------------
diff --git a/node_modules/.bin/mkdirp b/node_modules/.bin/mkdirp
new file mode 120000
index 0000000..017896c
--- /dev/null
+++ b/node_modules/.bin/mkdirp
@@ -0,0 +1 @@
+../mkdirp/bin/cmd.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/node-gyp
----------------------------------------------------------------------
diff --git a/node_modules/.bin/node-gyp b/node_modules/.bin/node-gyp
new file mode 120000
index 0000000..9b31a4f
--- /dev/null
+++ b/node_modules/.bin/node-gyp
@@ -0,0 +1 @@
+../node-gyp/bin/node-gyp.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/node-sass
----------------------------------------------------------------------
diff --git a/node_modules/.bin/node-sass b/node_modules/.bin/node-sass
new file mode 120000
index 0000000..a4b0134
--- /dev/null
+++ b/node_modules/.bin/node-sass
@@ -0,0 +1 @@
+../node-sass/bin/node-sass
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/nopt
----------------------------------------------------------------------
diff --git a/node_modules/.bin/nopt b/node_modules/.bin/nopt
new file mode 120000
index 0000000..6b6566e
--- /dev/null
+++ b/node_modules/.bin/nopt
@@ -0,0 +1 @@
+../nopt/bin/nopt.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/not-in-install
----------------------------------------------------------------------
diff --git a/node_modules/.bin/not-in-install b/node_modules/.bin/not-in-install
new file mode 120000
index 0000000..dbfcf38
--- /dev/null
+++ b/node_modules/.bin/not-in-install
@@ -0,0 +1 @@
+../in-publish/not-in-install.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/not-in-publish
----------------------------------------------------------------------
diff --git a/node_modules/.bin/not-in-publish b/node_modules/.bin/not-in-publish
new file mode 120000
index 0000000..5cc2922
--- /dev/null
+++ b/node_modules/.bin/not-in-publish
@@ -0,0 +1 @@
+../in-publish/not-in-publish.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/prebuild-install
----------------------------------------------------------------------
diff --git a/node_modules/.bin/prebuild-install b/node_modules/.bin/prebuild-install
new file mode 120000
index 0000000..12a458d
--- /dev/null
+++ b/node_modules/.bin/prebuild-install
@@ -0,0 +1 @@
+../prebuild-install/bin.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/rc
----------------------------------------------------------------------
diff --git a/node_modules/.bin/rc b/node_modules/.bin/rc
new file mode 120000
index 0000000..48b3cda
--- /dev/null
+++ b/node_modules/.bin/rc
@@ -0,0 +1 @@
+../rc/cli.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/rimraf
----------------------------------------------------------------------
diff --git a/node_modules/.bin/rimraf b/node_modules/.bin/rimraf
new file mode 120000
index 0000000..4cd49a4
--- /dev/null
+++ b/node_modules/.bin/rimraf
@@ -0,0 +1 @@
+../rimraf/bin.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/sassgraph
----------------------------------------------------------------------
diff --git a/node_modules/.bin/sassgraph b/node_modules/.bin/sassgraph
new file mode 120000
index 0000000..901ada9
--- /dev/null
+++ b/node_modules/.bin/sassgraph
@@ -0,0 +1 @@
+../sass-graph/bin/sassgraph
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/semver
----------------------------------------------------------------------
diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver
new file mode 120000
index 0000000..317eb29
--- /dev/null
+++ b/node_modules/.bin/semver
@@ -0,0 +1 @@
+../semver/bin/semver
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/sshpk-conv
----------------------------------------------------------------------
diff --git a/node_modules/.bin/sshpk-conv b/node_modules/.bin/sshpk-conv
new file mode 120000
index 0000000..a2a295c
--- /dev/null
+++ b/node_modules/.bin/sshpk-conv
@@ -0,0 +1 @@
+../sshpk/bin/sshpk-conv
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/sshpk-sign
----------------------------------------------------------------------
diff --git a/node_modules/.bin/sshpk-sign b/node_modules/.bin/sshpk-sign
new file mode 120000
index 0000000..766b9b3
--- /dev/null
+++ b/node_modules/.bin/sshpk-sign
@@ -0,0 +1 @@
+../sshpk/bin/sshpk-sign
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/sshpk-verify
----------------------------------------------------------------------
diff --git a/node_modules/.bin/sshpk-verify b/node_modules/.bin/sshpk-verify
new file mode 120000
index 0000000..bfd7e3a
--- /dev/null
+++ b/node_modules/.bin/sshpk-verify
@@ -0,0 +1 @@
+../sshpk/bin/sshpk-verify
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/strip-indent
----------------------------------------------------------------------
diff --git a/node_modules/.bin/strip-indent b/node_modules/.bin/strip-indent
new file mode 120000
index 0000000..dddee7e
--- /dev/null
+++ b/node_modules/.bin/strip-indent
@@ -0,0 +1 @@
+../strip-indent/cli.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/uuid
----------------------------------------------------------------------
diff --git a/node_modules/.bin/uuid b/node_modules/.bin/uuid
new file mode 120000
index 0000000..b3e45bc
--- /dev/null
+++ b/node_modules/.bin/uuid
@@ -0,0 +1 @@
+../uuid/bin/uuid
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/.bin/which
----------------------------------------------------------------------
diff --git a/node_modules/.bin/which b/node_modules/.bin/which
new file mode 120000
index 0000000..f62471c
--- /dev/null
+++ b/node_modules/.bin/which
@@ -0,0 +1 @@
+../which/bin/which
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.js.map
new file mode 100644
index 0000000..cab80cf
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-rxjs.umd.js","sources":["cdk/rxjs.es5.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 { _finally } from 'rxjs/operator/finally';\nimport { _catch } from 'rxjs/operator/catch';\nimport { _do } from 'rxjs/operator/do';\nimport { map } from 'rxjs/operator/map';\nimport { filter } from 'rxjs/operator/filter';\nimport { share } from 'rxjs/operator/share';\nimport { first } from 'rxjs/operator/first';\nimport { switchMap } from 'rxjs/operator/switchMap';\nimport { startWith } from 'rxjs/operator/startWith';\nimport { debounceTime } from 'rxjs/operator/debounceTime';\nimport { auditTime } from 'rxjs/operator/auditTime';\nimport { takeUntil } from 'rxjs/operator/takeUntil';\nimport { delay } from 'rxjs/operator/delay';\n\n/**\n * Utility class used to chain RxJS operators.\n *
 \n * This class is the concrete implementation, but the type used by the user when chaining\n * is StrictRxChain. The strict chain enforces types on the operators to the same level as\n * the prototype-added equivalents.\n */\nvar RxChain = (function () {\n    /**\n     * @param {?} _context\n     */\n    function RxChain(_context) {\n        this._context = _context;\n    }\n    /**\n     * Starts a new chain and specifies the initial `this` value.\n     * @template O\n     * @param {?} context Initial `this` value for the chain.\n     * @return {?}\n     */\n    RxChain.from = function (context) {\n        return new RxChain(context);\n    };\n    /**\n     * Invokes an RxJS operator as a part of the chain.\n     * @param {?} operator Operator to be invoked.\n     * @param {...?} args Arguments to be passed to the operator.\n     * @return {?}\n     */\n    RxChain.prototype.call = function (operator) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++)
  {\n            args[_i - 1] = arguments[_i];\n        }\n        this._context = operator.call.apply(operator, [this._context].concat(args));\n        return this;\n    };\n    /**\n     * Subscribes to the result of the chain.\n     * @param {?} fn Callback to be invoked when the result emits a value.\n     * @return {?}\n     */\n    RxChain.prototype.subscribe = function (fn) {\n        return this._context.subscribe(fn);\n    };\n    /**\n     * Returns the result of the chain.\n     * @return {?}\n     */\n    RxChain.prototype.result = function () {\n        return this._context;\n    };\n    return RxChain;\n}());\n\nvar FinallyBrand = (function () {\n    function FinallyBrand() {\n    }\n    return FinallyBrand;\n}());\nvar CatchBrand = (function () {\n    function CatchBrand() {\n    }\n    return CatchBrand;\n}());\nvar DoBrand = (function () {\n    function DoBrand() {\n    }\n    return DoBrand;\n}());\nvar MapBrand = (function () {\n    function MapBrand() {\n    }\n  
   return MapBrand;\n}());\nvar FilterBrand = (function () {\n    function FilterBrand() {\n    }\n    return FilterBrand;\n}());\nvar ShareBrand = (function () {\n    function ShareBrand() {\n    }\n    return ShareBrand;\n}());\nvar FirstBrand = (function () {\n    function FirstBrand() {\n    }\n    return FirstBrand;\n}());\nvar SwitchMapBrand = (function () {\n    function SwitchMapBrand() {\n    }\n    return SwitchMapBrand;\n}());\nvar StartWithBrand = (function () {\n    function StartWithBrand() {\n    }\n    return StartWithBrand;\n}());\nvar DebounceTimeBrand = (function () {\n    function DebounceTimeBrand() {\n    }\n    return DebounceTimeBrand;\n}());\nvar AuditTimeBrand = (function () {\n    function AuditTimeBrand() {\n    }\n    return AuditTimeBrand;\n}());\nvar TakeUntilBrand = (function () {\n    function TakeUntilBrand() {\n    }\n    return TakeUntilBrand;\n}());\nvar DelayBrand = (function () {\n    function DelayBrand() {\n    }\n    return DelayBrand;\n}());
 \n// We add `Function` to the type intersection to make this nomically different from\n// `finallyOperatorType` while still being structurally the same. Without this, TypeScript tries to\n// reduce `typeof _finallyOperator & FinallyBrand` to `finallyOperatorType<T>` and then fails\n// because `T` isn't known.\nvar finallyOperator = (_finally);\nvar catchOperator = (_catch);\nvar doOperator = (_do);\nvar map$1 = (map);\nvar filter$1 = (filter);\nvar share$1 = (share);\nvar first$1 = (first);\nvar switchMap$1 = (switchMap);\nvar startWith$1 = (startWith);\nvar debounceTime$1 = (debounceTime);\nvar auditTime$1 = (auditTime);\nvar takeUntil$1 = (takeUntil);\nvar delay$1 = (delay);\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RxChain, FinallyBrand, CatchBrand, DoBrand, MapBrand, FilterBrand, ShareBrand, FirstBrand, SwitchMapBrand, StartWithBrand, DebounceTimeBrand, AuditTimeBrand, TakeUntilBrand, DelayBrand, finallyOperator, catchOperator, doOperator, map$1 as map, fi
 lter$1 as filter, share$1 as share, first$1 as first, switchMap$1 as switchMap, startWith$1 as startWith, debounceTime$1 as debounceTime, auditTime$1 as auditTime, takeUntil$1 as takeUntil, delay$1 as delay };\n//# sourceMappingURL=rxjs.es5.js.map\n"],"names":["_finally","_catch","_do","map","filter","share","first","switchMap","startWith","debounceTime","auditTime","takeUntil","delay"],"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/bundles/cdk-rxjs.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.min.js
new file mode 100644
index 0000000..996ea63
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(r,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("rxjs/operator/finally"),require("rxjs/operator/catch"),require("rxjs/operator/do"),require("rxjs/operator/map"),require("rxjs/operator/filter"),require("rxjs/operator/share"),require("rxjs/operator/first"),require("rxjs/operator/switchMap"),require("rxjs/operator/startWith"),require("rxjs/operator/debounceTime"),require("rxjs/operator/auditTime"),require("rxjs/operator/takeUntil"),require("rxjs/operator/delay")):"function"==typeof define&&define.amd?define(["exports","rxjs/operator/finally","rxjs/operator/catch","rxjs/operator/do","rxjs/operator/map","rxjs/operator/filter","rxjs/operator/share","rxjs/operator/first","rxjs/operator/switchMap","rxjs/operator/startWith","rxjs/operator/debounceTime","rxjs/operator/auditTime","rxjs/operator/takeUntil","rxjs/operator/delay"],t):t((r.ng=r.ng||{},r.ng.cdk=r.ng.cdk||{},r.ng.cdk.rxjs=r.ng.cdk.rxjs||{}),r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.R
 x.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype,r.Rx.Observable.prototype)}(this,function(r,t,e,o,n,i,a,u,p,s,c,f,x,l){"use strict";var d=function(){function r(r){this._context=r}return r.from=function(t){return new r(t)},r.prototype.call=function(r){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];return this._context=r.call.apply(r,[this._context].concat(t)),this},r.prototype.subscribe=function(r){return this._context.subscribe(r)},r.prototype.result=function(){return this._context},r}(),b=function(){function r(){}return r}(),y=function(){function r(){}return r}(),j=function(){function r(){}return r}(),h=function(){function r(){}return r}(),m=function(){function r(){}return r}(),O=function(){function r(){}return r}(),v=function(){function r(){}return r}(),R=functio
 n(){function r(){}return r}(),q=function(){function r(){}return r}(),B=function(){function r(){}return r}(),T=function(){function r(){}return r}(),_=function(){function r(){}return r}(),k=function(){function r(){}return r}(),g=t._finally,M=e._catch,w=o._do,U=n.map,W=i.filter,D=a.share,F=u.first,S=p.switchMap,C=s.startWith,A=c.debounceTime,P=f.auditTime,z=x.takeUntil,E=l.delay;r.RxChain=d,r.FinallyBrand=b,r.CatchBrand=y,r.DoBrand=j,r.MapBrand=h,r.FilterBrand=m,r.ShareBrand=O,r.FirstBrand=v,r.SwitchMapBrand=R,r.StartWithBrand=q,r.DebounceTimeBrand=B,r.AuditTimeBrand=T,r.TakeUntilBrand=_,r.DelayBrand=k,r.finallyOperator=g,r.catchOperator=M,r.doOperator=w,r.map=U,r.filter=W,r.share=D,r.first=F,r.switchMap=S,r.startWith=C,r.debounceTime=A,r.auditTime=P,r.takeUntil=z,r.delay=E,Object.defineProperty(r,"__esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-rxjs.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.min.js.map
new file mode 100644
index 0000000..72ec7e8
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-rxjs.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-rxjs.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","rxjs","Rx","Observable","prototype","this","rxjs_operator_finally","rxjs_operator_catch","rxjs_operator_do","rxjs_operator_map","rxjs_operator_filter","rxjs_operator_share","rxjs_operator_first","rxjs_operator_switchMap","rxjs_operator_startWith","rxjs_operator_debounceTime","rxjs_operator_auditTime","rxjs_operator_takeUntil","rxjs_operator_delay","RxChain","_context","from","context","call","operator","args","_i","arguments","length","apply","concat","subscribe","fn","result","FinallyBrand","CatchBrand","DoBrand","MapBrand","FilterBrand","ShareBrand","FirstBrand","SwitchMapBrand","StartWithBrand","DebounceTimeBrand","AuditTimeBrand","TakeUntilBrand","DelayBrand","finallyOperator","catchOperator","doOperator","map$1","filter$1","share$1","first$1","switchMap$1","startWith$1","debounceTime$1","auditTime$1","takeUnt
 il$1","delay$1","map","filter","share","first","switchMap","startWith","debounceTime","auditTime","takeUntil","delay","Object","defineProperty","value"],"mappings":"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","file":"/Users/karakara/repos/material2/dist/bundles/cdk-rxjs.umd.min.js"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js
new file mode 100644
index 0000000..122dcc3
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js
@@ -0,0 +1,422 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(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')) :
+	typeof define === 'function' && 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'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.scrolling = global.ng.cdk.scrolling || {}),global.ng.core,global.ng.cdk.platform,global.Rx,global.Rx,global.Rx.Observable,global.Rx.Observable.prototype,global.Rx.Observable,global.Rx.Observable));
+}(this, (function (exports,_angular_core,_angular_cdk_platform,rxjs_Subject,rxjs_Subscription,rxjs_observable_fromEvent,rxjs_operator_auditTime,rxjs_observable_merge,rxjs_observable_of) { 'use strict';
+
+/**
+ * Time in ms to throttle the scrolling events by default.
+ */
+var DEFAULT_SCROLL_TIME = 20;
+/**
+ * Service contained all registered Scrollable references and emits an event when any one of the
+ * Scrollable references emit a scrolled event.
+ */
+var ScrollDispatcher = (function () {
+    /**
+     * @param {?} _ngZone
+     * @param {?} _platform
+     */
+    function ScrollDispatcher(_ngZone, _platform) {
+        this._ngZone = _ngZone;
+        this._platform = _platform;
+        /**
+         * Subject for notifying that a registered scrollable reference element has been scrolled.
+         */
+        this._scrolled = new rxjs_Subject.Subject();
+        /**
+         * Keeps track of the global `scroll` and `resize` subscriptions.
+         */
+        this._globalSubscription = null;
+        /**
+         * Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards.
+         */
+        this._scrolledCount = 0;
+        /**
+         * Map of all the scrollable references that are registered with the service and their
+         * scroll event subscriptions.
+         */
+        this.scrollableReferences = new Map();
+    }
+    /**
+     * Registers a Scrollable with the service and listens for its scrolled events. When the
+     * scrollable is scrolled, the service emits the event in its scrolled observable.
+     * @param {?} scrollable Scrollable instance to be registered.
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.register = function (scrollable) {
+        var _this = this;
+        var /** @type {?} */ scrollSubscription = scrollable.elementScrolled().subscribe(function () { return _this._notify(); });
+        this.scrollableReferences.set(scrollable, scrollSubscription);
+    };
+    /**
+     * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.
+     * @param {?} scrollable Scrollable instance to be deregistered.
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.deregister = function (scrollable) {
+        var /** @type {?} */ scrollableReference = this.scrollableReferences.get(scrollable);
+        if (scrollableReference) {
+            scrollableReference.unsubscribe();
+            this.scrollableReferences.delete(scrollable);
+        }
+    };
+    /**
+     * Subscribes to an observable that emits an event whenever any of the registered Scrollable
+     * references (or window, document, or body) fire a scrolled event. Can provide a time in ms
+     * to override the default "throttle" time.
+     * @param {?=} auditTimeInMs
+     * @param {?=} callback
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.scrolled = function (auditTimeInMs, callback) {
+        var _this = this;
+        if (auditTimeInMs === void 0) { auditTimeInMs = DEFAULT_SCROLL_TIME; }
+        // Scroll events can only happen on the browser, so do nothing if we're not on the browser.
+        if (!this._platform.isBrowser) {
+            return rxjs_Subscription.Subscription.EMPTY;
+        }
+        // In the case of a 0ms delay, use an observable without auditTime
+        // since it does add a perceptible delay in processing overhead.
+        var /** @type {?} */ observable = auditTimeInMs > 0 ?
+            rxjs_operator_auditTime.auditTime.call(this._scrolled.asObservable(), auditTimeInMs) :
+            this._scrolled.asObservable();
+        this._scrolledCount++;
+        if (!this._globalSubscription) {
+            this._globalSubscription = this._ngZone.runOutsideAngular(function () {
+                return rxjs_observable_fromEvent.fromEvent(window.document, 'scroll').subscribe(function () { return _this._notify(); });
+            });
+        }
+        // Note that we need to do the subscribing from here, in order to be able to remove
+        // the global event listeners once there are no more subscriptions.
+        var /** @type {?} */ subscription = observable.subscribe(callback);
+        subscription.add(function () {
+            _this._scrolledCount--;
+            if (_this._globalSubscription && !_this.scrollableReferences.size && !_this._scrolledCount) {
+                _this._globalSubscription.unsubscribe();
+                _this._globalSubscription = null;
+            }
+        });
+        return subscription;
+    };
+    /**
+     * Returns all registered Scrollables that contain the provided element.
+     * @param {?} elementRef
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.getScrollContainers = function (elementRef) {
+        var _this = this;
+        var /** @type {?} */ scrollingContainers = [];
+        this.scrollableReferences.forEach(function (_subscription, scrollable) {
+            if (_this.scrollableContainsElement(scrollable, elementRef)) {
+                scrollingContainers.push(scrollable);
+            }
+        });
+        return scrollingContainers;
+    };
+    /**
+     * Returns true if the element is contained within the provided Scrollable.
+     * @param {?} scrollable
+     * @param {?} elementRef
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.scrollableContainsElement = function (scrollable, elementRef) {
+        var /** @type {?} */ element = elementRef.nativeElement;
+        var /** @type {?} */ scrollableElement = scrollable.getElementRef().nativeElement;
+        // Traverse through the element parents until we reach null, checking if any of the elements
+        // are the scrollable's element.
+        do {
+            if (element == scrollableElement) {
+                return true;
+            }
+        } while (element = element.parentElement);
+        return false;
+    };
+    /**
+     * Sends a notification that a scroll event has been fired.
+     * @return {?}
+     */
+    ScrollDispatcher.prototype._notify = function () {
+        this._scrolled.next();
+    };
+    ScrollDispatcher.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    ScrollDispatcher.ctorParameters = function () { return [
+        { type: _angular_core.NgZone, },
+        { type: _angular_cdk_platform.Platform, },
+    ]; };
+    return ScrollDispatcher;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} ngZone
+ * @param {?} platform
+ * @return {?}
+ */
+function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {
+    return parentDispatcher || new ScrollDispatcher(ngZone, platform);
+}
+/**
+ * \@docs-private
+ */
+var SCROLL_DISPATCHER_PROVIDER = {
+    // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.
+    provide: ScrollDispatcher,
+    deps: [[new _angular_core.Optional(), new _angular_core.SkipSelf(), ScrollDispatcher], _angular_core.NgZone, _angular_cdk_platform.Platform],
+    useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY
+};
+
+/**
+ * Sends an event when the directive's element is scrolled. Registers itself with the
+ * ScrollDispatcher service to include itself as part of its collection of scrolling events that it
+ * can be listened to through the service.
+ */
+var Scrollable = (function () {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _scroll
+     * @param {?} _ngZone
+     * @param {?} _renderer
+     */
+    function Scrollable(_elementRef, _scroll, _ngZone, _renderer) {
+        this._elementRef = _elementRef;
+        this._scroll = _scroll;
+        this._ngZone = _ngZone;
+        this._renderer = _renderer;
+        this._elementScrolled = new rxjs_Subject.Subject();
+    }
+    /**
+     * @return {?}
+     */
+    Scrollable.prototype.ngOnInit = function () {
+        var _this = this;
+        this._scrollListener = this._ngZone.runOutsideAngular(function () {
+            return _this._renderer.listen(_this.getElementRef().nativeElement, 'scroll', function (event) {
+                _this._elementScrolled.next(event);
+            });
+        });
+        this._scroll.register(this);
+    };
+    /**
+     * @return {?}
+     */
+    Scrollable.prototype.ngOnDestroy = function () {
+        this._scroll.deregister(this);
+        if (this._scrollListener) {
+            this._scrollListener();
+            this._scrollListener = null;
+        }
+    };
+    /**
+     * Returns observable that emits when a scroll event is fired on the host element.
+     * @return {?}
+     */
+    Scrollable.prototype.elementScrolled = function () {
+        return this._elementScrolled.asObservable();
+    };
+    /**
+     * @return {?}
+     */
+    Scrollable.prototype.getElementRef = function () {
+        return this._elementRef;
+    };
+    Scrollable.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: '[cdk-scrollable], [cdkScrollable]'
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    Scrollable.ctorParameters = function () { return [
+        { type: _angular_core.ElementRef, },
+        { type: ScrollDispatcher, },
+        { type: _angular_core.NgZone, },
+        { type: _angular_core.Renderer2, },
+    ]; };
+    return Scrollable;
+}());
+
+/**
+ * Time in ms to throttle the resize events by default.
+ */
+var DEFAULT_RESIZE_TIME = 20;
+/**
+ * Simple utility for getting the bounds of the browser viewport.
+ * \@docs-private
+ */
+var ViewportRuler = (function () {
+    /**
+     * @param {?} platform
+     * @param {?} ngZone
+     * @param {?} scrollDispatcher
+     */
+    function ViewportRuler(platform, ngZone, scrollDispatcher) {
+        var _this = this;
+        this._change = platform.isBrowser ? ngZone.runOutsideAngular(function () {
+            return rxjs_observable_merge.merge(rxjs_observable_fromEvent.fromEvent(window, 'resize'), rxjs_observable_fromEvent.fromEvent(window, 'orientationchange'));
+        }) : rxjs_observable_of.of();
+        // Subscribe to scroll and resize events and update the document rectangle on changes.
+        this._invalidateCacheSubscriptions = [
+            scrollDispatcher.scrolled(0, function () { return _this._cacheViewportGeometry(); }),
+            this.change().subscribe(function () { return _this._cacheViewportGeometry(); })
+        ];
+    }
+    /**
+     * @return {?}
+     */
+    ViewportRuler.prototype.ngOnDestroy = function () {
+        this._invalidateCacheSubscriptions.forEach(function (subscription) { return subscription.unsubscribe(); });
+    };
+    /**
+     * Gets a ClientRect for the viewport's bounds.
+     * @param {?=} documentRect
+     * @return {?}
+     */
+    ViewportRuler.prototype.getViewportRect = function (documentRect) {
+        if (documentRect === void 0) { documentRect = this._documentRect; }
+        // Cache the document bounding rect so that we don't recompute it for multiple calls.
+        if (!documentRect) {
+            this._cacheViewportGeometry();
+            documentRect = this._documentRect;
+        }
+        // Use the document element's bounding rect rather than the window scroll properties
+        // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll
+        // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different
+        // conceptual viewports. Under most circumstances these viewports are equivalent, but they
+        // can disagree when the page is pinch-zoomed (on devices that support touch).
+        // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4
+        // We use the documentElement instead of the body because, by default (without a css reset)
+        // browsers typically give the document body an 8px margin, which is not included in
+        // getBoundingClientRect().
+        var /** @type {?} */ scrollPosition = this.getViewportScrollPosition(documentRect);
+        var /** @type {?} */ height = window.innerHeight;
+        var /** @type {?} */ width = window.innerWidth;
+        return {
+            top: scrollPosition.top,
+            left: scrollPosition.left,
+            bottom: scrollPosition.top + height,
+            right: scrollPosition.left + width,
+            height: height,
+            width: width,
+        };
+    };
+    /**
+     * Gets the (top, left) scroll position of the viewport.
+     * @param {?=} documentRect
+     * @return {?}
+     */
+    ViewportRuler.prototype.getViewportScrollPosition = function (documentRect) {
+        if (documentRect === void 0) { documentRect = this._documentRect; }
+        // Cache the document bounding rect so that we don't recompute it for multiple calls.
+        if (!documentRect) {
+            this._cacheViewportGeometry();
+            documentRect = this._documentRect;
+        }
+        // The top-left-corner of the viewport is determined by the scroll position of the document
+        // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about
+        // whether `document.body` or `document.documentElement` is the scrolled element, so reading
+        // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of
+        // `document.documentElement` works consistently, where the `top` and `left` values will
+        // equal negative the scroll position.
+        var /** @type {?} */ top = -((documentRect)).top || document.body.scrollTop || window.scrollY ||
+            document.documentElement.scrollTop || 0;
+        var /** @type {?} */ left = -((documentRect)).left || document.body.scrollLeft || window.scrollX ||
+            document.documentElement.scrollLeft || 0;
+        return { top: top, left: left };
+    };
+    /**
+     * Returns a stream that emits whenever the size of the viewport changes.
+     * @param {?=} throttleTime
+     * @return {?}
+     */
+    ViewportRuler.prototype.change = function (throttleTime) {
+        if (throttleTime === void 0) { throttleTime = DEFAULT_RESIZE_TIME; }
+        return throttleTime > 0 ? rxjs_operator_auditTime.auditTime.call(this._change, throttleTime) : this._change;
+    };
+    /**
+     * Caches the latest client rectangle of the document element.
+     * @return {?}
+     */
+    ViewportRuler.prototype._cacheViewportGeometry = function () {
+        this._documentRect = document.documentElement.getBoundingClientRect();
+    };
+    ViewportRuler.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    ViewportRuler.ctorParameters = function () { return [
+        { type: _angular_cdk_platform.Platform, },
+        { type: _angular_core.NgZone, },
+        { type: ScrollDispatcher, },
+    ]; };
+    return ViewportRuler;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentRuler
+ * @param {?} platform
+ * @param {?} ngZone
+ * @param {?} scrollDispatcher
+ * @return {?}
+ */
+function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, platform, ngZone, scrollDispatcher) {
+    return parentRuler || new ViewportRuler(platform, ngZone, scrollDispatcher);
+}
+/**
+ * \@docs-private
+ */
+var VIEWPORT_RULER_PROVIDER = {
+    // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.
+    provide: ViewportRuler,
+    deps: [[new _angular_core.Optional(), new _angular_core.SkipSelf(), ViewportRuler], _angular_cdk_platform.Platform, _angular_core.NgZone, ScrollDispatcher],
+    useFactory: VIEWPORT_RULER_PROVIDER_FACTORY
+};
+
+var ScrollDispatchModule = (function () {
+    function ScrollDispatchModule() {
+    }
+    ScrollDispatchModule.decorators = [
+        { type: _angular_core.NgModule, args: [{
+                    imports: [_angular_cdk_platform.PlatformModule],
+                    exports: [Scrollable],
+                    declarations: [Scrollable],
+                    providers: [SCROLL_DISPATCHER_PROVIDER],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    ScrollDispatchModule.ctorParameters = function () { return []; };
+    return ScrollDispatchModule;
+}());
+
+exports.DEFAULT_SCROLL_TIME = DEFAULT_SCROLL_TIME;
+exports.ScrollDispatcher = ScrollDispatcher;
+exports.SCROLL_DISPATCHER_PROVIDER_FACTORY = SCROLL_DISPATCHER_PROVIDER_FACTORY;
+exports.SCROLL_DISPATCHER_PROVIDER = SCROLL_DISPATCHER_PROVIDER;
+exports.Scrollable = Scrollable;
+exports.DEFAULT_RESIZE_TIME = DEFAULT_RESIZE_TIME;
+exports.ViewportRuler = ViewportRuler;
+exports.VIEWPORT_RULER_PROVIDER_FACTORY = VIEWPORT_RULER_PROVIDER_FACTORY;
+exports.VIEWPORT_RULER_PROVIDER = VIEWPORT_RULER_PROVIDER;
+exports.ScrollDispatchModule = ScrollDispatchModule;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-scrolling.umd.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js.map
new file mode 100644
index 0000000..6a22073
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-scrolling.umd.js","sources":["cdk/scrolling.es5.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, Injectable, NgModule, NgZone, Optional, Renderer2, SkipSelf } from '@angular/core';\nimport { Platform, PlatformModule } from '@angular/cdk/platform';\nimport { Subject } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { fromEvent } from 'rxjs/observable/fromEvent';\nimport { auditTime } from 'rxjs/operator/auditTime';\nimport { merge } from 'rxjs/observable/merge';\nimport { of } from 'rxjs/observable/of';\n\n/**\n * Time in ms to throttle the scrolling events by default.\n */\nvar DEFAULT_SCROLL_TIME = 20;\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrol
 lable references emit a scrolled event.\n */\nvar ScrollDispatcher = (function () {\n    /**\n     * @param {?} _ngZone\n     * @param {?} _platform\n     */\n    function ScrollDispatcher(_ngZone, _platform) {\n        this._ngZone = _ngZone;\n        this._platform = _platform;\n        /**\n         * Subject for notifying that a registered scrollable reference element has been scrolled.\n         */\n        this._scrolled = new Subject();\n        /**\n         * Keeps track of the global `scroll` and `resize` subscriptions.\n         */\n        this._globalSubscription = null;\n        /**\n         * Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards.\n         */\n        this._scrolledCount = 0;\n        /**\n         * Map of all the scrollable references that are registered with the service and their\n         * scroll event subscriptions.\n         */\n        this.scrollableReferences = new Map();\n    }\n    /**\n     * Registers
  a Scrollable with the service and listens for its scrolled events. When the\n     * scrollable is scrolled, the service emits the event in its scrolled observable.\n     * @param {?} scrollable Scrollable instance to be registered.\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.register = function (scrollable) {\n        var _this = this;\n        var /** @type {?} */ scrollSubscription = scrollable.elementScrolled().subscribe(function () { return _this._notify(); });\n        this.scrollableReferences.set(scrollable, scrollSubscription);\n    };\n    /**\n     * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\n     * @param {?} scrollable Scrollable instance to be deregistered.\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.deregister = function (scrollable) {\n        var /** @type {?} */ scrollableReference = this.scrollableReferences.get(scrollable);\n        if (scrollableReference) {\n            scrollableRefe
 rence.unsubscribe();\n            this.scrollableReferences.delete(scrollable);\n        }\n    };\n    /**\n     * Subscribes to an observable that emits an event whenever any of the registered Scrollable\n     * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n     * to override the default \"throttle\" time.\n     * @param {?=} auditTimeInMs\n     * @param {?=} callback\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.scrolled = function (auditTimeInMs, callback) {\n        var _this = this;\n        if (auditTimeInMs === void 0) { auditTimeInMs = DEFAULT_SCROLL_TIME; }\n        // Scroll events can only happen on the browser, so do nothing if we're not on the browser.\n        if (!this._platform.isBrowser) {\n            return Subscription.EMPTY;\n        }\n        // In the case of a 0ms delay, use an observable without auditTime\n        // since it does add a perceptible delay in processing overhead.\n        var /** @t
 ype {?} */ observable = auditTimeInMs > 0 ?\n            auditTime.call(this._scrolled.asObservable(), auditTimeInMs) :\n            this._scrolled.asObservable();\n        this._scrolledCount++;\n        if (!this._globalSubscription) {\n            this._globalSubscription = this._ngZone.runOutsideAngular(function () {\n                return fromEvent(window.document, 'scroll').subscribe(function () { return _this._notify(); });\n            });\n        }\n        // Note that we need to do the subscribing from here, in order to be able to remove\n        // the global event listeners once there are no more subscriptions.\n        var /** @type {?} */ subscription = observable.subscribe(callback);\n        subscription.add(function () {\n            _this._scrolledCount--;\n            if (_this._globalSubscription && !_this.scrollableReferences.size && !_this._scrolledCount) {\n                _this._globalSubscription.unsubscribe();\n                _this._globalSubscription =
  null;\n            }\n        });\n        return subscription;\n    };\n    /**\n     * Returns all registered Scrollables that contain the provided element.\n     * @param {?} elementRef\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.getScrollContainers = function (elementRef) {\n        var _this = this;\n        var /** @type {?} */ scrollingContainers = [];\n        this.scrollableReferences.forEach(function (_subscription, scrollable) {\n            if (_this.scrollableContainsElement(scrollable, elementRef)) {\n                scrollingContainers.push(scrollable);\n            }\n        });\n        return scrollingContainers;\n    };\n    /**\n     * Returns true if the element is contained within the provided Scrollable.\n     * @param {?} scrollable\n     * @param {?} elementRef\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.scrollableContainsElement = function (scrollable, elementRef) {\n        var /** @type {?} */ element = elementRef.nativ
 eElement;\n        var /** @type {?} */ scrollableElement = scrollable.getElementRef().nativeElement;\n        // Traverse through the element parents until we reach null, checking if any of the elements\n        // are the scrollable's element.\n        do {\n            if (element == scrollableElement) {\n                return true;\n            }\n        } while (element = element.parentElement);\n        return false;\n    };\n    /**\n     * Sends a notification that a scroll event has been fired.\n     * @return {?}\n     */\n    ScrollDispatcher.prototype._notify = function () {\n        this._scrolled.next();\n    };\n    ScrollDispatcher.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    ScrollDispatcher.ctorParameters = function () { return [\n        { type: NgZone, },\n        { type: Platform, },\n    ]; };\n    return ScrollDispatcher;\n}());\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} ngZone\
 n * @param {?} platform\n * @return {?}\n */\nfunction SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {\n    return parentDispatcher || new ScrollDispatcher(ngZone, platform);\n}\n/**\n * \\@docs-private\n */\nvar SCROLL_DISPATCHER_PROVIDER = {\n    // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.\n    provide: ScrollDispatcher,\n    deps: [[new Optional(), new SkipSelf(), ScrollDispatcher], NgZone, Platform],\n    useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY\n};\n\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nvar Scrollable = (function () {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _scroll\n     * @param {?} _ngZone\n     * @param {?} _renderer\n     */\n    function Scrollable(_elementRef, _scroll, _ng
 Zone, _renderer) {\n        this._elementRef = _elementRef;\n        this._scroll = _scroll;\n        this._ngZone = _ngZone;\n        this._renderer = _renderer;\n        this._elementScrolled = new Subject();\n    }\n    /**\n     * @return {?}\n     */\n    Scrollable.prototype.ngOnInit = function () {\n        var _this = this;\n        this._scrollListener = this._ngZone.runOutsideAngular(function () {\n            return _this._renderer.listen(_this.getElementRef().nativeElement, 'scroll', function (event) {\n                _this._elementScrolled.next(event);\n            });\n        });\n        this._scroll.register(this);\n    };\n    /**\n     * @return {?}\n     */\n    Scrollable.prototype.ngOnDestroy = function () {\n        this._scroll.deregister(this);\n        if (this._scrollListener) {\n            this._scrollListener();\n            this._scrollListener = null;\n        }\n    };\n    /**\n     * Returns observable that emits when a scroll event is fired on th
 e host element.\n     * @return {?}\n     */\n    Scrollable.prototype.elementScrolled = function () {\n        return this._elementScrolled.asObservable();\n    };\n    /**\n     * @return {?}\n     */\n    Scrollable.prototype.getElementRef = function () {\n        return this._elementRef;\n    };\n    Scrollable.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdk-scrollable], [cdkScrollable]'\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    Scrollable.ctorParameters = function () { return [\n        { type: ElementRef, },\n        { type: ScrollDispatcher, },\n        { type: NgZone, },\n        { type: Renderer2, },\n    ]; };\n    return Scrollable;\n}());\n\n/**\n * Time in ms to throttle the resize events by default.\n */\nvar DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * \\@docs-private\n */\nvar ViewportRuler = (function () {\n    /**\n     * @param {?} pla
 tform\n     * @param {?} ngZone\n     * @param {?} scrollDispatcher\n     */\n    function ViewportRuler(platform, ngZone, scrollDispatcher) {\n        var _this = this;\n        this._change = platform.isBrowser ? ngZone.runOutsideAngular(function () {\n            return merge(fromEvent(window, 'resize'), fromEvent(window, 'orientationchange'));\n        }) : of();\n        // Subscribe to scroll and resize events and update the document rectangle on changes.\n        this._invalidateCacheSubscriptions = [\n            scrollDispatcher.scrolled(0, function () { return _this._cacheViewportGeometry(); }),\n            this.change().subscribe(function () { return _this._cacheViewportGeometry(); })\n        ];\n    }\n    /**\n     * @return {?}\n     */\n    ViewportRuler.prototype.ngOnDestroy = function () {\n        this._invalidateCacheSubscriptions.forEach(function (subscription) { return subscription.unsubscribe(); });\n    };\n    /**\n     * Gets a ClientRect for the viewport'
 s bounds.\n     * @param {?=} documentRect\n     * @return {?}\n     */\n    ViewportRuler.prototype.getViewportRect = function (documentRect) {\n        if (documentRect === void 0) { documentRect = this._documentRect; }\n        // Cache the document bounding rect so that we don't recompute it for multiple calls.\n        if (!documentRect) {\n            this._cacheViewportGeometry();\n            documentRect = this._documentRect;\n        }\n        // Use the document element's bounding rect rather than the window scroll properties\n        // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n        // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n        // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n        // can disagree when the page is pinch-zoomed (on devices that support touch).\n        // See https://bugs.chromium.org/p/chromium/issues/detail?id=4
 89206#c4\n        // We use the documentElement instead of the body because, by default (without a css reset)\n        // browsers typically give the document body an 8px margin, which is not included in\n        // getBoundingClientRect().\n        var /** @type {?} */ scrollPosition = this.getViewportScrollPosition(documentRect);\n        var /** @type {?} */ height = window.innerHeight;\n        var /** @type {?} */ width = window.innerWidth;\n        return {\n            top: scrollPosition.top,\n            left: scrollPosition.left,\n            bottom: scrollPosition.top + height,\n            right: scrollPosition.left + width,\n            height: height,\n            width: width,\n        };\n    };\n    /**\n     * Gets the (top, left) scroll position of the viewport.\n     * @param {?=} documentRect\n     * @return {?}\n     */\n    ViewportRuler.prototype.getViewportScrollPosition = function (documentRect) {\n        if (documentRect === void 0) { documentRect = this.
 _documentRect; }\n        // Cache the document bounding rect so that we don't recompute it for multiple calls.\n        if (!documentRect) {\n            this._cacheViewportGeometry();\n            documentRect = this._documentRect;\n        }\n        // The top-left-corner of the viewport is determined by the scroll position of the document\n        // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n        // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n        // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n        // `document.documentElement` works consistently, where the `top` and `left` values will\n        // equal negative the scroll position.\n        var /** @type {?} */ top = -((documentRect)).top || document.body.scrollTop || window.scrollY ||\n            document.documentElement.scrollTop || 0;\n        var /** @type {?} */ left = -((documentR
 ect)).left || document.body.scrollLeft || window.scrollX ||\n            document.documentElement.scrollLeft || 0;\n        return { top: top, left: left };\n    };\n    /**\n     * Returns a stream that emits whenever the size of the viewport changes.\n     * @param {?=} throttleTime\n     * @return {?}\n     */\n    ViewportRuler.prototype.change = function (throttleTime) {\n        if (throttleTime === void 0) { throttleTime = DEFAULT_RESIZE_TIME; }\n        return throttleTime > 0 ? auditTime.call(this._change, throttleTime) : this._change;\n    };\n    /**\n     * Caches the latest client rectangle of the document element.\n     * @return {?}\n     */\n    ViewportRuler.prototype._cacheViewportGeometry = function () {\n        this._documentRect = document.documentElement.getBoundingClientRect();\n    };\n    ViewportRuler.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    ViewportRuler.ctorParameters = function () { return [\n     
    { type: Platform, },\n        { type: NgZone, },\n        { type: ScrollDispatcher, },\n    ]; };\n    return ViewportRuler;\n}());\n/**\n * \\@docs-private\n * @param {?} parentRuler\n * @param {?} platform\n * @param {?} ngZone\n * @param {?} scrollDispatcher\n * @return {?}\n */\nfunction VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, platform, ngZone, scrollDispatcher) {\n    return parentRuler || new ViewportRuler(platform, ngZone, scrollDispatcher);\n}\n/**\n * \\@docs-private\n */\nvar VIEWPORT_RULER_PROVIDER = {\n    // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.\n    provide: ViewportRuler,\n    deps: [[new Optional(), new SkipSelf(), ViewportRuler], Platform, NgZone, ScrollDispatcher],\n    useFactory: VIEWPORT_RULER_PROVIDER_FACTORY\n};\n\nvar ScrollDispatchModule = (function () {\n    function ScrollDispatchModule() {\n    }\n    ScrollDispatchModule.decorators = [\n        { type: NgModule, args: [{\n                    import
 s: [PlatformModule],\n                    exports: [Scrollable],\n                    declarations: [Scrollable],\n                    providers: [SCROLL_DISPATCHER_PROVIDER],\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    ScrollDispatchModule.ctorParameters = function () { return []; };\n    return ScrollDispatchModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DEFAULT_SCROLL_TIME, ScrollDispatcher, SCROLL_DISPATCHER_PROVIDER_FACTORY, SCROLL_DISPATCHER_PROVIDER, Scrollable, DEFAULT_RESIZE_TIME, ViewportRuler, VIEWPORT_RULER_PROVIDER_FACTORY, VIEWPORT_RULER_PROVIDER, ScrollDispatchModule };\n//# sourceMappingURL=scrolling.es5.js.map\n"],"names":["Subject","Subscription","auditTime","fromEvent","Injectable","NgZone","Platform","Optional","SkipSelf","Directive","ElementRef","Renderer2","merge","of","NgModule","PlatformModule"],"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/bundles/cdk-scrolling.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js
new file mode 100644
index 0000000..d6b307e
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!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

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js.map
new file mode 100644
index 0000000..1b2f811
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-scrolling.umd.min.js.map
@@ -0,0 +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


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js
new file mode 100644
index 0000000..c086901
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/cdk/portal"),require("rxjs/Subject"),require("@angular/cdk/scrolling"),require("rxjs/Subscription"),require("@angular/cdk/bidi"),require("@angular/cdk/coercion"),require("@angular/cdk/keycodes")):"function"==typeof define&&define.amd?define(["exports","@angular/core","@angular/cdk/portal","rxjs/Subject","@angular/cdk/scrolling","rxjs/Subscription","@angular/cdk/bidi","@angular/cdk/coercion","@angular/cdk/keycodes"],e):e((t.ng=t.ng||{},t.ng.cdk=t.ng.cdk||{},t.ng.cdk.overlay=t.ng.cdk.overlay||{}),t.ng.core,t.ng.cdk.portal,t.Rx,t.ng.cdk.scrolling,t.Rx,t.ng.cdk.bidi,t.ng.cdk.coercion,t.ng.cdk.keycodes)}(this,function(t,e,i,n,o,r,s,c,a){"use strict";function l(t,e){function i(){this.constructor=t}_(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function p(t){return"string"==typeof t?t:t+"px"}function h(t,e){return e.some(function(e){var i=t.
 bottom<e.top,n=t.top>e.bottom,o=t.right<e.left,r=t.left>e.right;return i||n||o||r})}function u(t,e){return e.some(function(e){var i=t.top<e.top,n=t.bottom>e.bottom,o=t.left<e.left,r=t.right>e.right;return i||n||o||r})}function d(t){return t||new P}function f(){return Error("Scroll strategy has already been attached.")}function y(t){return function(){return t.scrollStrategies.reposition()}}var _=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])},g=function(){function t(){}return t.prototype.enable=function(){},t.prototype.disable=function(){},t.prototype.attach=function(){},t}(),b=function(){function t(t){var e=this;this.scrollStrategy=new g,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.direction="ltr",t&&Object.keys(t).forEach(function(i){return e[i]=t[i]})}return t}(),m=function(){function t(t,e,i,o){this._portalHost=t,this._pane=e,this._conf
 ig=i,this._ngZone=o,this._backdropElement=null,this._backdropClick=new n.Subject,this._attachments=new n.Subject,this._detachments=new n.Subject,i.scrollStrategy&&i.scrollStrategy.attach(this)}return Object.defineProperty(t.prototype,"overlayElement",{get:function(){return this._pane},enumerable:!0,configurable:!0}),t.prototype.attach=function(t){var e=this,i=this._portalHost.attach(t);return this._config.positionStrategy&&this._config.positionStrategy.attach(this),this._updateStackingOrder(),this.updateSize(),this.updateDirection(),this.updatePosition(),this._config.scrollStrategy&&this._config.scrollStrategy.enable(),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&(Array.isArray(this._config.panelClass)?this._config.panelClass.forEach(function(t){return e._pane.classList.add(t)}):this._pane.classList.add(this._config.panelClass)),this._attachments.next(),i},t.prototype.detach=function(){this.detachBackdrop(),this._togglePoint
 erEvents(!1),this._config.positionStrategy&&this._config.positionStrategy.detach&&this._config.positionStrategy.detach(),this._config.scrollStrategy&&this._config.scrollStrategy.disable();var t=this._portalHost.detach();return this._detachments.next(),t},t.prototype.dispose=function(){this._config.positionStrategy&&this._config.positionStrategy.dispose(),this._config.scrollStrategy&&this._config.scrollStrategy.disable(),this.detachBackdrop(),this._portalHost.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._detachments.next(),this._detachments.complete()},t.prototype.hasAttached=function(){return this._portalHost.hasAttached()},t.prototype.backdropClick=function(){return this._backdropClick.asObservable()},t.prototype.attachments=function(){return this._attachments.asObservable()},t.prototype.detachments=function(){return this._detachments.asObservable()},t.prototype.getConfig=function(){return this._config},t.prototype.updatePosition=function(){this._confi
 g.positionStrategy&&this._config.positionStrategy.apply()},t.prototype.updateDirection=function(){this._pane.setAttribute("dir",this._config.direction)},t.prototype.updateSize=function(){(this._config.width||0===this._config.width)&&(this._pane.style.width=p(this._config.width)),(this._config.height||0===this._config.height)&&(this._pane.style.height=p(this._config.height)),(this._config.minWidth||0===this._config.minWidth)&&(this._pane.style.minWidth=p(this._config.minWidth)),(this._config.minHeight||0===this._config.minHeight)&&(this._pane.style.minHeight=p(this._config.minHeight)),(this._config.maxWidth||0===this._config.maxWidth)&&(this._pane.style.maxWidth=p(this._config.maxWidth)),(this._config.maxHeight||0===this._config.maxHeight)&&(this._pane.style.maxHeight=p(this._config.maxHeight))},t.prototype._togglePointerEvents=function(t){this._pane.style.pointerEvents=t?"auto":"none"},t.prototype._attachBackdrop=function(){var t=this;this._backdropElement=document.createElement("di
 v"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._config.backdropClass&&this._backdropElement.classList.add(this._config.backdropClass),this._pane.parentElement.insertBefore(this._backdropElement,this._pane),this._backdropElement.addEventListener("click",function(){return t._backdropClick.next(null)}),requestAnimationFrame(function(){t._backdropElement&&t._backdropElement.classList.add("cdk-overlay-backdrop-showing")})},t.prototype._updateStackingOrder=function(){this._pane.nextSibling&&this._pane.parentNode.appendChild(this._pane)},t.prototype.detachBackdrop=function(){var t=this,e=this._backdropElement;if(e){var i=function(){e&&e.parentNode&&e.parentNode.removeChild(e),t._backdropElement==e&&(t._backdropElement=null)};e.classList.remove("cdk-overlay-backdrop-showing"),this._config.backdropClass&&e.classList.remove(this._config.backdropClass),e.addEventListener("transitionend",i),e.style.pointerEvents="none",this._ngZone.runOutsideAngular(function(){setTimeout(i
 ,500)})}},t}(),v=function(){function t(t,e){this.originX=t.originX,this.originY=t.originY,this.overlayX=e.overlayX,this.overlayY=e.overlayY}return t}(),k=function(){function t(){}return t}(),O=function(){function t(t,e){this.connectionPair=t,this.scrollableViewProperties=e}return t.ctorParameters=function(){return[{type:v},{type:k,decorators:[{type:e.Optional}]}]},t}(),S=function(){function t(t,e,i,o){this._connectedTo=i,this._viewportRuler=o,this._dir="ltr",this._offsetX=0,this._offsetY=0,this.scrollables=[],this._resizeSubscription=r.Subscription.EMPTY,this._preferredPositions=[],this._onPositionChange=new n.Subject,this._origin=this._connectedTo.nativeElement,this.withFallbackPosition(t,e)}return Object.defineProperty(t.prototype,"_isRtl",{get:function(){return"rtl"===this._dir},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onPositionChange",{get:function(){return this._onPositionChange.asObservable()},enumerable:!0,configurable:!0}),Object.defineProperty(t.p
 rototype,"positions",{get:function(){return this._preferredPositions},enumerable:!0,configurable:!0}),t.prototype.attach=function(t){var e=this;this._overlayRef=t,this._pane=t.overlayElement,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(function(){return e.apply()})},t.prototype.dispose=function(){this._resizeSubscription.unsubscribe()},t.prototype.detach=function(){this._resizeSubscription.unsubscribe()},t.prototype.apply=function(){for(var t,e,i=this._pane,n=this._origin.getBoundingClientRect(),o=i.getBoundingClientRect(),r=this._viewportRuler.getViewportRect(),s=0,c=this._preferredPositions;s<c.length;s++){var a=c[s],l=this._getOriginConnectionPoint(n,a),p=this._getOverlayPoint(l,o,r,a);if(p.fitsInViewport)return this._setElementPosition(i,o,p,a),void(this._lastConnectedPosition=a);(!t||t.visibleArea<p.visibleArea)&&(t=p,e=a)}this._setElementPosition(i,o,t,e)},t.prototype.recalculateLastPosition=function(){var t=this._origi
 n.getBoundingClientRect(),e=this._pane.getBoundingClientRect(),i=this._viewportRuler.getViewportRect(),n=this._lastConnectedPosition||this._preferredPositions[0],o=this._getOriginConnectionPoint(t,n),r=this._getOverlayPoint(o,e,i,n);this._setElementPosition(this._pane,e,r,n)},t.prototype.withScrollableContainers=function(t){this.scrollables=t},t.prototype.withFallbackPosition=function(t,e){return this._preferredPositions.push(new v(t,e)),this},t.prototype.withDirection=function(t){return this._dir=t,this},t.prototype.withOffsetX=function(t){return this._offsetX=t,this},t.prototype.withOffsetY=function(t){return this._offsetY=t,this},t.prototype._getStartX=function(t){return this._isRtl?t.right:t.left},t.prototype._getEndX=function(t){return this._isRtl?t.left:t.right},t.prototype._getOriginConnectionPoint=function(t,e){var i,n=this._getStartX(t),o=this._getEndX(t);i="center"==e.originX?n+t.width/2:"start"==e.originX?n:o;var r;return r="center"==e.originY?t.top+t.height/2:"top"==e.or
 iginY?t.top:t.bottom,{x:i,y:r}},t.prototype._getOverlayPoint=function(t,e,i,n){var o;o="center"==n.overlayX?-e.width/2:"start"===n.overlayX?this._isRtl?-e.width:0:this._isRtl?0:-e.width;var r;r="center"==n.overlayY?-e.height/2:"top"==n.overlayY?0:-e.height;var s=t.x+o+this._offsetX,c=t.y+r+this._offsetY,a=0-s,l=s+e.width-i.width,p=0-c,h=c+e.height-i.height,u=this._subtractOverflows(e.width,a,l),d=this._subtractOverflows(e.height,p,h),f=u*d;return{x:s,y:c,fitsInViewport:e.width*e.height===f,visibleArea:f}},t.prototype._getScrollVisibility=function(t){var e=this._origin.getBoundingClientRect(),i=t.getBoundingClientRect(),n=this.scrollables.map(function(t){return t.getElementRef().nativeElement.getBoundingClientRect()});return{isOriginClipped:u(e,n),isOriginOutsideView:h(e,n),isOverlayClipped:u(i,n),isOverlayOutsideView:h(i,n)}},t.prototype._setElementPosition=function(t,e,i,n){var o,r="bottom"===n.overlayY?"bottom":"top",s="top"===r?i.y:document.documentElement.clientHeight-(i.y+e.hei
 ght);o="rtl"===this._dir?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left";var c="left"===o?i.x:document.documentElement.clientWidth-(i.x+e.width);["top","bottom","left","right"].forEach(function(e){return t.style[e]=null}),t.style[r]=s+"px",t.style[o]=c+"px";var a=this._getScrollVisibility(t),l=new O(n,a);this._onPositionChange.next(l)},t.prototype._subtractOverflows=function(t){for(var e=[],i=1;i<arguments.length;i++)e[i-1]=arguments[i];return e.reduce(function(t,e){return t-Math.max(e,0)},t)},t}(),w=function(){function t(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._leftOffset="",this._rightOffset="",this._alignItems="",this._justifyContent="",this._width="",this._height="",this._wrapper=null}return t.prototype.attach=function(t){this._overlayRef=t},t.prototype.top=function(t){return void 0===t&&(t=""),this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this},t.prototype.left=function(t){return void 0===t&&(t=""),t
 his._rightOffset="",this._leftOffset=t,this._justifyContent="flex-start",this},t.prototype.bottom=function(t){return void 0===t&&(t=""),this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this},t.prototype.right=function(t){return void 0===t&&(t=""),this._leftOffset="",this._rightOffset=t,this._justifyContent="flex-end",this},t.prototype.width=function(t){return void 0===t&&(t=""),this._width=t,"100%"===t&&this.left("0px"),this},t.prototype.height=function(t){return void 0===t&&(t=""),this._height=t,"100%"===t&&this.top("0px"),this},t.prototype.centerHorizontally=function(t){return void 0===t&&(t=""),this.left(t),this._justifyContent="center",this},t.prototype.centerVertically=function(t){return void 0===t&&(t=""),this.top(t),this._alignItems="center",this},t.prototype.apply=function(){var t=this._overlayRef.overlayElement;!this._wrapper&&t.parentNode&&(this._wrapper=document.createElement("div"),this._wrapper.classList.add("cdk-global-overlay-wrapper"),t.parentNode.
 insertBefore(this._wrapper,t),this._wrapper.appendChild(t));var e=t.style,i=t.parentNode.style;e.position=this._cssPosition,e.marginTop=this._topOffset,e.marginLeft=this._leftOffset,e.marginBottom=this._bottomOffset,e.marginRight=this._rightOffset,e.width=this._width,e.height=this._height,i.justifyContent=this._justifyContent,i.alignItems=this._alignItems},t.prototype.dispose=function(){this._wrapper&&this._wrapper.parentNode&&(this._wrapper.parentNode.removeChild(this._wrapper),this._wrapper=null)},t}(),C=function(){function t(t){this._viewportRuler=t}return t.prototype.global=function(){return new w},t.prototype.connectedTo=function(t,e,i){return new S(e,i,t,this._viewportRuler)},t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[{type:o.ViewportRuler}]},t}(),P=function(){function t(){}return t.prototype.ngOnDestroy=function(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)},t.proto
 type.getContainerElement=function(){return this._containerElement||this._createContainer(),this._containerElement},t.prototype._createContainer=function(){var t=document.createElement("div");t.classList.add("cdk-overlay-container"),document.body.appendChild(t),this._containerElement=t},t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[]},t}(),E={provide:P,deps:[[new e.Optional,new e.SkipSelf,P]],useFactory:d},R=function(){function t(t){this._scrollDispatcher=t,this._scrollSubscription=null}return t.prototype.attach=function(t){if(this._overlayRef)throw f();this._overlayRef=t},t.prototype.enable=function(){var t=this;this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(0,function(){t._overlayRef.hasAttached()&&t._overlayRef.detach(),t.disable()}))},t.prototype.disable=function(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)},t}(),j=function(){function t(t){this._viewportRuler=t,this.
 _previousHTMLStyles={top:"",left:""},this._isEnabled=!1}return t.prototype.attach=function(){},t.prototype.enable=function(){if(this._canBeEnabled()){var t=document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=-this._previousScrollPosition.left+"px",t.style.top=-this._previousScrollPosition.top+"px",t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}},t.prototype.disable=function(){this._isEnabled&&(this._isEnabled=!1,document.documentElement.style.left=this._previousHTMLStyles.left,document.documentElement.style.top=this._previousHTMLStyles.top,document.documentElement.classList.remove("cdk-global-scrollblock"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top))},t.prototype._canBeEnabled=function(){if(document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)ret
 urn!1;var t=document.body,e=this._viewportRuler.getViewportRect();return t.scrollHeight>e.height||t.scrollWidth>e.width},t}(),I=function(){function t(t,e){this._scrollDispatcher=t,this._config=e,this._scrollSubscription=null}return t.prototype.attach=function(t){if(this._overlayRef)throw f();this._overlayRef=t},t.prototype.enable=function(){var t=this;if(!this._scrollSubscription){var e=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(e,function(){t._overlayRef.updatePosition()})}},t.prototype.disable=function(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)},t}(),X=function(){function t(t,e){var i=this;this._scrollDispatcher=t,this._viewportRuler=e,this.noop=function(){return new g},this.close=function(){return new R(i._scrollDispatcher)},this.block=function(){return new j(i._viewportRuler)},this.reposition=function(t){return new I(i._scrollDispatcher,t)}}return t.decorators=[{type:
 e.Injectable}],t.ctorParameters=function(){return[{type:o.ScrollDispatcher},{type:o.ViewportRuler}]},t}(),x=0,Y=new b,H=function(){function t(t,e,i,n,o,r,s){this.scrollStrategies=t,this._overlayContainer=e,this._componentFactoryResolver=i,this._positionBuilder=n,this._appRef=o,this._injector=r,this._ngZone=s}return t.prototype.create=function(t){void 0===t&&(t=Y);var e=this._createPaneElement(),i=this._createPortalHost(e);return new m(i,e,t,this._ngZone)},t.prototype.position=function(){return this._positionBuilder},t.prototype._createPaneElement=function(){var t=document.createElement("div");return t.id="cdk-overlay-"+x++,t.classList.add("cdk-overlay-pane"),this._overlayContainer.getContainerElement().appendChild(t),t},t.prototype._createPortalHost=function(t){return new i.DomPortalHost(t,this._componentFactoryResolver,this._appRef,this._injector)},t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[{type:X},{type:P},{type:e.ComponentFactoryResolver},{type:C},{typ
 e:e.ApplicationRef},{type:e.Injector},{type:e.NgZone}]},t}(),B=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return l(i,t),i.prototype._createContainer=function(){var e=this;t.prototype._createContainer.call(this),this._adjustParentForFullscreenChange(),this._addFullscreenChangeListener(function(){return e._adjustParentForFullscreenChange()})},i.prototype._adjustParentForFullscreenChange=function(){if(this._containerElement){(this.getFullscreenElement()||document.body).appendChild(this._containerElement)}},i.prototype._addFullscreenChangeListener=function(t){document.fullscreenEnabled?document.addEventListener("fullscreenchange",t):document.webkitFullscreenEnabled?document.addEventListener("webkitfullscreenchange",t):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenchange",t):document.msFullscreenEnabled&&document.addEventListener("MSFullscreenChange",t)},i.prototype.getFullscreenElement=function(){return document.fullscreenElement||doc
 ument.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||null},i.decorators=[{type:e.Injectable}],i.ctorParameters=function(){return[]},i}(P),L=[new v({originX:"start",originY:"bottom"},{overlayX:"start",overlayY:"top"}),new v({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"})],D=new e.InjectionToken("mat-connected-overlay-scroll-strategy"),F={provide:D,deps:[H],useFactory:y},W=function(){function t(t){this.elementRef=t}return t.decorators=[{type:e.Directive,args:[{selector:"[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]",exportAs:"cdkOverlayOrigin"}]}],t.ctorParameters=function(){return[{type:e.ElementRef}]},t}(),V=function(){function t(t,n,o,s,c,a){this._overlay=t,this._renderer=n,this._scrollStrategy=c,this._dir=a,this._hasBackdrop=!1,this._backdropSubscription=r.Subscription.EMPTY,this._positionSubscription=r.Subscription.EMPTY,this._offsetX=0,this._offsetY=0,this._escapeListener=function(){},this.scrollStrategy=t
 his._scrollStrategy(),this.open=!1,this.backdropClick=new e.EventEmitter,this.positionChange=new e.EventEmitter,this.attach=new e.EventEmitter,this.detach=new e.EventEmitter,this._templatePortal=new i.TemplatePortal(o,s)}return Object.defineProperty(t.prototype,"offsetX",{get:function(){return this._offsetX},set:function(t){this._offsetX=t,this._position&&this._position.withOffsetX(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offsetY",{get:function(){return this._offsetY},set:function(t){this._offsetY=t,this._position&&this._position.withOffsetY(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasBackdrop",{get:function(){return this._hasBackdrop},set:function(t){this._hasBackdrop=c.coerceBooleanProperty(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedOrigin",{get:function(){return this.origin},set:function(t){this.origin=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecated
 Positions",{get:function(){return this.positions},set:function(t){this.positions=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedOffsetX",{get:function(){return this.offsetX},set:function(t){this.offsetX=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedOffsetY",{get:function(){return this.offsetY},set:function(t){this.offsetY=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedWidth",{get:function(){return this.width},set:function(t){this.width=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedHeight",{get:function(){return this.height},set:function(t){this.height=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedMinWidth",{get:function(){return this.minWidth},set:function(t){this.minWidth=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedMinHeight",{get:function(){return this.minHeight},set:functio
 n(t){this.minHeight=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedBackdropClass",{get:function(){return this.backdropClass},set:function(t){this.backdropClass=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedScrollStrategy",{get:function(){return this.scrollStrategy},set:function(t){this.scrollStrategy=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedOpen",{get:function(){return this.open},set:function(t){this.open=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_deprecatedHasBackdrop",{get:function(){return this.hasBackdrop},set:function(t){this.hasBackdrop=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"overlayRef",{get:function(){return this._overlayRef},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dir",{get:function(){return this._dir?this._dir.value:"ltr"},enumerable:!0,configurable:!0}),t.prototype.ngOnDestroy=func
 tion(){this._destroyOverlay()},t.prototype.ngOnChanges=function(t){(t.open||t._deprecatedOpen)&&(this.open?this._attachOverlay():this._detachOverlay())},t.prototype._createOverlay=function(){this.positions&&this.positions.length||(this.positions=L),this._overlayRef=this._overlay.create(this._buildConfig())},t.prototype._buildConfig=function(){var t=this._position=this._createPositionStrategy(),e=new b({positionStrategy:t,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(e.width=this.width),(this.height||0===this.height)&&(e.height=this.height),(this.minWidth||0===this.minWidth)&&(e.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(e.minHeight=this.minHeight),this.backdropClass&&(e.backdropClass=this.backdropClass),e},t.prototype._createPositionStrategy=function(){var t=this.positions[0],e={originX:t.originX,originY:t.originY},i={overlayX:t.overlayX,overlayY:t.overlayY},n=this._overlay.position().connectedTo(this.origi
 n.elementRef,e,i).withOffsetX(this.offsetX).withOffsetY(this.offsetY);return this._handlePositionChanges(n),n},t.prototype._handlePositionChanges=function(t){for(var e=this,i=1;i<this.positions.length;i++)t.withFallbackPosition({originX:this.positions[i].originX,originY:this.positions[i].originY},{overlayX:this.positions[i].overlayX,overlayY:this.positions[i].overlayY});this._positionSubscription=t.onPositionChange.subscribe(function(t){return e.positionChange.emit(t)})},t.prototype._attachOverlay=function(){var t=this;this._overlayRef||this._createOverlay(),this._position.withDirection(this.dir),this._overlayRef.getConfig().direction=this.dir,this._initEscapeListener(),this._overlayRef.hasAttached()||(this._overlayRef.attach(this._templatePortal),this.attach.emit()),this.hasBackdrop&&(this._backdropSubscription=this._overlayRef.backdropClick().subscribe(function(){t.backdropClick.emit()}))},t.prototype._detachOverlay=function(){this._overlayRef&&(this._overlayRef.detach(),this.deta
 ch.emit()),this._backdropSubscription.unsubscribe(),this._escapeListener()},t.prototype._destroyOverlay=function(){this._overlayRef&&this._overlayRef.dispose(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._escapeListener()},t.prototype._initEscapeListener=function(){var t=this;this._escapeListener=this._renderer.listen("document","keydown",function(e){e.keyCode===a.ESCAPE&&t._detachOverlay()})},t.decorators=[{type:e.Directive,args:[{selector:"[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]",exportAs:"cdkConnectedOverlay"}]}],t.ctorParameters=function(){return[{type:H},{type:e.Renderer2},{type:e.TemplateRef},{type:e.ViewContainerRef},{type:void 0,decorators:[{type:e.Inject,args:[D]}]},{type:s.Directionality,decorators:[{type:e.Optional}]}]},t.propDecorators={origin:[{type:e.Input,args:["cdkConnectedOverlayOrigin"]}],positions:[{type:e.Input,args:["cdkConnectedOverlayPositions"]}],offsetX:[{type:e.Input,args:["cdkConnectedO
 verlayOffsetX"]}],offsetY:[{type:e.Input,args:["cdkConnectedOverlayOffsetY"]}],width:[{type:e.Input,args:["cdkConnectedOverlayWidth"]}],height:[{type:e.Input,args:["cdkConnectedOverlayHeight"]}],minWidth:[{type:e.Input,args:["cdkConnectedOverlayMinWidth"]}],minHeight:[{type:e.Input,args:["cdkConnectedOverlayMinHeight"]}],backdropClass:[{type:e.Input,args:["cdkConnectedOverlayBackdropClass"]}],scrollStrategy:[{type:e.Input,args:["cdkConnectedOverlayScrollStrategy"]}],open:[{type:e.Input,args:["cdkConnectedOverlayOpen"]}],hasBackdrop:[{type:e.Input,args:["cdkConnectedOverlayHasBackdrop"]}],_deprecatedOrigin:[{type:e.Input,args:["origin"]}],_deprecatedPositions:[{type:e.Input,args:["positions"]}],_deprecatedOffsetX:[{type:e.Input,args:["offsetX"]}],_deprecatedOffsetY:[{type:e.Input,args:["offsetY"]}],_deprecatedWidth:[{type:e.Input,args:["width"]}],_deprecatedHeight:[{type:e.Input,args:["height"]}],_deprecatedMinWidth:[{type:e.Input,args:["minWidth"]}],_deprecatedMinHeight:[{type:e.Inp
 ut,args:["minHeight"]}],_deprecatedBackdropClass:[{type:e.Input,args:["backdropClass"]}],_deprecatedScrollStrategy:[{type:e.Input,args:["scrollStrategy"]}],_deprecatedOpen:[{type:e.Input,args:["open"]}],_deprecatedHasBackdrop:[{type:e.Input,args:["hasBackdrop"]}],backdropClick:[{type:e.Output}],positionChange:[{type:e.Output}],attach:[{type:e.Output}],detach:[{type:e.Output}]},t}(),M=[H,C,o.VIEWPORT_RULER_PROVIDER,E,F],T=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{imports:[i.PortalModule,o.ScrollDispatchModule],exports:[V,W,o.ScrollDispatchModule],declarations:[V,W],providers:[M,X]}]}],t.ctorParameters=function(){return[]},t}();t.Overlay=H,t.OverlayContainer=P,t.FullscreenOverlayContainer=B,t.OverlayRef=m,t.ConnectedOverlayDirective=V,t.OverlayOrigin=W,t.ViewportRuler=o.ViewportRuler,t.GlobalPositionStrategy=w,t.ConnectedPositionStrategy=S,t.VIEWPORT_RULER_PROVIDER=o.VIEWPORT_RULER_PROVIDER,t.OverlayConfig=b,t.ConnectionPositionPair=v,t.ScrollingVisibility=
 k,t.ConnectedOverlayPositionChange=O,t.Scrollable=o.Scrollable,t.ScrollDispatcher=o.ScrollDispatcher,t.ScrollStrategyOptions=X,t.RepositionScrollStrategy=I,t.CloseScrollStrategy=R,t.NoopScrollStrategy=g,t.BlockScrollStrategy=j,t.OVERLAY_PROVIDERS=M,t.OverlayModule=T,t.ɵb=E,t.ɵa=d,t.ɵc=D,t.ɵe=F,t.ɵd=y,t.ɵf=C,Object.defineProperty(t,"__esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-overlay.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js.map
new file mode 100644
index 0000000..2a45f9c
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-overlay.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-overlay.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","overlay","core","portal","Rx","scrolling","bidi","coercion","keycodes","this","_angular_core","_angular_cdk_portal","rxjs_Subject","_angular_cdk_scrolling","rxjs_Subscription","_angular_cdk_bidi","_angular_cdk_coercion","_angular_cdk_keycodes","__extends","d","b","__","constructor","extendStatics","prototype","Object","create","formatCssUnit","value","isElementScrolledOutsideView","element","scrollContainers","some","containerBounds","outsideAbove","bottom","top","outsideBelow","outsideLeft","right","left","outsideRight","isElementClippedByScrolling","scrollContainerRect","clippedAbove","clippedBelow","clippedLeft","clippedRight","OVERLAY_CONTAINER_PROVIDER_FACTORY","parentContainer","OverlayContainer","getMatScrollStrategyAlreadyAttachedError","Error","MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY","s
 crollStrategies","reposition","setPrototypeOf","__proto__","Array","p","hasOwnProperty","NoopScrollStrategy","enable","disable","attach","OverlayConfig","config","_this","scrollStrategy","panelClass","hasBackdrop","backdropClass","direction","keys","forEach","key","OverlayRef","_portalHost","_pane","_config","_ngZone","_backdropElement","_backdropClick","Subject","_attachments","_detachments","defineProperty","get","enumerable","configurable","attachResult","positionStrategy","_updateStackingOrder","updateSize","updateDirection","updatePosition","_togglePointerEvents","_attachBackdrop","isArray","cls","classList","add","next","detach","detachBackdrop","detachmentResult","dispose","complete","hasAttached","backdropClick","asObservable","attachments","detachments","getConfig","apply","setAttribute","width","style","height","minWidth","minHeight","maxWidth","maxHeight","enablePointer","pointerEvents","document","createElement","insertBefore","addEventListener","requestAnimationFrame","
 nextSibling","appendChild","backdropToDetach","finishDetach_1","parentNode","removeChild","remove","runOutsideAngular","setTimeout","ConnectionPositionPair","origin","originX","originY","overlayX","overlayY","ScrollingVisibility","ConnectedOverlayPositionChange","connectionPair","scrollableViewProperties","ctorParameters","type","decorators","Optional","ConnectedPositionStrategy","originPos","overlayPos","_connectedTo","_viewportRuler","_dir","_offsetX","_offsetY","scrollables","_resizeSubscription","Subscription","EMPTY","_preferredPositions","_onPositionChange","_origin","nativeElement","withFallbackPosition","overlayRef","_overlayRef","overlayElement","unsubscribe","change","subscribe","fallbackPoint","fallbackPosition","originRect","getBoundingClientRect","overlayRect","viewportRect","getViewportRect","_i","_a","length","pos","originPoint","_getOriginConnectionPoint","overlayPoint","_getOverlayPoint","fitsInViewport","_setElementPosition","_lastConnectedPosition","visibleArea","
 recalculateLastPosition","lastPosition","withScrollableContainers","push","withDirection","dir","withOffsetX","offset","withOffsetY","_getStartX","rect","_isRtl","_getEndX","x","originStartX","originEndX","y","overlayStartX","overlayStartY","leftOverflow","rightOverflow","topOverflow","bottomOverflow","visibleWidth","_subtractOverflows","visibleHeight","_getScrollVisibility","originBounds","overlayBounds","scrollContainerBounds","map","s","getElementRef","isOriginClipped","isOriginOutsideView","isOverlayClipped","isOverlayOutsideView","horizontalStyleProperty","verticalStyleProperty","documentElement","clientHeight","clientWidth","positionChange","overflows","arguments","reduce","currentValue","currentOverflow","Math","max","GlobalPositionStrategy","_cssPosition","_topOffset","_bottomOffset","_leftOffset","_rightOffset","_alignItems","_justifyContent","_width","_height","_wrapper","centerHorizontally","centerVertically","styles","parentStyles","position","marginTop","marginLeft","ma
 rginBottom","marginRight","justifyContent","alignItems","OverlayPositionBuilder","connectedTo","elementRef","Injectable","ViewportRuler","ngOnDestroy","_containerElement","getContainerElement","_createContainer","container","body","OVERLAY_CONTAINER_PROVIDER","provide","deps","SkipSelf","useFactory","CloseScrollStrategy","_scrollDispatcher","_scrollSubscription","scrolled","BlockScrollStrategy","_previousHTMLStyles","_isEnabled","_canBeEnabled","root","_previousScrollPosition","getViewportScrollPosition","window","scroll","contains","viewport","scrollHeight","scrollWidth","RepositionScrollStrategy","throttle","scrollThrottle","ScrollStrategyOptions","noop","close","block","ScrollDispatcher","nextUniqueId","defaultConfig","Overlay","_overlayContainer","_componentFactoryResolver","_positionBuilder","_appRef","_injector","pane","_createPaneElement","portalHost","_createPortalHost","id","DomPortalHost","ComponentFactoryResolver","ApplicationRef","Injector","NgZone","FullscreenOverlayCon
 tainer","_super","call","_adjustParentForFullscreenChange","_addFullscreenChangeListener","getFullscreenElement","fn","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","defaultPositionList","MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY","InjectionToken","MAT_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER","OverlayOrigin","Directive","args","selector","exportAs","ElementRef","ConnectedOverlayDirective","_overlay","_renderer","templateRef","viewContainerRef","_scrollStrategy","_hasBackdrop","_backdropSubscription","_positionSubscription","_escapeListener","open","EventEmitter","_templatePortal","TemplatePortal","set","offsetX","_position","offsetY","coerceBooleanProperty","positions","_positions","_minWidth","_minHeight","_backdropClass","_open","_destroyOverlay","ngOnChanges","changes","_attachOverlay","_detachOverlay","_createOverlay","_buildConfig","_createPositi
 onStrategy","overlayConfig","strategy","_handlePositionChanges","i","onPositionChange","emit","_initEscapeListener","listen","event","keyCode","ESCAPE","Renderer2","TemplateRef","ViewContainerRef","undefined","Inject","Directionality","propDecorators","Input","_deprecatedOrigin","_deprecatedPositions","_deprecatedOffsetX","_deprecatedOffsetY","_deprecatedWidth","_deprecatedHeight","_deprecatedMinWidth","_deprecatedMinHeight","_deprecatedBackdropClass","_deprecatedScrollStrategy","_deprecatedOpen","_deprecatedHasBackdrop","Output","OVERLAY_PROVIDERS","VIEWPORT_RULER_PROVIDER","OverlayModule","NgModule","imports","PortalModule","ScrollDispatchModule","declarations","providers","Scrollable","ɵb","ɵa","ɵc","ɵe","ɵd","ɵf"],"mappings":";;;;;;;CAOC,SAAUA,EAAQC,GACC,gBAAZC,UAA0C,mBAAXC,QAAyBF,EAAQC,QAASE,QAAQ,iBAAkBA,QAAQ,uBAAwBA,QAAQ,gBAAiBA,QAAQ,0BAA2BA,QAAQ,qBAAsBA,QAAQ,qBAAsBA,QAAQ,yBAA0BA,QAAQ,0BAC1R,kBAAXC,SAAyBA,OAAOC,IAAMD,QAAQ,UAAW,gBAAiB,sBAAuB,eAAgB,yBAA0B,oBAAqB,oBAAqB,wBA
 AyB,yBAA0BJ,GAC9OA,GAASD,EAAOO,GAAKP,EAAOO,OAAUP,EAAOO,GAAGC,IAAMR,EAAOO,GAAGC,QAAWR,EAAOO,GAAGC,IAAIC,QAAUT,EAAOO,GAAGC,IAAIC,aAAeT,EAAOO,GAAGG,KAAKV,EAAOO,GAAGC,IAAIG,OAAOX,EAAOY,GAAGZ,EAAOO,GAAGC,IAAIK,UAAUb,EAAOY,GAAGZ,EAAOO,GAAGC,IAAIM,KAAKd,EAAOO,GAAGC,IAAIO,SAASf,EAAOO,GAAGC,IAAIQ,WACxQC,KAAM,SAAWf,EAAQgB,EAAcC,EAAoBC,EAAaC,EAAuBC,EAAkBC,EAAkBC,EAAsBC,GAAyB,YAsBpL,SAASC,GAAUC,EAAGC,GAElB,QAASC,KAAOZ,KAAKa,YAAcH,EADnCI,EAAcJ,EAAGC,GAEjBD,EAAEK,UAAkB,OAANJ,EAAaK,OAAOC,OAAON,IAAMC,EAAGG,UAAYJ,EAAEI,UAAW,GAAIH,IA8UnF,QAASM,GAAcC,GACnB,MAAwB,gBAAVA,GAAqB,EAAUA,EAAQ,KA6EzD,QAASC,GAA6BC,EAASC,GAC3C,MAAOA,GAAiBC,KAAK,SAAUC,GACnC,GAAqBC,GAAeJ,EAAQK,OAASF,EAAgBG,IAChDC,EAAeP,EAAQM,IAAMH,EAAgBE,OAC7CG,EAAcR,EAAQS,MAAQN,EAAgBO,KAC9CC,EAAeX,EAAQU,KAAOP,EAAgBM,KACnE,OAAOL,IAAgBG,GAAgBC,GAAeG,IAU9D,QAASC,GAA4BZ,EAASC,GAC1C,MAAOA,GAAiBC,KAAK,SAAUW,GACnC,GAAqBC,GAAed,EAAQM,IAAMO,EAAoBP,IACjDS,EAAef,EAAQK,OAASQ,EAAoBR,OACpDW,EAAchB,EAAQU,KAAOG,EAAoBH,KACjDO,EAAejB,EAAQS,MAAQI,EAAoBJ,KACxE,OAAO
 K,IAAgBC,GAAgBC,GAAeC,IA4nB9D,QAASC,GAAmCC,GACxC,MAAOA,IAAmB,GAAIC,GAgBlC,QAASC,KACL,MAAOC,OAAM,8CAsYjB,QAASC,GAAuDpD,GAC5D,MAAO,YAAc,MAAOA,GAAQqD,iBAAiBC,cA98CzD,GAAIhC,GAAgBE,OAAO+B,iBACpBC,uBAA2BC,QAAS,SAAUvC,EAAGC,GAAKD,EAAEsC,UAAYrC,IACvE,SAAUD,EAAGC,GAAK,IAAK,GAAIuC,KAAKvC,GAAOA,EAAEwC,eAAeD,KAAIxC,EAAEwC,GAAKvC,EAAEuC,KAWrEE,EAAsB,WACtB,QAASA,MAcT,MATAA,GAAmBrC,UAAUsC,OAAS,aAItCD,EAAmBrC,UAAUuC,QAAU,aAIvCF,EAAmBrC,UAAUwC,OAAS,aAC/BH,KAMPI,EAAiB,WAIjB,QAASA,GAAcC,GACnB,GAAIC,GAAQ1D,IAIZA,MAAK2D,eAAiB,GAAIP,GAI1BpD,KAAK4D,WAAa,GAIlB5D,KAAK6D,aAAc,EAInB7D,KAAK8D,cAAgB,4BAIrB9D,KAAK+D,UAAY,MACbN,GACAzC,OAAOgD,KAAKP,GAAQQ,QAAQ,SAAUC,GAAO,MAAOR,GAAMQ,GAAOT,EAAOS,KAGhF,MAAOV,MAOPW,EAAc,WAOd,QAASA,GAAWC,EAAaC,EAAOC,EAASC,GAC7CvE,KAAKoE,YAAcA,EACnBpE,KAAKqE,MAAQA,EACbrE,KAAKsE,QAAUA,EACftE,KAAKuE,QAAUA,EACfvE,KAAKwE,iBAAmB,KACxBxE,KAAKyE,eAAiB,GAAItE,GAAauE,QACvC1E,KAAK2E,aAAe,GAAIxE,GAAauE,QACrC1E,KAAK4E,aAAe,GAAIzE,GAAauE,QACjCJ,EAAQX,gBACRW,EAAQX,eAAeJ,OAAOvD,MAuPtC,MApPAgB,QAAO6D,
 eAAeV,EAAWpD,UAAW,kBAKxC+D,IAAK,WACD,MAAO9E,MAAKqE,OAEhBU,YAAY,EACZC,cAAc,IAOlBb,EAAWpD,UAAUwC,OAAS,SAAU7D,GACpC,GAAIgE,GAAQ1D,KACSiF,EAAejF,KAAKoE,YAAYb,OAAO7D,EA4B5D,OA3BIM,MAAKsE,QAAQY,kBACblF,KAAKsE,QAAQY,iBAAiB3B,OAAOvD,MAGzCA,KAAKmF,uBACLnF,KAAKoF,aACLpF,KAAKqF,kBACLrF,KAAKsF,iBACDtF,KAAKsE,QAAQX,gBACb3D,KAAKsE,QAAQX,eAAeN,SAGhCrD,KAAKuF,sBAAqB,GACtBvF,KAAKsE,QAAQT,aACb7D,KAAKwF,kBAELxF,KAAKsE,QAAQV,aAETX,MAAMwC,QAAQzF,KAAKsE,QAAQV,YAC3B5D,KAAKsE,QAAQV,WAAWK,QAAQ,SAAUyB,GAAO,MAAOhC,GAAMW,MAAMsB,UAAUC,IAAIF,KAGlF1F,KAAKqE,MAAMsB,UAAUC,IAAI5F,KAAKsE,QAAQV,aAI9C5D,KAAK2E,aAAakB,OACXZ,GAMXd,EAAWpD,UAAU+E,OAAS,WAC1B9F,KAAK+F,iBAIL/F,KAAKuF,sBAAqB,GACtBvF,KAAKsE,QAAQY,kBAAoBlF,KAAKsE,QAAQY,iBAAiBY,QAC/D9F,KAAKsE,QAAQY,iBAAiBY,SAE9B9F,KAAKsE,QAAQX,gBACb3D,KAAKsE,QAAQX,eAAeL,SAEhC,IAAqB0C,GAAmBhG,KAAKoE,YAAY0B,QAGzD,OADA9F,MAAK4E,aAAaiB,OACXG,GAMX7B,EAAWpD,UAAUkF,QAAU,WACvBjG,KAAKsE,QAAQY,kBACblF,KAAKsE,QAAQY,iBAAiBe,UAE9BjG,KAAKsE,QAAQX,gBACb3D,KAAKsE,QAAQX,eAAeL,UAEhCtD,KAAK+F,iBACL
 /F,KAAKoE,YAAY6B,UACjBjG,KAAK2E,aAAauB,WAClBlG,KAAKyE,eAAeyB,WACpBlG,KAAK4E,aAAaiB,OAClB7F,KAAK4E,aAAasB,YAMtB/B,EAAWpD,UAAUoF,YAAc,WAC/B,MAAOnG,MAAKoE,YAAY+B,eAM5BhC,EAAWpD,UAAUqF,cAAgB,WACjC,MAAOpG,MAAKyE,eAAe4B,gBAM/BlC,EAAWpD,UAAUuF,YAAc,WAC/B,MAAOtG,MAAK2E,aAAa0B,gBAM7BlC,EAAWpD,UAAUwF,YAAc,WAC/B,MAAOvG,MAAK4E,aAAayB,gBAM7BlC,EAAWpD,UAAUyF,UAAY,WAC7B,MAAOxG,MAAKsE,SAMhBH,EAAWpD,UAAUuE,eAAiB,WAC9BtF,KAAKsE,QAAQY,kBACblF,KAAKsE,QAAQY,iBAAiBuB,SAOtCtC,EAAWpD,UAAUsE,gBAAkB,WACnCrF,KAAKqE,MAAMqC,aAAa,MAA0B1G,KAAKsE,QAAkB,YAM7EH,EAAWpD,UAAUqE,WAAa,YAC1BpF,KAAKsE,QAAQqC,OAAgC,IAAvB3G,KAAKsE,QAAQqC,SACnC3G,KAAKqE,MAAMuC,MAAMD,MAAQzF,EAAclB,KAAKsE,QAAQqC,SAEpD3G,KAAKsE,QAAQuC,QAAkC,IAAxB7G,KAAKsE,QAAQuC,UACpC7G,KAAKqE,MAAMuC,MAAMC,OAAS3F,EAAclB,KAAKsE,QAAQuC,UAErD7G,KAAKsE,QAAQwC,UAAsC,IAA1B9G,KAAKsE,QAAQwC,YACtC9G,KAAKqE,MAAMuC,MAAME,SAAW5F,EAAclB,KAAKsE,QAAQwC,YAEvD9G,KAAKsE,QAAQyC,WAAwC,IAA3B/G,KAAKsE,QAAQyC,aACvC/G,KAAKqE,MAAMuC,MAAMG,UAAY7F,EAAclB,KAAKsE,QAAQyC,aAExD/G,KAAKsE,QAAQ0
 C,UAAsC,IAA1BhH,KAAKsE,QAAQ0C,YACtChH,KAAKqE,MAAMuC,MAAMI,SAAW9F,EAAclB,KAAKsE,QAAQ0C,YAEvDhH,KAAKsE,QAAQ2C,WAAwC,IAA3BjH,KAAKsE,QAAQ2C,aACvCjH,KAAKqE,MAAMuC,MAAMK,UAAY/F,EAAclB,KAAKsE,QAAQ2C,aAQhE9C,EAAWpD,UAAUwE,qBAAuB,SAAU2B,GAClDlH,KAAKqE,MAAMuC,MAAMO,cAAgBD,EAAgB,OAAS,QAM9D/C,EAAWpD,UAAUyE,gBAAkB,WACnC,GAAI9B,GAAQ1D,IACZA,MAAKwE,iBAAmB4C,SAASC,cAAc,OAC/CrH,KAAKwE,iBAAiBmB,UAAUC,IAAI,wBAChC5F,KAAKsE,QAAQR,eACb9D,KAAKwE,iBAAiBmB,UAAUC,IAAI5F,KAAKsE,QAAQR,eAKrD9D,KAAKqE,MAAoB,cAAEiD,aAAatH,KAAKwE,iBAAkBxE,KAAKqE,OAGpErE,KAAKwE,iBAAiB+C,iBAAiB,QAAS,WAAc,MAAO7D,GAAMe,eAAeoB,KAAK,QAE/F2B,sBAAsB,WACd9D,EAAMc,kBACNd,EAAMc,iBAAiBmB,UAAUC,IAAI,mCAYjDzB,EAAWpD,UAAUoE,qBAAuB,WACpCnF,KAAKqE,MAAMoD,aACTzH,KAAKqE,MAAiB,WAAEqD,YAAY1H,KAAKqE,QAOnDF,EAAWpD,UAAUgF,eAAiB,WAClC,GAAIrC,GAAQ1D,KACS2H,EAAmB3H,KAAKwE,gBAC7C,IAAImD,EAAkB,CAClB,GAAqBC,GAAiB,WAE9BD,GAAoBA,EAAiBE,YACrCF,EAAiBE,WAAWC,YAAYH,GAKxCjE,EAAMc,kBAAoBmD,IAC1BjE,EAAMc,iBAAmB,MAGjCmD,GAAiBhC,UAAUoC,OAAO,gCAC9B/H,KAAKsE,QAAQR,eACb6D,E
 AAiBhC,UAAUoC,OAAO/H,KAAKsE,QAAQR,eAEnD6D,EAAiBJ,iBAAiB,gBAAiBK,GAGnDD,EAAiBf,MAAMO,cAAgB,OAIvCnH,KAAKuE,QAAQyD,kBAAkB,WAC3BC,WAAWL,EAAgB,SAIhCzD,KAcP+D,EAA0B,WAK1B,QAASA,GAAuBC,EAAQ3I,GACpCQ,KAAKoI,QAAUD,EAAOC,QACtBpI,KAAKqI,QAAUF,EAAOE,QACtBrI,KAAKsI,SAAW9I,EAAQ8I,SACxBtI,KAAKuI,SAAW/I,EAAQ+I,SAE5B,MAAOL,MAyBPM,EAAuB,WACvB,QAASA,MAET,MAAOA,MAKPC,EAAkC,WAKlC,QAASA,GAA+BC,EAAgBC,GACpD3I,KAAK0I,eAAiBA,EACtB1I,KAAK2I,yBAA2BA,EASpC,MAJAF,GAA+BG,eAAiB,WAAc,QACxDC,KAAMX,IACNW,KAAML,EAAqBM,aAAeD,KAAM5I,EAAc8I,cAE7DN,KA2CPO,EAA6B,WAO7B,QAASA,GAA0BC,EAAWC,EAAYC,EAAcC,GACpEpJ,KAAKmJ,aAAeA,EACpBnJ,KAAKoJ,eAAiBA,EAItBpJ,KAAKqJ,KAAO,MAIZrJ,KAAKsJ,SAAW,EAIhBtJ,KAAKuJ,SAAW,EAIhBvJ,KAAKwJ,eAILxJ,KAAKyJ,oBAAsBpJ,EAAkBqJ,aAAaC,MAI1D3J,KAAK4J,uBACL5J,KAAK6J,kBAAoB,GAAI1J,GAAauE,QAC1C1E,KAAK8J,QAAU9J,KAAKmJ,aAAaY,cACjC/J,KAAKgK,qBAAqBf,EAAWC,GAsUzC,MApUAlI,QAAO6D,eAAemE,EAA0BjI,UAAW,UAKvD+D,IAAK,WACD,MAAqB,QAAd9E,KAAKqJ,MAEhBtE,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAemE,EAA0BjI,UAAW,oBAKvD+D,IAAK,WACD,MAAO
 9E,MAAK6J,kBAAkBxD,gBAElCtB,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAemE,EAA0BjI,UAAW,aAKvD+D,IAAK,WACD,MAAO9E,MAAK4J,qBAEhB7E,YAAY,EACZC,cAAc,IAMlBgE,EAA0BjI,UAAUwC,OAAS,SAAU0G,GACnD,GAAIvG,GAAQ1D,IACZA,MAAKkK,YAAcD,EACnBjK,KAAKqE,MAAQ4F,EAAWE,eACxBnK,KAAKyJ,oBAAoBW,cACzBpK,KAAKyJ,oBAAsBzJ,KAAKoJ,eAAeiB,SAASC,UAAU,WAAc,MAAO5G,GAAM+C,WAMjGuC,EAA0BjI,UAAUkF,QAAU,WAC1CjG,KAAKyJ,oBAAoBW,eAM7BpB,EAA0BjI,UAAU+E,OAAS,WACzC9F,KAAKyJ,oBAAoBW,eAS7BpB,EAA0BjI,UAAU0F,MAAQ,WAaxC,IAAK,GAJgB8D,GACAC,EAPAnJ,EAAUrB,KAAKqE,MACfoG,EAAazK,KAAK8J,QAAQY,wBAC1BC,EAActJ,EAAQqJ,wBAEtBE,EAAe5K,KAAKoJ,eAAeyB,kBAM/CC,EAAK,EAAGC,EAAK/K,KAAK4J,oBAAqBkB,EAAKC,EAAGC,OAAQF,IAAM,CAClE,GAAIG,GAAMF,EAAGD,GAGQI,EAAclL,KAAKmL,0BAA0BV,EAAYQ,GACzDG,EAAepL,KAAKqL,iBAAiBH,EAAaP,EAAaC,EAAcK,EAElG,IAAIG,EAAaE,eAIb,MAHAtL,MAAKuL,oBAAoBlK,EAASsJ,EAAaS,EAAcH,QAE7DjL,KAAKwL,uBAAyBP,KAGxBV,GAAiBA,EAAckB,YAAcL,EAAaK,eAChElB,EAAgBa,EAChBZ,EAAmBS,GAK3BjL,KAAKuL,oBAAoBlK,EAASsJ,EAA8B,EAAoC,IAQxG3B,EAA0BjI,UAAU2K,wBAA0B,WAC1D,GAAqBjB,GAAazK,
 KAAK8J,QAAQY,wBAC1BC,EAAc3K,KAAKqE,MAAMqG,wBACzBE,EAAe5K,KAAKoJ,eAAeyB,kBACnCc,EAAe3L,KAAKwL,wBAA0BxL,KAAK4J,oBAAoB,GACvEsB,EAAclL,KAAKmL,0BAA0BV,EAAYkB,GACzDP,EAAepL,KAAKqL,iBAAiBH,EAAaP,EAAaC,EAAce,EAClG3L,MAAKuL,oBAAoBvL,KAAKqE,MAAOsG,EAAaS,EAAcO,IASpE3C,EAA0BjI,UAAU6K,yBAA2B,SAAUpC,GACrExJ,KAAKwJ,YAAcA,GAQvBR,EAA0BjI,UAAUiJ,qBAAuB,SAAUf,EAAWC,GAE5E,MADAlJ,MAAK4J,oBAAoBiC,KAAK,GAAI3D,GAAuBe,EAAWC,IAC7DlJ,MAOXgJ,EAA0BjI,UAAU+K,cAAgB,SAAUC,GAE1D,MADA/L,MAAKqJ,KAAO0C,EACL/L,MAOXgJ,EAA0BjI,UAAUiL,YAAc,SAAUC,GAExD,MADAjM,MAAKsJ,SAAW2C,EACTjM,MAOXgJ,EAA0BjI,UAAUmL,YAAc,SAAUD,GAExD,MADAjM,MAAKuJ,SAAW0C,EACTjM,MAOXgJ,EAA0BjI,UAAUoL,WAAa,SAAUC,GACvD,MAAOpM,MAAKqM,OAASD,EAAKtK,MAAQsK,EAAKrK,MAO3CiH,EAA0BjI,UAAUuL,SAAW,SAAUF,GACrD,MAAOpM,MAAKqM,OAASD,EAAKrK,KAAOqK,EAAKtK,OAQ1CkH,EAA0BjI,UAAUoK,0BAA4B,SAAUV,EAAYQ,GAClF,GAEqBsB,GAFAC,EAAexM,KAAKmM,WAAW1B,GAC/BgC,EAAazM,KAAKsM,SAAS7B,EAG5C8B,GADe,UAAftB,EAAI7C,QACAoE,EAAgB/B,EAAW9D,MAAQ,EAGpB,SAAfsE,EAAI7C,QAAqBoE,EAAeC,CAEhD,IAAqBC,EAOrB,OALI
 A,GADe,UAAfzB,EAAI5C,QACAoC,EAAW9I,IAAO8I,EAAW5D,OAAS,EAGvB,OAAfoE,EAAI5C,QAAmBoC,EAAW9I,IAAM8I,EAAW/I,QAElD6K,EAAGA,EAAGG,EAAGA,IAYtB1D,EAA0BjI,UAAUsK,iBAAmB,SAAUH,EAAaP,EAAaC,EAAcK,GAGrG,GAAqB0B,EAEjBA,GADgB,UAAhB1B,EAAI3C,UACaqC,EAAYhE,MAAQ,EAEf,UAAjBsE,EAAI3C,SACOtI,KAAKqM,QAAU1B,EAAYhE,MAAQ,EAGnC3G,KAAKqM,OAAS,GAAK1B,EAAYhE,KAEnD,IAAqBiG,EAEjBA,GADgB,UAAhB3B,EAAI1C,UACaoC,EAAY9D,OAAS,EAGN,OAAhBoE,EAAI1C,SAAoB,GAAKoC,EAAY9D,MAG7D,IAAqB0F,GAAIrB,EAAYqB,EAAII,EAAgB3M,KAAKsJ,SACzCoD,EAAIxB,EAAYwB,EAAIE,EAAgB5M,KAAKuJ,SAEzCsD,EAAe,EAAIN,EACnBO,EAAiBP,EAAI5B,EAAYhE,MAASiE,EAAajE,MACvDoG,EAAc,EAAIL,EAClBM,EAAkBN,EAAI/B,EAAY9D,OAAU+D,EAAa/D,OAEzDoG,EAAejN,KAAKkN,mBAAmBvC,EAAYhE,MAAOkG,EAAcC,GACxEK,EAAgBnN,KAAKkN,mBAAmBvC,EAAY9D,OAAQkG,EAAaC,GAEzEvB,EAAcwB,EAAeE,CAElD,QAASZ,EAAGA,EAAGG,EAAGA,EAAGpB,eADkBX,EAAYhE,MAAQgE,EAAY9D,SAAY4E,EAC9BA,YAAaA,IAQtEzC,EAA0BjI,UAAUqM,qBAAuB,SAAU5N,GACjE,GAAqB6N,GAAerN,KAAK8J,QAAQY,wBAC5B4C,EAAgB9N,EAAQkL,wBACxB6C,EAAwBvN,KAAKwJ,YAAYgE,IAAI,SAAUC,GAAK,M
 AAOA,GAAEC,gBAAgB3D,cAAcW,yBACxH,QACIiD,gBAAiB1L,EAA4BoL,EAAcE,GAC3DK,oBAAqBxM,EAA6BiM,EAAcE,GAChEM,iBAAkB5L,EAA4BqL,EAAeC,GAC7DO,qBAAsB1M,EAA6BkM,EAAeC,KAW1EvE,EAA0BjI,UAAUwK,oBAAsB,SAAUlK,EAASsJ,EAAaS,EAAcH,GAGpG,GAUqB8C,GAVAC,EAAyC,WAAjB/C,EAAI1C,SAAwB,SAAW,MAG/DmE,EAA8B,QAA1BsB,EACrB5C,EAAasB,EACbtF,SAAS6G,gBAAgBC,cAAgB9C,EAAasB,EAAI/B,EAAY9D,OAOtEkH,GADc,QAAd/N,KAAKqJ,KACsC,QAAjB4B,EAAI3C,SAAqB,OAAS,QAGjB,QAAjB2C,EAAI3C,SAAqB,QAAU,MAIjE,IAAqBiE,GAAgC,SAA5BwB,EACrB3C,EAAamB,EACbnF,SAAS6G,gBAAgBE,aAAe/C,EAAamB,EAAI5B,EAAYhE,QAGxE,MAAO,SAAU,OAAQ,SAAS1C,QAAQ,SAAUf,GAAK,MAAO7B,GAAQuF,MAAM1D,GAAK,OACpF7B,EAAQuF,MAAMoH,GAAyBtB,EAAI,KAC3CrL,EAAQuF,MAAMmH,GAA2BxB,EAAI,IAE7C,IAAqB5D,GAA2B3I,KAAKoN,qBAAqB/L,GACrD+M,EAAiB,GAAI3F,GAA+BwC,EAAKtC,EAC9E3I,MAAK6J,kBAAkBhE,KAAKuI,IAQhCpF,EAA0BjI,UAAUmM,mBAAqB,SAAUlC,GAE/D,IAAK,GADDqD,MACKvD,EAAK,EAAGA,EAAKwD,UAAUtD,OAAQF,IACpCuD,EAAUvD,EAAK,GAAKwD,UAAUxD,EAElC,OAAOuD,GAAUE,OAAO,SAAUC,EAAcC,GAC5C,MAAOD,GAAeE,KAAKC,IAAIF,EAAiB,IACjDzD,IAEAhC,KASP4
 F,EAA0B,WAC1B,QAASA,KACL5O,KAAK6O,aAAe,SACpB7O,KAAK8O,WAAa,GAClB9O,KAAK+O,cAAgB,GACrB/O,KAAKgP,YAAc,GACnBhP,KAAKiP,aAAe,GACpBjP,KAAKkP,YAAc,GACnBlP,KAAKmP,gBAAkB,GACvBnP,KAAKoP,OAAS,GACdpP,KAAKqP,QAAU,GACfrP,KAAKsP,SAAW,KAqJpB,MA/IAV,GAAuB7N,UAAUwC,OAAS,SAAU0G,GAChDjK,KAAKkK,YAAcD,GAOvB2E,EAAuB7N,UAAUY,IAAM,SAAUR,GAK7C,WAJc,KAAVA,IAAoBA,EAAQ,IAChCnB,KAAK+O,cAAgB,GACrB/O,KAAK8O,WAAa3N,EAClBnB,KAAKkP,YAAc,aACZlP,MAOX4O,EAAuB7N,UAAUgB,KAAO,SAAUZ,GAK9C,WAJc,KAAVA,IAAoBA,EAAQ,IAChCnB,KAAKiP,aAAe,GACpBjP,KAAKgP,YAAc7N,EACnBnB,KAAKmP,gBAAkB,aAChBnP,MAOX4O,EAAuB7N,UAAUW,OAAS,SAAUP,GAKhD,WAJc,KAAVA,IAAoBA,EAAQ,IAChCnB,KAAK8O,WAAa,GAClB9O,KAAK+O,cAAgB5N,EACrBnB,KAAKkP,YAAc,WACZlP,MAOX4O,EAAuB7N,UAAUe,MAAQ,SAAUX,GAK/C,WAJc,KAAVA,IAAoBA,EAAQ,IAChCnB,KAAKgP,YAAc,GACnBhP,KAAKiP,aAAe9N,EACpBnB,KAAKmP,gBAAkB,WAChBnP,MAOX4O,EAAuB7N,UAAU4F,MAAQ,SAAUxF,GAQ/C,WAPc,KAAVA,IAAoBA,EAAQ,IAChCnB,KAAKoP,OAASjO,EAGA,SAAVA,GACAnB,KAAK+B,KAAK,OAEP/B,MAOX4O,EAAuB7N,UAAU8F,OAAS,SAAU1F,GAQhD,WAPc,KAAVA,IAAoBA,EAAQ,
 IAChCnB,KAAKqP,QAAUlO,EAGD,SAAVA,GACAnB,KAAK2B,IAAI,OAEN3B,MASX4O,EAAuB7N,UAAUwO,mBAAqB,SAAUtD,GAI5D,WAHe,KAAXA,IAAqBA,EAAS,IAClCjM,KAAK+B,KAAKkK,GACVjM,KAAKmP,gBAAkB,SAChBnP,MASX4O,EAAuB7N,UAAUyO,iBAAmB,SAAUvD,GAI1D,WAHe,KAAXA,IAAqBA,EAAS,IAClCjM,KAAK2B,IAAIsK,GACTjM,KAAKkP,YAAc,SACZlP,MAQX4O,EAAuB7N,UAAU0F,MAAQ,WACrC,GAAqBpF,GAAUrB,KAAKkK,YAAYC,gBAC3CnK,KAAKsP,UAAYjO,EAAQwG,aAC1B7H,KAAKsP,SAAWlI,SAASC,cAAc,OACvCrH,KAAKsP,SAAS3J,UAAUC,IAAI,8BAC5BvE,EAAQwG,WAAWP,aAAatH,KAAKsP,SAAUjO,GAC/CrB,KAAKsP,SAAS5H,YAAYrG,GAE9B,IAAqBoO,GAASpO,EAAQuF,MACjB8I,EAAiBrO,EAAmB,WAAEuF,KAC3D6I,GAAOE,SAAW3P,KAAK6O,aACvBY,EAAOG,UAAY5P,KAAK8O,WACxBW,EAAOI,WAAa7P,KAAKgP,YACzBS,EAAOK,aAAe9P,KAAK+O,cAC3BU,EAAOM,YAAc/P,KAAKiP,aAC1BQ,EAAO9I,MAAQ3G,KAAKoP,OACpBK,EAAO5I,OAAS7G,KAAKqP,QACrBK,EAAaM,eAAiBhQ,KAAKmP,gBACnCO,EAAaO,WAAajQ,KAAKkP,aAMnCN,EAAuB7N,UAAUkF,QAAU,WACnCjG,KAAKsP,UAAYtP,KAAKsP,SAASzH,aAC/B7H,KAAKsP,SAASzH,WAAWC,YAAY9H,KAAKsP,UAC1CtP,KAAKsP,SAAW,OAGjBV,KAMPsB,EAA0B,WAI1B,QAASA,GAAuB9G,GAC5BpJ,KA
 AKoJ,eAAiBA,EA4B1B,MAtBA8G,GAAuBnP,UAAUhC,OAAS,WACtC,MAAO,IAAI6P,IASfsB,EAAuBnP,UAAUoP,YAAc,SAAUC,EAAYnH,EAAWC,GAC5E,MAAO,IAAIF,GAA0BC,EAAWC,EAAYkH,EAAYpQ,KAAKoJ,iBAEjF8G,EAAuBpH,aACjBD,KAAM5I,EAAcoQ,aAK1BH,EAAuBtH,eAAiB,WAAc,QAChDC,KAAMzI,EAAuBkQ,iBAE5BJ,KAOPzN,EAAoB,WACpB,QAASA,MAwCT,MAnCAA,GAAiB1B,UAAUwP,YAAc,WACjCvQ,KAAKwQ,mBAAqBxQ,KAAKwQ,kBAAkB3I,YACjD7H,KAAKwQ,kBAAkB3I,WAAWC,YAAY9H,KAAKwQ,oBAS3D/N,EAAiB1B,UAAU0P,oBAAsB,WAI7C,MAHKzQ,MAAKwQ,mBACNxQ,KAAK0Q,mBAEF1Q,KAAKwQ,mBAOhB/N,EAAiB1B,UAAU2P,iBAAmB,WAC1C,GAAqBC,GAAYvJ,SAASC,cAAc,MACxDsJ,GAAUhL,UAAUC,IAAI,yBACxBwB,SAASwJ,KAAKlJ,YAAYiJ,GAC1B3Q,KAAKwQ,kBAAoBG,GAE7BlO,EAAiBqG,aACXD,KAAM5I,EAAcoQ,aAK1B5N,EAAiBmG,eAAiB,WAAc,UACzCnG,KAaPoO,GAEAC,QAASrO,EACTsO,OAAQ,GAAI9Q,GAAc8I,SAAY,GAAI9I,GAAc+Q,SAAYvO,IACpEwO,WAAY1O,GAcZ2O,EAAuB,WAIvB,QAASA,GAAoBC,GACzBnR,KAAKmR,kBAAoBA,EACzBnR,KAAKoR,oBAAsB,KAmC/B,MA7BAF,GAAoBnQ,UAAUwC,OAAS,SAAU0G,GAC7C,GAAIjK,KAAKkK,YACL,KAAMxH,IAEV1C,MAAKkK,YAAcD,GAKvBiH,EAAoBnQ,UAAUsC,OAAS,WACnC,GAAIK,GAAQ1D,IA
 CPA,MAAKoR,sBACNpR,KAAKoR,oBAAsBpR,KAAKmR,kBAAkBE,SAAS,EAAG,WACtD3N,EAAMwG,YAAY/D,eAClBzC,EAAMwG,YAAYpE,SAEtBpC,EAAMJ,cAOlB4N,EAAoBnQ,UAAUuC,QAAU,WAChCtD,KAAKoR,sBACLpR,KAAKoR,oBAAoBhH,cACzBpK,KAAKoR,oBAAsB,OAG5BF,KAMPI,EAAuB,WAIvB,QAASA,GAAoBlI,GACzBpJ,KAAKoJ,eAAiBA,EACtBpJ,KAAKuR,qBAAwB5P,IAAK,GAAII,KAAM,IAC5C/B,KAAKwR,YAAa,EAkDtB,MA7CAF,GAAoBvQ,UAAUwC,OAAS,aAIvC+N,EAAoBvQ,UAAUsC,OAAS,WACnC,GAAIrD,KAAKyR,gBAAiB,CACtB,GAAqBC,GAAOtK,SAAS6G,eACrCjO,MAAK2R,wBAA0B3R,KAAKoJ,eAAewI,4BAEnD5R,KAAKuR,oBAAoBxP,KAAO2P,EAAK9K,MAAM7E,MAAQ,GACnD/B,KAAKuR,oBAAoB5P,IAAM+P,EAAK9K,MAAMjF,KAAO,GAGjD+P,EAAK9K,MAAM7E,MAAQ/B,KAAK2R,wBAAwB5P,KAAO,KACvD2P,EAAK9K,MAAMjF,KAAO3B,KAAK2R,wBAAwBhQ,IAAM,KACrD+P,EAAK/L,UAAUC,IAAI,0BACnB5F,KAAKwR,YAAa,IAM1BF,EAAoBvQ,UAAUuC,QAAU,WAChCtD,KAAKwR,aACLxR,KAAKwR,YAAa,EAClBpK,SAAS6G,gBAAgBrH,MAAM7E,KAAO/B,KAAKuR,oBAAoBxP,KAC/DqF,SAAS6G,gBAAgBrH,MAAMjF,IAAM3B,KAAKuR,oBAAoB5P,IAC9DyF,SAAS6G,gBAAgBtI,UAAUoC,OAAO,0BAC1C8J,OAAOC,OAAO9R,KAAK2R,wBAAwB5P,KAAM/B,KAAK2R,wBAAwBhQ,O
 AMtF2P,EAAoBvQ,UAAU0Q,cAAgB,WAI1C,GAAIrK,SAAS6G,gBAAgBtI,UAAUoM,SAAS,2BAA6B/R,KAAKwR,WAC9E,OAAO,CAEX,IAAqBZ,GAAOxJ,SAASwJ,KAChBoB,EAAWhS,KAAKoJ,eAAeyB,iBACpD,OAAO+F,GAAKqB,aAAeD,EAASnL,QAAU+J,EAAKsB,YAAcF,EAASrL,OAEvE2K,KAMPa,EAA4B,WAK5B,QAASA,GAAyBhB,EAAmB7M,GACjDtE,KAAKmR,kBAAoBA,EACzBnR,KAAKsE,QAAUA,EACftE,KAAKoR,oBAAsB,KAiC/B,MA3BAe,GAAyBpR,UAAUwC,OAAS,SAAU0G,GAClD,GAAIjK,KAAKkK,YACL,KAAMxH,IAEV1C,MAAKkK,YAAcD,GAKvBkI,EAAyBpR,UAAUsC,OAAS,WACxC,GAAIK,GAAQ1D,IACZ,KAAKA,KAAKoR,oBAAqB,CAC3B,GAAqBgB,GAAWpS,KAAKsE,QAAUtE,KAAKsE,QAAQ+N,eAAiB,CAC7ErS,MAAKoR,oBAAsBpR,KAAKmR,kBAAkBE,SAASe,EAAU,WACjE1O,EAAMwG,YAAY5E,qBAO9B6M,EAAyBpR,UAAUuC,QAAU,WACrCtD,KAAKoR,sBACLpR,KAAKoR,oBAAoBhH,cACzBpK,KAAKoR,oBAAsB,OAG5Be,KASPG,EAAyB,WAKzB,QAASA,GAAsBnB,EAAmB/H,GAC9C,GAAI1F,GAAQ1D,IACZA,MAAKmR,kBAAoBA,EACzBnR,KAAKoJ,eAAiBA,EAItBpJ,KAAKuS,KAAO,WAAc,MAAO,IAAInP,IAIrCpD,KAAKwS,MAAQ,WAAc,MAAO,IAAItB,GAAoBxN,EAAMyN,oBAIhEnR,KAAKyS,MAAQ,WAAc,MAAO,IAAInB,GAAoB5N,EAAM0F,iBAMhEpJ,KAAK8C,WAAa,SAAUW,GACxB,MAAO,
 IAAI0O,GAAyBzO,EAAMyN,kBAAmB1N,IAarE,MAVA6O,GAAsBxJ,aAChBD,KAAM5I,EAAcoQ,aAK1BiC,EAAsB1J,eAAiB,WAAc,QAC/CC,KAAMzI,EAAuBsS,mBAC7B7J,KAAMzI,EAAuBkQ,iBAE5BgC,KAMPK,EAAe,EAIfC,EAAgB,GAAIpP,GASpBqP,EAAW,WAUX,QAASA,GAAQhQ,EAAkBiQ,EAAmBC,EAA2BC,EAAkBC,EAASC,EAAW3O,GACnHvE,KAAK6C,iBAAmBA,EACxB7C,KAAK8S,kBAAoBA,EACzB9S,KAAK+S,0BAA4BA,EACjC/S,KAAKgT,iBAAmBA,EACxBhT,KAAKiT,QAAUA,EACfjT,KAAKkT,UAAYA,EACjBlT,KAAKuE,QAAUA,EAuDnB,MAhDAsO,GAAQ9R,UAAUE,OAAS,SAAUwC,OAClB,KAAXA,IAAqBA,EAASmP,EAClC,IAAqBO,GAAOnT,KAAKoT,qBACZC,EAAarT,KAAKsT,kBAAkBH,EACzD,OAAO,IAAIhP,GAAWkP,EAAYF,EAAM1P,EAAQzD,KAAKuE,UAOzDsO,EAAQ9R,UAAU4O,SAAW,WACzB,MAAO3P,MAAKgT,kBAMhBH,EAAQ9R,UAAUqS,mBAAqB,WACnC,GAAqBD,GAAO/L,SAASC,cAAc,MAInD,OAHA8L,GAAKI,GAAK,eAAiBZ,IAC3BQ,EAAKxN,UAAUC,IAAI,oBACnB5F,KAAK8S,kBAAkBrC,sBAAsB/I,YAAYyL,GAClDA,GAOXN,EAAQ9R,UAAUuS,kBAAoB,SAAUH,GAC5C,MAAO,IAAIjT,GAAoBsT,cAAcL,EAAMnT,KAAK+S,0BAA2B/S,KAAKiT,QAASjT,KAAKkT,YAE1GL,EAAQ/J,aACFD,KAAM5I,EAAcoQ,aAK1BwC,EAAQjK,eAAiB,WAAc,QACjCC,KAAMyJ,IACNzJ,KAAMpG,IAC
 NoG,KAAM5I,EAAcwT,2BACpB5K,KAAMqH,IACNrH,KAAM5I,EAAcyT,iBACpB7K,KAAM5I,EAAc0T,WACpB9K,KAAM5I,EAAc2T,UAEnBf,KAYPgB,EAA8B,SAAUC,GAExC,QAASD,KACL,MAAkB,QAAXC,GAAmBA,EAAOrN,MAAMzG,KAAMsO,YAActO,KA2D/D,MA7DAS,GAAUoT,EAA4BC,GAOtCD,EAA2B9S,UAAU2P,iBAAmB,WACpD,GAAIhN,GAAQ1D,IACZ8T,GAAO/S,UAAU2P,iBAAiBqD,KAAK/T,MACvCA,KAAKgU,mCACLhU,KAAKiU,6BAA6B,WAAc,MAAOvQ,GAAMsQ,sCAKjEH,EAA2B9S,UAAUiT,iCAAmC,WACpE,GAAKhU,KAAKwQ,kBAAV,EAGyCxQ,KAAKkU,wBACK9M,SAASwJ,MACrDlJ,YAAY1H,KAAKwQ,qBAM5BqD,EAA2B9S,UAAUkT,6BAA+B,SAAUE,GACtE/M,SAASgN,kBACThN,SAASG,iBAAiB,mBAAoB4M,GAEzC/M,SAASiN,wBACdjN,SAASG,iBAAiB,yBAA0B4M,GAE/C,SAAaG,qBAClBlN,SAASG,iBAAiB,sBAAuB4M,GAE5C,SAAaI,qBAClBnN,SAASG,iBAAiB,qBAAsB4M,IAQxDN,EAA2B9S,UAAUmT,qBAAuB,WACxD,MAAO9M,UAASoN,mBACZpN,SAASqN,yBACT,SAAaC,sBACb,SAAaC,qBACb,MAERd,EAA2B/K,aACrBD,KAAM5I,EAAcoQ,aAK1BwD,EAA2BjL,eAAiB,WAAc,UACnDiL,GACTpR,GAKEmS,GACA,GAAI1M,IAAyBE,QAAS,QAASC,QAAS,WAAcC,SAAU,QAASC,SAAU,QACnG,GAAIL,IAAyBE,QAAS,QAASC,QAAS,QAAWC,SAAU,QAASC,SAAU,YAKhGsM,EAAwC,GAAI5U,GAAc
 6U,eAAe,yCAYzEC,GACAjE,QAAS+D,EACT9D,MAAO8B,GACP5B,WAAYrO,GAMZoS,EAAiB,WAIjB,QAASA,GAAc5E,GACnBpQ,KAAKoQ,WAAaA,EActB,MAZA4E,GAAclM,aACRD,KAAM5I,EAAcgV,UAAWC,OACrBC,SAAU,6DACVC,SAAU,uBAM1BJ,EAAcpM,eAAiB,WAAc,QACvCC,KAAM5I,EAAcoV,cAEnBL,KAKPM,EAA6B,WAS7B,QAASA,GAA0BC,EAAUC,EAAWC,EAAaC,EAAkBC,EAAiBtM,GACpGrJ,KAAKuV,SAAWA,EAChBvV,KAAKwV,UAAYA,EACjBxV,KAAK2V,gBAAkBA,EACvB3V,KAAKqJ,KAAOA,EACZrJ,KAAK4V,cAAe,EACpB5V,KAAK6V,sBAAwBxV,EAAkBqJ,aAAaC,MAC5D3J,KAAK8V,sBAAwBzV,EAAkBqJ,aAAaC,MAC5D3J,KAAKsJ,SAAW,EAChBtJ,KAAKuJ,SAAW,EAChBvJ,KAAK+V,gBAAkB,aAIvB/V,KAAK2D,eAAiB3D,KAAK2V,kBAI3B3V,KAAKgW,MAAO,EAIZhW,KAAKoG,cAAgB,GAAInG,GAAcgW,aAIvCjW,KAAKoO,eAAiB,GAAInO,GAAcgW,aAIxCjW,KAAKuD,OAAS,GAAItD,GAAcgW,aAIhCjW,KAAK8F,OAAS,GAAI7F,GAAcgW,aAChCjW,KAAKkW,gBAAkB,GAAIhW,GAAoBiW,eAAeV,EAAaC,GA+a/E,MA7aA1U,QAAO6D,eAAeyQ,EAA0BvU,UAAW,WAKvD+D,IAAK,WAAc,MAAO9E,MAAKsJ,UAK/B8M,IAAK,SAAUC,GACXrW,KAAKsJ,SAAW+M,EACZrW,KAAKsW,WACLtW,KAAKsW,UAAUtK,YAAYqK,IAGnCtR,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,WAK
 vD+D,IAAK,WAAc,MAAO9E,MAAKuJ,UAK/B6M,IAAK,SAAUG,GACXvW,KAAKuJ,SAAWgN,EACZvW,KAAKsW,WACLtW,KAAKsW,UAAUpK,YAAYqK,IAGnCxR,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,eAKvD+D,IAAK,WAAc,MAAO9E,MAAK4V,cAK/BQ,IAAK,SAAUjV,GAASnB,KAAK4V,aAAerV,EAAsBiW,sBAAsBrV,IACxF4D,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,qBAKvD+D,IAAK,WAAc,MAAO9E,MAAKmI,QAK/BiO,IAAK,SAAUtM,GAAW9J,KAAKmI,OAAS2B,GACxC/E,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,wBAKvD+D,IAAK,WAAc,MAAO9E,MAAKyW,WAK/BL,IAAK,SAAUM,GAAc1W,KAAKyW,UAAYC,GAC9C3R,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,sBAKvD+D,IAAK,WAAc,MAAO9E,MAAKqW,SAK/BD,IAAK,SAAU9M,GAAYtJ,KAAKqW,QAAU/M,GAC1CvE,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,sBAKvD+D,IAAK,WAAc,MAAO9E,MAAKuW,SAK/BH,IAAK,SAAU7M,GAAYvJ,KAAKuW,QAAUhN,GAC1CxE,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,oBAKvD+D,IAAK,WAAc,MAAO9E,MAAK2G,OAK/ByP,IAAK,SAAUhH,GAAUpP,KAAK2G,MAAQyI,GACtCrK,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,qBAKvD+D,IAAK,WAAc,
 MAAO9E,MAAK6G,QAK/BuP,IAAK,SAAU/G,GAAWrP,KAAK6G,OAASwI,GACxCtK,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,uBAKvD+D,IAAK,WAAc,MAAO9E,MAAK8G,UAK/BsP,IAAK,SAAUO,GAAa3W,KAAK8G,SAAW6P,GAC5C5R,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,wBAKvD+D,IAAK,WAAc,MAAO9E,MAAK+G,WAK/BqP,IAAK,SAAUQ,GAAc5W,KAAK+G,UAAY6P,GAC9C7R,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,4BAKvD+D,IAAK,WAAc,MAAO9E,MAAK8D,eAK/BsS,IAAK,SAAUS,GAAkB7W,KAAK8D,cAAgB+S,GACtD9R,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,6BAKvD+D,IAAK,WAAc,MAAO9E,MAAK2D,gBAK/ByS,IAAK,SAAUT,GACX3V,KAAK2D,eAAiBgS,GAE1B5Q,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,mBAKvD+D,IAAK,WAAc,MAAO9E,MAAKgW,MAK/BI,IAAK,SAAUU,GAAS9W,KAAKgW,KAAOc,GACpC/R,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,0BAKvD+D,IAAK,WAAc,MAAO9E,MAAK6D,aAK/BuS,IAAK,SAAUR,GAAgB5V,KAAK6D,YAAc+R,GAClD7Q,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UAAW,cAKvD+D,IAAK,WACD,MAAO9E,MAAKkK,aAEhBnF,YAAY,EACZC,cAAc,IAElBhE,OAAO6D,eAAeyQ,EAA0BvU,UA
 AW,OAKvD+D,IAAK,WACD,MAAO9E,MAAKqJ,KAAOrJ,KAAKqJ,KAAKlI,MAAQ,OAEzC4D,YAAY,EACZC,cAAc,IAKlBsQ,EAA0BvU,UAAUwP,YAAc,WAC9CvQ,KAAK+W,mBAMTzB,EAA0BvU,UAAUiW,YAAc,SAAUC,IACpDA,EAAc,MAAKA,EAAyB,mBAC5CjX,KAAKgW,KAAOhW,KAAKkX,iBAAmBlX,KAAKmX,mBAOjD7B,EAA0BvU,UAAUqW,eAAiB,WAC5CpX,KAAKyW,WAAczW,KAAKyW,UAAUzL,SACnChL,KAAKyW,UAAY7B,GAErB5U,KAAKkK,YAAclK,KAAKuV,SAAStU,OAAOjB,KAAKqX,iBAMjD/B,EAA0BvU,UAAUsW,aAAe,WAC/C,GAAqBnS,GAAmBlF,KAAKsW,UAAYtW,KAAKsX,0BACzCC,EAAgB,GAAI/T,IACrC0B,iBAAkBA,EAClBvB,eAAgB3D,KAAK2D,eACrBE,YAAa7D,KAAK6D,aAiBtB,QAfI7D,KAAK2G,OAAwB,IAAf3G,KAAK2G,SACnB4Q,EAAc5Q,MAAQ3G,KAAK2G,QAE3B3G,KAAK6G,QAA0B,IAAhB7G,KAAK6G,UACpB0Q,EAAc1Q,OAAS7G,KAAK6G,SAE5B7G,KAAK8G,UAA8B,IAAlB9G,KAAK8G,YACtByQ,EAAczQ,SAAW9G,KAAK8G,WAE9B9G,KAAK+G,WAAgC,IAAnB/G,KAAK+G,aACvBwQ,EAAcxQ,UAAY/G,KAAK+G,WAE/B/G,KAAK8D,gBACLyT,EAAczT,cAAgB9D,KAAK8D,eAEhCyT,GAMXjC,EAA0BvU,UAAUuW,wBAA0B,WAC1D,GAAqBrM,GAAMjL,KAAKyW,UAAU,GACrBvL,GAAgB9C,QAAS6C,EAAI7C,QAASC,QAAS4C,EAAI5C,SACnD+C,GAAiB9C,SAAU2C,EAAI3C,SAAUC,SAAU0C,E
 AAI1C,UACvDiP,EAAWxX,KAAKuV,SAAS5F,WACzCQ,YAAYnQ,KAAKmI,OAAOiI,WAAYlF,EAAaE,GACjDY,YAAYhM,KAAKqW,SACjBnK,YAAYlM,KAAKuW,QAEtB,OADAvW,MAAKyX,uBAAuBD,GACrBA,GAMXlC,EAA0BvU,UAAU0W,uBAAyB,SAAUD,GAEnE,IAAK,GADD9T,GAAQ1D,KACc0X,EAAI,EAAGA,EAAI1X,KAAKyW,UAAUzL,OAAQ0M,IACxDF,EAASxN,sBAAuB5B,QAASpI,KAAKyW,UAAUiB,GAAGtP,QAASC,QAASrI,KAAKyW,UAAUiB,GAAGrP,UAAaC,SAAUtI,KAAKyW,UAAUiB,GAAGpP,SAAUC,SAAUvI,KAAKyW,UAAUiB,GAAGnP,UAElLvI,MAAK8V,sBACD0B,EAASG,iBAAiBrN,UAAU,SAAUW,GAAO,MAAOvH,GAAM0K,eAAewJ,KAAK3M,MAM9FqK,EAA0BvU,UAAUmW,eAAiB,WACjD,GAAIxT,GAAQ1D,IACPA,MAAKkK,aACNlK,KAAKoX,iBAETpX,KAAKsW,UAAUxK,cAAc9L,KAAK+L,KAClC/L,KAAKkK,YAAY1D,YAAYzC,UAAY/D,KAAK+L,IAC9C/L,KAAK6X,sBACA7X,KAAKkK,YAAY/D,gBAClBnG,KAAKkK,YAAY3G,OAAOvD,KAAKkW,iBAC7BlW,KAAKuD,OAAOqU,QAEZ5X,KAAK6D,cACL7D,KAAK6V,sBAAwB7V,KAAKkK,YAAY9D,gBAAgBkE,UAAU,WACpE5G,EAAM0C,cAAcwR,WAQhCtC,EAA0BvU,UAAUoW,eAAiB,WAC7CnX,KAAKkK,cACLlK,KAAKkK,YAAYpE,SACjB9F,KAAK8F,OAAO8R,QAEhB5X,KAAK6V,sBAAsBzL,cAC3BpK,KAAK+V,mBAMTT,EAA0BvU,UAAUgW,gBAAkB,WAC9C/W,
 KAAKkK,aACLlK,KAAKkK,YAAYjE,UAErBjG,KAAK6V,sBAAsBzL,cAC3BpK,KAAK8V,sBAAsB1L,cAC3BpK,KAAK+V,mBAMTT,EAA0BvU,UAAU8W,oBAAsB,WACtD,GAAInU,GAAQ1D,IACZA,MAAK+V,gBAAkB/V,KAAKwV,UAAUsC,OAAO,WAAY,UAAW,SAAUC,GACtEA,EAAMC,UAAYxX,EAAsByX,QACxCvU,EAAMyT,oBAIlB7B,EAA0BxM,aACpBD,KAAM5I,EAAcgV,UAAWC,OACrBC,SAAU,sEACVC,SAAU,0BAM1BE,EAA0B1M,eAAiB,WAAc,QACnDC,KAAMgK,IACNhK,KAAM5I,EAAciY,YACpBrP,KAAM5I,EAAckY,cACpBtP,KAAM5I,EAAcmY,mBACpBvP,SAAMwP,GAAWvP,aAAeD,KAAM5I,EAAcqY,OAAQpD,MAAOL,OACnEhM,KAAMvI,EAAkBiY,eAAgBzP,aAAeD,KAAM5I,EAAc8I,cAEjFuM,EAA0BkD,gBACtBrQ,SAAaU,KAAM5I,EAAcwY,MAAOvD,MAAO,+BAC/CuB,YAAgB5N,KAAM5I,EAAcwY,MAAOvD,MAAO,kCAClDmB,UAAcxN,KAAM5I,EAAcwY,MAAOvD,MAAO,gCAChDqB,UAAc1N,KAAM5I,EAAcwY,MAAOvD,MAAO,gCAChDvO,QAAYkC,KAAM5I,EAAcwY,MAAOvD,MAAO,8BAC9CrO,SAAagC,KAAM5I,EAAcwY,MAAOvD,MAAO,+BAC/CpO,WAAe+B,KAAM5I,EAAcwY,MAAOvD,MAAO,iCACjDnO,YAAgB8B,KAAM5I,EAAcwY,MAAOvD,MAAO,kCAClDpR,gBAAoB+E,KAAM5I,EAAcwY,MAAOvD,MAAO,sCACtDvR,iBAAqBkF,KAAM5I,EAAcwY,MAAOvD,MAAO,uCACvDc,OAAWnN,KAAM5I,EAAcwY,MAAOvD
 ,MAAO,6BAC7CrR,cAAkBgF,KAAM5I,EAAcwY,MAAOvD,MAAO,oCACpDwD,oBAAwB7P,KAAM5I,EAAcwY,MAAOvD,MAAO,YAC1DyD,uBAA2B9P,KAAM5I,EAAcwY,MAAOvD,MAAO,eAC7D0D,qBAAyB/P,KAAM5I,EAAcwY,MAAOvD,MAAO,aAC3D2D,qBAAyBhQ,KAAM5I,EAAcwY,MAAOvD,MAAO,aAC3D4D,mBAAuBjQ,KAAM5I,EAAcwY,MAAOvD,MAAO,WACzD6D,oBAAwBlQ,KAAM5I,EAAcwY,MAAOvD,MAAO,YAC1D8D,sBAA0BnQ,KAAM5I,EAAcwY,MAAOvD,MAAO,cAC5D+D,uBAA2BpQ,KAAM5I,EAAcwY,MAAOvD,MAAO,eAC7DgE,2BAA+BrQ,KAAM5I,EAAcwY,MAAOvD,MAAO,mBACjEiE,4BAAgCtQ,KAAM5I,EAAcwY,MAAOvD,MAAO,oBAClEkE,kBAAsBvQ,KAAM5I,EAAcwY,MAAOvD,MAAO,UACxDmE,yBAA6BxQ,KAAM5I,EAAcwY,MAAOvD,MAAO,iBAC/D9O,gBAAoByC,KAAM5I,EAAcqZ,SACxClL,iBAAqBvF,KAAM5I,EAAcqZ,SACzC/V,SAAasF,KAAM5I,EAAcqZ,SACjCxT,SAAa+C,KAAM5I,EAAcqZ,UAE9BhE,KAGPiE,GACA1G,EACA3C,EACA9P,EAAuBoZ,wBACvB3I,EACAkE,GAEA0E,EAAiB,WACjB,QAASA,MAcT,MAZAA,GAAc3Q,aACRD,KAAM5I,EAAcyZ,SAAUxE,OACpByE,SAAUzZ,EAAoB0Z,aAAcxZ,EAAuByZ,sBACnE5a,SAAUqW,EAA2BN,EAAe5U,EAAuByZ,sBAC3EC,cAAexE,EAA2BN,GAC1C+E,WAAYR,EAAmBjH,OAM/CmH,EAAc7Q,eAAiB,WAAc,UACtC6Q,IAGXxa,GAAQ4T,QAAUA,EACl
 B5T,EAAQwD,iBAAmBA,EAC3BxD,EAAQ4U,2BAA6BA,EACrC5U,EAAQkF,WAAaA,EACrBlF,EAAQqW,0BAA4BA,EACpCrW,EAAQ+V,cAAgBA,EACxB/V,EAAQqR,cAAgBlQ,EAAuBkQ,cAC/CrR,EAAQ2P,uBAAyBA,EACjC3P,EAAQ+J,0BAA4BA,EACpC/J,EAAQua,wBAA0BpZ,EAAuBoZ,wBACzDva,EAAQuE,cAAgBA,EACxBvE,EAAQiJ,uBAAyBA,EACjCjJ,EAAQuJ,oBAAsBA,EAC9BvJ,EAAQwJ,+BAAiCA,EACzCxJ,EAAQ+a,WAAa5Z,EAAuB4Z,WAC5C/a,EAAQyT,iBAAmBtS,EAAuBsS,iBAClDzT,EAAQqT,sBAAwBA,EAChCrT,EAAQkT,yBAA2BA,EACnClT,EAAQiS,oBAAsBA,EAC9BjS,EAAQmE,mBAAqBA,EAC7BnE,EAAQqS,oBAAsBA,EAC9BrS,EAAQsa,kBAAoBA,EAC5Bta,EAAQwa,cAAgBA,EACxBxa,EAAQgb,GAAKpJ,EACb5R,EAAQib,GAAK3X,EACbtD,EAAQkb,GAAKtF,EACb5V,EAAQmb,GAAKrF,EACb9V,EAAQob,GAAKzX,EACb3D,EAAQqb,GAAKpK,EAEblP,OAAO6D,eAAe5F,EAAS,cAAgBkC,OAAO","file":"/Users/karakara/repos/material2/dist/bundles/cdk-overlay.umd.min.js"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-platform.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-platform.umd.js b/node_modules/@angular/cdk/bundles/cdk-platform.umd.js
new file mode 100644
index 0000000..ee45355
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-platform.umd.js
@@ -0,0 +1,143 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core')) :
+	typeof define === 'function' && define.amd ? define(['exports', '@angular/core'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.platform = global.ng.cdk.platform || {}),global.ng.core));
+}(this, (function (exports,_angular_core) { 'use strict';
+
+// Whether the current platform supports the V8 Break Iterator. The V8 check
+// is necessary to detect all Blink based browsers.
+var hasV8BreakIterator = (typeof (Intl) !== 'undefined' && ((Intl)).v8BreakIterator);
+/**
+ * Service to detect the current platform by comparing the userAgent strings and
+ * checking browser-specific global properties.
+ * \@docs-private
+ */
+var Platform = (function () {
+    function Platform() {
+        this.isBrowser = typeof document === 'object' && !!document;
+        /**
+         * Layout Engines
+         */
+        this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);
+        this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);
+        // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.
+        this.BLINK = this.isBrowser &&
+            (!!(((window)).chrome || hasV8BreakIterator) && !!CSS && !this.EDGE && !this.TRIDENT);
+        // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to
+        // ensure that Webkit runs standalone and is not used as another engine's base.
+        this.WEBKIT = this.isBrowser &&
+            /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;
+        /**
+         * Browsers and Platform Types
+         */
+        this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
+        // It's difficult to detect the plain Gecko engine, because most of the browsers identify
+        // them self as Gecko-like browsers and modify the userAgent's according to that.
+        // Since we only cover one explicit Firefox case, we can simply check for Firefox
+        // instead of having an unstable check for Gecko.
+        this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);
+        // Trident on mobile adds the android platform to the userAgent to trick detections.
+        this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;
+        // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake
+        // this and just place the Safari keyword in the userAgent. To be more safe about Safari every
+        // Safari browser should also use Webkit as its layout engine.
+        this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;
+    }
+    Platform.decorators = [
+        { type: _angular_core.Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    Platform.ctorParameters = function () { return []; };
+    return Platform;
+}());
+
+/**
+ * Cached result Set of input types support by the current browser.
+ */
+var supportedInputTypes;
+/**
+ * Types of <input> that *might* be supported.
+ */
+var candidateInputTypes = [
+    // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after
+    // first changing it to something else:
+    // The specified value "" does not conform to the required format.
+    // The format is "#rrggbb" where rr, gg, bb are two-digit hexadecimal numbers.
+    'color',
+    'button',
+    'checkbox',
+    'date',
+    'datetime-local',
+    'email',
+    'file',
+    'hidden',
+    'image',
+    'month',
+    'number',
+    'password',
+    'radio',
+    'range',
+    'reset',
+    'search',
+    'submit',
+    'tel',
+    'text',
+    'time',
+    'url',
+    'week',
+];
+/**
+ * @return {?} The input types supported by this browser.
+ */
+function getSupportedInputTypes() {
+    // Result is cached.
+    if (supportedInputTypes) {
+        return supportedInputTypes;
+    }
+    // We can't check if an input type is not supported until we're on the browser, so say that
+    // everything is supported when not on the browser. We don't use `Platform` here since it's
+    // just a helper function and can't inject it.
+    if (typeof document !== 'object' || !document) {
+        supportedInputTypes = new Set(candidateInputTypes);
+        return supportedInputTypes;
+    }
+    var /** @type {?} */ featureTestInput = document.createElement('input');
+    supportedInputTypes = new Set(candidateInputTypes.filter(function (value) {
+        featureTestInput.setAttribute('type', value);
+        return featureTestInput.type === value;
+    }));
+    return supportedInputTypes;
+}
+
+var PlatformModule = (function () {
+    function PlatformModule() {
+    }
+    PlatformModule.decorators = [
+        { type: _angular_core.NgModule, args: [{
+                    providers: [Platform]
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    PlatformModule.ctorParameters = function () { return []; };
+    return PlatformModule;
+}());
+
+exports.Platform = Platform;
+exports.getSupportedInputTypes = getSupportedInputTypes;
+exports.PlatformModule = PlatformModule;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-platform.umd.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-platform.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-platform.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-platform.umd.js.map
new file mode 100644
index 0000000..16924fa
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-platform.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-platform.umd.js","sources":["cdk/platform.es5.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, NgModule } from '@angular/core';\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nvar hasV8BreakIterator = (typeof (Intl) !== 'undefined' && ((Intl)).v8BreakIterator);\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n * \\@docs-private\n */\nvar Platform = (function () {\n    function Platform() {\n        this.isBrowser = typeof document === 'object' && !!document;\n        /**\n         * Layout Engines\n         */\n        this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\
 n        this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n        // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n        this.BLINK = this.isBrowser &&\n            (!!(((window)).chrome || hasV8BreakIterator) && !!CSS && !this.EDGE && !this.TRIDENT);\n        // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n        // ensure that Webkit runs standalone and is not used as another engine's base.\n        this.WEBKIT = this.isBrowser &&\n            /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n        /**\n         * Browsers and Platform Types\n         */\n        this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n        // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n        // them self as Gecko-like browsers and modify the userAgent's 
 according to that.\n        // Since we only cover one explicit Firefox case, we can simply check for Firefox\n        // instead of having an unstable check for Gecko.\n        this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n        // Trident on mobile adds the android platform to the userAgent to trick detections.\n        this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n        // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n        // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n        // Safari browser should also use Webkit as its layout engine.\n        this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n    }\n    Platform.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    Platform.ctorParameters = function () { return []; };\n
     return Platform;\n}());\n\n/**\n * Cached result Set of input types support by the current browser.\n */\nvar supportedInputTypes;\n/**\n * Types of <input> that *might* be supported.\n */\nvar candidateInputTypes = [\n    // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n    // first changing it to something else:\n    // The specified value \"\" does not conform to the required format.\n    // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n    'color',\n    'button',\n    'checkbox',\n    'date',\n    'datetime-local',\n    'email',\n    'file',\n    'hidden',\n    'image',\n    'month',\n    'number',\n    'password',\n    'radio',\n    'range',\n    'reset',\n    'search',\n    'submit',\n    'tel',\n    'text',\n    'time',\n    'url',\n    'week',\n];\n/**\n * @return {?} The input types supported by this browser.\n */\nfunction getSupportedInputTypes() {\n    // Result is cached.\n    if (supporte
 dInputTypes) {\n        return supportedInputTypes;\n    }\n    // We can't check if an input type is not supported until we're on the browser, so say that\n    // everything is supported when not on the browser. We don't use `Platform` here since it's\n    // just a helper function and can't inject it.\n    if (typeof document !== 'object' || !document) {\n        supportedInputTypes = new Set(candidateInputTypes);\n        return supportedInputTypes;\n    }\n    var /** @type {?} */ featureTestInput = document.createElement('input');\n    supportedInputTypes = new Set(candidateInputTypes.filter(function (value) {\n        featureTestInput.setAttribute('type', value);\n        return featureTestInput.type === value;\n    }));\n    return supportedInputTypes;\n}\n\nvar PlatformModule = (function () {\n    function PlatformModule() {\n    }\n    PlatformModule.decorators = [\n        { type: NgModule, args: [{\n                    providers: [Platform]\n                },] },\n    ];
 \n    /**\n     * @nocollapse\n     */\n    PlatformModule.ctorParameters = function () { return []; };\n    return PlatformModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Platform, getSupportedInputTypes, PlatformModule };\n//# sourceMappingURL=platform.es5.js.map\n"],"names":["Injectable","NgModule"],"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/bundles/cdk-platform.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-platform.umd.min.js b/node_modules/@angular/cdk/bundles/cdk-platform.umd.min.js
new file mode 100644
index 0000000..b0687a0
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-platform.umd.min.js
@@ -0,0 +1,9 @@
+/**
+ * @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
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core")):"function"==typeof define&&define.amd?define(["exports","@angular/core"],e):e((t.ng=t.ng||{},t.ng.cdk=t.ng.cdk||{},t.ng.cdk.platform=t.ng.cdk.platform||{}),t.ng.core)}(this,function(t,e){"use strict";function r(){if(i)return i;if("object"!=typeof document||!document)return i=new Set(s);var t=document.createElement("input");return i=new Set(s.filter(function(e){return t.setAttribute("type",e),t.type===e}))}var i,n="undefined"!=typeof Intl&&Intl.v8BreakIterator,o=function(){function t(){this.isBrowser="object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!n)&&!!CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser
 &&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}return t.decorators=[{type:e.Injectable}],t.ctorParameters=function(){return[]},t}(),s=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"],a=function(){function t(){}return t.decorators=[{type:e.NgModule,args:[{providers:[o]}]}],t.ctorParameters=function(){return[]},t}();t.Platform=o,t.getSupportedInputTypes=r,t.PlatformModule=a,Object.defineProperty(t,"__esModule",{value:!0})});
+//# sourceMappingURL=/Users/karakara/repos/material2/dist/bundles/cdk-platform.umd.min.js.map
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-platform.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-platform.umd.min.js.map b/node_modules/@angular/cdk/bundles/cdk-platform.umd.min.js.map
new file mode 100644
index 0000000..f1c2aec
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-platform.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["/Users/karakara/repos/material2/dist/bundles/cdk-platform.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","cdk","platform","core","this","_angular_core","getSupportedInputTypes","supportedInputTypes","document","Set","candidateInputTypes","featureTestInput","createElement","filter","value","setAttribute","type","hasV8BreakIterator","v8BreakIterator","Platform","isBrowser","EDGE","test","navigator","userAgent","TRIDENT","BLINK","chrome","CSS","WEBKIT","IOS","window","MSStream","FIREFOX","ANDROID","SAFARI","decorators","Injectable","ctorParameters","PlatformModule","NgModule","args","providers","Object","defineProperty"],"mappings":";;;;;;;CAOC,SAAUA,EAAQC,GACC,gBAAZC,UAA0C,mBAAXC,QAAyBF,EAAQC,QAASE,QAAQ,kBACtE,kBAAXC,SAAyBA,OAAOC,IAAMD,QAAQ,UAAW,iBAAkBJ,GACjFA,GAASD,EAAOO,GAAKP,EAAOO,OAAUP,EAAOO,GAAGC,IAAMR,EAAOO,GAAGC,QAAWR,EAAOO,GAAGC,IAAIC,SAAWT,EAAOO,GAAGC,IAAIC,cAAgBT,EAAOO,GAAGG,OAC5IC,KAAM,SAAWT,EAAQU,GAAiB,YAyF5C,
 SAASC,KAEL,GAAIC,EACA,MAAOA,EAKX,IAAwB,gBAAbC,YAA0BA,SAEjC,MADAD,GAAsB,GAAIE,KAAIC,EAGlC,IAAqBC,GAAmBH,SAASI,cAAc,QAK/D,OAJAL,GAAsB,GAAIE,KAAIC,EAAoBG,OAAO,SAAUC,GAE/D,MADAH,GAAiBI,aAAa,OAAQD,GAC/BH,EAAiBK,OAASF,KApGzC,GAkDIP,GAlDAU,EAAwC,mBAAX,OAA0B,KAASC,gBAMhEC,EAAY,WACZ,QAASA,KACLf,KAAKgB,UAAgC,gBAAbZ,aAA2BA,SAInDJ,KAAKiB,KAAOjB,KAAKgB,WAAa,UAAUE,KAAKC,UAAUC,WACvDpB,KAAKqB,QAAUrB,KAAKgB,WAAa,kBAAkBE,KAAKC,UAAUC,WAElEpB,KAAKsB,MAAQtB,KAAKgB,cACV,OAAWO,SAAUV,MAAyBW,MAAQxB,KAAKiB,OAASjB,KAAKqB,QAGjFrB,KAAKyB,OAASzB,KAAKgB,WACf,eAAeE,KAAKC,UAAUC,aAAepB,KAAKsB,QAAUtB,KAAKiB,OAASjB,KAAKqB,QAInFrB,KAAK0B,IAAM1B,KAAKgB,WAAa,mBAAmBE,KAAKC,UAAUC,aAAeO,OAAOC,SAKrF5B,KAAK6B,QAAU7B,KAAKgB,WAAa,uBAAuBE,KAAKC,UAAUC,WAEvEpB,KAAK8B,QAAU9B,KAAKgB,WAAa,WAAWE,KAAKC,UAAUC,aAAepB,KAAKqB,QAI/ErB,KAAK+B,OAAS/B,KAAKgB,WAAa,UAAUE,KAAKC,UAAUC,YAAcpB,KAAKyB,OAShF,MAPAV,GAASiB,aACHpB,KAAMX,EAAcgC,aAK1BlB,EAASmB,eAAiB,WAAc,UACjCnB,KAUPT,GAKA,QACA,SACA,WACA,OACA,iBACA,QACA,OACA,SACA,QACA,QACA,SACA,WACA,QACA,Q
 ACA,QACA,SACA,SACA,MACA,OACA,OACA,MACA,QAyBA6B,EAAkB,WAClB,QAASA,MAWT,MATAA,GAAeH,aACTpB,KAAMX,EAAcmC,SAAUC,OACpBC,WAAYvB,OAM5BoB,EAAeD,eAAiB,WAAc,UACvCC,IAGX5C,GAAQwB,SAAWA,EACnBxB,EAAQW,uBAAyBA,EACjCX,EAAQ4C,eAAiBA,EAEzBI,OAAOC,eAAejD,EAAS,cAAgBmB,OAAO","file":"/Users/karakara/repos/material2/dist/bundles/cdk-platform.umd.min.js"}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/@angular/animations/browser.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser.js.map b/node_modules/@angular/animations/@angular/animations/browser.js.map
new file mode 100644
index 0000000..b4808b8
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"browser.js","sources":["../../../../../packages/animations/browser/index.ts","../../../../../packages/animations/browser/public_api.ts","../../../../../packages/animations/browser/src/browser.ts","../../../../../packages/animations/browser/src/private_export.ts","../../../../../packages/animations/browser/src/render/web_animations/web_animations_driver.ts","../../../../../packages/animations/browser/src/render/web_animations/web_animations_player.ts","../../../../../packages/animations/browser/src/render/animation_engine_next.ts","../../../../../packages/animations/browser/src/render/transition_animation_engine.ts","../../../../../packages/animations/browser/src/render/timeline_animation_engine.ts","../../../../../packages/animations/browser/src/dsl/animation_trigger.ts","../../../../../packages/animations/browser/src/dsl/animation_transition_factory.ts","../../../../../packages/animations/browser/src/dsl/animation_transition_instruction.ts","../../../../../pack
 ages/animations/browser/src/dsl/style_normalization/web_animations_style_normalizer.ts","../../../../../packages/animations/browser/src/dsl/style_normalization/animation_style_normalizer.ts","../../../../../packages/animations/browser/src/dsl/animation.ts","../../../../../packages/animations/browser/src/dsl/animation_timeline_builder.ts","../../../../../packages/animations/browser/src/dsl/element_instruction_map.ts","../../../../../packages/animations/browser/src/dsl/animation_timeline_instruction.ts","../../../../../packages/animations/browser/src/dsl/animation_ast_builder.ts","../../../../../packages/animations/browser/src/dsl/animation_transition_expr.ts","../../../../../packages/animations/browser/src/util.ts","../../../../../packages/animations/browser/src/render/animation_driver.ts","../../../../../packages/animations/browser/src/render/shared.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport {AnimationDriver,ɵAnimation,ɵAnimationStyleNormal
 izer,ɵNoopAnimationStyleNormalizer,ɵWebAnimationsStyleNormalizer,ɵNoopAnimationDriver,ɵAnimationEngine,ɵWebAnimationsDriver,ɵsupportsWebAnimations,ɵWebAnimationsPlayer} from './public_api';\n","/**\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/**\n * @module\n * @description\n * Entry point for all public APIs of the animation package.\n */\nexport {AnimationDriver,ɵAnimation,ɵAnimationStyleNormalizer,ɵNoopAnimationStyleNormalizer,ɵWebAnimationsStyleNormalizer,ɵNoopAnimationDriver,ɵAnimationEngine,ɵWebAnimationsDriver,ɵsupportsWebAnimations,ɵWebAnimationsPlayer} from './src/browser';\n","/**\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/**\n * @mo
 dule\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\nexport {AnimationDriver} from './render/animation_driver';\nexport {ɵAnimation,ɵAnimationStyleNormalizer,ɵNoopAnimationStyleNormalizer,ɵWebAnimationsStyleNormalizer,ɵNoopAnimationDriver,ɵAnimationEngine,ɵWebAnimationsDriver,ɵsupportsWebAnimations,ɵWebAnimationsPlayer} from './private_export';\n","/**\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 {Animation as ɵAnimation} from './dsl/animation';\nexport {AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer} from './dsl/style_normalization/animation_style_normalizer';\nexport {WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer} from './dsl/style_normalization/web_animations_style_norma
 lizer';\nexport {NoopAnimationDriver as ɵNoopAnimationDriver} from './render/animation_driver';\nexport {AnimationEngine as ɵAnimationEngine} from './render/animation_engine_next';\nexport {WebAnimationsDriver as ɵWebAnimationsDriver, supportsWebAnimations as ɵsupportsWebAnimations} from './render/web_animations/web_animations_driver';\nexport {WebAnimationsPlayer as ɵWebAnimationsPlayer} from './render/web_animations/web_animations_player';\n","/**\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\nimport {AnimationPlayer, ɵStyleData} from '@angular/animations';\n\nimport {AnimationDriver} from '../animation_driver';\nimport {containsElement, invokeQuery, matchesElement} from '../shared';\n\nimport {WebAnimationsPlayer} from './web_animations_player';\nexport class WebAnimationsDriver implements AnimationDriver {\n/**\n *
  @param {?} element\n * @param {?} selector\n * @return {?}\n */\nmatchesElement(element: any, selector: string): boolean {\n    return matchesElement(element, selector);\n  }\n/**\n * @param {?} elm1\n * @param {?} elm2\n * @return {?}\n */\ncontainsElement(elm1: any, elm2: any): boolean { return containsElement(elm1, elm2); }\n/**\n * @param {?} element\n * @param {?} selector\n * @param {?} multi\n * @return {?}\n */\nquery(element: any, selector: string, multi: boolean): any[] {\n    return invokeQuery(element, selector, multi);\n  }\n/**\n * @param {?} element\n * @param {?} prop\n * @param {?=} defaultValue\n * @return {?}\n */\ncomputeStyle(element: any, prop: string, defaultValue?: string): string {\n    return /** @type {?} */(( ( /** @type {?} */((window.getComputedStyle(element) as any)))[prop] as string));\n  }\n/**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} duration\n * @param {?} delay\n * @param {?} easing\n * @param {?=} previousPlayers\n * @retur
 n {?}\n */\nanimate(\n      element: any, keyframes: ɵStyleData[], duration: number, delay: number, easing: string,\n      previousPlayers: AnimationPlayer[] = []): WebAnimationsPlayer {\n    const /** @type {?} */ fill = delay == 0 ? 'both' : 'forwards';\n    const /** @type {?} */ playerOptions: {[key: string]: string | number} = {duration, delay, fill};\n\n    // we check for this to avoid having a null|undefined value be present\n    // for the easing (which results in an error for certain browsers #9752)\n    if (easing) {\n      playerOptions['easing'] = easing;\n    }\n\n    const /** @type {?} */ previousWebAnimationPlayers = /** @type {?} */(( <WebAnimationsPlayer[]>previousPlayers.filter(\n        player => { return player instanceof WebAnimationsPlayer; })));\n    return new WebAnimationsPlayer(element, keyframes, playerOptions, previousWebAnimationPlayers);\n  }\n}\n/**\n * @return {?}\n */\nexport function supportsWebAnimations() {\n  return typeof Element !== 'undefin
 ed' && typeof( /** @type {?} */((<any>Element))).prototype['animate'] === 'function';\n}\n","/**\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\nimport {AnimationPlayer} from '@angular/animations';\n\nimport {allowPreviousPlayerStylesMerge, copyStyles} from '../../util';\n\nimport {DOMAnimation} from './dom_animation';\nexport class WebAnimationsPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _onDestroyFns: Function[] = [];\nprivate _player: DOMAnimation;\nprivate _duration: number;\nprivate _delay: number;\nprivate _initialized = false;\nprivate _finished = false;\nprivate _started = false;\nprivate _destroyed = false;\nprivate _finalKeyframe: {[key: string]: string | number};\npublic time = 0;\npublic parentPlayer: AnimationPlayer|null = null;\npublic
  previousStyles: {[styleName: string]: string | number} = {};\npublic currentSnapshot: {[styleName: string]: string | number} = {};\n/**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} options\n * @param {?=} previousPlayers\n */\nconstructor(\npublic element: any,\npublic keyframes: {[key: string]: string | number}[],\npublic options: {[key: string]: string | number},\nprivate previousPlayers: WebAnimationsPlayer[] = []) {\n    this._duration = <number>options['duration'];\n    this._delay = <number>options['delay'] || 0;\n    this.time = this._duration + this._delay;\n\n    if (allowPreviousPlayerStylesMerge(this._duration, this._delay)) {\n      previousPlayers.forEach(player => {\n        let styles = player.currentSnapshot;\n        Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]);\n      });\n    }\n  }\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._finished) {\n      this._finished = true;\n      this._onDoneFns.fo
 rEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @return {?}\n */\ninit(): void {\n    this._buildPlayer();\n    this._preparePlayerBeforeStart();\n  }\n/**\n * @return {?}\n */\nprivate _buildPlayer(): void {\n    if (this._initialized) return;\n    this._initialized = true;\n\n    const /** @type {?} */ keyframes = this.keyframes.map(styles => copyStyles(styles, false));\n    const /** @type {?} */ previousStyleProps = Object.keys(this.previousStyles);\n    if (previousStyleProps.length) {\n      let /** @type {?} */ startingKeyframe = keyframes[0];\n      let /** @type {?} */ missingStyleProps: string[] = [];\n      previousStyleProps.forEach(prop => {\n        if (!startingKeyframe.hasOwnProperty(prop)) {\n          missingStyleProps.push(prop);\n        }\n        startingKeyframe[prop] = this.previousStyles[prop];\n      });\n\n      if (missingStyleProps.length) {\n        const /** @type {?} */ self = this;\n        // tslint:disable-next-line\n        fo
 r (var /** @type {?} */ i = 1; i < keyframes.length; i++) {\n          let /** @type {?} */ kf = keyframes[i];\n          missingStyleProps.forEach(function(prop) {\n            kf[prop] = _computeStyle(self.element, prop);\n          });\n        }\n      }\n    }\n\n    this._player = this._triggerWebAnimation(this.element, keyframes, this.options);\n    this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : {};\n    this._player.addEventListener('finish', () => this._onFinish());\n  }\n/**\n * @return {?}\n */\nprivate _preparePlayerBeforeStart() {\n    // this is required so that the player doesn't start to animate right away\n    if (this._delay) {\n      this._resetDomPlayerState();\n    } else {\n      this._player.pause();\n    }\n  }\n/**\n * \\@internal\n * @param {?} element\n * @param {?} keyframes\n * @param {?} options\n * @return {?}\n */\n_triggerWebAnimation(element: any, keyframes: any[], options: any): DOMAnimation {\n    // jscompiler doesn't 
 seem to know animate is a native property because it's not fully\n    // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n    return /** @type {?} */(( element['animate'](keyframes, options) as DOMAnimation));\n  }\n/**\n * @return {?}\n */\nget domPlayer() { return this._player; }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void { this._onStartFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void { this._onDoneFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void { this._onDestroyFns.push(fn); }\n/**\n * @return {?}\n */\nplay(): void {\n    this._buildPlayer();\n    if (!this.hasStarted()) {\n      this._onStartFns.forEach(fn => fn());\n      this._onStartFns = [];\n      this._started = true;\n    }\n    this._player.play();\n  }\n/**\n * @return {?}\n */\npause(): void {\n    this.init();\n    this._player.pause();\n  }\n/**\n * @return {?}\n
  */\nfinish(): void {\n    this.init();\n    this._onFinish();\n    this._player.finish();\n  }\n/**\n * @return {?}\n */\nreset(): void {\n    this._resetDomPlayerState();\n    this._destroyed = false;\n    this._finished = false;\n    this._started = false;\n  }\n/**\n * @return {?}\n */\nprivate _resetDomPlayerState() {\n    if (this._player) {\n      this._player.cancel();\n    }\n  }\n/**\n * @return {?}\n */\nrestart(): void {\n    this.reset();\n    this.play();\n  }\n/**\n * @return {?}\n */\nhasStarted(): boolean { return this._started; }\n/**\n * @return {?}\n */\ndestroy(): void {\n    if (!this._destroyed) {\n      this._destroyed = true;\n      this._resetDomPlayerState();\n      this._onFinish();\n      this._onDestroyFns.forEach(fn => fn());\n      this._onDestroyFns = [];\n    }\n  }\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: number): void { this._player.currentTime = p * this.time; }\n/**\n * @return {?}\n */\ngetPosition(): number { return this._pla
 yer.currentTime / this.time; }\n/**\n * @return {?}\n */\nget totalTime(): number { return this._delay + this._duration; }\n/**\n * @return {?}\n */\nbeforeDestroy() {\n    const /** @type {?} */ styles: {[key: string]: string | number} = {};\n    if (this.hasStarted()) {\n      Object.keys(this._finalKeyframe).forEach(prop => {\n        if (prop != 'offset') {\n          styles[prop] =\n              this._finished ? this._finalKeyframe[prop] : _computeStyle(this.element, prop);\n        }\n      });\n    }\n    this.currentSnapshot = styles;\n  }\n}\n\nfunction WebAnimationsPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nWebAnimationsPlayer.prototype._onDoneFns;\n/** @type {?} */\nWebAnimationsPlayer.prototype._onStartFns;\n/** @type {?} */\nWebAnimationsPlayer.prototype._onDestroyFns;\n/** @type {?} */\nWebAnimationsPlayer.prototype._player;\n/** @type {?} */\nWebAnimationsPlayer.prototype._duration;\n/** @type {?} */\nWebAnimationsPlayer.prototype._delay;\n/** @type {
 ?} */\nWebAnimationsPlayer.prototype._initialized;\n/** @type {?} */\nWebAnimationsPlayer.prototype._finished;\n/** @type {?} */\nWebAnimationsPlayer.prototype._started;\n/** @type {?} */\nWebAnimationsPlayer.prototype._destroyed;\n/** @type {?} */\nWebAnimationsPlayer.prototype._finalKeyframe;\n/** @type {?} */\nWebAnimationsPlayer.prototype.time;\n/** @type {?} */\nWebAnimationsPlayer.prototype.parentPlayer;\n/** @type {?} */\nWebAnimationsPlayer.prototype.previousStyles;\n/** @type {?} */\nWebAnimationsPlayer.prototype.currentSnapshot;\n/** @type {?} */\nWebAnimationsPlayer.prototype.element;\n/** @type {?} */\nWebAnimationsPlayer.prototype.keyframes;\n/** @type {?} */\nWebAnimationsPlayer.prototype.options;\n/** @type {?} */\nWebAnimationsPlayer.prototype.previousPlayers;\n}\n\n/**\n * @param {?} element\n * @param {?} prop\n * @return {?}\n */\nfunction _computeStyle(element: any, prop: string): string {\n  return ( /** @type {?} */((<any>window.getComputedStyle(element))))[pro
 p];\n}\n","/**\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\nimport {AnimationMetadata, AnimationPlayer, AnimationTriggerMetadata} from '@angular/animations';\nimport {TriggerAst} from '../dsl/animation_ast';\nimport {buildAnimationAst} from '../dsl/animation_ast_builder';\nimport {AnimationTrigger, buildTrigger} from '../dsl/animation_trigger';\nimport {AnimationStyleNormalizer} from '../dsl/style_normalization/animation_style_normalizer';\n\nimport {AnimationDriver} from './animation_driver';\nimport {parseTimelineCommand} from './shared';\nimport {TimelineAnimationEngine} from './timeline_animation_engine';\nimport {TransitionAnimationEngine} from './transition_animation_engine';\nexport class AnimationEngine {\nprivate _transitionEngine: TransitionAnimationEngine;\nprivate _timelineEngine: TimelineAnimationEngine;\npriv
 ate _triggerCache: {[key: string]: AnimationTrigger} = {};\npublic onRemovalComplete = (element: any, context: any) => {};\n/**\n * @param {?} driver\n * @param {?} normalizer\n */\nconstructor(driver: AnimationDriver, normalizer: AnimationStyleNormalizer) {\n    this._transitionEngine = new TransitionAnimationEngine(driver, normalizer);\n    this._timelineEngine = new TimelineAnimationEngine(driver, normalizer);\n\n    this._transitionEngine.onRemovalComplete = (element: any, context: any) =>\n        this.onRemovalComplete(element, context);\n  }\n/**\n * @param {?} componentId\n * @param {?} namespaceId\n * @param {?} hostElement\n * @param {?} name\n * @param {?} metadata\n * @return {?}\n */\nregisterTrigger(\n      componentId: string, namespaceId: string, hostElement: any, name: string,\n      metadata: AnimationTriggerMetadata): void {\n    const /** @type {?} */ cacheKey = componentId + '-' + name;\n    let /** @type {?} */ trigger = this._triggerCache[cacheKey];\n    if (!
 trigger) {\n      const /** @type {?} */ errors: any[] = [];\n      const /** @type {?} */ ast = /** @type {?} */(( buildAnimationAst( /** @type {?} */((metadata as AnimationMetadata)), errors) as TriggerAst));\n      if (errors.length) {\n        throw new Error(\n            `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.join(\"\\n - \")}`);\n      }\n      trigger = buildTrigger(name, ast);\n      this._triggerCache[cacheKey] = trigger;\n    }\n    this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\nregister(namespaceId: string, hostElement: any) {\n    this._transitionEngine.register(namespaceId, hostElement);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\ndestroy(namespaceId: string, context: any) {\n    this._transitionEngine.destroy(namespaceId, context);\n  }\n/**\n * @param {?} namespaceId
 \n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\nonInsert(namespaceId: string, element: any, parent: any, insertBefore: boolean): void {\n    this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\nonRemove(namespaceId: string, element: any, context: any): void {\n    this._transitionEngine.removeNode(namespaceId, element, context);\n  }\n/**\n * @param {?} element\n * @param {?} disable\n * @return {?}\n */\ndisableAnimations(element: any, disable: boolean) {\n    this._transitionEngine.markElementAsDisabled(element, disable);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} property\n * @param {?} value\n * @return {?}\n */\nprocess(namespaceId: string, element: any, property: string, value: any) {\n    if (property.charAt(0) == '@') {\n      const [id, action] = parseTimelineCommand
 (property);\n      const /** @type {?} */ args = /** @type {?} */(( value as any[]));\n      this._timelineEngine.command(id, element, action, args);\n    } else {\n      this._transitionEngine.trigger(namespaceId, element, property, value);\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} eventName\n * @param {?} eventPhase\n * @param {?} callback\n * @return {?}\n */\nlisten(\n      namespaceId: string, element: any, eventName: string, eventPhase: string,\n      callback: (event: any) => any): () => any {\n    // @@listen\n    if (eventName.charAt(0) == '@') {\n      const [id, action] = parseTimelineCommand(eventName);\n      return this._timelineEngine.listen(id, element, action, callback);\n    }\n    return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n  }\n/**\n * @param {?=} microtaskId\n * @return {?}\n */\nflush(microtaskId: number = -1): void { this._transitionEngine.flush(microtaskId); }\n/**\n * @
 return {?}\n */\nget players(): AnimationPlayer[] {\n    return ( /** @type {?} */((this._transitionEngine.players as AnimationPlayer[])))\n        .concat( /** @type {?} */((this._timelineEngine.players as AnimationPlayer[])));\n  }\n/**\n * @return {?}\n */\nwhenRenderingDone(): Promise<any> { return this._transitionEngine.whenRenderingDone(); }\n}\n\nfunction AnimationEngine_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationEngine.prototype._transitionEngine;\n/** @type {?} */\nAnimationEngine.prototype._timelineEngine;\n/** @type {?} */\nAnimationEngine.prototype._triggerCache;\n/** @type {?} */\nAnimationEngine.prototype.onRemovalComplete;\n}\n\n","/**\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\nimport {AUTO_STYLE, AnimationOptions, AnimationPlayer, NoopAnimationPlayer, ɵAnimationGroupPlayer as AnimationG
 roupPlayer, ɵPRE_STYLE as PRE_STYLE, ɵStyleData} from '@angular/animations';\n\nimport {AnimationTimelineInstruction} from '../dsl/animation_timeline_instruction';\nimport {AnimationTransitionFactory} from '../dsl/animation_transition_factory';\nimport {AnimationTransitionInstruction} from '../dsl/animation_transition_instruction';\nimport {AnimationTrigger} from '../dsl/animation_trigger';\nimport {ElementInstructionMap} from '../dsl/element_instruction_map';\nimport {AnimationStyleNormalizer} from '../dsl/style_normalization/animation_style_normalizer';\nimport {ENTER_CLASSNAME, LEAVE_CLASSNAME, NG_ANIMATING_CLASSNAME, NG_ANIMATING_SELECTOR, NG_TRIGGER_CLASSNAME, NG_TRIGGER_SELECTOR, copyObj, eraseStyles, setStyles} from '../util';\n\nimport {AnimationDriver} from './animation_driver';\nimport {getOrSetAsInMap, listenOnPlayer, makeAnimationEvent, normalizeKeyframes, optimizeGroupPlayer} from './shared';\n\nconst /** @type {?} */ QUEUED_CLASSNAME = 'ng-animate-queued';\nconst /**
  @type {?} */ QUEUED_SELECTOR = '.ng-animate-queued';\nconst /** @type {?} */ DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst /** @type {?} */ DISABLED_SELECTOR = '.ng-animate-disabled';\n\nconst /** @type {?} */ EMPTY_PLAYER_ARRAY: TransitionAnimationPlayer[] = [];\nconst /** @type {?} */ NULL_REMOVAL_STATE: ElementAnimationState = {\n  namespaceId: '',\n  setForRemoval: null,\n  hasAnimation: false,\n  removedBeforeQueried: false\n};\nconst /** @type {?} */ NULL_REMOVED_QUERIED_STATE: ElementAnimationState = {\n  namespaceId: '',\n  setForRemoval: null,\n  hasAnimation: false,\n  removedBeforeQueried: true\n};\n\ninterface TriggerListener {\n  name: string;\n  phase: string;\n  callback: (event: any) => any;\n}\n\nexport interface QueueInstruction {\n  element: any;\n  triggerName: string;\n  fromState: StateValue;\n  toState: StateValue;\n  transition: AnimationTransitionFactory;\n  player: TransitionAnimationPlayer;\n  isFallbackTransition: boolean;\n}\n\nexport const /** @ty
 pe {?} */ REMOVAL_FLAG = '__ng_removed';\n\nexport interface ElementAnimationState {\n  setForRemoval: any;\n  hasAnimation: boolean;\n  namespaceId: string;\n  removedBeforeQueried: boolean;\n}\nexport class StateValue {\npublic value: string;\npublic options: AnimationOptions;\n/**\n * @return {?}\n */\nget params(): {[key: string]: any} { return /** @type {?} */(( this.options.params as{[key: string]: any})); }\n/**\n * @param {?} input\n */\nconstructor(input: any) {\n    const isObj = input && input.hasOwnProperty('value');\n    const value = isObj ? input['value'] : input;\n    this.value = normalizeTriggerValue(value);\n    if (isObj) {\n      const options = copyObj(input as any);\n      delete options['value'];\n      this.options = options as AnimationOptions;\n    } else {\n      this.options = {};\n    }\n    if (!this.options.params) {\n      this.options.params = {};\n    }\n  }\n/**\n * @param {?} options\n * @return {?}\n */\nabsorbOptions(options: AnimationOptions) 
 {\n    const /** @type {?} */ newParams = options.params;\n    if (newParams) {\n      const /** @type {?} */ oldParams = /** @type {?} */(( this.options.params));\n      Object.keys(newParams).forEach(prop => {\n        if (oldParams[prop] == null) {\n          oldParams[prop] = newParams[prop];\n        }\n      });\n    }\n  }\n}\n\nfunction StateValue_tsickle_Closure_declarations() {\n/** @type {?} */\nStateValue.prototype.value;\n/** @type {?} */\nStateValue.prototype.options;\n}\n\n\nexport const /** @type {?} */ VOID_VALUE = 'void';\nexport const /** @type {?} */ DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nexport const /** @type {?} */ DELETED_STATE_VALUE = new StateValue('DELETED');\nexport class AnimationTransitionNamespace {\npublic players: TransitionAnimationPlayer[] = [];\nprivate _triggers: {[triggerName: string]: AnimationTrigger} = {};\nprivate _queue: QueueInstruction[] = [];\nprivate _elementListeners = new Map<any, TriggerListener[]>();\nprivate _hostClassN
 ame: string;\n/**\n * @param {?} id\n * @param {?} hostElement\n * @param {?} _engine\n */\nconstructor(\npublic id: string,\npublic hostElement: any,\nprivate _engine: TransitionAnimationEngine) {\n    this._hostClassName = 'ng-tns-' + id;\n    addClass(hostElement, this._hostClassName);\n  }\n/**\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\nlisten(element: any, name: string, phase: string, callback: (event: any) => boolean): () => any {\n    if (!this._triggers.hasOwnProperty(name)) {\n      throw new Error(`Unable to listen on the animation trigger event \"${\n          phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n    }\n\n    if (phase == null || phase.length == 0) {\n      throw new Error(`Unable to listen on the animation trigger \"${\n          name}\" because the provided event is undefined!`);\n    }\n\n    if (!isTriggerEventValid(phase)) {\n      throw new Error(`The provided anima
 tion trigger event \"${phase}\" for the animation trigger \"${\n          name}\" is not supported!`);\n    }\n\n    const /** @type {?} */ listeners = getOrSetAsInMap(this._elementListeners, element, []);\n    const /** @type {?} */ data = {name, phase, callback};\n    listeners.push(data);\n\n    const /** @type {?} */ triggersWithStates = getOrSetAsInMap(this._engine.statesByElement, element, {});\n    if (!triggersWithStates.hasOwnProperty(name)) {\n      addClass(element, NG_TRIGGER_CLASSNAME);\n      addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n      triggersWithStates[name] = null;\n    }\n\n    return () => {\n      // the event listener is removed AFTER the flush has occurred such\n      // that leave animations callbacks can fire (otherwise if the node\n      // is removed in between then the listeners would be deregistered)\n      this._engine.afterFlush(() => {\n        const /** @type {?} */ index = listeners.indexOf(data);\n        if (index >= 0) {\n        
   listeners.splice(index, 1);\n        }\n\n        if (!this._triggers[name]) {\n          delete triggersWithStates[name];\n        }\n      });\n    };\n  }\n/**\n * @param {?} name\n * @param {?} ast\n * @return {?}\n */\nregister(name: string, ast: AnimationTrigger): boolean {\n    if (this._triggers[name]) {\n      // throw\n      return false;\n    } else {\n      this._triggers[name] = ast;\n      return true;\n    }\n  }\n/**\n * @param {?} name\n * @return {?}\n */\nprivate _getTrigger(name: string) {\n    const /** @type {?} */ trigger = this._triggers[name];\n    if (!trigger) {\n      throw new Error(`The provided animation trigger \"${name}\" has not been registered!`);\n    }\n    return trigger;\n  }\n/**\n * @param {?} element\n * @param {?} triggerName\n * @param {?} value\n * @param {?=} defaultToFallback\n * @return {?}\n */\ntrigger(element: any, triggerName: string, value: any, defaultToFallback: boolean = true):\n      TransitionAnimationPlayer|undefined {\n  
   const /** @type {?} */ trigger = this._getTrigger(triggerName);\n    const /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element);\n\n    let /** @type {?} */ triggersWithStates = this._engine.statesByElement.get(element);\n    if (!triggersWithStates) {\n      addClass(element, NG_TRIGGER_CLASSNAME);\n      addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n      this._engine.statesByElement.set(element, triggersWithStates = {});\n    }\n\n    let /** @type {?} */ fromState = triggersWithStates[triggerName];\n    const /** @type {?} */ toState = new StateValue(value);\n\n    const /** @type {?} */ isObj = value && value.hasOwnProperty('value');\n    if (!isObj && fromState) {\n      toState.absorbOptions(fromState.options);\n    }\n\n    triggersWithStates[triggerName] = toState;\n\n    if (!fromState) {\n      fromState = DEFAULT_STATE_VALUE;\n    } else if (fromState === DELETED_STATE_VALUE) {\n      return player;\n    }\n\n    const 
 /** @type {?} */ isRemoval = toState.value === VOID_VALUE;\n\n    // normally this isn't reached by here, however, if an object expression\n    // is passed in then it may be a new object each time. Comparing the value\n    // is important since that will stay the same despite there being a new object.\n    // The removal arc here is special cased because the same element is triggered\n    // twice in the event that it contains animations on the outer/inner portions\n    // of the host container\n    if (!isRemoval && fromState.value === toState.value) {\n      // this means that despite the value not changing, some inner params\n      // have changed which means that the animation final styles need to be applied\n      if (!objEquals(fromState.params, toState.params)) {\n        const /** @type {?} */ errors: any[] = [];\n        const /** @type {?} */ fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n        const /** @type {?} */ toStyles = trigger.mat
 chStyles(toState.value, toState.params, errors);\n        if (errors.length) {\n          this._engine.reportError(errors);\n        } else {\n          this._engine.afterFlush(() => {\n            eraseStyles(element, fromStyles);\n            setStyles(element, toStyles);\n          });\n        }\n      }\n      return;\n    }\n\n    const /** @type {?} */ playersOnElement: TransitionAnimationPlayer[] =\n        getOrSetAsInMap(this._engine.playersByElement, element, []);\n    playersOnElement.forEach(player => {\n      // only remove the player if it is queued on the EXACT same trigger/namespace\n      // we only also deal with queued players here because if the animation has\n      // started then we want to keep the player alive until the flush happens\n      // (which is where the previousPlayers are passed into the new palyer)\n      if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n        player.destroy();\n      }\n    });\n\n    
 let /** @type {?} */ transition = trigger.matchTransition(fromState.value, toState.value);\n    let /** @type {?} */ isFallbackTransition = false;\n    if (!transition) {\n      if (!defaultToFallback) return;\n      transition = trigger.fallbackTransition;\n      isFallbackTransition = true;\n    }\n\n    this._engine.totalQueuedPlayers++;\n    this._queue.push(\n        {element, triggerName, transition, fromState, toState, player, isFallbackTransition});\n\n    if (!isFallbackTransition) {\n      addClass(element, QUEUED_CLASSNAME);\n      player.onStart(() => { removeClass(element, QUEUED_CLASSNAME); });\n    }\n\n    player.onDone(() => {\n      let /** @type {?} */ index = this.players.indexOf(player);\n      if (index >= 0) {\n        this.players.splice(index, 1);\n      }\n\n      const /** @type {?} */ players = this._engine.playersByElement.get(element);\n      if (players) {\n        let /** @type {?} */ index = players.indexOf(player);\n        if (index >= 0) {\n      
     players.splice(index, 1);\n        }\n      }\n    });\n\n    this.players.push(player);\n    playersOnElement.push(player);\n\n    return player;\n  }\n/**\n * @param {?} name\n * @return {?}\n */\nderegister(name: string) {\n    delete this._triggers[name];\n\n    this._engine.statesByElement.forEach((stateMap, element) => { delete stateMap[name]; });\n\n    this._elementListeners.forEach((listeners, element) => {\n      this._elementListeners.set(\n          element, listeners.filter(entry => { return entry.name != name; }));\n    });\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nclearElementCache(element: any) {\n    this._engine.statesByElement.delete(element);\n    this._elementListeners.delete(element);\n    const /** @type {?} */ elementPlayers = this._engine.playersByElement.get(element);\n    if (elementPlayers) {\n      elementPlayers.forEach(player => player.destroy());\n      this._engine.playersByElement.delete(element);\n    }\n  }\n/**\n * @param {?} roo
 tElement\n * @param {?} context\n * @param {?=} animate\n * @return {?}\n */\nprivate _destroyInnerNodes(rootElement: any, context: any, animate: boolean = false) {\n    this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true).forEach(elm => {\n      if (animate && containsClass(elm, this._hostClassName)) {\n        const /** @type {?} */ innerNs = this._engine.namespacesByHostElement.get(elm);\n\n        // special case for a host element with animations on the same element\n        if (innerNs) {\n          innerNs.removeNode(elm, context, true);\n        }\n\n        this.removeNode(elm, context, true);\n      } else {\n        this.clearElementCache(elm);\n      }\n    });\n  }\n/**\n * @param {?} element\n * @param {?} context\n * @param {?=} doNotRecurse\n * @return {?}\n */\nremoveNode(element: any, context: any, doNotRecurse?: boolean): void {\n    const /** @type {?} */ engine = this._engine;\n\n    if (!doNotRecurse && element.childElementCount) {\n      this._des
 troyInnerNodes(element, context, true);\n    }\n\n    const /** @type {?} */ triggerStates = engine.statesByElement.get(element);\n    if (triggerStates) {\n      const /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n      Object.keys(triggerStates).forEach(triggerName => {\n        // this check is here in the event that an element is removed\n        // twice (both on the host level and the component level)\n        if (this._triggers[triggerName]) {\n          const /** @type {?} */ player = this.trigger(element, triggerName, VOID_VALUE, false);\n          if (player) {\n            players.push(player);\n          }\n        }\n      });\n\n      if (players.length) {\n        engine.markElementAsRemoved(this.id, element, true, context);\n        optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n        return;\n      }\n    }\n\n    // find the player that is animating and make sure that the\n    // removal is delayed until that player h
 as completed\n    let /** @type {?} */ containsPotentialParentTransition = false;\n    if (engine.totalAnimations) {\n      const /** @type {?} */ currentPlayers =\n          engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n\n      // when this `if statement` does not continue forward it means that\n      // a previous animation query has selected the current element and\n      // is animating it. In this situation want to continue fowards and\n      // allow the element to be queued up for animation later.\n      if (currentPlayers && currentPlayers.length) {\n        containsPotentialParentTransition = true;\n      } else {\n        let /** @type {?} */ parent = element;\n        while (parent = parent.parentNode) {\n          const /** @type {?} */ triggers = engine.statesByElement.get(parent);\n          if (triggers) {\n            containsPotentialParentTransition = true;\n            break;\n          }\n        }\n      }\n    }\n\n    // at this st
 age we know that the element will either get removed\n    // during flush or will be picked up by a parent query. Either way\n    // we need to fire the listeners for this element when it DOES get\n    // removed (once the query parent animation is done or after flush)\n    const /** @type {?} */ listeners = this._elementListeners.get(element);\n    if (listeners) {\n      const /** @type {?} */ visitedTriggers = new Set<string>();\n      listeners.forEach(listener => {\n        const /** @type {?} */ triggerName = listener.name;\n        if (visitedTriggers.has(triggerName)) return;\n        visitedTriggers.add(triggerName);\n\n        const /** @type {?} */ trigger = this._triggers[triggerName];\n        const /** @type {?} */ transition = trigger.fallbackTransition;\n        const /** @type {?} */ elementStates = /** @type {?} */(( engine.statesByElement.get(element)));\n        const /** @type {?} */ fromState = elementStates[triggerName] || DEFAULT_STATE_VALUE;\n        const /
 ** @type {?} */ toState = new StateValue(VOID_VALUE);\n        const /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element);\n\n        this._engine.totalQueuedPlayers++;\n        this._queue.push({\n          element,\n          triggerName,\n          transition,\n          fromState,\n          toState,\n          player,\n          isFallbackTransition: true\n        });\n      });\n    }\n\n    // whether or not a parent has an animation we need to delay the deferral of the leave\n    // operation until we have more information (which we do after flush() has been called)\n    if (containsPotentialParentTransition) {\n      engine.markElementAsRemoved(this.id, element, false, context);\n    } else {\n      // we do this after the flush has occurred such\n      // that the callbacks can be fired\n      engine.afterFlush(() => this.clearElementCache(element));\n      engine.destroyInnerAnimations(element);\n      engine._onRemovalComplete(element, c
 ontext);\n    }\n  }\n/**\n * @param {?} element\n * @param {?} parent\n * @return {?}\n */\ninsertNode(element: any, parent: any): void { addClass(element, this._hostClassName); }\n/**\n * @param {?} microtaskId\n * @return {?}\n */\ndrainQueuedTransitions(microtaskId: number): QueueInstruction[] {\n    const /** @type {?} */ instructions: QueueInstruction[] = [];\n    this._queue.forEach(entry => {\n      const /** @type {?} */ player = entry.player;\n      if (player.destroyed) return;\n\n      const /** @type {?} */ element = entry.element;\n      const /** @type {?} */ listeners = this._elementListeners.get(element);\n      if (listeners) {\n        listeners.forEach((listener: TriggerListener) => {\n          if (listener.name == entry.triggerName) {\n            const /** @type {?} */ baseEvent = makeAnimationEvent(\n                element, entry.triggerName, entry.fromState.value, entry.toState.value);\n            ( /** @type {?} */((baseEvent as any)))['_data'] = microtas
 kId;\n            listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n          }\n        });\n      }\n\n      if (player.markedForDestroy) {\n        this._engine.afterFlush(() => {\n          // now we can destroy the element properly since the event listeners have\n          // been bound to the player\n          player.destroy();\n        });\n      } else {\n        instructions.push(entry);\n      }\n    });\n\n    this._queue = [];\n\n    return instructions.sort((a, b) => {\n      // if depCount == 0 them move to front\n      // otherwise if a contains b then move back\n      const /** @type {?} */ d0 = a.transition.ast.depCount;\n      const /** @type {?} */ d1 = b.transition.ast.depCount;\n      if (d0 == 0 || d1 == 0) {\n        return d0 - d1;\n      }\n      return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n    });\n  }\n/**\n * @param {?} context\n * @return {?}\n */\ndestroy(context: any) {\n    this.players.forEach
 (p => p.destroy());\n    this._destroyInnerNodes(this.hostElement, context);\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nelementContainsData(element: any): boolean {\n    let /** @type {?} */ containsData = false;\n    if (this._elementListeners.has(element)) containsData = true;\n    containsData =\n        (this._queue.find(entry => entry.element === element) ? true : false) || containsData;\n    return containsData;\n  }\n}\n\nfunction AnimationTransitionNamespace_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationTransitionNamespace.prototype.players;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._triggers;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._queue;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._elementListeners;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._hostClassName;\n/** @type {?} */\nAnimationTransitionNamespace.prototype.id;\n/** @type {?} */\nAnimationTransitionNamespace.prototype.hostElem
 ent;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._engine;\n}\n\n\nexport interface QueuedTransition {\n  element: any;\n  instruction: AnimationTransitionInstruction;\n  player: TransitionAnimationPlayer;\n}\nexport class TransitionAnimationEngine {\npublic players: TransitionAnimationPlayer[] = [];\npublic newHostElements = new Map<any, AnimationTransitionNamespace>();\npublic playersByElement = new Map<any, TransitionAnimationPlayer[]>();\npublic playersByQueriedElement = new Map<any, TransitionAnimationPlayer[]>();\npublic statesByElement = new Map<any, {[triggerName: string]: StateValue}>();\npublic disabledNodes = new Set<any>();\npublic totalAnimations = 0;\npublic totalQueuedPlayers = 0;\nprivate _namespaceLookup: {[id: string]: AnimationTransitionNamespace} = {};\nprivate _namespaceList: AnimationTransitionNamespace[] = [];\nprivate _flushFns: (() => any)[] = [];\nprivate _whenQuietFns: (() => any)[] = [];\npublic namespacesByHostElement = new Map<any, Animatio
 nTransitionNamespace>();\npublic collectedEnterElements: any[] = [];\npublic collectedLeaveElements: any[] = [];\npublic onRemovalComplete = (element: any, context: any) => {};\n/**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n_onRemovalComplete(element: any, context: any) { this.onRemovalComplete(element, context); }\n/**\n * @param {?} driver\n * @param {?} _normalizer\n */\nconstructor(public driver: AnimationDriver,\nprivate _normalizer: AnimationStyleNormalizer) {}\n/**\n * @return {?}\n */\nget queuedPlayers(): TransitionAnimationPlayer[] {\n    const /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n    this._namespaceList.forEach(ns => {\n      ns.players.forEach(player => {\n        if (player.queued) {\n          players.push(player);\n        }\n      });\n    });\n    return players;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\ncreateNamespace(namespaceId: string, hostElement: any) {\n    const /*
 * @type {?} */ ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n    if (hostElement.parentNode) {\n      this._balanceNamespaceList(ns, hostElement);\n    } else {\n      // defer this later until flush during when the host element has\n      // been inserted so that we know exactly where to place it in\n      // the namespace list\n      this.newHostElements.set(hostElement, ns);\n\n      // given that this host element is apart of the animation code, it\n      // may or may not be inserted by a parent node that is an of an\n      // animation renderer type. If this happens then we can still have\n      // access to this item when we query for :enter nodes. If the parent\n      // is a renderer then the set data-structure will normalize the entry\n      this.collectEnterElement(hostElement);\n    }\n    return this._namespaceLookup[namespaceId] = ns;\n  }\n/**\n * @param {?} ns\n * @param {?} hostElement\n * @return {?}\n */\nprivate _balanceNamespaceList(ns:
  AnimationTransitionNamespace, hostElement: any) {\n    const /** @type {?} */ limit = this._namespaceList.length - 1;\n    if (limit >= 0) {\n      let /** @type {?} */ found = false;\n      for (let /** @type {?} */ i = limit; i >= 0; i--) {\n        const /** @type {?} */ nextNamespace = this._namespaceList[i];\n        if (this.driver.containsElement(nextNamespace.hostElement, hostElement)) {\n          this._namespaceList.splice(i + 1, 0, ns);\n          found = true;\n          break;\n        }\n      }\n      if (!found) {\n        this._namespaceList.splice(0, 0, ns);\n      }\n    } else {\n      this._namespaceList.push(ns);\n    }\n\n    this.namespacesByHostElement.set(hostElement, ns);\n    return ns;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\nregister(namespaceId: string, hostElement: any) {\n    let /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n    if (!ns) {\n      ns = this.createNamespace(namespaceId, hostEle
 ment);\n    }\n    return ns;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} name\n * @param {?} trigger\n * @return {?}\n */\nregisterTrigger(namespaceId: string, name: string, trigger: AnimationTrigger) {\n    let /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n    if (ns && ns.register(name, trigger)) {\n      this.totalAnimations++;\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\ndestroy(namespaceId: string, context: any) {\n    if (!namespaceId) return;\n\n    const /** @type {?} */ ns = this._fetchNamespace(namespaceId);\n\n    this.afterFlush(() => {\n      this.namespacesByHostElement.delete(ns.hostElement);\n      delete this._namespaceLookup[namespaceId];\n      const /** @type {?} */ index = this._namespaceList.indexOf(ns);\n      if (index >= 0) {\n        this._namespaceList.splice(index, 1);\n      }\n    });\n\n    this.afterFlushAnimationsDone(() => ns.destroy(context));\n  }\n/**\n * @param {?} id\n * @return 
 {?}\n */\nprivate _fetchNamespace(id: string) { return this._namespaceLookup[id]; }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\ntrigger(namespaceId: string, element: any, name: string, value: any): boolean {\n    if (isElementNode(element)) {\n      this._fetchNamespace(namespaceId).trigger(element, name, value);\n      return true;\n    }\n    return false;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\ninsertNode(namespaceId: string, element: any, parent: any, insertBefore: boolean): void {\n    if (!isElementNode(element)) return;\n\n    // special case for when an element is removed and reinserted (move operation)\n    // when this occurs we do not want to use the element for deletion later\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n    if (details && details
 .setForRemoval) {\n      details.setForRemoval = false;\n    }\n\n    // in the event that the namespaceId is blank then the caller\n    // code does not contain any animation code in it, but it is\n    // just being called so that the node is marked as being inserted\n    if (namespaceId) {\n      this._fetchNamespace(namespaceId).insertNode(element, parent);\n    }\n\n    // only *directives and host elements are inserted before\n    if (insertBefore) {\n      this.collectEnterElement(element);\n    }\n  }\n/**\n * @param {?} element\n * @return {?}\n */\ncollectEnterElement(element: any) { this.collectedEnterElements.push(element); }\n/**\n * @param {?} element\n * @param {?} value\n * @return {?}\n */\nmarkElementAsDisabled(element: any, value: boolean) {\n    if (value) {\n      if (!this.disabledNodes.has(element)) {\n        this.disabledNodes.add(element);\n        addClass(element, DISABLED_CLASSNAME);\n      }\n    } else if (this.disabledNodes.has(element)) {\n      this.
 disabledNodes.delete(element);\n      removeClass(element, DISABLED_CLASSNAME);\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @param {?=} doNotRecurse\n * @return {?}\n */\nremoveNode(namespaceId: string, element: any, context: any, doNotRecurse?: boolean): void {\n    if (!isElementNode(element)) {\n      this._onRemovalComplete(element, context);\n      return;\n    }\n\n    const /** @type {?} */ ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n    if (ns) {\n      ns.removeNode(element, context, doNotRecurse);\n    } else {\n      this.markElementAsRemoved(namespaceId, element, false, context);\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?=} hasAnimation\n * @param {?=} context\n * @return {?}\n */\nmarkElementAsRemoved(namespaceId: string, element: any, hasAnimation?: boolean, context?: any) {\n    this.collectedLeaveElements.push(element);\n    element[REMOVAL_FLAG] = {\n      names
 paceId,\n      setForRemoval: context, hasAnimation,\n      removedBeforeQueried: false\n    };\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\nlisten(\n      namespaceId: string, element: any, name: string, phase: string,\n      callback: (event: any) => boolean): () => any {\n    if (isElementNode(element)) {\n      return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n    }\n    return () => {};\n  }\n/**\n * @param {?} entry\n * @param {?} subTimelines\n * @return {?}\n */\nprivate _buildInstruction(entry: QueueInstruction, subTimelines: ElementInstructionMap) {\n    return entry.transition.build(\n        this.driver, entry.element, entry.fromState.value, entry.toState.value,\n        entry.fromState.options, entry.toState.options, subTimelines);\n  }\n/**\n * @param {?} containerElement\n * @return {?}\n */\ndestroyInnerAnimations(containerElement: any
 ) {\n    let /** @type {?} */ elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n    elements.forEach(element => {\n      const /** @type {?} */ players = this.playersByElement.get(element);\n      if (players) {\n        players.forEach(player => {\n          // special case for when an element is set for destruction, but hasn't started.\n          // in this situation we want to delay the destruction until the flush occurs\n          // so that any event listeners attached to the player are triggered.\n          if (player.queued) {\n            player.markedForDestroy = true;\n          } else {\n            player.destroy();\n          }\n        });\n      }\n      const /** @type {?} */ stateMap = this.statesByElement.get(element);\n      if (stateMap) {\n        Object.keys(stateMap).forEach(triggerName => stateMap[triggerName] = DELETED_STATE_VALUE);\n      }\n    });\n\n    if (this.playersByQueriedElement.size == 0) return;\n\n    elements = this.d
 river.query(containerElement, NG_ANIMATING_SELECTOR, true);\n    if (elements.length) {\n      elements.forEach(element => {\n        const /** @type {?} */ players = this.playersByQueriedElement.get(element);\n        if (players) {\n          players.forEach(player => player.finish());\n        }\n      });\n    }\n  }\n/**\n * @return {?}\n */\nwhenRenderingDone(): Promise<any> {\n    return new Promise(resolve => {\n      if (this.players.length) {\n        return optimizeGroupPlayer(this.players).onDone(() => resolve());\n      } else {\n        resolve();\n      }\n    });\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nprocessLeaveNode(element: any) {\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n    if (details && details.setForRemoval) {\n      // this will prevent it from removing it twice\n      element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n      if (details.namespaceId) {\n        this.destroyInnerAnimat
 ions(element);\n        const /** @type {?} */ ns = this._fetchNamespace(details.namespaceId);\n        if (ns) {\n          ns.clearElementCache(element);\n        }\n      }\n      this._onRemovalComplete(element, details.setForRemoval);\n    }\n\n    if (this.driver.matchesElement(element, DISABLED_SELECTOR)) {\n      this.markElementAsDisabled(element, false);\n    }\n\n    this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n      this.markElementAsDisabled(element, false);\n    });\n  }\n/**\n * @param {?=} microtaskId\n * @return {?}\n */\nflush(microtaskId: number = -1) {\n    let /** @type {?} */ players: AnimationPlayer[] = [];\n    if (this.newHostElements.size) {\n      this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n      this.newHostElements.clear();\n    }\n\n    if (this._namespaceList.length &&\n        (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n      const /** @type {?} */ cleanupFn
 s: Function[] = [];\n      try {\n        players = this._flushAnimations(cleanupFns, microtaskId);\n      } finally {\n        for (let /** @type {?} */ i = 0; i < cleanupFns.length; i++) {\n          cleanupFns[i]();\n        }\n      }\n    } else {\n      for (let /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n        const /** @type {?} */ element = this.collectedLeaveElements[i];\n        this.processLeaveNode(element);\n      }\n    }\n\n    this.totalQueuedPlayers = 0;\n    this.collectedEnterElements.length = 0;\n    this.collectedLeaveElements.length = 0;\n    this._flushFns.forEach(fn => fn());\n    this._flushFns = [];\n\n    if (this._whenQuietFns.length) {\n      // we move these over to a variable so that\n      // if any new callbacks are registered in another\n      // flush they do not populate the existing set\n      const /** @type {?} */ quietFns = this._whenQuietFns;\n      this._whenQuietFns = [];\n\n      if (players.length) {\n      
   optimizeGroupPlayer(players).onDone(() => { quietFns.forEach(fn => fn()); });\n      } else {\n        quietFns.forEach(fn => fn());\n      }\n    }\n  }\n/**\n * @param {?} errors\n * @return {?}\n */\nreportError(errors: string[]) {\n    throw new Error(\n        `Unable to process animations due to the following failed trigger transitions\\n ${\n            errors.join('\\n')}`);\n  }\n/**\n * @param {?} cleanupFns\n * @param {?} microtaskId\n * @return {?}\n */\nprivate _flushAnimations(cleanupFns: Function[], microtaskId: number):\n      TransitionAnimationPlayer[] {\n    const /** @type {?} */ subTimelines = new ElementInstructionMap();\n    const /** @type {?} */ skippedPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ skippedPlayersMap = new Map<any, AnimationPlayer[]>();\n    const /** @type {?} */ queuedInstructions: QueuedTransition[] = [];\n    const /** @type {?} */ queriedElements = new Map<any, TransitionAnimationPlayer[]>();\n    const /** @typ
 e {?} */ allPreStyleElements = new Map<any, Set<string>>();\n    const /** @type {?} */ allPostStyleElements = new Map<any, Set<string>>();\n\n    const /** @type {?} */ disabledElementsSet = new Set<any>();\n    this.disabledNodes.forEach(node => {\n      disabledElementsSet.add(node);\n      const /** @type {?} */ nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n      for (let /** @type {?} */ i = 0; i < nodesThatAreDisabled.length; i++) {\n        disabledElementsSet.add(nodesThatAreDisabled[i]);\n      }\n    });\n\n    const /** @type {?} */ bodyNode = getBodyNode();\n    const /** @type {?} */ allEnterNodes: any[] = this.collectedEnterElements.length ?\n        this.collectedEnterElements.filter(createIsRootFilterFn(this.collectedEnterElements)) :\n        [];\n\n    // this must occur before the instructions are built below such that\n    // the :enter queries match the elements (since the timeline queries\n    // are fired during instruction building).
 \n    for (let /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n      addClass(allEnterNodes[i], ENTER_CLASSNAME);\n    }\n\n    const /** @type {?} */ allLeaveNodes: any[] = [];\n    const /** @type {?} */ leaveNodesWithoutAnimations = new Set<any>();\n    for (let /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n      const /** @type {?} */ element = this.collectedLeaveElements[i];\n      const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n      if (details && details.setForRemoval) {\n        addClass(element, LEAVE_CLASSNAME);\n        allLeaveNodes.push(element);\n        if (!details.hasAnimation) {\n          leaveNodesWithoutAnimations.add(element);\n        }\n      }\n    }\n\n    cleanupFns.push(() => {\n      allEnterNodes.forEach(element => removeClass(element, ENTER_CLASSNAME));\n      allLeaveNodes.forEach(element => {\n        removeClass(element, LEAVE_CLASSNAME);\n        this.proces
 sLeaveNode(element);\n      });\n    });\n\n    const /** @type {?} */ allPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ erroneousTransitions: AnimationTransitionInstruction[] = [];\n    for (let /** @type {?} */ i = this._namespaceList.length - 1; i >= 0; i--) {\n      const /** @type {?} */ ns = this._namespaceList[i];\n      ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n        const /** @type {?} */ player = entry.player;\n        allPlayers.push(player);\n\n        const /** @type {?} */ element = entry.element;\n        if (!bodyNode || !this.driver.containsElement(bodyNode, element)) {\n          player.destroy();\n          return;\n        }\n\n        const /** @type {?} */ instruction = /** @type {?} */(( this._buildInstruction(entry, subTimelines)));\n        if (instruction.errors && instruction.errors.length) {\n          erroneousTransitions.push(instruction);\n          return;\n        }\n\n        // if a unmatched transition is
  queued to go then it SHOULD NOT render\n        // an animation and cancel the previously running animations.\n        if (entry.isFallbackTransition) {\n          player.onStart(() => eraseStyles(element, instruction.fromStyles));\n          player.onDestroy(() => setStyles(element, instruction.toStyles));\n          skippedPlayers.push(player);\n          return;\n        }\n\n        // this means that if a parent animation uses this animation as a sub trigger\n        // then it will instruct the timeline builder to not add a player delay, but\n        // instead stretch the first keyframe gap up until the animation starts. The\n        // reason this is important is to prevent extra initialization styles from being\n        // required by the user in the animation.\n        instruction.timelines.forEach(tl => tl.stretchStartingKeyframe = true);\n\n        subTimelines.append(element, instruction.timelines);\n\n        const /** @type {?} */ tuple = {instruction, player, elemen
 t};\n\n        queuedInstructions.push(tuple);\n\n        instruction.queriedElements.forEach(\n            element => getOrSetAsInMap(queriedElements, element, []).push(player));\n\n        instruction.preStyleProps.forEach((stringMap, element) => {\n          const /** @type {?} */ props = Object.keys(stringMap);\n          if (props.length) {\n            let /** @type {?} */ setVal: Set<string> = /** @type {?} */(( allPreStyleElements.get(element)));\n            if (!setVal) {\n              allPreStyleElements.set(element, setVal = new Set<string>());\n            }\n            props.forEach(prop => setVal.add(prop));\n          }\n        });\n\n        instruction.postStyleProps.forEach((stringMap, element) => {\n          const /** @type {?} */ props = Object.keys(stringMap);\n          let /** @type {?} */ setVal: Set<string> = /** @type {?} */(( allPostStyleElements.get(element)));\n          if (!setVal) {\n            allPostStyleElements.set(element, setVal = new Set<
 string>());\n          }\n          props.forEach(prop => setVal.add(prop));\n        });\n      });\n    }\n\n    if (erroneousTransitions.length) {\n      const /** @type {?} */ errors: string[] = [];\n      erroneousTransitions.forEach(instruction => {\n        errors.push(`@${instruction.triggerName} has failed due to:\\n`); /** @type {?} */((\n        instruction.errors)).forEach(error => errors.push(`- ${error}\\n`));\n      });\n\n      allPlayers.forEach(player => player.destroy());\n      this.reportError(errors);\n    }\n\n    // these can only be detected here since we have a map of all the elements\n    // that have animations attached to them... We use a set here in the event\n    // multiple enter captures on the same element were caught in different\n    // renderer namespaces (e.g. when a @trigger was on a host binding that had *ngIf)\n    const /** @type {?} */ enterNodesWithoutAnimations = new Set<any>();\n    for (let /** @type {?} */ i = 0; i < allEnterNodes.leng
 th; i++) {\n      const /** @type {?} */ element = allEnterNodes[i];\n      if (!subTimelines.has(element)) {\n        enterNodesWithoutAnimations.add(element);\n      }\n    }\n\n    const /** @type {?} */ allPreviousPlayersMap = new Map<any, TransitionAnimationPlayer[]>();\n    let /** @type {?} */ sortedParentElements: any[] = [];\n    queuedInstructions.forEach(entry => {\n      const /** @type {?} */ element = entry.element;\n      if (subTimelines.has(element)) {\n        sortedParentElements.unshift(element);\n        this._beforeAnimationBuild(\n            entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n      }\n    });\n\n    skippedPlayers.forEach(player => {\n      const /** @type {?} */ element = player.element;\n      const /** @type {?} */ previousPlayers =\n          this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n      previousPlayers.forEach(prevPlayer => {\n        getOrSetAsInMap(allPreviousPlayersMap
 , element, []).push(prevPlayer);\n        prevPlayer.destroy();\n      });\n    });\n\n    // this is a special case for nodes that will be removed (either by)\n    // having their own leave animations or by being queried in a container\n    // that will be removed once a parent animation is complete. The idea\n    // here is that * styles must be identical to ! styles because of\n    // backwards compatibility (* is also filled in by default in many places).\n    // Otherwise * styles will return an empty value or auto since the element\n    // that is being getComputedStyle'd will not be visible (since * = destination)\n    const /** @type {?} */ replaceNodes = allLeaveNodes.filter(node => {\n      return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n    });\n\n    // POST STAGE: fill the * styles\n    const [postStylesMap, allLeaveQueriedNodes] = cloakAndComputeStyles(\n        this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE)
 ;\n\n    allLeaveQueriedNodes.forEach(node => {\n      if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n        replaceNodes.push(node);\n      }\n    });\n\n    // PRE STAGE: fill the ! styles\n    const [preStylesMap] = allPreStyleElements.size ?\n        cloakAndComputeStyles(\n            this.driver, enterNodesWithoutAnimations, allPreStyleElements, PRE_STYLE) :\n        [new Map<any, ɵStyleData>()];\n\n    replaceNodes.forEach(node => {\n      const /** @type {?} */ post = postStylesMap.get(node);\n      const /** @type {?} */ pre = preStylesMap.get(node);\n      postStylesMap.set(node, /** @type {?} */(( { ...post, ...pre } as any)));\n    });\n\n    const /** @type {?} */ rootPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ subPlayers: TransitionAnimationPlayer[] = [];\n    queuedInstructions.forEach(entry => {\n      const {element, player, instruction} = entry;\n      // this means that it was never consumed by a parent
  animation which\n      // means that it is independent and therefore should be set for animation\n      if (subTimelines.has(element)) {\n        if (disabledElementsSet.has(element)) {\n          skippedPlayers.push(player);\n          return;\n        }\n\n        const /** @type {?} */ innerPlayer = this._buildAnimation(\n            player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap,\n            postStylesMap);\n        player.setRealPlayer(innerPlayer);\n\n        let /** @type {?} */ parentHasPriority: any = null;\n        for (let /** @type {?} */ i = 0; i < sortedParentElements.length; i++) {\n          const /** @type {?} */ parent = sortedParentElements[i];\n          if (parent === element) break;\n          if (this.driver.containsElement(parent, element)) {\n            parentHasPriority = parent;\n            break;\n          }\n        }\n\n        if (parentHasPriority) {\n          const /** @type {?} */ parentPlayers = this.p
 layersByElement.get(parentHasPriority);\n          if (parentPlayers && parentPlayers.length) {\n            player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n          }\n          skippedPlayers.push(player);\n        } else {\n          rootPlayers.push(player);\n        }\n      } else {\n        eraseStyles(element, instruction.fromStyles);\n        player.onDestroy(() => setStyles(element, instruction.toStyles));\n        // there still might be a ancestor player animating this\n        // element therefore we will still add it as a sub player\n        // even if its animation may be disabled\n        subPlayers.push(player);\n        if (disabledElementsSet.has(element)) {\n          skippedPlayers.push(player);\n        }\n      }\n    });\n\n    // find all of the sub players' corresponding inner animation player\n    subPlayers.forEach(player => {\n      // even if any players are not found for a sub animation then it\n      // will still complete itself after the
  next tick since it's Noop\n      const /** @type {?} */ playersForElement = skippedPlayersMap.get(player.element);\n      if (playersForElement && playersForElement.length) {\n        const /** @type {?} */ innerPlayer = optimizeGroupPlayer(playersForElement);\n        player.setRealPlayer(innerPlayer);\n      }\n    });\n\n    // the reason why we don't actually play the animation is\n    // because all that a skipped player is designed to do is to\n    // fire the start/done transition callback events\n    skippedPlayers.forEach(player => {\n      if (player.parentPlayer) {\n        player.parentPlayer.onDestroy(() => player.destroy());\n      } else {\n        player.destroy();\n      }\n    });\n\n    // run through all of the queued removals and see if they\n    // were picked up by a query. If not then perform the removal\n    // operation right away unless a parent animation is ongoing.\n    for (let /** @type {?} */ i = 0; i < allLeaveNodes.length; i++) {\n      const /** @
 type {?} */ element = allLeaveNodes[i];\n      const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n      removeClass(element, LEAVE_CLASSNAME);\n\n      // this means the element has a removal animation that is being\n      // taken care of and therefore the inner elements will hang around\n      // until that animation is over (or the parent queried animation)\n      if (details && details.hasAnimation) continue;\n\n      let /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n\n      // if this element is queried or if it contains queried children\n      // then we want for the element not to be removed from the page\n      // until the queried animations have finished\n      if (queriedElements.size) {\n        let /** @type {?} */ queriedPlayerResults = queriedElements.get(element);\n        if (queriedPlayerResults && queriedPlayerResults.length) {\n          players.push(...queriedPlayerResults);\n        }\n\n       
  let /** @type {?} */ queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n        for (let /** @type {?} */ j = 0; j < queriedInnerElements.length; j++) {\n          let /** @type {?} */ queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n          if (queriedPlayers && queriedPlayers.length) {\n            players.push(...queriedPlayers);\n          }\n        }\n      }\n\n      const /** @type {?} */ activePlayers = players.filter(p => !p.destroyed);\n      if (activePlayers.length) {\n        removeNodesAfterAnimationDone(this, element, activePlayers);\n      } else {\n        this.processLeaveNode(element);\n      }\n    }\n\n    // this is required so the cleanup method doesn't remove them\n    allLeaveNodes.length = 0;\n\n    rootPlayers.forEach(player => {\n      this.players.push(player);\n      player.onDone(() => {\n        player.destroy();\n\n        const /** @type {?} */ index = this.players.indexOf(player);\n        this.playe
 rs.splice(index, 1);\n      });\n      player.play();\n    });\n\n    return rootPlayers;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @return {?}\n */\nelementContainsData(namespaceId: string, element: any) {\n    let /** @type {?} */ containsData = false;\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n    if (details && details.setForRemoval) containsData = true;\n    if (this.playersByElement.has(element)) containsData = true;\n    if (this.playersByQueriedElement.has(element)) containsData = true;\n    if (this.statesByElement.has(element)) containsData = true;\n    return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n  }\n/**\n * @param {?} callback\n * @return {?}\n */\nafterFlush(callback: () => any) { this._flushFns.push(callback); }\n/**\n * @param {?} callback\n * @return {?}\n */\nafterFlushAnimationsDone(callback: () => any) { this._whenQuietFns.push(callbac
 k); }\n/**\n * @param {?} element\n * @param {?} isQueriedElement\n * @param {?=} namespaceId\n * @param {?=} triggerName\n * @param {?=} toStateValue\n * @return {?}\n */\nprivate _getPreviousPlayers(\n      element: string, isQueriedElement: boolean, namespaceId?: string, triggerName?: string,\n      toStateValue?: any): TransitionAnimationPlayer[] {\n    let /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n    if (isQueriedElement) {\n      const /** @type {?} */ queriedElementPlayers = this.playersByQueriedElement.get(element);\n      if (queriedElementPlayers) {\n        players = queriedElementPlayers;\n      }\n    } else {\n      const /** @type {?} */ elementPlayers = this.playersByElement.get(element);\n      if (elementPlayers) {\n        const /** @type {?} */ isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n        elementPlayers.forEach(player => {\n          if (player.queued) return;\n          if (!isRemovalAnimation && player.triggerNa
 me != triggerName) return;\n          players.push(player);\n        });\n      }\n    }\n    if (namespaceId || triggerName) {\n      players = players.filter(player => {\n        if (namespaceId && namespaceId != player.namespaceId) return false;\n        if (triggerName && triggerName != player.triggerName) return false;\n        return true;\n      });\n    }\n    return players;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @return {?}\n */\nprivate _beforeAnimationBuild(\n      namespaceId: string, instruction: AnimationTransitionInstruction,\n      allPreviousPlayersMap: Map<any, TransitionAnimationPlayer[]>) {\n    const /** @type {?} */ triggerName = instruction.triggerName;\n    const /** @type {?} */ rootElement = instruction.element;\n\n    // when a removal animation occurs, ALL previous players are collected\n    // and destroyed (even if they are outside of the current namespace)\n    const /** @type {?} */ ta
 rgetNameSpaceId: string|undefined =\n        instruction.isRemovalTransition ? undefined : namespaceId;\n    const /** @type {?} */ targetTriggerName: string|undefined =\n        instruction.isRemovalTransition ? undefined : triggerName;\n\n    instruction.timelines.map(timelineInstruction => {\n      const /** @type {?} */ element = timelineInstruction.element;\n      const /** @type {?} */ isQueriedElement = element !== rootElement;\n      const /** @type {?} */ players = getOrSetAsInMap(allPreviousPlayersMap, element, []);\n      const /** @type {?} */ previousPlayers = this._getPreviousPlayers(\n          element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n      previousPlayers.forEach(player => {\n        const /** @type {?} */ realPlayer = /** @type {?} */(( player.getRealPlayer() as any));\n        if (realPlayer.beforeDestroy) {\n          realPlayer.beforeDestroy();\n        }\n        player.destroy();\n        players.push(player);\n   
    });\n    });\n\n    // this needs to be done so that the PRE/POST styles can be\n    // computed properly without interfering with the previous animation\n    eraseStyles(rootElement, instruction.fromStyles);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @param {?} skippedPlayersMap\n * @param {?} preStylesMap\n * @param {?} postStylesMap\n * @return {?}\n */\nprivate _buildAnimation(\n      namespaceId: string, instruction: AnimationTransitionInstruction,\n      allPreviousPlayersMap: Map<any, TransitionAnimationPlayer[]>,\n      skippedPlayersMap: Map<any, AnimationPlayer[]>, preStylesMap: Map<any, ɵStyleData>,\n      postStylesMap: Map<any, ɵStyleData>): AnimationPlayer {\n    const /** @type {?} */ triggerName = instruction.triggerName;\n    const /** @type {?} */ rootElement = instruction.element;\n\n    // we first run this so that the previous animation player\n    // data can be passed into the successive animat
 ion players\n    const /** @type {?} */ allQueriedPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ allConsumedElements = new Set<any>();\n    const /** @type {?} */ allSubElements = new Set<any>();\n    const /** @type {?} */ allNewPlayers = instruction.timelines.map(timelineInstruction => {\n      const /** @type {?} */ element = timelineInstruction.element;\n      allConsumedElements.add(element);\n\n      // FIXME (matsko): make sure to-be-removed animations are removed properly\n      const /** @type {?} */ details = element[REMOVAL_FLAG];\n      if (details && details.removedBeforeQueried) return new NoopAnimationPlayer();\n\n      const /** @type {?} */ isQueriedElement = element !== rootElement;\n      const /** @type {?} */ previousPlayers =\n          flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n                                  .map(p => p.getRealPlayer()))\n              .filter(p => {\n                // the `eleme
 nt` is not apart of the AnimationPlayer definition, but\n                // Mock/WebAnimations\n                // use the element within their implementation. This will be added in Angular5 to\n                // AnimationPlayer\n                const /** @type {?} */ pp = /** @type {?} */(( p as any));\n                return pp.element ? pp.element === element : false;\n              });\n\n      const /** @type {?} */ preStyles = preStylesMap.get(element);\n      const /** @type {?} */ postStyles = postStylesMap.get(element);\n      const /** @type {?} */ keyframes = normalizeKeyframes(\n          this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles,\n          postStyles);\n      const /** @type {?} */ player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n\n      // this means that this particular player belongs to a sub trigger. It is\n      // important that we match this player up with the corresponding (@trigger.listener)\
 n      if (timelineInstruction.subTimeline && skippedPlayersMap) {\n        allSubElements.add(element);\n      }\n\n      if (isQueriedElement) {\n        const /** @type {?} */ wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n        wrappedPlayer.setRealPlayer(player);\n        allQueriedPlayers.push(wrappedPlayer);\n      }\n\n      return player;\n    });\n\n    allQueriedPlayers.forEach(player => {\n      getOrSetAsInMap(this.playersByQueriedElement, player.element, []).push(player);\n      player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n    });\n\n    allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n    const /** @type {?} */ player = optimizeGroupPlayer(allNewPlayers);\n    player.onDestroy(() => {\n      allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n      setStyles(rootElement, instruction.toStyles);\n    });\n\n    //
  this basically makes all of the callbacks for sub element animations\n    // be dependent on the upper players for when they finish\n    allSubElements.forEach(\n        element => { getOrSetAsInMap(skippedPlayersMap, element, []).push(player); });\n\n    return player;\n  }\n/**\n * @param {?} instruction\n * @param {?} keyframes\n * @param {?} previousPlayers\n * @return {?}\n */\nprivate _buildPlayer(\n      instruction: AnimationTimelineInstruction, keyframes: ɵStyleData[],\n      previousPlayers: AnimationPlayer[]): AnimationPlayer {\n    if (keyframes.length > 0) {\n      return this.driver.animate(\n          instruction.element, keyframes, instruction.duration, instruction.delay,\n          instruction.easing, previousPlayers);\n    }\n\n    // special case for when an empty transition|definition is provided\n    // ... there is no point in rendering an empty animation\n    return new NoopAnimationPlayer();\n  }\n}\n\nfunction TransitionAnimationEngine_tsickle_Closure_decl
 arations() {\n/** @type {?} */\nTransitionAnimationEngine.prototype.players;\n/** @type {?} */\nTransitionAnimationEngine.prototype.newHostElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.playersByElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.playersByQueriedElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.statesByElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.disabledNodes;\n/** @type {?} */\nTransitionAnimationEngine.prototype.totalAnimations;\n/** @type {?} */\nTransitionAnimationEngine.prototype.totalQueuedPlayers;\n/** @type {?} */\nTransitionAnimationEngine.prototype._namespaceLookup;\n/** @type {?} */\nTransitionAnimationEngine.prototype._namespaceList;\n/** @type {?} */\nTransitionAnimationEngine.prototype._flushFns;\n/** @type {?} */\nTransitionAnimationEngine.prototype._whenQuietFns;\n/** @type {?} */\nTransitionAnimationEngine.prototype.namespacesByHostElement;\n/** @type {?} */\nTransitionAnimationEngine.p
 rototype.collectedEnterElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.collectedLeaveElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.onRemovalComplete;\n/** @type {?} */\nTransitionAnimationEngine.prototype.driver;\n/** @type {?} */\nTransitionAnimationEngine.prototype._normalizer;\n}\n\nexport class TransitionAnimationPlayer implements AnimationPlayer {\nprivate _player: AnimationPlayer = new NoopAnimationPlayer();\nprivate _containsRealPlayer = false;\nprivate _queuedCallbacks: {[name: string]: (() => any)[]} = {};\nprivate _destroyed = false;\npublic parentPlayer: AnimationPlayer;\npublic markedForDestroy: boolean = false;\n/**\n * @param {?} namespaceId\n * @param {?} triggerName\n * @param {?} element\n */\nconstructor(public namespaceId: string,\npublic triggerName: string,\npublic element: any) {}\n/**\n * @return {?}\n */\nget queued() { return this._containsRealPlayer == false; }\n/**\n * @return {?}\n */\nget destroyed() { return this._des
 troyed; }\n/**\n * @param {?} player\n * @return {?}\n */\nsetRealPlayer(player: AnimationPlayer) {\n    if (this._containsRealPlayer) return;\n\n    this._player = player;\n    Object.keys(this._queuedCallbacks).forEach(phase => {\n      this._queuedCallbacks[phase].forEach(\n          callback => listenOnPlayer(player, phase, undefined, callback));\n    });\n    this._queuedCallbacks = {};\n    this._containsRealPlayer = true;\n  }\n/**\n * @return {?}\n */\ngetRealPlayer() { return this._player; }\n/**\n * @param {?} name\n * @param {?} callback\n * @return {?}\n */\nprivate _queueEvent(name: string, callback: (event: any) => any): void {\n    getOrSetAsInMap(this._queuedCallbacks, name, []).push(callback);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void {\n    if (this.queued) {\n      this._queueEvent('done', fn);\n    }\n    this._player.onDone(fn);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void {\n    if (this.qu
 eued) {\n      this._queueEvent('start', fn);\n    }\n    this._player.onStart(fn);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void {\n    if (this.queued) {\n      this._queueEvent('destroy', fn);\n    }\n    this._player.onDestroy(fn);\n  }\n/**\n * @return {?}\n */\ninit(): void { this._player.init(); }\n/**\n * @return {?}\n */\nhasStarted(): boolean { return this.queued ? false : this._player.hasStarted(); }\n/**\n * @return {?}\n */\nplay(): void { !this.queued && this._player.play(); }\n/**\n * @return {?}\n */\npause(): void { !this.queued && this._player.pause(); }\n/**\n * @return {?}\n */\nrestart(): void { !this.queued && this._player.restart(); }\n/**\n * @return {?}\n */\nfinish(): void { this._player.finish(); }\n/**\n * @return {?}\n */\ndestroy(): void {\n    this._destroyed = true;\n    this._player.destroy();\n  }\n/**\n * @return {?}\n */\nreset(): void { !this.queued && this._player.reset(); }\n/**\n * @param {?} p\n * @return {
 ?}\n */\nsetPosition(p: any): void {\n    if (!this.queued) {\n      this._player.setPosition(p);\n    }\n  }\n/**\n * @return {?}\n */\ngetPosition(): number { return this.queued ? 0 : this._player.getPosition(); }\n/**\n * @return {?}\n */\nget totalTime(): number { return this._player.totalTime; }\n}\n\nfunction TransitionAnimationPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nTransitionAnimationPlayer.prototype._player;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._containsRealPlayer;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._queuedCallbacks;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._destroyed;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.parentPlayer;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.markedForDestroy;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.namespaceId;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.triggerName;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.element;
 \n}\n\n/**\n * @param {?} map\n * @param {?} key\n * @param {?} value\n * @return {?}\n */\nfunction deleteOrUnsetInMap(map: Map<any, any[]>| {[key: string]: any}, key: any, value: any) {\n  let /** @type {?} */ currentValues: any[]|null|undefined;\n  if (map instanceof Map) {\n    currentValues = map.get(key);\n    if (currentValues) {\n      if (currentValues.length) {\n        const /** @type {?} */ index = currentValues.indexOf(value);\n        currentValues.splice(index, 1);\n      }\n      if (currentValues.length == 0) {\n        map.delete(key);\n      }\n    }\n  } else {\n    currentValues = map[key];\n    if (currentValues) {\n      if (currentValues.length) {\n        const /** @type {?} */ index = currentValues.indexOf(value);\n        currentValues.splice(index, 1);\n      }\n      if (currentValues.length == 0) {\n        delete map[key];\n      }\n    }\n  }\n  return currentValues;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction normalizeTriggerValue(val
 ue: any): any {\n  // we use `!= null` here because it's the most simple\n  // way to test against a \"falsy\" value without mixing\n  // in empty strings or a zero value. DO NOT OPTIMIZE.\n  return value != null ? value : null;\n}\n/**\n * @param {?} node\n * @return {?}\n */\nfunction isElementNode(node: any) {\n  return node && node['nodeType'] === 1;\n}\n/**\n * @param {?} eventName\n * @return {?}\n */\nfunction isTriggerEventValid(eventName: string): boolean {\n  return eventName == 'start' || eventName == 'done';\n}\n/**\n * @param {?} element\n * @param {?=} value\n * @return {?}\n */\nfunction cloakElement(element: any, value?: string) {\n  const /** @type {?} */ oldValue = element.style.display;\n  element.style.display = value != null ? value : 'none';\n  return oldValue;\n}\n/**\n * @param {?} driver\n * @param {?} elements\n * @param {?} elementPropsMap\n * @param {?} defaultStyle\n * @return {?}\n */\nfunction cloakAndComputeStyles(\n    driver: AnimationDriver, elemen
 ts: Set<any>, elementPropsMap: Map<any, Set<string>>,\n    defaultStyle: string): [Map<any, ɵStyleData>, any[]] {\n  const /** @type {?} */ cloakVals: string[] = [];\n  elements.forEach(element => cloakVals.push(cloakElement(element)));\n\n  const /** @type {?} */ valuesMap = new Map<any, ɵStyleData>();\n  const /** @type {?} */ failedElements: any[] = [];\n\n  elementPropsMap.forEach((props: Set<string>, element: any) => {\n    const /** @type {?} */ styles: ɵStyleData = {};\n    props.forEach(prop => {\n      const /** @type {?} */ value = styles[prop] = driver.computeStyle(element, prop, defaultStyle);\n\n      // there is no easy way to detect this because a sub element could be removed\n      // by a parent animation element being detached.\n      if (!value || value.length == 0) {\n        element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n        failedElements.push(element);\n      }\n    });\n    valuesMap.set(element, styles);\n  });\n\n  // we use a index variable he
 re since Set.forEach(a, i) does not return\n  // an index value for the closure (but instead just the value)\n  let /** @type {?} */ i = 0;\n  elements.forEach(element => cloakElement(element, cloakVals[i++]));\n  return [valuesMap, failedElements];\n}\n/**\n * @param {?} nodes\n * @return {?}\n */\nfunction createIsRootFilterFn(nodes: any): (node: any) => boolean {\n  const /** @type {?} */ nodeSet = new Set(nodes);\n  const /** @type {?} */ knownRootContainer = new Set();\n  let /** @type {?} */ isRoot: (node: any) => boolean;\n  isRoot = node => {\n    if (!node) return true;\n    if (nodeSet.has(node.parentNode)) return false;\n    if (knownRootContainer.has(node.parentNode)) return true;\n    if (isRoot(node.parentNode)) {\n      knownRootContainer.add(node);\n      return true;\n    }\n    return false;\n  };\n  return isRoot;\n}\n\nconst /** @type {?} */ CLASSES_CACHE_KEY = '$$classes';\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction contai
 nsClass(element: any, className: string): boolean {\n  if (element.classList) {\n    return element.classList.contains(className);\n  } else {\n    const /** @type {?} */ classes = element[CLASSES_CACHE_KEY];\n    return classes && classes[className];\n  }\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction addClass(element: any, className: string) {\n  if (element.classList) {\n    element.classList.add(className);\n  } else {\n    let /** @type {?} */ classes: {[className: string]: boolean} = element[CLASSES_CACHE_KEY];\n    if (!classes) {\n      classes = element[CLASSES_CACHE_KEY] = {};\n    }\n    classes[className] = true;\n  }\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction removeClass(element: any, className: string) {\n  if (element.classList) {\n    element.classList.remove(className);\n  } else {\n    let /** @type {?} */ classes: {[className: string]: boolean} = element[CLASSES_CACHE_KEY];\n    if
  (classes) {\n      delete classes[className];\n    }\n  }\n}\n/**\n * @return {?}\n */\nfunction getBodyNode(): any|null {\n  if (typeof document != 'undefined') {\n    return document.body;\n  }\n  return null;\n}\n/**\n * @param {?} engine\n * @param {?} element\n * @param {?} players\n * @return {?}\n */\nfunction removeNodesAfterAnimationDone(\n    engine: TransitionAnimationEngine, element: any, players: AnimationPlayer[]) {\n  optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\n/**\n * @param {?} players\n * @return {?}\n */\nfunction flattenGroupPlayers(players: AnimationPlayer[]): AnimationPlayer[] {\n  const /** @type {?} */ finalPlayers: AnimationPlayer[] = [];\n  _flattenGroupPlayersRecur(players, finalPlayers);\n  return finalPlayers;\n}\n/**\n * @param {?} players\n * @param {?} finalPlayers\n * @return {?}\n */\nfunction _flattenGroupPlayersRecur(players: AnimationPlayer[], finalPlayers: AnimationPlayer[]) {\n  for (let /** @type {?} */ i 
 = 0; i < players.length; i++) {\n    const /** @type {?} */ player = players[i];\n    if (player instanceof AnimationGroupPlayer) {\n      _flattenGroupPlayersRecur(player.players, finalPlayers);\n    } else {\n      finalPlayers.push( /** @type {?} */((player as AnimationPlayer)));\n    }\n  }\n}\n/**\

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-a11y.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-a11y.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-a11y.umd.js.map
new file mode 100644
index 0000000..ae7640b
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-a11y.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-a11y.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","cdk/a11y.es5.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Refle
 ct, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n        s = arguments[i];\r\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n    }\r\n    return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for 
 (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n            t[p[i]] = s[p[i]];\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"func
 tion\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }
 ), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [0, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] ===
  6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Sy
 mbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return
  i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { v
 alue: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator];\r\n    return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}","/**\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 { __extends } from 'tslib';\nimport * as tslib_1 from 'tslib';\nimport { Subject } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { A, DOWN_ARROW, NINE, TAB, UP_ARROW, Z, ZERO } from '@angular/cdk/keycodes';\nimport { RxChain, debounceTime, doOperator, filter, first, map } from '@angular/cdk/rxjs';\nimport { Directive, ElementRef, EventEmitter, Inject, Injectable, InjectionToken, In
 put, NgModule, NgZone, Optional, Output, Renderer2, SkipSelf } from '@angular/core';\nimport { Platform, PlatformModule } from '@angular/cdk/platform';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { of } from 'rxjs/observable/of';\nimport { CommonModule } from '@angular/common';\n\n/**\n * This class manages keyboard events for selectable lists. If you pass it a query list\n * of items, it will set the active item correctly when arrow events occur.\n */\nvar ListKeyManager = (function () {\n    /**\n     * @param {?} _items\n     */\n    function ListKeyManager(_items) {\n        this._items = _items;\n        this._activeItemIndex = -1;\n        this._wrap = false;\n        this._letterKeyStream = new Subject();\n        this._typeaheadSubscription = Subscription.EMPTY;\n        this._pressedLetters = [];\n        /**\n         * Stream that emits any time the TAB key is pressed, so components can react\n         * when focus is shifted off of the list.\n
          */\n        this.tabOut = new Subject();\n    }\n    /**\n     * Turns on wrapping mode, which ensures that the active item will wrap to\n     * the other end of list when there are no more items in the given direction.\n     * @return {?}\n     */\n    ListKeyManager.prototype.withWrap = function () {\n        this._wrap = true;\n        return this;\n    };\n    /**\n     * Turns on typeahead mode which allows users to set the active item by typing.\n     * @param {?=} debounceInterval Time to wait after the last keystroke before setting the active item.\n     * @return {?}\n     */\n    ListKeyManager.prototype.withTypeAhead = function (debounceInterval) {\n        var _this = this;\n        if (debounceInterval === void 0) { debounceInterval = 200; }\n        if (this._items.length && this._items.some(function (item) { return typeof item.getLabel !== 'function'; })) {\n            throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.'
 );\n        }\n        this._typeaheadSubscription.unsubscribe();\n        // Debounce the presses of non-navigational keys, collect the ones that correspond to letters\n        // and convert those letters back into a string. Afterwards find the first item that starts\n        // with that string and select it.\n        this._typeaheadSubscription = RxChain.from(this._letterKeyStream)\n            .call(doOperator, function (keyCode) { return _this._pressedLetters.push(keyCode); })\n            .call(debounceTime, debounceInterval)\n            .call(filter, function () { return _this._pressedLetters.length > 0; })\n            .call(map, function () { return _this._pressedLetters.join(''); })\n            .subscribe(function (inputString) {\n            var /** @type {?} */ items = _this._items.toArray();\n            // Start at 1 because we want to start searching at the item immediately\n            // following the current active item.\n            for (var /** @type {?} */ i 
 = 1; i < items.length + 1; i++) {\n                var /** @type {?} */ index = (_this._activeItemIndex + i) % items.length;\n                var /** @type {?} */ item = items[index];\n                if (!item.disabled && ((item.getLabel))().toUpperCase().trim().indexOf(inputString) === 0) {\n                    _this.setActiveItem(index);\n                    break;\n                }\n            }\n            _this._pressedLetters = [];\n        });\n        return this;\n    };\n    /**\n     * Sets the active item to the item at the index specified.\n     * @param {?} index The index of the item to be set as active.\n     * @return {?}\n     */\n    ListKeyManager.prototype.setActiveItem = function (index) {\n        this._activeItemIndex = index;\n        this._activeItem = this._items.toArray()[index];\n    };\n    /**\n     * Sets the active item depending on the key event passed in.\n     * @param {?} event Keyboard event to be used for determining which element should be
  active.\n     * @return {?}\n     */\n    ListKeyManager.prototype.onKeydown = function (event) {\n        switch (event.keyCode) {\n            case DOWN_ARROW:\n                this.setNextItemActive();\n                break;\n            case UP_ARROW:\n                this.setPreviousItemActive();\n                break;\n            case TAB:\n                this.tabOut.next();\n                return;\n            default:\n                var /** @type {?} */ keyCode = event.keyCode;\n                // Attempt to use the `event.key` which also maps it to the user's keyboard language,\n                // otherwise fall back to resolving alphanumeric characters via the keyCode.\n                if (event.key && event.key.length === 1) {\n                    this._letterKeyStream.next(event.key.toLocaleUpperCase());\n                }\n                else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {\n                    this._letterKeyStream
 .next(String.fromCharCode(keyCode));\n                }\n                // Note that we return here, in order to avoid preventing\n                // the default action of non-navigational keys.\n                return;\n        }\n        this._pressedLetters = [];\n        event.preventDefault();\n    };\n    Object.defineProperty(ListKeyManager.prototype, \"activeItemIndex\", {\n        /**\n         * Index of the currently active item.\n         * @return {?}\n         */\n        get: function () {\n            return this._activeItemIndex;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(ListKeyManager.prototype, \"activeItem\", {\n        /**\n         * The active item.\n         * @return {?}\n         */\n        get: function () {\n            return this._activeItem;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Sets the active item to the first enabled item in the list
 .\n     * @return {?}\n     */\n    ListKeyManager.prototype.setFirstItemActive = function () {\n        this._setActiveItemByIndex(0, 1);\n    };\n    /**\n     * Sets the active item to the last enabled item in the list.\n     * @return {?}\n     */\n    ListKeyManager.prototype.setLastItemActive = function () {\n        this._setActiveItemByIndex(this._items.length - 1, -1);\n    };\n    /**\n     * Sets the active item to the next enabled item in the list.\n     * @return {?}\n     */\n    ListKeyManager.prototype.setNextItemActive = function () {\n        this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);\n    };\n    /**\n     * Sets the active item to a previous enabled item in the list.\n     * @return {?}\n     */\n    ListKeyManager.prototype.setPreviousItemActive = function () {\n        this._activeItemIndex < 0 && this._wrap ? this.setLastItemActive()\n            : this._setActiveItemByDelta(-1);\n    };\n    /**\n     * Allows setti
 ng of the activeItemIndex without any other effects.\n     * @param {?} index The new activeItemIndex.\n     * @return {?}\n     */\n    ListKeyManager.prototype.updateActiveItemIndex = function (index) {\n        this._activeItemIndex = index;\n    };\n    /**\n     * This method sets the active item, given a list of items and the delta between the\n     * currently active item and the new active item. It will calculate differently\n     * depending on whether wrap mode is turned on.\n     * @param {?} delta\n     * @param {?=} items\n     * @return {?}\n     */\n    ListKeyManager.prototype._setActiveItemByDelta = function (delta, items) {\n        if (items === void 0) { items = this._items.toArray(); }\n        this._wrap ? this._setActiveInWrapMode(delta, items)\n            : this._setActiveInDefaultMode(delta, items);\n    };\n    /**\n     * Sets the active item properly given \"wrap\" mode. In other words, it will continue to move\n     * down the list until it finds an ite
 m that is not disabled, and it will wrap if it\n     * encounters either end of the list.\n     * @param {?} delta\n     * @param {?} items\n     * @return {?}\n     */\n    ListKeyManager.prototype._setActiveInWrapMode = function (delta, items) {\n        // when active item would leave menu, wrap to beginning or end\n        this._activeItemIndex =\n            (this._activeItemIndex + delta + items.length) % items.length;\n        // skip all disabled menu items recursively until an enabled one is reached\n        if (items[this._activeItemIndex].disabled) {\n            this._setActiveInWrapMode(delta, items);\n        }\n        else {\n            this.setActiveItem(this._activeItemIndex);\n        }\n    };\n    /**\n     * Sets the active item properly given the default mode. In other words, it will\n     * continue to move down the list until it finds an item that is not disabled. If\n     * it encounters either end of the list, it will stop and not wrap.\n     * @param {?}
  delta\n     * @param {?} items\n     * @return {?}\n     */\n    ListKeyManager.prototype._setActiveInDefaultMode = function (delta, items) {\n        this._setActiveItemByIndex(this._activeItemIndex + delta, delta, items);\n    };\n    /**\n     * Sets the active item to the first enabled item starting at the index specified. If the\n     * item is disabled, it will move in the fallbackDelta direction until it either\n     * finds an enabled item or encounters the end of the list.\n     * @param {?} index\n     * @param {?} fallbackDelta\n     * @param {?=} items\n     * @return {?}\n     */\n    ListKeyManager.prototype._setActiveItemByIndex = function (index, fallbackDelta, items) {\n        if (items === void 0) { items = this._items.toArray(); }\n        if (!items[index]) {\n            return;\n        }\n        while (items[index].disabled) {\n            index += fallbackDelta;\n            if (!items[index]) {\n                return;\n            }\n        }\n        t
 his.setActiveItem(index);\n    };\n    return ListKeyManager;\n}());\n\nvar ActiveDescendantKeyManager = (function (_super) {\n    __extends(ActiveDescendantKeyManager, _super);\n    function ActiveDescendantKeyManager() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /**\n     * This method sets the active item to the item at the specified index.\n     * It also adds active styles to the newly active item and removes active\n     * styles from the previously active item.\n     * @param {?} index\n     * @return {?}\n     */\n    ActiveDescendantKeyManager.prototype.setActiveItem = function (index) {\n        if (this.activeItem) {\n            this.activeItem.setInactiveStyles();\n        }\n        _super.prototype.setActiveItem.call(this, index);\n        if (this.activeItem) {\n            this.activeItem.setActiveStyles();\n        }\n    };\n    return ActiveDescendantKeyManager;\n}(ListKeyManager));\n\n/**\n * IDs are deliminated by an 
 empty space, as per the spec.\n */\nvar ID_DELIMINATOR = ' ';\n/**\n * Adds the given ID to the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n * @param {?} el\n * @param {?} attr\n * @param {?} id\n * @return {?}\n */\nfunction addAriaReferencedId(el, attr, id) {\n    var /** @type {?} */ ids = getAriaReferenceIds(el, attr);\n    if (ids.some(function (existingId) { return existingId.trim() == id.trim(); })) {\n        return;\n    }\n    ids.push(id.trim());\n    el.setAttribute(attr, ids.join(ID_DELIMINATOR));\n}\n/**\n * Removes the given ID from the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n * @param {?} el\n * @param {?} attr\n * @param {?} id\n * @return {?}\n */\nfunction removeAriaReferencedId(el, attr, id) {\n    var /** @type {?} */ ids = getAriaReferenceIds(el, attr);\n    var /** @type {?} */ filteredIds = ids.filter(function (val) { return val != i
 d.trim(); });\n    el.setAttribute(attr, filteredIds.join(ID_DELIMINATOR));\n}\n/**\n * Gets the list of IDs referenced by the given ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n * @param {?} el\n * @param {?} attr\n * @return {?}\n */\nfunction getAriaReferenceIds(el, attr) {\n    // Get string array of all individual ids (whitespace deliminated) in the attribute value\n    return (el.getAttribute(attr) || '').match(/\\S+/g) || [];\n}\n\n/**\n * ID used for the body container where all messages are appended.\n */\nvar MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';\n/**\n * ID prefix used for each created message element.\n */\nvar CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';\n/**\n * Attribute given to each host element that is described by a message element.\n */\nvar CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';\n/**\n * Global incremental identifier for each registered message element.\n */\nva
 r nextId = 0;\n/**\n * Global map of all registered message elements that have been placed into the document.\n */\nvar messageRegistry = new Map();\n/**\n * Container for all registered messages.\n */\nvar messagesContainer = null;\n/**\n * Utility that creates visually hidden elements with a message content. Useful for elements that\n * want to use aria-describedby to further describe themselves without adding additional visual\n * content.\n * \\@docs-private\n */\nvar AriaDescriber = (function () {\n    /**\n     * @param {?} _platform\n     */\n    function AriaDescriber(_platform) {\n        this._platform = _platform;\n    }\n    /**\n     * Adds to the host element an aria-describedby reference to a hidden element that contains\n     * the message. If the same message has already been registered, then it will reuse the created\n     * message element.\n     * @param {?} hostElement\n     * @param {?} message\n     * @return {?}\n     */\n    AriaDescriber.prototype.describe 
 = function (hostElement, message) {\n        if (!this._platform.isBrowser || !message.trim()) {\n            return;\n        }\n        if (!messageRegistry.has(message)) {\n            createMessageElement(message);\n        }\n        if (!isElementDescribedByMessage(hostElement, message)) {\n            addMessageReference(hostElement, message);\n        }\n    };\n    /**\n     * Removes the host element's aria-describedby reference to the message element.\n     * @param {?} hostElement\n     * @param {?} message\n     * @return {?}\n     */\n    AriaDescriber.prototype.removeDescription = function (hostElement, message) {\n        if (!this._platform.isBrowser || !message.trim()) {\n            return;\n        }\n        if (isElementDescribedByMessage(hostElement, message)) {\n            removeMessageReference(hostElement, message);\n        }\n        var /** @type {?} */ registeredMessage = messageRegistry.get(message);\n        if (registeredMessage && registeredMessage
 .referenceCount === 0) {\n            deleteMessageElement(message);\n        }\n        if (messagesContainer && messagesContainer.childNodes.length === 0) {\n            deleteMessagesContainer();\n        }\n    };\n    /**\n     * Unregisters all created message elements and removes the message container.\n     * @return {?}\n     */\n    AriaDescriber.prototype.ngOnDestroy = function () {\n        if (!this._platform.isBrowser) {\n            return;\n        }\n        var /** @type {?} */ describedElements = document.querySelectorAll(\"[\" + CDK_DESCRIBEDBY_HOST_ATTRIBUTE + \"]\");\n        for (var /** @type {?} */ i = 0; i < describedElements.length; i++) {\n            removeCdkDescribedByReferenceIds(describedElements[i]);\n            describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n        }\n        if (messagesContainer) {\n            deleteMessagesContainer();\n        }\n        messageRegistry.clear();\n    };\n    AriaDescriber.decorators = 
 [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    AriaDescriber.ctorParameters = function () { return [\n        { type: Platform, },\n    ]; };\n    return AriaDescriber;\n}());\n/**\n * Creates a new element in the visually hidden message container element with the message\n * as its content and adds it to the message registry.\n * @param {?} message\n * @return {?}\n */\nfunction createMessageElement(message) {\n    var /** @type {?} */ messageElement = document.createElement('div');\n    messageElement.setAttribute('id', CDK_DESCRIBEDBY_ID_PREFIX + \"-\" + nextId++);\n    messageElement.appendChild(/** @type {?} */ ((document.createTextNode(message))));\n    if (!messagesContainer) {\n        createMessagesContainer();\n    } /** @type {?} */\n    ((messagesContainer)).appendChild(messageElement);\n    messageRegistry.set(message, { messageElement: messageElement, referenceCount: 0 });\n}\n/**\n * Deletes the message element from the global mess
 ages container.\n * @param {?} message\n * @return {?}\n */\nfunction deleteMessageElement(message) {\n    var /** @type {?} */ registeredMessage = messageRegistry.get(message);\n    var /** @type {?} */ messageElement = registeredMessage && registeredMessage.messageElement;\n    if (messagesContainer && messageElement) {\n        messagesContainer.removeChild(messageElement);\n    }\n    messageRegistry.delete(message);\n}\n/**\n * Creates the global container for all aria-describedby messages.\n * @return {?}\n */\nfunction createMessagesContainer() {\n    messagesContainer = document.createElement('div');\n    messagesContainer.setAttribute('id', MESSAGES_CONTAINER_ID);\n    messagesContainer.setAttribute('aria-hidden', 'true');\n    messagesContainer.style.display = 'none';\n    document.body.appendChild(messagesContainer);\n}\n/**\n * Deletes the global messages container.\n * @return {?}\n */\nfunction deleteMessagesContainer() {\n    document.body.removeChild(/** @type {?} */
  ((messagesContainer)));\n    messagesContainer = null;\n}\n/**\n * Removes all cdk-describedby messages that are hosted through the element.\n * @param {?} element\n * @return {?}\n */\nfunction removeCdkDescribedByReferenceIds(element) {\n    // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX\n    var /** @type {?} */ originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby')\n        .filter(function (id) { return id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0; });\n    element.setAttribute('aria-describedby', originalReferenceIds.join(' '));\n}\n/**\n * Adds a message reference to the element using aria-describedby and increments the registered\n * message's reference count.\n * @param {?} element\n * @param {?} message\n * @return {?}\n */\nfunction addMessageReference(element, message) {\n    var /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));\n    // Add the aria-describedby reference and set the describ
 edby_host attribute to mark the element.\n    addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n    element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, '');\n    registeredMessage.referenceCount++;\n}\n/**\n * Removes a message reference from the element using aria-describedby and decrements the registered\n * message's reference count.\n * @param {?} element\n * @param {?} message\n * @return {?}\n */\nfunction removeMessageReference(element, message) {\n    var /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));\n    registeredMessage.referenceCount--;\n    removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n    element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n}\n/**\n * Returns true if the element has been described by the provided message ID.\n * @param {?} element\n * @param {?} message\n * @return {?}\n */\nfunction isElementDescribedByMessage(element, message) {\n    var 
 /** @type {?} */ referenceIds = getAriaReferenceIds(element, 'aria-describedby');\n    var /** @type {?} */ registeredMessage = messageRegistry.get(message);\n    var /** @type {?} */ messageId = registeredMessage && registeredMessage.messageElement.id;\n    return !!messageId && referenceIds.indexOf(messageId) != -1;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} platform\n * @return {?}\n */\nfunction ARIA_DESCRIBER_PROVIDER_FACTORY(parentDispatcher, platform) {\n    return parentDispatcher || new AriaDescriber(platform);\n}\n/**\n * \\@docs-private\n */\nvar ARIA_DESCRIBER_PROVIDER = {\n    // If there is already an AriaDescriber available, use that. Otherwise, provide a new one.\n    provide: AriaDescriber,\n    deps: [\n        [new Optional(), new SkipSelf(), AriaDescriber],\n        Platform\n    ],\n    useFactory: ARIA_DESCRIBER_PROVIDER_FACTORY\n};\n\n/**\n * Screenreaders will often fire fake mousedown events when a focusable element\n * is act
 ivated using the keyboard. We can typically distinguish between these faked\n * mousedown events and real mousedown events using the \"buttons\" property. While\n * real mousedowns will indicate the mouse button that was pressed (e.g. \"1\" for\n * the left mouse button), faked mousedowns will usually set the property value to 0.\n * @param {?} event\n * @return {?}\n */\nfunction isFakeMousedownFromScreenReader(event) {\n    return event.buttons === 0;\n}\n\nvar FocusKeyManager = (function (_super) {\n    __extends(FocusKeyManager, _super);\n    function FocusKeyManager() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /**\n     * This method sets the active item to the item at the specified index.\n     * It also adds focuses the newly active item.\n     * @param {?} index\n     * @return {?}\n     */\n    FocusKeyManager.prototype.setActiveItem = function (index) {\n        _super.prototype.setActiveItem.call(this, index);\n        if (this
 .activeItem) {\n            this.activeItem.focus();\n        }\n    };\n    return FocusKeyManager;\n}(ListKeyManager));\n\n/**\n * Utility for checking the interactivity of an element, such as whether is is focusable or\n * tabbable.\n */\nvar InteractivityChecker = (function () {\n    /**\n     * @param {?} _platform\n     */\n    function InteractivityChecker(_platform) {\n        this._platform = _platform;\n    }\n    /**\n     * Gets whether an element is disabled.\n     *\n     * @param {?} element Element to be checked.\n     * @return {?} Whether the element is disabled.\n     */\n    InteractivityChecker.prototype.isDisabled = function (element) {\n        // This does not capture some cases, such as a non-form control with a disabled attribute or\n        // a form control inside of a disabled form, but should capture the most common cases.\n        return element.hasAttribute('disabled');\n    };\n    /**\n     * Gets whether an element is visible for the purposes of in
 teractivity.\n     *\n     * This will capture states like `display: none` and `visibility: hidden`, but not things like\n     * being clipped by an `overflow: hidden` parent or being outside the viewport.\n     *\n     * @param {?} element\n     * @return {?} Whether the element is visible.\n     */\n    InteractivityChecker.prototype.isVisible = function (element) {\n        return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';\n    };\n    /**\n     * Gets whether an element can be reached via Tab key.\n     * Assumes that the element has already been checked with isFocusable.\n     *\n     * @param {?} element Element to be checked.\n     * @return {?} Whether the element is tabbable.\n     */\n    InteractivityChecker.prototype.isTabbable = function (element) {\n        // Nothing is tabbable on the the server 😎\n        if (!this._platform.isBrowser) {\n            return false;\n        }\n        var /** @type {?} */ frameElement = (getWindow(
 element).frameElement);\n        if (frameElement) {\n            var /** @type {?} */ frameType = frameElement && frameElement.nodeName.toLowerCase();\n            // Frame elements inherit their tabindex onto all child elements.\n            if (getTabIndexValue(frameElement) === -1) {\n                return false;\n            }\n            // Webkit and Blink consider anything inside of an <object> element as non-tabbable.\n            if ((this._platform.BLINK || this._platform.WEBKIT) && frameType === 'object') {\n                return false;\n            }\n            // Webkit and Blink disable tabbing to an element inside of an invisible frame.\n            if ((this._platform.BLINK || this._platform.WEBKIT) && !this.isVisible(frameElement)) {\n                return false;\n            }\n        }\n        var /** @type {?} */ nodeName = element.nodeName.toLowerCase();\n        var /** @type {?} */ tabIndexValue = getTabIndexValue(element);\n        if (element.hasAtt
 ribute('contenteditable')) {\n            return tabIndexValue !== -1;\n        }\n        if (nodeName === 'iframe') {\n            // The frames may be tabbable depending on content, but it's not possibly to reliably\n            // investigate the content of the frames.\n            return false;\n        }\n        if (nodeName === 'audio') {\n            if (!element.hasAttribute('controls')) {\n                // By default an <audio> element without the controls enabled is not tabbable.\n                return false;\n            }\n            else if (this._platform.BLINK) {\n                // In Blink <audio controls> elements are always tabbable.\n                return true;\n            }\n        }\n        if (nodeName === 'video') {\n            if (!element.hasAttribute('controls') && this._platform.TRIDENT) {\n                // In Trident a <video> element without the controls enabled is not tabbable.\n                return false;\n            }\n            els
 e if (this._platform.BLINK || this._platform.FIREFOX) {\n                // In Chrome and Firefox <video controls> elements are always tabbable.\n                return true;\n            }\n        }\n        if (nodeName === 'object' && (this._platform.BLINK || this._platform.WEBKIT)) {\n            // In all Blink and WebKit based browsers <object> elements are never tabbable.\n            return false;\n        }\n        // In iOS the browser only considers some specific elements as tabbable.\n        if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {\n            return false;\n        }\n        return element.tabIndex >= 0;\n    };\n    /**\n     * Gets whether an element can be focused by the user.\n     *\n     * @param {?} element Element to be checked.\n     * @return {?} Whether the element is focusable.\n     */\n    InteractivityChecker.prototype.isFocusable = function (element) {\n        // Perform checks in order of left to mos
 t expensive.\n        // Again, naive approach that does not capture many edge cases and browser quirks.\n        return isPotentiallyFocusable(element) && !this.isDisabled(element) && this.isVisible(element);\n    };\n    InteractivityChecker.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    InteractivityChecker.ctorParameters = function () { return [\n        { type: Platform, },\n    ]; };\n    return InteractivityChecker;\n}());\n/**\n * Checks whether the specified element has any geometry / rectangles.\n * @param {?} element\n * @return {?}\n */\nfunction hasGeometry(element) {\n    // Use logic from jQuery to check for an invisible element.\n    // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n    return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);\n}\n/**\n * Gets whether an element's\n * @param {?} element\n * @return {?}\n */\nfunction isNativeFor
 mElement(element) {\n    var /** @type {?} */ nodeName = element.nodeName.toLowerCase();\n    return nodeName === 'input' ||\n        nodeName === 'select' ||\n        nodeName === 'button' ||\n        nodeName === 'textarea';\n}\n/**\n * Gets whether an element is an <input type=\"hidden\">.\n * @param {?} element\n * @return {?}\n */\nfunction isHiddenInput(element) {\n    return isInputElement(element) && element.type == 'hidden';\n}\n/**\n * Gets whether an element is an anchor that has an href attribute.\n * @param {?} element\n * @return {?}\n */\nfunction isAnchorWithHref(element) {\n    return isAnchorElement(element) && element.hasAttribute('href');\n}\n/**\n * Gets whether an element is an input element.\n * @param {?} element\n * @return {?}\n */\nfunction isInputElement(element) {\n    return element.nodeName.toLowerCase() == 'input';\n}\n/**\n * Gets whether an element is an anchor element.\n * @param {?} element\n * @return {?}\n */\nfunction isAnchorElement(element) {
 \n    return element.nodeName.toLowerCase() == 'a';\n}\n/**\n * Gets whether an element has a valid tabindex.\n * @param {?} element\n * @return {?}\n */\nfunction hasValidTabIndex(element) {\n    if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n        return false;\n    }\n    var /** @type {?} */ tabIndex = element.getAttribute('tabindex');\n    // IE11 parses tabindex=\"\" as the value \"-32768\"\n    if (tabIndex == '-32768') {\n        return false;\n    }\n    return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Returns the parsed tabindex from the element attributes instead of returning the\n * evaluated tabindex from the browsers defaults.\n * @param {?} element\n * @return {?}\n */\nfunction getTabIndexValue(element) {\n    if (!hasValidTabIndex(element)) {\n        return null;\n    }\n    // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n    var /** @type {?} */ tabIndex = parseInt(element.getAttr
 ibute('tabindex') || '', 10);\n    return isNaN(tabIndex) ? -1 : tabIndex;\n}\n/**\n * Checks whether the specified element is potentially tabbable on iOS\n * @param {?} element\n * @return {?}\n */\nfunction isPotentiallyTabbableIOS(element) {\n    var /** @type {?} */ nodeName = element.nodeName.toLowerCase();\n    var /** @type {?} */ inputType = nodeName === 'input' && ((element)).type;\n    return inputType === 'text'\n        || inputType === 'password'\n        || nodeName === 'select'\n        || nodeName === 'textarea';\n}\n/**\n * Gets whether an element is potentially focusable without taking current visible/disabled state\n * into account.\n * @param {?} element\n * @return {?}\n */\nfunction isPotentiallyFocusable(element) {\n    // Inputs are potentially focusable *unless* they're type=\"hidden\".\n    if (isHiddenInput(element)) {\n        return false;\n    }\n    return isNativeFormElement(element) ||\n        isAnchorWithHref(element) ||\n        element.hasAttribu
 te('contenteditable') ||\n        hasValidTabIndex(element);\n}\n/**\n * Gets the parent window of a DOM node with regards of being inside of an iframe.\n * @param {?} node\n * @return {?}\n */\nfunction getWindow(node) {\n    return node.ownerDocument.defaultView || window;\n}\n\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * NOTE: This class currently uses a very simple (naive) approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like tabIndex > 0, flex `order`, and shadow roots can cause to two to misalign.\n * This will be replaced with a more intelligent solution before the library is considered stable.\n */\nvar FocusTrap = (function () {\n    /**\n     * @param {?} _element\n     * @param {?} _platform\n     * @param {?} _checker\n     * @param {?} _ngZone\n     * @param {?=} deferAnchors\n     */\n    function FocusTrap(_element, _platform, _checker, _ngZone, deferAnchors
 ) {\n        if (deferAnchors === void 0) { deferAnchors = false; }\n        this._element = _element;\n        this._platform = _platform;\n        this._checker = _checker;\n        this._ngZone = _ngZone;\n        this._enabled = true;\n        if (!deferAnchors) {\n            this.attachAnchors();\n        }\n    }\n    Object.defineProperty(FocusTrap.prototype, \"enabled\", {\n        /**\n         * Whether the focus trap is active.\n         * @return {?}\n         */\n        get: function () { return this._enabled; },\n        /**\n         * @param {?} val\n         * @return {?}\n         */\n        set: function (val) {\n            this._enabled = val;\n            if (this._startAnchor && this._endAnchor) {\n                this._startAnchor.tabIndex = this._endAnchor.tabIndex = this._enabled ? 0 : -1;\n            }\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Destroys the focus trap by cleaning up the anchors.\n     *
  @return {?}\n     */\n    FocusTrap.prototype.destroy = function () {\n        if (this._startAnchor && this._startAnchor.parentNode) {\n            this._startAnchor.parentNode.removeChild(this._startAnchor);\n        }\n        if (this._endAnchor && this._endAnchor.parentNode) {\n            this._endAnchor.parentNode.removeChild(this._endAnchor);\n        }\n        this._startAnchor = this._endAnchor = null;\n    };\n    /**\n     * Inserts the anchors into the DOM. This is usually done automatically\n     * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n     * @return {?}\n     */\n    FocusTrap.prototype.attachAnchors = function () {\n        var _this = this;\n        // If we're not on the browser, there can be no focus to trap.\n        if (!this._platform.isBrowser) {\n            return;\n        }\n        if (!this._startAnchor) {\n            this._startAnchor = this._createAnchor();\n        }\n        if (!this._endAnchor) {\n     
        this._endAnchor = this._createAnchor();\n        }\n        this._ngZone.runOutsideAngular(function () {\n            ((_this._startAnchor)).addEventListener('focus', function () {\n                _this.focusLastTabbableElement();\n            }); /** @type {?} */\n            ((_this._endAnchor)).addEventListener('focus', function () {\n                _this.focusFirstTabbableElement();\n            });\n            if (_this._element.parentNode) {\n                _this._element.parentNode.insertBefore(/** @type {?} */ ((_this._startAnchor)), _this._element);\n                _this._element.parentNode.insertBefore(/** @type {?} */ ((_this._endAnchor)), _this._element.nextSibling);\n            }\n        });\n    };\n    /**\n     * Waits for the zone to stabilize, then either focuses the first element that the\n     * user specified, or the first tabbable element.\n     * @return {?} Returns a promise that resolves with a boolean, depending\n     * on whether focus was mo
 ved successfuly.\n     */\n    FocusTrap.prototype.focusInitialElementWhenReady = function () {\n        var _this = this;\n        return new Promise(function (resolve) {\n            _this._executeOnStable(function () { return resolve(_this.focusInitialElement()); });\n        });\n    };\n    /**\n     * Waits for the zone to stabilize, then focuses\n     * the first tabbable element within the focus trap region.\n     * @return {?} Returns a promise that resolves with a boolean, depending\n     * on whether focus was moved successfuly.\n     */\n    FocusTrap.prototype.focusFirstTabbableElementWhenReady = function () {\n        var _this = this;\n        return new Promise(function (resolve) {\n            _this._executeOnStable(function () { return resolve(_this.focusFirstTabbableElement()); });\n        });\n    };\n    /**\n     * Waits for the zone to stabilize, then focuses\n     * the last tabbable element within the focus trap region.\n     * @return {?} Returns a promise
  that resolves with a boolean, depending\n     * on whether focus was moved successfuly.\n     */\n    FocusTrap.prototype.focusLastTabbableElementWhenReady = function () {\n        var _this = this;\n        return new Promise(function (resolve) {\n            _this._executeOnStable(function () { return resolve(_this.focusLastTabbableElement()); });\n        });\n    };\n    /**\n     * Get the specified boundary element of the trapped region.\n     * @param {?} bound The boundary to get (start or end of trapped region).\n     * @return {?} The boundary element.\n     */\n    FocusTrap.prototype._getRegionBoundary = function (bound) {\n        // Contains the deprecated version of selector, for temporary backwards comparability.\n        var /** @type {?} */ markers = (this._element.querySelectorAll(\"[cdk-focus-region-\" + bound + \"], \" +\n            (\"[cdk-focus-\" + bound + \"]\")));\n        for (var /** @type {?} */ i = 0; i < markers.length; i++) {\n            if (marker
 s[i].hasAttribute(\"cdk-focus-\" + bound)) {\n                console.warn(\"Found use of deprecated attribute 'cdk-focus-\" + bound + \"',\" +\n                    (\" use 'cdk-focus-region-\" + bound + \"' instead.\"), markers[i]);\n            }\n        }\n        if (bound == 'start') {\n            return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);\n        }\n        return markers.length ?\n            markers[markers.length - 1] : this._getLastTabbableElement(this._element);\n    };\n    /**\n     * Focuses the element that should be focused when the focus trap is initialized.\n     * @return {?} Returns whether focus was moved successfuly.\n     */\n    FocusTrap.prototype.focusInitialElement = function () {\n        var /** @type {?} */ redirectToElement = (this._element.querySelector('[cdk-focus-initial]'));\n        if (redirectToElement) {\n            redirectToElement.focus();\n            return true;\n        }\n        return this.f
 ocusFirstTabbableElement();\n    };\n    /**\n     * Focuses the first tabbable element within the focus trap region.\n     * @return {?} Returns whether focus was moved successfuly.\n     */\n    FocusTrap.prototype.focusFirstTabbableElement = function () {\n        var /** @type {?} */ redirectToElement = this._getRegionBoundary('start');\n        if (redirectToElement) {\n            redirectToElement.focus();\n        }\n        return !!redirectToElement;\n    };\n    /**\n     * Focuses the last tabbable element within the focus trap region.\n     * @return {?} Returns whether focus was moved successfuly.\n     */\n    FocusTrap.prototype.focusLastTabbableElement = function () {\n        var /** @type {?} */ redirectToElement = this._getRegionBoundary('end');\n        if (redirectToElement) {\n            redirectToElement.focus();\n        }\n        return !!redirectToElement;\n    };\n    /**\n     * Get the first tabbable element from a DOM subtree (inclusive).\n     * @pa
 ram {?} root\n     * @return {?}\n     */\n    FocusTrap.prototype._getFirstTabbableElement = function (root) {\n        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n            return root;\n        }\n        // Iterate in DOM order. Note that IE doesn't have `children` for SVG so we fall\n        // back to `childNodes` which includes text nodes, comments etc.\n        var /** @type {?} */ children = root.children || root.childNodes;\n        for (var /** @type {?} */ i = 0; i < children.length; i++) {\n            var /** @type {?} */ tabbableChild = children[i].nodeType === Node.ELEMENT_NODE ?\n                this._getFirstTabbableElement(/** @type {?} */ (children[i])) :\n                null;\n            if (tabbableChild) {\n                return tabbableChild;\n            }\n        }\n        return null;\n    };\n    /**\n     * Get the last tabbable element from a DOM subtree (inclusive).\n     * @param {?} root\n     * @return {?}\n     
 */\n    FocusTrap.prototype._getLastTabbableElement = function (root) {\n        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n            return root;\n        }\n        // Iterate in reverse DOM order.\n        var /** @type {?} */ children = root.children || root.childNodes;\n        for (var /** @type {?} */ i = children.length - 1; i >= 0; i--) {\n            var /** @type {?} */ tabbableChild = children[i].nodeType === Node.ELEMENT_NODE ?\n                this._getLastTabbableElement(/** @type {?} */ (children[i])) :\n                null;\n            if (tabbableChild) {\n                return tabbableChild;\n            }\n        }\n        return null;\n    };\n    /**\n     * Creates an anchor element.\n     * @return {?}\n     */\n    FocusTrap.prototype._createAnchor = function () {\n        var /** @type {?} */ anchor = document.createElement('div');\n        anchor.tabIndex = this._enabled ? 0 : -1;\n        anchor.classList.add('cdk-vis
 ually-hidden');\n        anchor.classList.add('cdk-focus-trap-anchor');\n        return anchor;\n    };\n    /**\n     * Executes a function when the zone is stable.\n     * @param {?} fn\n     * @return {?}\n     */\n    FocusTrap.prototype._executeOnStable = function (fn) {\n        if (this._ngZone.isStable) {\n            fn();\n        }\n        else {\n            first.call(this._ngZone.onStable.asObservable()).subscribe(fn);\n        }\n    };\n    return FocusTrap;\n}());\n/**\n * Factory that allows easy instantiation of focus traps.\n */\nvar FocusTrapFactory = (function () {\n    /**\n     * @param {?} _checker\n     * @param {?} _platform\n     * @param {?} _ngZone\n     */\n    function FocusTrapFactory(_checker, _platform, _ngZone) {\n        this._checker = _checker;\n        this._platform = _platform;\n        this._ngZone = _ngZone;\n    }\n    /**\n     * @param {?} element\n     * @param {?=} deferAnchors\n     * @return {?}\n     */\n    FocusTrapFactory.proto
 type.create = function (element, deferAnchors) {\n        if (deferAnchors === void 0) { deferAnchors = false; }\n        return new FocusTrap(element, this._platform, this._checker, this._ngZone, deferAnchors);\n    };\n    FocusTrapFactory.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    FocusTrapFactory.ctorParameters = function () { return [\n        { type: InteractivityChecker, },\n        { type: Platform, },\n        { type: NgZone, },\n    ]; };\n    return FocusTrapFactory;\n}());\n/**\n * Directive for trapping focus within a region.\n * @deprecated\n */\nvar FocusTrapDeprecatedDirective = (function () {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _focusTrapFactory\n     */\n    function FocusTrapDeprecatedDirective(_elementRef, _focusTrapFactory) {\n        this._elementRef = _elementRef;\n        this._focusTrapFactory = _focusTrapFactory;\n        this.focusTrap = this._focusTrapFactory.create(this._element
 Ref.nativeElement, true);\n    }\n    Object.defineProperty(FocusTrapDeprecatedDirective.prototype, \"disabled\", {\n        /**\n         * Whether the focus trap is active.\n         * @return {?}\n         */\n        get: function () { return !this.focusTrap.enabled; },\n        /**\n         * @param {?} val\n         * @return {?}\n         */\n        set: function (val) {\n            this.focusTrap.enabled = !coerceBooleanProperty(val);\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * @return {?}\n     */\n    FocusTrapDeprecatedDirective.prototype.ngOnDestroy = function () {\n        this.focusTrap.destroy();\n    };\n    /**\n     * @return {?}\n     */\n    FocusTrapDeprecatedDirective.prototype.ngAfterContentInit = function () {\n        this.focusTrap.attachAnchors();\n    };\n    FocusTrapDeprecatedDirective.decorators = [\n        { type: Directive, args: [{\n                    selector: 'cdk-focus-trap',\n                
 },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    FocusTrapDeprecatedDirective.ctorParameters = function () { return [\n        { type: ElementRef, },\n        { type: FocusTrapFactory, },\n    ]; };\n    FocusTrapDeprecatedDirective.propDecorators = {\n        'disabled': [{ type: Input },],\n    };\n    return FocusTrapDeprecatedDirective;\n}());\n/**\n * Directive for trapping focus within a region.\n */\nvar FocusTrapDirective = (function () {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _focusTrapFactory\n     */\n    function FocusTrapDirective(_elementRef, _focusTrapFactory) {\n        this._elementRef = _elementRef;\n        this._focusTrapFactory = _focusTrapFactory;\n        this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n    }\n    Object.defineProperty(FocusTrapDirective.prototype, \"enabled\", {\n        /**\n         * Whether the focus trap is active.\n         * @return {?}\n         */\n        get: functi
 on () { return this.focusTrap.enabled; },\n        /**\n         * @param {?} value\n         * @return {?}\n         */\n        set: function (value) { this.focusTrap.enabled = coerceBooleanProperty(value); },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * @return {?}\n     */\n    FocusTrapDirective.prototype.ngOnDestroy = function () {\n        this.focusTrap.destroy();\n    };\n    /**\n     * @return {?}\n     */\n    FocusTrapDirective.prototype.ngAfterContentInit = function () {\n        this.focusTrap.attachAnchors();\n    };\n    FocusTrapDirective.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkTrapFocus]',\n                    exportAs: 'cdkTrapFocus',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    FocusTrapDirective.ctorParameters = function () { return [\n        { type: ElementRef, },\n        { type: FocusTrapFactory, },\n    ]; };\n    FocusTrapDirective.propDecorat
 ors = {\n        'enabled': [{ type: Input, args: ['cdkTrapFocus',] },],\n    };\n    return FocusTrapDirective;\n}());\n\nvar LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken('liveAnnouncerElement');\nvar LiveAnnouncer = (function () {\n    /**\n     * @param {?} elementToken\n     * @param {?} platform\n     */\n    function LiveAnnouncer(elementToken, platform) {\n        // Only do anything if we're on the browser platform.\n        if (platform.isBrowser) {\n            // We inject the live element as `any` because the constructor signature cannot reference\n            // browser globals (HTMLElement) on non-browser environments, since having a class decorator\n            // causes TypeScript to preserve the constructor signature types.\n            this._liveElement = elementToken || this._createLiveElement();\n        }\n    }\n    /**\n     * Announces a message to screenreaders.\n     * @param {?} message Message to be announced to the screenreader\n     * @param {?=} p
 oliteness The politeness of the announcer element\n     * @return {?}\n     */\n    LiveAnnouncer.prototype.announce = function (message, politeness) {\n        var _this = this;\n        if (politeness === void 0) { politeness = 'polite'; }\n        this._liveElement.textContent = '';\n        // TODO: ensure changing the politeness works on all environments we support.\n        this._liveElement.setAttribute('aria-live', politeness);\n        // This 100ms timeout is necessary for some browser + screen-reader combinations:\n        // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.\n        // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a\n        //   second time without clearing and then using a non-zero delay.\n        // (using JAWS 17 at time of this writing).\n        setTimeout(function () { return _this._liveElement.textContent = message; }, 100);\n    };\n    /**\n     * @return {?}\n     */\
 n    LiveAnnouncer.prototype.ngOnDestroy = function () {\n        if (this._liveElement && this._liveElement.parentNode) {\n            this._liveElement.parentNode.removeChild(this._liveElement);\n        }\n    };\n    /**\n     * @return {?}\n     */\n    LiveAnnouncer.prototype._createLiveElement = function () {\n        var /** @type {?} */ liveEl = document.createElement('div');\n        liveEl.classList.add('cdk-visually-hidden');\n        liveEl.setAttribute('aria-atomic', 'true');\n        liveEl.setAttribute('aria-live', 'polite');\n        document.body.appendChild(liveEl);\n        return liveEl;\n    };\n    LiveAnnouncer.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    LiveAnnouncer.ctorParameters = function () { return [\n        { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LIVE_ANNOUNCER_ELEMENT_TOKEN,] },] },\n        { type: Platform, },\n    ]; };\n    return LiveAnnouncer;\n}());\n/**\n
  * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} liveElement\n * @param {?} platform\n * @return {?}\n */\nfunction LIVE_ANNOUNCER_PROVIDER_FACTORY(parentDispatcher, liveElement, platform) {\n    return parentDispatcher || new LiveAnnouncer(liveElement, platform);\n}\n/**\n * \\@docs-private\n */\nvar LIVE_ANNOUNCER_PROVIDER = {\n    // If there is already a LiveAnnouncer available, use that. Otherwise, provide a new one.\n    provide: LiveAnnouncer,\n    deps: [\n        [new Optional(), new SkipSelf(), LiveAnnouncer],\n        [new Optional(), new Inject(LIVE_ANNOUNCER_ELEMENT_TOKEN)],\n        Platform,\n    ],\n    useFactory: LIVE_ANNOUNCER_PROVIDER_FACTORY\n};\n\n// This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found\n// that a value of around 650ms seems appropriate.\nvar TOUCH_BUFFER_MS = 650;\n/**\n * Monitors mouse and keyboard events to determine the cause of focus events.\n */\nvar FocusMonitor = (function () {
 \n    /**\n     * @param {?} _ngZone\n     * @param {?} _platform\n     */\n    function FocusMonitor(_ngZone, _platform) {\n        var _this = this;\n        this._ngZone = _ngZone;\n        this._platform = _platform;\n        /**\n         * The focus origin that the next focus event is a result of.\n         */\n        this._origin = null;\n        /**\n         * Whether the window has just been focused.\n         */\n        this._windowFocused = false;\n        /**\n         * Weak map of elements being monitored to their info.\n         */\n        this._elementInfo = new WeakMap();\n        this._ngZone.runOutsideAngular(function () { return _this._registerDocumentEvents(); });\n    }\n    /**\n     * Monitors focus on an element and applies appropriate CSS classes.\n     * @param {?} element The element to monitor\n     * @param {?} renderer The renderer to use to apply CSS classes to the element.\n     * @param {?} checkChildren Whether to count the element as focused w
 hen its children are focused.\n     * @return {?} An observable that emits when the focus state of the element changes.\n     *     When the element is blurred, null will be emitted.\n     */\n    FocusMonitor.prototype.monitor = function (element, renderer, checkChildren) {\n        var _this = this;\n        // Do nothing if we're not on the browser platform.\n        if (!this._platform.isBrowser) {\n            return of(null);\n        }\n        // Check if we're already monitoring this element.\n        if (this._elementInfo.has(element)) {\n            var /** @type {?} */ cachedInfo = this._elementInfo.get(element); /** @type {?} */\n            ((cachedInfo)).checkChildren = checkChildren;\n            return ((cachedInfo)).subject.asObservable();\n        }\n        // Create monitored element info.\n        var /** @type {?} */ info = {\n            unlisten: function () { },\n            checkChildren: checkChildren,\n            renderer: renderer,\n            subject
 : new Subject()\n        };\n        this._elementInfo.set(element, info);\n        // Start listening. We need to listen in capture phase since focus events don't bubble.\n        var /** @type {?} */ focusListener = function (event) { return _this._onFocus(event, element); };\n        var /** @type {?} */ blurListener = function (event) { return _this._onBlur(event, element); };\n        this._ngZone.runOutsideAngular(function () {\n            element.addEventListener('focus', focusListener, true);\n            element.addEventListener('blur', blurListener, true);\n        });\n        // Create an unlisten function for later.\n        info.unlisten = function () {\n            element.removeEventListener('focus', focusListener, true);\n            element.removeEventListener('blur', blurListener, true);\n        };\n        return info.subject.asObservable();\n    };\n    /**\n     * Stops monitoring an element and removes all focus classes.\n     * @param {?} element The elemen
 t to stop monitoring.\n     * @return {?}\n     */\n    FocusMonitor.prototype.stopMonitoring = function (element) {\n        var /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (elementInfo) {\n            elementInfo.unlisten();\n            elementInfo.subject.complete();\n            this._setClasses(element);\n            this._elementInfo.delete(element);\n        }\n    };\n    /**\n     * Focuses the element via the specified focus origin.\n     * @param {?} element The element to focus.\n     * @param {?} origin The focus origin.\n     * @return {?}\n     */\n    FocusMonitor.prototype.focusVia = function (element, origin) {\n        this._setOriginForCurrentEventQueue(origin);\n        element.focus();\n    };\n    /**\n     * Register necessary event listeners on the document and window.\n     * @return {?}\n     */\n    FocusMonitor.prototype._registerDocumentEvents = function () {\n        var _this = this;\n        // Do nothing if we're not 
 on the browser platform.\n        if (!this._platform.isBrowser) {\n            return;\n        }\n        // Note: we listen to events in the capture phase so we can detect them even if the user stops\n        // propagation.\n        // On keydown record the origin and clear any touch event that may be in progress.\n        document.addEventListener('keydown', function () {\n            _this._lastTouchTarget = null;\n            _this._setOriginForCurrentEventQueue('keyboard');\n        }, true);\n        // On mousedown record the origin only if there is not touch target, since a mousedown can\n        // happen as a result of a touch event.\n        document.addEventListener('mousedown', function () {\n            if (!_this._lastTouchTarget) {\n                _this._setOriginForCurrentEventQueue('mouse');\n            }\n        }, true);\n        // When the touchstart event fires the focus event is not yet in the event queue. This means\n        // we can't rely on the tri
 ck used above (setting timeout of 0ms). Instead we wait 650ms to\n        // see if a focus happens.\n        document.addEventListener('touchstart', function (event) {\n            if (_this._touchTimeout != null) {\n                clearTimeout(_this._touchTimeout);\n            }\n            _this._lastTouchTarget = event.target;\n            _this._touchTimeout = setTimeout(function () { return _this._lastTouchTarget = null; }, TOUCH_BUFFER_MS);\n        }, true);\n        // Make a note of when the window regains focus, so we can restore the origin info for the\n        // focused element.\n        window.addEventListener('focus', function () {\n            _this._windowFocused = true;\n            setTimeout(function () { return _this._windowFocused = false; }, 0);\n        });\n    };\n    /**\n     * Sets the focus classes on the element based on the given focus origin.\n     * @param {?} element The element to update the classes on.\n     * @param {?=} origin The focus ori
 gin.\n     * @return {?}\n     */\n    FocusMonitor.prototype._setClasses = function (element, origin) {\n        var /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (elementInfo) {\n            var /** @type {?} */ toggleClass = function (className, shouldSet) {\n                shouldSet ? elementInfo.renderer.addClass(element, className) :\n                    elementInfo.renderer.removeClass(element, className);\n            };\n            toggleClass('cdk-focused', !!origin);\n            toggleClass('cdk-touch-focused', origin === 'touch');\n            toggleClass('cdk-keyboard-focused', origin === 'keyboard');\n            toggleClass('cdk-mouse-focused', origin === 'mouse');\n            toggleClass('cdk-program-focused', origin === 'program');\n        }\n    };\n    /**\n     * Sets the origin and schedules an async function to clear it at the end of the event queue.\n     * @param {?} origin The origin to set.\n     * @return {?}\n     */\n   
  FocusMonitor.prototype._setOriginForCurrentEventQueue = function (origin) {\n        var _this = this;\n        this._origin = origin;\n        setTimeout(function () { return _this._origin = null; }, 0);\n    };\n    /**\n     * Checks whether the given focus event was caused by a touchstart event.\n     * @param {?} event The focus event to check.\n     * @return {?} Whether the event was caused by a touch.\n     */\n    FocusMonitor.prototype._wasCausedByTouch = function (event) {\n        // Note(mmalerba): This implementation is not quite perfect, there is a small edge case.\n        // Consider the following dom structure:\n        //\n        // <div #parent tabindex=\"0\" cdkFocusClasses>\n        //   <div #child (click)=\"#parent.focus()\"></div>\n        // </div>\n        //\n        // If the user touches the #child element and the #parent is programmatically focused as a\n        // result, this code will still consider it to have been caused by the touch event and wi
 ll\n        // apply the cdk-touch-focused class rather than the cdk-program-focused class. This is a\n        // relatively small edge-case that can be worked around by using\n        // focusVia(parentEl, renderer,  'program') to focus the parent element.\n        //\n        // If we decide that we absolutely must handle this case correctly, we can do so by listening\n        // for the first focus event after the touchstart, and then the first blur event after that\n        // focus event. When that blur event fires we know that whatever follows is not a result of the\n        // touchstart.\n        var /** @type {?} */ focusTarget = event.target;\n        return this._lastTouchTarget instanceof Node && focusTarget instanceof Node &&\n            (focusTarget === this._lastTouchTarget || focusTarget.contains(this._lastTouchTarget));\n    };\n    /**\n     * Handles focus events on a registered element.\n     * @param {?} event The focus event.\n     * @param {?} element The mon
 itored element.\n     * @return {?}\n     */\n    FocusMonitor.prototype._onFocus = function (event, element) {\n        // NOTE(mmalerba): We currently set the classes based on the focus origin of the most recent\n        // focus event affecting the monitored element. If we want to use the origin of the first event\n        // instead we should check for the cdk-focused class here and return if the element already has\n        // it. (This only matters for elements that have includesChildren = true).\n        // If we are not counting child-element-focus as focused, make sure that the event target is the\n        // monitored element itself.\n        var /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (!elementInfo || (!elementInfo.checkChildren && element !== event.target)) {\n            return;\n        }\n        // If we couldn't detect a cause for the focus event, it's due to one of three reasons:\n        // 1) The window has just regained focus, 
 in which case we want to restore the focused state of\n        //    the element from before the window blurred.\n        // 2) It was caused by a touch event, in which case we mark the origin as 'touch'.\n        // 3) The element was programmatically focused, in which case we should mark the origin as\n        //    'program'.\n        if (!this._origin) {\n            if (this._windowFocused && this._lastFocusOrigin) {\n                this._origin = this._lastFocusOrigin;\n            }\n            else if (this._wasCausedByTouch(event)) {\n                this._origin = 'touch';\n            }\n            else {\n                this._origin = 'program';\n            }\n        }\n        this._setClasses(element, this._origin);\n        elementInfo.subject.next(this._origin);\n        this._lastFocusOrigin = this._origin;\n        this._origin = null;\n    };\n    /**\n     * Handles blur events on a registered element.\n     * @param {?} event The blur event.\n     * @param
  {?} element The monitored element.\n     * @return {?}\n     */\n    FocusMonitor.prototype._onBlur = function (event, element) {\n        // If we are counting child-element-focus as focused, make sure that we aren't just blurring in\n        // order to focus another child of the monitored element.\n        var /** @type {?} */ elementInfo = this._elementInfo.get(element);\n        if (!elementInfo || (elementInfo.checkChildren && event.relatedTarget instanceof Node &&\n            element.contains(event.relatedTarget))) {\n            return;\n        }\n        this._setClasses(element);\n        elementInfo.subject.next(null);\n    };\n    FocusMonitor.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    FocusMonitor.ctorParameters = function () { return [\n        { type: NgZone, },\n        { type: Platform, },\n    ]; };\n    return FocusMonitor;\n}());\n/**\n * Directive that determines how a particular element was focused (via k
 eyboard, mouse, touch, or\n * programmatically) and adds corresponding classes to the element.\n *\n * There are two variants of this directive:\n * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is\n *    focused.\n * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.\n */\nvar CdkMonitorFocus = (function () {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _focusMonitor\n     * @param {?} renderer\n     */\n    function CdkMonitorFocus(_elementRef, _focusMonitor, renderer) {\n        var _this = this;\n        this._elementRef = _elementRef;\n        this._focusMonitor = _focusMonitor;\n        this.cdkFocusChange = new EventEmitter();\n        this._monitorSubscription = this._focusMonitor.monitor(this._elementRef.nativeElement, renderer, this._elementRef.nativeElement.hasAttribute('cdkMonitorSubtreeFocus'))\n            .subscribe(function (origin) { return _this.cdkFocusChang
 e.emit(origin); });\n    }\n    /**\n     * @return {?}\n     */\n    CdkMonitorFocus.prototype.ngOnDestroy = function () {\n        this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);\n        this._monitorSubscription.unsubscribe();\n    };\n    CdkMonitorFocus.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkMonitorFocus.ctorParameters = function () { return [\n        { type: ElementRef, },\n        { type: FocusMonitor, },\n        { type: Renderer2, },\n    ]; };\n    CdkMonitorFocus.propDecorators = {\n        'cdkFocusChange': [{ type: Output },],\n    };\n    return CdkMonitorFocus;\n}());\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} ngZone\n * @param {?} platform\n * @return {?}\n */\nfunction FOCUS_MONITOR_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {\n    re
 turn parentDispatcher || new FocusMonitor(ngZone, platform);\n}\n/**\n * \\@docs-private\n */\nvar FOCUS_MONITOR_PROVIDER = {\n    // If there is already a FocusMonitor available, use that. Otherwise, provide a new one.\n    provide: FocusMonitor,\n    deps: [[new Optional(), new SkipSelf(), FocusMonitor], NgZone, Platform],\n    useFactory: FOCUS_MONITOR_PROVIDER_FACTORY\n};\n\nvar A11yModule = (function () {\n    function A11yModule() {\n    }\n    A11yModule.decorators = [\n        { type: NgModule, args: [{\n                    imports: [CommonModule, PlatformModule],\n                    declarations: [FocusTrapDirective, FocusTrapDeprecatedDirective, CdkMonitorFocus],\n                    exports: [FocusTrapDirective, FocusTrapDeprecatedDirective, CdkMonitorFocus],\n                    providers: [\n                        InteractivityChecker,\n                        FocusTrapFactory,\n                        AriaDescriber,\n                        LIVE_ANNOUNCER_PROVIDER,\n
                         ARIA_DESCRIBER_PROVIDER,\n                        FOCUS_MONITOR_PROVIDER,\n                    ]\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    A11yModule.ctorParameters = function () { return []; };\n    return A11yModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ActiveDescendantKeyManager, MESSAGES_CONTAINER_ID, CDK_DESCRIBEDBY_ID_PREFIX, CDK_DESCRIBEDBY_HOST_ATTRIBUTE, AriaDescriber, ARIA_DESCRIBER_PROVIDER_FACTORY, ARIA_DESCRIBER_PROVIDER, isFakeMousedownFromScreenReader, FocusKeyManager, FocusTrap, FocusTrapFactory, FocusTrapDeprecatedDirective, FocusTrapDirective, InteractivityChecker, ListKeyManager, LIVE_ANNOUNCER_ELEMENT_TOKEN, LiveAnnouncer, LIVE_ANNOUNCER_PROVIDER_FACTORY, LIVE_ANNOUNCER_PROVIDER, TOUCH_BUFFER_MS, FocusMonitor, CdkMonitorFocus, FOCUS_MONITOR_PROVIDER_FACTORY, FOCUS_MONITOR_PROVIDER, A11yModule };\n//# sourceMappingURL=a11y.es5.js.map\n"],"names":["Subject","Subscription","R
 xChain","doOperator","debounceTime","filter","map","DOWN_ARROW","UP_ARROW","TAB","A","Z","ZERO","NINE","Injectable","Platform","Optional","SkipSelf","first","NgZone","coerceBooleanProperty","Directive","ElementRef","Input","InjectionToken","Inject","of","EventEmitter","Renderer2","Output","NgModule","CommonModule","PlatformModule"],"mappings":"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

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/@angular/animations.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations.es5.js.map b/node_modules/@angular/animations/@angular/animations.es5.js.map
new file mode 100644
index 0000000..d258444
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"animations.es5.js","sources":["../../../../packages/animations/public_api.ts","../../../../packages/animations/src/animations.ts","../../../../packages/animations/src/players/animation_group_player.ts","../../../../packages/animations/src/private_export.ts","../../../../packages/animations/src/players/animation_player.ts","../../../../packages/animations/src/util.ts","../../../../packages/animations/src/animation_metadata.ts","../../../../packages/animations/src/animation_builder.ts"],"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/**\n * @module\n * @description\n * Entry point for all public APIs of the animation package.\n */\nexport {AnimationBuilder,AnimationFactory,AnimationEvent,AUTO_STYLE,AnimateChildOptions,AnimateTimings,AnimationAnimateChildMetadata,AnimationAnimateMetad
 ata,AnimationAnimateRefMetadata,AnimationGroupMetadata,AnimationKeyframesSequenceMetadata,AnimationMetadata,AnimationMetadataType,AnimationOptions,AnimationQueryMetadata,AnimationQueryOptions,AnimationReferenceMetadata,AnimationSequenceMetadata,AnimationStaggerMetadata,AnimationStateMetadata,AnimationStyleMetadata,AnimationTransitionMetadata,AnimationTriggerMetadata,animate,animateChild,animation,group,keyframes,query,sequence,stagger,state,style,transition,trigger,useAnimation,ɵStyleData,AnimationPlayer,NoopAnimationPlayer,ɵAnimationGroupPlayer,ɵPRE_STYLE} from './src/animations';\n","/**\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/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation package.\n */\nexport {AnimationBuilder, AnimationFactory} from './animation_builder';\nexport {Anim
 ationEvent} from './animation_event';\nexport {AUTO_STYLE, AnimateChildOptions, AnimateTimings, AnimationAnimateChildMetadata, AnimationAnimateMetadata, AnimationAnimateRefMetadata, AnimationGroupMetadata, AnimationKeyframesSequenceMetadata, AnimationMetadata, AnimationMetadataType, AnimationOptions, AnimationQueryMetadata, AnimationQueryOptions, AnimationReferenceMetadata, AnimationSequenceMetadata, AnimationStaggerMetadata, AnimationStateMetadata, AnimationStyleMetadata, AnimationTransitionMetadata, AnimationTriggerMetadata, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, ɵStyleData} from './animation_metadata';\nexport {AnimationPlayer, NoopAnimationPlayer} from './players/animation_player';\n\nexport {ɵAnimationGroupPlayer,ɵPRE_STYLE} from './private_export';\n","/**\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\nimport {scheduleMicroTask} from '../util';\nimport {AnimationPlayer} from './animation_player';\nexport class AnimationGroupPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _finished = false;\nprivate _started = false;\nprivate _destroyed = false;\nprivate _onDestroyFns: Function[] = [];\npublic parentPlayer: AnimationPlayer|null = null;\npublic totalTime: number = 0;\n/**\n * @param {?} _players\n */\nconstructor(private _players: AnimationPlayer[]) {\n    let doneCount = 0;\n    let destroyCount = 0;\n    let startCount = 0;\n    const total = this._players.length;\n\n    if (total == 0) {\n      scheduleMicroTask(() => this._onFinish());\n    } else {\n      this._players.forEach(player => {\n        player.parentPlayer = this;\n        player.onDone(() => {\n          if (++doneCount >= total) {\n            this._onFinish();\n    
       }\n        });\n        player.onDestroy(() => {\n          if (++destroyCount >= total) {\n            this._onDestroy();\n          }\n        });\n        player.onStart(() => {\n          if (++startCount >= total) {\n            this._onStart();\n          }\n        });\n      });\n    }\n\n    this.totalTime = this._players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n  }\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._finished) {\n      this._finished = true;\n      this._onDoneFns.forEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @return {?}\n */\ninit(): void { this._players.forEach(player => player.init()); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void { this._onStartFns.push(fn); }\n/**\n * @return {?}\n */\nprivate _onStart() {\n    if (!this.hasStarted()) {\n      this._onStartFns.forEach(fn => fn());\n      this._onStartFns = [];\n      this._started = true;\n    }\n  }\n/**\
 n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void { this._onDoneFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void { this._onDestroyFns.push(fn); }\n/**\n * @return {?}\n */\nhasStarted() { return this._started; }\n/**\n * @return {?}\n */\nplay() {\n    if (!this.parentPlayer) {\n      this.init();\n    }\n    this._onStart();\n    this._players.forEach(player => player.play());\n  }\n/**\n * @return {?}\n */\npause(): void { this._players.forEach(player => player.pause()); }\n/**\n * @return {?}\n */\nrestart(): void { this._players.forEach(player => player.restart()); }\n/**\n * @return {?}\n */\nfinish(): void {\n    this._onFinish();\n    this._players.forEach(player => player.finish());\n  }\n/**\n * @return {?}\n */\ndestroy(): void { this._onDestroy(); }\n/**\n * @return {?}\n */\nprivate _onDestroy() {\n    if (!this._destroyed) {\n      this._destroyed = true;\n      this._onFinish();\n      this._players.forEach
 (player => player.destroy());\n      this._onDestroyFns.forEach(fn => fn());\n      this._onDestroyFns = [];\n    }\n  }\n/**\n * @return {?}\n */\nreset(): void {\n    this._players.forEach(player => player.reset());\n    this._destroyed = false;\n    this._finished = false;\n    this._started = false;\n  }\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: number): void {\n    const /** @type {?} */ timeAtPosition = p * this.totalTime;\n    this._players.forEach(player => {\n      const /** @type {?} */ position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n      player.setPosition(position);\n    });\n  }\n/**\n * @return {?}\n */\ngetPosition(): number {\n    let /** @type {?} */ min = 0;\n    this._players.forEach(player => {\n      const /** @type {?} */ p = player.getPosition();\n      min = Math.min(p, min);\n    });\n    return min;\n  }\n/**\n * @return {?}\n */\nget players(): AnimationPlayer[] { return this._players; }\n/**\n * @return
  {?}\n */\nbeforeDestroy(): void {\n    this.players.forEach(player => {\n      if (player.beforeDestroy) {\n        player.beforeDestroy();\n      }\n    });\n  }\n}\n\nfunction AnimationGroupPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationGroupPlayer.prototype._onDoneFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype._onStartFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype._finished;\n/** @type {?} */\nAnimationGroupPlayer.prototype._started;\n/** @type {?} */\nAnimationGroupPlayer.prototype._destroyed;\n/** @type {?} */\nAnimationGroupPlayer.prototype._onDestroyFns;\n/** @type {?} */\nAnimationGroupPlayer.prototype.parentPlayer;\n/** @type {?} */\nAnimationGroupPlayer.prototype.totalTime;\n/** @type {?} */\nAnimationGroupPlayer.prototype._players;\n}\n\n","/**\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/l
 icense\n */\nexport {AnimationGroupPlayer as ɵAnimationGroupPlayer} from './players/animation_group_player';\nexport const /** @type {?} */ ɵPRE_STYLE = '!';\n","/**\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\nimport {scheduleMicroTask} from '../util';\n\n/**\n * AnimationPlayer controls an animation sequence that was produced from a programmatic animation.\n * (see {@link AnimationBuilder AnimationBuilder} for more information on how to create programmatic\n * animations.)\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationPlayer {\n  onDone(fn: () => void): void;\n  onStart(fn: () => void): void;\n  onDestroy(fn: () => void): void;\n  init(): void;\n  hasStarted(): boolean;\n  play(): void;\n  pause(): void;\n  restart(): void;\n  finish(): void;\n  destroy(): void;\n  reset(): vo
 id;\n  setPosition(p: any /** TODO #9100 */): void;\n  getPosition(): number;\n  parentPlayer: AnimationPlayer|null;\n  readonly totalTime: number;\n  beforeDestroy?: () => any;\n}\n/**\n * \\@experimental Animation support is experimental.\n */\nexport class NoopAnimationPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _onDestroyFns: Function[] = [];\nprivate _started = false;\nprivate _destroyed = false;\nprivate _finished = false;\npublic parentPlayer: AnimationPlayer|null = null;\npublic totalTime = 0;\nconstructor() {}\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._finished) {\n      this._finished = true;\n      this._onDoneFns.forEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void { this._onStartFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void { this._onDoneFns.push
 (fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void { this._onDestroyFns.push(fn); }\n/**\n * @return {?}\n */\nhasStarted(): boolean { return this._started; }\n/**\n * @return {?}\n */\ninit(): void {}\n/**\n * @return {?}\n */\nplay(): void {\n    if (!this.hasStarted()) {\n      this.triggerMicrotask();\n      this._onStart();\n    }\n    this._started = true;\n  }\n/**\n * @return {?}\n */\ntriggerMicrotask() { scheduleMicroTask(() => this._onFinish()); }\n/**\n * @return {?}\n */\nprivate _onStart() {\n    this._onStartFns.forEach(fn => fn());\n    this._onStartFns = [];\n  }\n/**\n * @return {?}\n */\npause(): void {}\n/**\n * @return {?}\n */\nrestart(): void {}\n/**\n * @return {?}\n */\nfinish(): void { this._onFinish(); }\n/**\n * @return {?}\n */\ndestroy(): void {\n    if (!this._destroyed) {\n      this._destroyed = true;\n      if (!this.hasStarted()) {\n        this._onStart();\n      }\n      this.finish();\n      this._onDestroyFns.f
 orEach(fn => fn());\n      this._onDestroyFns = [];\n    }\n  }\n/**\n * @return {?}\n */\nreset(): void {}\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: number): void {}\n/**\n * @return {?}\n */\ngetPosition(): number { return 0; }\n}\n\nfunction NoopAnimationPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nNoopAnimationPlayer.prototype._onDoneFns;\n/** @type {?} */\nNoopAnimationPlayer.prototype._onStartFns;\n/** @type {?} */\nNoopAnimationPlayer.prototype._onDestroyFns;\n/** @type {?} */\nNoopAnimationPlayer.prototype._started;\n/** @type {?} */\nNoopAnimationPlayer.prototype._destroyed;\n/** @type {?} */\nNoopAnimationPlayer.prototype._finished;\n/** @type {?} */\nNoopAnimationPlayer.prototype.parentPlayer;\n/** @type {?} */\nNoopAnimationPlayer.prototype.totalTime;\n}\n\n","\n/**\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 ht
 tps://angular.io/license\n * @param {?} cb\n * @return {?}\n */\nexport function scheduleMicroTask(cb: () => any) {\n  Promise.resolve(null).then(cb);\n}\n","/**\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 interface ɵStyleData { [key: string]: string|number; }\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are created internally\n * within the Angular animation DSL.\n *\n * @experimental Animation support is experimental.\n */\nexport declare type AnimateTimings = {\n  duration: number,\n  delay: number,\n  easing: string | null\n};\n\n/**\n * `AnimationOptions` represents options that can be passed into most animation DSL methods.\n * When options are provided, the delay value of an animation can be changed and animation input\n * parameters can be passed in to change styling 
 and timing data when an animation is started.\n *\n * The following animation DSL functions are able to accept animation option data:\n *\n * - {@link transition transition()}\n * - {@link sequence sequence()}\n * - {@link group group()}\n * - {@link query query()}\n * - {@link animation animation()}\n * - {@link useAnimation useAnimation()}\n * - {@link animateChild animateChild()}\n *\n * Programmatic animations built using {@link AnimationBuilder the AnimationBuilder service} also\n * make use of AnimationOptions.\n *\n * @experimental Animation support is experimental.\n */\nexport declare interface AnimationOptions {\n  delay?: number|string;\n  params?: {[name: string]: any};\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are created internally\n * within the Angular animation DSL when {@link animateChild animateChild()} is used.\n *\n * @experimental Animation support is experimental.\n */\nexport declare interface AnimateChildOptions
  extends AnimationOptions { duration?: number|string; }\n\n/**\n * Metadata representing the entry of animations. Usages of this enum are created\n * each time an animation DSL function is used.\n *\n * @experimental Animation support is experimental.\n */\nexport const enum AnimationMetadataType {\n  State = 0,\n  Transition = 1,\n  Sequence = 2,\n  Group = 3,\n  Animate = 4,\n  Keyframes = 5,\n  Style = 6,\n  Trigger = 7,\n  Reference = 8,\n  AnimateChild = 9,\n  AnimateRef = 10,\n  Query = 11,\n  Stagger = 12\n}\n/**\n * \\@experimental Animation support is experimental.\n */\nexport const AUTO_STYLE = '*';\n\n/**\n * @experimental Animation support is experimental.\n */\nexport interface AnimationMetadata { type: AnimationMetadataType; }\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link trigger trigger animation function} is called.\n *\n * @experimental Animation support is experimental.\
 n */\nexport interface AnimationTriggerMetadata extends AnimationMetadata {\n  name: string;\n  definitions: AnimationMetadata[];\n  options: {params?: {[name: string]: any}}|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link state state animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationStateMetadata extends AnimationMetadata {\n  name: string;\n  styles: AnimationStyleMetadata;\n  options?: {params: {[name: string]: any}};\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link transition transition animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationTransitionMetadata extends AnimationMetadata {\n  expr: string;\n  animation: AnimationMetadata|AnimationMetadata[
 ];\n  options: AnimationOptions|null;\n}\n\n/**\n * @experimental Animation support is experimental.\n */\nexport interface AnimationReferenceMetadata extends AnimationMetadata {\n  animation: AnimationMetadata|AnimationMetadata[];\n  options: AnimationOptions|null;\n}\n\n/**\n * @experimental Animation support is experimental.\n */\nexport interface AnimationQueryMetadata extends AnimationMetadata {\n  selector: string;\n  animation: AnimationMetadata|AnimationMetadata[];\n  options: AnimationQueryOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link keyframes keyframes animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationKeyframesSequenceMetadata extends AnimationMetadata {\n  steps: AnimationStyleMetadata[];\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via
  the\n * animation DSL when the {@link style style animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationStyleMetadata extends AnimationMetadata {\n  styles: '*'|{[key: string]: string | number}|Array<{[key: string]: string | number}|'*'>;\n  offset: number|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link animate animate animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationAnimateMetadata extends AnimationMetadata {\n  timings: string|number|AnimateTimings;\n  styles: AnimationStyleMetadata|AnimationKeyframesSequenceMetadata|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link animateChild animateChild animation function} is called.\n *\n * @experimental Ani
 mation support is experimental.\n */\nexport interface AnimationAnimateChildMetadata extends AnimationMetadata {\n  options: AnimationOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link useAnimation useAnimation animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationAnimateRefMetadata extends AnimationMetadata {\n  animation: AnimationReferenceMetadata;\n  options: AnimationOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link sequence sequence animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationSequenceMetadata extends AnimationMetadata {\n  steps: AnimationMetadata[];\n  options: AnimationOptions|null;\n}\n\n/**\n * Metadata representing the en
 try of animations. Instances of this interface are provided via the\n * animation DSL when the {@link group group animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport interface AnimationGroupMetadata extends AnimationMetadata {\n  steps: AnimationMetadata[];\n  options: AnimationOptions|null;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link query query animation function} is called.\n *\n * @experimental Animation support is experimental.\n */\nexport declare interface AnimationQueryOptions extends AnimationOptions {\n  optional?: boolean;\n  /**\n   * Used to limit the total amount of results from the start of the query list.\n   *\n   * If a negative value is provided then the queried results will be limited from the\n   * end of the query list towards the beginning (e.g. if `limit: -3` is used then the\n   * final 3 (or less) queried resul
 ts will be used for the animation).\n   */\n  limit?: number;\n}\n\n/**\n * Metadata representing the entry of animations. Instances of this interface are provided via the\n * animation DSL when the {@link stagger stagger animation function} is called.\n *\n* @experimental Animation support is experimental.\n*/\nexport interface AnimationStaggerMetadata extends AnimationMetadata {\n  timings: string|number;\n  animation: AnimationMetadata|AnimationMetadata[];\n}\n/**\n * `trigger` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the\n * {\\@link Component#animations component animations metadata page} to gain a better\n * understanding of how animations in Angular are used.\n * \n * `trigger` Creates an animation trigger which will a list of {\\@link state state} and\n * {\\@link transition transition} entries that will be evaluated when the expression\n * bound to the trigger
  changes.\n * \n * Triggers are registered within the component annotation data under the\n * {\\@link Component#animations animations section}. An animation trigger can be placed on an element\n * within a template by referencing the name of the trigger followed by the expression value that\n * the\n * trigger is bound to (in the form of `[\\@triggerName]=\"expression\"`.\n * \n * Animation trigger bindings strigify values and then match the previous and current values against\n * any linked transitions. If a boolean value is provided into the trigger binding then it will both\n * be represented as `1` or `true` and `0` or `false` for a true and false boolean values\n * respectively.\n * \n * ### Usage\n * \n * `trigger` will create an animation trigger reference based on the provided `name` value. The\n * provided `animation` value is expected to be an array consisting of {\\@link state state} and\n * {\\@link transition transition} declarations.\n * \n * ```typescript\n * \\@Comp
 onent({ \n *   selector: 'my-component',\n *   templateUrl: 'my-component-tpl.html',\n *   animations: [\n *     trigger(\"myAnimationTrigger\", [\n *       state(...),\n *       state(...),\n *       transition(...),\n *       transition(...)\n *     ])\n *   ]\n * })\n * class MyComponent {\n *   myStatusExp = \"something\";\n * }\n * ```\n * \n * The template associated with this component will make use of the `myAnimationTrigger` animation\n * trigger by binding to an element within its template code.\n * \n * ```html\n * <!-- somewhere inside of my-component-tpl.html -->\n * <div [\\@myAnimationTrigger]=\"myStatusExp\">...</div>\n * ```\n * \n * ## Disable Animations\n * A special animation control binding called `\\@.disabled` can be placed on an element which will\n * then disable animations for any inner animation triggers situated within the element as well as\n * any animations on the element itself.\n * \n * When true, the `\\@.disabled` binding will prevent all animation
 s from rendering. The example\n * below shows how to use this feature:\n * \n * ```ts\n * \\@Component({ \n *   selector: 'my-component',\n *   template: `\n *     <div [\\@.disabled]=\"isDisabled\">\n *       <div [\\@childAnimation]=\"exp\"></div>\n *     </div>\n *   `,\n *   animations: [\n *     trigger(\"childAnimation\", [\n *       // ...\n *     ])\n *   ]\n * })\n * class MyComponent {\n *   isDisabled = true;\n *   exp = '...';\n * }\n * ```\n * \n * The `\\@childAnimation` trigger will not animate because `\\@.disabled` prevents it from happening\n * (when true).\n * \n * Note that `\\@.disbled` will only disable all animations (this means any animations running on\n * the same element will also be disabled).\n * \n * ### Disabling Animations Application-wide\n * When an area of the template is set to have animations disabled, **all** inner components will\n * also have their animations disabled as well. This means that all animations for an angular\n * application can b
 e disabled by placing a host binding set on `\\@.disabled` on the topmost Angular\n * component.\n * \n * ```ts\n * import {Component, HostBinding} from '\\@angular/core';\n * \n * \\@Component({ \n *   selector: 'app-component',\n *   templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n *   \\@HostBinding('\\@.disabled')\n *   public animationsDisabled = true;\n * }\n * ```\n * \n * ### What about animations that us `query()` and `animateChild()`?\n * Despite inner animations being disabled, a parent animation can {\\@link query query} for inner\n * elements located in disabled areas of the template and still animate them as it sees fit. This is\n * also the case for when a sub animation is queried by a parent and then later animated using {\\@link\n * animateChild animateChild}.\n * \n * \\@experimental Animation support is experimental.\n * @param {?} name\n * @param {?} definitions\n * @return {?}\n */\nexport function trigger(name: string, definitions: Animation
 Metadata[]): AnimationTriggerMetadata {\n  return {type: AnimationMetadataType.Trigger, name, definitions, options: {}};\n}\n/**\n * `animate` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `animate` specifies an animation step that will apply the provided `styles` data for a given\n * amount of time based on the provided `timing` expression value. Calls to `animate` are expected\n * to be used within {\\@link sequence an animation sequence}, {\\@link group group}, or {\\@link\n * transition transition}.\n * \n * ### Usage\n * \n * The `animate` function accepts two input parameters: `timing` and `styles`:\n * \n * - `timing` is a string based value that can be a combination of a duration with optional delay\n * and easi
 ng values. The format for the expression breaks down to `duration delay easing`\n * (therefore a value such as `1s 100ms ease-out` will be parse itself into `duration=1000,\n * delay=100, easing=ease-out`. If a numeric value is provided then that will be used as the\n * `duration` value in millisecond form.\n * - `styles` is the style input data which can either be a call to {\\@link style style} or {\\@link\n * keyframes keyframes}. If left empty then the styles from the destination state will be collected\n * and used (this is useful when describing an animation step that will complete an animation by\n * {\\@link transition#the-final-animate-call animating to the final state}).\n * \n * ```typescript\n * // various functions for specifying timing data\n * animate(500, style(...))\n * animate(\"1s\", style(...))\n * animate(\"100ms 0.5s\", style(...))\n * animate(\"5s ease\", style(...))\n * animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\", style(...))\n * \n * // either style() o
 f keyframes() can be used\n * animate(500, style({ background: \"red\" }))\n * animate(500, keyframes([\n *   style({ background: \"blue\" })),\n *   style({ background: \"red\" }))\n * ])\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} timings\n * @param {?=} styles\n * @return {?}\n */\nexport function animate(\n    timings: string | number, styles: AnimationStyleMetadata | AnimationKeyframesSequenceMetadata |\n        null = null): AnimationAnimateMetadata {\n  return {type: AnimationMetadataType.Animate, styles, timings};\n}\n/**\n * `group` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `group` spec
 ifies a list of animation steps that are all run in parallel. Grouped animations are\n * useful when a series of styles must be animated/closed off at different starting/ending times.\n * \n * The `group` function can either be used within a {\\@link sequence sequence} or a {\\@link transition\n * transition} and it will only continue to the next instruction once all of the inner animation\n * steps have completed.\n * \n * ### Usage\n * \n * The `steps` data that is passed into the `group` animation function can either consist of {\\@link\n * style style} or {\\@link animate animate} function calls. Each call to `style()` or `animate()`\n * within a group will be executed instantly (use {\\@link keyframes keyframes} or a {\\@link\n * animate#usage animate() with a delay value} to offset styles to be applied at a later time).\n * \n * ```typescript\n * group([\n *   animate(\"1s\", { background: \"black\" }))\n *   animate(\"2s\", { color: \"white\" }))\n * ])\n * ```\n * \n * {\\@e
 xample core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nexport function group(\n    steps: AnimationMetadata[], options: AnimationOptions | null = null): AnimationGroupMetadata {\n  return {type: AnimationMetadataType.Group, steps, options};\n}\n/**\n * `sequence` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used by\n * default when an array is passed as animation data into {\\@link transition transition}.)\n * \n * The `sequence` function can either be used within a {\\@link group group} or a {
 \\@link transition\n * transition} and it will only continue to the next instruction once each of the inner animation\n * steps have completed.\n * \n * To perform animation styling in parallel with other animation steps then have a look at the\n * {\\@link group group} animation function.\n * \n * ### Usage\n * \n * The `steps` data that is passed into the `sequence` animation function can either consist of\n * {\\@link style style} or {\\@link animate animate} function calls. A call to `style()` will apply the\n * provided styling data immediately while a call to `animate()` will apply its styling data over a\n * given time depending on its timing data.\n * \n * ```typescript\n * sequence([\n *   style({ opacity: 0 })),\n *   animate(\"1s\", { opacity: 1 }))\n * ])\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\n
 export function sequence(steps: AnimationMetadata[], options: AnimationOptions | null = null):\n    AnimationSequenceMetadata {\n  return {type: AnimationMetadataType.Sequence, steps, options};\n}\n/**\n * `style` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `style` declares a key/value object containing CSS properties/styles that can then be used for\n * {\\@link state animation states}, within an {\\@link sequence animation sequence}, or as styling data\n * for both {\\@link animate animate} and {\\@link keyframes keyframes}.\n * \n * ### Usage\n * \n * `style` takes in a key/value string map as data and expects one or more CSS property/value pairs\n * to be defined.\n * \n * ```typescript\n * // string values are us
 ed for css properties\n * style({ background: \"red\", color: \"blue\" })\n * \n * // numerical (pixel) values are also supported\n * style({ width: 100, height: 0 })\n * ```\n * \n * #### Auto-styles (using `*`)\n * \n * When an asterix (`*`) character is used as a value then it will be detected from the element\n * being animated and applied as animation data when the animation starts.\n * \n * This feature proves useful for a state depending on layout and/or environment factors; in such\n * cases the styles are calculated just before the animation starts.\n * \n * ```typescript\n * // the steps below will animate from 0 to the\n * // actual height of the element\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} tokens\n * @return {?}\n */\nexport function style(\n    tokens: '*' | {[key: string
 ]: string | number} |\n    Array<'*'|{[key: string]: string | number}>): AnimationStyleMetadata {\n  return {type: AnimationMetadataType.Style, styles: tokens, offset: null};\n}\n/**\n * `state` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `state` declares an animation state within the given trigger. When a state is active within a\n * component then its associated styles will persist on the element that the trigger is attached to\n * (even when the animation ends).\n * \n * To animate between states, have a look at the animation {\\@link transition transition} DSL\n * function. To register states to an animation trigger please have a look at the {\\@link trigger\n * trigger} function.\n * \n * #### The `void` state\n 
 * \n * The `void` state value is a reserved word that angular uses to determine when the element is not\n * apart of the application anymore (e.g. when an `ngIf` evaluates to false then the state of the\n * associated element is void).\n * \n * #### The `*` (default) state\n * \n * The `*` state (when styled) is a fallback state that will be used if the state that is being\n * animated is not declared within the trigger.\n * \n * ### Usage\n * \n * `state` will declare an animation state with its associated styles\n * within the given trigger.\n * \n * - `stateNameExpr` can be one or more state names separated by commas.\n * - `styles` refers to the {\\@link style styling data} that will be persisted on the element once\n * the state has been reached.\n * \n * ```typescript\n * // \"void\" is a reserved name for a state and is used to represent\n * // the state in which an element is detached from from the application.\n * state(\"void\", style({ height: 0 }))\n * \n * // user-defin
 ed states\n * state(\"closed\", style({ height: 0 }))\n * state(\"open, visible\", style({ height: \"*\" }))\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} name\n * @param {?} styles\n * @param {?=} options\n * @return {?}\n */\nexport function state(\n    name: string, styles: AnimationStyleMetadata,\n    options?: {params: {[name: string]: any}}): AnimationStateMetadata {\n  return {type: AnimationMetadataType.State, name, styles, options};\n}\n/**\n * `keyframes` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metadata page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `keyframes` specifies a collection of {\\@link style style} entries each optionally characte
 rized\n * by an `offset` value.\n * \n * ### Usage\n * \n * The `keyframes` animation function is designed to be used alongside the {\\@link animate animate}\n * animation function. Instead of applying animations from where they are currently to their\n * destination, keyframes can describe how each style entry is applied and at what point within the\n * animation arc (much like CSS Keyframe Animations do).\n * \n * For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at what\n * percentage of the animate time the styles will be applied.\n * \n * ```typescript\n * // the provided offset values describe when each backgroundColor value is applied.\n * animate(\"5s\", keyframes([\n *   style({ backgroundColor: \"red\", offset: 0 }),\n *   style({ backgroundColor: \"blue\", offset: 0.2 }),\n *   style({ backgroundColor: \"orange\", offset: 0.3 }),\n *   style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n * \n * Alternatively, if there are no 
 `offset` values used within the style entries then the offsets\n * will be calculated automatically.\n * \n * ```typescript\n * animate(\"5s\", keyframes([\n *   style({ backgroundColor: \"red\" }) // offset = 0\n *   style({ backgroundColor: \"blue\" }) // offset = 0.33\n *   style({ backgroundColor: \"orange\" }) // offset = 0.66\n *   style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n * ```\n * \n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @return {?}\n */\nexport function keyframes(steps: AnimationStyleMetadata[]): AnimationKeyframesSequenceMetadata {\n  return {type: AnimationMetadataType.Keyframes, steps};\n}\n/**\n * `transition` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. If this information is new, please navigate to the {\\@link\n * Component#animations component animations metada
 ta page} to gain a better understanding of\n * how animations in Angular are used.\n * \n * `transition` declares the {\\@link sequence sequence of animation steps} that will be run when the\n * provided `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 =>\n * state2` which consists of two known states (use an asterix (`*`) to refer to a dynamic starting\n * and/or ending state).\n * \n * A function can also be provided as the `stateChangeExpr` argument for a transition and this\n * function will be executed each time a state change occurs. If the value returned within the\n * function is true then the associated animation will be run.\n * \n * Animation transitions are placed within an {\\@link trigger animation trigger}. For an transition\n * to animate to a state value and persist its styles then one or more {\\@link state animation\n * states} is expected to be defined.\n * \n * ### Usage\n * \n * An animation transition is kicked off the `stateCh
 angeExpr` predicate evaluates to true based on\n * what the previous state is and what the current state has become. In other words, if a transition\n * is defined that matches the old/current state criteria then the associated animation will be\n * triggered.\n * \n * ```typescript\n * // all transition/state changes are defined within an animation trigger\n * trigger(\"myAnimationTrigger\", [\n *   // if a state is defined then its styles will be persisted when the\n *   // animation has fully completed itself\n *   state(\"on\", style({ background: \"green\" })),\n *   state(\"off\", style({ background: \"grey\" })),\n * \n *   // a transition animation that will be kicked off when the state value\n *   // bound to \"myAnimationTrigger\" changes from \"on\" to \"off\"\n *   transition(\"on => off\", animate(500)),\n * \n *   // it is also possible to do run the same animation for both directions\n *   transition(\"on <=> off\", animate(500)),\n * \n *   // or to define multiple s
 tates pairs separated by commas\n *   transition(\"on => off, off => void\", animate(500)),\n * \n *   // this is a catch-all state change for when an element is inserted into\n *   // the page and the destination state is unknown\n *   transition(\"void => *\", [\n *     style({ opacity: 0 }),\n *     animate(500)\n *   ]),\n * \n *   // this will capture a state change between any states\n *   transition(\"* => *\", animate(\"1s 0s\")),\n * \n *   // you can also go full out and include a function\n *   transition((fromState, toState) => {\n *     // when `true` then it will allow the animation below to be invoked\n *     return fromState == \"off\" && toState == \"on\";\n *   }, animate(\"1s 0s\"))\n * ])\n * ```\n * \n * The template associated with this component will make use of the `myAnimationTrigger` animation\n * trigger by binding to an element within its template code.\n * \n * ```html\n * <!-- somewhere inside of my-component-tpl.html -->\n * <div [\\@myAnimationTrigger
 ]=\"myStatusExp\">...</div>\n * ```\n * \n * #### The final `animate` call\n * \n * If the final step within the transition steps is a call to `animate()` that **only** uses a\n * timing value with **no style data** then it will be automatically used as the final animation arc\n * for the element to animate itself to the final state. This involves an automatic mix of\n * adding/removing CSS styles so that the element will be in the exact state it should be for the\n * applied state to be presented correctly.\n * \n * ```\n * // start off by hiding the element, but make sure that it animates properly to whatever state\n * // is currently active for \"myAnimationTrigger\"\n * transition(\"void => *\", [\n *   style({ opacity: 0 }),\n *   animate(500)\n * ])\n * ```\n * \n * ### Transition Aliases (`:enter` and `:leave`)\n * \n * Given that enter (insertion) and leave (removal) animations are so common, the `transition`\n * function accepts both `:enter` and `:leave` values which are a
 liases for the `void => *` and `*\n * => void` state changes.\n * \n * ```\n * transition(\":enter\", [\n *   style({ opacity: 0 }),\n *   animate(500, style({ opacity: 1 }))\n * ])\n * transition(\":leave\", [\n *   animate(500, style({ opacity: 0 }))\n * ])\n * ```\n * \n * ### Boolean values\n * if a trigger binding value is a boolean value then it can be matched using a transition\n * expression that compares `true` and `false` or `1` and `0`.\n * \n * ```\n * // in the template\n * <div [\\@openClose]=\"open ? true : false\">...</div>\n * \n * // in the component metadata\n * trigger('openClose', [\n *   state('true', style({ height: '*' })),\n *   state('false', style({ height: '0px' })),\n *   transition('false <=> true', animate(500))\n * ])\n * ```\n * {\\@example core/animation/ts/dsl/animation_example.ts region='Component'}\n * \n * \\@experimental Animation support is experimental.\n * @param {?} stateChangeExpr\n * @param {?} steps\n * @param {?=} options\n * @return {?
 }\n */\nexport function transition(\n    stateChangeExpr: string, steps: AnimationMetadata | AnimationMetadata[],\n    options: AnimationOptions | null = null): AnimationTransitionMetadata {\n  return {type: AnimationMetadataType.Transition, expr: stateChangeExpr, animation: steps, options};\n}\n/**\n * `animation` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language.\n * \n * `var myAnimation = animation(...)` is designed to produce a reusable animation that can be later\n * invoked in another animation or sequence. Reusable animations are designed to make use of\n * animation parameters and the produced animation can be used via the `useAnimation` method.\n * \n * ```\n * var fadeAnimation = animation([\n *   style({ opacity: '{{ start }}' }),\n *   animate('{{ time }}',\n *     style({ opacity: '{{ end }}'}))\n * ], { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n * \n * If parameters are attached to an animation 
 then they act as **default parameter values**. When an\n * animation is invoked via `useAnimation` then parameter values are allowed to be passed in\n * directly. If any of the passed in parameter values are missing then the default values will be\n * used.\n * \n * ```\n * useAnimation(fadeAnimation, {\n *   params: {\n *     time: '2s',\n *     start: 1,\n *     end: 0\n *   }\n * })\n * ```\n * \n * If one or more parameter values are missing before animated then an error will be thrown.\n * \n * \\@experimental Animation support is experimental.\n * @param {?} steps\n * @param {?=} options\n * @return {?}\n */\nexport function animation(\n    steps: AnimationMetadata | AnimationMetadata[],\n    options: AnimationOptions | null = null): AnimationReferenceMetadata {\n  return {type: AnimationMetadataType.Reference, animation: steps, options};\n}\n/**\n * `animateChild` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. It 
 works by allowing a queried element to execute its own\n * animation within the animation sequence.\n * \n * Each time an animation is triggered in angular, the parent animation\n * will always get priority and any child animations will be blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations and then allow the animations to run using `animateChild`.\n * \n * The example HTML code below shows both parent and child elements that have animation\n * triggers that will execute at the same time.\n * \n * ```html\n * <!-- parent-child.component.html -->\n * <button (click)=\"exp =! exp\">Toggle</button>\n * <hr>\n * \n * <div [\\@parentAnimation]=\"exp\">\n *   <header>Hello</header>\n *   <div [\\@childAnimation]=\"exp\">\n *       one\n *   </div>\n *   <div [\\@childAnimation]=\"exp\">\n *       two\n *   </div>\n *   <div [\\@childAnimation]=\"exp\">\n *       three\n *   </div>\n * </div>\n * ```\n * \
 n * Now when the `exp` value changes to true, only the `parentAnimation` animation will animate\n * because it has priority. However, using `query` and `animateChild` each of the inner animations\n * can also fire:\n * \n * ```ts\n * // parent-child.component.ts\n * import {trigger, transition, animate, style, query, animateChild} from '\\@angular/animations';\n * \\@Component({ \n *   selector: 'parent-child-component',\n *   animations: [\n *     trigger('parentAnimation', [\n *       transition('false => true', [\n *         query('header', [\n *           style({ opacity: 0 }),\n *           animate(500, style({ opacity: 1 }))\n *         ]),\n *         query('\\@childAnimation', [\n *           animateChild()\n *         ])\n *       ])\n *     ]),\n *     trigger('childAnimation', [\n *       transition('false => true', [\n *         style({ opacity: 0 }),\n *         animate(500, style({ opacity: 1 }))\n *       ])\n *     ])\n *   ]\n * })\n * class ParentChildCmp {\n *   e
 xp: boolean = false;\n * }\n * ```\n * \n * In the animation code above, when the `parentAnimation` transition kicks off it first queries to\n * find the header element and fades it in. It then finds each of the sub elements that contain the\n * `\\@childAnimation` trigger and then allows for their animations to fire.\n * \n * This example can be further extended by using stagger:\n * \n * ```ts\n * query('\\@childAnimation', stagger(100, [\n *   animateChild()\n * ]))\n * ```\n * \n * Now each of the sub animations start off with respect to the `100ms` staggering step.\n * \n * ## The first frame of child animations\n * When sub animations are executed using `animateChild` the animation engine will always apply the\n * first frame of every sub animation immediately at the start of the animation sequence. This way\n * the parent animation does not need to set any initial styling data on the sub elements before the\n * sub animations kick off.\n * \n * In the example above the first 
 frame of the `childAnimation`'s `false => true` transition\n * consists of a style of `opacity: 0`. This is applied immediately when the `parentAnimation`\n * animation transition sequence starts. Only then when the `\\@childAnimation` is queried and called\n * with `animateChild` will it then animate to its destination of `opacity: 1`.\n * \n * Note that this feature designed to be used alongside {\\@link query query()} and it will only work\n * with animations that are assigned using the Angular animation DSL (this means that CSS keyframes\n * and transitions are not handled by this API).\n * \n * \\@experimental Animation support is experimental.\n * @param {?=} options\n * @return {?}\n */\nexport function animateChild(options: AnimateChildOptions | null = null):\n    AnimationAnimateChildMetadata {\n  return {type: AnimationMetadataType.AnimateChild, options};\n}\n/**\n * `useAnimation` is an animation-specific function that is designed to be used inside of Angular's\n * animat
 ion DSL language. It is used to kick off a reusable animation that is created using {\\@link\n * animation animation()}.\n * \n * \\@experimental Animation support is experimental.\n * @param {?} animation\n * @param {?=} options\n * @return {?}\n */\nexport function useAnimation(\n    animation: AnimationReferenceMetadata,\n    options: AnimationOptions | null = null): AnimationAnimateRefMetadata {\n  return {type: AnimationMetadataType.AnimateRef, animation, options};\n}\n/**\n * `query` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language.\n * \n * query() is used to find one or more inner elements within the current element that is\n * being animated within the sequence. The provided animation steps are applied\n * to the queried element (by default, an array is provided, then this will be\n * treated as an animation sequence).\n * \n * ### Usage\n * \n * query() is designed to collect mutiple elements and works internally 
 by using\n * `element.querySelectorAll`. An additional options object can be provided which\n * can be used to limit the total amount of items to be collected.\n * \n * ```js\n * query('div', [\n *   animate(...),\n *   animate(...)\n * ], { limit: 1 })\n * ```\n * \n * query(), by default, will throw an error when zero items are found. If a query\n * has the `optional` flag set to true then this error will be ignored.\n * \n * ```js\n * query('.some-element-that-may-not-be-there', [\n *   animate(...),\n *   animate(...)\n * ], { optional: true })\n * ```\n * \n * ### Special Selector Values\n * \n * The selector value within a query can collect elements that contain angular-specific\n * characteristics\n * using special pseudo-selectors tokens.\n * \n * These include:\n * \n *  - Querying for newly inserted/removed elements using `query(\":enter\")`/`query(\":leave\")`\n *  - Querying all currently animating elements using `query(\":animating\")`\n *  - Querying elements that cont
 ain an animation trigger using `query(\"\\@triggerName\")`\n *  - Querying all elements that contain an animation triggers using `query(\"\\@*\")`\n *  - Including the current element into the animation sequence using `query(\":self\")`\n * \n * \n *  Each of these pseudo-selector tokens can be merged together into a combined query selector\n * string:\n * \n *  ```\n *  query(':self, .record:enter, .record:leave, \\@subTrigger', [...])\n *  ```\n * \n * ### Demo\n * \n * ```\n * \\@Component({ \n *   selector: 'inner',\n *   template: `\n *     <div [\\@queryAnimation]=\"exp\">\n *       <h1>Title</h1>\n *       <div class=\"content\">\n *         Blah blah blah\n *       </div>\n *     </div>\n *   `,\n *   animations: [\n *    trigger('queryAnimation', [\n *      transition('* => goAnimate', [\n *        // hide the inner elements\n *        query('h1', style({ opacity: 0 })),\n *        query('.content', style({ opacity: 0 })),\n * \n *        // animate the inner elements in, o
 ne by one\n *        query('h1', animate(1000, style({ opacity: 1 })),\n *        query('.content', animate(1000, style({ opacity: 1 })),\n *      ])\n *    ])\n *  ]\n * })\n * class Cmp {\n *   exp = '';\n * \n *   goAnimate() {\n *     this.exp = 'goAnimate';\n *   }\n * }\n * ```\n * \n * \\@experimental Animation support is experimental.\n * @param {?} selector\n * @param {?} animation\n * @param {?=} options\n * @return {?}\n */\nexport function query(\n    selector: string, animation: AnimationMetadata | AnimationMetadata[],\n    options: AnimationQueryOptions | null = null): AnimationQueryMetadata {\n  return {type: AnimationMetadataType.Query, selector, animation, options};\n}\n/**\n * `stagger` is an animation-specific function that is designed to be used inside of Angular's\n * animation DSL language. It is designed to be used inside of an animation {\\@link query query()}\n * and works by issuing a timing gap between after each queried item is animated.\n * \n * ### Usag
 e\n * \n * In the example below there is a container element that wraps a list of items stamped out\n * by an ngFor. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n * \n * ```html\n * <!-- list.component.html -->\n * <button (click)=\"toggle()\">Show / Hide Items</button>\n * <hr />\n * <div [\\@listAnimation]=\"items.length\">\n *   <div *ngFor=\"let item of items\">\n *     {{ item }}\n *   </div>\n * </div>\n * ```\n * \n * The component code for this looks as such:\n * \n * ```ts\n * import {trigger, transition, style, animate, query, stagger} from '\\@angular/animations';\n * \\@Component({ \n *   templateUrl: 'list.component.html',\n *   animations: [\n *     trigger('listAnimation', [\n *        //...\n *     ])\n *   ]\n * })\n * class ListComponent {\n *   items = [];\n * \n *   showItems() {\n *     this.items = [0,1,2,3,4];\n *   }\n * \n *   hideItems() {\n *     this.items = [];\n *   }\n * \n *   to
 ggle() {\n *     this.items.length ? this.hideItems() : this.showItems();\n *   }\n * }\n * ```\n * \n * And now for the animation trigger code:\n * \n * ```ts\n * trigger('listAnimation', [\n *   transition('* => *', [ // each time the binding value changes\n *     query(':leave', [\n *       stagger(100, [\n *         animate('0.5s', style({ opacity: 0 }))\n *       ])\n *     ]),\n *     query(':enter', [\n *       style({ opacity: 0 }),\n *       stagger(100, [\n *         animate('0.5s', style({ opacity: 1 }))\n *       ])\n *     ])\n *   ])\n * ])\n * ```\n * \n * Now each time the items are added/removed then either the opacity\n * fade-in animation will run or each removed item will be faded out.\n * When either of these animations occur then a stagger effect will be\n * applied after each item's animation is started.\n * \n * \\@experimental Animation support is experimental.\n * @param {?} timings\n * @param {?} animation\n * @return {?}\n */\nexport function stagger(\n  
   timings: string | number,\n    animation: AnimationMetadata | AnimationMetadata[]): AnimationStaggerMetadata {\n  return {type: AnimationMetadataType.Stagger, timings, animation};\n}\n","/**\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\nimport {AnimationMetadata, AnimationOptions} from './animation_metadata';\nimport {AnimationPlayer} from './players/animation_player';\n/**\n * AnimationBuilder is an injectable service that is available when the {\\@link\n * BrowserAnimationsModule BrowserAnimationsModule} or {\\@link NoopAnimationsModule\n * NoopAnimationsModule} modules are used within an application.\n * \n * The purpose if this service is to produce an animation sequence programmatically within an\n * angular component or directive.\n * \n * Programmatic animations are first built and then a player is created when the
  build animation is\n * attached to an element.\n * \n * ```ts\n * // remember to include the BrowserAnimationsModule module for this to work...\n * import {AnimationBuilder} from '\\@angular/animations';\n * \n * class MyCmp {\n *   constructor(private _builder: AnimationBuilder) {}\n * \n *   makeAnimation(element: any) {\n *     // first build the animation\n *     const myAnimation = this._builder.build([\n *       style({ width: 0 }),\n *       animate(1000, style({ width: '100px' }))\n *     ]);\n * \n *     // then create a player from it\n *     const player = myAnimation.create(element);\n * \n *     player.play();\n *   }\n * }\n * ```\n * \n * When an animation is built an instance of {\\@link AnimationFactory AnimationFactory} will be\n * returned. Using that an {\\@link AnimationPlayer AnimationPlayer} can be created which can then be\n * used to start the animation.\n * \n * \\@experimental Animation support is experimental.\n * @abstract\n */\nexport abstract class An
 imationBuilder {\n/**\n * @abstract\n * @param {?} animation\n * @return {?}\n */\nbuild(animation: AnimationMetadata|AnimationMetadata[]) {}\n}\n/**\n * An instance of `AnimationFactory` is returned from {\\@link AnimationBuilder#build\n * AnimationBuilder.build}.\n * \n * \\@experimental Animation support is experimental.\n * @abstract\n */\nexport abstract class AnimationFactory {\n/**\n * @abstract\n * @param {?} element\n * @param {?=} options\n * @return {?}\n */\ncreate(element: any, options?: AnimationOptions) {}\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/index.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/index.metadata.json b/node_modules/@angular/cdk/a11y/typings/index.metadata.json
new file mode 100644
index 0000000..7b83b79
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/index.metadata.json
@@ -0,0 +1 @@
+{"__symbolic":"module","version":3,"metadata":{"Highlightable":{"__symbolic":"interface"},"ActiveDescendantKeyManager":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ListKeyManager"},"members":{"setActiveItem":[{"__symbolic":"method"}]}},"RegisteredMessage":{"__symbolic":"interface"},"MESSAGES_CONTAINER_ID":"cdk-describedby-message-container","CDK_DESCRIBEDBY_ID_PREFIX":"cdk-describedby-message","CDK_DESCRIBEDBY_HOST_ATTRIBUTE":"cdk-describedby-host","AriaDescriber":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform"}]}],"describe":[{"__symbolic":"method"}],"removeDescription":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ARIA_DESCRIBER_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["parentDi
 spatcher","platform"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"reference","name":"parentDispatcher"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"AriaDescriber"},"arguments":[{"__symbolic":"reference","name":"platform"}]}}},"ARIA_DESCRIBER_PROVIDER":{"provide":{"__symbolic":"reference","name":"AriaDescriber"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf"}},{"__symbolic":"reference","name":"AriaDescriber"}],{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform"}],"useFactory":{"__symbolic":"reference","name":"ARIA_DESCRIBER_PROVIDER_FACTORY"}},"isFakeMousedownFromScreenReader":{"__symbolic":"function","parameters":["event"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"select","expression":{"__symbolic":"reference","n
 ame":"event"},"member":"buttons"},"right":0}},"FocusableOption":{"__symbolic":"interface"},"FocusKeyManager":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ListKeyManager"},"members":{"setActiveItem":[{"__symbolic":"method"}]}},"FocusTrap":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":47,"character":22,"context":{"typeName":"HTMLElement"},"module":"./focus-trap"},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform"},{"__symbolic":"reference","name":"InteractivityChecker"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone"},null]}],"destroy":[{"__symbolic":"method"}],"attachAnchors":[{"__symbolic":"method"}],"focusInitialElementWhenReady":[{"__symbolic":"method"}],"focusFirstTabbableElementWhenReady":[{"__symbolic":"method"}],"focusLastTabbableElementWhenReady":[{"__symbolic":"method"}],"_getRegionBoundary":[{"__
 symbolic":"method"}],"focusInitialElement":[{"__symbolic":"method"}],"focusFirstTabbableElement":[{"__symbolic":"method"}],"focusLastTabbableElement":[{"__symbolic":"method"}],"_getFirstTabbableElement":[{"__symbolic":"method"}],"_getLastTabbableElement":[{"__symbolic":"method"}],"_createAnchor":[{"__symbolic":"method"}],"_executeOnStable":[{"__symbolic":"method"}]}},"FocusTrapFactory":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"InteractivityChecker"},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone"}]}],"create":[{"__symbolic":"method"}]}},"FocusTrapDeprecatedDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","nam
 e":"Directive"},"arguments":[{"selector":"cdk-focus-trap"}]}],"members":{"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","name":"FocusTrapFactory"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}]}},"FocusTrapDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[cdkTrapFocus]","exportAs":"cdkTrapFocus"}]}],"members":{"enabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["cdkTrapFocus"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":
 "reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","name":"FocusTrapFactory"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}]}},"InteractivityChecker":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform"}]}],"isDisabled":[{"__symbolic":"method"}],"isVisible":[{"__symbolic":"method"}],"isTabbable":[{"__symbolic":"method"}],"isFocusable":[{"__symbolic":"method"}]}},"ListKeyManagerOption":{"__symbolic":"interface"},"ListKeyManager":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"QueryList","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":36,"characte
 r":40,"context":{"typeName":"T"},"module":"./list-key-manager"}]}]}],"withWrap":[{"__symbolic":"method"}],"withTypeAhead":[{"__symbolic":"method"}],"setActiveItem":[{"__symbolic":"method"}],"onKeydown":[{"__symbolic":"method"}],"setFirstItemActive":[{"__symbolic":"method"}],"setLastItemActive":[{"__symbolic":"method"}],"setNextItemActive":[{"__symbolic":"method"}],"setPreviousItemActive":[{"__symbolic":"method"}],"updateActiveItemIndex":[{"__symbolic":"method"}],"_setActiveItemByDelta":[{"__symbolic":"method"}],"_setActiveInWrapMode":[{"__symbolic":"method"}],"_setActiveInDefaultMode":[{"__symbolic":"method"}],"_setActiveItemByIndex":[{"__symbolic":"method"}]}},"LIVE_ANNOUNCER_ELEMENT_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["liveAnnouncerElement"]},"AriaLivePoliteness":{"__symbolic":"interface"},"LiveAnnouncer":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"
 reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"LIVE_ANNOUNCER_ELEMENT_TOKEN"}]}],null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform"}]}],"announce":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_createLiveElement":[{"__symbolic":"method"}]}},"LIVE_ANNOUNCER_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["parentDispatcher","liveElement","platform"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"reference","name":"parentDispatcher"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"LiveAnnou
 ncer"},"arguments":[{"__symbolic":"reference","name":"liveElement"},{"__symbolic":"reference","name":"platform"}]}}},"LIVE_ANNOUNCER_PROVIDER":{"provide":{"__symbolic":"reference","name":"LiveAnnouncer"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf"}},{"__symbolic":"reference","name":"LiveAnnouncer"}],[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"LIVE_ANNOUNCER_ELEMENT_TOKEN"}]}],{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform"}],"useFactory":{"__symbolic":"reference","name":"LIVE_ANNOUNCER_PROVIDER_FACTORY"}},"TOUCH_BUFFER_MS":650,"FocusOrigin":{"__symbolic":"interface"},"FocusMonitor"
 :{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone"},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform"}]}],"monitor":[{"__symbolic":"method"}],"stopMonitoring":[{"__symbolic":"method"}],"focusVia":[{"__symbolic":"method"}],"_registerDocumentEvents":[{"__symbolic":"method"}],"_setClasses":[{"__symbolic":"method"}],"_setOriginForCurrentEventQueue":[{"__symbolic":"method"}],"_wasCausedByTouch":[{"__symbolic":"method"}],"_onFocus":[{"__symbolic":"method"}],"_onBlur":[{"__symbolic":"method"}]}},"CdkMonitorFocus":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]"}]}],"members"
 :{"cdkFocusChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef"},{"__symbolic":"reference","name":"FocusMonitor"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2"}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"FOCUS_MONITOR_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["parentDispatcher","ngZone","platform"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"reference","name":"parentDispatcher"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"FocusMonitor"},"arguments":[{"__symbolic":"reference","name":"ngZone"},{"__symbolic":"reference","name":"platform"}]}}},"FOCUS_MONITOR_PROVIDER":{"provide":{"__symbolic":"reference","name":"FocusMonitor"},"deps":[[{"__symbolic":"new","expression":{
 "__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf"}},{"__symbolic":"reference","name":"FocusMonitor"}],{"__symbolic":"reference","module":"@angular/core","name":"NgZone"},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform"}],"useFactory":{"__symbolic":"reference","name":"FOCUS_MONITOR_PROVIDER_FACTORY"}},"A11yModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"PlatformModule"}],"declarations":[{"__symbolic":"reference","name":"FocusTrapDirective"},{"__symbolic":"reference","name":"FocusTrapDeprecatedDirective"},{"__symbolic":"reference","name":"CdkMonitorFocus"}],"exports":[{"__sy
 mbolic":"reference","name":"FocusTrapDirective"},{"__symbolic":"reference","name":"FocusTrapDeprecatedDirective"},{"__symbolic":"reference","name":"CdkMonitorFocus"}],"providers":[{"__symbolic":"reference","name":"InteractivityChecker"},{"__symbolic":"reference","name":"FocusTrapFactory"},{"__symbolic":"reference","name":"AriaDescriber"},{"__symbolic":"reference","name":"LIVE_ANNOUNCER_PROVIDER"},{"__symbolic":"reference","name":"ARIA_DESCRIBER_PROVIDER"},{"__symbolic":"reference","name":"FOCUS_MONITOR_PROVIDER"}]}]}],"members":{}}},"origins":{"Highlightable":"./activedescendant-key-manager","ActiveDescendantKeyManager":"./activedescendant-key-manager","RegisteredMessage":"./aria-describer","MESSAGES_CONTAINER_ID":"./aria-describer","CDK_DESCRIBEDBY_ID_PREFIX":"./aria-describer","CDK_DESCRIBEDBY_HOST_ATTRIBUTE":"./aria-describer","AriaDescriber":"./aria-describer","ARIA_DESCRIBER_PROVIDER_FACTORY":"./aria-describer","ARIA_DESCRIBER_PROVIDER":"./aria-describer","isFakeMousedownFromSc
 reenReader":"./fake-mousedown","FocusableOption":"./focus-key-manager","FocusKeyManager":"./focus-key-manager","FocusTrap":"./focus-trap","FocusTrapFactory":"./focus-trap","FocusTrapDeprecatedDirective":"./focus-trap","FocusTrapDirective":"./focus-trap","InteractivityChecker":"./interactivity-checker","ListKeyManagerOption":"./list-key-manager","ListKeyManager":"./list-key-manager","LIVE_ANNOUNCER_ELEMENT_TOKEN":"./live-announcer","AriaLivePoliteness":"./live-announcer","LiveAnnouncer":"./live-announcer","LIVE_ANNOUNCER_PROVIDER_FACTORY":"./live-announcer","LIVE_ANNOUNCER_PROVIDER":"./live-announcer","TOUCH_BUFFER_MS":"./focus-monitor","FocusOrigin":"./focus-monitor","FocusMonitor":"./focus-monitor","CdkMonitorFocus":"./focus-monitor","FOCUS_MONITOR_PROVIDER_FACTORY":"./focus-monitor","FOCUS_MONITOR_PROVIDER":"./focus-monitor","A11yModule":"./a11y-module"},"importAs":"@angular/cdk/a11y"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/interactivity-checker.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/interactivity-checker.d.ts b/node_modules/@angular/cdk/a11y/typings/interactivity-checker.d.ts
new file mode 100644
index 0000000..f815f79
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/interactivity-checker.d.ts
@@ -0,0 +1,45 @@
+import { Platform } from '@angular/cdk/platform';
+/**
+ * The InteractivityChecker leans heavily on the ally.js accessibility utilities.
+ * Methods like `isTabbable` are only covering specific edge-cases for the browsers which are
+ * supported.
+ */
+/**
+ * Utility for checking the interactivity of an element, such as whether is is focusable or
+ * tabbable.
+ */
+export declare class InteractivityChecker {
+    private _platform;
+    constructor(_platform: Platform);
+    /**
+     * Gets whether an element is disabled.
+     *
+     * @param element Element to be checked.
+     * @returns Whether the element is disabled.
+     */
+    isDisabled(element: HTMLElement): boolean;
+    /**
+     * Gets whether an element is visible for the purposes of interactivity.
+     *
+     * This will capture states like `display: none` and `visibility: hidden`, but not things like
+     * being clipped by an `overflow: hidden` parent or being outside the viewport.
+     *
+     * @returns Whether the element is visible.
+     */
+    isVisible(element: HTMLElement): boolean;
+    /**
+     * Gets whether an element can be reached via Tab key.
+     * Assumes that the element has already been checked with isFocusable.
+     *
+     * @param element Element to be checked.
+     * @returns Whether the element is tabbable.
+     */
+    isTabbable(element: HTMLElement): boolean;
+    /**
+     * Gets whether an element can be focused by the user.
+     *
+     * @param element Element to be checked.
+     * @returns Whether the element is focusable.
+     */
+    isFocusable(element: HTMLElement): boolean;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/list-key-manager.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/list-key-manager.d.ts b/node_modules/@angular/cdk/a11y/typings/list-key-manager.d.ts
new file mode 100644
index 0000000..d04df1a
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/list-key-manager.d.ts
@@ -0,0 +1,96 @@
+/**
+ * @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 { QueryList } from '@angular/core';
+import { Subject } from 'rxjs/Subject';
+/**
+ * This interface is for items that can be passed to a ListKeyManager.
+ */
+export interface ListKeyManagerOption {
+    disabled?: boolean;
+    getLabel?(): string;
+}
+/**
+ * This class manages keyboard events for selectable lists. If you pass it a query list
+ * of items, it will set the active item correctly when arrow events occur.
+ */
+export declare class ListKeyManager<T extends ListKeyManagerOption> {
+    private _items;
+    private _activeItemIndex;
+    private _activeItem;
+    private _wrap;
+    private _letterKeyStream;
+    private _typeaheadSubscription;
+    private _pressedLetters;
+    constructor(_items: QueryList<T>);
+    /**
+     * Stream that emits any time the TAB key is pressed, so components can react
+     * when focus is shifted off of the list.
+     */
+    tabOut: Subject<void>;
+    /**
+     * Turns on wrapping mode, which ensures that the active item will wrap to
+     * the other end of list when there are no more items in the given direction.
+     */
+    withWrap(): this;
+    /**
+     * Turns on typeahead mode which allows users to set the active item by typing.
+     * @param debounceInterval Time to wait after the last keystroke before setting the active item.
+     */
+    withTypeAhead(debounceInterval?: number): this;
+    /**
+     * Sets the active item to the item at the index specified.
+     * @param index The index of the item to be set as active.
+     */
+    setActiveItem(index: number): void;
+    /**
+     * Sets the active item depending on the key event passed in.
+     * @param event Keyboard event to be used for determining which element should be active.
+     */
+    onKeydown(event: KeyboardEvent): void;
+    /** Index of the currently active item. */
+    readonly activeItemIndex: number | null;
+    /** The active item. */
+    readonly activeItem: T | null;
+    /** Sets the active item to the first enabled item in the list. */
+    setFirstItemActive(): void;
+    /** Sets the active item to the last enabled item in the list. */
+    setLastItemActive(): void;
+    /** Sets the active item to the next enabled item in the list. */
+    setNextItemActive(): void;
+    /** Sets the active item to a previous enabled item in the list. */
+    setPreviousItemActive(): void;
+    /**
+     * Allows setting of the activeItemIndex without any other effects.
+     * @param index The new activeItemIndex.
+     */
+    updateActiveItemIndex(index: number): void;
+    /**
+     * This method sets the active item, given a list of items and the delta between the
+     * currently active item and the new active item. It will calculate differently
+     * depending on whether wrap mode is turned on.
+     */
+    private _setActiveItemByDelta(delta, items?);
+    /**
+     * Sets the active item properly given "wrap" mode. In other words, it will continue to move
+     * down the list until it finds an item that is not disabled, and it will wrap if it
+     * encounters either end of the list.
+     */
+    private _setActiveInWrapMode(delta, items);
+    /**
+     * Sets the active item properly given the default mode. In other words, it will
+     * continue to move down the list until it finds an item that is not disabled. If
+     * it encounters either end of the list, it will stop and not wrap.
+     */
+    private _setActiveInDefaultMode(delta, items);
+    /**
+     * Sets the active item to the first enabled item starting at the index specified. If the
+     * item is disabled, it will move in the fallbackDelta direction until it either
+     * finds an enabled item or encounters the end of the list.
+     */
+    private _setActiveItemByIndex(index, fallbackDelta, items?);
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/live-announcer.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/live-announcer.d.ts b/node_modules/@angular/cdk/a11y/typings/live-announcer.d.ts
new file mode 100644
index 0000000..cc9d34b
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/live-announcer.d.ts
@@ -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
+ */
+import { InjectionToken, Optional, OnDestroy } from '@angular/core';
+import { Platform } from '@angular/cdk/platform';
+export declare const LIVE_ANNOUNCER_ELEMENT_TOKEN: InjectionToken<HTMLElement>;
+/** Possible politeness levels. */
+export declare type AriaLivePoliteness = 'off' | 'polite' | 'assertive';
+export declare class LiveAnnouncer implements OnDestroy {
+    private _liveElement;
+    constructor(elementToken: any, platform: Platform);
+    /**
+     * Announces a message to screenreaders.
+     * @param message Message to be announced to the screenreader
+     * @param politeness The politeness of the announcer element
+     */
+    announce(message: string, politeness?: AriaLivePoliteness): void;
+    ngOnDestroy(): void;
+    private _createLiveElement();
+}
+/** @docs-private */
+export declare function LIVE_ANNOUNCER_PROVIDER_FACTORY(parentDispatcher: LiveAnnouncer, liveElement: any, platform: Platform): LiveAnnouncer;
+/** @docs-private */
+export declare const LIVE_ANNOUNCER_PROVIDER: {
+    provide: typeof LiveAnnouncer;
+    deps: (Optional[] | typeof Platform)[];
+    useFactory: (parentDispatcher: LiveAnnouncer, liveElement: any, platform: Platform) => LiveAnnouncer;
+};

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/a11y/typings/public-api.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/a11y/typings/public-api.d.ts b/node_modules/@angular/cdk/a11y/typings/public-api.d.ts
new file mode 100644
index 0000000..0f3548a
--- /dev/null
+++ b/node_modules/@angular/cdk/a11y/typings/public-api.d.ts
@@ -0,0 +1,17 @@
+/**
+ * @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
+ */
+export * from './activedescendant-key-manager';
+export * from './aria-describer';
+export * from './fake-mousedown';
+export * from './focus-key-manager';
+export * from './focus-trap';
+export * from './interactivity-checker';
+export * from './list-key-manager';
+export * from './live-announcer';
+export * from './focus-monitor';
+export * from './a11y-module';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bidi.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bidi.d.ts b/node_modules/@angular/cdk/bidi.d.ts
new file mode 100644
index 0000000..c4e2fda
--- /dev/null
+++ b/node_modules/@angular/cdk/bidi.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @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
+ */
+export * from './bidi/index';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bidi.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bidi.metadata.json b/node_modules/@angular/cdk/bidi.metadata.json
new file mode 100644
index 0000000..bb191c0
--- /dev/null
+++ b/node_modules/@angular/cdk/bidi.metadata.json
@@ -0,0 +1,12 @@
+{
+  "__symbolic": "module",
+  "version": 3,
+  "metadata": {},
+  "exports": [
+    {
+      "from": "./bidi/index"
+    }
+  ],
+  "flatModuleIndexRedirect": true,
+  "importAs": "@angular/cdk/bidi"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bidi/index.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bidi/index.d.ts b/node_modules/@angular/cdk/bidi/index.d.ts
new file mode 100644
index 0000000..5a30354
--- /dev/null
+++ b/node_modules/@angular/cdk/bidi/index.d.ts
@@ -0,0 +1,8 @@
+/**
+ * @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
+ */
+export * from './typings/index';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bidi/index.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bidi/index.metadata.json b/node_modules/@angular/cdk/bidi/index.metadata.json
new file mode 100644
index 0000000..91844f1
--- /dev/null
+++ b/node_modules/@angular/cdk/bidi/index.metadata.json
@@ -0,0 +1,12 @@
+{
+  "__symbolic": "module",
+  "version": 3,
+  "metadata": {},
+  "exports": [
+    {
+      "from": "./typings/index"
+    }
+  ],
+  "flatModuleIndexRedirect": true,
+  "importAs": "@angular/cdk/bidi"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bidi/package.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bidi/package.json b/node_modules/@angular/cdk/bidi/package.json
new file mode 100644
index 0000000..904b84a
--- /dev/null
+++ b/node_modules/@angular/cdk/bidi/package.json
@@ -0,0 +1,7 @@
+{
+  "name": "@angular/cdk/bidi",
+  "typings": "../bidi.d.ts",
+  "main": "../bundles/cdk-bidi.umd.js",
+  "module": "../esm5/bidi.es5.js",
+  "es2015": "../esm2015/bidi.js"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bidi/typings/bidi-module.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bidi/typings/bidi-module.d.ts b/node_modules/@angular/cdk/bidi/typings/bidi-module.d.ts
new file mode 100644
index 0000000..871b690
--- /dev/null
+++ b/node_modules/@angular/cdk/bidi/typings/bidi-module.d.ts
@@ -0,0 +1,2 @@
+export declare class BidiModule {
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bidi/typings/dir.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bidi/typings/dir.d.ts b/node_modules/@angular/cdk/bidi/typings/dir.d.ts
new file mode 100644
index 0000000..8fac5fb
--- /dev/null
+++ b/node_modules/@angular/cdk/bidi/typings/dir.d.ts
@@ -0,0 +1,28 @@
+/**
+ * @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 { EventEmitter } from '@angular/core';
+import { Direction, Directionality } from './directionality';
+/**
+ * Directive to listen for changes of direction of part of the DOM.
+ *
+ * Would provide itself in case a component looks for the Directionality service
+ */
+export declare class Dir implements Directionality {
+    /** Layout direction of the element. */
+    _dir: Direction;
+    /** Whether the `value` has been set to its initial value. */
+    private _isInitialized;
+    /** Event emitted when the direction changes. */
+    change: EventEmitter<void>;
+    /** @docs-private */
+    dir: Direction;
+    /** Current layout direction of the element. */
+    readonly value: Direction;
+    /** Initialize once default value has been set. */
+    ngAfterContentInit(): void;
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bidi/typings/directionality.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bidi/typings/directionality.d.ts b/node_modules/@angular/cdk/bidi/typings/directionality.d.ts
new file mode 100644
index 0000000..bae748f
--- /dev/null
+++ b/node_modules/@angular/cdk/bidi/typings/directionality.d.ts
@@ -0,0 +1,37 @@
+/**
+ * @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 { EventEmitter, Optional, InjectionToken } from '@angular/core';
+export declare type Direction = 'ltr' | 'rtl';
+/**
+ * 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.
+ */
+export declare const DIR_DOCUMENT: InjectionToken<Document>;
+/**
+ * The directionality (LTR / RTL) context for the application (or a subtree of it).
+ * Exposes the current direction and a stream of direction changes.
+ */
+export declare class Directionality {
+    readonly value: Direction;
+    readonly change: EventEmitter<void>;
+    constructor(_document?: any);
+}
+/** @docs-private */
+export declare function DIRECTIONALITY_PROVIDER_FACTORY(parentDirectionality: any, _document: any): any;
+/** @docs-private */
+export declare const DIRECTIONALITY_PROVIDER: {
+    provide: typeof Directionality;
+    deps: Optional[][];
+    useFactory: (parentDirectionality: any, _document: any) => any;
+};

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bidi/typings/index.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bidi/typings/index.d.ts b/node_modules/@angular/cdk/bidi/typings/index.d.ts
new file mode 100644
index 0000000..e5daacf
--- /dev/null
+++ b/node_modules/@angular/cdk/bidi/typings/index.d.ts
@@ -0,0 +1,4 @@
+/**
+ * Generated bundle index. Do not edit.
+ */
+export * from './public-api';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bidi/typings/index.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bidi/typings/index.metadata.json b/node_modules/@angular/cdk/bidi/typings/index.metadata.json
new file mode 100644
index 0000000..8a82c61
--- /dev/null
+++ b/node_modules/@angular/cdk/bidi/typings/index.metadata.json
@@ -0,0 +1 @@
+{"__symbolic":"module","version":3,"metadata":{"Directionality":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject"},"arguments":[{"__symbolic":"reference","name":"DIR_DOCUMENT"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}]}},"DIRECTIONALITY_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["parentDirectionality","_document"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"reference","name":"parentDirectionality"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Directionality"},"arguments":[{"__symbolic":"reference","name":"_document"}]}}},"DIRECTI
 ONALITY_PROVIDER":{"provide":{"__symbolic":"reference","name":"Directionality"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf"}},{"__symbolic":"reference","name":"Directionality"}],[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional"}},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DOCUMENT"}]],"useFactory":{"__symbolic":"reference","name":"DIRECTIONALITY_PROVIDER_FACTORY"}},"DIR_DOCUMENT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken"},"arguments":["mat-dir-doc"]},"Direction":{"__symbolic":"interface"},"Dir":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[dir]","prov
 iders":[{"provide":{"__symbolic":"reference","name":"Directionality"},"useExisting":{"__symbolic":"reference","name":"Dir"}}],"host":{"[dir]":"dir"},"exportAs":"dir"}]}],"members":{"change":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"},"arguments":["dirChange"]}]}],"dir":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"},"arguments":["dir"]}]}],"ngAfterContentInit":[{"__symbolic":"method"}]}},"BidiModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"exports":[{"__symbolic":"reference","name":"Dir"}],"declarations":[{"__symbolic":"reference","name":"Dir"}],"providers":[{"provide":{"__symbolic":"reference","name":"DIR_DOCUMENT"},"useExisting":{"__symbolic":"reference","module":"@angular/platfor
 m-browser","name":"DOCUMENT"}},{"__symbolic":"reference","name":"Directionality"}]}]}],"members":{}}},"origins":{"Directionality":"./directionality","DIRECTIONALITY_PROVIDER_FACTORY":"./directionality","DIRECTIONALITY_PROVIDER":"./directionality","DIR_DOCUMENT":"./directionality","Direction":"./directionality","Dir":"./dir","BidiModule":"./bidi-module"},"importAs":"@angular/cdk/bidi"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bidi/typings/public-api.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bidi/typings/public-api.d.ts b/node_modules/@angular/cdk/bidi/typings/public-api.d.ts
new file mode 100644
index 0000000..61403d3
--- /dev/null
+++ b/node_modules/@angular/cdk/bidi/typings/public-api.d.ts
@@ -0,0 +1,10 @@
+/**
+ * @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
+ */
+export { Directionality, DIRECTIONALITY_PROVIDER_FACTORY, DIRECTIONALITY_PROVIDER, DIR_DOCUMENT, Direction } from './directionality';
+export { Dir } from './dir';
+export * from './bidi-module';


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/@angular/animations/browser.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser.es5.js.map b/node_modules/@angular/animations/@angular/animations/browser.es5.js.map
new file mode 100644
index 0000000..a2904de
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"browser.es5.js","sources":["../../../../../packages/animations/browser/public_api.ts","../../../../../packages/animations/browser/src/browser.ts","../../../../../packages/animations/browser/src/private_export.ts","../../../../../packages/animations/browser/src/render/web_animations/web_animations_driver.ts","../../../../../packages/animations/browser/src/render/web_animations/web_animations_player.ts","../../../../../packages/animations/browser/src/render/animation_engine_next.ts","../../../../../packages/animations/browser/src/render/transition_animation_engine.ts","../../../../../packages/animations/browser/src/render/timeline_animation_engine.ts","../../../../../packages/animations/browser/src/dsl/animation_trigger.ts","../../../../../packages/animations/browser/src/dsl/animation_transition_factory.ts","../../../../../packages/animations/browser/src/dsl/animation_transition_instruction.ts","../../../../../packages/animations/browser/src/dsl/style_normalizatio
 n/web_animations_style_normalizer.ts","../../../../../packages/animations/browser/src/dsl/style_normalization/animation_style_normalizer.ts","../../../../../packages/animations/browser/src/dsl/animation.ts","../../../../../packages/animations/browser/src/dsl/animation_timeline_builder.ts","../../../../../packages/animations/browser/src/dsl/element_instruction_map.ts","../../../../../packages/animations/browser/src/dsl/animation_timeline_instruction.ts","../../../../../packages/animations/browser/src/dsl/animation_ast_builder.ts","../../../../../packages/animations/browser/src/dsl/animation_transition_expr.ts","../../../../../packages/animations/browser/src/util.ts","../../../../../packages/animations/browser/src/render/animation_driver.ts","../../../../../packages/animations/browser/src/render/shared.ts"],"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/**\n * @module\n * @description\n * Entry point for all public APIs of the animation package.\n */\nexport {AnimationDriver,ɵAnimation,ɵAnimationStyleNormalizer,ɵNoopAnimationStyleNormalizer,ɵWebAnimationsStyleNormalizer,ɵNoopAnimationDriver,ɵAnimationEngine,ɵWebAnimationsDriver,ɵsupportsWebAnimations,ɵWebAnimationsPlayer} from './src/browser';\n","/**\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/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\nexport {AnimationDriver} from './render/animation_driver';\nexport {ɵAnimation,ɵAnimationStyleNormalizer,ɵNoopAnimationStyleNormalizer,ɵWebAnimationsStyleNormalizer,ɵNoopAnimationDriver,ɵAnimationEngine,ɵWebAnimationsDriver,ɵsupportsWebAnimations,ɵWebA
 nimationsPlayer} from './private_export';\n","/**\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 {Animation as ɵAnimation} from './dsl/animation';\nexport {AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer} from './dsl/style_normalization/animation_style_normalizer';\nexport {WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer} from './dsl/style_normalization/web_animations_style_normalizer';\nexport {NoopAnimationDriver as ɵNoopAnimationDriver} from './render/animation_driver';\nexport {AnimationEngine as ɵAnimationEngine} from './render/animation_engine_next';\nexport {WebAnimationsDriver as ɵWebAnimationsDriver, supportsWebAnimations as ɵsupportsWebAnimations} from './render/web_animations/web_animations_driver';\nexport {WebAnimatio
 nsPlayer as ɵWebAnimationsPlayer} from './render/web_animations/web_animations_player';\n","/**\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\nimport {AnimationPlayer, ɵStyleData} from '@angular/animations';\n\nimport {AnimationDriver} from '../animation_driver';\nimport {containsElement, invokeQuery, matchesElement} from '../shared';\n\nimport {WebAnimationsPlayer} from './web_animations_player';\nexport class WebAnimationsDriver implements AnimationDriver {\n/**\n * @param {?} element\n * @param {?} selector\n * @return {?}\n */\nmatchesElement(element: any, selector: string): boolean {\n    return matchesElement(element, selector);\n  }\n/**\n * @param {?} elm1\n * @param {?} elm2\n * @return {?}\n */\ncontainsElement(elm1: any, elm2: any): boolean { return containsElement(elm1, elm2); }\n/**\n * @param {?} element\n * 
 @param {?} selector\n * @param {?} multi\n * @return {?}\n */\nquery(element: any, selector: string, multi: boolean): any[] {\n    return invokeQuery(element, selector, multi);\n  }\n/**\n * @param {?} element\n * @param {?} prop\n * @param {?=} defaultValue\n * @return {?}\n */\ncomputeStyle(element: any, prop: string, defaultValue?: string): string {\n    return /** @type {?} */(( ( /** @type {?} */((window.getComputedStyle(element) as any)))[prop] as string));\n  }\n/**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} duration\n * @param {?} delay\n * @param {?} easing\n * @param {?=} previousPlayers\n * @return {?}\n */\nanimate(\n      element: any, keyframes: ɵStyleData[], duration: number, delay: number, easing: string,\n      previousPlayers: AnimationPlayer[] = []): WebAnimationsPlayer {\n    const /** @type {?} */ fill = delay == 0 ? 'both' : 'forwards';\n    const /** @type {?} */ playerOptions: {[key: string]: string | number} = {duration, delay, fill};\n\
 n    // we check for this to avoid having a null|undefined value be present\n    // for the easing (which results in an error for certain browsers #9752)\n    if (easing) {\n      playerOptions['easing'] = easing;\n    }\n\n    const /** @type {?} */ previousWebAnimationPlayers = /** @type {?} */(( <WebAnimationsPlayer[]>previousPlayers.filter(\n        player => { return player instanceof WebAnimationsPlayer; })));\n    return new WebAnimationsPlayer(element, keyframes, playerOptions, previousWebAnimationPlayers);\n  }\n}\n/**\n * @return {?}\n */\nexport function supportsWebAnimations() {\n  return typeof Element !== 'undefined' && typeof( /** @type {?} */((<any>Element))).prototype['animate'] === 'function';\n}\n","/**\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\nimport {AnimationPlayer} from '@angular/animations';\n\ni
 mport {allowPreviousPlayerStylesMerge, copyStyles} from '../../util';\n\nimport {DOMAnimation} from './dom_animation';\nexport class WebAnimationsPlayer implements AnimationPlayer {\nprivate _onDoneFns: Function[] = [];\nprivate _onStartFns: Function[] = [];\nprivate _onDestroyFns: Function[] = [];\nprivate _player: DOMAnimation;\nprivate _duration: number;\nprivate _delay: number;\nprivate _initialized = false;\nprivate _finished = false;\nprivate _started = false;\nprivate _destroyed = false;\nprivate _finalKeyframe: {[key: string]: string | number};\npublic time = 0;\npublic parentPlayer: AnimationPlayer|null = null;\npublic previousStyles: {[styleName: string]: string | number} = {};\npublic currentSnapshot: {[styleName: string]: string | number} = {};\n/**\n * @param {?} element\n * @param {?} keyframes\n * @param {?} options\n * @param {?=} previousPlayers\n */\nconstructor(\npublic element: any,\npublic keyframes: {[key: string]: string | number}[],\npublic options: {[key: st
 ring]: string | number},\nprivate previousPlayers: WebAnimationsPlayer[] = []) {\n    this._duration = <number>options['duration'];\n    this._delay = <number>options['delay'] || 0;\n    this.time = this._duration + this._delay;\n\n    if (allowPreviousPlayerStylesMerge(this._duration, this._delay)) {\n      previousPlayers.forEach(player => {\n        let styles = player.currentSnapshot;\n        Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]);\n      });\n    }\n  }\n/**\n * @return {?}\n */\nprivate _onFinish() {\n    if (!this._finished) {\n      this._finished = true;\n      this._onDoneFns.forEach(fn => fn());\n      this._onDoneFns = [];\n    }\n  }\n/**\n * @return {?}\n */\ninit(): void {\n    this._buildPlayer();\n    this._preparePlayerBeforeStart();\n  }\n/**\n * @return {?}\n */\nprivate _buildPlayer(): void {\n    if (this._initialized) return;\n    this._initialized = true;\n\n    const /** @type {?} */ keyframes = this.keyframes.map(styl
 es => copyStyles(styles, false));\n    const /** @type {?} */ previousStyleProps = Object.keys(this.previousStyles);\n    if (previousStyleProps.length) {\n      let /** @type {?} */ startingKeyframe = keyframes[0];\n      let /** @type {?} */ missingStyleProps: string[] = [];\n      previousStyleProps.forEach(prop => {\n        if (!startingKeyframe.hasOwnProperty(prop)) {\n          missingStyleProps.push(prop);\n        }\n        startingKeyframe[prop] = this.previousStyles[prop];\n      });\n\n      if (missingStyleProps.length) {\n        const /** @type {?} */ self = this;\n        // tslint:disable-next-line\n        for (var /** @type {?} */ i = 1; i < keyframes.length; i++) {\n          let /** @type {?} */ kf = keyframes[i];\n          missingStyleProps.forEach(function(prop) {\n            kf[prop] = _computeStyle(self.element, prop);\n          });\n        }\n      }\n    }\n\n    this._player = this._triggerWebAnimation(this.element, keyframes, this.options);\n    thi
 s._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : {};\n    this._player.addEventListener('finish', () => this._onFinish());\n  }\n/**\n * @return {?}\n */\nprivate _preparePlayerBeforeStart() {\n    // this is required so that the player doesn't start to animate right away\n    if (this._delay) {\n      this._resetDomPlayerState();\n    } else {\n      this._player.pause();\n    }\n  }\n/**\n * \\@internal\n * @param {?} element\n * @param {?} keyframes\n * @param {?} options\n * @return {?}\n */\n_triggerWebAnimation(element: any, keyframes: any[], options: any): DOMAnimation {\n    // jscompiler doesn't seem to know animate is a native property because it's not fully\n    // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n    return /** @type {?} */(( element['animate'](keyframes, options) as DOMAnimation));\n  }\n/**\n * @return {?}\n */\nget domPlayer() { return this._player; }\n/**\n * @param {?} fn\n * @return {?}\n 
 */\nonStart(fn: () => void): void { this._onStartFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void { this._onDoneFns.push(fn); }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void { this._onDestroyFns.push(fn); }\n/**\n * @return {?}\n */\nplay(): void {\n    this._buildPlayer();\n    if (!this.hasStarted()) {\n      this._onStartFns.forEach(fn => fn());\n      this._onStartFns = [];\n      this._started = true;\n    }\n    this._player.play();\n  }\n/**\n * @return {?}\n */\npause(): void {\n    this.init();\n    this._player.pause();\n  }\n/**\n * @return {?}\n */\nfinish(): void {\n    this.init();\n    this._onFinish();\n    this._player.finish();\n  }\n/**\n * @return {?}\n */\nreset(): void {\n    this._resetDomPlayerState();\n    this._destroyed = false;\n    this._finished = false;\n    this._started = false;\n  }\n/**\n * @return {?}\n */\nprivate _resetDomPlayerState() {\n    if (this._player) {\n      this.
 _player.cancel();\n    }\n  }\n/**\n * @return {?}\n */\nrestart(): void {\n    this.reset();\n    this.play();\n  }\n/**\n * @return {?}\n */\nhasStarted(): boolean { return this._started; }\n/**\n * @return {?}\n */\ndestroy(): void {\n    if (!this._destroyed) {\n      this._destroyed = true;\n      this._resetDomPlayerState();\n      this._onFinish();\n      this._onDestroyFns.forEach(fn => fn());\n      this._onDestroyFns = [];\n    }\n  }\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: number): void { this._player.currentTime = p * this.time; }\n/**\n * @return {?}\n */\ngetPosition(): number { return this._player.currentTime / this.time; }\n/**\n * @return {?}\n */\nget totalTime(): number { return this._delay + this._duration; }\n/**\n * @return {?}\n */\nbeforeDestroy() {\n    const /** @type {?} */ styles: {[key: string]: string | number} = {};\n    if (this.hasStarted()) {\n      Object.keys(this._finalKeyframe).forEach(prop => {\n        if (prop != 'offset') 
 {\n          styles[prop] =\n              this._finished ? this._finalKeyframe[prop] : _computeStyle(this.element, prop);\n        }\n      });\n    }\n    this.currentSnapshot = styles;\n  }\n}\n\nfunction WebAnimationsPlayer_tsickle_Closure_declarations() {\n/** @type {?} */\nWebAnimationsPlayer.prototype._onDoneFns;\n/** @type {?} */\nWebAnimationsPlayer.prototype._onStartFns;\n/** @type {?} */\nWebAnimationsPlayer.prototype._onDestroyFns;\n/** @type {?} */\nWebAnimationsPlayer.prototype._player;\n/** @type {?} */\nWebAnimationsPlayer.prototype._duration;\n/** @type {?} */\nWebAnimationsPlayer.prototype._delay;\n/** @type {?} */\nWebAnimationsPlayer.prototype._initialized;\n/** @type {?} */\nWebAnimationsPlayer.prototype._finished;\n/** @type {?} */\nWebAnimationsPlayer.prototype._started;\n/** @type {?} */\nWebAnimationsPlayer.prototype._destroyed;\n/** @type {?} */\nWebAnimationsPlayer.prototype._finalKeyframe;\n/** @type {?} */\nWebAnimationsPlayer.prototype.time;\n/** @type 
 {?} */\nWebAnimationsPlayer.prototype.parentPlayer;\n/** @type {?} */\nWebAnimationsPlayer.prototype.previousStyles;\n/** @type {?} */\nWebAnimationsPlayer.prototype.currentSnapshot;\n/** @type {?} */\nWebAnimationsPlayer.prototype.element;\n/** @type {?} */\nWebAnimationsPlayer.prototype.keyframes;\n/** @type {?} */\nWebAnimationsPlayer.prototype.options;\n/** @type {?} */\nWebAnimationsPlayer.prototype.previousPlayers;\n}\n\n/**\n * @param {?} element\n * @param {?} prop\n * @return {?}\n */\nfunction _computeStyle(element: any, prop: string): string {\n  return ( /** @type {?} */((<any>window.getComputedStyle(element))))[prop];\n}\n","/**\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\nimport {AnimationMetadata, AnimationPlayer, AnimationTriggerMetadata} from '@angular/animations';\nimport {TriggerAst} from '../dsl/animati
 on_ast';\nimport {buildAnimationAst} from '../dsl/animation_ast_builder';\nimport {AnimationTrigger, buildTrigger} from '../dsl/animation_trigger';\nimport {AnimationStyleNormalizer} from '../dsl/style_normalization/animation_style_normalizer';\n\nimport {AnimationDriver} from './animation_driver';\nimport {parseTimelineCommand} from './shared';\nimport {TimelineAnimationEngine} from './timeline_animation_engine';\nimport {TransitionAnimationEngine} from './transition_animation_engine';\nexport class AnimationEngine {\nprivate _transitionEngine: TransitionAnimationEngine;\nprivate _timelineEngine: TimelineAnimationEngine;\nprivate _triggerCache: {[key: string]: AnimationTrigger} = {};\npublic onRemovalComplete = (element: any, context: any) => {};\n/**\n * @param {?} driver\n * @param {?} normalizer\n */\nconstructor(driver: AnimationDriver, normalizer: AnimationStyleNormalizer) {\n    this._transitionEngine = new TransitionAnimationEngine(driver, normalizer);\n    this._timelineEng
 ine = new TimelineAnimationEngine(driver, normalizer);\n\n    this._transitionEngine.onRemovalComplete = (element: any, context: any) =>\n        this.onRemovalComplete(element, context);\n  }\n/**\n * @param {?} componentId\n * @param {?} namespaceId\n * @param {?} hostElement\n * @param {?} name\n * @param {?} metadata\n * @return {?}\n */\nregisterTrigger(\n      componentId: string, namespaceId: string, hostElement: any, name: string,\n      metadata: AnimationTriggerMetadata): void {\n    const /** @type {?} */ cacheKey = componentId + '-' + name;\n    let /** @type {?} */ trigger = this._triggerCache[cacheKey];\n    if (!trigger) {\n      const /** @type {?} */ errors: any[] = [];\n      const /** @type {?} */ ast = /** @type {?} */(( buildAnimationAst( /** @type {?} */((metadata as AnimationMetadata)), errors) as TriggerAst));\n      if (errors.length) {\n        throw new Error(\n            `The animation trigger \"${name}\" has failed to build due to the following errors:\
 \n - ${errors.join(\"\\n - \")}`);\n      }\n      trigger = buildTrigger(name, ast);\n      this._triggerCache[cacheKey] = trigger;\n    }\n    this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\nregister(namespaceId: string, hostElement: any) {\n    this._transitionEngine.register(namespaceId, hostElement);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\ndestroy(namespaceId: string, context: any) {\n    this._transitionEngine.destroy(namespaceId, context);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\nonInsert(namespaceId: string, element: any, parent: any, insertBefore: boolean): void {\n    this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @return
  {?}\n */\nonRemove(namespaceId: string, element: any, context: any): void {\n    this._transitionEngine.removeNode(namespaceId, element, context);\n  }\n/**\n * @param {?} element\n * @param {?} disable\n * @return {?}\n */\ndisableAnimations(element: any, disable: boolean) {\n    this._transitionEngine.markElementAsDisabled(element, disable);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} property\n * @param {?} value\n * @return {?}\n */\nprocess(namespaceId: string, element: any, property: string, value: any) {\n    if (property.charAt(0) == '@') {\n      const [id, action] = parseTimelineCommand(property);\n      const /** @type {?} */ args = /** @type {?} */(( value as any[]));\n      this._timelineEngine.command(id, element, action, args);\n    } else {\n      this._transitionEngine.trigger(namespaceId, element, property, value);\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} eventName\n * @param {?} eventPhase\n 
 * @param {?} callback\n * @return {?}\n */\nlisten(\n      namespaceId: string, element: any, eventName: string, eventPhase: string,\n      callback: (event: any) => any): () => any {\n    // @@listen\n    if (eventName.charAt(0) == '@') {\n      const [id, action] = parseTimelineCommand(eventName);\n      return this._timelineEngine.listen(id, element, action, callback);\n    }\n    return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n  }\n/**\n * @param {?=} microtaskId\n * @return {?}\n */\nflush(microtaskId: number = -1): void { this._transitionEngine.flush(microtaskId); }\n/**\n * @return {?}\n */\nget players(): AnimationPlayer[] {\n    return ( /** @type {?} */((this._transitionEngine.players as AnimationPlayer[])))\n        .concat( /** @type {?} */((this._timelineEngine.players as AnimationPlayer[])));\n  }\n/**\n * @return {?}\n */\nwhenRenderingDone(): Promise<any> { return this._transitionEngine.whenRenderingDone(); }\n}\n\nfuncti
 on AnimationEngine_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationEngine.prototype._transitionEngine;\n/** @type {?} */\nAnimationEngine.prototype._timelineEngine;\n/** @type {?} */\nAnimationEngine.prototype._triggerCache;\n/** @type {?} */\nAnimationEngine.prototype.onRemovalComplete;\n}\n\n","/**\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\nimport {AUTO_STYLE, AnimationOptions, AnimationPlayer, NoopAnimationPlayer, ɵAnimationGroupPlayer as AnimationGroupPlayer, ɵPRE_STYLE as PRE_STYLE, ɵStyleData} from '@angular/animations';\n\nimport {AnimationTimelineInstruction} from '../dsl/animation_timeline_instruction';\nimport {AnimationTransitionFactory} from '../dsl/animation_transition_factory';\nimport {AnimationTransitionInstruction} from '../dsl/animation_transition_instruction';\nimport {AnimationTrigger}
  from '../dsl/animation_trigger';\nimport {ElementInstructionMap} from '../dsl/element_instruction_map';\nimport {AnimationStyleNormalizer} from '../dsl/style_normalization/animation_style_normalizer';\nimport {ENTER_CLASSNAME, LEAVE_CLASSNAME, NG_ANIMATING_CLASSNAME, NG_ANIMATING_SELECTOR, NG_TRIGGER_CLASSNAME, NG_TRIGGER_SELECTOR, copyObj, eraseStyles, setStyles} from '../util';\n\nimport {AnimationDriver} from './animation_driver';\nimport {getOrSetAsInMap, listenOnPlayer, makeAnimationEvent, normalizeKeyframes, optimizeGroupPlayer} from './shared';\n\nconst /** @type {?} */ QUEUED_CLASSNAME = 'ng-animate-queued';\nconst /** @type {?} */ QUEUED_SELECTOR = '.ng-animate-queued';\nconst /** @type {?} */ DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst /** @type {?} */ DISABLED_SELECTOR = '.ng-animate-disabled';\n\nconst /** @type {?} */ EMPTY_PLAYER_ARRAY: TransitionAnimationPlayer[] = [];\nconst /** @type {?} */ NULL_REMOVAL_STATE: ElementAnimationState = {\n  namespaceId: '',\n 
  setForRemoval: null,\n  hasAnimation: false,\n  removedBeforeQueried: false\n};\nconst /** @type {?} */ NULL_REMOVED_QUERIED_STATE: ElementAnimationState = {\n  namespaceId: '',\n  setForRemoval: null,\n  hasAnimation: false,\n  removedBeforeQueried: true\n};\n\ninterface TriggerListener {\n  name: string;\n  phase: string;\n  callback: (event: any) => any;\n}\n\nexport interface QueueInstruction {\n  element: any;\n  triggerName: string;\n  fromState: StateValue;\n  toState: StateValue;\n  transition: AnimationTransitionFactory;\n  player: TransitionAnimationPlayer;\n  isFallbackTransition: boolean;\n}\n\nexport const /** @type {?} */ REMOVAL_FLAG = '__ng_removed';\n\nexport interface ElementAnimationState {\n  setForRemoval: any;\n  hasAnimation: boolean;\n  namespaceId: string;\n  removedBeforeQueried: boolean;\n}\nexport class StateValue {\npublic value: string;\npublic options: AnimationOptions;\n/**\n * @return {?}\n */\nget params(): {[key: string]: any} { return /** @type {
 ?} */(( this.options.params as{[key: string]: any})); }\n/**\n * @param {?} input\n */\nconstructor(input: any) {\n    const isObj = input && input.hasOwnProperty('value');\n    const value = isObj ? input['value'] : input;\n    this.value = normalizeTriggerValue(value);\n    if (isObj) {\n      const options = copyObj(input as any);\n      delete options['value'];\n      this.options = options as AnimationOptions;\n    } else {\n      this.options = {};\n    }\n    if (!this.options.params) {\n      this.options.params = {};\n    }\n  }\n/**\n * @param {?} options\n * @return {?}\n */\nabsorbOptions(options: AnimationOptions) {\n    const /** @type {?} */ newParams = options.params;\n    if (newParams) {\n      const /** @type {?} */ oldParams = /** @type {?} */(( this.options.params));\n      Object.keys(newParams).forEach(prop => {\n        if (oldParams[prop] == null) {\n          oldParams[prop] = newParams[prop];\n        }\n      });\n    }\n  }\n}\n\nfunction StateValue_tsic
 kle_Closure_declarations() {\n/** @type {?} */\nStateValue.prototype.value;\n/** @type {?} */\nStateValue.prototype.options;\n}\n\n\nexport const /** @type {?} */ VOID_VALUE = 'void';\nexport const /** @type {?} */ DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nexport const /** @type {?} */ DELETED_STATE_VALUE = new StateValue('DELETED');\nexport class AnimationTransitionNamespace {\npublic players: TransitionAnimationPlayer[] = [];\nprivate _triggers: {[triggerName: string]: AnimationTrigger} = {};\nprivate _queue: QueueInstruction[] = [];\nprivate _elementListeners = new Map<any, TriggerListener[]>();\nprivate _hostClassName: string;\n/**\n * @param {?} id\n * @param {?} hostElement\n * @param {?} _engine\n */\nconstructor(\npublic id: string,\npublic hostElement: any,\nprivate _engine: TransitionAnimationEngine) {\n    this._hostClassName = 'ng-tns-' + id;\n    addClass(hostElement, this._hostClassName);\n  }\n/**\n * @param {?} element\n * @param {?} name\n * @param {?} phas
 e\n * @param {?} callback\n * @return {?}\n */\nlisten(element: any, name: string, phase: string, callback: (event: any) => boolean): () => any {\n    if (!this._triggers.hasOwnProperty(name)) {\n      throw new Error(`Unable to listen on the animation trigger event \"${\n          phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n    }\n\n    if (phase == null || phase.length == 0) {\n      throw new Error(`Unable to listen on the animation trigger \"${\n          name}\" because the provided event is undefined!`);\n    }\n\n    if (!isTriggerEventValid(phase)) {\n      throw new Error(`The provided animation trigger event \"${phase}\" for the animation trigger \"${\n          name}\" is not supported!`);\n    }\n\n    const /** @type {?} */ listeners = getOrSetAsInMap(this._elementListeners, element, []);\n    const /** @type {?} */ data = {name, phase, callback};\n    listeners.push(data);\n\n    const /** @type {?} */ triggersWithStates = getOrSetAsInMap(th
 is._engine.statesByElement, element, {});\n    if (!triggersWithStates.hasOwnProperty(name)) {\n      addClass(element, NG_TRIGGER_CLASSNAME);\n      addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n      triggersWithStates[name] = null;\n    }\n\n    return () => {\n      // the event listener is removed AFTER the flush has occurred such\n      // that leave animations callbacks can fire (otherwise if the node\n      // is removed in between then the listeners would be deregistered)\n      this._engine.afterFlush(() => {\n        const /** @type {?} */ index = listeners.indexOf(data);\n        if (index >= 0) {\n          listeners.splice(index, 1);\n        }\n\n        if (!this._triggers[name]) {\n          delete triggersWithStates[name];\n        }\n      });\n    };\n  }\n/**\n * @param {?} name\n * @param {?} ast\n * @return {?}\n */\nregister(name: string, ast: AnimationTrigger): boolean {\n    if (this._triggers[name]) {\n      // throw\n      return false;\n    } el
 se {\n      this._triggers[name] = ast;\n      return true;\n    }\n  }\n/**\n * @param {?} name\n * @return {?}\n */\nprivate _getTrigger(name: string) {\n    const /** @type {?} */ trigger = this._triggers[name];\n    if (!trigger) {\n      throw new Error(`The provided animation trigger \"${name}\" has not been registered!`);\n    }\n    return trigger;\n  }\n/**\n * @param {?} element\n * @param {?} triggerName\n * @param {?} value\n * @param {?=} defaultToFallback\n * @return {?}\n */\ntrigger(element: any, triggerName: string, value: any, defaultToFallback: boolean = true):\n      TransitionAnimationPlayer|undefined {\n    const /** @type {?} */ trigger = this._getTrigger(triggerName);\n    const /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element);\n\n    let /** @type {?} */ triggersWithStates = this._engine.statesByElement.get(element);\n    if (!triggersWithStates) {\n      addClass(element, NG_TRIGGER_CLASSNAME);\n      addClass(element, 
 NG_TRIGGER_CLASSNAME + '-' + triggerName);\n      this._engine.statesByElement.set(element, triggersWithStates = {});\n    }\n\n    let /** @type {?} */ fromState = triggersWithStates[triggerName];\n    const /** @type {?} */ toState = new StateValue(value);\n\n    const /** @type {?} */ isObj = value && value.hasOwnProperty('value');\n    if (!isObj && fromState) {\n      toState.absorbOptions(fromState.options);\n    }\n\n    triggersWithStates[triggerName] = toState;\n\n    if (!fromState) {\n      fromState = DEFAULT_STATE_VALUE;\n    } else if (fromState === DELETED_STATE_VALUE) {\n      return player;\n    }\n\n    const /** @type {?} */ isRemoval = toState.value === VOID_VALUE;\n\n    // normally this isn't reached by here, however, if an object expression\n    // is passed in then it may be a new object each time. Comparing the value\n    // is important since that will stay the same despite there being a new object.\n    // The removal arc here is special cased because the 
 same element is triggered\n    // twice in the event that it contains animations on the outer/inner portions\n    // of the host container\n    if (!isRemoval && fromState.value === toState.value) {\n      // this means that despite the value not changing, some inner params\n      // have changed which means that the animation final styles need to be applied\n      if (!objEquals(fromState.params, toState.params)) {\n        const /** @type {?} */ errors: any[] = [];\n        const /** @type {?} */ fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n        const /** @type {?} */ toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n        if (errors.length) {\n          this._engine.reportError(errors);\n        } else {\n          this._engine.afterFlush(() => {\n            eraseStyles(element, fromStyles);\n            setStyles(element, toStyles);\n          });\n        }\n      }\n      return;\n    }\n\n    const /** @type {?} */ 
 playersOnElement: TransitionAnimationPlayer[] =\n        getOrSetAsInMap(this._engine.playersByElement, element, []);\n    playersOnElement.forEach(player => {\n      // only remove the player if it is queued on the EXACT same trigger/namespace\n      // we only also deal with queued players here because if the animation has\n      // started then we want to keep the player alive until the flush happens\n      // (which is where the previousPlayers are passed into the new palyer)\n      if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n        player.destroy();\n      }\n    });\n\n    let /** @type {?} */ transition = trigger.matchTransition(fromState.value, toState.value);\n    let /** @type {?} */ isFallbackTransition = false;\n    if (!transition) {\n      if (!defaultToFallback) return;\n      transition = trigger.fallbackTransition;\n      isFallbackTransition = true;\n    }\n\n    this._engine.totalQueuedPlayers++;\n    this._queue.pu
 sh(\n        {element, triggerName, transition, fromState, toState, player, isFallbackTransition});\n\n    if (!isFallbackTransition) {\n      addClass(element, QUEUED_CLASSNAME);\n      player.onStart(() => { removeClass(element, QUEUED_CLASSNAME); });\n    }\n\n    player.onDone(() => {\n      let /** @type {?} */ index = this.players.indexOf(player);\n      if (index >= 0) {\n        this.players.splice(index, 1);\n      }\n\n      const /** @type {?} */ players = this._engine.playersByElement.get(element);\n      if (players) {\n        let /** @type {?} */ index = players.indexOf(player);\n        if (index >= 0) {\n          players.splice(index, 1);\n        }\n      }\n    });\n\n    this.players.push(player);\n    playersOnElement.push(player);\n\n    return player;\n  }\n/**\n * @param {?} name\n * @return {?}\n */\nderegister(name: string) {\n    delete this._triggers[name];\n\n    this._engine.statesByElement.forEach((stateMap, element) => { delete stateMap[name]; });\n\
 n    this._elementListeners.forEach((listeners, element) => {\n      this._elementListeners.set(\n          element, listeners.filter(entry => { return entry.name != name; }));\n    });\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nclearElementCache(element: any) {\n    this._engine.statesByElement.delete(element);\n    this._elementListeners.delete(element);\n    const /** @type {?} */ elementPlayers = this._engine.playersByElement.get(element);\n    if (elementPlayers) {\n      elementPlayers.forEach(player => player.destroy());\n      this._engine.playersByElement.delete(element);\n    }\n  }\n/**\n * @param {?} rootElement\n * @param {?} context\n * @param {?=} animate\n * @return {?}\n */\nprivate _destroyInnerNodes(rootElement: any, context: any, animate: boolean = false) {\n    this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true).forEach(elm => {\n      if (animate && containsClass(elm, this._hostClassName)) {\n        const /** @type {?} */ innerNs = th
 is._engine.namespacesByHostElement.get(elm);\n\n        // special case for a host element with animations on the same element\n        if (innerNs) {\n          innerNs.removeNode(elm, context, true);\n        }\n\n        this.removeNode(elm, context, true);\n      } else {\n        this.clearElementCache(elm);\n      }\n    });\n  }\n/**\n * @param {?} element\n * @param {?} context\n * @param {?=} doNotRecurse\n * @return {?}\n */\nremoveNode(element: any, context: any, doNotRecurse?: boolean): void {\n    const /** @type {?} */ engine = this._engine;\n\n    if (!doNotRecurse && element.childElementCount) {\n      this._destroyInnerNodes(element, context, true);\n    }\n\n    const /** @type {?} */ triggerStates = engine.statesByElement.get(element);\n    if (triggerStates) {\n      const /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n      Object.keys(triggerStates).forEach(triggerName => {\n        // this check is here in the event that an element is removed\n  
       // twice (both on the host level and the component level)\n        if (this._triggers[triggerName]) {\n          const /** @type {?} */ player = this.trigger(element, triggerName, VOID_VALUE, false);\n          if (player) {\n            players.push(player);\n          }\n        }\n      });\n\n      if (players.length) {\n        engine.markElementAsRemoved(this.id, element, true, context);\n        optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n        return;\n      }\n    }\n\n    // find the player that is animating and make sure that the\n    // removal is delayed until that player has completed\n    let /** @type {?} */ containsPotentialParentTransition = false;\n    if (engine.totalAnimations) {\n      const /** @type {?} */ currentPlayers =\n          engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n\n      // when this `if statement` does not continue forward it means that\n      // a previous animation query
  has selected the current element and\n      // is animating it. In this situation want to continue fowards and\n      // allow the element to be queued up for animation later.\n      if (currentPlayers && currentPlayers.length) {\n        containsPotentialParentTransition = true;\n      } else {\n        let /** @type {?} */ parent = element;\n        while (parent = parent.parentNode) {\n          const /** @type {?} */ triggers = engine.statesByElement.get(parent);\n          if (triggers) {\n            containsPotentialParentTransition = true;\n            break;\n          }\n        }\n      }\n    }\n\n    // at this stage we know that the element will either get removed\n    // during flush or will be picked up by a parent query. Either way\n    // we need to fire the listeners for this element when it DOES get\n    // removed (once the query parent animation is done or after flush)\n    const /** @type {?} */ listeners = this._elementListeners.get(element);\n    if (listen
 ers) {\n      const /** @type {?} */ visitedTriggers = new Set<string>();\n      listeners.forEach(listener => {\n        const /** @type {?} */ triggerName = listener.name;\n        if (visitedTriggers.has(triggerName)) return;\n        visitedTriggers.add(triggerName);\n\n        const /** @type {?} */ trigger = this._triggers[triggerName];\n        const /** @type {?} */ transition = trigger.fallbackTransition;\n        const /** @type {?} */ elementStates = /** @type {?} */(( engine.statesByElement.get(element)));\n        const /** @type {?} */ fromState = elementStates[triggerName] || DEFAULT_STATE_VALUE;\n        const /** @type {?} */ toState = new StateValue(VOID_VALUE);\n        const /** @type {?} */ player = new TransitionAnimationPlayer(this.id, triggerName, element);\n\n        this._engine.totalQueuedPlayers++;\n        this._queue.push({\n          element,\n          triggerName,\n          transition,\n          fromState,\n          toState,\n          player,\n  
         isFallbackTransition: true\n        });\n      });\n    }\n\n    // whether or not a parent has an animation we need to delay the deferral of the leave\n    // operation until we have more information (which we do after flush() has been called)\n    if (containsPotentialParentTransition) {\n      engine.markElementAsRemoved(this.id, element, false, context);\n    } else {\n      // we do this after the flush has occurred such\n      // that the callbacks can be fired\n      engine.afterFlush(() => this.clearElementCache(element));\n      engine.destroyInnerAnimations(element);\n      engine._onRemovalComplete(element, context);\n    }\n  }\n/**\n * @param {?} element\n * @param {?} parent\n * @return {?}\n */\ninsertNode(element: any, parent: any): void { addClass(element, this._hostClassName); }\n/**\n * @param {?} microtaskId\n * @return {?}\n */\ndrainQueuedTransitions(microtaskId: number): QueueInstruction[] {\n    const /** @type {?} */ instructions: QueueInstruction[] 
 = [];\n    this._queue.forEach(entry => {\n      const /** @type {?} */ player = entry.player;\n      if (player.destroyed) return;\n\n      const /** @type {?} */ element = entry.element;\n      const /** @type {?} */ listeners = this._elementListeners.get(element);\n      if (listeners) {\n        listeners.forEach((listener: TriggerListener) => {\n          if (listener.name == entry.triggerName) {\n            const /** @type {?} */ baseEvent = makeAnimationEvent(\n                element, entry.triggerName, entry.fromState.value, entry.toState.value);\n            ( /** @type {?} */((baseEvent as any)))['_data'] = microtaskId;\n            listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n          }\n        });\n      }\n\n      if (player.markedForDestroy) {\n        this._engine.afterFlush(() => {\n          // now we can destroy the element properly since the event listeners have\n          // been bound to the player\n          player.destroy();
 \n        });\n      } else {\n        instructions.push(entry);\n      }\n    });\n\n    this._queue = [];\n\n    return instructions.sort((a, b) => {\n      // if depCount == 0 them move to front\n      // otherwise if a contains b then move back\n      const /** @type {?} */ d0 = a.transition.ast.depCount;\n      const /** @type {?} */ d1 = b.transition.ast.depCount;\n      if (d0 == 0 || d1 == 0) {\n        return d0 - d1;\n      }\n      return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n    });\n  }\n/**\n * @param {?} context\n * @return {?}\n */\ndestroy(context: any) {\n    this.players.forEach(p => p.destroy());\n    this._destroyInnerNodes(this.hostElement, context);\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nelementContainsData(element: any): boolean {\n    let /** @type {?} */ containsData = false;\n    if (this._elementListeners.has(element)) containsData = true;\n    containsData =\n        (this._queue.find(entry => entry.element 
 === element) ? true : false) || containsData;\n    return containsData;\n  }\n}\n\nfunction AnimationTransitionNamespace_tsickle_Closure_declarations() {\n/** @type {?} */\nAnimationTransitionNamespace.prototype.players;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._triggers;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._queue;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._elementListeners;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._hostClassName;\n/** @type {?} */\nAnimationTransitionNamespace.prototype.id;\n/** @type {?} */\nAnimationTransitionNamespace.prototype.hostElement;\n/** @type {?} */\nAnimationTransitionNamespace.prototype._engine;\n}\n\n\nexport interface QueuedTransition {\n  element: any;\n  instruction: AnimationTransitionInstruction;\n  player: TransitionAnimationPlayer;\n}\nexport class TransitionAnimationEngine {\npublic players: TransitionAnimationPlayer[] = [];\npublic newHostElements = new Map<any, Animatio
 nTransitionNamespace>();\npublic playersByElement = new Map<any, TransitionAnimationPlayer[]>();\npublic playersByQueriedElement = new Map<any, TransitionAnimationPlayer[]>();\npublic statesByElement = new Map<any, {[triggerName: string]: StateValue}>();\npublic disabledNodes = new Set<any>();\npublic totalAnimations = 0;\npublic totalQueuedPlayers = 0;\nprivate _namespaceLookup: {[id: string]: AnimationTransitionNamespace} = {};\nprivate _namespaceList: AnimationTransitionNamespace[] = [];\nprivate _flushFns: (() => any)[] = [];\nprivate _whenQuietFns: (() => any)[] = [];\npublic namespacesByHostElement = new Map<any, AnimationTransitionNamespace>();\npublic collectedEnterElements: any[] = [];\npublic collectedLeaveElements: any[] = [];\npublic onRemovalComplete = (element: any, context: any) => {};\n/**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n_onRemovalComplete(element: any, context: any) { this.onRemovalComplete(element, context); }\n/**\n * @param {?}
  driver\n * @param {?} _normalizer\n */\nconstructor(public driver: AnimationDriver,\nprivate _normalizer: AnimationStyleNormalizer) {}\n/**\n * @return {?}\n */\nget queuedPlayers(): TransitionAnimationPlayer[] {\n    const /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n    this._namespaceList.forEach(ns => {\n      ns.players.forEach(player => {\n        if (player.queued) {\n          players.push(player);\n        }\n      });\n    });\n    return players;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\ncreateNamespace(namespaceId: string, hostElement: any) {\n    const /** @type {?} */ ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n    if (hostElement.parentNode) {\n      this._balanceNamespaceList(ns, hostElement);\n    } else {\n      // defer this later until flush during when the host element has\n      // been inserted so that we know exactly where to place it in\n      // the namespace list\n    
   this.newHostElements.set(hostElement, ns);\n\n      // given that this host element is apart of the animation code, it\n      // may or may not be inserted by a parent node that is an of an\n      // animation renderer type. If this happens then we can still have\n      // access to this item when we query for :enter nodes. If the parent\n      // is a renderer then the set data-structure will normalize the entry\n      this.collectEnterElement(hostElement);\n    }\n    return this._namespaceLookup[namespaceId] = ns;\n  }\n/**\n * @param {?} ns\n * @param {?} hostElement\n * @return {?}\n */\nprivate _balanceNamespaceList(ns: AnimationTransitionNamespace, hostElement: any) {\n    const /** @type {?} */ limit = this._namespaceList.length - 1;\n    if (limit >= 0) {\n      let /** @type {?} */ found = false;\n      for (let /** @type {?} */ i = limit; i >= 0; i--) {\n        const /** @type {?} */ nextNamespace = this._namespaceList[i];\n        if (this.driver.containsElement(nextN
 amespace.hostElement, hostElement)) {\n          this._namespaceList.splice(i + 1, 0, ns);\n          found = true;\n          break;\n        }\n      }\n      if (!found) {\n        this._namespaceList.splice(0, 0, ns);\n      }\n    } else {\n      this._namespaceList.push(ns);\n    }\n\n    this.namespacesByHostElement.set(hostElement, ns);\n    return ns;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} hostElement\n * @return {?}\n */\nregister(namespaceId: string, hostElement: any) {\n    let /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n    if (!ns) {\n      ns = this.createNamespace(namespaceId, hostElement);\n    }\n    return ns;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} name\n * @param {?} trigger\n * @return {?}\n */\nregisterTrigger(namespaceId: string, name: string, trigger: AnimationTrigger) {\n    let /** @type {?} */ ns = this._namespaceLookup[namespaceId];\n    if (ns && ns.register(name, trigger)) {\n      this.totalAnimations++;\n    }\
 n  }\n/**\n * @param {?} namespaceId\n * @param {?} context\n * @return {?}\n */\ndestroy(namespaceId: string, context: any) {\n    if (!namespaceId) return;\n\n    const /** @type {?} */ ns = this._fetchNamespace(namespaceId);\n\n    this.afterFlush(() => {\n      this.namespacesByHostElement.delete(ns.hostElement);\n      delete this._namespaceLookup[namespaceId];\n      const /** @type {?} */ index = this._namespaceList.indexOf(ns);\n      if (index >= 0) {\n        this._namespaceList.splice(index, 1);\n      }\n    });\n\n    this.afterFlushAnimationsDone(() => ns.destroy(context));\n  }\n/**\n * @param {?} id\n * @return {?}\n */\nprivate _fetchNamespace(id: string) { return this._namespaceLookup[id]; }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\ntrigger(namespaceId: string, element: any, name: string, value: any): boolean {\n    if (isElementNode(element)) {\n      this._fetchNamespace(namespaceId).trig
 ger(element, name, value);\n      return true;\n    }\n    return false;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} parent\n * @param {?} insertBefore\n * @return {?}\n */\ninsertNode(namespaceId: string, element: any, parent: any, insertBefore: boolean): void {\n    if (!isElementNode(element)) return;\n\n    // special case for when an element is removed and reinserted (move operation)\n    // when this occurs we do not want to use the element for deletion later\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n    if (details && details.setForRemoval) {\n      details.setForRemoval = false;\n    }\n\n    // in the event that the namespaceId is blank then the caller\n    // code does not contain any animation code in it, but it is\n    // just being called so that the node is marked as being inserted\n    if (namespaceId) {\n      this._fetchNamespace(namespaceId).insertNode(element, parent);
 \n    }\n\n    // only *directives and host elements are inserted before\n    if (insertBefore) {\n      this.collectEnterElement(element);\n    }\n  }\n/**\n * @param {?} element\n * @return {?}\n */\ncollectEnterElement(element: any) { this.collectedEnterElements.push(element); }\n/**\n * @param {?} element\n * @param {?} value\n * @return {?}\n */\nmarkElementAsDisabled(element: any, value: boolean) {\n    if (value) {\n      if (!this.disabledNodes.has(element)) {\n        this.disabledNodes.add(element);\n        addClass(element, DISABLED_CLASSNAME);\n      }\n    } else if (this.disabledNodes.has(element)) {\n      this.disabledNodes.delete(element);\n      removeClass(element, DISABLED_CLASSNAME);\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} context\n * @param {?=} doNotRecurse\n * @return {?}\n */\nremoveNode(namespaceId: string, element: any, context: any, doNotRecurse?: boolean): void {\n    if (!isElementNode(element)) {\n      this._
 onRemovalComplete(element, context);\n      return;\n    }\n\n    const /** @type {?} */ ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n    if (ns) {\n      ns.removeNode(element, context, doNotRecurse);\n    } else {\n      this.markElementAsRemoved(namespaceId, element, false, context);\n    }\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?=} hasAnimation\n * @param {?=} context\n * @return {?}\n */\nmarkElementAsRemoved(namespaceId: string, element: any, hasAnimation?: boolean, context?: any) {\n    this.collectedLeaveElements.push(element);\n    element[REMOVAL_FLAG] = {\n      namespaceId,\n      setForRemoval: context, hasAnimation,\n      removedBeforeQueried: false\n    };\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @param {?} name\n * @param {?} phase\n * @param {?} callback\n * @return {?}\n */\nlisten(\n      namespaceId: string, element: any, name: string, phase: string,\n      callback: (event: any) => boolean
 ): () => any {\n    if (isElementNode(element)) {\n      return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n    }\n    return () => {};\n  }\n/**\n * @param {?} entry\n * @param {?} subTimelines\n * @return {?}\n */\nprivate _buildInstruction(entry: QueueInstruction, subTimelines: ElementInstructionMap) {\n    return entry.transition.build(\n        this.driver, entry.element, entry.fromState.value, entry.toState.value,\n        entry.fromState.options, entry.toState.options, subTimelines);\n  }\n/**\n * @param {?} containerElement\n * @return {?}\n */\ndestroyInnerAnimations(containerElement: any) {\n    let /** @type {?} */ elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n    elements.forEach(element => {\n      const /** @type {?} */ players = this.playersByElement.get(element);\n      if (players) {\n        players.forEach(player => {\n          // special case for when an element is set for destruction, but hasn't start
 ed.\n          // in this situation we want to delay the destruction until the flush occurs\n          // so that any event listeners attached to the player are triggered.\n          if (player.queued) {\n            player.markedForDestroy = true;\n          } else {\n            player.destroy();\n          }\n        });\n      }\n      const /** @type {?} */ stateMap = this.statesByElement.get(element);\n      if (stateMap) {\n        Object.keys(stateMap).forEach(triggerName => stateMap[triggerName] = DELETED_STATE_VALUE);\n      }\n    });\n\n    if (this.playersByQueriedElement.size == 0) return;\n\n    elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n    if (elements.length) {\n      elements.forEach(element => {\n        const /** @type {?} */ players = this.playersByQueriedElement.get(element);\n        if (players) {\n          players.forEach(player => player.finish());\n        }\n      });\n    }\n  }\n/**\n * @return {?}\n */\nwhenRenderin
 gDone(): Promise<any> {\n    return new Promise(resolve => {\n      if (this.players.length) {\n        return optimizeGroupPlayer(this.players).onDone(() => resolve());\n      } else {\n        resolve();\n      }\n    });\n  }\n/**\n * @param {?} element\n * @return {?}\n */\nprocessLeaveNode(element: any) {\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n    if (details && details.setForRemoval) {\n      // this will prevent it from removing it twice\n      element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n      if (details.namespaceId) {\n        this.destroyInnerAnimations(element);\n        const /** @type {?} */ ns = this._fetchNamespace(details.namespaceId);\n        if (ns) {\n          ns.clearElementCache(element);\n        }\n      }\n      this._onRemovalComplete(element, details.setForRemoval);\n    }\n\n    if (this.driver.matchesElement(element, DISABLED_SELECTOR)) {\n      this.markElementAsDisabled(element, fal
 se);\n    }\n\n    this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n      this.markElementAsDisabled(element, false);\n    });\n  }\n/**\n * @param {?=} microtaskId\n * @return {?}\n */\nflush(microtaskId: number = -1) {\n    let /** @type {?} */ players: AnimationPlayer[] = [];\n    if (this.newHostElements.size) {\n      this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n      this.newHostElements.clear();\n    }\n\n    if (this._namespaceList.length &&\n        (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n      const /** @type {?} */ cleanupFns: Function[] = [];\n      try {\n        players = this._flushAnimations(cleanupFns, microtaskId);\n      } finally {\n        for (let /** @type {?} */ i = 0; i < cleanupFns.length; i++) {\n          cleanupFns[i]();\n        }\n      }\n    } else {\n      for (let /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n        const /** @ty
 pe {?} */ element = this.collectedLeaveElements[i];\n        this.processLeaveNode(element);\n      }\n    }\n\n    this.totalQueuedPlayers = 0;\n    this.collectedEnterElements.length = 0;\n    this.collectedLeaveElements.length = 0;\n    this._flushFns.forEach(fn => fn());\n    this._flushFns = [];\n\n    if (this._whenQuietFns.length) {\n      // we move these over to a variable so that\n      // if any new callbacks are registered in another\n      // flush they do not populate the existing set\n      const /** @type {?} */ quietFns = this._whenQuietFns;\n      this._whenQuietFns = [];\n\n      if (players.length) {\n        optimizeGroupPlayer(players).onDone(() => { quietFns.forEach(fn => fn()); });\n      } else {\n        quietFns.forEach(fn => fn());\n      }\n    }\n  }\n/**\n * @param {?} errors\n * @return {?}\n */\nreportError(errors: string[]) {\n    throw new Error(\n        `Unable to process animations due to the following failed trigger transitions\\n ${\n         
    errors.join('\\n')}`);\n  }\n/**\n * @param {?} cleanupFns\n * @param {?} microtaskId\n * @return {?}\n */\nprivate _flushAnimations(cleanupFns: Function[], microtaskId: number):\n      TransitionAnimationPlayer[] {\n    const /** @type {?} */ subTimelines = new ElementInstructionMap();\n    const /** @type {?} */ skippedPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ skippedPlayersMap = new Map<any, AnimationPlayer[]>();\n    const /** @type {?} */ queuedInstructions: QueuedTransition[] = [];\n    const /** @type {?} */ queriedElements = new Map<any, TransitionAnimationPlayer[]>();\n    const /** @type {?} */ allPreStyleElements = new Map<any, Set<string>>();\n    const /** @type {?} */ allPostStyleElements = new Map<any, Set<string>>();\n\n    const /** @type {?} */ disabledElementsSet = new Set<any>();\n    this.disabledNodes.forEach(node => {\n      disabledElementsSet.add(node);\n      const /** @type {?} */ nodesThatAreDisabled = this.driver.query(nod
 e, QUEUED_SELECTOR, true);\n      for (let /** @type {?} */ i = 0; i < nodesThatAreDisabled.length; i++) {\n        disabledElementsSet.add(nodesThatAreDisabled[i]);\n      }\n    });\n\n    const /** @type {?} */ bodyNode = getBodyNode();\n    const /** @type {?} */ allEnterNodes: any[] = this.collectedEnterElements.length ?\n        this.collectedEnterElements.filter(createIsRootFilterFn(this.collectedEnterElements)) :\n        [];\n\n    // this must occur before the instructions are built below such that\n    // the :enter queries match the elements (since the timeline queries\n    // are fired during instruction building).\n    for (let /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n      addClass(allEnterNodes[i], ENTER_CLASSNAME);\n    }\n\n    const /** @type {?} */ allLeaveNodes: any[] = [];\n    const /** @type {?} */ leaveNodesWithoutAnimations = new Set<any>();\n    for (let /** @type {?} */ i = 0; i < this.collectedLeaveElements.length; i++) {\n      const /*
 * @type {?} */ element = this.collectedLeaveElements[i];\n      const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n      if (details && details.setForRemoval) {\n        addClass(element, LEAVE_CLASSNAME);\n        allLeaveNodes.push(element);\n        if (!details.hasAnimation) {\n          leaveNodesWithoutAnimations.add(element);\n        }\n      }\n    }\n\n    cleanupFns.push(() => {\n      allEnterNodes.forEach(element => removeClass(element, ENTER_CLASSNAME));\n      allLeaveNodes.forEach(element => {\n        removeClass(element, LEAVE_CLASSNAME);\n        this.processLeaveNode(element);\n      });\n    });\n\n    const /** @type {?} */ allPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ erroneousTransitions: AnimationTransitionInstruction[] = [];\n    for (let /** @type {?} */ i = this._namespaceList.length - 1; i >= 0; i--) {\n      const /** @type {?} */ ns = this._namespaceList[i];\n      ns.drain
 QueuedTransitions(microtaskId).forEach(entry => {\n        const /** @type {?} */ player = entry.player;\n        allPlayers.push(player);\n\n        const /** @type {?} */ element = entry.element;\n        if (!bodyNode || !this.driver.containsElement(bodyNode, element)) {\n          player.destroy();\n          return;\n        }\n\n        const /** @type {?} */ instruction = /** @type {?} */(( this._buildInstruction(entry, subTimelines)));\n        if (instruction.errors && instruction.errors.length) {\n          erroneousTransitions.push(instruction);\n          return;\n        }\n\n        // if a unmatched transition is queued to go then it SHOULD NOT render\n        // an animation and cancel the previously running animations.\n        if (entry.isFallbackTransition) {\n          player.onStart(() => eraseStyles(element, instruction.fromStyles));\n          player.onDestroy(() => setStyles(element, instruction.toStyles));\n          skippedPlayers.push(player);\n          r
 eturn;\n        }\n\n        // this means that if a parent animation uses this animation as a sub trigger\n        // then it will instruct the timeline builder to not add a player delay, but\n        // instead stretch the first keyframe gap up until the animation starts. The\n        // reason this is important is to prevent extra initialization styles from being\n        // required by the user in the animation.\n        instruction.timelines.forEach(tl => tl.stretchStartingKeyframe = true);\n\n        subTimelines.append(element, instruction.timelines);\n\n        const /** @type {?} */ tuple = {instruction, player, element};\n\n        queuedInstructions.push(tuple);\n\n        instruction.queriedElements.forEach(\n            element => getOrSetAsInMap(queriedElements, element, []).push(player));\n\n        instruction.preStyleProps.forEach((stringMap, element) => {\n          const /** @type {?} */ props = Object.keys(stringMap);\n          if (props.length) {\n            l
 et /** @type {?} */ setVal: Set<string> = /** @type {?} */(( allPreStyleElements.get(element)));\n            if (!setVal) {\n              allPreStyleElements.set(element, setVal = new Set<string>());\n            }\n            props.forEach(prop => setVal.add(prop));\n          }\n        });\n\n        instruction.postStyleProps.forEach((stringMap, element) => {\n          const /** @type {?} */ props = Object.keys(stringMap);\n          let /** @type {?} */ setVal: Set<string> = /** @type {?} */(( allPostStyleElements.get(element)));\n          if (!setVal) {\n            allPostStyleElements.set(element, setVal = new Set<string>());\n          }\n          props.forEach(prop => setVal.add(prop));\n        });\n      });\n    }\n\n    if (erroneousTransitions.length) {\n      const /** @type {?} */ errors: string[] = [];\n      erroneousTransitions.forEach(instruction => {\n        errors.push(`@${instruction.triggerName} has failed due to:\\n`); /** @type {?} */((\n        ins
 truction.errors)).forEach(error => errors.push(`- ${error}\\n`));\n      });\n\n      allPlayers.forEach(player => player.destroy());\n      this.reportError(errors);\n    }\n\n    // these can only be detected here since we have a map of all the elements\n    // that have animations attached to them... We use a set here in the event\n    // multiple enter captures on the same element were caught in different\n    // renderer namespaces (e.g. when a @trigger was on a host binding that had *ngIf)\n    const /** @type {?} */ enterNodesWithoutAnimations = new Set<any>();\n    for (let /** @type {?} */ i = 0; i < allEnterNodes.length; i++) {\n      const /** @type {?} */ element = allEnterNodes[i];\n      if (!subTimelines.has(element)) {\n        enterNodesWithoutAnimations.add(element);\n      }\n    }\n\n    const /** @type {?} */ allPreviousPlayersMap = new Map<any, TransitionAnimationPlayer[]>();\n    let /** @type {?} */ sortedParentElements: any[] = [];\n    queuedInstructions.fo
 rEach(entry => {\n      const /** @type {?} */ element = entry.element;\n      if (subTimelines.has(element)) {\n        sortedParentElements.unshift(element);\n        this._beforeAnimationBuild(\n            entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n      }\n    });\n\n    skippedPlayers.forEach(player => {\n      const /** @type {?} */ element = player.element;\n      const /** @type {?} */ previousPlayers =\n          this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n      previousPlayers.forEach(prevPlayer => {\n        getOrSetAsInMap(allPreviousPlayersMap, element, []).push(prevPlayer);\n        prevPlayer.destroy();\n      });\n    });\n\n    // this is a special case for nodes that will be removed (either by)\n    // having their own leave animations or by being queried in a container\n    // that will be removed once a parent animation is complete. The idea\n    // here is that * styles must be identical to
  ! styles because of\n    // backwards compatibility (* is also filled in by default in many places).\n    // Otherwise * styles will return an empty value or auto since the element\n    // that is being getComputedStyle'd will not be visible (since * = destination)\n    const /** @type {?} */ replaceNodes = allLeaveNodes.filter(node => {\n      return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n    });\n\n    // POST STAGE: fill the * styles\n    const [postStylesMap, allLeaveQueriedNodes] = cloakAndComputeStyles(\n        this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n\n    allLeaveQueriedNodes.forEach(node => {\n      if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n        replaceNodes.push(node);\n      }\n    });\n\n    // PRE STAGE: fill the ! styles\n    const [preStylesMap] = allPreStyleElements.size ?\n        cloakAndComputeStyles(\n            this.driver, enterNodesWithoutAnimati
 ons, allPreStyleElements, PRE_STYLE) :\n        [new Map<any, ɵStyleData>()];\n\n    replaceNodes.forEach(node => {\n      const /** @type {?} */ post = postStylesMap.get(node);\n      const /** @type {?} */ pre = preStylesMap.get(node);\n      postStylesMap.set(node, /** @type {?} */(( { ...post, ...pre } as any)));\n    });\n\n    const /** @type {?} */ rootPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ subPlayers: TransitionAnimationPlayer[] = [];\n    queuedInstructions.forEach(entry => {\n      const {element, player, instruction} = entry;\n      // this means that it was never consumed by a parent animation which\n      // means that it is independent and therefore should be set for animation\n      if (subTimelines.has(element)) {\n        if (disabledElementsSet.has(element)) {\n          skippedPlayers.push(player);\n          return;\n        }\n\n        const /** @type {?} */ innerPlayer = this._buildAnimation(\n            player.namespaceId, in
 struction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap,\n            postStylesMap);\n        player.setRealPlayer(innerPlayer);\n\n        let /** @type {?} */ parentHasPriority: any = null;\n        for (let /** @type {?} */ i = 0; i < sortedParentElements.length; i++) {\n          const /** @type {?} */ parent = sortedParentElements[i];\n          if (parent === element) break;\n          if (this.driver.containsElement(parent, element)) {\n            parentHasPriority = parent;\n            break;\n          }\n        }\n\n        if (parentHasPriority) {\n          const /** @type {?} */ parentPlayers = this.playersByElement.get(parentHasPriority);\n          if (parentPlayers && parentPlayers.length) {\n            player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n          }\n          skippedPlayers.push(player);\n        } else {\n          rootPlayers.push(player);\n        }\n      } else {\n        eraseStyles(element, instruction.fromStyles);\n    
     player.onDestroy(() => setStyles(element, instruction.toStyles));\n        // there still might be a ancestor player animating this\n        // element therefore we will still add it as a sub player\n        // even if its animation may be disabled\n        subPlayers.push(player);\n        if (disabledElementsSet.has(element)) {\n          skippedPlayers.push(player);\n        }\n      }\n    });\n\n    // find all of the sub players' corresponding inner animation player\n    subPlayers.forEach(player => {\n      // even if any players are not found for a sub animation then it\n      // will still complete itself after the next tick since it's Noop\n      const /** @type {?} */ playersForElement = skippedPlayersMap.get(player.element);\n      if (playersForElement && playersForElement.length) {\n        const /** @type {?} */ innerPlayer = optimizeGroupPlayer(playersForElement);\n        player.setRealPlayer(innerPlayer);\n      }\n    });\n\n    // the reason why we don't actu
 ally play the animation is\n    // because all that a skipped player is designed to do is to\n    // fire the start/done transition callback events\n    skippedPlayers.forEach(player => {\n      if (player.parentPlayer) {\n        player.parentPlayer.onDestroy(() => player.destroy());\n      } else {\n        player.destroy();\n      }\n    });\n\n    // run through all of the queued removals and see if they\n    // were picked up by a query. If not then perform the removal\n    // operation right away unless a parent animation is ongoing.\n    for (let /** @type {?} */ i = 0; i < allLeaveNodes.length; i++) {\n      const /** @type {?} */ element = allLeaveNodes[i];\n      const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as ElementAnimationState));\n      removeClass(element, LEAVE_CLASSNAME);\n\n      // this means the element has a removal animation that is being\n      // taken care of and therefore the inner elements will hang around\n      // until that
  animation is over (or the parent queried animation)\n      if (details && details.hasAnimation) continue;\n\n      let /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n\n      // if this element is queried or if it contains queried children\n      // then we want for the element not to be removed from the page\n      // until the queried animations have finished\n      if (queriedElements.size) {\n        let /** @type {?} */ queriedPlayerResults = queriedElements.get(element);\n        if (queriedPlayerResults && queriedPlayerResults.length) {\n          players.push(...queriedPlayerResults);\n        }\n\n        let /** @type {?} */ queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n        for (let /** @type {?} */ j = 0; j < queriedInnerElements.length; j++) {\n          let /** @type {?} */ queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n          if (queriedPlayers && queriedPlayers.length) {\n            players.push
 (...queriedPlayers);\n          }\n        }\n      }\n\n      const /** @type {?} */ activePlayers = players.filter(p => !p.destroyed);\n      if (activePlayers.length) {\n        removeNodesAfterAnimationDone(this, element, activePlayers);\n      } else {\n        this.processLeaveNode(element);\n      }\n    }\n\n    // this is required so the cleanup method doesn't remove them\n    allLeaveNodes.length = 0;\n\n    rootPlayers.forEach(player => {\n      this.players.push(player);\n      player.onDone(() => {\n        player.destroy();\n\n        const /** @type {?} */ index = this.players.indexOf(player);\n        this.players.splice(index, 1);\n      });\n      player.play();\n    });\n\n    return rootPlayers;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} element\n * @return {?}\n */\nelementContainsData(namespaceId: string, element: any) {\n    let /** @type {?} */ containsData = false;\n    const /** @type {?} */ details = /** @type {?} */(( element[REMOVAL_FLAG] as Ele
 mentAnimationState));\n    if (details && details.setForRemoval) containsData = true;\n    if (this.playersByElement.has(element)) containsData = true;\n    if (this.playersByQueriedElement.has(element)) containsData = true;\n    if (this.statesByElement.has(element)) containsData = true;\n    return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n  }\n/**\n * @param {?} callback\n * @return {?}\n */\nafterFlush(callback: () => any) { this._flushFns.push(callback); }\n/**\n * @param {?} callback\n * @return {?}\n */\nafterFlushAnimationsDone(callback: () => any) { this._whenQuietFns.push(callback); }\n/**\n * @param {?} element\n * @param {?} isQueriedElement\n * @param {?=} namespaceId\n * @param {?=} triggerName\n * @param {?=} toStateValue\n * @return {?}\n */\nprivate _getPreviousPlayers(\n      element: string, isQueriedElement: boolean, namespaceId?: string, triggerName?: string,\n      toStateValue?: any): TransitionAnimationPlayer[] {\n    le
 t /** @type {?} */ players: TransitionAnimationPlayer[] = [];\n    if (isQueriedElement) {\n      const /** @type {?} */ queriedElementPlayers = this.playersByQueriedElement.get(element);\n      if (queriedElementPlayers) {\n        players = queriedElementPlayers;\n      }\n    } else {\n      const /** @type {?} */ elementPlayers = this.playersByElement.get(element);\n      if (elementPlayers) {\n        const /** @type {?} */ isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n        elementPlayers.forEach(player => {\n          if (player.queued) return;\n          if (!isRemovalAnimation && player.triggerName != triggerName) return;\n          players.push(player);\n        });\n      }\n    }\n    if (namespaceId || triggerName) {\n      players = players.filter(player => {\n        if (namespaceId && namespaceId != player.namespaceId) return false;\n        if (triggerName && triggerName != player.triggerName) return false;\n        return true;\n      });\n  
   }\n    return players;\n  }\n/**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @return {?}\n */\nprivate _beforeAnimationBuild(\n      namespaceId: string, instruction: AnimationTransitionInstruction,\n      allPreviousPlayersMap: Map<any, TransitionAnimationPlayer[]>) {\n    const /** @type {?} */ triggerName = instruction.triggerName;\n    const /** @type {?} */ rootElement = instruction.element;\n\n    // when a removal animation occurs, ALL previous players are collected\n    // and destroyed (even if they are outside of the current namespace)\n    const /** @type {?} */ targetNameSpaceId: string|undefined =\n        instruction.isRemovalTransition ? undefined : namespaceId;\n    const /** @type {?} */ targetTriggerName: string|undefined =\n        instruction.isRemovalTransition ? undefined : triggerName;\n\n    instruction.timelines.map(timelineInstruction => {\n      const /** @type {?} */ element = timelineInstruction.elemen
 t;\n      const /** @type {?} */ isQueriedElement = element !== rootElement;\n      const /** @type {?} */ players = getOrSetAsInMap(allPreviousPlayersMap, element, []);\n      const /** @type {?} */ previousPlayers = this._getPreviousPlayers(\n          element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n      previousPlayers.forEach(player => {\n        const /** @type {?} */ realPlayer = /** @type {?} */(( player.getRealPlayer() as any));\n        if (realPlayer.beforeDestroy) {\n          realPlayer.beforeDestroy();\n        }\n        player.destroy();\n        players.push(player);\n      });\n    });\n\n    // this needs to be done so that the PRE/POST styles can be\n    // computed properly without interfering with the previous animation\n    eraseStyles(rootElement, instruction.fromStyles);\n  }\n/**\n * @param {?} namespaceId\n * @param {?} instruction\n * @param {?} allPreviousPlayersMap\n * @param {?} skippedPlayersMap\n * @param {?} p
 reStylesMap\n * @param {?} postStylesMap\n * @return {?}\n */\nprivate _buildAnimation(\n      namespaceId: string, instruction: AnimationTransitionInstruction,\n      allPreviousPlayersMap: Map<any, TransitionAnimationPlayer[]>,\n      skippedPlayersMap: Map<any, AnimationPlayer[]>, preStylesMap: Map<any, ɵStyleData>,\n      postStylesMap: Map<any, ɵStyleData>): AnimationPlayer {\n    const /** @type {?} */ triggerName = instruction.triggerName;\n    const /** @type {?} */ rootElement = instruction.element;\n\n    // we first run this so that the previous animation player\n    // data can be passed into the successive animation players\n    const /** @type {?} */ allQueriedPlayers: TransitionAnimationPlayer[] = [];\n    const /** @type {?} */ allConsumedElements = new Set<any>();\n    const /** @type {?} */ allSubElements = new Set<any>();\n    const /** @type {?} */ allNewPlayers = instruction.timelines.map(timelineInstruction => {\n      const /** @type {?} */ element = timelin
 eInstruction.element;\n      allConsumedElements.add(element);\n\n      // FIXME (matsko): make sure to-be-removed animations are removed properly\n      const /** @type {?} */ details = element[REMOVAL_FLAG];\n      if (details && details.removedBeforeQueried) return new NoopAnimationPlayer();\n\n      const /** @type {?} */ isQueriedElement = element !== rootElement;\n      const /** @type {?} */ previousPlayers =\n          flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n                                  .map(p => p.getRealPlayer()))\n              .filter(p => {\n                // the `element` is not apart of the AnimationPlayer definition, but\n                // Mock/WebAnimations\n                // use the element within their implementation. This will be added in Angular5 to\n                // AnimationPlayer\n                const /** @type {?} */ pp = /** @type {?} */(( p as any));\n                return pp.element ? pp.element === elem
 ent : false;\n              });\n\n      const /** @type {?} */ preStyles = preStylesMap.get(element);\n      const /** @type {?} */ postStyles = postStylesMap.get(element);\n      const /** @type {?} */ keyframes = normalizeKeyframes(\n          this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles,\n          postStyles);\n      const /** @type {?} */ player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n\n      // this means that this particular player belongs to a sub trigger. It is\n      // important that we match this player up with the corresponding (@trigger.listener)\n      if (timelineInstruction.subTimeline && skippedPlayersMap) {\n        allSubElements.add(element);\n      }\n\n      if (isQueriedElement) {\n        const /** @type {?} */ wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n        wrappedPlayer.setRealPlayer(player);\n        allQueriedPlayers.push(wrappedPlayer);\n      
 }\n\n      return player;\n    });\n\n    allQueriedPlayers.forEach(player => {\n      getOrSetAsInMap(this.playersByQueriedElement, player.element, []).push(player);\n      player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n    });\n\n    allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n    const /** @type {?} */ player = optimizeGroupPlayer(allNewPlayers);\n    player.onDestroy(() => {\n      allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n      setStyles(rootElement, instruction.toStyles);\n    });\n\n    // this basically makes all of the callbacks for sub element animations\n    // be dependent on the upper players for when they finish\n    allSubElements.forEach(\n        element => { getOrSetAsInMap(skippedPlayersMap, element, []).push(player); });\n\n    return player;\n  }\n/**\n * @param {?} instruction\n * @param {?} keyframes\n * @param {?} previousPlaye
 rs\n * @return {?}\n */\nprivate _buildPlayer(\n      instruction: AnimationTimelineInstruction, keyframes: ɵStyleData[],\n      previousPlayers: AnimationPlayer[]): AnimationPlayer {\n    if (keyframes.length > 0) {\n      return this.driver.animate(\n          instruction.element, keyframes, instruction.duration, instruction.delay,\n          instruction.easing, previousPlayers);\n    }\n\n    // special case for when an empty transition|definition is provided\n    // ... there is no point in rendering an empty animation\n    return new NoopAnimationPlayer();\n  }\n}\n\nfunction TransitionAnimationEngine_tsickle_Closure_declarations() {\n/** @type {?} */\nTransitionAnimationEngine.prototype.players;\n/** @type {?} */\nTransitionAnimationEngine.prototype.newHostElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.playersByElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.playersByQueriedElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.state
 sByElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.disabledNodes;\n/** @type {?} */\nTransitionAnimationEngine.prototype.totalAnimations;\n/** @type {?} */\nTransitionAnimationEngine.prototype.totalQueuedPlayers;\n/** @type {?} */\nTransitionAnimationEngine.prototype._namespaceLookup;\n/** @type {?} */\nTransitionAnimationEngine.prototype._namespaceList;\n/** @type {?} */\nTransitionAnimationEngine.prototype._flushFns;\n/** @type {?} */\nTransitionAnimationEngine.prototype._whenQuietFns;\n/** @type {?} */\nTransitionAnimationEngine.prototype.namespacesByHostElement;\n/** @type {?} */\nTransitionAnimationEngine.prototype.collectedEnterElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.collectedLeaveElements;\n/** @type {?} */\nTransitionAnimationEngine.prototype.onRemovalComplete;\n/** @type {?} */\nTransitionAnimationEngine.prototype.driver;\n/** @type {?} */\nTransitionAnimationEngine.prototype._normalizer;\n}\n\nexport class TransitionAnimationPlayer 
 implements AnimationPlayer {\nprivate _player: AnimationPlayer = new NoopAnimationPlayer();\nprivate _containsRealPlayer = false;\nprivate _queuedCallbacks: {[name: string]: (() => any)[]} = {};\nprivate _destroyed = false;\npublic parentPlayer: AnimationPlayer;\npublic markedForDestroy: boolean = false;\n/**\n * @param {?} namespaceId\n * @param {?} triggerName\n * @param {?} element\n */\nconstructor(public namespaceId: string,\npublic triggerName: string,\npublic element: any) {}\n/**\n * @return {?}\n */\nget queued() { return this._containsRealPlayer == false; }\n/**\n * @return {?}\n */\nget destroyed() { return this._destroyed; }\n/**\n * @param {?} player\n * @return {?}\n */\nsetRealPlayer(player: AnimationPlayer) {\n    if (this._containsRealPlayer) return;\n\n    this._player = player;\n    Object.keys(this._queuedCallbacks).forEach(phase => {\n      this._queuedCallbacks[phase].forEach(\n          callback => listenOnPlayer(player, phase, undefined, callback));\n    });\
 n    this._queuedCallbacks = {};\n    this._containsRealPlayer = true;\n  }\n/**\n * @return {?}\n */\ngetRealPlayer() { return this._player; }\n/**\n * @param {?} name\n * @param {?} callback\n * @return {?}\n */\nprivate _queueEvent(name: string, callback: (event: any) => any): void {\n    getOrSetAsInMap(this._queuedCallbacks, name, []).push(callback);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDone(fn: () => void): void {\n    if (this.queued) {\n      this._queueEvent('done', fn);\n    }\n    this._player.onDone(fn);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonStart(fn: () => void): void {\n    if (this.queued) {\n      this._queueEvent('start', fn);\n    }\n    this._player.onStart(fn);\n  }\n/**\n * @param {?} fn\n * @return {?}\n */\nonDestroy(fn: () => void): void {\n    if (this.queued) {\n      this._queueEvent('destroy', fn);\n    }\n    this._player.onDestroy(fn);\n  }\n/**\n * @return {?}\n */\ninit(): void { this._player.init(); }\n/**\n * @return {?}
 \n */\nhasStarted(): boolean { return this.queued ? false : this._player.hasStarted(); }\n/**\n * @return {?}\n */\nplay(): void { !this.queued && this._player.play(); }\n/**\n * @return {?}\n */\npause(): void { !this.queued && this._player.pause(); }\n/**\n * @return {?}\n */\nrestart(): void { !this.queued && this._player.restart(); }\n/**\n * @return {?}\n */\nfinish(): void { this._player.finish(); }\n/**\n * @return {?}\n */\ndestroy(): void {\n    this._destroyed = true;\n    this._player.destroy();\n  }\n/**\n * @return {?}\n */\nreset(): void { !this.queued && this._player.reset(); }\n/**\n * @param {?} p\n * @return {?}\n */\nsetPosition(p: any): void {\n    if (!this.queued) {\n      this._player.setPosition(p);\n    }\n  }\n/**\n * @return {?}\n */\ngetPosition(): number { return this.queued ? 0 : this._player.getPosition(); }\n/**\n * @return {?}\n */\nget totalTime(): number { return this._player.totalTime; }\n}\n\nfunction TransitionAnimationPlayer_tsickle_Closure_dec
 larations() {\n/** @type {?} */\nTransitionAnimationPlayer.prototype._player;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._containsRealPlayer;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._queuedCallbacks;\n/** @type {?} */\nTransitionAnimationPlayer.prototype._destroyed;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.parentPlayer;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.markedForDestroy;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.namespaceId;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.triggerName;\n/** @type {?} */\nTransitionAnimationPlayer.prototype.element;\n}\n\n/**\n * @param {?} map\n * @param {?} key\n * @param {?} value\n * @return {?}\n */\nfunction deleteOrUnsetInMap(map: Map<any, any[]>| {[key: string]: any}, key: any, value: any) {\n  let /** @type {?} */ currentValues: any[]|null|undefined;\n  if (map instanceof Map) {\n    currentValues = map.get(key);\n    if (currentValues) {\n      if (currentValue
 s.length) {\n        const /** @type {?} */ index = currentValues.indexOf(value);\n        currentValues.splice(index, 1);\n      }\n      if (currentValues.length == 0) {\n        map.delete(key);\n      }\n    }\n  } else {\n    currentValues = map[key];\n    if (currentValues) {\n      if (currentValues.length) {\n        const /** @type {?} */ index = currentValues.indexOf(value);\n        currentValues.splice(index, 1);\n      }\n      if (currentValues.length == 0) {\n        delete map[key];\n      }\n    }\n  }\n  return currentValues;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction normalizeTriggerValue(value: any): any {\n  // we use `!= null` here because it's the most simple\n  // way to test against a \"falsy\" value without mixing\n  // in empty strings or a zero value. DO NOT OPTIMIZE.\n  return value != null ? value : null;\n}\n/**\n * @param {?} node\n * @return {?}\n */\nfunction isElementNode(node: any) {\n  return node && node['nodeType'] === 1;\n}\n/
 **\n * @param {?} eventName\n * @return {?}\n */\nfunction isTriggerEventValid(eventName: string): boolean {\n  return eventName == 'start' || eventName == 'done';\n}\n/**\n * @param {?} element\n * @param {?=} value\n * @return {?}\n */\nfunction cloakElement(element: any, value?: string) {\n  const /** @type {?} */ oldValue = element.style.display;\n  element.style.display = value != null ? value : 'none';\n  return oldValue;\n}\n/**\n * @param {?} driver\n * @param {?} elements\n * @param {?} elementPropsMap\n * @param {?} defaultStyle\n * @return {?}\n */\nfunction cloakAndComputeStyles(\n    driver: AnimationDriver, elements: Set<any>, elementPropsMap: Map<any, Set<string>>,\n    defaultStyle: string): [Map<any, ɵStyleData>, any[]] {\n  const /** @type {?} */ cloakVals: string[] = [];\n  elements.forEach(element => cloakVals.push(cloakElement(element)));\n\n  const /** @type {?} */ valuesMap = new Map<any, ɵStyleData>();\n  const /** @type {?} */ failedElements: any[] = [];\n
 \n  elementPropsMap.forEach((props: Set<string>, element: any) => {\n    const /** @type {?} */ styles: ɵStyleData = {};\n    props.forEach(prop => {\n      const /** @type {?} */ value = styles[prop] = driver.computeStyle(element, prop, defaultStyle);\n\n      // there is no easy way to detect this because a sub element could be removed\n      // by a parent animation element being detached.\n      if (!value || value.length == 0) {\n        element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n        failedElements.push(element);\n      }\n    });\n    valuesMap.set(element, styles);\n  });\n\n  // we use a index variable here since Set.forEach(a, i) does not return\n  // an index value for the closure (but instead just the value)\n  let /** @type {?} */ i = 0;\n  elements.forEach(element => cloakElement(element, cloakVals[i++]));\n  return [valuesMap, failedElements];\n}\n/**\n * @param {?} nodes\n * @return {?}\n */\nfunction createIsRootFilterFn(nodes: any): (node: any) => boo
 lean {\n  const /** @type {?} */ nodeSet = new Set(nodes);\n  const /** @type {?} */ knownRootContainer = new Set();\n  let /** @type {?} */ isRoot: (node: any) => boolean;\n  isRoot = node => {\n    if (!node) return true;\n    if (nodeSet.has(node.parentNode)) return false;\n    if (knownRootContainer.has(node.parentNode)) return true;\n    if (isRoot(node.parentNode)) {\n      knownRootContainer.add(node);\n      return true;\n    }\n    return false;\n  };\n  return isRoot;\n}\n\nconst /** @type {?} */ CLASSES_CACHE_KEY = '$$classes';\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction containsClass(element: any, className: string): boolean {\n  if (element.classList) {\n    return element.classList.contains(className);\n  } else {\n    const /** @type {?} */ classes = element[CLASSES_CACHE_KEY];\n    return classes && classes[className];\n  }\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction addClass(element: 
 any, className: string) {\n  if (element.classList) {\n    element.classList.add(className);\n  } else {\n    let /** @type {?} */ classes: {[className: string]: boolean} = element[CLASSES_CACHE_KEY];\n    if (!classes) {\n      classes = element[CLASSES_CACHE_KEY] = {};\n    }\n    classes[className] = true;\n  }\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction removeClass(element: any, className: string) {\n  if (element.classList) {\n    element.classList.remove(className);\n  } else {\n    let /** @type {?} */ classes: {[className: string]: boolean} = element[CLASSES_CACHE_KEY];\n    if (classes) {\n      delete classes[className];\n    }\n  }\n}\n/**\n * @return {?}\n */\nfunction getBodyNode(): any|null {\n  if (typeof document != 'undefined') {\n    return document.body;\n  }\n  return null;\n}\n/**\n * @param {?} engine\n * @param {?} element\n * @param {?} players\n * @return {?}\n */\nfunction removeNodesAfterAnimationDone(\n    engine
 : TransitionAnimationEngine, element: any, players: AnimationPlayer[]) {\n  optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\n/**\n * @param {?} players\n * @return {?}\n */\nfunction flattenGroupPlayers(players: AnimationPlayer[]): AnimationPlayer[] {\n  const /** @type {?} */ finalPlayers: AnimationPlayer[] = [];\n  _flattenGroupPlayersRecur(players, finalPlayers);\n  return finalPlayers;\n}\n/**\n * @param {?} players\n * @param {?} finalPlayers\n * @return {?}\n */\nfunction _flattenGroupPlayersRecur(players: AnimationPlayer[], finalPlayers: AnimationPlayer[]) {\n  for (let /** @type {?} */ i = 0; i < players.length; i++) {\n    const /** @type {?} */ player = players[i];\n    if (player instanceof AnimationGroupPlayer) {\n      _flattenGroupPlayersRecur(player.players, finalPlayers);\n    } else {\n      finalPlayers.push( /** @type {?} */((player as AnimationPlayer)));\n    }\n  }\n}\n/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfu
 nction objEquals(a: {[key: string]: any}, b: {[key: string]: any}): boolean {\n  const /** @type {?} */ k1 = Object.keys(a);\n  const /** @type {?} */ k2 = Object.keys(b);\n  if (k1.length != k2.length) return false;\n  for (let /** @type {?} */ i = 0; i < k1.length; i++) {\n   

<TRUNCATED>

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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/platform.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/platform.js b/node_modules/@angular/cdk/esm2015/platform.js
new file mode 100644
index 0000000..0e32d67
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/platform.js
@@ -0,0 +1,133 @@
+/**
+ * @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 } from '@angular/core';
+
+// Whether the current platform supports the V8 Break Iterator. The V8 check
+// is necessary to detect all Blink based browsers.
+const hasV8BreakIterator = (typeof (Intl) !== 'undefined' && ((Intl)).v8BreakIterator);
+/**
+ * Service to detect the current platform by comparing the userAgent strings and
+ * checking browser-specific global properties.
+ * \@docs-private
+ */
+class Platform {
+    constructor() {
+        this.isBrowser = typeof document === 'object' && !!document;
+        /**
+         * Layout Engines
+         */
+        this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);
+        this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);
+        // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.
+        this.BLINK = this.isBrowser &&
+            (!!(((window)).chrome || hasV8BreakIterator) && !!CSS && !this.EDGE && !this.TRIDENT);
+        // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to
+        // ensure that Webkit runs standalone and is not used as another engine's base.
+        this.WEBKIT = this.isBrowser &&
+            /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;
+        /**
+         * Browsers and Platform Types
+         */
+        this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
+        // It's difficult to detect the plain Gecko engine, because most of the browsers identify
+        // them self as Gecko-like browsers and modify the userAgent's according to that.
+        // Since we only cover one explicit Firefox case, we can simply check for Firefox
+        // instead of having an unstable check for Gecko.
+        this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);
+        // Trident on mobile adds the android platform to the userAgent to trick detections.
+        this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;
+        // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake
+        // this and just place the Safari keyword in the userAgent. To be more safe about Safari every
+        // Safari browser should also use Webkit as its layout engine.
+        this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;
+    }
+}
+Platform.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+Platform.ctorParameters = () => [];
+
+/**
+ * Cached result Set of input types support by the current browser.
+ */
+let supportedInputTypes;
+/**
+ * Types of <input> that *might* be supported.
+ */
+const candidateInputTypes = [
+    // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after
+    // first changing it to something else:
+    // The specified value "" does not conform to the required format.
+    // The format is "#rrggbb" where rr, gg, bb are two-digit hexadecimal numbers.
+    'color',
+    'button',
+    'checkbox',
+    'date',
+    'datetime-local',
+    'email',
+    'file',
+    'hidden',
+    'image',
+    'month',
+    'number',
+    'password',
+    'radio',
+    'range',
+    'reset',
+    'search',
+    'submit',
+    'tel',
+    'text',
+    'time',
+    'url',
+    'week',
+];
+/**
+ * @return {?} The input types supported by this browser.
+ */
+function getSupportedInputTypes() {
+    // Result is cached.
+    if (supportedInputTypes) {
+        return supportedInputTypes;
+    }
+    // We can't check if an input type is not supported until we're on the browser, so say that
+    // everything is supported when not on the browser. We don't use `Platform` here since it's
+    // just a helper function and can't inject it.
+    if (typeof document !== 'object' || !document) {
+        supportedInputTypes = new Set(candidateInputTypes);
+        return supportedInputTypes;
+    }
+    let /** @type {?} */ featureTestInput = document.createElement('input');
+    supportedInputTypes = new Set(candidateInputTypes.filter(value => {
+        featureTestInput.setAttribute('type', value);
+        return featureTestInput.type === value;
+    }));
+    return supportedInputTypes;
+}
+
+class PlatformModule {
+}
+PlatformModule.decorators = [
+    { type: NgModule, args: [{
+                providers: [Platform]
+            },] },
+];
+/**
+ * @nocollapse
+ */
+PlatformModule.ctorParameters = () => [];
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { Platform, getSupportedInputTypes, PlatformModule };
+//# sourceMappingURL=platform.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/platform.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/platform.js.map b/node_modules/@angular/cdk/esm2015/platform.js.map
new file mode 100644
index 0000000..5c1b7e8
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/platform.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"platform.js","sources":["../../packages/cdk/platform/platform.js","../../packages/cdk/platform/features.js","../../packages/cdk/platform/platform-module.js","../../packages/cdk/platform/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';\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nconst /** @type {?} */ hasV8BreakIterator = (typeof (Intl) !== 'undefined' && ((Intl)).v8BreakIterator);\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n * \\@docs-private\n */\nexport class Platform {\n    constructor() {\n        this.isBrowser = typeof document === 'object' && !!do
 cument;\n        /**\n         * Layout Engines\n         */\n        this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n        this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n        // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n        this.BLINK = this.isBrowser &&\n            (!!(((window)).chrome || hasV8BreakIterator) && !!CSS && !this.EDGE && !this.TRIDENT);\n        // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n        // ensure that Webkit runs standalone and is not used as another engine's base.\n        this.WEBKIT = this.isBrowser &&\n            /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n        /**\n         * Browsers and Platform Types\n         */\n        this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n        // It's difficult to dete
 ct the plain Gecko engine, because most of the browsers identify\n        // them self as Gecko-like browsers and modify the userAgent's according to that.\n        // Since we only cover one explicit Firefox case, we can simply check for Firefox\n        // instead of having an unstable check for Gecko.\n        this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n        // Trident on mobile adds the android platform to the userAgent to trick detections.\n        this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n        // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n        // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n        // Safari browser should also use Webkit as its layout engine.\n        this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n    }\n}\nPlatform.decorators = [\n
     { type: Injectable },\n];\n/**\n * @nocollapse\n */\nPlatform.ctorParameters = () => [];\nfunction Platform_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Platform.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    Platform.ctorParameters;\n    /** @type {?} */\n    Platform.prototype.isBrowser;\n    /**\n     * Layout Engines\n     * @type {?}\n     */\n    Platform.prototype.EDGE;\n    /** @type {?} */\n    Platform.prototype.TRIDENT;\n    /** @type {?} */\n    Platform.prototype.BLINK;\n    /** @type {?} */\n    Platform.prototype.WEBKIT;\n    /**\n     * Browsers and Platform Types\n     * @type {?}\n     */\n    Platform.prototype.IOS;\n    /** @type {?} */\n    Platform.prototype.FIREFOX;\n    /** @type {?} */\n    Platform.prototype.ANDROID;\n    /** @type {?} */\n    Platform.prototype.SAFARI;\n}\n//# sourceMappingURL=platform.js.map","/**\n * Cached result Set of input types support by the current browser.\n */\nlet supportedInputTypes
 ;\n/**\n * Types of <input> that *might* be supported.\n */\nconst candidateInputTypes = [\n    // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n    // first changing it to something else:\n    // The specified value \"\" does not conform to the required format.\n    // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n    'color',\n    'button',\n    'checkbox',\n    'date',\n    'datetime-local',\n    'email',\n    'file',\n    'hidden',\n    'image',\n    'month',\n    'number',\n    'password',\n    'radio',\n    'range',\n    'reset',\n    'search',\n    'submit',\n    'tel',\n    'text',\n    'time',\n    'url',\n    'week',\n];\n/**\n * @return {?} The input types supported by this browser.\n */\nexport function getSupportedInputTypes() {\n    // Result is cached.\n    if (supportedInputTypes) {\n        return supportedInputTypes;\n    }\n    // We can't check if an input type is not supported until we
 're on the browser, so say that\n    // everything is supported when not on the browser. We don't use `Platform` here since it's\n    // just a helper function and can't inject it.\n    if (typeof document !== 'object' || !document) {\n        supportedInputTypes = new Set(candidateInputTypes);\n        return supportedInputTypes;\n    }\n    let /** @type {?} */ featureTestInput = document.createElement('input');\n    supportedInputTypes = new Set(candidateInputTypes.filter(value => {\n        featureTestInput.setAttribute('type', value);\n        return featureTestInput.type === value;\n    }));\n    return supportedInputTypes;\n}\n//# sourceMappingURL=features.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 { Platform } from './platform';\nexport class PlatformMo
 dule {\n}\nPlatformModule.decorators = [\n    { type: NgModule, args: [{\n                providers: [Platform]\n            },] },\n];\n/**\n * @nocollapse\n */\nPlatformModule.ctorParameters = () => [];\nfunction PlatformModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    PlatformModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    PlatformModule.ctorParameters;\n}\n//# sourceMappingURL=platform-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { Platform, getSupportedInputTypes, PlatformModule } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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
 ;GAEG,AACH,AAAgF,AAChF;;"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/portal.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/portal.js b/node_modules/@angular/cdk/esm2015/portal.js
new file mode 100644
index 0000000..7dfe178
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/portal.js
@@ -0,0 +1,545 @@
+/**
+ * @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 { ComponentFactoryResolver, Directive, Input, NgModule, TemplateRef, ViewContainerRef } from '@angular/core';
+
+/**
+ * Throws an exception when attempting to attach a null portal to a host.
+ * \@docs-private
+ * @return {?}
+ */
+function throwNullPortalError() {
+    throw Error('Must provide a portal to attach');
+}
+/**
+ * Throws an exception when attempting to attach a portal to a host that is already attached.
+ * \@docs-private
+ * @return {?}
+ */
+function throwPortalAlreadyAttachedError() {
+    throw Error('Host already has a portal attached');
+}
+/**
+ * Throws an exception when attempting to attach a portal to an already-disposed host.
+ * \@docs-private
+ * @return {?}
+ */
+function throwPortalHostAlreadyDisposedError() {
+    throw Error('This PortalHost has already been disposed');
+}
+/**
+ * Throws an exception when attempting to attach an unknown portal type.
+ * \@docs-private
+ * @return {?}
+ */
+function throwUnknownPortalTypeError() {
+    throw Error('Attempting to attach an unknown Portal type. BasePortalHost accepts either ' +
+        'a ComponentPortal or a TemplatePortal.');
+}
+/**
+ * Throws an exception when attempting to attach a portal to a null host.
+ * \@docs-private
+ * @return {?}
+ */
+function throwNullPortalHostError() {
+    throw Error('Attempting to attach a portal to a null PortalHost');
+}
+/**
+ * Throws an exception when attempting to detach a portal that is not attached.
+ * \@docs-privatew
+ * @return {?}
+ */
+function throwNoPortalAttachedError() {
+    throw Error('Attempting to detach a portal that is not attached to a host');
+}
+
+/**
+ * A `Portal` is something that you want to render somewhere else.
+ * It can be attach to / detached from a `PortalHost`.
+ * @abstract
+ */
+class Portal {
+    /**
+     * Attach this portal to a host.
+     * @param {?} host
+     * @return {?}
+     */
+    attach(host) {
+        if (host == null) {
+            throwNullPortalHostError();
+        }
+        if (host.hasAttached()) {
+            throwPortalAlreadyAttachedError();
+        }
+        this._attachedHost = host;
+        return (host.attach(this));
+    }
+    /**
+     * Detach this portal from its host
+     * @return {?}
+     */
+    detach() {
+        let /** @type {?} */ host = this._attachedHost;
+        if (host == null) {
+            throwNoPortalAttachedError();
+        }
+        else {
+            this._attachedHost = null;
+            host.detach();
+        }
+    }
+    /**
+     * Whether this portal is attached to a host.
+     * @return {?}
+     */
+    get isAttached() {
+        return this._attachedHost != null;
+    }
+    /**
+     * Sets the PortalHost reference without performing `attach()`. This is used directly by
+     * the PortalHost when it is performing an `attach()` or `detach()`.
+     * @param {?} host
+     * @return {?}
+     */
+    setAttachedHost(host) {
+        this._attachedHost = host;
+    }
+}
+/**
+ * A `ComponentPortal` is a portal that instantiates some Component upon attachment.
+ */
+class ComponentPortal extends Portal {
+    /**
+     * @param {?} component
+     * @param {?=} viewContainerRef
+     * @param {?=} injector
+     */
+    constructor(component, viewContainerRef, injector) {
+        super();
+        this.component = component;
+        this.viewContainerRef = viewContainerRef;
+        this.injector = injector;
+    }
+}
+/**
+ * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).
+ */
+class TemplatePortal extends Portal {
+    /**
+     * @param {?} template
+     * @param {?} viewContainerRef
+     * @param {?=} context
+     */
+    constructor(template, viewContainerRef, context) {
+        super();
+        this.templateRef = template;
+        this.viewContainerRef = viewContainerRef;
+        if (context) {
+            this.context = context;
+        }
+    }
+    /**
+     * @return {?}
+     */
+    get origin() {
+        return this.templateRef.elementRef;
+    }
+    /**
+     * Attach the the portal to the provided `PortalHost`.
+     * When a context is provided it will override the `context` property of the `TemplatePortal`
+     * instance.
+     * @param {?} host
+     * @param {?=} context
+     * @return {?}
+     */
+    attach(host, context = this.context) {
+        this.context = context;
+        return super.attach(host);
+    }
+    /**
+     * @return {?}
+     */
+    detach() {
+        this.context = undefined;
+        return super.detach();
+    }
+}
+/**
+ * Partial implementation of PortalHost that only deals with attaching either a
+ * ComponentPortal or a TemplatePortal.
+ * @abstract
+ */
+class BasePortalHost {
+    constructor() {
+        /**
+         * Whether this host has already been permanently disposed.
+         */
+        this._isDisposed = false;
+    }
+    /**
+     * Whether this host has an attached portal.
+     * @return {?}
+     */
+    hasAttached() {
+        return !!this._attachedPortal;
+    }
+    /**
+     * @param {?} portal
+     * @return {?}
+     */
+    attach(portal) {
+        if (!portal) {
+            throwNullPortalError();
+        }
+        if (this.hasAttached()) {
+            throwPortalAlreadyAttachedError();
+        }
+        if (this._isDisposed) {
+            throwPortalHostAlreadyDisposedError();
+        }
+        if (portal instanceof ComponentPortal) {
+            this._attachedPortal = portal;
+            return this.attachComponentPortal(portal);
+        }
+        else if (portal instanceof TemplatePortal) {
+            this._attachedPortal = portal;
+            return this.attachTemplatePortal(portal);
+        }
+        throwUnknownPortalTypeError();
+    }
+    /**
+     * @abstract
+     * @template T
+     * @param {?} portal
+     * @return {?}
+     */
+    attachComponentPortal(portal) { }
+    /**
+     * @abstract
+     * @template C
+     * @param {?} portal
+     * @return {?}
+     */
+    attachTemplatePortal(portal) { }
+    /**
+     * @return {?}
+     */
+    detach() {
+        if (this._attachedPortal) {
+            this._attachedPortal.setAttachedHost(null);
+            this._attachedPortal = null;
+        }
+        this._invokeDisposeFn();
+    }
+    /**
+     * @return {?}
+     */
+    dispose() {
+        if (this.hasAttached()) {
+            this.detach();
+        }
+        this._invokeDisposeFn();
+        this._isDisposed = true;
+    }
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    setDisposeFn(fn) {
+        this._disposeFn = fn;
+    }
+    /**
+     * @return {?}
+     */
+    _invokeDisposeFn() {
+        if (this._disposeFn) {
+            this._disposeFn();
+            this._disposeFn = null;
+        }
+    }
+}
+
+/**
+ * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular
+ * application context.
+ *
+ * This is the only part of the portal core that directly touches the DOM.
+ */
+class DomPortalHost extends BasePortalHost {
+    /**
+     * @param {?} _hostDomElement
+     * @param {?} _componentFactoryResolver
+     * @param {?} _appRef
+     * @param {?} _defaultInjector
+     */
+    constructor(_hostDomElement, _componentFactoryResolver, _appRef, _defaultInjector) {
+        super();
+        this._hostDomElement = _hostDomElement;
+        this._componentFactoryResolver = _componentFactoryResolver;
+        this._appRef = _appRef;
+        this._defaultInjector = _defaultInjector;
+    }
+    /**
+     * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.
+     * @template T
+     * @param {?} portal Portal to be attached
+     * @return {?}
+     */
+    attachComponentPortal(portal) {
+        let /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);
+        let /** @type {?} */ componentRef;
+        // If the portal specifies a ViewContainerRef, we will use that as the attachment point
+        // for the component (in terms of Angular's component tree, not rendering).
+        // When the ViewContainerRef is missing, we use the factory to create the component directly
+        // and then manually attach the view to the application.
+        if (portal.viewContainerRef) {
+            componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.parentInjector);
+            this.setDisposeFn(() => componentRef.destroy());
+        }
+        else {
+            componentRef = componentFactory.create(portal.injector || this._defaultInjector);
+            this._appRef.attachView(componentRef.hostView);
+            this.setDisposeFn(() => {
+                this._appRef.detachView(componentRef.hostView);
+                componentRef.destroy();
+            });
+        }
+        // At this point the component has been instantiated, so we move it to the location in the DOM
+        // where we want it to be rendered.
+        this._hostDomElement.appendChild(this._getComponentRootNode(componentRef));
+        return componentRef;
+    }
+    /**
+     * Attaches a template portal to the DOM as an embedded view.
+     * @template C
+     * @param {?} portal Portal to be attached.
+     * @return {?}
+     */
+    attachTemplatePortal(portal) {
+        let /** @type {?} */ viewContainer = portal.viewContainerRef;
+        let /** @type {?} */ viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);
+        viewRef.detectChanges();
+        // The method `createEmbeddedView` will add the view as a child of the viewContainer.
+        // But for the DomPortalHost the view can be added everywhere in the DOM (e.g Overlay Container)
+        // To move the view to the specified host element. We just re-append the existing root nodes.
+        viewRef.rootNodes.forEach(rootNode => this._hostDomElement.appendChild(rootNode));
+        this.setDisposeFn((() => {
+            let /** @type {?} */ index = viewContainer.indexOf(viewRef);
+            if (index !== -1) {
+                viewContainer.remove(index);
+            }
+        }));
+        // TODO(jelbourn): Return locals from view.
+        return viewRef;
+    }
+    /**
+     * Clears out a portal from the DOM.
+     * @return {?}
+     */
+    dispose() {
+        super.dispose();
+        if (this._hostDomElement.parentNode != null) {
+            this._hostDomElement.parentNode.removeChild(this._hostDomElement);
+        }
+    }
+    /**
+     * Gets the root HTMLElement for an instantiated component.
+     * @param {?} componentRef
+     * @return {?}
+     */
+    _getComponentRootNode(componentRef) {
+        return (((componentRef.hostView)).rootNodes[0]);
+    }
+}
+
+/**
+ * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,
+ * the directive instance itself can be attached to a host, enabling declarative use of portals.
+ *
+ * Usage:
+ * <ng-template portal #greeting>
+ *   <p> Hello {{name}} </p>
+ * </ng-template>
+ */
+class TemplatePortalDirective extends TemplatePortal {
+    /**
+     * @param {?} templateRef
+     * @param {?} viewContainerRef
+     */
+    constructor(templateRef, viewContainerRef) {
+        super(templateRef, viewContainerRef);
+    }
+}
+TemplatePortalDirective.decorators = [
+    { type: Directive, args: [{
+                selector: '[cdk-portal], [cdkPortal], [portal]',
+                exportAs: 'cdkPortal',
+            },] },
+];
+/**
+ * @nocollapse
+ */
+TemplatePortalDirective.ctorParameters = () => [
+    { type: TemplateRef, },
+    { type: ViewContainerRef, },
+];
+/**
+ * Directive version of a PortalHost. Because the directive *is* a PortalHost, portals can be
+ * directly attached to it, enabling declarative use.
+ *
+ * Usage:
+ * <ng-template [cdkPortalHost]="greeting"></ng-template>
+ */
+class PortalHostDirective extends BasePortalHost {
+    /**
+     * @param {?} _componentFactoryResolver
+     * @param {?} _viewContainerRef
+     */
+    constructor(_componentFactoryResolver, _viewContainerRef) {
+        super();
+        this._componentFactoryResolver = _componentFactoryResolver;
+        this._viewContainerRef = _viewContainerRef;
+        /**
+         * The attached portal.
+         */
+        this._portal = null;
+    }
+    /**
+     * @deprecated
+     * @return {?}
+     */
+    get _deprecatedPortal() { return this.portal; }
+    /**
+     * @param {?} v
+     * @return {?}
+     */
+    set _deprecatedPortal(v) { this.portal = v; }
+    /**
+     * Portal associated with the Portal host.
+     * @return {?}
+     */
+    get portal() {
+        return this._portal;
+    }
+    /**
+     * @param {?} portal
+     * @return {?}
+     */
+    set portal(portal) {
+        if (this.hasAttached()) {
+            super.detach();
+        }
+        if (portal) {
+            super.attach(portal);
+        }
+        this._portal = portal;
+    }
+    /**
+     * @return {?}
+     */
+    ngOnDestroy() {
+        super.dispose();
+        this._portal = null;
+    }
+    /**
+     * Attach the given ComponentPortal to this PortalHost using the ComponentFactoryResolver.
+     *
+     * @template T
+     * @param {?} portal Portal to be attached to the portal host.
+     * @return {?}
+     */
+    attachComponentPortal(portal) {
+        portal.setAttachedHost(this);
+        // If the portal specifies an origin, use that as the logical location of the component
+        // in the application tree. Otherwise use the location of this PortalHost.
+        let /** @type {?} */ viewContainerRef = portal.viewContainerRef != null ?
+            portal.viewContainerRef :
+            this._viewContainerRef;
+        let /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);
+        let /** @type {?} */ ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.parentInjector);
+        super.setDisposeFn(() => ref.destroy());
+        this._portal = portal;
+        return ref;
+    }
+    /**
+     * Attach the given TemplatePortal to this PortlHost as an embedded View.
+     * @template C
+     * @param {?} portal Portal to be attached.
+     * @return {?}
+     */
+    attachTemplatePortal(portal) {
+        portal.setAttachedHost(this);
+        const /** @type {?} */ viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);
+        super.setDisposeFn(() => this._viewContainerRef.clear());
+        this._portal = portal;
+        return viewRef;
+    }
+}
+PortalHostDirective.decorators = [
+    { type: Directive, args: [{
+                selector: '[cdkPortalHost], [portalHost]',
+                exportAs: 'cdkPortalHost',
+                inputs: ['portal: cdkPortalHost']
+            },] },
+];
+/**
+ * @nocollapse
+ */
+PortalHostDirective.ctorParameters = () => [
+    { type: ComponentFactoryResolver, },
+    { type: ViewContainerRef, },
+];
+PortalHostDirective.propDecorators = {
+    '_deprecatedPortal': [{ type: Input, args: ['portalHost',] },],
+};
+class PortalModule {
+}
+PortalModule.decorators = [
+    { type: NgModule, args: [{
+                exports: [TemplatePortalDirective, PortalHostDirective],
+                declarations: [TemplatePortalDirective, PortalHostDirective],
+            },] },
+];
+/**
+ * @nocollapse
+ */
+PortalModule.ctorParameters = () => [];
+
+/**
+ * Custom injector to be used when providing custom
+ * injection tokens to components inside a portal.
+ * \@docs-private
+ */
+class PortalInjector {
+    /**
+     * @param {?} _parentInjector
+     * @param {?} _customTokens
+     */
+    constructor(_parentInjector, _customTokens) {
+        this._parentInjector = _parentInjector;
+        this._customTokens = _customTokens;
+    }
+    /**
+     * @param {?} token
+     * @param {?=} notFoundValue
+     * @return {?}
+     */
+    get(token, notFoundValue) {
+        const /** @type {?} */ value = this._customTokens.get(token);
+        if (typeof value !== 'undefined') {
+            return value;
+        }
+        return this._parentInjector.get(token, notFoundValue);
+    }
+}
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { Portal, ComponentPortal, TemplatePortal, BasePortalHost, DomPortalHost, TemplatePortalDirective, PortalHostDirective, PortalModule, PortalInjector };
+//# sourceMappingURL=portal.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/portal.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/portal.js.map b/node_modules/@angular/cdk/esm2015/portal.js.map
new file mode 100644
index 0000000..752cb43
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/portal.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"portal.js","sources":["../../packages/cdk/portal/portal-errors.js","../../packages/cdk/portal/portal.js","../../packages/cdk/portal/dom-portal-host.js","../../packages/cdk/portal/portal-directives.js","../../packages/cdk/portal/portal-injector.js","../../packages/cdk/portal/index.js"],"sourcesContent":["/**\n * Throws an exception when attempting to attach a null portal to a host.\n * \\@docs-private\n * @return {?}\n */\nexport function throwNullPortalError() {\n    throw Error('Must provide a portal to attach');\n}\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * \\@docs-private\n * @return {?}\n */\nexport function throwPortalAlreadyAttachedError() {\n    throw Error('Host already has a portal attached');\n}\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * \\@docs-private\n * @return {?}\n */\nexport function throwPortalHostAlreadyDisposedError() {\n    thro
 w Error('This PortalHost has already been disposed');\n}\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * \\@docs-private\n * @return {?}\n */\nexport function throwUnknownPortalTypeError() {\n    throw Error('Attempting to attach an unknown Portal type. BasePortalHost accepts either ' +\n        'a ComponentPortal or a TemplatePortal.');\n}\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * \\@docs-private\n * @return {?}\n */\nexport function throwNullPortalHostError() {\n    throw Error('Attempting to attach a portal to a null PortalHost');\n}\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * \\@docs-privatew\n * @return {?}\n */\nexport function throwNoPortalAttachedError() {\n    throw Error('Attempting to detach a portal that is not attached to a host');\n}\n//# sourceMappingURL=portal-errors.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 { throwNullPortalHostError, throwPortalAlreadyAttachedError, throwNoPortalAttachedError, throwNullPortalError, throwPortalHostAlreadyDisposedError, throwUnknownPortalTypeError } from './portal-errors';\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalHost`.\n * @abstract\n */\nexport class Portal {\n    /**\n     * Attach this portal to a host.\n     * @param {?} host\n     * @return {?}\n     */\n    attach(host) {\n        if (host == null) {\n            throwNullPortalHostError();\n        }\n        if (host.hasAttached()) {\n            throwPortalAlreadyAttachedError();\n        }\n        this._attachedHost = host;\n        return (host.attach(this));\n    }\n    /**\n     * Detach this portal from its host\n     * @return {?}\n     */\n    detach() {\n       
  let /** @type {?} */ host = this._attachedHost;\n        if (host == null) {\n            throwNoPortalAttachedError();\n        }\n        else {\n            this._attachedHost = null;\n            host.detach();\n        }\n    }\n    /**\n     * Whether this portal is attached to a host.\n     * @return {?}\n     */\n    get isAttached() {\n        return this._attachedHost != null;\n    }\n    /**\n     * Sets the PortalHost reference without performing `attach()`. This is used directly by\n     * the PortalHost when it is performing an `attach()` or `detach()`.\n     * @param {?} host\n     * @return {?}\n     */\n    setAttachedHost(host) {\n        this._attachedHost = host;\n    }\n}\nfunction Portal_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Portal.prototype._attachedHost;\n}\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal extends Portal {\n    /**\n     * @param {?} component\n
      * @param {?=} viewContainerRef\n     * @param {?=} injector\n     */\n    constructor(component, viewContainerRef, injector) {\n        super();\n        this.component = component;\n        this.viewContainerRef = viewContainerRef;\n        this.injector = injector;\n    }\n}\nfunction ComponentPortal_tsickle_Closure_declarations() {\n    /**\n     * The type of the component that will be instantiated for attachment.\n     * @type {?}\n     */\n    ComponentPortal.prototype.component;\n    /**\n     * [Optional] Where the attached component should live in Angular's *logical* component tree.\n     * This is different from where the component *renders*, which is determined by the PortalHost.\n     * The origin is necessary when the host is outside of the Angular application context.\n     * @type {?}\n     */\n    ComponentPortal.prototype.viewContainerRef;\n    /**\n     * [Optional] Injector used for the instantiation of the component.\n     * @type {?}\n     */\n    Component
 Portal.prototype.injector;\n}\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport class TemplatePortal extends Portal {\n    /**\n     * @param {?} template\n     * @param {?} viewContainerRef\n     * @param {?=} context\n     */\n    constructor(template, viewContainerRef, context) {\n        super();\n        this.templateRef = template;\n        this.viewContainerRef = viewContainerRef;\n        if (context) {\n            this.context = context;\n        }\n    }\n    /**\n     * @return {?}\n     */\n    get origin() {\n        return this.templateRef.elementRef;\n    }\n    /**\n     * Attach the the portal to the provided `PortalHost`.\n     * When a context is provided it will override the `context` property of the `TemplatePortal`\n     * instance.\n     * @param {?} host\n     * @param {?=} context\n     * @return {?}\n     */\n    attach(host, context = this.context) {\n        this.context = context;\n        return 
 super.attach(host);\n    }\n    /**\n     * @return {?}\n     */\n    detach() {\n        this.context = undefined;\n        return super.detach();\n    }\n}\nfunction TemplatePortal_tsickle_Closure_declarations() {\n    /**\n     * The embedded template that will be used to instantiate an embedded View in the host.\n     * @type {?}\n     */\n    TemplatePortal.prototype.templateRef;\n    /**\n     * Reference to the ViewContainer into which the template will be stamped out.\n     * @type {?}\n     */\n    TemplatePortal.prototype.viewContainerRef;\n    /** @type {?} */\n    TemplatePortal.prototype.context;\n}\n/**\n * Partial implementation of PortalHost that only deals with attaching either a\n * ComponentPortal or a TemplatePortal.\n * @abstract\n */\nexport class BasePortalHost {\n    constructor() {\n        /**\n         * Whether this host has already been permanently disposed.\n         */\n        this._isDisposed = false;\n    }\n    /**\n     * Whether this host has an 
 attached portal.\n     * @return {?}\n     */\n    hasAttached() {\n        return !!this._attachedPortal;\n    }\n    /**\n     * @param {?} portal\n     * @return {?}\n     */\n    attach(portal) {\n        if (!portal) {\n            throwNullPortalError();\n        }\n        if (this.hasAttached()) {\n            throwPortalAlreadyAttachedError();\n        }\n        if (this._isDisposed) {\n            throwPortalHostAlreadyDisposedError();\n        }\n        if (portal instanceof ComponentPortal) {\n            this._attachedPortal = portal;\n            return this.attachComponentPortal(portal);\n        }\n        else if (portal instanceof TemplatePortal) {\n            this._attachedPortal = portal;\n            return this.attachTemplatePortal(portal);\n        }\n        throwUnknownPortalTypeError();\n    }\n    /**\n     * @abstract\n     * @template T\n     * @param {?} portal\n     * @return {?}\n     */\n    attachComponentPortal(portal) { }\n    /**\n     * @abst
 ract\n     * @template C\n     * @param {?} portal\n     * @return {?}\n     */\n    attachTemplatePortal(portal) { }\n    /**\n     * @return {?}\n     */\n    detach() {\n        if (this._attachedPortal) {\n            this._attachedPortal.setAttachedHost(null);\n            this._attachedPortal = null;\n        }\n        this._invokeDisposeFn();\n    }\n    /**\n     * @return {?}\n     */\n    dispose() {\n        if (this.hasAttached()) {\n            this.detach();\n        }\n        this._invokeDisposeFn();\n        this._isDisposed = true;\n    }\n    /**\n     * @param {?} fn\n     * @return {?}\n     */\n    setDisposeFn(fn) {\n        this._disposeFn = fn;\n    }\n    /**\n     * @return {?}\n     */\n    _invokeDisposeFn() {\n        if (this._disposeFn) {\n            this._disposeFn();\n            this._disposeFn = null;\n        }\n    }\n}\nfunction BasePortalHost_tsickle_Closure_declarations() {\n    /**\n     * The portal currently attached to the host.\n     *
  @type {?}\n     */\n    BasePortalHost.prototype._attachedPortal;\n    /**\n     * A function that will permanently dispose this host.\n     * @type {?}\n     */\n    BasePortalHost.prototype._disposeFn;\n    /**\n     * Whether this host has already been permanently disposed.\n     * @type {?}\n     */\n    BasePortalHost.prototype._isDisposed;\n}\n//# sourceMappingURL=portal.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 { BasePortalHost } from './portal';\n/**\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n *\n * This is the only part of the portal core that directly touches the DOM.\n */\nexport class DomPortalHost extends BasePortalHost {\n    /**\n     * @param {?} _hostDomElement\n     * @param {?} _componentFactoryResolver\n     *
  @param {?} _appRef\n     * @param {?} _defaultInjector\n     */\n    constructor(_hostDomElement, _componentFactoryResolver, _appRef, _defaultInjector) {\n        super();\n        this._hostDomElement = _hostDomElement;\n        this._componentFactoryResolver = _componentFactoryResolver;\n        this._appRef = _appRef;\n        this._defaultInjector = _defaultInjector;\n    }\n    /**\n     * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n     * @template T\n     * @param {?} portal Portal to be attached\n     * @return {?}\n     */\n    attachComponentPortal(portal) {\n        let /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n        let /** @type {?} */ componentRef;\n        // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n        // for the component (in terms of Angular's component tree, not rendering).\n        // When the ViewContai
 nerRef is missing, we use the factory to create the component directly\n        // and then manually attach the view to the application.\n        if (portal.viewContainerRef) {\n            componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.parentInjector);\n            this.setDisposeFn(() => componentRef.destroy());\n        }\n        else {\n            componentRef = componentFactory.create(portal.injector || this._defaultInjector);\n            this._appRef.attachView(componentRef.hostView);\n            this.setDisposeFn(() => {\n                this._appRef.detachView(componentRef.hostView);\n                componentRef.destroy();\n            });\n        }\n        // At this point the component has been instantiated, so we move it to the location in the DOM\n        // where we want it to be rendered.\n        this._hostDomElement.appendChild(this._getComponentRootNode(compon
 entRef));\n        return componentRef;\n    }\n    /**\n     * Attaches a template portal to the DOM as an embedded view.\n     * @template C\n     * @param {?} portal Portal to be attached.\n     * @return {?}\n     */\n    attachTemplatePortal(portal) {\n        let /** @type {?} */ viewContainer = portal.viewContainerRef;\n        let /** @type {?} */ viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n        viewRef.detectChanges();\n        // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n        // But for the DomPortalHost the view can be added everywhere in the DOM (e.g Overlay Container)\n        // To move the view to the specified host element. We just re-append the existing root nodes.\n        viewRef.rootNodes.forEach(rootNode => this._hostDomElement.appendChild(rootNode));\n        this.setDisposeFn((() => {\n            let /** @type {?} */ index = viewContainer.indexOf(viewRef);\n            if (in
 dex !== -1) {\n                viewContainer.remove(index);\n            }\n        }));\n        // TODO(jelbourn): Return locals from view.\n        return viewRef;\n    }\n    /**\n     * Clears out a portal from the DOM.\n     * @return {?}\n     */\n    dispose() {\n        super.dispose();\n        if (this._hostDomElement.parentNode != null) {\n            this._hostDomElement.parentNode.removeChild(this._hostDomElement);\n        }\n    }\n    /**\n     * Gets the root HTMLElement for an instantiated component.\n     * @param {?} componentRef\n     * @return {?}\n     */\n    _getComponentRootNode(componentRef) {\n        return (((componentRef.hostView)).rootNodes[0]);\n    }\n}\nfunction DomPortalHost_tsickle_Closure_declarations() {\n    /** @type {?} */\n    DomPortalHost.prototype._hostDomElement;\n    /** @type {?} */\n    DomPortalHost.prototype._componentFactoryResolver;\n    /** @type {?} */\n    DomPortalHost.prototype._appRef;\n    /** @type {?} */\n    DomPortalH
 ost.prototype._defaultInjector;\n}\n//# sourceMappingURL=dom-portal-host.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, Directive, TemplateRef, ComponentFactoryResolver, ViewContainerRef, Input, } from '@angular/core';\nimport { TemplatePortal, BasePortalHost } from './portal';\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n *\n * Usage:\n * <ng-template portal #greeting>\n *   <p> Hello {{name}} </p>\n * </ng-template>\n */\nexport class TemplatePortalDirective extends TemplatePortal {\n    /**\n     * @param {?} templateRef\n     * @param {?} viewContainerRef\n     */\n    constructor(templateRef, viewContainerRef) {\n        super(templateRef, view
 ContainerRef);\n    }\n}\nTemplatePortalDirective.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdk-portal], [cdkPortal], [portal]',\n                exportAs: 'cdkPortal',\n            },] },\n];\n/**\n * @nocollapse\n */\nTemplatePortalDirective.ctorParameters = () => [\n    { type: TemplateRef, },\n    { type: ViewContainerRef, },\n];\nfunction TemplatePortalDirective_tsickle_Closure_declarations() {\n    /** @type {?} */\n    TemplatePortalDirective.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    TemplatePortalDirective.ctorParameters;\n}\n/**\n * Directive version of a PortalHost. Because the directive *is* a PortalHost, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * <ng-template [cdkPortalHost]=\"greeting\"></ng-template>\n */\nexport class PortalHostDirective extends BasePortalHost {\n    /**\n     * @param {?} _componentFactoryResolver\n     * @param {?} _viewContainerRef\n     
 */\n    constructor(_componentFactoryResolver, _viewContainerRef) {\n        super();\n        this._componentFactoryResolver = _componentFactoryResolver;\n        this._viewContainerRef = _viewContainerRef;\n        /**\n         * The attached portal.\n         */\n        this._portal = null;\n    }\n    /**\n     * @deprecated\n     * @return {?}\n     */\n    get _deprecatedPortal() { return this.portal; }\n    /**\n     * @param {?} v\n     * @return {?}\n     */\n    set _deprecatedPortal(v) { this.portal = v; }\n    /**\n     * Portal associated with the Portal host.\n     * @return {?}\n     */\n    get portal() {\n        return this._portal;\n    }\n    /**\n     * @param {?} portal\n     * @return {?}\n     */\n    set portal(portal) {\n        if (this.hasAttached()) {\n            super.detach();\n        }\n        if (portal) {\n            super.attach(portal);\n        }\n        this._portal = portal;\n    }\n    /**\n     * @return {?}\n     */\n    ngOnDestroy()
  {\n        super.dispose();\n        this._portal = null;\n    }\n    /**\n     * Attach the given ComponentPortal to this PortalHost using the ComponentFactoryResolver.\n     *\n     * @template T\n     * @param {?} portal Portal to be attached to the portal host.\n     * @return {?}\n     */\n    attachComponentPortal(portal) {\n        portal.setAttachedHost(this);\n        // If the portal specifies an origin, use that as the logical location of the component\n        // in the application tree. Otherwise use the location of this PortalHost.\n        let /** @type {?} */ viewContainerRef = portal.viewContainerRef != null ?\n            portal.viewContainerRef :\n            this._viewContainerRef;\n        let /** @type {?} */ componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n        let /** @type {?} */ ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.parentInjector
 );\n        super.setDisposeFn(() => ref.destroy());\n        this._portal = portal;\n        return ref;\n    }\n    /**\n     * Attach the given TemplatePortal to this PortlHost as an embedded View.\n     * @template C\n     * @param {?} portal Portal to be attached.\n     * @return {?}\n     */\n    attachTemplatePortal(portal) {\n        portal.setAttachedHost(this);\n        const /** @type {?} */ viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n        super.setDisposeFn(() => this._viewContainerRef.clear());\n        this._portal = portal;\n        return viewRef;\n    }\n}\nPortalHostDirective.decorators = [\n    { type: Directive, args: [{\n                selector: '[cdkPortalHost], [portalHost]',\n                exportAs: 'cdkPortalHost',\n                inputs: ['portal: cdkPortalHost']\n            },] },\n];\n/**\n * @nocollapse\n */\nPortalHostDirective.ctorParameters = () => [\n    { type: ComponentFactoryResolver, },\n    {
  type: ViewContainerRef, },\n];\nPortalHostDirective.propDecorators = {\n    '_deprecatedPortal': [{ type: Input, args: ['portalHost',] },],\n};\nfunction PortalHostDirective_tsickle_Closure_declarations() {\n    /** @type {?} */\n    PortalHostDirective.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    PortalHostDirective.ctorParameters;\n    /** @type {?} */\n    PortalHostDirective.propDecorators;\n    /**\n     * The attached portal.\n     * @type {?}\n     */\n    PortalHostDirective.prototype._portal;\n    /** @type {?} */\n    PortalHostDirective.prototype._componentFactoryResolver;\n    /** @type {?} */\n    PortalHostDirective.prototype._viewContainerRef;\n}\nexport class PortalModule {\n}\nPortalModule.decorators = [\n    { type: NgModule, args: [{\n                exports: [TemplatePortalDirective, PortalHostDirective],\n                declarations: [TemplatePortalDirective, PortalHostDirective],\n            },] },\n];\n/**\n * @nocollapse\n */\nP
 ortalModule.ctorParameters = () => [];\nfunction PortalModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    PortalModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    PortalModule.ctorParameters;\n}\n//# sourceMappingURL=portal-directives.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/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * \\@docs-private\n */\nexport class PortalInjector {\n    /**\n     * @param {?} _parentInjector\n     * @param {?} _customTokens\n     */\n    constructor(_parentInjector, _customTokens) {\n        this._parentInjector = _parentInjector;\n        this._customTokens = _customTokens;\n    }\n    /**\n     * @param {?} token\n     * @param {?=} notFoundValue\n     * @return {?}\n     *
 /\n    get(token, notFoundValue) {\n        const /** @type {?} */ value = this._customTokens.get(token);\n        if (typeof value !== 'undefined') {\n            return value;\n        }\n        return this._parentInjector.get(token, notFoundValue);\n    }\n}\nfunction PortalInjector_tsickle_Closure_declarations() {\n    /** @type {?} */\n    PortalInjector.prototype._parentInjector;\n    /** @type {?} */\n    PortalInjector.prototype._customTokens;\n}\n//# sourceMappingURL=portal-injector.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { Portal, ComponentPortal, TemplatePortal, BasePortalHost, DomPortalHost, TemplatePortalDirective, PortalHostDirective, PortalModule, PortalInjector } 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/rxjs.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/rxjs.js b/node_modules/@angular/cdk/esm2015/rxjs.js
new file mode 100644
index 0000000..24917ab
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/rxjs.js
@@ -0,0 +1,121 @@
+/**
+ * @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 { _finally } from 'rxjs/operator/finally';
+import { _catch } from 'rxjs/operator/catch';
+import { _do } from 'rxjs/operator/do';
+import { map } from 'rxjs/operator/map';
+import { filter } from 'rxjs/operator/filter';
+import { share } from 'rxjs/operator/share';
+import { first } from 'rxjs/operator/first';
+import { switchMap } from 'rxjs/operator/switchMap';
+import { startWith } from 'rxjs/operator/startWith';
+import { debounceTime } from 'rxjs/operator/debounceTime';
+import { auditTime } from 'rxjs/operator/auditTime';
+import { takeUntil } from 'rxjs/operator/takeUntil';
+import { delay } from 'rxjs/operator/delay';
+
+/**
+ * Utility class used to chain RxJS operators.
+ *
+ * This class is the concrete implementation, but the type used by the user when chaining
+ * is StrictRxChain. The strict chain enforces types on the operators to the same level as
+ * the prototype-added equivalents.
+ */
+class RxChain {
+    /**
+     * @param {?} _context
+     */
+    constructor(_context) {
+        this._context = _context;
+    }
+    /**
+     * Starts a new chain and specifies the initial `this` value.
+     * @template O
+     * @param {?} context Initial `this` value for the chain.
+     * @return {?}
+     */
+    static from(context) {
+        return new RxChain(context);
+    }
+    /**
+     * Invokes an RxJS operator as a part of the chain.
+     * @param {?} operator Operator to be invoked.
+     * @param {...?} args Arguments to be passed to the operator.
+     * @return {?}
+     */
+    call(operator, ...args) {
+        this._context = operator.call(this._context, ...args);
+        return this;
+    }
+    /**
+     * Subscribes to the result of the chain.
+     * @param {?} fn Callback to be invoked when the result emits a value.
+     * @return {?}
+     */
+    subscribe(fn) {
+        return this._context.subscribe(fn);
+    }
+    /**
+     * Returns the result of the chain.
+     * @return {?}
+     */
+    result() {
+        return this._context;
+    }
+}
+
+class FinallyBrand {
+}
+class CatchBrand {
+}
+class DoBrand {
+}
+class MapBrand {
+}
+class FilterBrand {
+}
+class ShareBrand {
+}
+class FirstBrand {
+}
+class SwitchMapBrand {
+}
+class StartWithBrand {
+}
+class DebounceTimeBrand {
+}
+class AuditTimeBrand {
+}
+class TakeUntilBrand {
+}
+class DelayBrand {
+}
+// We add `Function` to the type intersection to make this nomically different from
+// `finallyOperatorType` while still being structurally the same. Without this, TypeScript tries to
+// reduce `typeof _finallyOperator & FinallyBrand` to `finallyOperatorType<T>` and then fails
+// because `T` isn't known.
+const finallyOperator = (_finally);
+const catchOperator = (_catch);
+const doOperator = (_do);
+const map$1 = (map);
+const filter$1 = (filter);
+const share$1 = (share);
+const first$1 = (first);
+const switchMap$1 = (switchMap);
+const startWith$1 = (startWith);
+const debounceTime$1 = (debounceTime);
+const auditTime$1 = (auditTime);
+const takeUntil$1 = (takeUntil);
+const delay$1 = (delay);
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { RxChain, FinallyBrand, CatchBrand, DoBrand, MapBrand, FilterBrand, ShareBrand, FirstBrand, SwitchMapBrand, StartWithBrand, DebounceTimeBrand, AuditTimeBrand, TakeUntilBrand, DelayBrand, finallyOperator, catchOperator, doOperator, map$1 as map, filter$1 as filter, share$1 as share, first$1 as first, switchMap$1 as switchMap, startWith$1 as startWith, debounceTime$1 as debounceTime, auditTime$1 as auditTime, takeUntil$1 as takeUntil, delay$1 as delay };
+//# sourceMappingURL=rxjs.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/rxjs.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/rxjs.js.map b/node_modules/@angular/cdk/esm2015/rxjs.js.map
new file mode 100644
index 0000000..f30fb08
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/rxjs.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"rxjs.js","sources":["../../packages/cdk/rxjs/rx-chain.js","../../packages/cdk/rxjs/rx-operators.js","../../packages/cdk/rxjs/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 * Utility class used to chain RxJS operators.\n *\n * This class is the concrete implementation, but the type used by the user when chaining\n * is StrictRxChain. The strict chain enforces types on the operators to the same level as\n * the prototype-added equivalents.\n */\nexport class RxChain {\n    /**\n     * @param {?} _context\n     */\n    constructor(_context) {\n        this._context = _context;\n    }\n    /**\n     * Starts a new chain and specifies the initial `this` value.\n     * @template O\n     * @param {?} context Initial `this` value for the chain.\n     * @return {?}\n     */\n
     static from(context) {\n        return new RxChain(context);\n    }\n    /**\n     * Invokes an RxJS operator as a part of the chain.\n     * @param {?} operator Operator to be invoked.\n     * @param {...?} args Arguments to be passed to the operator.\n     * @return {?}\n     */\n    call(operator, ...args) {\n        this._context = operator.call(this._context, ...args);\n        return this;\n    }\n    /**\n     * Subscribes to the result of the chain.\n     * @param {?} fn Callback to be invoked when the result emits a value.\n     * @return {?}\n     */\n    subscribe(fn) {\n        return this._context.subscribe(fn);\n    }\n    /**\n     * Returns the result of the chain.\n     * @return {?}\n     */\n    result() {\n        return this._context;\n    }\n}\nfunction RxChain_tsickle_Closure_declarations() {\n    /** @type {?} */\n    RxChain.prototype._context;\n}\n//# sourceMappingURL=rx-chain.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 { _finally as _finallyOperator } from 'rxjs/operator/finally';\nimport { _catch as _catchOperator } from 'rxjs/operator/catch';\nimport { _do as _doOperator } from 'rxjs/operator/do';\nimport { map as mapOperator } from 'rxjs/operator/map';\nimport { filter as filterOperator } from 'rxjs/operator/filter';\nimport { share as shareOperator } from 'rxjs/operator/share';\nimport { first as firstOperator } from 'rxjs/operator/first';\nimport { switchMap as switchMapOperator } from 'rxjs/operator/switchMap';\nimport { startWith as startWithOperator } from 'rxjs/operator/startWith';\nimport { debounceTime as debounceTimeOperator } from 'rxjs/operator/debounceTime';\nimport { auditTime as auditTimeOperator } from 'rxjs/operator/auditTime';\nimport { takeUntil as takeUntilOperator } from 'rxjs/operator/takeUntil';\nimport { delay as delayOperato
 r } from 'rxjs/operator/delay';\nexport class FinallyBrand {\n}\nfunction FinallyBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FinallyBrand.prototype._;\n}\nexport class CatchBrand {\n}\nfunction CatchBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    CatchBrand.prototype._;\n}\nexport class DoBrand {\n}\nfunction DoBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    DoBrand.prototype._;\n}\nexport class MapBrand {\n}\nfunction MapBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    MapBrand.prototype._;\n}\nexport class FilterBrand {\n}\nfunction FilterBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FilterBrand.prototype._;\n}\nexport class ShareBrand {\n}\nfunction ShareBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ShareBrand.prototype._;\n}\nexport class FirstBrand {\n}\nfunction FirstBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    FirstBrand.prototype._;\n}\nexpo
 rt class SwitchMapBrand {\n}\nfunction SwitchMapBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    SwitchMapBrand.prototype._;\n}\nexport class StartWithBrand {\n}\nfunction StartWithBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    StartWithBrand.prototype._;\n}\nexport class DebounceTimeBrand {\n}\nfunction DebounceTimeBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    DebounceTimeBrand.prototype._;\n}\nexport class AuditTimeBrand {\n}\nfunction AuditTimeBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    AuditTimeBrand.prototype._;\n}\nexport class TakeUntilBrand {\n}\nfunction TakeUntilBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    TakeUntilBrand.prototype._;\n}\nexport class DelayBrand {\n}\nfunction DelayBrand_tsickle_Closure_declarations() {\n    /** @type {?} */\n    DelayBrand.prototype._;\n}\n// We add `Function` to the type intersection to make this nomically different from\n// `finallyOperator
 Type` while still being structurally the same. Without this, TypeScript tries to\n// reduce `typeof _finallyOperator & FinallyBrand` to `finallyOperatorType<T>` and then fails\n// because `T` isn't known.\nexport const /** @type {?} */ finallyOperator = (_finallyOperator);\nexport const /** @type {?} */ catchOperator = (_catchOperator);\nexport const /** @type {?} */ doOperator = (_doOperator);\nexport const /** @type {?} */ map = (mapOperator);\nexport const /** @type {?} */ filter = (filterOperator);\nexport const /** @type {?} */ share = (shareOperator);\nexport const /** @type {?} */ first = (firstOperator);\nexport const /** @type {?} */ switchMap = (switchMapOperator);\nexport const /** @type {?} */ startWith = (startWithOperator);\nexport const /** @type {?} */ debounceTime = (debounceTimeOperator);\nexport const /** @type {?} */ auditTime = (auditTimeOperator);\nexport const /** @type {?} */ takeUntil = (takeUntilOperator);\nexport const /** @type {?} */ delay = (delayOperat
 or);\n//# sourceMappingURL=rx-operators.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { RxChain, FinallyBrand, CatchBrand, DoBrand, MapBrand, FilterBrand, ShareBrand, FirstBrand, SwitchMapBrand, StartWithBrand, DebounceTimeBrand, AuditTimeBrand, TakeUntilBrand, DelayBrand, finallyOperator, catchOperator, doOperator, map, filter, share, first, switchMap, startWith, debounceTime, auditTime, takeUntil, delay } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["_finallyOperator","_catchOperator","_doOperator","map","mapOperator","filter","filterOperator","share","shareOperator","first","firstOperator","switchMap","switchMapOperator","startWith","startWithOperator","debounceTime","debounceTimeOperator","auditTime","auditTimeOperator","takeUntil","takeUntilOperator","delay","delayOperator"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOA;;;;;;;AAOA,AAAO,MAAM,OAAO,CAAC;;;;IAIjB,WAAW,CAAC,QAAQ,EAAE;QAClB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;;;;;;;IAOD,OAAO,IAAI,CA
 AC,OAAO,EAAE;QACjB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;KAC/B;;;;;;;IAOD,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;KACf;;;;;;IAMD,SAAS,CAAC,EAAE,EAAE;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;KACtC;;;;;IAKD,MAAM,GAAG;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;CACJ,AACD,AAGC,AACD;;ACxCO,MAAM,YAAY,CAAC;CACzB;AACD,AAIA,AAAO,MAAM,UAAU,CAAC;CACvB;AACD,AAIA,AAAO,MAAM,OAAO,CAAC;CACpB;AACD,AAIA,AAAO,MAAM,QAAQ,CAAC;CACrB;AACD,AAIA,AAAO,MAAM,WAAW,CAAC;CACxB;AACD,AAIA,AAAO,MAAM,UAAU,CAAC;CACvB;AACD,AAIA,AAAO,MAAM,UAAU,CAAC;CACvB;AACD,AAIA,AAAO,MAAM,cAAc,CAAC;CAC3B;AACD,AAIA,AAAO,MAAM,cAAc,CAAC;CAC3B;AACD,AAIA,AAAO,MAAM,iBAAiB,CAAC;CAC9B;AACD,AAIA,AAAO,MAAM,cAAc,CAAC;CAC3B;AACD,AAIA,AAAO,MAAM,cAAc,CAAC;CAC3B;AACD,AAIA,AAAO,MAAM,UAAU,CAAC;CACvB;AACD,AAIA;;;;AAIA,AAAO,MAAuB,eAAe,IAAIA,QAAgB,CAAC,CAAC;AACnE,AAAO,MAAuB,aAAa,IAAIC,MAAc,CAAC,CAAC;AAC/D,AAAO,MAAuB,UAAU,IAAIC,GAAW,CAAC,CAAC;AACzD,AAA
 O,MAAuBC,KAAG,IAAIC,GAAW,CAAC,CAAC;AAClD,AAAO,MAAuBC,QAAM,IAAIC,MAAc,CAAC,CAAC;AACxD,AAAO,MAAuBC,OAAK,IAAIC,KAAa,CAAC,CAAC;AACtD,AAAO,MAAuBC,OAAK,IAAIC,KAAa,CAAC,CAAC;AACtD,AAAO,MAAuBC,WAAS,IAAIC,SAAiB,CAAC,CAAC;AAC9D,AAAO,MAAuBC,WAAS,IAAIC,SAAiB,CAAC,CAAC;AAC9D,AAAO,MAAuBC,cAAY,IAAIC,YAAoB,CAAC,CAAC;AACpE,AAAO,MAAuBC,WAAS,IAAIC,SAAiB,CAAC,CAAC;AAC9D,AAAO,MAAuBC,WAAS,IAAIC,SAAiB,CAAC,CAAC;AAC9D,AAAO,MAAuBC,OAAK,IAAIC,KAAa,CAAC,CAAC,AACtD;;ACnHA;;GAEG,AACH,AAAgW,AAChW;;"}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/scrolling.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/scrolling.es5.js b/node_modules/@angular/cdk/esm5/scrolling.es5.js
new file mode 100644
index 0000000..39a9cdf
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/scrolling.es5.js
@@ -0,0 +1,416 @@
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+import { Directive, ElementRef, Injectable, NgModule, NgZone, Optional, Renderer2, SkipSelf } from '@angular/core';
+import { Platform, PlatformModule } from '@angular/cdk/platform';
+import { Subject } from 'rxjs/Subject';
+import { Subscription } from 'rxjs/Subscription';
+import { fromEvent } from 'rxjs/observable/fromEvent';
+import { auditTime } from 'rxjs/operator/auditTime';
+import { merge } from 'rxjs/observable/merge';
+import { of } from 'rxjs/observable/of';
+
+/**
+ * Time in ms to throttle the scrolling events by default.
+ */
+var DEFAULT_SCROLL_TIME = 20;
+/**
+ * Service contained all registered Scrollable references and emits an event when any one of the
+ * Scrollable references emit a scrolled event.
+ */
+var ScrollDispatcher = (function () {
+    /**
+     * @param {?} _ngZone
+     * @param {?} _platform
+     */
+    function ScrollDispatcher(_ngZone, _platform) {
+        this._ngZone = _ngZone;
+        this._platform = _platform;
+        /**
+         * Subject for notifying that a registered scrollable reference element has been scrolled.
+         */
+        this._scrolled = new Subject();
+        /**
+         * Keeps track of the global `scroll` and `resize` subscriptions.
+         */
+        this._globalSubscription = null;
+        /**
+         * Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards.
+         */
+        this._scrolledCount = 0;
+        /**
+         * Map of all the scrollable references that are registered with the service and their
+         * scroll event subscriptions.
+         */
+        this.scrollableReferences = new Map();
+    }
+    /**
+     * Registers a Scrollable with the service and listens for its scrolled events. When the
+     * scrollable is scrolled, the service emits the event in its scrolled observable.
+     * @param {?} scrollable Scrollable instance to be registered.
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.register = function (scrollable) {
+        var _this = this;
+        var /** @type {?} */ scrollSubscription = scrollable.elementScrolled().subscribe(function () { return _this._notify(); });
+        this.scrollableReferences.set(scrollable, scrollSubscription);
+    };
+    /**
+     * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.
+     * @param {?} scrollable Scrollable instance to be deregistered.
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.deregister = function (scrollable) {
+        var /** @type {?} */ scrollableReference = this.scrollableReferences.get(scrollable);
+        if (scrollableReference) {
+            scrollableReference.unsubscribe();
+            this.scrollableReferences.delete(scrollable);
+        }
+    };
+    /**
+     * Subscribes to an observable that emits an event whenever any of the registered Scrollable
+     * references (or window, document, or body) fire a scrolled event. Can provide a time in ms
+     * to override the default "throttle" time.
+     * @param {?=} auditTimeInMs
+     * @param {?=} callback
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.scrolled = function (auditTimeInMs, callback) {
+        var _this = this;
+        if (auditTimeInMs === void 0) { auditTimeInMs = DEFAULT_SCROLL_TIME; }
+        // Scroll events can only happen on the browser, so do nothing if we're not on the browser.
+        if (!this._platform.isBrowser) {
+            return Subscription.EMPTY;
+        }
+        // In the case of a 0ms delay, use an observable without auditTime
+        // since it does add a perceptible delay in processing overhead.
+        var /** @type {?} */ observable = auditTimeInMs > 0 ?
+            auditTime.call(this._scrolled.asObservable(), auditTimeInMs) :
+            this._scrolled.asObservable();
+        this._scrolledCount++;
+        if (!this._globalSubscription) {
+            this._globalSubscription = this._ngZone.runOutsideAngular(function () {
+                return fromEvent(window.document, 'scroll').subscribe(function () { return _this._notify(); });
+            });
+        }
+        // Note that we need to do the subscribing from here, in order to be able to remove
+        // the global event listeners once there are no more subscriptions.
+        var /** @type {?} */ subscription = observable.subscribe(callback);
+        subscription.add(function () {
+            _this._scrolledCount--;
+            if (_this._globalSubscription && !_this.scrollableReferences.size && !_this._scrolledCount) {
+                _this._globalSubscription.unsubscribe();
+                _this._globalSubscription = null;
+            }
+        });
+        return subscription;
+    };
+    /**
+     * Returns all registered Scrollables that contain the provided element.
+     * @param {?} elementRef
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.getScrollContainers = function (elementRef) {
+        var _this = this;
+        var /** @type {?} */ scrollingContainers = [];
+        this.scrollableReferences.forEach(function (_subscription, scrollable) {
+            if (_this.scrollableContainsElement(scrollable, elementRef)) {
+                scrollingContainers.push(scrollable);
+            }
+        });
+        return scrollingContainers;
+    };
+    /**
+     * Returns true if the element is contained within the provided Scrollable.
+     * @param {?} scrollable
+     * @param {?} elementRef
+     * @return {?}
+     */
+    ScrollDispatcher.prototype.scrollableContainsElement = function (scrollable, elementRef) {
+        var /** @type {?} */ element = elementRef.nativeElement;
+        var /** @type {?} */ scrollableElement = scrollable.getElementRef().nativeElement;
+        // Traverse through the element parents until we reach null, checking if any of the elements
+        // are the scrollable's element.
+        do {
+            if (element == scrollableElement) {
+                return true;
+            }
+        } while (element = element.parentElement);
+        return false;
+    };
+    /**
+     * Sends a notification that a scroll event has been fired.
+     * @return {?}
+     */
+    ScrollDispatcher.prototype._notify = function () {
+        this._scrolled.next();
+    };
+    ScrollDispatcher.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    ScrollDispatcher.ctorParameters = function () { return [
+        { type: NgZone, },
+        { type: Platform, },
+    ]; };
+    return ScrollDispatcher;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} ngZone
+ * @param {?} platform
+ * @return {?}
+ */
+function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {
+    return parentDispatcher || new ScrollDispatcher(ngZone, platform);
+}
+/**
+ * \@docs-private
+ */
+var SCROLL_DISPATCHER_PROVIDER = {
+    // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.
+    provide: ScrollDispatcher,
+    deps: [[new Optional(), new SkipSelf(), ScrollDispatcher], NgZone, Platform],
+    useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY
+};
+
+/**
+ * Sends an event when the directive's element is scrolled. Registers itself with the
+ * ScrollDispatcher service to include itself as part of its collection of scrolling events that it
+ * can be listened to through the service.
+ */
+var Scrollable = (function () {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _scroll
+     * @param {?} _ngZone
+     * @param {?} _renderer
+     */
+    function Scrollable(_elementRef, _scroll, _ngZone, _renderer) {
+        this._elementRef = _elementRef;
+        this._scroll = _scroll;
+        this._ngZone = _ngZone;
+        this._renderer = _renderer;
+        this._elementScrolled = new Subject();
+    }
+    /**
+     * @return {?}
+     */
+    Scrollable.prototype.ngOnInit = function () {
+        var _this = this;
+        this._scrollListener = this._ngZone.runOutsideAngular(function () {
+            return _this._renderer.listen(_this.getElementRef().nativeElement, 'scroll', function (event) {
+                _this._elementScrolled.next(event);
+            });
+        });
+        this._scroll.register(this);
+    };
+    /**
+     * @return {?}
+     */
+    Scrollable.prototype.ngOnDestroy = function () {
+        this._scroll.deregister(this);
+        if (this._scrollListener) {
+            this._scrollListener();
+            this._scrollListener = null;
+        }
+    };
+    /**
+     * Returns observable that emits when a scroll event is fired on the host element.
+     * @return {?}
+     */
+    Scrollable.prototype.elementScrolled = function () {
+        return this._elementScrolled.asObservable();
+    };
+    /**
+     * @return {?}
+     */
+    Scrollable.prototype.getElementRef = function () {
+        return this._elementRef;
+    };
+    Scrollable.decorators = [
+        { type: Directive, args: [{
+                    selector: '[cdk-scrollable], [cdkScrollable]'
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    Scrollable.ctorParameters = function () { return [
+        { type: ElementRef, },
+        { type: ScrollDispatcher, },
+        { type: NgZone, },
+        { type: Renderer2, },
+    ]; };
+    return Scrollable;
+}());
+
+/**
+ * Time in ms to throttle the resize events by default.
+ */
+var DEFAULT_RESIZE_TIME = 20;
+/**
+ * Simple utility for getting the bounds of the browser viewport.
+ * \@docs-private
+ */
+var ViewportRuler = (function () {
+    /**
+     * @param {?} platform
+     * @param {?} ngZone
+     * @param {?} scrollDispatcher
+     */
+    function ViewportRuler(platform, ngZone, scrollDispatcher) {
+        var _this = this;
+        this._change = platform.isBrowser ? ngZone.runOutsideAngular(function () {
+            return merge(fromEvent(window, 'resize'), fromEvent(window, 'orientationchange'));
+        }) : of();
+        // Subscribe to scroll and resize events and update the document rectangle on changes.
+        this._invalidateCacheSubscriptions = [
+            scrollDispatcher.scrolled(0, function () { return _this._cacheViewportGeometry(); }),
+            this.change().subscribe(function () { return _this._cacheViewportGeometry(); })
+        ];
+    }
+    /**
+     * @return {?}
+     */
+    ViewportRuler.prototype.ngOnDestroy = function () {
+        this._invalidateCacheSubscriptions.forEach(function (subscription) { return subscription.unsubscribe(); });
+    };
+    /**
+     * Gets a ClientRect for the viewport's bounds.
+     * @param {?=} documentRect
+     * @return {?}
+     */
+    ViewportRuler.prototype.getViewportRect = function (documentRect) {
+        if (documentRect === void 0) { documentRect = this._documentRect; }
+        // Cache the document bounding rect so that we don't recompute it for multiple calls.
+        if (!documentRect) {
+            this._cacheViewportGeometry();
+            documentRect = this._documentRect;
+        }
+        // Use the document element's bounding rect rather than the window scroll properties
+        // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll
+        // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different
+        // conceptual viewports. Under most circumstances these viewports are equivalent, but they
+        // can disagree when the page is pinch-zoomed (on devices that support touch).
+        // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4
+        // We use the documentElement instead of the body because, by default (without a css reset)
+        // browsers typically give the document body an 8px margin, which is not included in
+        // getBoundingClientRect().
+        var /** @type {?} */ scrollPosition = this.getViewportScrollPosition(documentRect);
+        var /** @type {?} */ height = window.innerHeight;
+        var /** @type {?} */ width = window.innerWidth;
+        return {
+            top: scrollPosition.top,
+            left: scrollPosition.left,
+            bottom: scrollPosition.top + height,
+            right: scrollPosition.left + width,
+            height: height,
+            width: width,
+        };
+    };
+    /**
+     * Gets the (top, left) scroll position of the viewport.
+     * @param {?=} documentRect
+     * @return {?}
+     */
+    ViewportRuler.prototype.getViewportScrollPosition = function (documentRect) {
+        if (documentRect === void 0) { documentRect = this._documentRect; }
+        // Cache the document bounding rect so that we don't recompute it for multiple calls.
+        if (!documentRect) {
+            this._cacheViewportGeometry();
+            documentRect = this._documentRect;
+        }
+        // The top-left-corner of the viewport is determined by the scroll position of the document
+        // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about
+        // whether `document.body` or `document.documentElement` is the scrolled element, so reading
+        // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of
+        // `document.documentElement` works consistently, where the `top` and `left` values will
+        // equal negative the scroll position.
+        var /** @type {?} */ top = -((documentRect)).top || document.body.scrollTop || window.scrollY ||
+            document.documentElement.scrollTop || 0;
+        var /** @type {?} */ left = -((documentRect)).left || document.body.scrollLeft || window.scrollX ||
+            document.documentElement.scrollLeft || 0;
+        return { top: top, left: left };
+    };
+    /**
+     * Returns a stream that emits whenever the size of the viewport changes.
+     * @param {?=} throttleTime
+     * @return {?}
+     */
+    ViewportRuler.prototype.change = function (throttleTime) {
+        if (throttleTime === void 0) { throttleTime = DEFAULT_RESIZE_TIME; }
+        return throttleTime > 0 ? auditTime.call(this._change, throttleTime) : this._change;
+    };
+    /**
+     * Caches the latest client rectangle of the document element.
+     * @return {?}
+     */
+    ViewportRuler.prototype._cacheViewportGeometry = function () {
+        this._documentRect = document.documentElement.getBoundingClientRect();
+    };
+    ViewportRuler.decorators = [
+        { type: Injectable },
+    ];
+    /**
+     * @nocollapse
+     */
+    ViewportRuler.ctorParameters = function () { return [
+        { type: Platform, },
+        { type: NgZone, },
+        { type: ScrollDispatcher, },
+    ]; };
+    return ViewportRuler;
+}());
+/**
+ * \@docs-private
+ * @param {?} parentRuler
+ * @param {?} platform
+ * @param {?} ngZone
+ * @param {?} scrollDispatcher
+ * @return {?}
+ */
+function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, platform, ngZone, scrollDispatcher) {
+    return parentRuler || new ViewportRuler(platform, ngZone, scrollDispatcher);
+}
+/**
+ * \@docs-private
+ */
+var VIEWPORT_RULER_PROVIDER = {
+    // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.
+    provide: ViewportRuler,
+    deps: [[new Optional(), new SkipSelf(), ViewportRuler], Platform, NgZone, ScrollDispatcher],
+    useFactory: VIEWPORT_RULER_PROVIDER_FACTORY
+};
+
+var ScrollDispatchModule = (function () {
+    function ScrollDispatchModule() {
+    }
+    ScrollDispatchModule.decorators = [
+        { type: NgModule, args: [{
+                    imports: [PlatformModule],
+                    exports: [Scrollable],
+                    declarations: [Scrollable],
+                    providers: [SCROLL_DISPATCHER_PROVIDER],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    ScrollDispatchModule.ctorParameters = function () { return []; };
+    return ScrollDispatchModule;
+}());
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { DEFAULT_SCROLL_TIME, ScrollDispatcher, SCROLL_DISPATCHER_PROVIDER_FACTORY, SCROLL_DISPATCHER_PROVIDER, Scrollable, DEFAULT_RESIZE_TIME, ViewportRuler, VIEWPORT_RULER_PROVIDER_FACTORY, VIEWPORT_RULER_PROVIDER, ScrollDispatchModule };
+//# sourceMappingURL=scrolling.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm5/scrolling.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm5/scrolling.es5.js.map b/node_modules/@angular/cdk/esm5/scrolling.es5.js.map
new file mode 100644
index 0000000..6f7cf2b
--- /dev/null
+++ b/node_modules/@angular/cdk/esm5/scrolling.es5.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"scrolling.es5.js","sources":["../../packages/cdk/esm5/scrolling/scroll-dispatcher.js","../../packages/cdk/esm5/scrolling/scrollable.js","../../packages/cdk/esm5/scrolling/viewport-ruler.js","../../packages/cdk/esm5/scrolling/scrolling-module.js","../../packages/cdk/esm5/scrolling/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Injectable, NgZone, Optional, SkipSelf } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { Subject } from 'rxjs/Subject';\nimport { Subscription } from 'rxjs/Subscription';\nimport { fromEvent } from 'rxjs/observable/fromEvent';\nimport { auditTime } from 'rxjs/operator/auditTime';\n/**\n * Time in ms to throttle the scrolling events by default.\n */\nexport var DEFAULT_SCROLL_TIME = 20;\n/**\n * Service conta
 ined all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nvar ScrollDispatcher = (function () {\n    /**\n     * @param {?} _ngZone\n     * @param {?} _platform\n     */\n    function ScrollDispatcher(_ngZone, _platform) {\n        this._ngZone = _ngZone;\n        this._platform = _platform;\n        /**\n         * Subject for notifying that a registered scrollable reference element has been scrolled.\n         */\n        this._scrolled = new Subject();\n        /**\n         * Keeps track of the global `scroll` and `resize` subscriptions.\n         */\n        this._globalSubscription = null;\n        /**\n         * Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards.\n         */\n        this._scrolledCount = 0;\n        /**\n         * Map of all the scrollable references that are registered with the service and their\n         * scroll event subscriptions.\n   
       */\n        this.scrollableReferences = new Map();\n    }\n    /**\n     * Registers a Scrollable with the service and listens for its scrolled events. When the\n     * scrollable is scrolled, the service emits the event in its scrolled observable.\n     * @param {?} scrollable Scrollable instance to be registered.\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.register = function (scrollable) {\n        var _this = this;\n        var /** @type {?} */ scrollSubscription = scrollable.elementScrolled().subscribe(function () { return _this._notify(); });\n        this.scrollableReferences.set(scrollable, scrollSubscription);\n    };\n    /**\n     * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\n     * @param {?} scrollable Scrollable instance to be deregistered.\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.deregister = function (scrollable) {\n        var /** @type {?} */ scrollableReference = this.scrollableR
 eferences.get(scrollable);\n        if (scrollableReference) {\n            scrollableReference.unsubscribe();\n            this.scrollableReferences.delete(scrollable);\n        }\n    };\n    /**\n     * Subscribes to an observable that emits an event whenever any of the registered Scrollable\n     * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n     * to override the default \"throttle\" time.\n     * @param {?=} auditTimeInMs\n     * @param {?=} callback\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.scrolled = function (auditTimeInMs, callback) {\n        var _this = this;\n        if (auditTimeInMs === void 0) { auditTimeInMs = DEFAULT_SCROLL_TIME; }\n        // Scroll events can only happen on the browser, so do nothing if we're not on the browser.\n        if (!this._platform.isBrowser) {\n            return Subscription.EMPTY;\n        }\n        // In the case of a 0ms delay, use an observable without auditTime\n  
       // since it does add a perceptible delay in processing overhead.\n        var /** @type {?} */ observable = auditTimeInMs > 0 ?\n            auditTime.call(this._scrolled.asObservable(), auditTimeInMs) :\n            this._scrolled.asObservable();\n        this._scrolledCount++;\n        if (!this._globalSubscription) {\n            this._globalSubscription = this._ngZone.runOutsideAngular(function () {\n                return fromEvent(window.document, 'scroll').subscribe(function () { return _this._notify(); });\n            });\n        }\n        // Note that we need to do the subscribing from here, in order to be able to remove\n        // the global event listeners once there are no more subscriptions.\n        var /** @type {?} */ subscription = observable.subscribe(callback);\n        subscription.add(function () {\n            _this._scrolledCount--;\n            if (_this._globalSubscription && !_this.scrollableReferences.size && !_this._scrolledCount) {\n           
      _this._globalSubscription.unsubscribe();\n                _this._globalSubscription = null;\n            }\n        });\n        return subscription;\n    };\n    /**\n     * Returns all registered Scrollables that contain the provided element.\n     * @param {?} elementRef\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.getScrollContainers = function (elementRef) {\n        var _this = this;\n        var /** @type {?} */ scrollingContainers = [];\n        this.scrollableReferences.forEach(function (_subscription, scrollable) {\n            if (_this.scrollableContainsElement(scrollable, elementRef)) {\n                scrollingContainers.push(scrollable);\n            }\n        });\n        return scrollingContainers;\n    };\n    /**\n     * Returns true if the element is contained within the provided Scrollable.\n     * @param {?} scrollable\n     * @param {?} elementRef\n     * @return {?}\n     */\n    ScrollDispatcher.prototype.scrollableContainsElement = fu
 nction (scrollable, elementRef) {\n        var /** @type {?} */ element = elementRef.nativeElement;\n        var /** @type {?} */ scrollableElement = scrollable.getElementRef().nativeElement;\n        // Traverse through the element parents until we reach null, checking if any of the elements\n        // are the scrollable's element.\n        do {\n            if (element == scrollableElement) {\n                return true;\n            }\n        } while (element = element.parentElement);\n        return false;\n    };\n    /**\n     * Sends a notification that a scroll event has been fired.\n     * @return {?}\n     */\n    ScrollDispatcher.prototype._notify = function () {\n        this._scrolled.next();\n    };\n    ScrollDispatcher.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    ScrollDispatcher.ctorParameters = function () { return [\n        { type: NgZone, },\n        { type: Platform, },\n    ]; };\n    return ScrollDispatch
 er;\n}());\nexport { ScrollDispatcher };\nfunction ScrollDispatcher_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ScrollDispatcher.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ScrollDispatcher.ctorParameters;\n    /**\n     * Subject for notifying that a registered scrollable reference element has been scrolled.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype._scrolled;\n    /**\n     * Keeps track of the global `scroll` and `resize` subscriptions.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype._globalSubscription;\n    /**\n     * Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype._scrolledCount;\n    /**\n     * Map of all the scrollable references that are registered with the service and their\n     * scroll event subscriptions.\n     * @type {?}\n     */\n    ScrollDispatcher.prototype.scrollableReferences;\n    /** @
 type {?} */\n    ScrollDispatcher.prototype._ngZone;\n    /** @type {?} */\n    ScrollDispatcher.prototype._platform;\n}\n/**\n * \\@docs-private\n * @param {?} parentDispatcher\n * @param {?} ngZone\n * @param {?} platform\n * @return {?}\n */\nexport function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {\n    return parentDispatcher || new ScrollDispatcher(ngZone, platform);\n}\n/**\n * \\@docs-private\n */\nexport var SCROLL_DISPATCHER_PROVIDER = {\n    // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.\n    provide: ScrollDispatcher,\n    deps: [[new Optional(), new SkipSelf(), ScrollDispatcher], NgZone, Platform],\n    useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=scroll-dispatcher.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/
 license\n */\nimport { Directive, ElementRef, NgZone, Renderer2 } from '@angular/core';\nimport { Subject } from 'rxjs/Subject';\nimport { ScrollDispatcher } from './scroll-dispatcher';\n/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nvar Scrollable = (function () {\n    /**\n     * @param {?} _elementRef\n     * @param {?} _scroll\n     * @param {?} _ngZone\n     * @param {?} _renderer\n     */\n    function Scrollable(_elementRef, _scroll, _ngZone, _renderer) {\n        this._elementRef = _elementRef;\n        this._scroll = _scroll;\n        this._ngZone = _ngZone;\n        this._renderer = _renderer;\n        this._elementScrolled = new Subject();\n    }\n    /**\n     * @return {?}\n     */\n    Scrollable.prototype.ngOnInit = function () {\n        var _this = this;\n        this._scrol
 lListener = this._ngZone.runOutsideAngular(function () {\n            return _this._renderer.listen(_this.getElementRef().nativeElement, 'scroll', function (event) {\n                _this._elementScrolled.next(event);\n            });\n        });\n        this._scroll.register(this);\n    };\n    /**\n     * @return {?}\n     */\n    Scrollable.prototype.ngOnDestroy = function () {\n        this._scroll.deregister(this);\n        if (this._scrollListener) {\n            this._scrollListener();\n            this._scrollListener = null;\n        }\n    };\n    /**\n     * Returns observable that emits when a scroll event is fired on the host element.\n     * @return {?}\n     */\n    Scrollable.prototype.elementScrolled = function () {\n        return this._elementScrolled.asObservable();\n    };\n    /**\n     * @return {?}\n     */\n    Scrollable.prototype.getElementRef = function () {\n        return this._elementRef;\n    };\n    Scrollable.decorators = [\n        { type: Direc
 tive, args: [{\n                    selector: '[cdk-scrollable], [cdkScrollable]'\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    Scrollable.ctorParameters = function () { return [\n        { type: ElementRef, },\n        { type: ScrollDispatcher, },\n        { type: NgZone, },\n        { type: Renderer2, },\n    ]; };\n    return Scrollable;\n}());\nexport { Scrollable };\nfunction Scrollable_tsickle_Closure_declarations() {\n    /** @type {?} */\n    Scrollable.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    Scrollable.ctorParameters;\n    /** @type {?} */\n    Scrollable.prototype._elementScrolled;\n    /** @type {?} */\n    Scrollable.prototype._scrollListener;\n    /** @type {?} */\n    Scrollable.prototype._elementRef;\n    /** @type {?} */\n    Scrollable.prototype._scroll;\n    /** @type {?} */\n    Scrollable.prototype._ngZone;\n    /** @type {?} */\n    Scrollable.prototype._renderer;\n}\n//# sourceMappingURL=scrollable.j
 s.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Injectable, Optional, SkipSelf, NgZone } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { ScrollDispatcher } from './scroll-dispatcher';\nimport { fromEvent } from 'rxjs/observable/fromEvent';\nimport { merge } from 'rxjs/observable/merge';\nimport { auditTime } from 'rxjs/operator/auditTime';\nimport { of as observableOf } from 'rxjs/observable/of';\n/**\n * Time in ms to throttle the resize events by default.\n */\nexport var DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * \\@docs-private\n */\nvar ViewportRuler = (function () {\n    /**\n     * @param {?} platform\n     * @param {?} ngZone\n     * @param {?} scrollDispatcher\n     */\n    function ViewportRuler(platform,
  ngZone, scrollDispatcher) {\n        var _this = this;\n        this._change = platform.isBrowser ? ngZone.runOutsideAngular(function () {\n            return merge(fromEvent(window, 'resize'), fromEvent(window, 'orientationchange'));\n        }) : observableOf();\n        // Subscribe to scroll and resize events and update the document rectangle on changes.\n        this._invalidateCacheSubscriptions = [\n            scrollDispatcher.scrolled(0, function () { return _this._cacheViewportGeometry(); }),\n            this.change().subscribe(function () { return _this._cacheViewportGeometry(); })\n        ];\n    }\n    /**\n     * @return {?}\n     */\n    ViewportRuler.prototype.ngOnDestroy = function () {\n        this._invalidateCacheSubscriptions.forEach(function (subscription) { return subscription.unsubscribe(); });\n    };\n    /**\n     * Gets a ClientRect for the viewport's bounds.\n     * @param {?=} documentRect\n     * @return {?}\n     */\n    ViewportRuler.prototype.get
 ViewportRect = function (documentRect) {\n        if (documentRect === void 0) { documentRect = this._documentRect; }\n        // Cache the document bounding rect so that we don't recompute it for multiple calls.\n        if (!documentRect) {\n            this._cacheViewportGeometry();\n            documentRect = this._documentRect;\n        }\n        // Use the document element's bounding rect rather than the window scroll properties\n        // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n        // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n        // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n        // can disagree when the page is pinch-zoomed (on devices that support touch).\n        // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n        // We use the documentElement instead of the body because, by default (without a css r
 eset)\n        // browsers typically give the document body an 8px margin, which is not included in\n        // getBoundingClientRect().\n        var /** @type {?} */ scrollPosition = this.getViewportScrollPosition(documentRect);\n        var /** @type {?} */ height = window.innerHeight;\n        var /** @type {?} */ width = window.innerWidth;\n        return {\n            top: scrollPosition.top,\n            left: scrollPosition.left,\n            bottom: scrollPosition.top + height,\n            right: scrollPosition.left + width,\n            height: height,\n            width: width,\n        };\n    };\n    /**\n     * Gets the (top, left) scroll position of the viewport.\n     * @param {?=} documentRect\n     * @return {?}\n     */\n    ViewportRuler.prototype.getViewportScrollPosition = function (documentRect) {\n        if (documentRect === void 0) { documentRect = this._documentRect; }\n        // Cache the document bounding rect so that we don't recompute it for multiple
  calls.\n        if (!documentRect) {\n            this._cacheViewportGeometry();\n            documentRect = this._documentRect;\n        }\n        // The top-left-corner of the viewport is determined by the scroll position of the document\n        // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n        // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n        // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n        // `document.documentElement` works consistently, where the `top` and `left` values will\n        // equal negative the scroll position.\n        var /** @type {?} */ top = -((documentRect)).top || document.body.scrollTop || window.scrollY ||\n            document.documentElement.scrollTop || 0;\n        var /** @type {?} */ left = -((documentRect)).left || document.body.scrollLeft || window.scrollX ||\n            document.documentElement.scroll
 Left || 0;\n        return { top: top, left: left };\n    };\n    /**\n     * Returns a stream that emits whenever the size of the viewport changes.\n     * @param {?=} throttleTime\n     * @return {?}\n     */\n    ViewportRuler.prototype.change = function (throttleTime) {\n        if (throttleTime === void 0) { throttleTime = DEFAULT_RESIZE_TIME; }\n        return throttleTime > 0 ? auditTime.call(this._change, throttleTime) : this._change;\n    };\n    /**\n     * Caches the latest client rectangle of the document element.\n     * @return {?}\n     */\n    ViewportRuler.prototype._cacheViewportGeometry = function () {\n        this._documentRect = document.documentElement.getBoundingClientRect();\n    };\n    ViewportRuler.decorators = [\n        { type: Injectable },\n    ];\n    /**\n     * @nocollapse\n     */\n    ViewportRuler.ctorParameters = function () { return [\n        { type: Platform, },\n        { type: NgZone, },\n        { type: ScrollDispatcher, },\n    ]; };\n  
   return ViewportRuler;\n}());\nexport { ViewportRuler };\nfunction ViewportRuler_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ViewportRuler.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ViewportRuler.ctorParameters;\n    /**\n     * Cached document client rectangle.\n     * @type {?}\n     */\n    ViewportRuler.prototype._documentRect;\n    /**\n     * Stream of viewport change events.\n     * @type {?}\n     */\n    ViewportRuler.prototype._change;\n    /**\n     * Subscriptions to streams that invalidate the cached viewport dimensions.\n     * @type {?}\n     */\n    ViewportRuler.prototype._invalidateCacheSubscriptions;\n}\n/**\n * \\@docs-private\n * @param {?} parentRuler\n * @param {?} platform\n * @param {?} ngZone\n * @param {?} scrollDispatcher\n * @return {?}\n */\nexport function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, platform, ngZone, scrollDispatcher) {\n    return parentRuler || new ViewportRuler(platform, ngZone, scroll
 Dispatcher);\n}\n/**\n * \\@docs-private\n */\nexport var VIEWPORT_RULER_PROVIDER = {\n    // If there is already a ViewportRuler available, use that. Otherwise, provide a new one.\n    provide: ViewportRuler,\n    deps: [[new Optional(), new SkipSelf(), ViewportRuler], Platform, NgZone, ScrollDispatcher],\n    useFactory: VIEWPORT_RULER_PROVIDER_FACTORY\n};\n//# sourceMappingURL=viewport-ruler.js.map","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgModule } from '@angular/core';\nimport { SCROLL_DISPATCHER_PROVIDER } from './scroll-dispatcher';\nimport { Scrollable } from './scrollable';\nimport { PlatformModule } from '@angular/cdk/platform';\nvar ScrollDispatchModule = (function () {\n    function ScrollDispatchModule() {\n    }\n    ScrollDispatchModule.decorators = [\n        { type: NgModule, args: [{\n   
                  imports: [PlatformModule],\n                    exports: [Scrollable],\n                    declarations: [Scrollable],\n                    providers: [SCROLL_DISPATCHER_PROVIDER],\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    ScrollDispatchModule.ctorParameters = function () { return []; };\n    return ScrollDispatchModule;\n}());\nexport { ScrollDispatchModule };\nfunction ScrollDispatchModule_tsickle_Closure_declarations() {\n    /** @type {?} */\n    ScrollDispatchModule.decorators;\n    /**\n     * @nocollapse\n     * @type {?}\n     */\n    ScrollDispatchModule.ctorParameters;\n}\n//# sourceMappingURL=scrolling-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { DEFAULT_SCROLL_TIME, ScrollDispatcher, SCROLL_DISPATCHER_PROVIDER_FACTORY, SCROLL_DISPATCHER_PROVIDER, Scrollable, DEFAULT_RESIZE_TIME, ViewportRuler, VIEWPORT_RULER_PROVIDER_FACTORY, VIEWPORT_RULER_PROVIDER, ScrollDispatchModule } from './public-ap
 i';\n//# sourceMappingURL=index.js.map"],"names":["observableOf"],"mappings":"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"}
\ No newline at end of file

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


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/esm2015/a11y.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/esm2015/a11y.js b/node_modules/@angular/cdk/esm2015/a11y.js
new file mode 100644
index 0000000..0c63404
--- /dev/null
+++ b/node_modules/@angular/cdk/esm2015/a11y.js
@@ -0,0 +1,1618 @@
+/**
+ * @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 { Subscription } from 'rxjs/Subscription';
+import { A, DOWN_ARROW, NINE, TAB, UP_ARROW, Z, ZERO } from '@angular/cdk/keycodes';
+import { RxChain, debounceTime, doOperator, filter, first, map } from '@angular/cdk/rxjs';
+import { Directive, ElementRef, EventEmitter, Inject, Injectable, InjectionToken, Input, NgModule, NgZone, Optional, Output, Renderer2, SkipSelf } from '@angular/core';
+import { Platform, PlatformModule } from '@angular/cdk/platform';
+import { coerceBooleanProperty } from '@angular/cdk/coercion';
+import { of } from 'rxjs/observable/of';
+import { CommonModule } from '@angular/common';
+
+/**
+ * This class manages keyboard events for selectable lists. If you pass it a query list
+ * of items, it will set the active item correctly when arrow events occur.
+ */
+class ListKeyManager {
+    /**
+     * @param {?} _items
+     */
+    constructor(_items) {
+        this._items = _items;
+        this._activeItemIndex = -1;
+        this._wrap = false;
+        this._letterKeyStream = new Subject();
+        this._typeaheadSubscription = Subscription.EMPTY;
+        this._pressedLetters = [];
+        /**
+         * Stream that emits any time the TAB key is pressed, so components can react
+         * when focus is shifted off of the list.
+         */
+        this.tabOut = new Subject();
+    }
+    /**
+     * Turns on wrapping mode, which ensures that the active item will wrap to
+     * the other end of list when there are no more items in the given direction.
+     * @return {?}
+     */
+    withWrap() {
+        this._wrap = true;
+        return this;
+    }
+    /**
+     * Turns on typeahead mode which allows users to set the active item by typing.
+     * @param {?=} debounceInterval Time to wait after the last keystroke before setting the active item.
+     * @return {?}
+     */
+    withTypeAhead(debounceInterval = 200) {
+        if (this._items.length && this._items.some(item => typeof item.getLabel !== 'function')) {
+            throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');
+        }
+        this._typeaheadSubscription.unsubscribe();
+        // Debounce the presses of non-navigational keys, collect the ones that correspond to letters
+        // and convert those letters back into a string. Afterwards find the first item that starts
+        // with that string and select it.
+        this._typeaheadSubscription = RxChain.from(this._letterKeyStream)
+            .call(doOperator, keyCode => this._pressedLetters.push(keyCode))
+            .call(debounceTime, debounceInterval)
+            .call(filter, () => this._pressedLetters.length > 0)
+            .call(map, () => this._pressedLetters.join(''))
+            .subscribe(inputString => {
+            const /** @type {?} */ items = this._items.toArray();
+            // Start at 1 because we want to start searching at the item immediately
+            // following the current active item.
+            for (let /** @type {?} */ i = 1; i < items.length + 1; i++) {
+                const /** @type {?} */ index = (this._activeItemIndex + i) % items.length;
+                const /** @type {?} */ item = items[index];
+                if (!item.disabled && ((item.getLabel))().toUpperCase().trim().indexOf(inputString) === 0) {
+                    this.setActiveItem(index);
+                    break;
+                }
+            }
+            this._pressedLetters = [];
+        });
+        return this;
+    }
+    /**
+     * Sets the active item to the item at the index specified.
+     * @param {?} index The index of the item to be set as active.
+     * @return {?}
+     */
+    setActiveItem(index) {
+        this._activeItemIndex = index;
+        this._activeItem = this._items.toArray()[index];
+    }
+    /**
+     * Sets the active item depending on the key event passed in.
+     * @param {?} event Keyboard event to be used for determining which element should be active.
+     * @return {?}
+     */
+    onKeydown(event) {
+        switch (event.keyCode) {
+            case DOWN_ARROW:
+                this.setNextItemActive();
+                break;
+            case UP_ARROW:
+                this.setPreviousItemActive();
+                break;
+            case TAB:
+                this.tabOut.next();
+                return;
+            default:
+                const /** @type {?} */ keyCode = event.keyCode;
+                // Attempt to use the `event.key` which also maps it to the user's keyboard language,
+                // otherwise fall back to resolving alphanumeric characters via the keyCode.
+                if (event.key && event.key.length === 1) {
+                    this._letterKeyStream.next(event.key.toLocaleUpperCase());
+                }
+                else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {
+                    this._letterKeyStream.next(String.fromCharCode(keyCode));
+                }
+                // Note that we return here, in order to avoid preventing
+                // the default action of non-navigational keys.
+                return;
+        }
+        this._pressedLetters = [];
+        event.preventDefault();
+    }
+    /**
+     * Index of the currently active item.
+     * @return {?}
+     */
+    get activeItemIndex() {
+        return this._activeItemIndex;
+    }
+    /**
+     * The active item.
+     * @return {?}
+     */
+    get activeItem() {
+        return this._activeItem;
+    }
+    /**
+     * Sets the active item to the first enabled item in the list.
+     * @return {?}
+     */
+    setFirstItemActive() {
+        this._setActiveItemByIndex(0, 1);
+    }
+    /**
+     * Sets the active item to the last enabled item in the list.
+     * @return {?}
+     */
+    setLastItemActive() {
+        this._setActiveItemByIndex(this._items.length - 1, -1);
+    }
+    /**
+     * Sets the active item to the next enabled item in the list.
+     * @return {?}
+     */
+    setNextItemActive() {
+        this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);
+    }
+    /**
+     * Sets the active item to a previous enabled item in the list.
+     * @return {?}
+     */
+    setPreviousItemActive() {
+        this._activeItemIndex < 0 && this._wrap ? this.setLastItemActive()
+            : this._setActiveItemByDelta(-1);
+    }
+    /**
+     * Allows setting of the activeItemIndex without any other effects.
+     * @param {?} index The new activeItemIndex.
+     * @return {?}
+     */
+    updateActiveItemIndex(index) {
+        this._activeItemIndex = index;
+    }
+    /**
+     * This method sets the active item, given a list of items and the delta between the
+     * currently active item and the new active item. It will calculate differently
+     * depending on whether wrap mode is turned on.
+     * @param {?} delta
+     * @param {?=} items
+     * @return {?}
+     */
+    _setActiveItemByDelta(delta, items = this._items.toArray()) {
+        this._wrap ? this._setActiveInWrapMode(delta, items)
+            : this._setActiveInDefaultMode(delta, items);
+    }
+    /**
+     * Sets the active item properly given "wrap" mode. In other words, it will continue to move
+     * down the list until it finds an item that is not disabled, and it will wrap if it
+     * encounters either end of the list.
+     * @param {?} delta
+     * @param {?} items
+     * @return {?}
+     */
+    _setActiveInWrapMode(delta, items) {
+        // when active item would leave menu, wrap to beginning or end
+        this._activeItemIndex =
+            (this._activeItemIndex + delta + items.length) % items.length;
+        // skip all disabled menu items recursively until an enabled one is reached
+        if (items[this._activeItemIndex].disabled) {
+            this._setActiveInWrapMode(delta, items);
+        }
+        else {
+            this.setActiveItem(this._activeItemIndex);
+        }
+    }
+    /**
+     * Sets the active item properly given the default mode. In other words, it will
+     * continue to move down the list until it finds an item that is not disabled. If
+     * it encounters either end of the list, it will stop and not wrap.
+     * @param {?} delta
+     * @param {?} items
+     * @return {?}
+     */
+    _setActiveInDefaultMode(delta, items) {
+        this._setActiveItemByIndex(this._activeItemIndex + delta, delta, items);
+    }
+    /**
+     * Sets the active item to the first enabled item starting at the index specified. If the
+     * item is disabled, it will move in the fallbackDelta direction until it either
+     * finds an enabled item or encounters the end of the list.
+     * @param {?} index
+     * @param {?} fallbackDelta
+     * @param {?=} items
+     * @return {?}
+     */
+    _setActiveItemByIndex(index, fallbackDelta, items = this._items.toArray()) {
+        if (!items[index]) {
+            return;
+        }
+        while (items[index].disabled) {
+            index += fallbackDelta;
+            if (!items[index]) {
+                return;
+            }
+        }
+        this.setActiveItem(index);
+    }
+}
+
+class ActiveDescendantKeyManager extends ListKeyManager {
+    /**
+     * This method sets the active item to the item at the specified index.
+     * It also adds active styles to the newly active item and removes active
+     * styles from the previously active item.
+     * @param {?} index
+     * @return {?}
+     */
+    setActiveItem(index) {
+        if (this.activeItem) {
+            this.activeItem.setInactiveStyles();
+        }
+        super.setActiveItem(index);
+        if (this.activeItem) {
+            this.activeItem.setActiveStyles();
+        }
+    }
+}
+
+/**
+ * IDs are deliminated by an empty space, as per the spec.
+ */
+const ID_DELIMINATOR = ' ';
+/**
+ * Adds the given ID to the specified ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ * @param {?} el
+ * @param {?} attr
+ * @param {?} id
+ * @return {?}
+ */
+function addAriaReferencedId(el, attr, id) {
+    const /** @type {?} */ ids = getAriaReferenceIds(el, attr);
+    if (ids.some(existingId => existingId.trim() == id.trim())) {
+        return;
+    }
+    ids.push(id.trim());
+    el.setAttribute(attr, ids.join(ID_DELIMINATOR));
+}
+/**
+ * Removes the given ID from the specified ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ * @param {?} el
+ * @param {?} attr
+ * @param {?} id
+ * @return {?}
+ */
+function removeAriaReferencedId(el, attr, id) {
+    const /** @type {?} */ ids = getAriaReferenceIds(el, attr);
+    const /** @type {?} */ filteredIds = ids.filter(val => val != id.trim());
+    el.setAttribute(attr, filteredIds.join(ID_DELIMINATOR));
+}
+/**
+ * Gets the list of IDs referenced by the given ARIA attribute on an element.
+ * Used for attributes such as aria-labelledby, aria-owns, etc.
+ * @param {?} el
+ * @param {?} attr
+ * @return {?}
+ */
+function getAriaReferenceIds(el, attr) {
+    // Get string array of all individual ids (whitespace deliminated) in the attribute value
+    return (el.getAttribute(attr) || '').match(/\S+/g) || [];
+}
+
+/**
+ * ID used for the body container where all messages are appended.
+ */
+const MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';
+/**
+ * ID prefix used for each created message element.
+ */
+const CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';
+/**
+ * Attribute given to each host element that is described by a message element.
+ */
+const CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';
+/**
+ * Global incremental identifier for each registered message element.
+ */
+let nextId = 0;
+/**
+ * Global map of all registered message elements that have been placed into the document.
+ */
+const messageRegistry = new Map();
+/**
+ * Container for all registered messages.
+ */
+let messagesContainer = null;
+/**
+ * Utility that creates visually hidden elements with a message content. Useful for elements that
+ * want to use aria-describedby to further describe themselves without adding additional visual
+ * content.
+ * \@docs-private
+ */
+class AriaDescriber {
+    /**
+     * @param {?} _platform
+     */
+    constructor(_platform) {
+        this._platform = _platform;
+    }
+    /**
+     * Adds to the host element an aria-describedby reference to a hidden element that contains
+     * the message. If the same message has already been registered, then it will reuse the created
+     * message element.
+     * @param {?} hostElement
+     * @param {?} message
+     * @return {?}
+     */
+    describe(hostElement, message) {
+        if (!this._platform.isBrowser || !message.trim()) {
+            return;
+        }
+        if (!messageRegistry.has(message)) {
+            createMessageElement(message);
+        }
+        if (!isElementDescribedByMessage(hostElement, message)) {
+            addMessageReference(hostElement, message);
+        }
+    }
+    /**
+     * Removes the host element's aria-describedby reference to the message element.
+     * @param {?} hostElement
+     * @param {?} message
+     * @return {?}
+     */
+    removeDescription(hostElement, message) {
+        if (!this._platform.isBrowser || !message.trim()) {
+            return;
+        }
+        if (isElementDescribedByMessage(hostElement, message)) {
+            removeMessageReference(hostElement, message);
+        }
+        const /** @type {?} */ registeredMessage = messageRegistry.get(message);
+        if (registeredMessage && registeredMessage.referenceCount === 0) {
+            deleteMessageElement(message);
+        }
+        if (messagesContainer && messagesContainer.childNodes.length === 0) {
+            deleteMessagesContainer();
+        }
+    }
+    /**
+     * Unregisters all created message elements and removes the message container.
+     * @return {?}
+     */
+    ngOnDestroy() {
+        if (!this._platform.isBrowser) {
+            return;
+        }
+        const /** @type {?} */ describedElements = document.querySelectorAll(`[${CDK_DESCRIBEDBY_HOST_ATTRIBUTE}]`);
+        for (let /** @type {?} */ i = 0; i < describedElements.length; i++) {
+            removeCdkDescribedByReferenceIds(describedElements[i]);
+            describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);
+        }
+        if (messagesContainer) {
+            deleteMessagesContainer();
+        }
+        messageRegistry.clear();
+    }
+}
+AriaDescriber.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+AriaDescriber.ctorParameters = () => [
+    { type: Platform, },
+];
+/**
+ * Creates a new element in the visually hidden message container element with the message
+ * as its content and adds it to the message registry.
+ * @param {?} message
+ * @return {?}
+ */
+function createMessageElement(message) {
+    const /** @type {?} */ messageElement = document.createElement('div');
+    messageElement.setAttribute('id', `${CDK_DESCRIBEDBY_ID_PREFIX}-${nextId++}`);
+    messageElement.appendChild(/** @type {?} */ ((document.createTextNode(message))));
+    if (!messagesContainer) {
+        createMessagesContainer();
+    } /** @type {?} */
+    ((messagesContainer)).appendChild(messageElement);
+    messageRegistry.set(message, { messageElement, referenceCount: 0 });
+}
+/**
+ * Deletes the message element from the global messages container.
+ * @param {?} message
+ * @return {?}
+ */
+function deleteMessageElement(message) {
+    const /** @type {?} */ registeredMessage = messageRegistry.get(message);
+    const /** @type {?} */ messageElement = registeredMessage && registeredMessage.messageElement;
+    if (messagesContainer && messageElement) {
+        messagesContainer.removeChild(messageElement);
+    }
+    messageRegistry.delete(message);
+}
+/**
+ * Creates the global container for all aria-describedby messages.
+ * @return {?}
+ */
+function createMessagesContainer() {
+    messagesContainer = document.createElement('div');
+    messagesContainer.setAttribute('id', MESSAGES_CONTAINER_ID);
+    messagesContainer.setAttribute('aria-hidden', 'true');
+    messagesContainer.style.display = 'none';
+    document.body.appendChild(messagesContainer);
+}
+/**
+ * Deletes the global messages container.
+ * @return {?}
+ */
+function deleteMessagesContainer() {
+    document.body.removeChild(/** @type {?} */ ((messagesContainer)));
+    messagesContainer = null;
+}
+/**
+ * Removes all cdk-describedby messages that are hosted through the element.
+ * @param {?} element
+ * @return {?}
+ */
+function removeCdkDescribedByReferenceIds(element) {
+    // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX
+    const /** @type {?} */ originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby')
+        .filter(id => id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0);
+    element.setAttribute('aria-describedby', originalReferenceIds.join(' '));
+}
+/**
+ * Adds a message reference to the element using aria-describedby and increments the registered
+ * message's reference count.
+ * @param {?} element
+ * @param {?} message
+ * @return {?}
+ */
+function addMessageReference(element, message) {
+    const /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));
+    // Add the aria-describedby reference and set the describedby_host attribute to mark the element.
+    addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);
+    element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, '');
+    registeredMessage.referenceCount++;
+}
+/**
+ * Removes a message reference from the element using aria-describedby and decrements the registered
+ * message's reference count.
+ * @param {?} element
+ * @param {?} message
+ * @return {?}
+ */
+function removeMessageReference(element, message) {
+    const /** @type {?} */ registeredMessage = ((messageRegistry.get(message)));
+    registeredMessage.referenceCount--;
+    removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);
+    element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);
+}
+/**
+ * Returns true if the element has been described by the provided message ID.
+ * @param {?} element
+ * @param {?} message
+ * @return {?}
+ */
+function isElementDescribedByMessage(element, message) {
+    const /** @type {?} */ referenceIds = getAriaReferenceIds(element, 'aria-describedby');
+    const /** @type {?} */ registeredMessage = messageRegistry.get(message);
+    const /** @type {?} */ messageId = registeredMessage && registeredMessage.messageElement.id;
+    return !!messageId && referenceIds.indexOf(messageId) != -1;
+}
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} platform
+ * @return {?}
+ */
+function ARIA_DESCRIBER_PROVIDER_FACTORY(parentDispatcher, platform) {
+    return parentDispatcher || new AriaDescriber(platform);
+}
+/**
+ * \@docs-private
+ */
+const ARIA_DESCRIBER_PROVIDER = {
+    // If there is already an AriaDescriber available, use that. Otherwise, provide a new one.
+    provide: AriaDescriber,
+    deps: [
+        [new Optional(), new SkipSelf(), AriaDescriber],
+        Platform
+    ],
+    useFactory: ARIA_DESCRIBER_PROVIDER_FACTORY
+};
+
+/**
+ * Screenreaders will often fire fake mousedown events when a focusable element
+ * is activated using the keyboard. We can typically distinguish between these faked
+ * mousedown events and real mousedown events using the "buttons" property. While
+ * real mousedowns will indicate the mouse button that was pressed (e.g. "1" for
+ * the left mouse button), faked mousedowns will usually set the property value to 0.
+ * @param {?} event
+ * @return {?}
+ */
+function isFakeMousedownFromScreenReader(event) {
+    return event.buttons === 0;
+}
+
+class FocusKeyManager extends ListKeyManager {
+    /**
+     * This method sets the active item to the item at the specified index.
+     * It also adds focuses the newly active item.
+     * @param {?} index
+     * @return {?}
+     */
+    setActiveItem(index) {
+        super.setActiveItem(index);
+        if (this.activeItem) {
+            this.activeItem.focus();
+        }
+    }
+}
+
+/**
+ * Utility for checking the interactivity of an element, such as whether is is focusable or
+ * tabbable.
+ */
+class InteractivityChecker {
+    /**
+     * @param {?} _platform
+     */
+    constructor(_platform) {
+        this._platform = _platform;
+    }
+    /**
+     * Gets whether an element is disabled.
+     *
+     * @param {?} element Element to be checked.
+     * @return {?} Whether the element is disabled.
+     */
+    isDisabled(element) {
+        // This does not capture some cases, such as a non-form control with a disabled attribute or
+        // a form control inside of a disabled form, but should capture the most common cases.
+        return element.hasAttribute('disabled');
+    }
+    /**
+     * Gets whether an element is visible for the purposes of interactivity.
+     *
+     * This will capture states like `display: none` and `visibility: hidden`, but not things like
+     * being clipped by an `overflow: hidden` parent or being outside the viewport.
+     *
+     * @param {?} element
+     * @return {?} Whether the element is visible.
+     */
+    isVisible(element) {
+        return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';
+    }
+    /**
+     * Gets whether an element can be reached via Tab key.
+     * Assumes that the element has already been checked with isFocusable.
+     *
+     * @param {?} element Element to be checked.
+     * @return {?} Whether the element is tabbable.
+     */
+    isTabbable(element) {
+        // Nothing is tabbable on the the server 😎
+        if (!this._platform.isBrowser) {
+            return false;
+        }
+        let /** @type {?} */ frameElement = (getWindow(element).frameElement);
+        if (frameElement) {
+            let /** @type {?} */ frameType = frameElement && frameElement.nodeName.toLowerCase();
+            // Frame elements inherit their tabindex onto all child elements.
+            if (getTabIndexValue(frameElement) === -1) {
+                return false;
+            }
+            // Webkit and Blink consider anything inside of an <object> element as non-tabbable.
+            if ((this._platform.BLINK || this._platform.WEBKIT) && frameType === 'object') {
+                return false;
+            }
+            // Webkit and Blink disable tabbing to an element inside of an invisible frame.
+            if ((this._platform.BLINK || this._platform.WEBKIT) && !this.isVisible(frameElement)) {
+                return false;
+            }
+        }
+        let /** @type {?} */ nodeName = element.nodeName.toLowerCase();
+        let /** @type {?} */ tabIndexValue = getTabIndexValue(element);
+        if (element.hasAttribute('contenteditable')) {
+            return tabIndexValue !== -1;
+        }
+        if (nodeName === 'iframe') {
+            // The frames may be tabbable depending on content, but it's not possibly to reliably
+            // investigate the content of the frames.
+            return false;
+        }
+        if (nodeName === 'audio') {
+            if (!element.hasAttribute('controls')) {
+                // By default an <audio> element without the controls enabled is not tabbable.
+                return false;
+            }
+            else if (this._platform.BLINK) {
+                // In Blink <audio controls> elements are always tabbable.
+                return true;
+            }
+        }
+        if (nodeName === 'video') {
+            if (!element.hasAttribute('controls') && this._platform.TRIDENT) {
+                // In Trident a <video> element without the controls enabled is not tabbable.
+                return false;
+            }
+            else if (this._platform.BLINK || this._platform.FIREFOX) {
+                // In Chrome and Firefox <video controls> elements are always tabbable.
+                return true;
+            }
+        }
+        if (nodeName === 'object' && (this._platform.BLINK || this._platform.WEBKIT)) {
+            // In all Blink and WebKit based browsers <object> elements are never tabbable.
+            return false;
+        }
+        // In iOS the browser only considers some specific elements as tabbable.
+        if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {
+            return false;
+        }
+        return element.tabIndex >= 0;
+    }
+    /**
+     * Gets whether an element can be focused by the user.
+     *
+     * @param {?} element Element to be checked.
+     * @return {?} Whether the element is focusable.
+     */
+    isFocusable(element) {
+        // Perform checks in order of left to most expensive.
+        // Again, naive approach that does not capture many edge cases and browser quirks.
+        return isPotentiallyFocusable(element) && !this.isDisabled(element) && this.isVisible(element);
+    }
+}
+InteractivityChecker.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+InteractivityChecker.ctorParameters = () => [
+    { type: Platform, },
+];
+/**
+ * Checks whether the specified element has any geometry / rectangles.
+ * @param {?} element
+ * @return {?}
+ */
+function hasGeometry(element) {
+    // Use logic from jQuery to check for an invisible element.
+    // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12
+    return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
+}
+/**
+ * Gets whether an element's
+ * @param {?} element
+ * @return {?}
+ */
+function isNativeFormElement(element) {
+    let /** @type {?} */ nodeName = element.nodeName.toLowerCase();
+    return nodeName === 'input' ||
+        nodeName === 'select' ||
+        nodeName === 'button' ||
+        nodeName === 'textarea';
+}
+/**
+ * Gets whether an element is an <input type="hidden">.
+ * @param {?} element
+ * @return {?}
+ */
+function isHiddenInput(element) {
+    return isInputElement(element) && element.type == 'hidden';
+}
+/**
+ * Gets whether an element is an anchor that has an href attribute.
+ * @param {?} element
+ * @return {?}
+ */
+function isAnchorWithHref(element) {
+    return isAnchorElement(element) && element.hasAttribute('href');
+}
+/**
+ * Gets whether an element is an input element.
+ * @param {?} element
+ * @return {?}
+ */
+function isInputElement(element) {
+    return element.nodeName.toLowerCase() == 'input';
+}
+/**
+ * Gets whether an element is an anchor element.
+ * @param {?} element
+ * @return {?}
+ */
+function isAnchorElement(element) {
+    return element.nodeName.toLowerCase() == 'a';
+}
+/**
+ * Gets whether an element has a valid tabindex.
+ * @param {?} element
+ * @return {?}
+ */
+function hasValidTabIndex(element) {
+    if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {
+        return false;
+    }
+    let /** @type {?} */ tabIndex = element.getAttribute('tabindex');
+    // IE11 parses tabindex="" as the value "-32768"
+    if (tabIndex == '-32768') {
+        return false;
+    }
+    return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));
+}
+/**
+ * Returns the parsed tabindex from the element attributes instead of returning the
+ * evaluated tabindex from the browsers defaults.
+ * @param {?} element
+ * @return {?}
+ */
+function getTabIndexValue(element) {
+    if (!hasValidTabIndex(element)) {
+        return null;
+    }
+    // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054
+    const /** @type {?} */ tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);
+    return isNaN(tabIndex) ? -1 : tabIndex;
+}
+/**
+ * Checks whether the specified element is potentially tabbable on iOS
+ * @param {?} element
+ * @return {?}
+ */
+function isPotentiallyTabbableIOS(element) {
+    let /** @type {?} */ nodeName = element.nodeName.toLowerCase();
+    let /** @type {?} */ inputType = nodeName === 'input' && ((element)).type;
+    return inputType === 'text'
+        || inputType === 'password'
+        || nodeName === 'select'
+        || nodeName === 'textarea';
+}
+/**
+ * Gets whether an element is potentially focusable without taking current visible/disabled state
+ * into account.
+ * @param {?} element
+ * @return {?}
+ */
+function isPotentiallyFocusable(element) {
+    // Inputs are potentially focusable *unless* they're type="hidden".
+    if (isHiddenInput(element)) {
+        return false;
+    }
+    return isNativeFormElement(element) ||
+        isAnchorWithHref(element) ||
+        element.hasAttribute('contenteditable') ||
+        hasValidTabIndex(element);
+}
+/**
+ * Gets the parent window of a DOM node with regards of being inside of an iframe.
+ * @param {?} node
+ * @return {?}
+ */
+function getWindow(node) {
+    return node.ownerDocument.defaultView || window;
+}
+
+/**
+ * Class that allows for trapping focus within a DOM element.
+ *
+ * NOTE: This class currently uses a very simple (naive) approach to focus trapping.
+ * It assumes that the tab order is the same as DOM order, which is not necessarily true.
+ * Things like tabIndex > 0, flex `order`, and shadow roots can cause to two to misalign.
+ * This will be replaced with a more intelligent solution before the library is considered stable.
+ */
+class FocusTrap {
+    /**
+     * @param {?} _element
+     * @param {?} _platform
+     * @param {?} _checker
+     * @param {?} _ngZone
+     * @param {?=} deferAnchors
+     */
+    constructor(_element, _platform, _checker, _ngZone, deferAnchors = false) {
+        this._element = _element;
+        this._platform = _platform;
+        this._checker = _checker;
+        this._ngZone = _ngZone;
+        this._enabled = true;
+        if (!deferAnchors) {
+            this.attachAnchors();
+        }
+    }
+    /**
+     * Whether the focus trap is active.
+     * @return {?}
+     */
+    get enabled() { return this._enabled; }
+    /**
+     * @param {?} val
+     * @return {?}
+     */
+    set enabled(val) {
+        this._enabled = val;
+        if (this._startAnchor && this._endAnchor) {
+            this._startAnchor.tabIndex = this._endAnchor.tabIndex = this._enabled ? 0 : -1;
+        }
+    }
+    /**
+     * Destroys the focus trap by cleaning up the anchors.
+     * @return {?}
+     */
+    destroy() {
+        if (this._startAnchor && this._startAnchor.parentNode) {
+            this._startAnchor.parentNode.removeChild(this._startAnchor);
+        }
+        if (this._endAnchor && this._endAnchor.parentNode) {
+            this._endAnchor.parentNode.removeChild(this._endAnchor);
+        }
+        this._startAnchor = this._endAnchor = null;
+    }
+    /**
+     * Inserts the anchors into the DOM. This is usually done automatically
+     * in the constructor, but can be deferred for cases like directives with `*ngIf`.
+     * @return {?}
+     */
+    attachAnchors() {
+        // If we're not on the browser, there can be no focus to trap.
+        if (!this._platform.isBrowser) {
+            return;
+        }
+        if (!this._startAnchor) {
+            this._startAnchor = this._createAnchor();
+        }
+        if (!this._endAnchor) {
+            this._endAnchor = this._createAnchor();
+        }
+        this._ngZone.runOutsideAngular(() => {
+            ((this._startAnchor)).addEventListener('focus', () => {
+                this.focusLastTabbableElement();
+            }); /** @type {?} */
+            ((this._endAnchor)).addEventListener('focus', () => {
+                this.focusFirstTabbableElement();
+            });
+            if (this._element.parentNode) {
+                this._element.parentNode.insertBefore(/** @type {?} */ ((this._startAnchor)), this._element);
+                this._element.parentNode.insertBefore(/** @type {?} */ ((this._endAnchor)), this._element.nextSibling);
+            }
+        });
+    }
+    /**
+     * Waits for the zone to stabilize, then either focuses the first element that the
+     * user specified, or the first tabbable element.
+     * @return {?} Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    focusInitialElementWhenReady() {
+        return new Promise(resolve => {
+            this._executeOnStable(() => resolve(this.focusInitialElement()));
+        });
+    }
+    /**
+     * Waits for the zone to stabilize, then focuses
+     * the first tabbable element within the focus trap region.
+     * @return {?} Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    focusFirstTabbableElementWhenReady() {
+        return new Promise(resolve => {
+            this._executeOnStable(() => resolve(this.focusFirstTabbableElement()));
+        });
+    }
+    /**
+     * Waits for the zone to stabilize, then focuses
+     * the last tabbable element within the focus trap region.
+     * @return {?} Returns a promise that resolves with a boolean, depending
+     * on whether focus was moved successfuly.
+     */
+    focusLastTabbableElementWhenReady() {
+        return new Promise(resolve => {
+            this._executeOnStable(() => resolve(this.focusLastTabbableElement()));
+        });
+    }
+    /**
+     * Get the specified boundary element of the trapped region.
+     * @param {?} bound The boundary to get (start or end of trapped region).
+     * @return {?} The boundary element.
+     */
+    _getRegionBoundary(bound) {
+        // Contains the deprecated version of selector, for temporary backwards comparability.
+        let /** @type {?} */ markers = (this._element.querySelectorAll(`[cdk-focus-region-${bound}], ` +
+            `[cdk-focus-${bound}]`));
+        for (let /** @type {?} */ i = 0; i < markers.length; i++) {
+            if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {
+                console.warn(`Found use of deprecated attribute 'cdk-focus-${bound}',` +
+                    ` use 'cdk-focus-region-${bound}' instead.`, markers[i]);
+            }
+        }
+        if (bound == 'start') {
+            return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);
+        }
+        return markers.length ?
+            markers[markers.length - 1] : this._getLastTabbableElement(this._element);
+    }
+    /**
+     * Focuses the element that should be focused when the focus trap is initialized.
+     * @return {?} Returns whether focus was moved successfuly.
+     */
+    focusInitialElement() {
+        const /** @type {?} */ redirectToElement = (this._element.querySelector('[cdk-focus-initial]'));
+        if (redirectToElement) {
+            redirectToElement.focus();
+            return true;
+        }
+        return this.focusFirstTabbableElement();
+    }
+    /**
+     * Focuses the first tabbable element within the focus trap region.
+     * @return {?} Returns whether focus was moved successfuly.
+     */
+    focusFirstTabbableElement() {
+        const /** @type {?} */ redirectToElement = this._getRegionBoundary('start');
+        if (redirectToElement) {
+            redirectToElement.focus();
+        }
+        return !!redirectToElement;
+    }
+    /**
+     * Focuses the last tabbable element within the focus trap region.
+     * @return {?} Returns whether focus was moved successfuly.
+     */
+    focusLastTabbableElement() {
+        const /** @type {?} */ redirectToElement = this._getRegionBoundary('end');
+        if (redirectToElement) {
+            redirectToElement.focus();
+        }
+        return !!redirectToElement;
+    }
+    /**
+     * Get the first tabbable element from a DOM subtree (inclusive).
+     * @param {?} root
+     * @return {?}
+     */
+    _getFirstTabbableElement(root) {
+        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {
+            return root;
+        }
+        // Iterate in DOM order. Note that IE doesn't have `children` for SVG so we fall
+        // back to `childNodes` which includes text nodes, comments etc.
+        let /** @type {?} */ children = root.children || root.childNodes;
+        for (let /** @type {?} */ i = 0; i < children.length; i++) {
+            let /** @type {?} */ tabbableChild = children[i].nodeType === Node.ELEMENT_NODE ?
+                this._getFirstTabbableElement(/** @type {?} */ (children[i])) :
+                null;
+            if (tabbableChild) {
+                return tabbableChild;
+            }
+        }
+        return null;
+    }
+    /**
+     * Get the last tabbable element from a DOM subtree (inclusive).
+     * @param {?} root
+     * @return {?}
+     */
+    _getLastTabbableElement(root) {
+        if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {
+            return root;
+        }
+        // Iterate in reverse DOM order.
+        let /** @type {?} */ children = root.children || root.childNodes;
+        for (let /** @type {?} */ i = children.length - 1; i >= 0; i--) {
+            let /** @type {?} */ tabbableChild = children[i].nodeType === Node.ELEMENT_NODE ?
+                this._getLastTabbableElement(/** @type {?} */ (children[i])) :
+                null;
+            if (tabbableChild) {
+                return tabbableChild;
+            }
+        }
+        return null;
+    }
+    /**
+     * Creates an anchor element.
+     * @return {?}
+     */
+    _createAnchor() {
+        let /** @type {?} */ anchor = document.createElement('div');
+        anchor.tabIndex = this._enabled ? 0 : -1;
+        anchor.classList.add('cdk-visually-hidden');
+        anchor.classList.add('cdk-focus-trap-anchor');
+        return anchor;
+    }
+    /**
+     * Executes a function when the zone is stable.
+     * @param {?} fn
+     * @return {?}
+     */
+    _executeOnStable(fn) {
+        if (this._ngZone.isStable) {
+            fn();
+        }
+        else {
+            first.call(this._ngZone.onStable.asObservable()).subscribe(fn);
+        }
+    }
+}
+/**
+ * Factory that allows easy instantiation of focus traps.
+ */
+class FocusTrapFactory {
+    /**
+     * @param {?} _checker
+     * @param {?} _platform
+     * @param {?} _ngZone
+     */
+    constructor(_checker, _platform, _ngZone) {
+        this._checker = _checker;
+        this._platform = _platform;
+        this._ngZone = _ngZone;
+    }
+    /**
+     * @param {?} element
+     * @param {?=} deferAnchors
+     * @return {?}
+     */
+    create(element, deferAnchors = false) {
+        return new FocusTrap(element, this._platform, this._checker, this._ngZone, deferAnchors);
+    }
+}
+FocusTrapFactory.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+FocusTrapFactory.ctorParameters = () => [
+    { type: InteractivityChecker, },
+    { type: Platform, },
+    { type: NgZone, },
+];
+/**
+ * Directive for trapping focus within a region.
+ * @deprecated
+ */
+class FocusTrapDeprecatedDirective {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _focusTrapFactory
+     */
+    constructor(_elementRef, _focusTrapFactory) {
+        this._elementRef = _elementRef;
+        this._focusTrapFactory = _focusTrapFactory;
+        this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);
+    }
+    /**
+     * Whether the focus trap is active.
+     * @return {?}
+     */
+    get disabled() { return !this.focusTrap.enabled; }
+    /**
+     * @param {?} val
+     * @return {?}
+     */
+    set disabled(val) {
+        this.focusTrap.enabled = !coerceBooleanProperty(val);
+    }
+    /**
+     * @return {?}
+     */
+    ngOnDestroy() {
+        this.focusTrap.destroy();
+    }
+    /**
+     * @return {?}
+     */
+    ngAfterContentInit() {
+        this.focusTrap.attachAnchors();
+    }
+}
+FocusTrapDeprecatedDirective.decorators = [
+    { type: Directive, args: [{
+                selector: 'cdk-focus-trap',
+            },] },
+];
+/**
+ * @nocollapse
+ */
+FocusTrapDeprecatedDirective.ctorParameters = () => [
+    { type: ElementRef, },
+    { type: FocusTrapFactory, },
+];
+FocusTrapDeprecatedDirective.propDecorators = {
+    'disabled': [{ type: Input },],
+};
+/**
+ * Directive for trapping focus within a region.
+ */
+class FocusTrapDirective {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _focusTrapFactory
+     */
+    constructor(_elementRef, _focusTrapFactory) {
+        this._elementRef = _elementRef;
+        this._focusTrapFactory = _focusTrapFactory;
+        this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);
+    }
+    /**
+     * Whether the focus trap is active.
+     * @return {?}
+     */
+    get enabled() { return this.focusTrap.enabled; }
+    /**
+     * @param {?} value
+     * @return {?}
+     */
+    set enabled(value) { this.focusTrap.enabled = coerceBooleanProperty(value); }
+    /**
+     * @return {?}
+     */
+    ngOnDestroy() {
+        this.focusTrap.destroy();
+    }
+    /**
+     * @return {?}
+     */
+    ngAfterContentInit() {
+        this.focusTrap.attachAnchors();
+    }
+}
+FocusTrapDirective.decorators = [
+    { type: Directive, args: [{
+                selector: '[cdkTrapFocus]',
+                exportAs: 'cdkTrapFocus',
+            },] },
+];
+/**
+ * @nocollapse
+ */
+FocusTrapDirective.ctorParameters = () => [
+    { type: ElementRef, },
+    { type: FocusTrapFactory, },
+];
+FocusTrapDirective.propDecorators = {
+    'enabled': [{ type: Input, args: ['cdkTrapFocus',] },],
+};
+
+const LIVE_ANNOUNCER_ELEMENT_TOKEN = new InjectionToken('liveAnnouncerElement');
+class LiveAnnouncer {
+    /**
+     * @param {?} elementToken
+     * @param {?} platform
+     */
+    constructor(elementToken, platform) {
+        // Only do anything if we're on the browser platform.
+        if (platform.isBrowser) {
+            // We inject the live element as `any` because the constructor signature cannot reference
+            // browser globals (HTMLElement) on non-browser environments, since having a class decorator
+            // causes TypeScript to preserve the constructor signature types.
+            this._liveElement = elementToken || this._createLiveElement();
+        }
+    }
+    /**
+     * Announces a message to screenreaders.
+     * @param {?} message Message to be announced to the screenreader
+     * @param {?=} politeness The politeness of the announcer element
+     * @return {?}
+     */
+    announce(message, politeness = 'polite') {
+        this._liveElement.textContent = '';
+        // TODO: ensure changing the politeness works on all environments we support.
+        this._liveElement.setAttribute('aria-live', politeness);
+        // This 100ms timeout is necessary for some browser + screen-reader combinations:
+        // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.
+        // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a
+        //   second time without clearing and then using a non-zero delay.
+        // (using JAWS 17 at time of this writing).
+        setTimeout(() => this._liveElement.textContent = message, 100);
+    }
+    /**
+     * @return {?}
+     */
+    ngOnDestroy() {
+        if (this._liveElement && this._liveElement.parentNode) {
+            this._liveElement.parentNode.removeChild(this._liveElement);
+        }
+    }
+    /**
+     * @return {?}
+     */
+    _createLiveElement() {
+        let /** @type {?} */ liveEl = document.createElement('div');
+        liveEl.classList.add('cdk-visually-hidden');
+        liveEl.setAttribute('aria-atomic', 'true');
+        liveEl.setAttribute('aria-live', 'polite');
+        document.body.appendChild(liveEl);
+        return liveEl;
+    }
+}
+LiveAnnouncer.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+LiveAnnouncer.ctorParameters = () => [
+    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LIVE_ANNOUNCER_ELEMENT_TOKEN,] },] },
+    { type: Platform, },
+];
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} liveElement
+ * @param {?} platform
+ * @return {?}
+ */
+function LIVE_ANNOUNCER_PROVIDER_FACTORY(parentDispatcher, liveElement, platform) {
+    return parentDispatcher || new LiveAnnouncer(liveElement, platform);
+}
+/**
+ * \@docs-private
+ */
+const LIVE_ANNOUNCER_PROVIDER = {
+    // If there is already a LiveAnnouncer available, use that. Otherwise, provide a new one.
+    provide: LiveAnnouncer,
+    deps: [
+        [new Optional(), new SkipSelf(), LiveAnnouncer],
+        [new Optional(), new Inject(LIVE_ANNOUNCER_ELEMENT_TOKEN)],
+        Platform,
+    ],
+    useFactory: LIVE_ANNOUNCER_PROVIDER_FACTORY
+};
+
+// This is the value used by AngularJS Material. Through trial and error (on iPhone 6S) they found
+// that a value of around 650ms seems appropriate.
+const TOUCH_BUFFER_MS = 650;
+/**
+ * Monitors mouse and keyboard events to determine the cause of focus events.
+ */
+class FocusMonitor {
+    /**
+     * @param {?} _ngZone
+     * @param {?} _platform
+     */
+    constructor(_ngZone, _platform) {
+        this._ngZone = _ngZone;
+        this._platform = _platform;
+        /**
+         * The focus origin that the next focus event is a result of.
+         */
+        this._origin = null;
+        /**
+         * Whether the window has just been focused.
+         */
+        this._windowFocused = false;
+        /**
+         * Weak map of elements being monitored to their info.
+         */
+        this._elementInfo = new WeakMap();
+        this._ngZone.runOutsideAngular(() => this._registerDocumentEvents());
+    }
+    /**
+     * Monitors focus on an element and applies appropriate CSS classes.
+     * @param {?} element The element to monitor
+     * @param {?} renderer The renderer to use to apply CSS classes to the element.
+     * @param {?} checkChildren Whether to count the element as focused when its children are focused.
+     * @return {?} An observable that emits when the focus state of the element changes.
+     *     When the element is blurred, null will be emitted.
+     */
+    monitor(element, renderer, checkChildren) {
+        // Do nothing if we're not on the browser platform.
+        if (!this._platform.isBrowser) {
+            return of(null);
+        }
+        // Check if we're already monitoring this element.
+        if (this._elementInfo.has(element)) {
+            let /** @type {?} */ cachedInfo = this._elementInfo.get(element); /** @type {?} */
+            ((cachedInfo)).checkChildren = checkChildren;
+            return ((cachedInfo)).subject.asObservable();
+        }
+        // Create monitored element info.
+        let /** @type {?} */ info = {
+            unlisten: () => { },
+            checkChildren: checkChildren,
+            renderer: renderer,
+            subject: new Subject()
+        };
+        this._elementInfo.set(element, info);
+        // Start listening. We need to listen in capture phase since focus events don't bubble.
+        let /** @type {?} */ focusListener = (event) => this._onFocus(event, element);
+        let /** @type {?} */ blurListener = (event) => this._onBlur(event, element);
+        this._ngZone.runOutsideAngular(() => {
+            element.addEventListener('focus', focusListener, true);
+            element.addEventListener('blur', blurListener, true);
+        });
+        // Create an unlisten function for later.
+        info.unlisten = () => {
+            element.removeEventListener('focus', focusListener, true);
+            element.removeEventListener('blur', blurListener, true);
+        };
+        return info.subject.asObservable();
+    }
+    /**
+     * Stops monitoring an element and removes all focus classes.
+     * @param {?} element The element to stop monitoring.
+     * @return {?}
+     */
+    stopMonitoring(element) {
+        let /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (elementInfo) {
+            elementInfo.unlisten();
+            elementInfo.subject.complete();
+            this._setClasses(element);
+            this._elementInfo.delete(element);
+        }
+    }
+    /**
+     * Focuses the element via the specified focus origin.
+     * @param {?} element The element to focus.
+     * @param {?} origin The focus origin.
+     * @return {?}
+     */
+    focusVia(element, origin) {
+        this._setOriginForCurrentEventQueue(origin);
+        element.focus();
+    }
+    /**
+     * Register necessary event listeners on the document and window.
+     * @return {?}
+     */
+    _registerDocumentEvents() {
+        // Do nothing if we're not on the browser platform.
+        if (!this._platform.isBrowser) {
+            return;
+        }
+        // Note: we listen to events in the capture phase so we can detect them even if the user stops
+        // propagation.
+        // On keydown record the origin and clear any touch event that may be in progress.
+        document.addEventListener('keydown', () => {
+            this._lastTouchTarget = null;
+            this._setOriginForCurrentEventQueue('keyboard');
+        }, true);
+        // On mousedown record the origin only if there is not touch target, since a mousedown can
+        // happen as a result of a touch event.
+        document.addEventListener('mousedown', () => {
+            if (!this._lastTouchTarget) {
+                this._setOriginForCurrentEventQueue('mouse');
+            }
+        }, true);
+        // When the touchstart event fires the focus event is not yet in the event queue. This means
+        // we can't rely on the trick used above (setting timeout of 0ms). Instead we wait 650ms to
+        // see if a focus happens.
+        document.addEventListener('touchstart', (event) => {
+            if (this._touchTimeout != null) {
+                clearTimeout(this._touchTimeout);
+            }
+            this._lastTouchTarget = event.target;
+            this._touchTimeout = setTimeout(() => this._lastTouchTarget = null, TOUCH_BUFFER_MS);
+        }, true);
+        // Make a note of when the window regains focus, so we can restore the origin info for the
+        // focused element.
+        window.addEventListener('focus', () => {
+            this._windowFocused = true;
+            setTimeout(() => this._windowFocused = false, 0);
+        });
+    }
+    /**
+     * Sets the focus classes on the element based on the given focus origin.
+     * @param {?} element The element to update the classes on.
+     * @param {?=} origin The focus origin.
+     * @return {?}
+     */
+    _setClasses(element, origin) {
+        const /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (elementInfo) {
+            const /** @type {?} */ toggleClass = (className, shouldSet) => {
+                shouldSet ? elementInfo.renderer.addClass(element, className) :
+                    elementInfo.renderer.removeClass(element, className);
+            };
+            toggleClass('cdk-focused', !!origin);
+            toggleClass('cdk-touch-focused', origin === 'touch');
+            toggleClass('cdk-keyboard-focused', origin === 'keyboard');
+            toggleClass('cdk-mouse-focused', origin === 'mouse');
+            toggleClass('cdk-program-focused', origin === 'program');
+        }
+    }
+    /**
+     * Sets the origin and schedules an async function to clear it at the end of the event queue.
+     * @param {?} origin The origin to set.
+     * @return {?}
+     */
+    _setOriginForCurrentEventQueue(origin) {
+        this._origin = origin;
+        setTimeout(() => this._origin = null, 0);
+    }
+    /**
+     * Checks whether the given focus event was caused by a touchstart event.
+     * @param {?} event The focus event to check.
+     * @return {?} Whether the event was caused by a touch.
+     */
+    _wasCausedByTouch(event) {
+        // Note(mmalerba): This implementation is not quite perfect, there is a small edge case.
+        // Consider the following dom structure:
+        //
+        // <div #parent tabindex="0" cdkFocusClasses>
+        //   <div #child (click)="#parent.focus()"></div>
+        // </div>
+        //
+        // If the user touches the #child element and the #parent is programmatically focused as a
+        // result, this code will still consider it to have been caused by the touch event and will
+        // apply the cdk-touch-focused class rather than the cdk-program-focused class. This is a
+        // relatively small edge-case that can be worked around by using
+        // focusVia(parentEl, renderer,  'program') to focus the parent element.
+        //
+        // If we decide that we absolutely must handle this case correctly, we can do so by listening
+        // for the first focus event after the touchstart, and then the first blur event after that
+        // focus event. When that blur event fires we know that whatever follows is not a result of the
+        // touchstart.
+        let /** @type {?} */ focusTarget = event.target;
+        return this._lastTouchTarget instanceof Node && focusTarget instanceof Node &&
+            (focusTarget === this._lastTouchTarget || focusTarget.contains(this._lastTouchTarget));
+    }
+    /**
+     * Handles focus events on a registered element.
+     * @param {?} event The focus event.
+     * @param {?} element The monitored element.
+     * @return {?}
+     */
+    _onFocus(event, element) {
+        // NOTE(mmalerba): We currently set the classes based on the focus origin of the most recent
+        // focus event affecting the monitored element. If we want to use the origin of the first event
+        // instead we should check for the cdk-focused class here and return if the element already has
+        // it. (This only matters for elements that have includesChildren = true).
+        // If we are not counting child-element-focus as focused, make sure that the event target is the
+        // monitored element itself.
+        const /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (!elementInfo || (!elementInfo.checkChildren && element !== event.target)) {
+            return;
+        }
+        // If we couldn't detect a cause for the focus event, it's due to one of three reasons:
+        // 1) The window has just regained focus, in which case we want to restore the focused state of
+        //    the element from before the window blurred.
+        // 2) It was caused by a touch event, in which case we mark the origin as 'touch'.
+        // 3) The element was programmatically focused, in which case we should mark the origin as
+        //    'program'.
+        if (!this._origin) {
+            if (this._windowFocused && this._lastFocusOrigin) {
+                this._origin = this._lastFocusOrigin;
+            }
+            else if (this._wasCausedByTouch(event)) {
+                this._origin = 'touch';
+            }
+            else {
+                this._origin = 'program';
+            }
+        }
+        this._setClasses(element, this._origin);
+        elementInfo.subject.next(this._origin);
+        this._lastFocusOrigin = this._origin;
+        this._origin = null;
+    }
+    /**
+     * Handles blur events on a registered element.
+     * @param {?} event The blur event.
+     * @param {?} element The monitored element.
+     * @return {?}
+     */
+    _onBlur(event, element) {
+        // If we are counting child-element-focus as focused, make sure that we aren't just blurring in
+        // order to focus another child of the monitored element.
+        const /** @type {?} */ elementInfo = this._elementInfo.get(element);
+        if (!elementInfo || (elementInfo.checkChildren && event.relatedTarget instanceof Node &&
+            element.contains(event.relatedTarget))) {
+            return;
+        }
+        this._setClasses(element);
+        elementInfo.subject.next(null);
+    }
+}
+FocusMonitor.decorators = [
+    { type: Injectable },
+];
+/**
+ * @nocollapse
+ */
+FocusMonitor.ctorParameters = () => [
+    { type: NgZone, },
+    { type: Platform, },
+];
+/**
+ * Directive that determines how a particular element was focused (via keyboard, mouse, touch, or
+ * programmatically) and adds corresponding classes to the element.
+ *
+ * There are two variants of this directive:
+ * 1) cdkMonitorElementFocus: does not consider an element to be focused if one of its children is
+ *    focused.
+ * 2) cdkMonitorSubtreeFocus: considers an element focused if it or any of its children are focused.
+ */
+class CdkMonitorFocus {
+    /**
+     * @param {?} _elementRef
+     * @param {?} _focusMonitor
+     * @param {?} renderer
+     */
+    constructor(_elementRef, _focusMonitor, renderer) {
+        this._elementRef = _elementRef;
+        this._focusMonitor = _focusMonitor;
+        this.cdkFocusChange = new EventEmitter();
+        this._monitorSubscription = this._focusMonitor.monitor(this._elementRef.nativeElement, renderer, this._elementRef.nativeElement.hasAttribute('cdkMonitorSubtreeFocus'))
+            .subscribe(origin => this.cdkFocusChange.emit(origin));
+    }
+    /**
+     * @return {?}
+     */
+    ngOnDestroy() {
+        this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);
+        this._monitorSubscription.unsubscribe();
+    }
+}
+CdkMonitorFocus.decorators = [
+    { type: Directive, args: [{
+                selector: '[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]',
+            },] },
+];
+/**
+ * @nocollapse
+ */
+CdkMonitorFocus.ctorParameters = () => [
+    { type: ElementRef, },
+    { type: FocusMonitor, },
+    { type: Renderer2, },
+];
+CdkMonitorFocus.propDecorators = {
+    'cdkFocusChange': [{ type: Output },],
+};
+/**
+ * \@docs-private
+ * @param {?} parentDispatcher
+ * @param {?} ngZone
+ * @param {?} platform
+ * @return {?}
+ */
+function FOCUS_MONITOR_PROVIDER_FACTORY(parentDispatcher, ngZone, platform) {
+    return parentDispatcher || new FocusMonitor(ngZone, platform);
+}
+/**
+ * \@docs-private
+ */
+const FOCUS_MONITOR_PROVIDER = {
+    // If there is already a FocusMonitor available, use that. Otherwise, provide a new one.
+    provide: FocusMonitor,
+    deps: [[new Optional(), new SkipSelf(), FocusMonitor], NgZone, Platform],
+    useFactory: FOCUS_MONITOR_PROVIDER_FACTORY
+};
+
+class A11yModule {
+}
+A11yModule.decorators = [
+    { type: NgModule, args: [{
+                imports: [CommonModule, PlatformModule],
+                declarations: [FocusTrapDirective, FocusTrapDeprecatedDirective, CdkMonitorFocus],
+                exports: [FocusTrapDirective, FocusTrapDeprecatedDirective, CdkMonitorFocus],
+                providers: [
+                    InteractivityChecker,
+                    FocusTrapFactory,
+                    AriaDescriber,
+                    LIVE_ANNOUNCER_PROVIDER,
+                    ARIA_DESCRIBER_PROVIDER,
+                    FOCUS_MONITOR_PROVIDER,
+                ]
+            },] },
+];
+/**
+ * @nocollapse
+ */
+A11yModule.ctorParameters = () => [];
+
+/**
+ * Generated bundle index. Do not edit.
+ */
+
+export { ActiveDescendantKeyManager, MESSAGES_CONTAINER_ID, CDK_DESCRIBEDBY_ID_PREFIX, CDK_DESCRIBEDBY_HOST_ATTRIBUTE, AriaDescriber, ARIA_DESCRIBER_PROVIDER_FACTORY, ARIA_DESCRIBER_PROVIDER, isFakeMousedownFromScreenReader, FocusKeyManager, FocusTrap, FocusTrapFactory, FocusTrapDeprecatedDirective, FocusTrapDirective, InteractivityChecker, ListKeyManager, LIVE_ANNOUNCER_ELEMENT_TOKEN, LiveAnnouncer, LIVE_ANNOUNCER_PROVIDER_FACTORY, LIVE_ANNOUNCER_PROVIDER, TOUCH_BUFFER_MS, FocusMonitor, CdkMonitorFocus, FOCUS_MONITOR_PROVIDER_FACTORY, FOCUS_MONITOR_PROVIDER, A11yModule };
+//# sourceMappingURL=a11y.js.map


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

Posted by sc...@apache.org.
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":";;;;;;;;;;;;;;;AASA;;;AAGA,MAAM,kCAAkC,GAAG,IAAI,GAAG,EAAE,CAAC;;;;AAIrD,AAAO,MAAM,YAAY,CAAC;;;;IAItB,WAAW,CAAC,QAAQ,EAAE;QAClB,IAAI,CA
 AC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS;;;YAGtC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9B,cAAc,CAAC;KACtB;;;;;;;IAOD,UAAU,CAAC,KAAK,EAAE;QACd,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACtB,oBAAoB,CAAC,KAAK,CAAC,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAClC;CACJ;AACD,YAAY,CAAC,UAAU,GAAG;IACtB,EAAE,IAAI,EAAE,UAAU,EAAE;CACvB,CAAC;;;;AAIF,YAAY,CAAC,cAAc,GAAG,MAAM;IAChC,EAAE,IAAI,EAAE,QAAQ,GAAG;CACtB,CAAC;AACF,AAgBA;;;;;;AAMA,SAAS,oBAAoB,CAAC,KAAK,EAAE;IACjC,IAAI,CAAC,kCAAkC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAChD,IAAI;YACA,uBAAuB,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC/D,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACd,uBAAuB,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACvE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;aACvD;YACD,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;YAE5D,kCAAkC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACxD;QACD,OAAO
 ,CAAC,EAAE;YACN,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACpB;KACJ;CACJ;;;;;;AAMD,SAAS,cAAc,CAAC,KAAK,EAAE;IAC3B,OAAO;QACH,OAAO,EAAE,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,EAAE;QACxC,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,MAAM,GAAG;QACtB,cAAc,EAAE,MAAM,GAAG;KAC5B,CAAC;CACL,AACD;;ACzFA;;;AAGA,AAAO,MAAM,kBAAkB,CAAC;;;;;IAK5B,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;;;;QAIjB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;;;;QAI1B,IAAI,CAAC,eAAe,GAAG,IAAI,OAAO,EAAE,CAAC;KACxC;;;;;IAKD,WAAW,GAAG;QACV,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;KACnC;;;;;;IAMD,SAAS,CAAC,KAAK,EAAE;QACb,qBAAqB,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAClF;;;;;;;IAOD,OAAO,CAAC,KAAK,EAAE;QACX,qBAAqB,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAClD,qBAAqB,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;QAC/F,OAAO,aAAa,CA
 AC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;YACxC,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;aACpD,CAAC;SACL,CAAC,CAAC;KACN;;;;;;IAMD,cAAc,CAAC,KAAK,EAAE;;QAElB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC1B,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG;SACvC;QACD,qBAAqB,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;;QAE/D,qBAAqB,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB;;;;;;QAMpE,CAAC,QAAQ,KAAK;YACV,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5D,EAAE,CAAC,QAAQ,KAAK;YACb,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/D,CAAC,CAAC;aACE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC;aACrC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;aACpB,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;aACtD,MAAM,EAAE,CAAC;;QAEd,qBAAqB,MAAM,GAAG,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACxE
 ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC;KACjB;CACJ;AACD,kBAAkB,CAAC,UAAU,GAAG;IAC5B,EAAE,IAAI,EAAE,UAAU,EAAE;CACvB,CAAC;;;;AAIF,kBAAkB,CAAC,cAAc,GAAG,MAAM;IACtC,EAAE,IAAI,EAAE,YAAY,GAAG;IACvB,EAAE,IAAI,EAAE,MAAM,GAAG;CACpB,CAAC,AACF,AAsBC,AACD;;AC7HA;;AAEA,AAAO,MAAuB,WAAW,GAAG;IACxC,OAAO,EAAE,kDAAkD;QACvD,iDAAiD;IACrD,MAAM,EAAE,yEAAyE;QAC7E,yEAAyE;IAC7E,GAAG,EAAE,kDAAkD;QACnD,kDAAkD;IACtD,eAAe,EAAE,gDAAgD;IACjE,cAAc,EAAE,uEAAuE;IACvF,WAAW,EAAE,gDAAgD;IAC7D,gBAAgB,EAAE,iDAAiD;IACnE,eAAe,EAAE,yEAAyE;IAC1F,YAAY,EAAE,kDAAkD;CACnE,CAAC,AACF;;ACZO,MAAM,YAAY,CAAC;CACzB;AACD,YAAY,CAAC,UAAU,GAAG;IACtB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC;gBAC7C,OAAO,EAAE,CAAC,cAAc,CAAC;aAC5B,EAAE,EAAE;CAChB,CAAC;;;;AAIF,YAAY,CAAC,cAAc,GAAG,MAAM,EAAE,CAAC,AACvC,AASA,AACA,AACA,AAA+C,AAC/C;;ACnCA;;GAEG,AACH,AAA2F,AAC3F;;"}
\ 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


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/bundles/animations.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations.umd.js b/node_modules/@angular/animations/bundles/animations.umd.js
new file mode 100644
index 0000000..57b33f8
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations.umd.js
@@ -0,0 +1,1323 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+	typeof define === 'function' && define.amd ? define(['exports'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.animations = global.ng.animations || {})));
+}(this, (function (exports) { 'use strict';
+
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+/**
+ * @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
+ */
+/**
+ * AnimationBuilder is an injectable service that is available when the {\@link
+ * BrowserAnimationsModule BrowserAnimationsModule} or {\@link NoopAnimationsModule
+ * NoopAnimationsModule} modules are used within an application.
+ *
+ * The purpose if this service is to produce an animation sequence programmatically within an
+ * angular component or directive.
+ *
+ * Programmatic animations are first built and then a player is created when the build animation is
+ * attached to an element.
+ *
+ * ```ts
+ * // remember to include the BrowserAnimationsModule module for this to work...
+ * import {AnimationBuilder} from '\@angular/animations';
+ *
+ * class MyCmp {
+ *   constructor(private _builder: AnimationBuilder) {}
+ *
+ *   makeAnimation(element: any) {
+ *     // first build the animation
+ *     const myAnimation = this._builder.build([
+ *       style({ width: 0 }),
+ *       animate(1000, style({ width: '100px' }))
+ *     ]);
+ *
+ *     // then create a player from it
+ *     const player = myAnimation.create(element);
+ *
+ *     player.play();
+ *   }
+ * }
+ * ```
+ *
+ * When an animation is built an instance of {\@link AnimationFactory AnimationFactory} will be
+ * returned. Using that an {\@link AnimationPlayer AnimationPlayer} can be created which can then be
+ * used to start the animation.
+ *
+ * \@experimental Animation support is experimental.
+ * @abstract
+ */
+var AnimationBuilder = (function () {
+    function AnimationBuilder() {
+    }
+    /**
+     * @abstract
+     * @param {?} animation
+     * @return {?}
+     */
+    AnimationBuilder.prototype.build = function (animation) { };
+    return AnimationBuilder;
+}());
+/**
+ * An instance of `AnimationFactory` is returned from {\@link AnimationBuilder#build
+ * AnimationBuilder.build}.
+ *
+ * \@experimental Animation support is experimental.
+ * @abstract
+ */
+var AnimationFactory = (function () {
+    function AnimationFactory() {
+    }
+    /**
+     * @abstract
+     * @param {?} element
+     * @param {?=} options
+     * @return {?}
+     */
+    AnimationFactory.prototype.create = function (element, options) { };
+    return AnimationFactory;
+}());
+/**
+ * \@experimental Animation support is experimental.
+ */
+var AUTO_STYLE = '*';
+/**
+ * `trigger` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the
+ * {\@link Component#animations component animations metadata page} to gain a better
+ * understanding of how animations in Angular are used.
+ *
+ * `trigger` Creates an animation trigger which will a list of {\@link state state} and
+ * {\@link transition transition} entries that will be evaluated when the expression
+ * bound to the trigger changes.
+ *
+ * Triggers are registered within the component annotation data under the
+ * {\@link Component#animations animations section}. An animation trigger can be placed on an element
+ * within a template by referencing the name of the trigger followed by the expression value that
+ * the
+ * trigger is bound to (in the form of `[\@triggerName]="expression"`.
+ *
+ * Animation trigger bindings strigify values and then match the previous and current values against
+ * any linked transitions. If a boolean value is provided into the trigger binding then it will both
+ * be represented as `1` or `true` and `0` or `false` for a true and false boolean values
+ * respectively.
+ *
+ * ### Usage
+ *
+ * `trigger` will create an animation trigger reference based on the provided `name` value. The
+ * provided `animation` value is expected to be an array consisting of {\@link state state} and
+ * {\@link transition transition} declarations.
+ *
+ * ```typescript
+ * \@Component({
+ *   selector: 'my-component',
+ *   templateUrl: 'my-component-tpl.html',
+ *   animations: [
+ *     trigger("myAnimationTrigger", [
+ *       state(...),
+ *       state(...),
+ *       transition(...),
+ *       transition(...)
+ *     ])
+ *   ]
+ * })
+ * class MyComponent {
+ *   myStatusExp = "something";
+ * }
+ * ```
+ *
+ * The template associated with this component will make use of the `myAnimationTrigger` animation
+ * trigger by binding to an element within its template code.
+ *
+ * ```html
+ * <!-- somewhere inside of my-component-tpl.html -->
+ * <div [\@myAnimationTrigger]="myStatusExp">...</div>
+ * ```
+ *
+ * ## Disable Animations
+ * A special animation control binding called `\@.disabled` can be placed on an element which will
+ * then disable animations for any inner animation triggers situated within the element as well as
+ * any animations on the element itself.
+ *
+ * When true, the `\@.disabled` binding will prevent all animations from rendering. The example
+ * below shows how to use this feature:
+ *
+ * ```ts
+ * \@Component({
+ *   selector: 'my-component',
+ *   template: `
+ *     <div [\@.disabled]="isDisabled">
+ *       <div [\@childAnimation]="exp"></div>
+ *     </div>
+ *   `,
+ *   animations: [
+ *     trigger("childAnimation", [
+ *       // ...
+ *     ])
+ *   ]
+ * })
+ * class MyComponent {
+ *   isDisabled = true;
+ *   exp = '...';
+ * }
+ * ```
+ *
+ * The `\@childAnimation` trigger will not animate because `\@.disabled` prevents it from happening
+ * (when true).
+ *
+ * Note that `\@.disbled` will only disable all animations (this means any animations running on
+ * the same element will also be disabled).
+ *
+ * ### Disabling Animations Application-wide
+ * When an area of the template is set to have animations disabled, **all** inner components will
+ * also have their animations disabled as well. This means that all animations for an angular
+ * application can be disabled by placing a host binding set on `\@.disabled` on the topmost Angular
+ * component.
+ *
+ * ```ts
+ * import {Component, HostBinding} from '\@angular/core';
+ *
+ * \@Component({
+ *   selector: 'app-component',
+ *   templateUrl: 'app.component.html',
+ * })
+ * class AppComponent {
+ *   \@HostBinding('\@.disabled')
+ *   public animationsDisabled = true;
+ * }
+ * ```
+ *
+ * ### What about animations that us `query()` and `animateChild()`?
+ * Despite inner animations being disabled, a parent animation can {\@link query query} for inner
+ * elements located in disabled areas of the template and still animate them as it sees fit. This is
+ * also the case for when a sub animation is queried by a parent and then later animated using {\@link
+ * animateChild animateChild}.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} name
+ * @param {?} definitions
+ * @return {?}
+ */
+function trigger(name, definitions) {
+    return { type: 7 /* Trigger */, name: name, definitions: definitions, options: {} };
+}
+/**
+ * `animate` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `animate` specifies an animation step that will apply the provided `styles` data for a given
+ * amount of time based on the provided `timing` expression value. Calls to `animate` are expected
+ * to be used within {\@link sequence an animation sequence}, {\@link group group}, or {\@link
+ * transition transition}.
+ *
+ * ### Usage
+ *
+ * The `animate` function accepts two input parameters: `timing` and `styles`:
+ *
+ * - `timing` is a string based value that can be a combination of a duration with optional delay
+ * and easing values. The format for the expression breaks down to `duration delay easing`
+ * (therefore a value such as `1s 100ms ease-out` will be parse itself into `duration=1000,
+ * delay=100, easing=ease-out`. If a numeric value is provided then that will be used as the
+ * `duration` value in millisecond form.
+ * - `styles` is the style input data which can either be a call to {\@link style style} or {\@link
+ * keyframes keyframes}. If left empty then the styles from the destination state will be collected
+ * and used (this is useful when describing an animation step that will complete an animation by
+ * {\@link transition#the-final-animate-call animating to the final state}).
+ *
+ * ```typescript
+ * // various functions for specifying timing data
+ * animate(500, style(...))
+ * animate("1s", style(...))
+ * animate("100ms 0.5s", style(...))
+ * animate("5s ease", style(...))
+ * animate("5s 10ms cubic-bezier(.17,.67,.88,.1)", style(...))
+ *
+ * // either style() of keyframes() can be used
+ * animate(500, style({ background: "red" }))
+ * animate(500, keyframes([
+ *   style({ background: "blue" })),
+ *   style({ background: "red" }))
+ * ])
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} timings
+ * @param {?=} styles
+ * @return {?}
+ */
+function animate(timings, styles) {
+    if (styles === void 0) { styles = null; }
+    return { type: 4 /* Animate */, styles: styles, timings: timings };
+}
+/**
+ * `group` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `group` specifies a list of animation steps that are all run in parallel. Grouped animations are
+ * useful when a series of styles must be animated/closed off at different starting/ending times.
+ *
+ * The `group` function can either be used within a {\@link sequence sequence} or a {\@link transition
+ * transition} and it will only continue to the next instruction once all of the inner animation
+ * steps have completed.
+ *
+ * ### Usage
+ *
+ * The `steps` data that is passed into the `group` animation function can either consist of {\@link
+ * style style} or {\@link animate animate} function calls. Each call to `style()` or `animate()`
+ * within a group will be executed instantly (use {\@link keyframes keyframes} or a {\@link
+ * animate#usage animate() with a delay value} to offset styles to be applied at a later time).
+ *
+ * ```typescript
+ * group([
+ *   animate("1s", { background: "black" }))
+ *   animate("2s", { color: "white" }))
+ * ])
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function group(steps, options) {
+    if (options === void 0) { options = null; }
+    return { type: 3 /* Group */, steps: steps, options: options };
+}
+/**
+ * `sequence` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `sequence` Specifies a list of animation steps that are run one by one. (`sequence` is used by
+ * default when an array is passed as animation data into {\@link transition transition}.)
+ *
+ * The `sequence` function can either be used within a {\@link group group} or a {\@link transition
+ * transition} and it will only continue to the next instruction once each of the inner animation
+ * steps have completed.
+ *
+ * To perform animation styling in parallel with other animation steps then have a look at the
+ * {\@link group group} animation function.
+ *
+ * ### Usage
+ *
+ * The `steps` data that is passed into the `sequence` animation function can either consist of
+ * {\@link style style} or {\@link animate animate} function calls. A call to `style()` will apply the
+ * provided styling data immediately while a call to `animate()` will apply its styling data over a
+ * given time depending on its timing data.
+ *
+ * ```typescript
+ * sequence([
+ *   style({ opacity: 0 })),
+ *   animate("1s", { opacity: 1 }))
+ * ])
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function sequence(steps, options) {
+    if (options === void 0) { options = null; }
+    return { type: 2 /* Sequence */, steps: steps, options: options };
+}
+/**
+ * `style` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `style` declares a key/value object containing CSS properties/styles that can then be used for
+ * {\@link state animation states}, within an {\@link sequence animation sequence}, or as styling data
+ * for both {\@link animate animate} and {\@link keyframes keyframes}.
+ *
+ * ### Usage
+ *
+ * `style` takes in a key/value string map as data and expects one or more CSS property/value pairs
+ * to be defined.
+ *
+ * ```typescript
+ * // string values are used for css properties
+ * style({ background: "red", color: "blue" })
+ *
+ * // numerical (pixel) values are also supported
+ * style({ width: 100, height: 0 })
+ * ```
+ *
+ * #### Auto-styles (using `*`)
+ *
+ * When an asterix (`*`) character is used as a value then it will be detected from the element
+ * being animated and applied as animation data when the animation starts.
+ *
+ * This feature proves useful for a state depending on layout and/or environment factors; in such
+ * cases the styles are calculated just before the animation starts.
+ *
+ * ```typescript
+ * // the steps below will animate from 0 to the
+ * // actual height of the element
+ * style({ height: 0 }),
+ * animate("1s", style({ height: "*" }))
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} tokens
+ * @return {?}
+ */
+function style(tokens) {
+    return { type: 6 /* Style */, styles: tokens, offset: null };
+}
+/**
+ * `state` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `state` declares an animation state within the given trigger. When a state is active within a
+ * component then its associated styles will persist on the element that the trigger is attached to
+ * (even when the animation ends).
+ *
+ * To animate between states, have a look at the animation {\@link transition transition} DSL
+ * function. To register states to an animation trigger please have a look at the {\@link trigger
+ * trigger} function.
+ *
+ * #### The `void` state
+ *
+ * The `void` state value is a reserved word that angular uses to determine when the element is not
+ * apart of the application anymore (e.g. when an `ngIf` evaluates to false then the state of the
+ * associated element is void).
+ *
+ * #### The `*` (default) state
+ *
+ * The `*` state (when styled) is a fallback state that will be used if the state that is being
+ * animated is not declared within the trigger.
+ *
+ * ### Usage
+ *
+ * `state` will declare an animation state with its associated styles
+ * within the given trigger.
+ *
+ * - `stateNameExpr` can be one or more state names separated by commas.
+ * - `styles` refers to the {\@link style styling data} that will be persisted on the element once
+ * the state has been reached.
+ *
+ * ```typescript
+ * // "void" is a reserved name for a state and is used to represent
+ * // the state in which an element is detached from from the application.
+ * state("void", style({ height: 0 }))
+ *
+ * // user-defined states
+ * state("closed", style({ height: 0 }))
+ * state("open, visible", style({ height: "*" }))
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} name
+ * @param {?} styles
+ * @param {?=} options
+ * @return {?}
+ */
+function state(name, styles, options) {
+    return { type: 0 /* State */, name: name, styles: styles, options: options };
+}
+/**
+ * `keyframes` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `keyframes` specifies a collection of {\@link style style} entries each optionally characterized
+ * by an `offset` value.
+ *
+ * ### Usage
+ *
+ * The `keyframes` animation function is designed to be used alongside the {\@link animate animate}
+ * animation function. Instead of applying animations from where they are currently to their
+ * destination, keyframes can describe how each style entry is applied and at what point within the
+ * animation arc (much like CSS Keyframe Animations do).
+ *
+ * For each `style()` entry an `offset` value can be set. Doing so allows to specifiy at what
+ * percentage of the animate time the styles will be applied.
+ *
+ * ```typescript
+ * // the provided offset values describe when each backgroundColor value is applied.
+ * animate("5s", keyframes([
+ *   style({ backgroundColor: "red", offset: 0 }),
+ *   style({ backgroundColor: "blue", offset: 0.2 }),
+ *   style({ backgroundColor: "orange", offset: 0.3 }),
+ *   style({ backgroundColor: "black", offset: 1 })
+ * ]))
+ * ```
+ *
+ * Alternatively, if there are no `offset` values used within the style entries then the offsets
+ * will be calculated automatically.
+ *
+ * ```typescript
+ * animate("5s", keyframes([
+ *   style({ backgroundColor: "red" }) // offset = 0
+ *   style({ backgroundColor: "blue" }) // offset = 0.33
+ *   style({ backgroundColor: "orange" }) // offset = 0.66
+ *   style({ backgroundColor: "black" }) // offset = 1
+ * ]))
+ * ```
+ *
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @return {?}
+ */
+function keyframes(steps) {
+    return { type: 5 /* Keyframes */, steps: steps };
+}
+/**
+ * `transition` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. If this information is new, please navigate to the {\@link
+ * Component#animations component animations metadata page} to gain a better understanding of
+ * how animations in Angular are used.
+ *
+ * `transition` declares the {\@link sequence sequence of animation steps} that will be run when the
+ * provided `stateChangeExpr` value is satisfied. The `stateChangeExpr` consists of a `state1 =>
+ * state2` which consists of two known states (use an asterix (`*`) to refer to a dynamic starting
+ * and/or ending state).
+ *
+ * A function can also be provided as the `stateChangeExpr` argument for a transition and this
+ * function will be executed each time a state change occurs. If the value returned within the
+ * function is true then the associated animation will be run.
+ *
+ * Animation transitions are placed within an {\@link trigger animation trigger}. For an transition
+ * to animate to a state value and persist its styles then one or more {\@link state animation
+ * states} is expected to be defined.
+ *
+ * ### Usage
+ *
+ * An animation transition is kicked off the `stateChangeExpr` predicate evaluates to true based on
+ * what the previous state is and what the current state has become. In other words, if a transition
+ * is defined that matches the old/current state criteria then the associated animation will be
+ * triggered.
+ *
+ * ```typescript
+ * // all transition/state changes are defined within an animation trigger
+ * trigger("myAnimationTrigger", [
+ *   // if a state is defined then its styles will be persisted when the
+ *   // animation has fully completed itself
+ *   state("on", style({ background: "green" })),
+ *   state("off", style({ background: "grey" })),
+ *
+ *   // a transition animation that will be kicked off when the state value
+ *   // bound to "myAnimationTrigger" changes from "on" to "off"
+ *   transition("on => off", animate(500)),
+ *
+ *   // it is also possible to do run the same animation for both directions
+ *   transition("on <=> off", animate(500)),
+ *
+ *   // or to define multiple states pairs separated by commas
+ *   transition("on => off, off => void", animate(500)),
+ *
+ *   // this is a catch-all state change for when an element is inserted into
+ *   // the page and the destination state is unknown
+ *   transition("void => *", [
+ *     style({ opacity: 0 }),
+ *     animate(500)
+ *   ]),
+ *
+ *   // this will capture a state change between any states
+ *   transition("* => *", animate("1s 0s")),
+ *
+ *   // you can also go full out and include a function
+ *   transition((fromState, toState) => {
+ *     // when `true` then it will allow the animation below to be invoked
+ *     return fromState == "off" && toState == "on";
+ *   }, animate("1s 0s"))
+ * ])
+ * ```
+ *
+ * The template associated with this component will make use of the `myAnimationTrigger` animation
+ * trigger by binding to an element within its template code.
+ *
+ * ```html
+ * <!-- somewhere inside of my-component-tpl.html -->
+ * <div [\@myAnimationTrigger]="myStatusExp">...</div>
+ * ```
+ *
+ * #### The final `animate` call
+ *
+ * If the final step within the transition steps is a call to `animate()` that **only** uses a
+ * timing value with **no style data** then it will be automatically used as the final animation arc
+ * for the element to animate itself to the final state. This involves an automatic mix of
+ * adding/removing CSS styles so that the element will be in the exact state it should be for the
+ * applied state to be presented correctly.
+ *
+ * ```
+ * // start off by hiding the element, but make sure that it animates properly to whatever state
+ * // is currently active for "myAnimationTrigger"
+ * transition("void => *", [
+ *   style({ opacity: 0 }),
+ *   animate(500)
+ * ])
+ * ```
+ *
+ * ### Transition Aliases (`:enter` and `:leave`)
+ *
+ * Given that enter (insertion) and leave (removal) animations are so common, the `transition`
+ * function accepts both `:enter` and `:leave` values which are aliases for the `void => *` and `*
+ * => void` state changes.
+ *
+ * ```
+ * transition(":enter", [
+ *   style({ opacity: 0 }),
+ *   animate(500, style({ opacity: 1 }))
+ * ])
+ * transition(":leave", [
+ *   animate(500, style({ opacity: 0 }))
+ * ])
+ * ```
+ *
+ * ### Boolean values
+ * if a trigger binding value is a boolean value then it can be matched using a transition
+ * expression that compares `true` and `false` or `1` and `0`.
+ *
+ * ```
+ * // in the template
+ * <div [\@openClose]="open ? true : false">...</div>
+ *
+ * // in the component metadata
+ * trigger('openClose', [
+ *   state('true', style({ height: '*' })),
+ *   state('false', style({ height: '0px' })),
+ *   transition('false <=> true', animate(500))
+ * ])
+ * ```
+ * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} stateChangeExpr
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function transition(stateChangeExpr, steps, options) {
+    if (options === void 0) { options = null; }
+    return { type: 1 /* Transition */, expr: stateChangeExpr, animation: steps, options: options };
+}
+/**
+ * `animation` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language.
+ *
+ * `var myAnimation = animation(...)` is designed to produce a reusable animation that can be later
+ * invoked in another animation or sequence. Reusable animations are designed to make use of
+ * animation parameters and the produced animation can be used via the `useAnimation` method.
+ *
+ * ```
+ * var fadeAnimation = animation([
+ *   style({ opacity: '{{ start }}' }),
+ *   animate('{{ time }}',
+ *     style({ opacity: '{{ end }}'}))
+ * ], { params: { time: '1000ms', start: 0, end: 1 }});
+ * ```
+ *
+ * If parameters are attached to an animation then they act as **default parameter values**. When an
+ * animation is invoked via `useAnimation` then parameter values are allowed to be passed in
+ * directly. If any of the passed in parameter values are missing then the default values will be
+ * used.
+ *
+ * ```
+ * useAnimation(fadeAnimation, {
+ *   params: {
+ *     time: '2s',
+ *     start: 1,
+ *     end: 0
+ *   }
+ * })
+ * ```
+ *
+ * If one or more parameter values are missing before animated then an error will be thrown.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} steps
+ * @param {?=} options
+ * @return {?}
+ */
+function animation(steps, options) {
+    if (options === void 0) { options = null; }
+    return { type: 8 /* Reference */, animation: steps, options: options };
+}
+/**
+ * `animateChild` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It works by allowing a queried element to execute its own
+ * animation within the animation sequence.
+ *
+ * Each time an animation is triggered in angular, the parent animation
+ * will always get priority and any child animations will be blocked. In order
+ * for a child animation to run, the parent animation must query each of the elements
+ * containing child animations and then allow the animations to run using `animateChild`.
+ *
+ * The example HTML code below shows both parent and child elements that have animation
+ * triggers that will execute at the same time.
+ *
+ * ```html
+ * <!-- parent-child.component.html -->
+ * <button (click)="exp =! exp">Toggle</button>
+ * <hr>
+ *
+ * <div [\@parentAnimation]="exp">
+ *   <header>Hello</header>
+ *   <div [\@childAnimation]="exp">
+ *       one
+ *   </div>
+ *   <div [\@childAnimation]="exp">
+ *       two
+ *   </div>
+ *   <div [\@childAnimation]="exp">
+ *       three
+ *   </div>
+ * </div>
+ * ```
+ *
+ * Now when the `exp` value changes to true, only the `parentAnimation` animation will animate
+ * because it has priority. However, using `query` and `animateChild` each of the inner animations
+ * can also fire:
+ *
+ * ```ts
+ * // parent-child.component.ts
+ * import {trigger, transition, animate, style, query, animateChild} from '\@angular/animations';
+ * \@Component({
+ *   selector: 'parent-child-component',
+ *   animations: [
+ *     trigger('parentAnimation', [
+ *       transition('false => true', [
+ *         query('header', [
+ *           style({ opacity: 0 }),
+ *           animate(500, style({ opacity: 1 }))
+ *         ]),
+ *         query('\@childAnimation', [
+ *           animateChild()
+ *         ])
+ *       ])
+ *     ]),
+ *     trigger('childAnimation', [
+ *       transition('false => true', [
+ *         style({ opacity: 0 }),
+ *         animate(500, style({ opacity: 1 }))
+ *       ])
+ *     ])
+ *   ]
+ * })
+ * class ParentChildCmp {
+ *   exp: boolean = false;
+ * }
+ * ```
+ *
+ * In the animation code above, when the `parentAnimation` transition kicks off it first queries to
+ * find the header element and fades it in. It then finds each of the sub elements that contain the
+ * `\@childAnimation` trigger and then allows for their animations to fire.
+ *
+ * This example can be further extended by using stagger:
+ *
+ * ```ts
+ * query('\@childAnimation', stagger(100, [
+ *   animateChild()
+ * ]))
+ * ```
+ *
+ * Now each of the sub animations start off with respect to the `100ms` staggering step.
+ *
+ * ## The first frame of child animations
+ * When sub animations are executed using `animateChild` the animation engine will always apply the
+ * first frame of every sub animation immediately at the start of the animation sequence. This way
+ * the parent animation does not need to set any initial styling data on the sub elements before the
+ * sub animations kick off.
+ *
+ * In the example above the first frame of the `childAnimation`'s `false => true` transition
+ * consists of a style of `opacity: 0`. This is applied immediately when the `parentAnimation`
+ * animation transition sequence starts. Only then when the `\@childAnimation` is queried and called
+ * with `animateChild` will it then animate to its destination of `opacity: 1`.
+ *
+ * Note that this feature designed to be used alongside {\@link query query()} and it will only work
+ * with animations that are assigned using the Angular animation DSL (this means that CSS keyframes
+ * and transitions are not handled by this API).
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?=} options
+ * @return {?}
+ */
+function animateChild(options) {
+    if (options === void 0) { options = null; }
+    return { type: 9 /* AnimateChild */, options: options };
+}
+/**
+ * `useAnimation` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It is used to kick off a reusable animation that is created using {\@link
+ * animation animation()}.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} animation
+ * @param {?=} options
+ * @return {?}
+ */
+function useAnimation(animation, options) {
+    if (options === void 0) { options = null; }
+    return { type: 10 /* AnimateRef */, animation: animation, options: options };
+}
+/**
+ * `query` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language.
+ *
+ * query() is used to find one or more inner elements within the current element that is
+ * being animated within the sequence. The provided animation steps are applied
+ * to the queried element (by default, an array is provided, then this will be
+ * treated as an animation sequence).
+ *
+ * ### Usage
+ *
+ * query() is designed to collect mutiple elements and works internally by using
+ * `element.querySelectorAll`. An additional options object can be provided which
+ * can be used to limit the total amount of items to be collected.
+ *
+ * ```js
+ * query('div', [
+ *   animate(...),
+ *   animate(...)
+ * ], { limit: 1 })
+ * ```
+ *
+ * query(), by default, will throw an error when zero items are found. If a query
+ * has the `optional` flag set to true then this error will be ignored.
+ *
+ * ```js
+ * query('.some-element-that-may-not-be-there', [
+ *   animate(...),
+ *   animate(...)
+ * ], { optional: true })
+ * ```
+ *
+ * ### Special Selector Values
+ *
+ * The selector value within a query can collect elements that contain angular-specific
+ * characteristics
+ * using special pseudo-selectors tokens.
+ *
+ * These include:
+ *
+ *  - Querying for newly inserted/removed elements using `query(":enter")`/`query(":leave")`
+ *  - Querying all currently animating elements using `query(":animating")`
+ *  - Querying elements that contain an animation trigger using `query("\@triggerName")`
+ *  - Querying all elements that contain an animation triggers using `query("\@*")`
+ *  - Including the current element into the animation sequence using `query(":self")`
+ *
+ *
+ *  Each of these pseudo-selector tokens can be merged together into a combined query selector
+ * string:
+ *
+ *  ```
+ *  query(':self, .record:enter, .record:leave, \@subTrigger', [...])
+ *  ```
+ *
+ * ### Demo
+ *
+ * ```
+ * \@Component({
+ *   selector: 'inner',
+ *   template: `
+ *     <div [\@queryAnimation]="exp">
+ *       <h1>Title</h1>
+ *       <div class="content">
+ *         Blah blah blah
+ *       </div>
+ *     </div>
+ *   `,
+ *   animations: [
+ *    trigger('queryAnimation', [
+ *      transition('* => goAnimate', [
+ *        // hide the inner elements
+ *        query('h1', style({ opacity: 0 })),
+ *        query('.content', style({ opacity: 0 })),
+ *
+ *        // animate the inner elements in, one by one
+ *        query('h1', animate(1000, style({ opacity: 1 })),
+ *        query('.content', animate(1000, style({ opacity: 1 })),
+ *      ])
+ *    ])
+ *  ]
+ * })
+ * class Cmp {
+ *   exp = '';
+ *
+ *   goAnimate() {
+ *     this.exp = 'goAnimate';
+ *   }
+ * }
+ * ```
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} selector
+ * @param {?} animation
+ * @param {?=} options
+ * @return {?}
+ */
+function query(selector, animation, options) {
+    if (options === void 0) { options = null; }
+    return { type: 11 /* Query */, selector: selector, animation: animation, options: options };
+}
+/**
+ * `stagger` is an animation-specific function that is designed to be used inside of Angular's
+ * animation DSL language. It is designed to be used inside of an animation {\@link query query()}
+ * and works by issuing a timing gap between after each queried item is animated.
+ *
+ * ### Usage
+ *
+ * In the example below there is a container element that wraps a list of items stamped out
+ * by an ngFor. The container element contains an animation trigger that will later be set
+ * to query for each of the inner items.
+ *
+ * ```html
+ * <!-- list.component.html -->
+ * <button (click)="toggle()">Show / Hide Items</button>
+ * <hr />
+ * <div [\@listAnimation]="items.length">
+ *   <div *ngFor="let item of items">
+ *     {{ item }}
+ *   </div>
+ * </div>
+ * ```
+ *
+ * The component code for this looks as such:
+ *
+ * ```ts
+ * import {trigger, transition, style, animate, query, stagger} from '\@angular/animations';
+ * \@Component({
+ *   templateUrl: 'list.component.html',
+ *   animations: [
+ *     trigger('listAnimation', [
+ *        //...
+ *     ])
+ *   ]
+ * })
+ * class ListComponent {
+ *   items = [];
+ *
+ *   showItems() {
+ *     this.items = [0,1,2,3,4];
+ *   }
+ *
+ *   hideItems() {
+ *     this.items = [];
+ *   }
+ *
+ *   toggle() {
+ *     this.items.length ? this.hideItems() : this.showItems();
+ *   }
+ * }
+ * ```
+ *
+ * And now for the animation trigger code:
+ *
+ * ```ts
+ * trigger('listAnimation', [
+ *   transition('* => *', [ // each time the binding value changes
+ *     query(':leave', [
+ *       stagger(100, [
+ *         animate('0.5s', style({ opacity: 0 }))
+ *       ])
+ *     ]),
+ *     query(':enter', [
+ *       style({ opacity: 0 }),
+ *       stagger(100, [
+ *         animate('0.5s', style({ opacity: 1 }))
+ *       ])
+ *     ])
+ *   ])
+ * ])
+ * ```
+ *
+ * Now each time the items are added/removed then either the opacity
+ * fade-in animation will run or each removed item will be faded out.
+ * When either of these animations occur then a stagger effect will be
+ * applied after each item's animation is started.
+ *
+ * \@experimental Animation support is experimental.
+ * @param {?} timings
+ * @param {?} animation
+ * @return {?}
+ */
+function stagger(timings, animation) {
+    return { type: 12 /* Stagger */, timings: timings, animation: animation };
+}
+/**
+ * @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
+ * @param {?} cb
+ * @return {?}
+ */
+function scheduleMicroTask(cb) {
+    Promise.resolve(null).then(cb);
+}
+/**
+ * @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
+ */
+/**
+ * \@experimental Animation support is experimental.
+ */
+var NoopAnimationPlayer = (function () {
+    function NoopAnimationPlayer() {
+        this._onDoneFns = [];
+        this._onStartFns = [];
+        this._onDestroyFns = [];
+        this._started = false;
+        this._destroyed = false;
+        this._finished = false;
+        this.parentPlayer = null;
+        this.totalTime = 0;
+    }
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype._onFinish = function () {
+        if (!this._finished) {
+            this._finished = true;
+            this._onDoneFns.forEach(function (fn) { return fn(); });
+            this._onDoneFns = [];
+        }
+    };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.hasStarted = function () { return this._started; };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.init = function () { };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.play = function () {
+        if (!this.hasStarted()) {
+            this.triggerMicrotask();
+            this._onStart();
+        }
+        this._started = true;
+    };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.triggerMicrotask = function () {
+        var _this = this;
+        scheduleMicroTask(function () { return _this._onFinish(); });
+    };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype._onStart = function () {
+        this._onStartFns.forEach(function (fn) { return fn(); });
+        this._onStartFns = [];
+    };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.pause = function () { };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.restart = function () { };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.finish = function () { this._onFinish(); };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.destroy = function () {
+        if (!this._destroyed) {
+            this._destroyed = true;
+            if (!this.hasStarted()) {
+                this._onStart();
+            }
+            this.finish();
+            this._onDestroyFns.forEach(function (fn) { return fn(); });
+            this._onDestroyFns = [];
+        }
+    };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.reset = function () { };
+    /**
+     * @param {?} p
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.setPosition = function (p) { };
+    /**
+     * @return {?}
+     */
+    NoopAnimationPlayer.prototype.getPosition = function () { return 0; };
+    return NoopAnimationPlayer;
+}());
+/**
+ * @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
+ */
+var AnimationGroupPlayer = (function () {
+    /**
+     * @param {?} _players
+     */
+    function AnimationGroupPlayer(_players) {
+        var _this = this;
+        this._players = _players;
+        this._onDoneFns = [];
+        this._onStartFns = [];
+        this._finished = false;
+        this._started = false;
+        this._destroyed = false;
+        this._onDestroyFns = [];
+        this.parentPlayer = null;
+        this.totalTime = 0;
+        var doneCount = 0;
+        var destroyCount = 0;
+        var startCount = 0;
+        var total = this._players.length;
+        if (total == 0) {
+            scheduleMicroTask(function () { return _this._onFinish(); });
+        }
+        else {
+            this._players.forEach(function (player) {
+                player.parentPlayer = _this;
+                player.onDone(function () {
+                    if (++doneCount >= total) {
+                        _this._onFinish();
+                    }
+                });
+                player.onDestroy(function () {
+                    if (++destroyCount >= total) {
+                        _this._onDestroy();
+                    }
+                });
+                player.onStart(function () {
+                    if (++startCount >= total) {
+                        _this._onStart();
+                    }
+                });
+            });
+        }
+        this.totalTime = this._players.reduce(function (time, player) { return Math.max(time, player.totalTime); }, 0);
+    }
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype._onFinish = function () {
+        if (!this._finished) {
+            this._finished = true;
+            this._onDoneFns.forEach(function (fn) { return fn(); });
+            this._onDoneFns = [];
+        }
+    };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.init = function () { this._players.forEach(function (player) { return player.init(); }); };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype._onStart = function () {
+        if (!this.hasStarted()) {
+            this._onStartFns.forEach(function (fn) { return fn(); });
+            this._onStartFns = [];
+            this._started = true;
+        }
+    };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); };
+    /**
+     * @param {?} fn
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.hasStarted = function () { return this._started; };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.play = function () {
+        if (!this.parentPlayer) {
+            this.init();
+        }
+        this._onStart();
+        this._players.forEach(function (player) { return player.play(); });
+    };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.pause = function () { this._players.forEach(function (player) { return player.pause(); }); };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.restart = function () { this._players.forEach(function (player) { return player.restart(); }); };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.finish = function () {
+        this._onFinish();
+        this._players.forEach(function (player) { return player.finish(); });
+    };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.destroy = function () { this._onDestroy(); };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype._onDestroy = function () {
+        if (!this._destroyed) {
+            this._destroyed = true;
+            this._onFinish();
+            this._players.forEach(function (player) { return player.destroy(); });
+            this._onDestroyFns.forEach(function (fn) { return fn(); });
+            this._onDestroyFns = [];
+        }
+    };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.reset = function () {
+        this._players.forEach(function (player) { return player.reset(); });
+        this._destroyed = false;
+        this._finished = false;
+        this._started = false;
+    };
+    /**
+     * @param {?} p
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.setPosition = function (p) {
+        var /** @type {?} */ timeAtPosition = p * this.totalTime;
+        this._players.forEach(function (player) {
+            var /** @type {?} */ position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;
+            player.setPosition(position);
+        });
+    };
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.getPosition = function () {
+        var /** @type {?} */ min = 0;
+        this._players.forEach(function (player) {
+            var /** @type {?} */ p = player.getPosition();
+            min = Math.min(p, min);
+        });
+        return min;
+    };
+    Object.defineProperty(AnimationGroupPlayer.prototype, "players", {
+        /**
+         * @return {?}
+         */
+        get: function () { return this._players; },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    AnimationGroupPlayer.prototype.beforeDestroy = function () {
+        this.players.forEach(function (player) {
+            if (player.beforeDestroy) {
+                player.beforeDestroy();
+            }
+        });
+    };
+    return AnimationGroupPlayer;
+}());
+/**
+ * @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
+ */
+var ɵPRE_STYLE = '!';
+
+exports.AnimationBuilder = AnimationBuilder;
+exports.AnimationFactory = AnimationFactory;
+exports.AUTO_STYLE = AUTO_STYLE;
+exports.animate = animate;
+exports.animateChild = animateChild;
+exports.animation = animation;
+exports.group = group;
+exports.keyframes = keyframes;
+exports.query = query;
+exports.sequence = sequence;
+exports.stagger = stagger;
+exports.state = state;
+exports.style = style;
+exports.transition = transition;
+exports.trigger = trigger;
+exports.useAnimation = useAnimation;
+exports.NoopAnimationPlayer = NoopAnimationPlayer;
+exports.ɵAnimationGroupPlayer = AnimationGroupPlayer;
+exports.ɵPRE_STYLE = ɵPRE_STYLE;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=animations.umd.js.map


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/bundles/animations-browser-testing.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations-browser-testing.umd.js.map b/node_modules/@angular/animations/bundles/animations-browser-testing.umd.js.map
new file mode 100644
index 0000000..eedfca5
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations-browser-testing.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"animations-browser-testing.umd.js","sources":["../../../../packages/animations/browser/testing/src/mock_animation_driver.ts","../../../../packages/animations/browser/testing/src/testing.ts","../../../../packages/animations/browser/src/util.ts","../../../../packages/animations/browser/src/render/shared.ts","../../../../node_modules/tslib/tslib.es6.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 {AUTO_STYLE, AnimationPlayer, NoopAnimationPlayer, ɵStyleData} from '@angular/animations';\n\nimport {AnimationDriver} from '../../src/render/animation_driver';\nimport {containsElement, invokeQuery, matchesElement} from '../../src/render/shared';\nimport {allowPreviousPlayerStylesMerge} from '../../src/util';\n\n/**\n * @experimental Animation support is experimental.\n */\nexport 
 class MockAnimationDriver implements AnimationDriver {\n  static log: AnimationPlayer[] = [];\n\n  matchesElement(element: any, selector: string): boolean {\n    return matchesElement(element, selector);\n  }\n\n  containsElement(elm1: any, elm2: any): boolean { return containsElement(elm1, elm2); }\n\n  query(element: any, selector: string, multi: boolean): any[] {\n    return invokeQuery(element, selector, multi);\n  }\n\n  computeStyle(element: any, prop: string, defaultValue?: string): string {\n    return defaultValue || '';\n  }\n\n  animate(\n      element: any, keyframes: {[key: string]: string | number}[], duration: number, delay: number,\n      easing: string, previousPlayers: any[] = []): MockAnimationPlayer {\n    const player =\n        new MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers);\n    MockAnimationDriver.log.push(<AnimationPlayer>player);\n    return player;\n  }\n}\n\n/**\n * @experimental Animation support is experimental.\n 
 */\nexport class MockAnimationPlayer extends NoopAnimationPlayer {\n  private __finished = false;\n  private __started = false;\n  public previousStyles: {[key: string]: string | number} = {};\n  private _onInitFns: (() => any)[] = [];\n  public currentSnapshot: ɵStyleData = {};\n\n  constructor(\n      public element: any, public keyframes: {[key: string]: string | number}[],\n      public duration: number, public delay: number, public easing: string,\n      public previousPlayers: any[]) {\n    super();\n\n    if (allowPreviousPlayerStylesMerge(duration, delay)) {\n      previousPlayers.forEach(player => {\n        if (player instanceof MockAnimationPlayer) {\n          const styles = player.currentSnapshot;\n          Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]);\n        }\n      });\n    }\n\n    this.totalTime = delay + duration;\n  }\n\n  /* @internal */\n  onInit(fn: () => any) { this._onInitFns.push(fn); }\n\n  /* @internal */\n  init() {\n
     super.init();\n    this._onInitFns.forEach(fn => fn());\n    this._onInitFns = [];\n  }\n\n  finish(): void {\n    super.finish();\n    this.__finished = true;\n  }\n\n  destroy(): void {\n    super.destroy();\n    this.__finished = true;\n  }\n\n  /* @internal */\n  triggerMicrotask() {}\n\n  play(): void {\n    super.play();\n    this.__started = true;\n  }\n\n  hasStarted() { return this.__started; }\n\n  beforeDestroy() {\n    const captures: ɵStyleData = {};\n\n    Object.keys(this.previousStyles).forEach(prop => {\n      captures[prop] = this.previousStyles[prop];\n    });\n\n    if (this.hasStarted()) {\n      // when assembling the captured styles, it's important that\n      // we build the keyframe styles in the following order:\n      // {other styles within keyframes, ... previousStyles }\n      this.keyframes.forEach(kf => {\n        Object.keys(kf).forEach(prop => {\n          if (prop != 'offset') {\n            captures[prop] = this.__finished ? kf[prop] : AUTO_S
 TYLE;\n          }\n        });\n      });\n    }\n\n    this.currentSnapshot = captures;\n  }\n}\n","/**\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 {MockAnimationDriver, MockAnimationPlayer} from './mock_animation_driver';\n","/**\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 {AnimateTimings, AnimationMetadata, AnimationMetadataType, AnimationOptions, sequence, ɵStyleData} from '@angular/animations';\nimport {Ast as AnimationAst, AstVisitor as AnimationAstVisitor} from './dsl/animation_ast';\nimport {AnimationDslVisitor} from './dsl/animation_dsl_visitor';\n\nexport const ONE_SECOND = 1000;\n\nexport const SUBSTITUTION_EXPR_START = '{{';\nexport cons
 t SUBSTITUTION_EXPR_END = '}}';\nexport const ENTER_CLASSNAME = 'ng-enter';\nexport const LEAVE_CLASSNAME = 'ng-leave';\nexport const ENTER_SELECTOR = '.ng-enter';\nexport const LEAVE_SELECTOR = '.ng-leave';\nexport const NG_TRIGGER_CLASSNAME = 'ng-trigger';\nexport const NG_TRIGGER_SELECTOR = '.ng-trigger';\nexport const NG_ANIMATING_CLASSNAME = 'ng-animating';\nexport const NG_ANIMATING_SELECTOR = '.ng-animating';\n\nexport function resolveTimingValue(value: string | number) {\n  if (typeof value == 'number') return value;\n\n  const matches = (value as string).match(/^(-?[\\.\\d]+)(m?s)/);\n  if (!matches || matches.length < 2) return 0;\n\n  return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\n\nfunction _convertTimeValueToMS(value: number, unit: string): number {\n  switch (unit) {\n    case 's':\n      return value * ONE_SECOND;\n    default:  // ms or something else\n      return value;\n  }\n}\n\nexport function resolveTiming(\n    timings: string | number |
  AnimateTimings, errors: any[], allowNegativeValues?: boolean) {\n  return timings.hasOwnProperty('duration') ?\n      <AnimateTimings>timings :\n      parseTimeExpression(<string|number>timings, errors, allowNegativeValues);\n}\n\nfunction parseTimeExpression(\n    exp: string | number, errors: string[], allowNegativeValues?: boolean): AnimateTimings {\n  const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n  let duration: number;\n  let delay: number = 0;\n  let easing: string = '';\n  if (typeof exp === 'string') {\n    const matches = exp.match(regex);\n    if (matches === null) {\n      errors.push(`The provided timing value \"${exp}\" is invalid.`);\n      return {duration: 0, delay: 0, easing: ''};\n    }\n\n    duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n\n    const delayMatch = matches[3];\n    if (delayMatch != null) {\n      delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]
 );\n    }\n\n    const easingVal = matches[5];\n    if (easingVal) {\n      easing = easingVal;\n    }\n  } else {\n    duration = <number>exp;\n  }\n\n  if (!allowNegativeValues) {\n    let containsErrors = false;\n    let startIndex = errors.length;\n    if (duration < 0) {\n      errors.push(`Duration values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (delay < 0) {\n      errors.push(`Delay values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (containsErrors) {\n      errors.splice(startIndex, 0, `The provided timing value \"${exp}\" is invalid.`);\n    }\n  }\n\n  return {duration, delay, easing};\n}\n\nexport function copyObj(\n    obj: {[key: string]: any}, destination: {[key: string]: any} = {}): {[key: string]: any} {\n  Object.keys(obj).forEach(prop => { destination[prop] = obj[prop]; });\n  return destination;\n}\n\nexport function normalizeStyles(styles: ɵStyleData | �
 �StyleData[]): ɵStyleData {\n  const normalizedStyles: ɵStyleData = {};\n  if (Array.isArray(styles)) {\n    styles.forEach(data => copyStyles(data, false, normalizedStyles));\n  } else {\n    copyStyles(styles, false, normalizedStyles);\n  }\n  return normalizedStyles;\n}\n\nexport function copyStyles(\n    styles: ɵStyleData, readPrototype: boolean, destination: ɵStyleData = {}): ɵStyleData {\n  if (readPrototype) {\n    // we make use of a for-in loop so that the\n    // prototypically inherited properties are\n    // revealed from the backFill map\n    for (let prop in styles) {\n      destination[prop] = styles[prop];\n    }\n  } else {\n    copyObj(styles, destination);\n  }\n  return destination;\n}\n\nexport function setStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = styles[prop];\n    });\n  }\n}\n\nexport function eras
 eStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = '';\n    });\n  }\n}\n\nexport function normalizeAnimationEntry(steps: AnimationMetadata | AnimationMetadata[]):\n    AnimationMetadata {\n  if (Array.isArray(steps)) {\n    if (steps.length == 1) return steps[0];\n    return sequence(steps);\n  }\n  return steps as AnimationMetadata;\n}\n\nexport function validateStyleParams(\n    value: string | number, options: AnimationOptions, errors: any[]) {\n  const params = options.params || {};\n  const matches = extractStyleParams(value);\n  if (matches.length) {\n    matches.forEach(varName => {\n      if (!params.hasOwnProperty(varName)) {\n        errors.push(\n            `Unable to resolve the local animation param ${varName} in the given list of values`);\n      }\n    });\n  }\n}\n\nconst PARAM_REGEX =\n    new RegExp(`${SUBSTITUTION_
 EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nexport function extractStyleParams(value: string | number): string[] {\n  let params: string[] = [];\n  if (typeof value === 'string') {\n    const val = value.toString();\n\n    let match: any;\n    while (match = PARAM_REGEX.exec(val)) {\n      params.push(match[1] as string);\n    }\n    PARAM_REGEX.lastIndex = 0;\n  }\n  return params;\n}\n\nexport function interpolateParams(\n    value: string | number, params: {[name: string]: any}, errors: any[]): string|number {\n  const original = value.toString();\n  const str = original.replace(PARAM_REGEX, (_, varName) => {\n    let localVal = params[varName];\n    // this means that the value was never overidden by the data passed in by the user\n    if (!params.hasOwnProperty(varName)) {\n      errors.push(`Please provide a value for the animation param ${varName}`);\n      localVal = '';\n    }\n    return localVal.toString();\n  });\n\n  // we do this to assert that numeri
 c values stay as they are\n  return str == original ? value : str;\n}\n\nexport function iteratorToArray(iterator: any): any[] {\n  const arr: any[] = [];\n  let item = iterator.next();\n  while (!item.done) {\n    arr.push(item.value);\n    item = iterator.next();\n  }\n  return arr;\n}\n\nexport function mergeAnimationOptions(\n    source: AnimationOptions, destination: AnimationOptions): AnimationOptions {\n  if (source.params) {\n    const p0 = source.params;\n    if (!destination.params) {\n      destination.params = {};\n    }\n    const p1 = destination.params;\n    Object.keys(p0).forEach(param => {\n      if (!p1.hasOwnProperty(param)) {\n        p1[param] = p0[param];\n      }\n    });\n  }\n  return destination;\n}\n\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: any[]) => m[1].toUpperCase());\n}\n\nexport function allowPreviousPlayerStylesMerge(duration: number, del
 ay: number) {\n  return duration === 0 || delay === 0;\n}\n\nexport function visitDslNode(\n    visitor: AnimationDslVisitor, node: AnimationMetadata, context: any): any;\nexport function visitDslNode(\n    visitor: AnimationAstVisitor, node: AnimationAst<AnimationMetadataType>, context: any): any;\nexport function visitDslNode(visitor: any, node: any, context: any): any {\n  switch (node.type) {\n    case AnimationMetadataType.Trigger:\n      return visitor.visitTrigger(node, context);\n    case AnimationMetadataType.State:\n      return visitor.visitState(node, context);\n    case AnimationMetadataType.Transition:\n      return visitor.visitTransition(node, context);\n    case AnimationMetadataType.Sequence:\n      return visitor.visitSequence(node, context);\n    case AnimationMetadataType.Group:\n      return visitor.visitGroup(node, context);\n    case AnimationMetadataType.Animate:\n      return visitor.visitAnimate(node, context);\n    case AnimationMetadataType.Keyframes:\n 
      return visitor.visitKeyframes(node, context);\n    case AnimationMetadataType.Style:\n      return visitor.visitStyle(node, context);\n    case AnimationMetadataType.Reference:\n      return visitor.visitReference(node, context);\n    case AnimationMetadataType.AnimateChild:\n      return visitor.visitAnimateChild(node, context);\n    case AnimationMetadataType.AnimateRef:\n      return visitor.visitAnimateRef(node, context);\n    case AnimationMetadataType.Query:\n      return visitor.visitQuery(node, context);\n    case AnimationMetadataType.Stagger:\n      return visitor.visitStagger(node, context);\n    default:\n      throw new Error(`Unable to resolve animation metadata node #${node.type}`);\n  }\n}\n","/**\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 {AUTO_STYLE, AnimationEvent, AnimationPlayer, NoopAnimat
 ionPlayer, ɵAnimationGroupPlayer, ɵPRE_STYLE as PRE_STYLE, ɵStyleData} from '@angular/animations';\n\nimport {AnimationStyleNormalizer} from '../../src/dsl/style_normalization/animation_style_normalizer';\nimport {AnimationDriver} from '../../src/render/animation_driver';\n\nexport function optimizeGroupPlayer(players: AnimationPlayer[]): AnimationPlayer {\n  switch (players.length) {\n    case 0:\n      return new NoopAnimationPlayer();\n    case 1:\n      return players[0];\n    default:\n      return new ɵAnimationGroupPlayer(players);\n  }\n}\n\nexport function normalizeKeyframes(\n    driver: AnimationDriver, normalizer: AnimationStyleNormalizer, element: any,\n    keyframes: ɵStyleData[], preStyles: ɵStyleData = {},\n    postStyles: ɵStyleData = {}): ɵStyleData[] {\n  const errors: string[] = [];\n  const normalizedKeyframes: ɵStyleData[] = [];\n  let previousOffset = -1;\n  let previousKeyframe: ɵStyleData|null = null;\n  keyframes.forEach(kf => {\n    const offset 
 = kf['offset'] as number;\n    const isSameOffset = offset == previousOffset;\n    const normalizedKeyframe: ɵStyleData = (isSameOffset && previousKeyframe) || {};\n    Object.keys(kf).forEach(prop => {\n      let normalizedProp = prop;\n      let normalizedValue = kf[prop];\n      if (prop !== 'offset') {\n        normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n        switch (normalizedValue) {\n          case PRE_STYLE:\n            normalizedValue = preStyles[prop];\n            break;\n\n          case AUTO_STYLE:\n            normalizedValue = postStyles[prop];\n            break;\n\n          default:\n            normalizedValue =\n                normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n            break;\n        }\n      }\n      normalizedKeyframe[normalizedProp] = normalizedValue;\n    });\n    if (!isSameOffset) {\n      normalizedKeyframes.push(normalizedKeyframe);\n    }\n    previousKeyframe = norma
 lizedKeyframe;\n    previousOffset = offset;\n  });\n  if (errors.length) {\n    const LINE_START = '\\n - ';\n    throw new Error(\n        `Unable to animate due to the following errors:${LINE_START}${errors.join(LINE_START)}`);\n  }\n\n  return normalizedKeyframes;\n}\n\nexport function listenOnPlayer(\n    player: AnimationPlayer, eventName: string, event: AnimationEvent | undefined,\n    callback: (event: any) => any) {\n  switch (eventName) {\n    case 'start':\n      player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player.totalTime)));\n      break;\n    case 'done':\n      player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player.totalTime)));\n      break;\n    case 'destroy':\n      player.onDestroy(\n          () => callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)));\n      break;\n  }\n}\n\nexport function copyAnimationEvent(\n    e: AnimationEvent, phaseName?: string, totalTime?: number): AnimationEve
 nt {\n  const event = makeAnimationEvent(\n      e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName,\n      totalTime == undefined ? e.totalTime : totalTime);\n  const data = (e as any)['_data'];\n  if (data != null) {\n    (event as any)['_data'] = data;\n  }\n  return event;\n}\n\nexport function makeAnimationEvent(\n    element: any, triggerName: string, fromState: string, toState: string, phaseName: string = '',\n    totalTime: number = 0): AnimationEvent {\n  return {element, triggerName, fromState, toState, phaseName, totalTime};\n}\n\nexport function getOrSetAsInMap(\n    map: Map<any, any>| {[key: string]: any}, key: any, defaultValue: any) {\n  let value: any;\n  if (map instanceof Map) {\n    value = map.get(key);\n    if (!value) {\n      map.set(key, value = defaultValue);\n    }\n  } else {\n    value = map[key];\n    if (!value) {\n      value = map[key] = defaultValue;\n    }\n  }\n  return value;\n}\n\nexport function parseTimelineCommand(comm
 and: string): [string, string] {\n  const separatorPos = command.indexOf(':');\n  const id = command.substring(1, separatorPos);\n  const action = command.substr(separatorPos + 1);\n  return [id, action];\n}\n\nlet _contains: (elm1: any, elm2: any) => boolean = (elm1: any, elm2: any) => false;\nlet _matches: (element: any, selector: string) => boolean = (element: any, selector: string) =>\n    false;\nlet _query: (element: any, selector: string, multi: boolean) => any[] =\n    (element: any, selector: string, multi: boolean) => {\n      return [];\n    };\n\nif (typeof Element != 'undefined') {\n  // this is well supported in all browsers\n  _contains = (elm1: any, elm2: any) => { return elm1.contains(elm2) as boolean; };\n\n  if (Element.prototype.matches) {\n    _matches = (element: any, selector: string) => element.matches(selector);\n  } else {\n    const proto = Element.prototype as any;\n    const fn = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelecto
 r ||\n        proto.oMatchesSelector || proto.webkitMatchesSelector;\n    if (fn) {\n      _matches = (element: any, selector: string) => fn.apply(element, [selector]);\n    }\n  }\n\n  _query = (element: any, selector: string, multi: boolean): any[] => {\n    let results: any[] = [];\n    if (multi) {\n      results.push(...element.querySelectorAll(selector));\n    } else {\n      const elm = element.querySelector(selector);\n      if (elm) {\n        results.push(elm);\n      }\n    }\n    return results;\n  };\n}\n\nexport const matchesElement = _matches;\nexport const containsElement = _contains;\nexport const invokeQuery = _query;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/lice
 nses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assig
 n = Object.assign || function __assign(t) {\r\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n        s = arguments[i];\r\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n    }\r\n    return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n            t[p[i]] = s[p[i]];\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, 
 key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.va
 lue) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [0, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;
 \r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n
 }\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport func
 tion __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2],
  r);  }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator];\r\n    return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}"],"names":["NoopAnimationPlayer","AUTO_STYLE","tslib_1.__extends"],"mappings":";;;;;;AIAA;;;;;;;;;;;;;;;;AAgBA,IAAI,
 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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/animations/bundles/animations-browser-testing.umd.min.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations-browser-testing.umd.min.js b/node_modules/@angular/animations/bundles/animations-browser-testing.umd.min.js
new file mode 100644
index 0000000..45057eb
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations-browser-testing.umd.min.js
@@ -0,0 +1,14 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */
+!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("@angular/animations")):"function"==typeof define&&define.amd?define(["exports","@angular/animations"],factory):factory((global.ng=global.ng||{},global.ng.animations=global.ng.animations||{},global.ng.animations.browser=global.ng.animations.browser||{},global.ng.animations.browser.testing=global.ng.animations.browser.testing||{}),global._angular_animations)}(this,function(exports,_angular_animations){"use strict";function __extends(d,b){function __(){this.constructor=d}extendStatics(d,b),d.prototype=null===b?Object.create(b):(__.prototype=b.prototype,new __)}/**
+ * @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
+ */
+function allowPreviousPlayerStylesMerge(duration,delay){return 0===duration||0===delay}var extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)b.hasOwnProperty(p)&&(d[p]=b[p])},_contains=function(elm1,elm2){return!1},_matches=function(element,selector){return!1},_query=function(element,selector,multi){return[]};if("undefined"!=typeof Element){if(_contains=function(elm1,elm2){return elm1.contains(elm2)},Element.prototype.matches)_matches=function(element,selector){return element.matches(selector)};else{var proto=Element.prototype,fn_1=proto.matchesSelector||proto.mozMatchesSelector||proto.msMatchesSelector||proto.oMatchesSelector||proto.webkitMatchesSelector;fn_1&&(_matches=function(element,selector){return fn_1.apply(element,[selector])})}_query=function(element,selector,multi){var results=[];if(multi)results.push.apply(results,element.querySelectorAll(selector));else{var elm=element.querySelector(selector);
 elm&&results.push(elm)}return results}}var matchesElement=_matches,containsElement=_contains,invokeQuery=_query,MockAnimationDriver=function(){function MockAnimationDriver(){}return MockAnimationDriver.prototype.matchesElement=function(element,selector){return matchesElement(element,selector)},MockAnimationDriver.prototype.containsElement=function(elm1,elm2){return containsElement(elm1,elm2)},MockAnimationDriver.prototype.query=function(element,selector,multi){return invokeQuery(element,selector,multi)},MockAnimationDriver.prototype.computeStyle=function(element,prop,defaultValue){return defaultValue||""},MockAnimationDriver.prototype.animate=function(element,keyframes,duration,delay,easing,previousPlayers){void 0===previousPlayers&&(previousPlayers=[]);var player=new MockAnimationPlayer(element,keyframes,duration,delay,easing,previousPlayers);return MockAnimationDriver.log.push(player),player},MockAnimationDriver}();MockAnimationDriver.log=[];var MockAnimationPlayer=function(_super
 ){function MockAnimationPlayer(element,keyframes,duration,delay,easing,previousPlayers){var _this=_super.call(this)||this;return _this.element=element,_this.keyframes=keyframes,_this.duration=duration,_this.delay=delay,_this.easing=easing,_this.previousPlayers=previousPlayers,_this.__finished=!1,_this.__started=!1,_this.previousStyles={},_this._onInitFns=[],_this.currentSnapshot={},allowPreviousPlayerStylesMerge(duration,delay)&&previousPlayers.forEach(function(player){if(player instanceof MockAnimationPlayer){var styles_1=player.currentSnapshot;Object.keys(styles_1).forEach(function(prop){return _this.previousStyles[prop]=styles_1[prop]})}}),_this.totalTime=delay+duration,_this}return __extends(MockAnimationPlayer,_super),MockAnimationPlayer.prototype.onInit=function(fn){this._onInitFns.push(fn)},MockAnimationPlayer.prototype.init=function(){_super.prototype.init.call(this),this._onInitFns.forEach(function(fn){return fn()}),this._onInitFns=[]},MockAnimationPlayer.prototype.finish=f
 unction(){_super.prototype.finish.call(this),this.__finished=!0},MockAnimationPlayer.prototype.destroy=function(){_super.prototype.destroy.call(this),this.__finished=!0},MockAnimationPlayer.prototype.triggerMicrotask=function(){},MockAnimationPlayer.prototype.play=function(){_super.prototype.play.call(this),this.__started=!0},MockAnimationPlayer.prototype.hasStarted=function(){return this.__started},MockAnimationPlayer.prototype.beforeDestroy=function(){var _this=this,captures={};Object.keys(this.previousStyles).forEach(function(prop){captures[prop]=_this.previousStyles[prop]}),this.hasStarted()&&this.keyframes.forEach(function(kf){Object.keys(kf).forEach(function(prop){"offset"!=prop&&(captures[prop]=_this.__finished?kf[prop]:_angular_animations.AUTO_STYLE)})}),this.currentSnapshot=captures},MockAnimationPlayer}(_angular_animations.NoopAnimationPlayer);exports.MockAnimationDriver=MockAnimationDriver,exports.MockAnimationPlayer=MockAnimationPlayer,Object.defineProperty(exports,"__es
 Module",{value:!0})});
+//# sourceMappingURL=animations-browser-testing.umd.min.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/bundles/animations-browser-testing.umd.min.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/bundles/animations-browser-testing.umd.min.js.map b/node_modules/@angular/animations/bundles/animations-browser-testing.umd.min.js.map
new file mode 100644
index 0000000..dac2790
--- /dev/null
+++ b/node_modules/@angular/animations/bundles/animations-browser-testing.umd.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"animations-browser-testing.umd.min.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../packages/animations/browser/src/render/shared.ts","../../../../packages/animations/browser/src/util.ts","../../../../packages/animations/browser/testing/src/mock_animation_driver.ts","../../../../packages/animations/browser/testing/src/testing.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PUR
 POSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n        s = arguments[i];\r\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n    }\r\n    return t;\
 r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n            t[p[i]] = s[p[i]];\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nex
 port function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var 
 _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [0, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n    
                 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n  
   if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new 
 __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __as
 yncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator];\r\n    return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}","/**\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 {AUTO_STYLE, AnimationEvent, AnimationPlayer, NoopAnimationPlayer, ɵAnimationGroupPlayer, ɵPRE_STYLE as PRE_STYLE, ɵStyleData} from '@angular/an
 imations';\n\nimport {AnimationStyleNormalizer} from '../../src/dsl/style_normalization/animation_style_normalizer';\nimport {AnimationDriver} from '../../src/render/animation_driver';\n\nexport function optimizeGroupPlayer(players: AnimationPlayer[]): AnimationPlayer {\n  switch (players.length) {\n    case 0:\n      return new NoopAnimationPlayer();\n    case 1:\n      return players[0];\n    default:\n      return new ɵAnimationGroupPlayer(players);\n  }\n}\n\nexport function normalizeKeyframes(\n    driver: AnimationDriver, normalizer: AnimationStyleNormalizer, element: any,\n    keyframes: ɵStyleData[], preStyles: ɵStyleData = {},\n    postStyles: ɵStyleData = {}): ɵStyleData[] {\n  const errors: string[] = [];\n  const normalizedKeyframes: ɵStyleData[] = [];\n  let previousOffset = -1;\n  let previousKeyframe: ɵStyleData|null = null;\n  keyframes.forEach(kf => {\n    const offset = kf['offset'] as number;\n    const isSameOffset = offset == previousOffset;\n    const no
 rmalizedKeyframe: ɵStyleData = (isSameOffset && previousKeyframe) || {};\n    Object.keys(kf).forEach(prop => {\n      let normalizedProp = prop;\n      let normalizedValue = kf[prop];\n      if (prop !== 'offset') {\n        normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n        switch (normalizedValue) {\n          case PRE_STYLE:\n            normalizedValue = preStyles[prop];\n            break;\n\n          case AUTO_STYLE:\n            normalizedValue = postStyles[prop];\n            break;\n\n          default:\n            normalizedValue =\n                normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n            break;\n        }\n      }\n      normalizedKeyframe[normalizedProp] = normalizedValue;\n    });\n    if (!isSameOffset) {\n      normalizedKeyframes.push(normalizedKeyframe);\n    }\n    previousKeyframe = normalizedKeyframe;\n    previousOffset = offset;\n  });\n  if (errors.length) {\n    const LINE
 _START = '\\n - ';\n    throw new Error(\n        `Unable to animate due to the following errors:${LINE_START}${errors.join(LINE_START)}`);\n  }\n\n  return normalizedKeyframes;\n}\n\nexport function listenOnPlayer(\n    player: AnimationPlayer, eventName: string, event: AnimationEvent | undefined,\n    callback: (event: any) => any) {\n  switch (eventName) {\n    case 'start':\n      player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player.totalTime)));\n      break;\n    case 'done':\n      player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player.totalTime)));\n      break;\n    case 'destroy':\n      player.onDestroy(\n          () => callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)));\n      break;\n  }\n}\n\nexport function copyAnimationEvent(\n    e: AnimationEvent, phaseName?: string, totalTime?: number): AnimationEvent {\n  const event = makeAnimationEvent(\n      e.element, e.triggerName, e.fromState, e.t
 oState, phaseName || e.phaseName,\n      totalTime == undefined ? e.totalTime : totalTime);\n  const data = (e as any)['_data'];\n  if (data != null) {\n    (event as any)['_data'] = data;\n  }\n  return event;\n}\n\nexport function makeAnimationEvent(\n    element: any, triggerName: string, fromState: string, toState: string, phaseName: string = '',\n    totalTime: number = 0): AnimationEvent {\n  return {element, triggerName, fromState, toState, phaseName, totalTime};\n}\n\nexport function getOrSetAsInMap(\n    map: Map<any, any>| {[key: string]: any}, key: any, defaultValue: any) {\n  let value: any;\n  if (map instanceof Map) {\n    value = map.get(key);\n    if (!value) {\n      map.set(key, value = defaultValue);\n    }\n  } else {\n    value = map[key];\n    if (!value) {\n      value = map[key] = defaultValue;\n    }\n  }\n  return value;\n}\n\nexport function parseTimelineCommand(command: string): [string, string] {\n  const separatorPos = command.indexOf(':');\n  const id 
 = command.substring(1, separatorPos);\n  const action = command.substr(separatorPos + 1);\n  return [id, action];\n}\n\nlet _contains: (elm1: any, elm2: any) => boolean = (elm1: any, elm2: any) => false;\nlet _matches: (element: any, selector: string) => boolean = (element: any, selector: string) =>\n    false;\nlet _query: (element: any, selector: string, multi: boolean) => any[] =\n    (element: any, selector: string, multi: boolean) => {\n      return [];\n    };\n\nif (typeof Element != 'undefined') {\n  // this is well supported in all browsers\n  _contains = (elm1: any, elm2: any) => { return elm1.contains(elm2) as boolean; };\n\n  if (Element.prototype.matches) {\n    _matches = (element: any, selector: string) => element.matches(selector);\n  } else {\n    const proto = Element.prototype as any;\n    const fn = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||\n        proto.oMatchesSelector || proto.webkitMatchesSelector;\n    if (fn) {\n      
 _matches = (element: any, selector: string) => fn.apply(element, [selector]);\n    }\n  }\n\n  _query = (element: any, selector: string, multi: boolean): any[] => {\n    let results: any[] = [];\n    if (multi) {\n      results.push(...element.querySelectorAll(selector));\n    } else {\n      const elm = element.querySelector(selector);\n      if (elm) {\n        results.push(elm);\n      }\n    }\n    return results;\n  };\n}\n\nexport const matchesElement = _matches;\nexport const containsElement = _contains;\nexport const invokeQuery = _query;\n","/**\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 {AnimateTimings, AnimationMetadata, AnimationMetadataType, AnimationOptions, sequence, ɵStyleData} from '@angular/animations';\nimport {Ast as AnimationAst, AstVisitor as AnimationAstVisitor} from './dsl/animation_ast';\ni
 mport {AnimationDslVisitor} from './dsl/animation_dsl_visitor';\n\nexport const ONE_SECOND = 1000;\n\nexport const SUBSTITUTION_EXPR_START = '{{';\nexport const SUBSTITUTION_EXPR_END = '}}';\nexport const ENTER_CLASSNAME = 'ng-enter';\nexport const LEAVE_CLASSNAME = 'ng-leave';\nexport const ENTER_SELECTOR = '.ng-enter';\nexport const LEAVE_SELECTOR = '.ng-leave';\nexport const NG_TRIGGER_CLASSNAME = 'ng-trigger';\nexport const NG_TRIGGER_SELECTOR = '.ng-trigger';\nexport const NG_ANIMATING_CLASSNAME = 'ng-animating';\nexport const NG_ANIMATING_SELECTOR = '.ng-animating';\n\nexport function resolveTimingValue(value: string | number) {\n  if (typeof value == 'number') return value;\n\n  const matches = (value as string).match(/^(-?[\\.\\d]+)(m?s)/);\n  if (!matches || matches.length < 2) return 0;\n\n  return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\n\nfunction _convertTimeValueToMS(value: number, unit: string): number {\n  switch (unit) {\n    case 's':\n      r
 eturn value * ONE_SECOND;\n    default:  // ms or something else\n      return value;\n  }\n}\n\nexport function resolveTiming(\n    timings: string | number | AnimateTimings, errors: any[], allowNegativeValues?: boolean) {\n  return timings.hasOwnProperty('duration') ?\n      <AnimateTimings>timings :\n      parseTimeExpression(<string|number>timings, errors, allowNegativeValues);\n}\n\nfunction parseTimeExpression(\n    exp: string | number, errors: string[], allowNegativeValues?: boolean): AnimateTimings {\n  const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n  let duration: number;\n  let delay: number = 0;\n  let easing: string = '';\n  if (typeof exp === 'string') {\n    const matches = exp.match(regex);\n    if (matches === null) {\n      errors.push(`The provided timing value \"${exp}\" is invalid.`);\n      return {duration: 0, delay: 0, easing: ''};\n    }\n\n    duration = _convertTimeValueToMS(parseFloat(matches[1]), matche
 s[2]);\n\n    const delayMatch = matches[3];\n    if (delayMatch != null) {\n      delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]);\n    }\n\n    const easingVal = matches[5];\n    if (easingVal) {\n      easing = easingVal;\n    }\n  } else {\n    duration = <number>exp;\n  }\n\n  if (!allowNegativeValues) {\n    let containsErrors = false;\n    let startIndex = errors.length;\n    if (duration < 0) {\n      errors.push(`Duration values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (delay < 0) {\n      errors.push(`Delay values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (containsErrors) {\n      errors.splice(startIndex, 0, `The provided timing value \"${exp}\" is invalid.`);\n    }\n  }\n\n  return {duration, delay, easing};\n}\n\nexport function copyObj(\n    obj: {[key: string]: any}, destination: {[key: string]: any} = {}): {[key: string]: any} 
 {\n  Object.keys(obj).forEach(prop => { destination[prop] = obj[prop]; });\n  return destination;\n}\n\nexport function normalizeStyles(styles: ɵStyleData | ɵStyleData[]): ɵStyleData {\n  const normalizedStyles: ɵStyleData = {};\n  if (Array.isArray(styles)) {\n    styles.forEach(data => copyStyles(data, false, normalizedStyles));\n  } else {\n    copyStyles(styles, false, normalizedStyles);\n  }\n  return normalizedStyles;\n}\n\nexport function copyStyles(\n    styles: ɵStyleData, readPrototype: boolean, destination: ɵStyleData = {}): ɵStyleData {\n  if (readPrototype) {\n    // we make use of a for-in loop so that the\n    // prototypically inherited properties are\n    // revealed from the backFill map\n    for (let prop in styles) {\n      destination[prop] = styles[prop];\n    }\n  } else {\n    copyObj(styles, destination);\n  }\n  return destination;\n}\n\nexport function setStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles)
 .forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = styles[prop];\n    });\n  }\n}\n\nexport function eraseStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = '';\n    });\n  }\n}\n\nexport function normalizeAnimationEntry(steps: AnimationMetadata | AnimationMetadata[]):\n    AnimationMetadata {\n  if (Array.isArray(steps)) {\n    if (steps.length == 1) return steps[0];\n    return sequence(steps);\n  }\n  return steps as AnimationMetadata;\n}\n\nexport function validateStyleParams(\n    value: string | number, options: AnimationOptions, errors: any[]) {\n  const params = options.params || {};\n  const matches = extractStyleParams(value);\n  if (matches.length) {\n    matches.forEach(varName => {\n      if (!params.hasOwnProperty(varName)) {\n        errors.push(\n            `Unable t
 o resolve the local animation param ${varName} in the given list of values`);\n      }\n    });\n  }\n}\n\nconst PARAM_REGEX =\n    new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nexport function extractStyleParams(value: string | number): string[] {\n  let params: string[] = [];\n  if (typeof value === 'string') {\n    const val = value.toString();\n\n    let match: any;\n    while (match = PARAM_REGEX.exec(val)) {\n      params.push(match[1] as string);\n    }\n    PARAM_REGEX.lastIndex = 0;\n  }\n  return params;\n}\n\nexport function interpolateParams(\n    value: string | number, params: {[name: string]: any}, errors: any[]): string|number {\n  const original = value.toString();\n  const str = original.replace(PARAM_REGEX, (_, varName) => {\n    let localVal = params[varName];\n    // this means that the value was never overidden by the data passed in by the user\n    if (!params.hasOwnProperty(varName)) {\n      errors.push(`Please prov
 ide a value for the animation param ${varName}`);\n      localVal = '';\n    }\n    return localVal.toString();\n  });\n\n  // we do this to assert that numeric values stay as they are\n  return str == original ? value : str;\n}\n\nexport function iteratorToArray(iterator: any): any[] {\n  const arr: any[] = [];\n  let item = iterator.next();\n  while (!item.done) {\n    arr.push(item.value);\n    item = iterator.next();\n  }\n  return arr;\n}\n\nexport function mergeAnimationOptions(\n    source: AnimationOptions, destination: AnimationOptions): AnimationOptions {\n  if (source.params) {\n    const p0 = source.params;\n    if (!destination.params) {\n      destination.params = {};\n    }\n    const p1 = destination.params;\n    Object.keys(p0).forEach(param => {\n      if (!p1.hasOwnProperty(param)) {\n        p1[param] = p0[param];\n      }\n    });\n  }\n  return destination;\n}\n\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nexport function dashCaseToCamelCase(input: string): stri
 ng {\n  return input.replace(DASH_CASE_REGEXP, (...m: any[]) => m[1].toUpperCase());\n}\n\nexport function allowPreviousPlayerStylesMerge(duration: number, delay: number) {\n  return duration === 0 || delay === 0;\n}\n\nexport function visitDslNode(\n    visitor: AnimationDslVisitor, node: AnimationMetadata, context: any): any;\nexport function visitDslNode(\n    visitor: AnimationAstVisitor, node: AnimationAst<AnimationMetadataType>, context: any): any;\nexport function visitDslNode(visitor: any, node: any, context: any): any {\n  switch (node.type) {\n    case AnimationMetadataType.Trigger:\n      return visitor.visitTrigger(node, context);\n    case AnimationMetadataType.State:\n      return visitor.visitState(node, context);\n    case AnimationMetadataType.Transition:\n      return visitor.visitTransition(node, context);\n    case AnimationMetadataType.Sequence:\n      return visitor.visitSequence(node, context);\n    case AnimationMetadataType.Group:\n      return visitor.visit
 Group(node, context);\n    case AnimationMetadataType.Animate:\n      return visitor.visitAnimate(node, context);\n    case AnimationMetadataType.Keyframes:\n      return visitor.visitKeyframes(node, context);\n    case AnimationMetadataType.Style:\n      return visitor.visitStyle(node, context);\n    case AnimationMetadataType.Reference:\n      return visitor.visitReference(node, context);\n    case AnimationMetadataType.AnimateChild:\n      return visitor.visitAnimateChild(node, context);\n    case AnimationMetadataType.AnimateRef:\n      return visitor.visitAnimateRef(node, context);\n    case AnimationMetadataType.Query:\n      return visitor.visitQuery(node, context);\n    case AnimationMetadataType.Stagger:\n      return visitor.visitStagger(node, context);\n    default:\n      throw new Error(`Unable to resolve animation metadata node #${node.type}`);\n  }\n}\n","/**\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 {AUTO_STYLE, AnimationPlayer, NoopAnimationPlayer, ɵStyleData} from '@angular/animations';\n\nimport {AnimationDriver} from '../../src/render/animation_driver';\nimport {containsElement, invokeQuery, matchesElement} from '../../src/render/shared';\nimport {allowPreviousPlayerStylesMerge} from '../../src/util';\n\n/**\n * @experimental Animation support is experimental.\n */\nexport class MockAnimationDriver implements AnimationDriver {\n  static log: AnimationPlayer[] = [];\n\n  matchesElement(element: any, selector: string): boolean {\n    return matchesElement(element, selector);\n  }\n\n  containsElement(elm1: any, elm2: any): boolean { return containsElement(elm1, elm2); }\n\n  query(element: any, selector: string, multi: boolean): any[] {\n    return invokeQuery(element, selector, multi);\n  }\n\n  computeStyle(element: any, prop: string, defaultValue?: string): string {\n   
  return defaultValue || '';\n  }\n\n  animate(\n      element: any, keyframes: {[key: string]: string | number}[], duration: number, delay: number,\n      easing: string, previousPlayers: any[] = []): MockAnimationPlayer {\n    const player =\n        new MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers);\n    MockAnimationDriver.log.push(<AnimationPlayer>player);\n    return player;\n  }\n}\n\n/**\n * @experimental Animation support is experimental.\n */\nexport class MockAnimationPlayer extends NoopAnimationPlayer {\n  private __finished = false;\n  private __started = false;\n  public previousStyles: {[key: string]: string | number} = {};\n  private _onInitFns: (() => any)[] = [];\n  public currentSnapshot: ɵStyleData = {};\n\n  constructor(\n      public element: any, public keyframes: {[key: string]: string | number}[],\n      public duration: number, public delay: number, public easing: string,\n      public previousPlayers: any[]) {\n    super
 ();\n\n    if (allowPreviousPlayerStylesMerge(duration, delay)) {\n      previousPlayers.forEach(player => {\n        if (player instanceof MockAnimationPlayer) {\n          const styles = player.currentSnapshot;\n          Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]);\n        }\n      });\n    }\n\n    this.totalTime = delay + duration;\n  }\n\n  /* @internal */\n  onInit(fn: () => any) { this._onInitFns.push(fn); }\n\n  /* @internal */\n  init() {\n    super.init();\n    this._onInitFns.forEach(fn => fn());\n    this._onInitFns = [];\n  }\n\n  finish(): void {\n    super.finish();\n    this.__finished = true;\n  }\n\n  destroy(): void {\n    super.destroy();\n    this.__finished = true;\n  }\n\n  /* @internal */\n  triggerMicrotask() {}\n\n  play(): void {\n    super.play();\n    this.__started = true;\n  }\n\n  hasStarted() { return this.__started; }\n\n  beforeDestroy() {\n    const captures: ɵStyleData = {};\n\n    Object.keys(this.previousSty
 les).forEach(prop => {\n      captures[prop] = this.previousStyles[prop];\n    });\n\n    if (this.hasStarted()) {\n      // when assembling the captured styles, it's important that\n      // we build the keyframe styles in the following order:\n      // {other styles within keyframes, ... previousStyles }\n      this.keyframes.forEach(kf => {\n        Object.keys(kf).forEach(prop => {\n          if (prop != 'offset') {\n            captures[prop] = this.__finished ? kf[prop] : AUTO_STYLE;\n          }\n        });\n      });\n    }\n\n    this.currentSnapshot = captures;\n  }\n}\n","/**\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 {MockAnimationDriver, MockAnimationPlayer} from './mock_animation_driver';\n"],"names":["extendStatics","Object","setPrototypeOf","__proto__","Array","d","b","p","hasOwnProperty","_contains
 ","elm1","elm2","_query","element","selector","multi","Element","contains","prototype","matches","_matches","proto","fn_1","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","apply","results","push","querySelectorAll","elm","querySelector","MockAnimationDriver","matchesElement","containsElement","query","computeStyle","prop","defaultValue","previousPlayers","player","MockAnimationPlayer","keyframes","duration","delay","easing","log","tslib_1.__extends","_super","_this","call","this","__finished","__started","previousStyles","_onInitFns","currentSnapshot","forEach","styles_1","__extends","onInit","fn","init","finish","destroy","triggerMicrotask","play","beforeDestroy","hasStarted","kf","exports","module","factory","require"],"mappings":"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"}
\ No newline at end of file


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

Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-table.umd.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-table.umd.js b/node_modules/@angular/cdk/bundles/cdk-table.umd.js
new file mode 100644
index 0000000..fade3fa
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-table.umd.js
@@ -0,0 +1,859 @@
+/**
+ * @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
+ */
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs/operator/takeUntil'), require('rxjs/BehaviorSubject'), require('rxjs/Subject'), require('@angular/common'), require('@angular/cdk/collections')) :
+	typeof define === 'function' && define.amd ? define(['exports', '@angular/core', 'rxjs/operator/takeUntil', 'rxjs/BehaviorSubject', 'rxjs/Subject', '@angular/common', '@angular/cdk/collections'], factory) :
+	(factory((global.ng = global.ng || {}, global.ng.cdk = global.ng.cdk || {}, global.ng.cdk.table = global.ng.cdk.table || {}),global.ng.core,global.Rx.Observable.prototype,global.Rx,global.Rx,global.ng.common,global.ng.cdk.collections));
+}(this, (function (exports,_angular_core,rxjs_operator_takeUntil,rxjs_BehaviorSubject,rxjs_Subject,_angular_common,_angular_cdk_collections) { 'use strict';
+
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0
+
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+MERCHANTABLITY OR NON-INFRINGEMENT.
+
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** */
+/* global Reflect, Promise */
+
+var extendStatics = Object.setPrototypeOf ||
+    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+
+function __extends(d, b) {
+    extendStatics(d, b);
+    function __() { this.constructor = d; }
+    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+
+/**
+ * The row template that can be used by the mat-table. Should not be used outside of the
+ * material library.
+ */
+var CDK_ROW_TEMPLATE = "<ng-container cdkCellOutlet></ng-container>";
+/**
+ * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs
+ * for changes and notifying the table.
+ * @abstract
+ */
+var BaseRowDef = (function () {
+    /**
+     * @param {?} template
+     * @param {?} _differs
+     */
+    function BaseRowDef(template, _differs) {
+        this.template = template;
+        this._differs = _differs;
+    }
+    /**
+     * @param {?} changes
+     * @return {?}
+     */
+    BaseRowDef.prototype.ngOnChanges = function (changes) {
+        // Create a new columns differ if one does not yet exist. Initialize it based on initial value
+        // of the columns property or an empty array if none is provided.
+        var /** @type {?} */ columns = changes['columns'].currentValue || [];
+        if (!this._columnsDiffer) {
+            this._columnsDiffer = this._differs.find(columns).create();
+            this._columnsDiffer.diff(columns);
+        }
+    };
+    /**
+     * Returns the difference between the current columns and the columns from the last diff, or null
+     * if there is no difference.
+     * @return {?}
+     */
+    BaseRowDef.prototype.getColumnsDiff = function () {
+        return this._columnsDiffer.diff(this.columns);
+    };
+    return BaseRowDef;
+}());
+/**
+ * Header row definition for the CDK table.
+ * Captures the header row's template and other header properties such as the columns to display.
+ */
+var CdkHeaderRowDef = (function (_super) {
+    __extends(CdkHeaderRowDef, _super);
+    /**
+     * @param {?} template
+     * @param {?} _differs
+     */
+    function CdkHeaderRowDef(template, _differs) {
+        return _super.call(this, template, _differs) || this;
+    }
+    CdkHeaderRowDef.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: '[cdkHeaderRowDef]',
+                    inputs: ['columns: cdkHeaderRowDef'],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkHeaderRowDef.ctorParameters = function () { return [
+        { type: _angular_core.TemplateRef, },
+        { type: _angular_core.IterableDiffers, },
+    ]; };
+    return CdkHeaderRowDef;
+}(BaseRowDef));
+/**
+ * Data row definition for the CDK table.
+ * Captures the header row's template and other row properties such as the columns to display and
+ * a when predicate that describes when this row should be used.
+ */
+var CdkRowDef = (function (_super) {
+    __extends(CdkRowDef, _super);
+    /**
+     * @param {?} template
+     * @param {?} _differs
+     */
+    function CdkRowDef(template, _differs) {
+        return _super.call(this, template, _differs) || this;
+    }
+    CdkRowDef.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: '[cdkRowDef]',
+                    inputs: ['columns: cdkRowDefColumns', 'when: cdkRowDefWhen'],
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkRowDef.ctorParameters = function () { return [
+        { type: _angular_core.TemplateRef, },
+        { type: _angular_core.IterableDiffers, },
+    ]; };
+    return CdkRowDef;
+}(BaseRowDef));
+/**
+ * Outlet for rendering cells inside of a row or header row.
+ * \@docs-private
+ */
+var CdkCellOutlet = (function () {
+    /**
+     * @param {?} _viewContainer
+     */
+    function CdkCellOutlet(_viewContainer) {
+        this._viewContainer = _viewContainer;
+        CdkCellOutlet.mostRecentCellOutlet = this;
+    }
+    CdkCellOutlet.decorators = [
+        { type: _angular_core.Directive, args: [{ selector: '[cdkCellOutlet]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkCellOutlet.ctorParameters = function () { return [
+        { type: _angular_core.ViewContainerRef, },
+    ]; };
+    return CdkCellOutlet;
+}());
+/**
+ * Header template container that contains the cell outlet. Adds the right class and role.
+ */
+var CdkHeaderRow = (function () {
+    function CdkHeaderRow() {
+    }
+    CdkHeaderRow.decorators = [
+        { type: _angular_core.Component, args: [{selector: 'cdk-header-row',
+                    template: CDK_ROW_TEMPLATE,
+                    host: {
+                        'class': 'cdk-header-row',
+                        'role': 'row',
+                    },
+                    changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
+                    encapsulation: _angular_core.ViewEncapsulation.None,
+                    preserveWhitespaces: false,
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkHeaderRow.ctorParameters = function () { return []; };
+    return CdkHeaderRow;
+}());
+/**
+ * Data row template container that contains the cell outlet. Adds the right class and role.
+ */
+var CdkRow = (function () {
+    function CdkRow() {
+    }
+    CdkRow.decorators = [
+        { type: _angular_core.Component, args: [{selector: 'cdk-row',
+                    template: CDK_ROW_TEMPLATE,
+                    host: {
+                        'class': 'cdk-row',
+                        'role': 'row',
+                    },
+                    changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
+                    encapsulation: _angular_core.ViewEncapsulation.None,
+                    preserveWhitespaces: false,
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkRow.ctorParameters = function () { return []; };
+    return CdkRow;
+}());
+
+/**
+ * Cell definition for a CDK table.
+ * Captures the template of a column's data row cell as well as cell-specific properties.
+ */
+var CdkCellDef = (function () {
+    /**
+     * @param {?} template
+     */
+    function CdkCellDef(template) {
+        this.template = template;
+    }
+    CdkCellDef.decorators = [
+        { type: _angular_core.Directive, args: [{ selector: '[cdkCellDef]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkCellDef.ctorParameters = function () { return [
+        { type: _angular_core.TemplateRef, },
+    ]; };
+    return CdkCellDef;
+}());
+/**
+ * Header cell definition for a CDK table.
+ * Captures the template of a column's header cell and as well as cell-specific properties.
+ */
+var CdkHeaderCellDef = (function () {
+    /**
+     * @param {?} template
+     */
+    function CdkHeaderCellDef(template) {
+        this.template = template;
+    }
+    CdkHeaderCellDef.decorators = [
+        { type: _angular_core.Directive, args: [{ selector: '[cdkHeaderCellDef]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkHeaderCellDef.ctorParameters = function () { return [
+        { type: _angular_core.TemplateRef, },
+    ]; };
+    return CdkHeaderCellDef;
+}());
+/**
+ * Column definition for the CDK table.
+ * Defines a set of cells available for a table column.
+ */
+var CdkColumnDef = (function () {
+    function CdkColumnDef() {
+    }
+    Object.defineProperty(CdkColumnDef.prototype, "name", {
+        /**
+         * Unique name for this column.
+         * @return {?}
+         */
+        get: function () { return this._name; },
+        /**
+         * @param {?} name
+         * @return {?}
+         */
+        set: function (name) {
+            this._name = name;
+            this.cssClassFriendlyName = name.replace(/[^a-z0-9_-]/ig, '-');
+        },
+        enumerable: true,
+        configurable: true
+    });
+    CdkColumnDef.decorators = [
+        { type: _angular_core.Directive, args: [{ selector: '[cdkColumnDef]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkColumnDef.ctorParameters = function () { return []; };
+    CdkColumnDef.propDecorators = {
+        'name': [{ type: _angular_core.Input, args: ['cdkColumnDef',] },],
+        'cell': [{ type: _angular_core.ContentChild, args: [CdkCellDef,] },],
+        'headerCell': [{ type: _angular_core.ContentChild, args: [CdkHeaderCellDef,] },],
+    };
+    return CdkColumnDef;
+}());
+/**
+ * Header cell template container that adds the right classes and role.
+ */
+var CdkHeaderCell = (function () {
+    /**
+     * @param {?} columnDef
+     * @param {?} elementRef
+     * @param {?} renderer
+     */
+    function CdkHeaderCell(columnDef, elementRef, renderer) {
+        renderer.addClass(elementRef.nativeElement, "cdk-column-" + columnDef.cssClassFriendlyName);
+    }
+    CdkHeaderCell.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: 'cdk-header-cell',
+                    host: {
+                        'class': 'cdk-header-cell',
+                        'role': 'columnheader',
+                    },
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkHeaderCell.ctorParameters = function () { return [
+        { type: CdkColumnDef, },
+        { type: _angular_core.ElementRef, },
+        { type: _angular_core.Renderer2, },
+    ]; };
+    return CdkHeaderCell;
+}());
+/**
+ * Cell template container that adds the right classes and role.
+ */
+var CdkCell = (function () {
+    /**
+     * @param {?} columnDef
+     * @param {?} elementRef
+     * @param {?} renderer
+     */
+    function CdkCell(columnDef, elementRef, renderer) {
+        renderer.addClass(elementRef.nativeElement, "cdk-column-" + columnDef.cssClassFriendlyName);
+    }
+    CdkCell.decorators = [
+        { type: _angular_core.Directive, args: [{
+                    selector: 'cdk-cell',
+                    host: {
+                        'class': 'cdk-cell',
+                        'role': 'gridcell',
+                    },
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkCell.ctorParameters = function () { return [
+        { type: CdkColumnDef, },
+        { type: _angular_core.ElementRef, },
+        { type: _angular_core.Renderer2, },
+    ]; };
+    return CdkCell;
+}());
+
+/**
+ * Returns an error to be thrown when attempting to find an unexisting column.
+ * \@docs-private
+ * @param {?} id Id whose lookup failed.
+ * @return {?}
+ */
+function getTableUnknownColumnError(id) {
+    return Error("cdk-table: Could not find column with id \"" + id + "\".");
+}
+/**
+ * Returns an error to be thrown when two column definitions have the same name.
+ * \@docs-private
+ * @param {?} name
+ * @return {?}
+ */
+function getTableDuplicateColumnNameError(name) {
+    return Error("cdk-table: Duplicate column definition name provided: \"" + name + "\".");
+}
+/**
+ * Returns an error to be thrown when there are multiple rows that are missing a when function.
+ * \@docs-private
+ * @return {?}
+ */
+function getTableMultipleDefaultRowDefsError() {
+    return Error("cdk-table: There can only be one default row without a when predicate function.");
+}
+/**
+ * Returns an error to be thrown when there are no matching row defs for a particular set of data.
+ * \@docs-private
+ * @return {?}
+ */
+function getTableMissingMatchingRowDefError() {
+    return Error("cdk-table: Could not find a matching row definition for the provided row data.");
+}
+
+/**
+ * Provides a handle for the table to grab the view container's ng-container to insert data rows.
+ * \@docs-private
+ */
+var RowPlaceholder = (function () {
+    /**
+     * @param {?} viewContainer
+     */
+    function RowPlaceholder(viewContainer) {
+        this.viewContainer = viewContainer;
+    }
+    RowPlaceholder.decorators = [
+        { type: _angular_core.Directive, args: [{ selector: '[rowPlaceholder]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    RowPlaceholder.ctorParameters = function () { return [
+        { type: _angular_core.ViewContainerRef, },
+    ]; };
+    return RowPlaceholder;
+}());
+/**
+ * Provides a handle for the table to grab the view container's ng-container to insert the header.
+ * \@docs-private
+ */
+var HeaderRowPlaceholder = (function () {
+    /**
+     * @param {?} viewContainer
+     */
+    function HeaderRowPlaceholder(viewContainer) {
+        this.viewContainer = viewContainer;
+    }
+    HeaderRowPlaceholder.decorators = [
+        { type: _angular_core.Directive, args: [{ selector: '[headerRowPlaceholder]' },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    HeaderRowPlaceholder.ctorParameters = function () { return [
+        { type: _angular_core.ViewContainerRef, },
+    ]; };
+    return HeaderRowPlaceholder;
+}());
+/**
+ * The table template that can be used by the mat-table. Should not be used outside of the
+ * material library.
+ */
+var CDK_TABLE_TEMPLATE = "\n  <ng-container headerRowPlaceholder></ng-container>\n  <ng-container rowPlaceholder></ng-container>";
+/**
+ * A data table that connects with a data source to retrieve data of type `T` and renders
+ * a header row and data rows. Updates the rows when new data is provided by the data source.
+ */
+var CdkTable = (function () {
+    /**
+     * @param {?} _differs
+     * @param {?} _changeDetectorRef
+     * @param {?} elementRef
+     * @param {?} renderer
+     * @param {?} role
+     */
+    function CdkTable(_differs, _changeDetectorRef, elementRef, renderer, role) {
+        this._differs = _differs;
+        this._changeDetectorRef = _changeDetectorRef;
+        /**
+         * Subject that emits when the component has been destroyed.
+         */
+        this._onDestroy = new rxjs_Subject.Subject();
+        /**
+         * Latest data provided by the data source through the connect interface.
+         */
+        this._data = [];
+        /**
+         * Map of all the user's defined columns (header and data cell template) identified by name.
+         */
+        this._columnDefsByName = new Map();
+        /**
+         * Stream containing the latest information on what rows are being displayed on screen.
+         * Can be used by the data source to as a heuristic of what data should be provided.
+         */
+        this.viewChange = new rxjs_BehaviorSubject.BehaviorSubject({ start: 0, end: Number.MAX_VALUE });
+        if (!role) {
+            renderer.setAttribute(elementRef.nativeElement, 'role', 'grid');
+        }
+    }
+    Object.defineProperty(CdkTable.prototype, "trackBy", {
+        /**
+         * @return {?}
+         */
+        get: function () { return this._trackByFn; },
+        /**
+         * Tracking function that will be used to check the differences in data changes. Used similarly
+         * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data
+         * relative to the function to know if a row should be added/removed/moved.
+         * Accepts a function that takes two parameters, `index` and `item`.
+         * @param {?} fn
+         * @return {?}
+         */
+        set: function (fn) {
+            if (_angular_core.isDevMode() &&
+                fn != null && typeof fn !== 'function' && (console) && (console.warn)) {
+                console.warn("trackBy must be a function, but received " + JSON.stringify(fn) + ".");
+            }
+            this._trackByFn = fn;
+        },
+        enumerable: true,
+        configurable: true
+    });
+    Object.defineProperty(CdkTable.prototype, "dataSource", {
+        /**
+         * Provides a stream containing the latest data array to render. Influenced by the table's
+         * stream of view window (what rows are currently on screen).
+         * @return {?}
+         */
+        get: function () { return this._dataSource; },
+        /**
+         * @param {?} dataSource
+         * @return {?}
+         */
+        set: function (dataSource) {
+            if (this._dataSource !== dataSource) {
+                this._switchDataSource(dataSource);
+            }
+        },
+        enumerable: true,
+        configurable: true
+    });
+    /**
+     * @return {?}
+     */
+    CdkTable.prototype.ngOnInit = function () {
+        // TODO(andrewseguin): Setup a listener for scrolling, emit the calculated view to viewChange
+        this._dataDiffer = this._differs.find([]).create(this._trackByFn);
+    };
+    /**
+     * @return {?}
+     */
+    CdkTable.prototype.ngAfterContentInit = function () {
+        var _this = this;
+        this._cacheColumnDefsByName();
+        this._columnDefs.changes.subscribe(function () { return _this._cacheColumnDefsByName(); });
+        this._renderHeaderRow();
+    };
+    /**
+     * @return {?}
+     */
+    CdkTable.prototype.ngAfterContentChecked = function () {
+        this._renderUpdatedColumns();
+        var /** @type {?} */ defaultRowDefs = this._rowDefs.filter(function (def) { return !def.when; });
+        if (defaultRowDefs.length > 1) {
+            throw getTableMultipleDefaultRowDefsError();
+        }
+        this._defaultRowDef = defaultRowDefs[0];
+        if (this.dataSource && !this._renderChangeSubscription) {
+            this._observeRenderChanges();
+        }
+    };
+    /**
+     * @return {?}
+     */
+    CdkTable.prototype.ngOnDestroy = function () {
+        this._rowPlaceholder.viewContainer.clear();
+        this._headerRowPlaceholder.viewContainer.clear();
+        this._onDestroy.next();
+        this._onDestroy.complete();
+        if (this.dataSource) {
+            this.dataSource.disconnect(this);
+        }
+    };
+    /**
+     * Update the map containing the content's column definitions.
+     * @return {?}
+     */
+    CdkTable.prototype._cacheColumnDefsByName = function () {
+        var _this = this;
+        this._columnDefsByName.clear();
+        this._columnDefs.forEach(function (columnDef) {
+            if (_this._columnDefsByName.has(columnDef.name)) {
+                throw getTableDuplicateColumnNameError(columnDef.name);
+            }
+            _this._columnDefsByName.set(columnDef.name, columnDef);
+        });
+    };
+    /**
+     * Check if the header or rows have changed what columns they want to display. If there is a diff,
+     * then re-render that section.
+     * @return {?}
+     */
+    CdkTable.prototype._renderUpdatedColumns = function () {
+        var _this = this;
+        // Re-render the rows when the row definition columns change.
+        this._rowDefs.forEach(function (def) {
+            if (!!def.getColumnsDiff()) {
+                // Reset the data to an empty array so that renderRowChanges will re-render all new rows.
+                _this._dataDiffer.diff([]);
+                _this._rowPlaceholder.viewContainer.clear();
+                _this._renderRowChanges();
+            }
+        });
+        // Re-render the header row if there is a difference in its columns.
+        if (this._headerDef.getColumnsDiff()) {
+            this._headerRowPlaceholder.viewContainer.clear();
+            this._renderHeaderRow();
+        }
+    };
+    /**
+     * Switch to the provided data source by resetting the data and unsubscribing from the current
+     * render change subscription if one exists. If the data source is null, interpret this by
+     * clearing the row placeholder. Otherwise start listening for new data.
+     * @param {?} dataSource
+     * @return {?}
+     */
+    CdkTable.prototype._switchDataSource = function (dataSource) {
+        this._data = [];
+        if (this.dataSource) {
+            this.dataSource.disconnect(this);
+        }
+        // Stop listening for data from the previous data source.
+        if (this._renderChangeSubscription) {
+            this._renderChangeSubscription.unsubscribe();
+            this._renderChangeSubscription = null;
+        }
+        // Remove the table's rows if there is now no data source
+        if (!dataSource) {
+            this._rowPlaceholder.viewContainer.clear();
+        }
+        this._dataSource = dataSource;
+    };
+    /**
+     * Set up a subscription for the data provided by the data source.
+     * @return {?}
+     */
+    CdkTable.prototype._observeRenderChanges = function () {
+        var _this = this;
+        this._renderChangeSubscription = rxjs_operator_takeUntil.takeUntil.call(this.dataSource.connect(this), this._onDestroy)
+            .subscribe(function (data) {
+            _this._data = data;
+            _this._renderRowChanges();
+        });
+    };
+    /**
+     * Create the embedded view for the header template and place it in the header row view container.
+     * @return {?}
+     */
+    CdkTable.prototype._renderHeaderRow = function () {
+        var /** @type {?} */ cells = this._getHeaderCellTemplatesForRow(this._headerDef);
+        if (!cells.length) {
+            return;
+        }
+        // TODO(andrewseguin): add some code to enforce that exactly
+        //   one CdkCellOutlet was instantiated as a result
+        //   of `createEmbeddedView`.
+        this._headerRowPlaceholder.viewContainer
+            .createEmbeddedView(this._headerDef.template, { cells: cells });
+        cells.forEach(function (cell) {
+            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, {});
+        });
+        this._changeDetectorRef.markForCheck();
+    };
+    /**
+     * Check for changes made in the data and render each change (row added/removed/moved).
+     * @return {?}
+     */
+    CdkTable.prototype._renderRowChanges = function () {
+        var _this = this;
+        var /** @type {?} */ changes = this._dataDiffer.diff(this._data);
+        if (!changes) {
+            return;
+        }
+        var /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;
+        changes.forEachOperation(function (item, adjustedPreviousIndex, currentIndex) {
+            if (item.previousIndex == null) {
+                _this._insertRow(_this._data[currentIndex], currentIndex);
+            }
+            else if (currentIndex == null) {
+                viewContainer.remove(adjustedPreviousIndex);
+            }
+            else {
+                var /** @type {?} */ view = viewContainer.get(adjustedPreviousIndex);
+                viewContainer.move(/** @type {?} */ ((view)), currentIndex);
+            }
+        });
+        this._updateRowContext();
+    };
+    /**
+     * Finds the matching row definition that should be used for this row data. If there is only
+     * one row definition, it is returned. Otherwise, find the row definition that has a when
+     * predicate that returns true with the data. If none return true, return the default row
+     * definition.
+     * @param {?} data
+     * @param {?} i
+     * @return {?}
+     */
+    CdkTable.prototype._getRowDef = function (data, i) {
+        if (this._rowDefs.length == 1) {
+            return this._rowDefs.first;
+        }
+        var /** @type {?} */ rowDef = this._rowDefs.find(function (def) { return def.when && def.when(data, i); }) || this._defaultRowDef;
+        if (!rowDef) {
+            throw getTableMissingMatchingRowDefError();
+        }
+        return rowDef;
+    };
+    /**
+     * Create the embedded view for the data row template and place it in the correct index location
+     * within the data row view container.
+     * @param {?} rowData
+     * @param {?} index
+     * @return {?}
+     */
+    CdkTable.prototype._insertRow = function (rowData, index) {
+        var /** @type {?} */ row = this._getRowDef(rowData, index);
+        // Row context that will be provided to both the created embedded row view and its cells.
+        var /** @type {?} */ context = { $implicit: rowData };
+        // TODO(andrewseguin): add some code to enforce that exactly one
+        //   CdkCellOutlet was instantiated as a result  of `createEmbeddedView`.
+        this._rowPlaceholder.viewContainer.createEmbeddedView(row.template, context, index);
+        // Insert empty cells if there is no data to improve rendering time.
+        var /** @type {?} */ cells = rowData ? this._getCellTemplatesForRow(row) : [];
+        cells.forEach(function (cell) {
+            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, context);
+        });
+        this._changeDetectorRef.markForCheck();
+    };
+    /**
+     * Updates the context for each row to reflect any data changes that may have caused
+     * rows to be added, removed, or moved. The view container contains the same context
+     * that was provided to each of its cells.
+     * @return {?}
+     */
+    CdkTable.prototype._updateRowContext = function () {
+        var /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;
+        for (var /** @type {?} */ index = 0, /** @type {?} */ count = viewContainer.length; index < count; index++) {
+            var /** @type {?} */ viewRef = (viewContainer.get(index));
+            viewRef.context.index = index;
+            viewRef.context.count = count;
+            viewRef.context.first = index === 0;
+            viewRef.context.last = index === count - 1;
+            viewRef.context.even = index % 2 === 0;
+            viewRef.context.odd = !viewRef.context.even;
+        }
+    };
+    /**
+     * Returns the cell template definitions to insert into the header
+     * as defined by its list of columns to display.
+     * @param {?} headerDef
+     * @return {?}
+     */
+    CdkTable.prototype._getHeaderCellTemplatesForRow = function (headerDef) {
+        var _this = this;
+        if (!headerDef.columns) {
+            return [];
+        }
+        return headerDef.columns.map(function (columnId) {
+            var /** @type {?} */ column = _this._columnDefsByName.get(columnId);
+            if (!column) {
+                throw getTableUnknownColumnError(columnId);
+            }
+            return column.headerCell;
+        });
+    };
+    /**
+     * Returns the cell template definitions to insert in the provided row
+     * as defined by its list of columns to display.
+     * @param {?} rowDef
+     * @return {?}
+     */
+    CdkTable.prototype._getCellTemplatesForRow = function (rowDef) {
+        var _this = this;
+        if (!rowDef.columns) {
+            return [];
+        }
+        return rowDef.columns.map(function (columnId) {
+            var /** @type {?} */ column = _this._columnDefsByName.get(columnId);
+            if (!column) {
+                throw getTableUnknownColumnError(columnId);
+            }
+            return column.cell;
+        });
+    };
+    CdkTable.decorators = [
+        { type: _angular_core.Component, args: [{selector: 'cdk-table',
+                    exportAs: 'cdkTable',
+                    template: CDK_TABLE_TEMPLATE,
+                    host: {
+                        'class': 'cdk-table',
+                    },
+                    encapsulation: _angular_core.ViewEncapsulation.None,
+                    preserveWhitespaces: false,
+                    changeDetection: _angular_core.ChangeDetectionStrategy.OnPush,
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkTable.ctorParameters = function () { return [
+        { type: _angular_core.IterableDiffers, },
+        { type: _angular_core.ChangeDetectorRef, },
+        { type: _angular_core.ElementRef, },
+        { type: _angular_core.Renderer2, },
+        { type: undefined, decorators: [{ type: _angular_core.Attribute, args: ['role',] },] },
+    ]; };
+    CdkTable.propDecorators = {
+        'trackBy': [{ type: _angular_core.Input },],
+        'dataSource': [{ type: _angular_core.Input },],
+        '_rowPlaceholder': [{ type: _angular_core.ViewChild, args: [RowPlaceholder,] },],
+        '_headerRowPlaceholder': [{ type: _angular_core.ViewChild, args: [HeaderRowPlaceholder,] },],
+        '_columnDefs': [{ type: _angular_core.ContentChildren, args: [CdkColumnDef,] },],
+        '_headerDef': [{ type: _angular_core.ContentChild, args: [CdkHeaderRowDef,] },],
+        '_rowDefs': [{ type: _angular_core.ContentChildren, args: [CdkRowDef,] },],
+    };
+    return CdkTable;
+}());
+
+var EXPORTED_DECLARATIONS = [
+    CdkTable,
+    CdkRowDef,
+    CdkCellDef,
+    CdkCellOutlet,
+    CdkHeaderCellDef,
+    CdkColumnDef,
+    CdkCell,
+    CdkRow,
+    CdkHeaderCell,
+    CdkHeaderRow,
+    CdkHeaderRowDef,
+    RowPlaceholder,
+    HeaderRowPlaceholder,
+];
+var CdkTableModule = (function () {
+    function CdkTableModule() {
+    }
+    CdkTableModule.decorators = [
+        { type: _angular_core.NgModule, args: [{
+                    imports: [_angular_common.CommonModule],
+                    exports: [EXPORTED_DECLARATIONS],
+                    declarations: [EXPORTED_DECLARATIONS]
+                },] },
+    ];
+    /**
+     * @nocollapse
+     */
+    CdkTableModule.ctorParameters = function () { return []; };
+    return CdkTableModule;
+}());
+
+exports.DataSource = _angular_cdk_collections.DataSource;
+exports.RowPlaceholder = RowPlaceholder;
+exports.HeaderRowPlaceholder = HeaderRowPlaceholder;
+exports.CDK_TABLE_TEMPLATE = CDK_TABLE_TEMPLATE;
+exports.CdkTable = CdkTable;
+exports.CdkCellDef = CdkCellDef;
+exports.CdkHeaderCellDef = CdkHeaderCellDef;
+exports.CdkColumnDef = CdkColumnDef;
+exports.CdkHeaderCell = CdkHeaderCell;
+exports.CdkCell = CdkCell;
+exports.CDK_ROW_TEMPLATE = CDK_ROW_TEMPLATE;
+exports.BaseRowDef = BaseRowDef;
+exports.CdkHeaderRowDef = CdkHeaderRowDef;
+exports.CdkRowDef = CdkRowDef;
+exports.CdkCellOutlet = CdkCellOutlet;
+exports.CdkHeaderRow = CdkHeaderRow;
+exports.CdkRow = CdkRow;
+exports.CdkTableModule = CdkTableModule;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
+//# sourceMappingURL=cdk-table.umd.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/cdk/bundles/cdk-table.umd.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/cdk/bundles/cdk-table.umd.js.map b/node_modules/@angular/cdk/bundles/cdk-table.umd.js.map
new file mode 100644
index 0000000..38a3c86
--- /dev/null
+++ b/node_modules/@angular/cdk/bundles/cdk-table.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"cdk-table.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","cdk/table.es5.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Ref
 lect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n        s = arguments[i];\r\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n    }\r\n    return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        fo
 r (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n            t[p[i]] = s[p[i]];\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"fu
 nction\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this;
  }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [0, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] =
 == 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof 
 Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    retu
 rn i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? {
  value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator];\r\n    return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}","/**\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 { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, Directive, ElementRef, Input, IterableDiffers, NgModule, Renderer2, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation, isDevMode } from '@angular/core';\nimport { __extends } from 'tslib';\nimport * as tslib_1 from 'tslib';\nimport { takeUntil } from 'rxjs/operator/takeUntil';\nimport { BehaviorSubject } f
 rom 'rxjs/BehaviorSubject';\nimport { Subject } from 'rxjs/Subject';\nimport { CommonModule } from '@angular/common';\nimport { DataSource } from '@angular/cdk/collections';\n\n/**\n * The row template that can be used by the mat-table. Should not be used outside of the\n * material library.\n */\nvar CDK_ROW_TEMPLATE = \"<ng-container cdkCellOutlet></ng-container>\";\n/**\n * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs\n * for changes and notifying the table.\n * @abstract\n */\nvar BaseRowDef = (function () {\n    /**\n     * @param {?} template\n     * @param {?} _differs\n     */\n    function BaseRowDef(template, _differs) {\n        this.template = template;\n        this._differs = _differs;\n    }\n    /**\n     * @param {?} changes\n     * @return {?}\n     */\n    BaseRowDef.prototype.ngOnChanges = function (changes) {\n        // Create a new columns differ if one does not yet exist. Initialize it based on initial value\n   
      // of the columns property or an empty array if none is provided.\n        var /** @type {?} */ columns = changes['columns'].currentValue || [];\n        if (!this._columnsDiffer) {\n            this._columnsDiffer = this._differs.find(columns).create();\n            this._columnsDiffer.diff(columns);\n        }\n    };\n    /**\n     * Returns the difference between the current columns and the columns from the last diff, or null\n     * if there is no difference.\n     * @return {?}\n     */\n    BaseRowDef.prototype.getColumnsDiff = function () {\n        return this._columnsDiffer.diff(this.columns);\n    };\n    return BaseRowDef;\n}());\n/**\n * Header row definition for the CDK table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nvar CdkHeaderRowDef = (function (_super) {\n    __extends(CdkHeaderRowDef, _super);\n    /**\n     * @param {?} template\n     * @param {?} _differs\n     */\n    function CdkHeaderRowDef
 (template, _differs) {\n        return _super.call(this, template, _differs) || this;\n    }\n    CdkHeaderRowDef.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkHeaderRowDef]',\n                    inputs: ['columns: cdkHeaderRowDef'],\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkHeaderRowDef.ctorParameters = function () { return [\n        { type: TemplateRef, },\n        { type: IterableDiffers, },\n    ]; };\n    return CdkHeaderRowDef;\n}(BaseRowDef));\n/**\n * Data row definition for the CDK table.\n * Captures the header row's template and other row properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\nvar CdkRowDef = (function (_super) {\n    __extends(CdkRowDef, _super);\n    /**\n     * @param {?} template\n     * @param {?} _differs\n     */\n    function CdkRowDef(template, _differs) {\n        return _super.call(this, template, _differ
 s) || this;\n    }\n    CdkRowDef.decorators = [\n        { type: Directive, args: [{\n                    selector: '[cdkRowDef]',\n                    inputs: ['columns: cdkRowDefColumns', 'when: cdkRowDefWhen'],\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkRowDef.ctorParameters = function () { return [\n        { type: TemplateRef, },\n        { type: IterableDiffers, },\n    ]; };\n    return CdkRowDef;\n}(BaseRowDef));\n/**\n * Outlet for rendering cells inside of a row or header row.\n * \\@docs-private\n */\nvar CdkCellOutlet = (function () {\n    /**\n     * @param {?} _viewContainer\n     */\n    function CdkCellOutlet(_viewContainer) {\n        this._viewContainer = _viewContainer;\n        CdkCellOutlet.mostRecentCellOutlet = this;\n    }\n    CdkCellOutlet.decorators = [\n        { type: Directive, args: [{ selector: '[cdkCellOutlet]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkCellOutlet.ctorParameters = function () { re
 turn [\n        { type: ViewContainerRef, },\n    ]; };\n    return CdkCellOutlet;\n}());\n/**\n * Header template container that contains the cell outlet. Adds the right class and role.\n */\nvar CdkHeaderRow = (function () {\n    function CdkHeaderRow() {\n    }\n    CdkHeaderRow.decorators = [\n        { type: Component, args: [{selector: 'cdk-header-row',\n                    template: CDK_ROW_TEMPLATE,\n                    host: {\n                        'class': 'cdk-header-row',\n                        'role': 'row',\n                    },\n                    changeDetection: ChangeDetectionStrategy.OnPush,\n                    encapsulation: ViewEncapsulation.None,\n                    preserveWhitespaces: false,\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkHeaderRow.ctorParameters = function () { return []; };\n    return CdkHeaderRow;\n}());\n/**\n * Data row template container that contains the cell outlet. Adds the right class and rol
 e.\n */\nvar CdkRow = (function () {\n    function CdkRow() {\n    }\n    CdkRow.decorators = [\n        { type: Component, args: [{selector: 'cdk-row',\n                    template: CDK_ROW_TEMPLATE,\n                    host: {\n                        'class': 'cdk-row',\n                        'role': 'row',\n                    },\n                    changeDetection: ChangeDetectionStrategy.OnPush,\n                    encapsulation: ViewEncapsulation.None,\n                    preserveWhitespaces: false,\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkRow.ctorParameters = function () { return []; };\n    return CdkRow;\n}());\n\n/**\n * Cell definition for a CDK table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nvar CdkCellDef = (function () {\n    /**\n     * @param {?} template\n     */\n    function CdkCellDef(template) {\n        this.template = template;\n    }\n    CdkCellDef.decorators
  = [\n        { type: Directive, args: [{ selector: '[cdkCellDef]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkCellDef.ctorParameters = function () { return [\n        { type: TemplateRef, },\n    ]; };\n    return CdkCellDef;\n}());\n/**\n * Header cell definition for a CDK table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nvar CdkHeaderCellDef = (function () {\n    /**\n     * @param {?} template\n     */\n    function CdkHeaderCellDef(template) {\n        this.template = template;\n    }\n    CdkHeaderCellDef.decorators = [\n        { type: Directive, args: [{ selector: '[cdkHeaderCellDef]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkHeaderCellDef.ctorParameters = function () { return [\n        { type: TemplateRef, },\n    ]; };\n    return CdkHeaderCellDef;\n}());\n/**\n * Column definition for the CDK table.\n * Defines a set of cells available for a table column.\n */\nvar CdkColumnDef = 
 (function () {\n    function CdkColumnDef() {\n    }\n    Object.defineProperty(CdkColumnDef.prototype, \"name\", {\n        /**\n         * Unique name for this column.\n         * @return {?}\n         */\n        get: function () { return this._name; },\n        /**\n         * @param {?} name\n         * @return {?}\n         */\n        set: function (name) {\n            this._name = name;\n            this.cssClassFriendlyName = name.replace(/[^a-z0-9_-]/ig, '-');\n        },\n        enumerable: true,\n        configurable: true\n    });\n    CdkColumnDef.decorators = [\n        { type: Directive, args: [{ selector: '[cdkColumnDef]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkColumnDef.ctorParameters = function () { return []; };\n    CdkColumnDef.propDecorators = {\n        'name': [{ type: Input, args: ['cdkColumnDef',] },],\n        'cell': [{ type: ContentChild, args: [CdkCellDef,] },],\n        'headerCell': [{ type: ContentChild, args: [CdkHeaderCellDe
 f,] },],\n    };\n    return CdkColumnDef;\n}());\n/**\n * Header cell template container that adds the right classes and role.\n */\nvar CdkHeaderCell = (function () {\n    /**\n     * @param {?} columnDef\n     * @param {?} elementRef\n     * @param {?} renderer\n     */\n    function CdkHeaderCell(columnDef, elementRef, renderer) {\n        renderer.addClass(elementRef.nativeElement, \"cdk-column-\" + columnDef.cssClassFriendlyName);\n    }\n    CdkHeaderCell.decorators = [\n        { type: Directive, args: [{\n                    selector: 'cdk-header-cell',\n                    host: {\n                        'class': 'cdk-header-cell',\n                        'role': 'columnheader',\n                    },\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkHeaderCell.ctorParameters = function () { return [\n        { type: CdkColumnDef, },\n        { type: ElementRef, },\n        { type: Renderer2, },\n    ]; };\n    return CdkHeaderCell;\n}());\n/
 **\n * Cell template container that adds the right classes and role.\n */\nvar CdkCell = (function () {\n    /**\n     * @param {?} columnDef\n     * @param {?} elementRef\n     * @param {?} renderer\n     */\n    function CdkCell(columnDef, elementRef, renderer) {\n        renderer.addClass(elementRef.nativeElement, \"cdk-column-\" + columnDef.cssClassFriendlyName);\n    }\n    CdkCell.decorators = [\n        { type: Directive, args: [{\n                    selector: 'cdk-cell',\n                    host: {\n                        'class': 'cdk-cell',\n                        'role': 'gridcell',\n                    },\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkCell.ctorParameters = function () { return [\n        { type: CdkColumnDef, },\n        { type: ElementRef, },\n        { type: Renderer2, },\n    ]; };\n    return CdkCell;\n}());\n\n/**\n * Returns an error to be thrown when attempting to find an unexisting column.\n * \\@docs-private\n 
 * @param {?} id Id whose lookup failed.\n * @return {?}\n */\nfunction getTableUnknownColumnError(id) {\n    return Error(\"cdk-table: Could not find column with id \\\"\" + id + \"\\\".\");\n}\n/**\n * Returns an error to be thrown when two column definitions have the same name.\n * \\@docs-private\n * @param {?} name\n * @return {?}\n */\nfunction getTableDuplicateColumnNameError(name) {\n    return Error(\"cdk-table: Duplicate column definition name provided: \\\"\" + name + \"\\\".\");\n}\n/**\n * Returns an error to be thrown when there are multiple rows that are missing a when function.\n * \\@docs-private\n * @return {?}\n */\nfunction getTableMultipleDefaultRowDefsError() {\n    return Error(\"cdk-table: There can only be one default row without a when predicate function.\");\n}\n/**\n * Returns an error to be thrown when there are no matching row defs for a particular set of data.\n * \\@docs-private\n * @return {?}\n */\nfunction getTableMissingMatchingRowDefError() {\n   
  return Error(\"cdk-table: Could not find a matching row definition for the provided row data.\");\n}\n\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * \\@docs-private\n */\nvar RowPlaceholder = (function () {\n    /**\n     * @param {?} viewContainer\n     */\n    function RowPlaceholder(viewContainer) {\n        this.viewContainer = viewContainer;\n    }\n    RowPlaceholder.decorators = [\n        { type: Directive, args: [{ selector: '[rowPlaceholder]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    RowPlaceholder.ctorParameters = function () { return [\n        { type: ViewContainerRef, },\n    ]; };\n    return RowPlaceholder;\n}());\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the header.\n * \\@docs-private\n */\nvar HeaderRowPlaceholder = (function () {\n    /**\n     * @param {?} viewContainer\n     */\n    function HeaderRowPlaceholder(viewContainer) {\n   
      this.viewContainer = viewContainer;\n    }\n    HeaderRowPlaceholder.decorators = [\n        { type: Directive, args: [{ selector: '[headerRowPlaceholder]' },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    HeaderRowPlaceholder.ctorParameters = function () { return [\n        { type: ViewContainerRef, },\n    ]; };\n    return HeaderRowPlaceholder;\n}());\n/**\n * The table template that can be used by the mat-table. Should not be used outside of the\n * material library.\n */\nvar CDK_TABLE_TEMPLATE = \"\\n  <ng-container headerRowPlaceholder></ng-container>\\n  <ng-container rowPlaceholder></ng-container>\";\n/**\n * A data table that connects with a data source to retrieve data of type `T` and renders\n * a header row and data rows. Updates the rows when new data is provided by the data source.\n */\nvar CdkTable = (function () {\n    /**\n     * @param {?} _differs\n     * @param {?} _changeDetectorRef\n     * @param {?} elementRef\n     * @param {?} renderer\n     *
  @param {?} role\n     */\n    function CdkTable(_differs, _changeDetectorRef, elementRef, renderer, role) {\n        this._differs = _differs;\n        this._changeDetectorRef = _changeDetectorRef;\n        /**\n         * Subject that emits when the component has been destroyed.\n         */\n        this._onDestroy = new Subject();\n        /**\n         * Latest data provided by the data source through the connect interface.\n         */\n        this._data = [];\n        /**\n         * Map of all the user's defined columns (header and data cell template) identified by name.\n         */\n        this._columnDefsByName = new Map();\n        /**\n         * Stream containing the latest information on what rows are being displayed on screen.\n         * Can be used by the data source to as a heuristic of what data should be provided.\n         */\n        this.viewChange = new BehaviorSubject({ start: 0, end: Number.MAX_VALUE });\n        if (!role) {\n            renderer.setAtt
 ribute(elementRef.nativeElement, 'role', 'grid');\n        }\n    }\n    Object.defineProperty(CdkTable.prototype, \"trackBy\", {\n        /**\n         * @return {?}\n         */\n        get: function () { return this._trackByFn; },\n        /**\n         * Tracking function that will be used to check the differences in data changes. Used similarly\n         * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data\n         * relative to the function to know if a row should be added/removed/moved.\n         * Accepts a function that takes two parameters, `index` and `item`.\n         * @param {?} fn\n         * @return {?}\n         */\n        set: function (fn) {\n            if (isDevMode() &&\n                fn != null && typeof fn !== 'function' && (console) && (console.warn)) {\n                console.warn(\"trackBy must be a function, but received \" + JSON.stringify(fn) + \".\");\n            }\n            this._trackByFn = fn;\n  
       },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(CdkTable.prototype, \"dataSource\", {\n        /**\n         * Provides a stream containing the latest data array to render. Influenced by the table's\n         * stream of view window (what rows are currently on screen).\n         * @return {?}\n         */\n        get: function () { return this._dataSource; },\n        /**\n         * @param {?} dataSource\n         * @return {?}\n         */\n        set: function (dataSource) {\n            if (this._dataSource !== dataSource) {\n                this._switchDataSource(dataSource);\n            }\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * @return {?}\n     */\n    CdkTable.prototype.ngOnInit = function () {\n        // TODO(andrewseguin): Setup a listener for scrolling, emit the calculated view to viewChange\n        this._dataDiffer = this._differs.find([]).create(this._trackByFn)
 ;\n    };\n    /**\n     * @return {?}\n     */\n    CdkTable.prototype.ngAfterContentInit = function () {\n        var _this = this;\n        this._cacheColumnDefsByName();\n        this._columnDefs.changes.subscribe(function () { return _this._cacheColumnDefsByName(); });\n        this._renderHeaderRow();\n    };\n    /**\n     * @return {?}\n     */\n    CdkTable.prototype.ngAfterContentChecked = function () {\n        this._renderUpdatedColumns();\n        var /** @type {?} */ defaultRowDefs = this._rowDefs.filter(function (def) { return !def.when; });\n        if (defaultRowDefs.length > 1) {\n            throw getTableMultipleDefaultRowDefsError();\n        }\n        this._defaultRowDef = defaultRowDefs[0];\n        if (this.dataSource && !this._renderChangeSubscription) {\n            this._observeRenderChanges();\n        }\n    };\n    /**\n     * @return {?}\n     */\n    CdkTable.prototype.ngOnDestroy = function () {\n        this._rowPlaceholder.viewContainer.clear();\n
         this._headerRowPlaceholder.viewContainer.clear();\n        this._onDestroy.next();\n        this._onDestroy.complete();\n        if (this.dataSource) {\n            this.dataSource.disconnect(this);\n        }\n    };\n    /**\n     * Update the map containing the content's column definitions.\n     * @return {?}\n     */\n    CdkTable.prototype._cacheColumnDefsByName = function () {\n        var _this = this;\n        this._columnDefsByName.clear();\n        this._columnDefs.forEach(function (columnDef) {\n            if (_this._columnDefsByName.has(columnDef.name)) {\n                throw getTableDuplicateColumnNameError(columnDef.name);\n            }\n            _this._columnDefsByName.set(columnDef.name, columnDef);\n        });\n    };\n    /**\n     * Check if the header or rows have changed what columns they want to display. If there is a diff,\n     * then re-render that section.\n     * @return {?}\n     */\n    CdkTable.prototype._renderUpdatedColumns = function
  () {\n        var _this = this;\n        // Re-render the rows when the row definition columns change.\n        this._rowDefs.forEach(function (def) {\n            if (!!def.getColumnsDiff()) {\n                // Reset the data to an empty array so that renderRowChanges will re-render all new rows.\n                _this._dataDiffer.diff([]);\n                _this._rowPlaceholder.viewContainer.clear();\n                _this._renderRowChanges();\n            }\n        });\n        // Re-render the header row if there is a difference in its columns.\n        if (this._headerDef.getColumnsDiff()) {\n            this._headerRowPlaceholder.viewContainer.clear();\n            this._renderHeaderRow();\n        }\n    };\n    /**\n     * Switch to the provided data source by resetting the data and unsubscribing from the current\n     * render change subscription if one exists. If the data source is null, interpret this by\n     * clearing the row placeholder. Otherwise start listening 
 for new data.\n     * @param {?} dataSource\n     * @return {?}\n     */\n    CdkTable.prototype._switchDataSource = function (dataSource) {\n        this._data = [];\n        if (this.dataSource) {\n            this.dataSource.disconnect(this);\n        }\n        // Stop listening for data from the previous data source.\n        if (this._renderChangeSubscription) {\n            this._renderChangeSubscription.unsubscribe();\n            this._renderChangeSubscription = null;\n        }\n        // Remove the table's rows if there is now no data source\n        if (!dataSource) {\n            this._rowPlaceholder.viewContainer.clear();\n        }\n        this._dataSource = dataSource;\n    };\n    /**\n     * Set up a subscription for the data provided by the data source.\n     * @return {?}\n     */\n    CdkTable.prototype._observeRenderChanges = function () {\n        var _this = this;\n        this._renderChangeSubscription = takeUntil.call(this.dataSource.connect(this), this._
 onDestroy)\n            .subscribe(function (data) {\n            _this._data = data;\n            _this._renderRowChanges();\n        });\n    };\n    /**\n     * Create the embedded view for the header template and place it in the header row view container.\n     * @return {?}\n     */\n    CdkTable.prototype._renderHeaderRow = function () {\n        var /** @type {?} */ cells = this._getHeaderCellTemplatesForRow(this._headerDef);\n        if (!cells.length) {\n            return;\n        }\n        // TODO(andrewseguin): add some code to enforce that exactly\n        //   one CdkCellOutlet was instantiated as a result\n        //   of `createEmbeddedView`.\n        this._headerRowPlaceholder.viewContainer\n            .createEmbeddedView(this._headerDef.template, { cells: cells });\n        cells.forEach(function (cell) {\n            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, {});\n        });\n        this._changeDetectorRef.markForChec
 k();\n    };\n    /**\n     * Check for changes made in the data and render each change (row added/removed/moved).\n     * @return {?}\n     */\n    CdkTable.prototype._renderRowChanges = function () {\n        var _this = this;\n        var /** @type {?} */ changes = this._dataDiffer.diff(this._data);\n        if (!changes) {\n            return;\n        }\n        var /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;\n        changes.forEachOperation(function (item, adjustedPreviousIndex, currentIndex) {\n            if (item.previousIndex == null) {\n                _this._insertRow(_this._data[currentIndex], currentIndex);\n            }\n            else if (currentIndex == null) {\n                viewContainer.remove(adjustedPreviousIndex);\n            }\n            else {\n                var /** @type {?} */ view = viewContainer.get(adjustedPreviousIndex);\n                viewContainer.move(/** @type {?} */ ((view)), currentIndex);\n            }\n   
      });\n        this._updateRowContext();\n    };\n    /**\n     * Finds the matching row definition that should be used for this row data. If there is only\n     * one row definition, it is returned. Otherwise, find the row definition that has a when\n     * predicate that returns true with the data. If none return true, return the default row\n     * definition.\n     * @param {?} data\n     * @param {?} i\n     * @return {?}\n     */\n    CdkTable.prototype._getRowDef = function (data, i) {\n        if (this._rowDefs.length == 1) {\n            return this._rowDefs.first;\n        }\n        var /** @type {?} */ rowDef = this._rowDefs.find(function (def) { return def.when && def.when(data, i); }) || this._defaultRowDef;\n        if (!rowDef) {\n            throw getTableMissingMatchingRowDefError();\n        }\n        return rowDef;\n    };\n    /**\n     * Create the embedded view for the data row template and place it in the correct index location\n     * within the data row
  view container.\n     * @param {?} rowData\n     * @param {?} index\n     * @return {?}\n     */\n    CdkTable.prototype._insertRow = function (rowData, index) {\n        var /** @type {?} */ row = this._getRowDef(rowData, index);\n        // Row context that will be provided to both the created embedded row view and its cells.\n        var /** @type {?} */ context = { $implicit: rowData };\n        // TODO(andrewseguin): add some code to enforce that exactly one\n        //   CdkCellOutlet was instantiated as a result  of `createEmbeddedView`.\n        this._rowPlaceholder.viewContainer.createEmbeddedView(row.template, context, index);\n        // Insert empty cells if there is no data to improve rendering time.\n        var /** @type {?} */ cells = rowData ? this._getCellTemplatesForRow(row) : [];\n        cells.forEach(function (cell) {\n            CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, context);\n        });\n        this._changeDet
 ectorRef.markForCheck();\n    };\n    /**\n     * Updates the context for each row to reflect any data changes that may have caused\n     * rows to be added, removed, or moved. The view container contains the same context\n     * that was provided to each of its cells.\n     * @return {?}\n     */\n    CdkTable.prototype._updateRowContext = function () {\n        var /** @type {?} */ viewContainer = this._rowPlaceholder.viewContainer;\n        for (var /** @type {?} */ index = 0, /** @type {?} */ count = viewContainer.length; index < count; index++) {\n            var /** @type {?} */ viewRef = (viewContainer.get(index));\n            viewRef.context.index = index;\n            viewRef.context.count = count;\n            viewRef.context.first = index === 0;\n            viewRef.context.last = index === count - 1;\n            viewRef.context.even = index % 2 === 0;\n            viewRef.context.odd = !viewRef.context.even;\n        }\n    };\n    /**\n     * Returns the cell template
  definitions to insert into the header\n     * as defined by its list of columns to display.\n     * @param {?} headerDef\n     * @return {?}\n     */\n    CdkTable.prototype._getHeaderCellTemplatesForRow = function (headerDef) {\n        var _this = this;\n        if (!headerDef.columns) {\n            return [];\n        }\n        return headerDef.columns.map(function (columnId) {\n            var /** @type {?} */ column = _this._columnDefsByName.get(columnId);\n            if (!column) {\n                throw getTableUnknownColumnError(columnId);\n            }\n            return column.headerCell;\n        });\n    };\n    /**\n     * Returns the cell template definitions to insert in the provided row\n     * as defined by its list of columns to display.\n     * @param {?} rowDef\n     * @return {?}\n     */\n    CdkTable.prototype._getCellTemplatesForRow = function (rowDef) {\n        var _this = this;\n        if (!rowDef.columns) {\n            return [];\n        }\n     
    return rowDef.columns.map(function (columnId) {\n            var /** @type {?} */ column = _this._columnDefsByName.get(columnId);\n            if (!column) {\n                throw getTableUnknownColumnError(columnId);\n            }\n            return column.cell;\n        });\n    };\n    CdkTable.decorators = [\n        { type: Component, args: [{selector: 'cdk-table',\n                    exportAs: 'cdkTable',\n                    template: CDK_TABLE_TEMPLATE,\n                    host: {\n                        'class': 'cdk-table',\n                    },\n                    encapsulation: ViewEncapsulation.None,\n                    preserveWhitespaces: false,\n                    changeDetection: ChangeDetectionStrategy.OnPush,\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkTable.ctorParameters = function () { return [\n        { type: IterableDiffers, },\n        { type: ChangeDetectorRef, },\n        { type: ElementRef, },\n        { ty
 pe: Renderer2, },\n        { type: undefined, decorators: [{ type: Attribute, args: ['role',] },] },\n    ]; };\n    CdkTable.propDecorators = {\n        'trackBy': [{ type: Input },],\n        'dataSource': [{ type: Input },],\n        '_rowPlaceholder': [{ type: ViewChild, args: [RowPlaceholder,] },],\n        '_headerRowPlaceholder': [{ type: ViewChild, args: [HeaderRowPlaceholder,] },],\n        '_columnDefs': [{ type: ContentChildren, args: [CdkColumnDef,] },],\n        '_headerDef': [{ type: ContentChild, args: [CdkHeaderRowDef,] },],\n        '_rowDefs': [{ type: ContentChildren, args: [CdkRowDef,] },],\n    };\n    return CdkTable;\n}());\n\nvar EXPORTED_DECLARATIONS = [\n    CdkTable,\n    CdkRowDef,\n    CdkCellDef,\n    CdkCellOutlet,\n    CdkHeaderCellDef,\n    CdkColumnDef,\n    CdkCell,\n    CdkRow,\n    CdkHeaderCell,\n    CdkHeaderRow,\n    CdkHeaderRowDef,\n    RowPlaceholder,\n    HeaderRowPlaceholder,\n];\nvar CdkTableModule = (function () {\n    function CdkTable
 Module() {\n    }\n    CdkTableModule.decorators = [\n        { type: NgModule, args: [{\n                    imports: [CommonModule],\n                    exports: [EXPORTED_DECLARATIONS],\n                    declarations: [EXPORTED_DECLARATIONS]\n                },] },\n    ];\n    /**\n     * @nocollapse\n     */\n    CdkTableModule.ctorParameters = function () { return []; };\n    return CdkTableModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DataSource, RowPlaceholder, HeaderRowPlaceholder, CDK_TABLE_TEMPLATE, CdkTable, CdkCellDef, CdkHeaderCellDef, CdkColumnDef, CdkHeaderCell, CdkCell, CDK_ROW_TEMPLATE, BaseRowDef, CdkHeaderRowDef, CdkRowDef, CdkCellOutlet, CdkHeaderRow, CdkRow, CdkTableModule };\n//# sourceMappingURL=table.es5.js.map\n"],"names":["Directive","TemplateRef","IterableDiffers","ViewContainerRef","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","ContentChild","ElementRef","Renderer2","Subject","BehaviorSubject","is
 DevMode","takeUntil","ChangeDetectorRef","Attribute","ViewChild","ContentChildren","NgModule","CommonModule"],"mappings":"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"}
\ No newline at end of file