@angular/cdk 5.2.4 → 5.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/cdk-a11y.umd.js +0 -8
- package/bundles/cdk-a11y.umd.js.map +1 -1
- package/bundles/cdk-collections.umd.js +0 -3
- package/bundles/cdk-collections.umd.js.map +1 -1
- package/bundles/cdk-portal.umd.js +0 -4
- package/bundles/cdk-portal.umd.js.map +1 -1
- package/bundles/cdk-table.umd.js +0 -4
- package/bundles/cdk-table.umd.js.map +1 -1
- package/bundles/cdk.umd.js +1 -1
- package/bundles/cdk.umd.js.map +1 -1
- package/bundles/cdk.umd.min.js +1 -1
- package/bundles/cdk.umd.min.js.map +1 -1
- package/esm2015/a11y.js +0 -8
- package/esm2015/a11y.js.map +1 -1
- package/esm2015/cdk.js +1 -1
- package/esm2015/cdk.js.map +1 -1
- package/esm2015/collections.js +0 -3
- package/esm2015/collections.js.map +1 -1
- package/esm2015/portal.js +0 -4
- package/esm2015/portal.js.map +1 -1
- package/esm2015/table.js +0 -3
- package/esm2015/table.js.map +1 -1
- package/esm5/a11y.es5.js +0 -8
- package/esm5/a11y.es5.js.map +1 -1
- package/esm5/cdk.es5.js +1 -1
- package/esm5/cdk.es5.js.map +1 -1
- package/esm5/collections.es5.js +0 -3
- package/esm5/collections.es5.js.map +1 -1
- package/esm5/portal.es5.js +0 -4
- package/esm5/portal.es5.js.map +1 -1
- package/esm5/table.es5.js +0 -4
- package/esm5/table.es5.js.map +1 -1
- package/package.json +3 -3
- package/typings/esm5/index.metadata.json +1 -1
- package/typings/index.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.es5.js","sources":["../../../src/cdk/collections/index.ts","../../../src/cdk/collections/public-api.ts","../../../src/cdk/collections/unique-selection-dispatcher.ts","../../../src/cdk/collections/selection.ts","../../../src/cdk/collections/data-source.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY as ɵa} from './unique-selection-dispatcher';","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './collection-viewer';\nexport * from './data-source';\nexport * from './selection';\nexport {\n UniqueSelectionDispatcher,\n UniqueSelectionDispatcherListener,\n UNIQUE_SELECTION_DISPATCHER_PROVIDER,\n} from './unique-selection-dispatcher';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, Optional, SkipSelf, OnDestroy} from '@angular/core';\n\n\n// Users of the Dispatcher never need to see this type, but TypeScript requires it to be exported.\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\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 */\n@Injectable()\nexport class UniqueSelectionDispatcher implements OnDestroy {\n private _listeners: UniqueSelectionDispatcherListener[] = [];\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 */\n notify(id: string, name: string) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener: UniqueSelectionDispatcherListener): () => void {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered: UniqueSelectionDispatcherListener) => {\n return listener !== registered;\n });\n };\n }\n\n ngOnDestroy() {\n this._listeners = [];\n }\n}\n\n/** @docs-private */\nexport function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(\n parentDispatcher: UniqueSelectionDispatcher) {\n return parentDispatcher || new UniqueSelectionDispatcher();\n}\n\n/** @docs-private */\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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Subject} from 'rxjs/Subject';\n\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nexport class SelectionModel<T> {\n /** Currently-selected values. */\n private _selection: Set<T> = new Set();\n\n /** Keeps track of the deselected options that haven't been emitted by the change event. */\n private _deselectedToEmit: T[] = [];\n\n /** Keeps track of the selected options that haven't been emitted by the change event. */\n private _selectedToEmit: T[] = [];\n\n /** Cache for the array value of the selected items. */\n private _selected: T[] | null;\n\n /** Selected values. */\n get selected(): T[] {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n\n return this._selected;\n }\n\n /** Event emitted when the value has changed. */\n onChange: Subject<SelectionChange<T>> | null = this._emitChanges ? new Subject() : null;\n\n constructor(\n private _multiple = false,\n initiallySelectedValues?: T[],\n private _emitChanges = true) {\n\n if (initiallySelectedValues && initiallySelectedValues.length) {\n if (_multiple) {\n initiallySelectedValues.forEach(value => this._markSelected(value));\n } else {\n this._markSelected(initiallySelectedValues[0]);\n }\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 /**\n * Selects a value or an array of values.\n */\n select(...values: T[]): void {\n this._verifyValueAssignment(values);\n values.forEach(value => this._markSelected(value));\n this._emitChangeEvent();\n }\n\n /**\n * Deselects a value or an array of values.\n */\n deselect(...values: T[]): void {\n this._verifyValueAssignment(values);\n values.forEach(value => this._unmarkSelected(value));\n this._emitChangeEvent();\n }\n\n /**\n * Toggles a value between selected and deselected.\n */\n toggle(value: T): void {\n this.isSelected(value) ? this.deselect(value) : this.select(value);\n }\n\n /**\n * Clears all of the selected values.\n */\n clear(): void {\n this._unmarkAll();\n this._emitChangeEvent();\n }\n\n /**\n * Determines whether a value is selected.\n */\n isSelected(value: T): boolean {\n return this._selection.has(value);\n }\n\n /**\n * Determines whether the model does not have a value.\n */\n isEmpty(): boolean {\n return this._selection.size === 0;\n }\n\n /**\n * Determines whether the model has a value.\n */\n hasValue(): boolean {\n return !this.isEmpty();\n }\n\n /**\n * Sorts the selected values based on a predicate function.\n */\n sort(predicate?: (a: T, b: T) => number): void {\n if (this._multiple && 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 private _emitChangeEvent() {\n // Clear the selected values so they can be re-cached.\n this._selected = null;\n\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n if (this.onChange) {\n this.onChange.next({\n source: this,\n added: this._selectedToEmit,\n removed: this._deselectedToEmit\n });\n }\n\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n }\n\n /** Selects a value. */\n private _markSelected(value: T) {\n if (!this.isSelected(value)) {\n if (!this._multiple) {\n this._unmarkAll();\n }\n\n this._selection.add(value);\n\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n }\n\n /** Deselects a value. */\n private _unmarkSelected(value: T) {\n if (this.isSelected(value)) {\n this._selection.delete(value);\n\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n }\n\n /** Clears out the selected values. */\n private _unmarkAll() {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\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 */\n private _verifyValueAssignment(values: T[]) {\n if (values.length > 1 && !this._multiple) {\n throw getMultipleValuesInSingleSelectionError();\n }\n }\n}\n\n/**\n * Event emitted when the value of a MatSelectionModel has changed.\n * @docs-private\n */\nexport interface SelectionChange<T> {\n /** Model that dispatched the event. */\n source: SelectionModel<T>;\n /** Options that were added to the model. */\n added: T[];\n /** Options that were removed from the model. */\n removed: T[];\n}\n\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n */\nexport function getMultipleValuesInSingleSelectionError() {\n return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Observable} from 'rxjs/Observable';\nimport {CollectionViewer} from './collection-viewer';\n\nexport abstract class DataSource<T> {\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 * @param collectionViewer The component that exposes a view over the data provided by this\n * data source.\n * @returns Observable that emits a new value when the data changes.\n */\n abstract connect(collectionViewer: CollectionViewer): Observable<T[]>;\n\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 * @param collectionViewer The component that exposes a view over the data provided by this\n * data source.\n */\n abstract disconnect(collectionViewer: CollectionViewer): void;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AIWA,IAAA,UAAA,kBAAA,YAAA;;;IAXA,OAAA,UAAA,CAAA;CA8BA,EAAA,CAAC,CAAA;;;;;;;ADtBD;;;;AAKA,IAAA,cAAA,kBAAA,YAAA;IAyBE,SAAF,cAAA,CACY,SADZ,EAEI,uBAA6B,EACrB,YAHZ,EAAA;;;QAAE,IAAF,KAAA,GAAA,IAAA,CAeG;QAdS,IAAZ,CAAA,SAAqB,GAAT,SAAS,CAArB;QAEY,IAAZ,CAAA,YAAwB,GAAZ,YAAY,CAAxB;;;;QA1BA,IAAA,CAAA,UAAA,GAA+B,IAAI,GAAG,EAAE,CAAxC;;;;QAGA,IAAA,CAAA,iBAAA,GAAmC,EAAE,CAArC;;;;QAGA,IAAA,CAAA,eAAA,GAAiC,EAAE,CAAnC;;;;QAeA,IAAA,CAAA,QAAA,GAAiD,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,EAAE,GAAG,IAAI,CAAzF;QAOI,IAAI,uBAAuB,IAAI,uBAAuB,CAAC,MAAM,EAAE;YAC7D,IAAI,SAAS,EAAE;gBACb,uBAAuB,CAAC,OAAO,CAAC,UAAA,KAAK,EAA7C,EAAiD,OAAA,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAA1E,EAA0E,CAAC,CAAC;aACrE;iBAAM;gBACL,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD;;YAGD,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC;KACF;IA1BD,MAAF,CAAA,cAAA,CAAM,cAAN,CAAA,SAAA,EAAA,UAAc,EAAd;;;;;;QAAE,YAAF;YACI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;aACvD;YAED,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;;;KAAH,CAAA,CAAG;;;;;;;;;IAyBD,cAAF,CAAA,SAAA,CAAA,MAAQ;;;;;IAAN,YAAF;QAAE,IAAF,KAAA,GAAA,IAAA,CAIG;QAJM,IAAT,MAAA,GAAA,EAAA,CAAuB;QAAvB,KAAS,IAAT,EAAA,GAAA,CAAuB,EAAd,EAAT,GAAA,SAAA,CAAA,MAAuB,EAAd,EAAT,EAAuB,EAAvB;YAAS,MAAT,CAAA,EAAA,CAAA,GAAA,SAAA,CAAA,EAAA,CAAA,CAAuB;;QACnB,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,UAAA,KAAK,EAAxB,EAA4B,OAAA,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAArD,EAAqD,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB,CAAH;;;;;;;;;IAKE,cAAF,CAAA,SAAA,CAAA,QAAU;;;;;IAAR,YAAF;QAAE,IAAF,KAAA,GAAA,IAAA,CAIG;QAJQ,IAAX,MAAA,GAAA,EAAA,CAAyB;QAAzB,KAAW,IAAX,EAAA,GAAA,CAAyB,EAAd,EAAX,GAAA,SAAA,CAAA,MAAyB,EAAd,EAAX,EAAyB,EAAzB;YAAW,MAAX,CAAA,EAAA,CAAA,GAAA,SAAA,CAAA,EAAA,CAAA,CAAyB;;QACrB,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,UAAA,KAAK,EAAxB,EAA4B,OAAA,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAvD,EAAuD,CAAC,CAAC;QACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB,CAAH;;;;;;;;;IAKE,cAAF,CAAA,SAAA,CAAA,MAAQ;;;;;IAAN,UAAO,KAAQ,EAAjB;QACI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACpE,CAAH;;;;;;;;IAKE,cAAF,CAAA,SAAA,CAAA,KAAO;;;;IAAL,YAAF;QACI,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB,CAAH;;;;;;;;;IAKE,cAAF,CAAA,SAAA,CAAA,UAAY;;;;;IAAV,UAAW,KAAQ,EAArB;QACI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACnC,CAAH;;;;;;;;IAKE,cAAF,CAAA,SAAA,CAAA,OAAS;;;;IAAP,YAAF;QACI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC;KACnC,CAAH;;;;;;;;IAKE,cAAF,CAAA,SAAA,CAAA,QAAU;;;;IAAR,YAAF;QACI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACxB,CAAH;;;;;;;;;IAKE,cAAF,CAAA,SAAA,CAAA,IAAM;;;;;IAAJ,UAAK,SAAkC,EAAzC;QACI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAChC;KACF,CAAH;;;;;IAGU,cAAV,CAAA,SAAA,CAAA,gBAA0B;;;;;;QAEtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAChE,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,IAAI,CAAC,eAAe;oBAC3B,OAAO,EAAE,IAAI,CAAC,iBAAiB;iBAChC,CAAC,CAAC;aACJ;YAED,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC3B;;;;;;;IAIK,cAAV,CAAA,SAAA,CAAA,aAAuB;;;;;IAAvB,UAAwB,KAAQ,EAAhC;QACI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;YAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAE3B,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClC;SACF;;;;;;;IAIK,cAAV,CAAA,SAAA,CAAA,eAAyB;;;;;IAAzB,UAA0B,KAAQ,EAAlC;QACI,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAE9B,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpC;SACF;;;;;;IAIK,cAAV,CAAA,SAAA,CAAA,UAAoB;;;;;;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,KAAK,EAAnC,EAAuC,OAAA,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAlE,EAAkE,CAAC,CAAC;SAC/D;;;;;;;;IAOK,cAAV,CAAA,SAAA,CAAA,sBAAgC;;;;;;IAAhC,UAAiC,MAAW,EAA5C;QACI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACxC,MAAM,uCAAuC,EAAE,CAAC;SACjD;;IAjLL,OAAA,cAAA,CAAA;CAmLA,EAAA,CAAC,CAAA;;;;;;;;;;;;;AAmBD,AAAA,SAAA,uCAAA,GAAA;IACE,OAAO,KAAK,CAAC,yEAAyE,CAAC,CAAC;CACzF;;;;;;;ADhMD;;;;;;;;;;;QAiBA,IAAA,CAAA,UAAA,GAA4D,EAAE,CAA9D;;;;;;;;;;;;;IAOE,yBAAF,CAAA,SAAA,CAAA,MAAQ;;;;;;IAAN,UAAO,EAAU,EAAE,IAAY,EAAjC;QACI,KAAqB,IAAzB,EAAA,GAAA,CAAwC,EAAf,EAAzB,GAAyB,IAAI,CAAC,UAAU,EAAf,EAAzB,GAAA,EAAA,CAAA,MAAwC,EAAf,EAAzB,EAAwC,EAAxC;YAAS,IAAI,QAAQ,GAArB,EAAA,CAAA,EAAA,CAAqB,CAArB;YACM,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SACpB;KACF,CAAH;;;;;;;;;;IAME,yBAAF,CAAA,SAAA,CAAA,MAAQ;;;;;IAAN,UAAO,QAA2C,EAApD;QAAE,IAAF,KAAA,GAAA,IAAA,CAOG;QANC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,YAAX;YACM,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAC,UAA6C,EAA7F;gBACQ,OAAO,QAAQ,KAAK,UAAU,CAAC;aAChC,CAAC,CAAC;SACJ,CAAC;KACH,CAAH;;;;IAEE,yBAAF,CAAA,SAAA,CAAA,WAAa;;;IAAX,YAAF;QACI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB,CAAH;;QA9BA,EAAA,IAAA,EAAC,UAAU,EAAX;;;;IAvBA,OAAA,yBAAA,CAAA;;AAwBA;;;;;AAiCA,AAAA,SAAA,4CAAA,CACI,gBAA2C,EAD/C;IAEE,OAAO,gBAAgB,IAAI,IAAI,yBAAyB,EAAE,CAAC;CAC5D;;;;AAGD,AAAO,IAAM,oCAAoC,GAAG;;IAElD,OAAO,EAAE,yBAAyB;IAClC,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE,EAAE,yBAAyB,CAAC,CAAC;IACnE,UAAU,EAAE,4CAA4C;CACzD,CAAC;;;;;GD3DF,AACA,AACA,AAIuC;;;;;;;;GDXvC,AAEA,AAAiG;;"}
|
|
1
|
+
{"version":3,"file":"collections.es5.js","sources":["../../../src/cdk/collections/index.ts","../../../src/cdk/collections/public-api.ts","../../../src/cdk/collections/unique-selection-dispatcher.ts","../../../src/cdk/collections/selection.ts","../../../src/cdk/collections/data-source.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY as ɵa} from './unique-selection-dispatcher';","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './collection-viewer';\nexport * from './data-source';\nexport * from './selection';\nexport {\n UniqueSelectionDispatcher,\n UniqueSelectionDispatcherListener,\n UNIQUE_SELECTION_DISPATCHER_PROVIDER,\n} from './unique-selection-dispatcher';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, Optional, SkipSelf, OnDestroy} from '@angular/core';\n\n\n// Users of the Dispatcher never need to see this type, but TypeScript requires it to be exported.\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\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 */\n@Injectable()\nexport class UniqueSelectionDispatcher implements OnDestroy {\n private _listeners: UniqueSelectionDispatcherListener[] = [];\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 */\n notify(id: string, name: string) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener: UniqueSelectionDispatcherListener): () => void {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered: UniqueSelectionDispatcherListener) => {\n return listener !== registered;\n });\n };\n }\n\n ngOnDestroy() {\n this._listeners = [];\n }\n}\n\n/** @docs-private */\nexport function UNIQUE_SELECTION_DISPATCHER_PROVIDER_FACTORY(\n parentDispatcher: UniqueSelectionDispatcher) {\n return parentDispatcher || new UniqueSelectionDispatcher();\n}\n\n/** @docs-private */\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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Subject} from 'rxjs/Subject';\n\n/**\n * Class to be used to power selecting one or more options from a list.\n */\nexport class SelectionModel<T> {\n /** Currently-selected values. */\n private _selection: Set<T> = new Set();\n\n /** Keeps track of the deselected options that haven't been emitted by the change event. */\n private _deselectedToEmit: T[] = [];\n\n /** Keeps track of the selected options that haven't been emitted by the change event. */\n private _selectedToEmit: T[] = [];\n\n /** Cache for the array value of the selected items. */\n private _selected: T[] | null;\n\n /** Selected values. */\n get selected(): T[] {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n\n return this._selected;\n }\n\n /** Event emitted when the value has changed. */\n onChange: Subject<SelectionChange<T>> | null = this._emitChanges ? new Subject() : null;\n\n constructor(\n private _multiple = false,\n initiallySelectedValues?: T[],\n private _emitChanges = true) {\n\n if (initiallySelectedValues && initiallySelectedValues.length) {\n if (_multiple) {\n initiallySelectedValues.forEach(value => this._markSelected(value));\n } else {\n this._markSelected(initiallySelectedValues[0]);\n }\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 /**\n * Selects a value or an array of values.\n */\n select(...values: T[]): void {\n this._verifyValueAssignment(values);\n values.forEach(value => this._markSelected(value));\n this._emitChangeEvent();\n }\n\n /**\n * Deselects a value or an array of values.\n */\n deselect(...values: T[]): void {\n this._verifyValueAssignment(values);\n values.forEach(value => this._unmarkSelected(value));\n this._emitChangeEvent();\n }\n\n /**\n * Toggles a value between selected and deselected.\n */\n toggle(value: T): void {\n this.isSelected(value) ? this.deselect(value) : this.select(value);\n }\n\n /**\n * Clears all of the selected values.\n */\n clear(): void {\n this._unmarkAll();\n this._emitChangeEvent();\n }\n\n /**\n * Determines whether a value is selected.\n */\n isSelected(value: T): boolean {\n return this._selection.has(value);\n }\n\n /**\n * Determines whether the model does not have a value.\n */\n isEmpty(): boolean {\n return this._selection.size === 0;\n }\n\n /**\n * Determines whether the model has a value.\n */\n hasValue(): boolean {\n return !this.isEmpty();\n }\n\n /**\n * Sorts the selected values based on a predicate function.\n */\n sort(predicate?: (a: T, b: T) => number): void {\n if (this._multiple && 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 private _emitChangeEvent() {\n // Clear the selected values so they can be re-cached.\n this._selected = null;\n\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n if (this.onChange) {\n this.onChange.next({\n source: this,\n added: this._selectedToEmit,\n removed: this._deselectedToEmit\n });\n }\n\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n }\n\n /** Selects a value. */\n private _markSelected(value: T) {\n if (!this.isSelected(value)) {\n if (!this._multiple) {\n this._unmarkAll();\n }\n\n this._selection.add(value);\n\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n }\n\n /** Deselects a value. */\n private _unmarkSelected(value: T) {\n if (this.isSelected(value)) {\n this._selection.delete(value);\n\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n }\n\n /** Clears out the selected values. */\n private _unmarkAll() {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\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 */\n private _verifyValueAssignment(values: T[]) {\n if (values.length > 1 && !this._multiple) {\n throw getMultipleValuesInSingleSelectionError();\n }\n }\n}\n\n/**\n * Event emitted when the value of a MatSelectionModel has changed.\n * @docs-private\n */\nexport interface SelectionChange<T> {\n /** Model that dispatched the event. */\n source: SelectionModel<T>;\n /** Options that were added to the model. */\n added: T[];\n /** Options that were removed from the model. */\n removed: T[];\n}\n\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n */\nexport function getMultipleValuesInSingleSelectionError() {\n return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Observable} from 'rxjs/Observable';\nimport {CollectionViewer} from './collection-viewer';\n\nexport abstract class DataSource<T> {\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 * @param collectionViewer The component that exposes a view over the data provided by this\n * data source.\n * @returns Observable that emits a new value when the data changes.\n */\n abstract connect(collectionViewer: CollectionViewer): Observable<T[]>;\n\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 * @param collectionViewer The component that exposes a view over the data provided by this\n * data source.\n */\n abstract disconnect(collectionViewer: CollectionViewer): void;\n}\n"],"names":[],"mappings":"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"}
|
package/esm5/portal.es5.js
CHANGED
|
@@ -72,14 +72,12 @@ function throwNoPortalAttachedError() {
|
|
|
72
72
|
/**
|
|
73
73
|
* Interface that can be used to generically type a class.
|
|
74
74
|
* @record
|
|
75
|
-
* @template T
|
|
76
75
|
*/
|
|
77
76
|
|
|
78
77
|
/**
|
|
79
78
|
* A `Portal` is something that you want to render somewhere else.
|
|
80
79
|
* It can be attach to / detached from a `PortalOutlet`.
|
|
81
80
|
* @abstract
|
|
82
|
-
* @template T
|
|
83
81
|
*/
|
|
84
82
|
var Portal = /** @class */ (function () {
|
|
85
83
|
function Portal() {
|
|
@@ -159,7 +157,6 @@ var Portal = /** @class */ (function () {
|
|
|
159
157
|
}());
|
|
160
158
|
/**
|
|
161
159
|
* A `ComponentPortal` is a portal that instantiates some Component upon attachment.
|
|
162
|
-
* @template T
|
|
163
160
|
*/
|
|
164
161
|
var ComponentPortal = /** @class */ (function (_super) {
|
|
165
162
|
__extends(ComponentPortal, _super);
|
|
@@ -174,7 +171,6 @@ var ComponentPortal = /** @class */ (function (_super) {
|
|
|
174
171
|
}(Portal));
|
|
175
172
|
/**
|
|
176
173
|
* A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).
|
|
177
|
-
* @template C
|
|
178
174
|
*/
|
|
179
175
|
var TemplatePortal = /** @class */ (function (_super) {
|
|
180
176
|
__extends(TemplatePortal, _super);
|
package/esm5/portal.es5.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.es5.js","sources":["../../../src/cdk/portal/index.ts","../../../src/cdk/portal/public-api.ts","../../../src/cdk/portal/portal-injector.ts","../../../src/cdk/portal/portal-directives.ts","../../../src/cdk/portal/dom-portal-outlet.ts","../../../src/cdk/portal/portal.ts","../../../src/cdk/portal/portal-errors.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './portal';\nexport * from './dom-portal-outlet';\nexport * from './portal-directives';\nexport * from './portal-injector';\n\nexport {DomPortalOutlet as DomPortalHost} from './dom-portal-outlet';\nexport {\n CdkPortalOutlet as PortalHostDirective,\n CdkPortal as TemplatePortalDirective,\n} from './portal-directives';\nexport {PortalOutlet as PortalHost, BasePortalOutlet as BasePortalHost} from './portal';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector} from '@angular/core';\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 implements Injector {\n constructor(\n private _parentInjector: Injector,\n private _customTokens: WeakMap<any, any>) { }\n\n get(token: any, notFoundValue?: any): any {\n const value = this._customTokens.get(token);\n\n if (typeof value !== 'undefined') {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n NgModule,\n ComponentRef,\n Directive,\n EmbeddedViewRef,\n TemplateRef,\n ComponentFactoryResolver,\n ViewContainerRef,\n OnDestroy,\n OnInit,\n Input,\n EventEmitter,\n Output,\n} from '@angular/core';\nimport {Portal, TemplatePortal, ComponentPortal, BasePortalOutlet} from './portal';\n\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@Directive({\n selector: '[cdk-portal], [cdkPortal], [portal]',\n exportAs: 'cdkPortal',\n})\nexport class CdkPortal extends TemplatePortal {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Possible attached references to the CdkPortalOutlet.\n */\nexport type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;\n\n\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[cdkPortalOutlet], [cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalOutlet, cdkPortalHost',\n inputs: ['portal: cdkPortalOutlet']\n})\nexport class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {\n /** Whether the portal component is initialized. */\n private _isInitialized = false;\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef: CdkPortalOutletAttachedRef;\n\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _viewContainerRef: ViewContainerRef) {\n super();\n }\n\n /**\n * @deprecated\n * @deletion-target 6.0.0\n */\n @Input('portalHost')\n get _deprecatedPortal() { return this.portal; }\n set _deprecatedPortal(v) { this.portal = v; }\n\n /**\n * @deprecated\n * @deletion-target 6.0.0\n */\n @Input('cdkPortalHost')\n get _deprecatedPortalHost() { return this.portal; }\n set _deprecatedPortalHost(v) { this.portal = v; }\n\n /** Portal associated with the Portal outlet. */\n get portal(): Portal<any> | null {\n return this._attachedPortal;\n }\n\n set portal(portal: Portal<any> | null) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n\n if (this.hasAttached()) {\n super.detach();\n }\n\n if (portal) {\n super.attach(portal);\n }\n\n this._attachedPortal = portal;\n }\n\n @Output('attached') attached: EventEmitter<CdkPortalOutletAttachedRef> =\n new EventEmitter<CdkPortalOutletAttachedRef>();\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef {\n return this._attachedRef;\n }\n\n ngOnInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n super.dispose();\n this._attachedPortal = null;\n this._attachedRef = null;\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this);\n\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 PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ?\n portal.viewContainerRef :\n this._viewContainerRef;\n\n const componentFactory =\n this._componentFactoryResolver.resolveComponentFactory(portal.component);\n const ref = viewContainerRef.createComponent(\n componentFactory, viewContainerRef.length,\n portal.injector || viewContainerRef.parentInjector);\n\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n\n return ref;\n }\n\n /**\n * Attach the given TemplatePortal to this PortlHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n super.setDisposeFn(() => this._viewContainerRef.clear());\n\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n\n return viewRef;\n }\n}\n\n\n@NgModule({\n exports: [CdkPortal, CdkPortalOutlet],\n declarations: [CdkPortal, CdkPortalOutlet],\n})\nexport class PortalModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n ApplicationRef,\n Injector,\n} from '@angular/core';\nimport {BasePortalOutlet, ComponentPortal, TemplatePortal} from './portal';\n\n\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nexport class DomPortalOutlet extends BasePortalOutlet {\n constructor(\n /** Element into which the content is projected. */\n public outletElement: Element,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _appRef: ApplicationRef,\n private _defaultInjector: Injector) {\n super();\n }\n\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n let componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n let componentRef: ComponentRef<T>;\n\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(\n componentFactory,\n portal.viewContainerRef.length,\n portal.injector || portal.viewContainerRef.parentInjector);\n\n this.setDisposeFn(() => componentRef.destroy());\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.outletElement.appendChild(this._getComponentRootNode(componentRef));\n\n return componentRef;\n }\n\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n viewRef.detectChanges();\n\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n\n this.setDisposeFn((() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n }));\n\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n\n /**\n * Clears out a portal from the DOM.\n */\n dispose(): void {\n super.dispose();\n if (this.outletElement.parentNode != null) {\n this.outletElement.parentNode.removeChild(this.outletElement);\n }\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n TemplateRef,\n ViewContainerRef,\n ElementRef,\n ComponentRef,\n EmbeddedViewRef,\n Injector\n} from '@angular/core';\nimport {\n throwNullPortalOutletError,\n throwPortalAlreadyAttachedError,\n throwNoPortalAttachedError,\n throwNullPortalError,\n throwPortalOutletAlreadyDisposedError,\n throwUnknownPortalTypeError\n} from './portal-errors';\n\n/** Interface that can be used to generically type a class. */\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nexport abstract class Portal<T> {\n private _attachedHost: PortalOutlet | null;\n\n /** Attach this portal to a host. */\n attach(host: PortalOutlet): T {\n if (host == null) {\n throwNullPortalOutletError();\n }\n\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n this._attachedHost = host;\n return <T> host.attach(this);\n }\n\n /** Detach this portal from its host */\n detach(): void {\n let host = this._attachedHost;\n\n if (host == null) {\n throwNoPortalAttachedError();\n } else {\n this._attachedHost = null;\n host.detach();\n }\n }\n\n /** Whether this portal is attached to a host. */\n get isAttached(): boolean {\n return this._attachedHost != null;\n }\n\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host: PortalOutlet | null) {\n this._attachedHost = host;\n }\n}\n\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> extends Portal<ComponentRef<T>> {\n /** The type of the component that will be instantiated for attachment. */\n component: ComponentType<T>;\n\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 PortalOutlet.\n * The origin is necessary when the host is outside of the Angular application context.\n */\n viewContainerRef?: ViewContainerRef | null;\n\n /** [Optional] Injector used for the instantiation of the component. */\n injector?: Injector | null;\n\n constructor(\n component: ComponentType<T>,\n viewContainerRef?: ViewContainerRef | null,\n injector?: Injector | null) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n }\n}\n\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport class TemplatePortal<C = any> extends Portal<C> {\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n templateRef: TemplateRef<C>;\n\n /** Reference to the ViewContainer into which the template will be stamped out. */\n viewContainerRef: ViewContainerRef;\n\n /** Contextual data to be passed in to the embedded view. */\n context: C | undefined;\n\n constructor(template: TemplateRef<C>, viewContainerRef: ViewContainerRef, context?: C) {\n super();\n this.templateRef = template;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n }\n\n get origin(): ElementRef {\n return this.templateRef.elementRef;\n }\n\n /**\n * Attach the the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host: PortalOutlet, context: C | undefined = this.context): C {\n this.context = context;\n return super.attach(host);\n }\n\n detach(): void {\n this.context = undefined;\n return super.detach();\n }\n}\n\n\n/** A `PortalOutlet` is an space that can contain a single `Portal`. */\nexport interface PortalOutlet {\n /** Attaches a portal to this outlet. */\n attach(portal: Portal<any>): any;\n\n /** Detaches the currently attached portal from this outlet. */\n detach(): any;\n\n /** Performs cleanup before the outlet is destroyed. */\n dispose(): void;\n\n /** Whether there is currently a portal attached to this outlet. */\n hasAttached(): boolean;\n}\n\n\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nexport abstract class BasePortalOutlet implements PortalOutlet {\n /** The portal currently attached to the host. */\n protected _attachedPortal: Portal<any> | null;\n\n /** A function that will permanently dispose this host. */\n private _disposeFn: (() => void) | null;\n\n /** Whether this host has already been permanently disposed. */\n private _isDisposed: boolean = false;\n\n /** Whether this host has an attached portal. */\n hasAttached(): boolean {\n return !!this._attachedPortal;\n }\n\n attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;\n attach(portal: any): any;\n\n /** Attaches a portal. */\n attach(portal: Portal<any>): any {\n if (!portal) {\n throwNullPortalError();\n }\n\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n } else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n }\n\n throwUnknownPortalTypeError();\n }\n\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n\n abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n\n /** Detaches a previously attached portal. */\n detach(): void {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n\n this._invokeDisposeFn();\n }\n\n /** Permanently dispose of this portal host. */\n dispose(): void {\n if (this.hasAttached()) {\n this.detach();\n }\n\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n\n /** @docs-private */\n setDisposeFn(fn: () => void) {\n this._disposeFn = fn;\n }\n\n private _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nexport function throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nexport function throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nexport function throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nexport function throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nexport function throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nexport function throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n"],"names":["tslib_1.__extends"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portal.es5.js","sources":["../../../src/cdk/portal/index.ts","../../../src/cdk/portal/public-api.ts","../../../src/cdk/portal/portal-injector.ts","../../../src/cdk/portal/portal-directives.ts","../../../src/cdk/portal/dom-portal-outlet.ts","../../../src/cdk/portal/portal.ts","../../../src/cdk/portal/portal-errors.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './portal';\nexport * from './dom-portal-outlet';\nexport * from './portal-directives';\nexport * from './portal-injector';\n\nexport {DomPortalOutlet as DomPortalHost} from './dom-portal-outlet';\nexport {\n CdkPortalOutlet as PortalHostDirective,\n CdkPortal as TemplatePortalDirective,\n} from './portal-directives';\nexport {PortalOutlet as PortalHost, BasePortalOutlet as BasePortalHost} from './portal';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injector} from '@angular/core';\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 implements Injector {\n constructor(\n private _parentInjector: Injector,\n private _customTokens: WeakMap<any, any>) { }\n\n get(token: any, notFoundValue?: any): any {\n const value = this._customTokens.get(token);\n\n if (typeof value !== 'undefined') {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n NgModule,\n ComponentRef,\n Directive,\n EmbeddedViewRef,\n TemplateRef,\n ComponentFactoryResolver,\n ViewContainerRef,\n OnDestroy,\n OnInit,\n Input,\n EventEmitter,\n Output,\n} from '@angular/core';\nimport {Portal, TemplatePortal, ComponentPortal, BasePortalOutlet} from './portal';\n\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@Directive({\n selector: '[cdk-portal], [cdkPortal], [portal]',\n exportAs: 'cdkPortal',\n})\nexport class CdkPortal extends TemplatePortal {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Possible attached references to the CdkPortalOutlet.\n */\nexport type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;\n\n\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[cdkPortalOutlet], [cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalOutlet, cdkPortalHost',\n inputs: ['portal: cdkPortalOutlet']\n})\nexport class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {\n /** Whether the portal component is initialized. */\n private _isInitialized = false;\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef: CdkPortalOutletAttachedRef;\n\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _viewContainerRef: ViewContainerRef) {\n super();\n }\n\n /**\n * @deprecated\n * @deletion-target 6.0.0\n */\n @Input('portalHost')\n get _deprecatedPortal() { return this.portal; }\n set _deprecatedPortal(v) { this.portal = v; }\n\n /**\n * @deprecated\n * @deletion-target 6.0.0\n */\n @Input('cdkPortalHost')\n get _deprecatedPortalHost() { return this.portal; }\n set _deprecatedPortalHost(v) { this.portal = v; }\n\n /** Portal associated with the Portal outlet. */\n get portal(): Portal<any> | null {\n return this._attachedPortal;\n }\n\n set portal(portal: Portal<any> | null) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n\n if (this.hasAttached()) {\n super.detach();\n }\n\n if (portal) {\n super.attach(portal);\n }\n\n this._attachedPortal = portal;\n }\n\n @Output('attached') attached: EventEmitter<CdkPortalOutletAttachedRef> =\n new EventEmitter<CdkPortalOutletAttachedRef>();\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef {\n return this._attachedRef;\n }\n\n ngOnInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n super.dispose();\n this._attachedPortal = null;\n this._attachedRef = null;\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this);\n\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 PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ?\n portal.viewContainerRef :\n this._viewContainerRef;\n\n const componentFactory =\n this._componentFactoryResolver.resolveComponentFactory(portal.component);\n const ref = viewContainerRef.createComponent(\n componentFactory, viewContainerRef.length,\n portal.injector || viewContainerRef.parentInjector);\n\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n\n return ref;\n }\n\n /**\n * Attach the given TemplatePortal to this PortlHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n super.setDisposeFn(() => this._viewContainerRef.clear());\n\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n\n return viewRef;\n }\n}\n\n\n@NgModule({\n exports: [CdkPortal, CdkPortalOutlet],\n declarations: [CdkPortal, CdkPortalOutlet],\n})\nexport class PortalModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n ApplicationRef,\n Injector,\n} from '@angular/core';\nimport {BasePortalOutlet, ComponentPortal, TemplatePortal} from './portal';\n\n\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nexport class DomPortalOutlet extends BasePortalOutlet {\n constructor(\n /** Element into which the content is projected. */\n public outletElement: Element,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _appRef: ApplicationRef,\n private _defaultInjector: Injector) {\n super();\n }\n\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n let componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n let componentRef: ComponentRef<T>;\n\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(\n componentFactory,\n portal.viewContainerRef.length,\n portal.injector || portal.viewContainerRef.parentInjector);\n\n this.setDisposeFn(() => componentRef.destroy());\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.outletElement.appendChild(this._getComponentRootNode(componentRef));\n\n return componentRef;\n }\n\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n viewRef.detectChanges();\n\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n\n this.setDisposeFn((() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n }));\n\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n\n /**\n * Clears out a portal from the DOM.\n */\n dispose(): void {\n super.dispose();\n if (this.outletElement.parentNode != null) {\n this.outletElement.parentNode.removeChild(this.outletElement);\n }\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n TemplateRef,\n ViewContainerRef,\n ElementRef,\n ComponentRef,\n EmbeddedViewRef,\n Injector\n} from '@angular/core';\nimport {\n throwNullPortalOutletError,\n throwPortalAlreadyAttachedError,\n throwNoPortalAttachedError,\n throwNullPortalError,\n throwPortalOutletAlreadyDisposedError,\n throwUnknownPortalTypeError\n} from './portal-errors';\n\n/** Interface that can be used to generically type a class. */\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nexport abstract class Portal<T> {\n private _attachedHost: PortalOutlet | null;\n\n /** Attach this portal to a host. */\n attach(host: PortalOutlet): T {\n if (host == null) {\n throwNullPortalOutletError();\n }\n\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n this._attachedHost = host;\n return <T> host.attach(this);\n }\n\n /** Detach this portal from its host */\n detach(): void {\n let host = this._attachedHost;\n\n if (host == null) {\n throwNoPortalAttachedError();\n } else {\n this._attachedHost = null;\n host.detach();\n }\n }\n\n /** Whether this portal is attached to a host. */\n get isAttached(): boolean {\n return this._attachedHost != null;\n }\n\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host: PortalOutlet | null) {\n this._attachedHost = host;\n }\n}\n\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> extends Portal<ComponentRef<T>> {\n /** The type of the component that will be instantiated for attachment. */\n component: ComponentType<T>;\n\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 PortalOutlet.\n * The origin is necessary when the host is outside of the Angular application context.\n */\n viewContainerRef?: ViewContainerRef | null;\n\n /** [Optional] Injector used for the instantiation of the component. */\n injector?: Injector | null;\n\n constructor(\n component: ComponentType<T>,\n viewContainerRef?: ViewContainerRef | null,\n injector?: Injector | null) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n }\n}\n\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport class TemplatePortal<C = any> extends Portal<C> {\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n templateRef: TemplateRef<C>;\n\n /** Reference to the ViewContainer into which the template will be stamped out. */\n viewContainerRef: ViewContainerRef;\n\n /** Contextual data to be passed in to the embedded view. */\n context: C | undefined;\n\n constructor(template: TemplateRef<C>, viewContainerRef: ViewContainerRef, context?: C) {\n super();\n this.templateRef = template;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n }\n\n get origin(): ElementRef {\n return this.templateRef.elementRef;\n }\n\n /**\n * Attach the the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host: PortalOutlet, context: C | undefined = this.context): C {\n this.context = context;\n return super.attach(host);\n }\n\n detach(): void {\n this.context = undefined;\n return super.detach();\n }\n}\n\n\n/** A `PortalOutlet` is an space that can contain a single `Portal`. */\nexport interface PortalOutlet {\n /** Attaches a portal to this outlet. */\n attach(portal: Portal<any>): any;\n\n /** Detaches the currently attached portal from this outlet. */\n detach(): any;\n\n /** Performs cleanup before the outlet is destroyed. */\n dispose(): void;\n\n /** Whether there is currently a portal attached to this outlet. */\n hasAttached(): boolean;\n}\n\n\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nexport abstract class BasePortalOutlet implements PortalOutlet {\n /** The portal currently attached to the host. */\n protected _attachedPortal: Portal<any> | null;\n\n /** A function that will permanently dispose this host. */\n private _disposeFn: (() => void) | null;\n\n /** Whether this host has already been permanently disposed. */\n private _isDisposed: boolean = false;\n\n /** Whether this host has an attached portal. */\n hasAttached(): boolean {\n return !!this._attachedPortal;\n }\n\n attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;\n attach(portal: any): any;\n\n /** Attaches a portal. */\n attach(portal: Portal<any>): any {\n if (!portal) {\n throwNullPortalError();\n }\n\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n } else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n }\n\n throwUnknownPortalTypeError();\n }\n\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n\n abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n\n /** Detaches a previously attached portal. */\n detach(): void {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n\n this._invokeDisposeFn();\n }\n\n /** Permanently dispose of this portal host. */\n dispose(): void {\n if (this.hasAttached()) {\n this.detach();\n }\n\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n\n /** @docs-private */\n setDisposeFn(fn: () => void) {\n this._disposeFn = fn;\n }\n\n private _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nexport function throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nexport function throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nexport function throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nexport function throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nexport function throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nexport function throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n"],"names":["tslib_1.__extends"],"mappings":"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"}
|
package/esm5/table.es5.js
CHANGED
|
@@ -98,7 +98,6 @@ var CdkHeaderRowDef = /** @class */ (function (_super) {
|
|
|
98
98
|
* Data row definition for the CDK table.
|
|
99
99
|
* Captures the header row's template and other row properties such as the columns to display and
|
|
100
100
|
* a when predicate that describes when this row should be used.
|
|
101
|
-
* @template T
|
|
102
101
|
*/
|
|
103
102
|
var CdkRowDef = /** @class */ (function (_super) {
|
|
104
103
|
__extends(CdkRowDef, _super);
|
|
@@ -123,7 +122,6 @@ var CdkRowDef = /** @class */ (function (_super) {
|
|
|
123
122
|
/**
|
|
124
123
|
* Context provided to the row cells
|
|
125
124
|
* @record
|
|
126
|
-
* @template T
|
|
127
125
|
*/
|
|
128
126
|
|
|
129
127
|
/**
|
|
@@ -429,7 +427,6 @@ var CDK_TABLE_TEMPLATE = "\n <ng-container headerRowPlaceholder></ng-container>
|
|
|
429
427
|
* Class used to conveniently type the embedded view ref for rows with a context.
|
|
430
428
|
* \@docs-private
|
|
431
429
|
* @abstract
|
|
432
|
-
* @template T
|
|
433
430
|
*/
|
|
434
431
|
var RowViewRef = /** @class */ (function (_super) {
|
|
435
432
|
__extends(RowViewRef, _super);
|
|
@@ -443,7 +440,6 @@ var RowViewRef = /** @class */ (function (_super) {
|
|
|
443
440
|
* the data to be rendered. The data can be provided either as a data array, an Observable stream
|
|
444
441
|
* that emits the data array to render, or a DataSource with a connect function that will
|
|
445
442
|
* return an Observable stream that emits the data array to render.
|
|
446
|
-
* @template T
|
|
447
443
|
*/
|
|
448
444
|
var CdkTable = /** @class */ (function () {
|
|
449
445
|
function CdkTable(_differs, _changeDetectorRef, elementRef, role) {
|
package/esm5/table.es5.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.es5.js","sources":["../../../src/cdk/table/index.ts","../../../src/cdk/table/public-api.ts","../../../src/cdk/table/table-module.ts","../../../src/cdk/table/table.ts","../../../src/cdk/table/table-errors.ts","../../../src/cdk/table/cell.ts","../../../src/cdk/table/row.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './table';\nexport * from './cell';\nexport * from './row';\nexport * from './table-module';\n\n/** Re-export DataSource for a more intuitive experience for users of just the table. */\nexport {DataSource} from '@angular/cdk/collections';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {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';\n\nconst 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];\n\n@NgModule({\n imports: [CommonModule],\n exports: [EXPORTED_DECLARATIONS],\n declarations: [EXPORTED_DECLARATIONS]\n\n})\nexport class CdkTableModule { }\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n AfterContentChecked,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Input,\n isDevMode,\n IterableChangeRecord,\n IterableDiffer,\n IterableDiffers,\n OnInit,\n QueryList,\n TrackByFunction,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {CdkCellOutlet, CdkCellOutletRowContext, CdkHeaderRowDef, CdkRowDef} from './row';\nimport {takeUntil} from 'rxjs/operators/takeUntil';\nimport {BehaviorSubject} from 'rxjs/BehaviorSubject';\nimport {Subscription} from 'rxjs/Subscription';\nimport {Subject} from 'rxjs/Subject';\nimport {CdkCellDef, CdkColumnDef, CdkHeaderCellDef} from './cell';\nimport {\n getTableDuplicateColumnNameError,\n getTableMissingMatchingRowDefError,\n getTableMissingRowDefsError,\n getTableMultipleDefaultRowDefsError,\n getTableUnknownColumnError,\n getTableUnknownDataSourceError\n} from './table-errors';\nimport {Observable} from 'rxjs/Observable';\nimport {of as observableOf} from 'rxjs/observable/of';\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 */\n@Directive({selector: '[rowPlaceholder]'})\nexport class RowPlaceholder {\n constructor(public viewContainer: ViewContainerRef) { }\n}\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 */\n@Directive({selector: '[headerRowPlaceholder]'})\nexport class HeaderRowPlaceholder {\n constructor(public viewContainer: ViewContainerRef) { }\n}\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/**\n * Class used to conveniently type the embedded view ref for rows with a context.\n * @docs-private\n */\nabstract class RowViewRef<T> extends EmbeddedViewRef<CdkCellOutletRowContext<T>> { }\n\n/**\n * A data table that renders a header row and data rows. Uses the dataSource input to determine\n * the data to be rendered. The data can be provided either as a data array, an Observable stream\n * that emits the data array to render, or a DataSource with a connect function that will\n * return an Observable stream that emits the data array to render.\n */\n@Component({\n moduleId: module.id,\n 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})\nexport class CdkTable<T> implements CollectionViewer, OnInit, AfterContentChecked {\n /** Subject that emits when the component has been destroyed. */\n private _onDestroy = new Subject<void>();\n\n /** Latest data provided by the data source. */\n private _data: T[];\n\n /** Subscription that listens for the data provided by the data source. */\n private _renderChangeSubscription: Subscription | null;\n\n /**\n * Map of all the user's defined columns (header and data cell template) identified by name.\n * Collection populated by the column definitions gathered by `ContentChildren` as well as any\n * custom column definitions added to `_customColumnDefs`.\n */\n private _columnDefsByName = new Map<string, CdkColumnDef>();\n\n /**\n * Set of all row defitions that can be used by this table. Populated by the rows gathered by\n * using `ContentChildren` as well as any custom row definitions added to `_customRowDefs`.\n */\n private _rowDefs: CdkRowDef<T>[];\n\n /** Differ used to find the changes in the data provided by the data source. */\n private _dataDiffer: IterableDiffer<T>;\n\n /** Stores the row definition that does not have a when predicate. */\n private _defaultRowDef: CdkRowDef<T> | null;\n\n /** Column definitions that were defined outside of the direct content children of the table. */\n private _customColumnDefs = new Set<CdkColumnDef>();\n\n /** Row definitions that were defined outside of the direct content children of the table. */\n private _customRowDefs = new Set<CdkRowDef<T>>();\n\n /**\n * Whether the header row definition has been changed. Triggers an update to the header row after\n * content is checked.\n */\n private _headerRowDefChanged = false;\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 */\n @Input()\n get trackBy(): TrackByFunction<T> { return this._trackByFn; }\n set trackBy(fn: TrackByFunction<T>) {\n if (isDevMode() &&\n fn != null && typeof fn !== 'function' &&\n <any>console && <any>console.warn) {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._trackByFn = fn;\n }\n private _trackByFn: TrackByFunction<T>;\n\n /**\n * The table's source of data, which can be provided in three ways (in order of complexity):\n * - Simple data array (each object represents one table row)\n * - Stream that emits a data array each time the array changes\n * - `DataSource` object that implements the connect/disconnect interface.\n *\n * If a data array is provided, the table must be notified when the array's objects are\n * added, removed, or moved. This can be done by calling the `renderRows()` function which will\n * render the diff since the last table render. If the data array reference is changed, the table\n * will automatically trigger an update to the rows.\n *\n * When providing an Observable stream, the table will trigger an update automatically when the\n * stream emits a new array of data.\n *\n * Finally, when providing a `DataSource` object, the table will use the Observable stream\n * provided by the connect function and trigger updates when that stream emits new data array\n * values. During the table's ngOnDestroy or when the data source is removed from the table, the\n * table will call the DataSource's `disconnect` function (may be useful for cleaning up any\n * subscriptions registered during the connect process).\n */\n @Input()\n get dataSource(): DataSource<T> | Observable<T[]> | T[] { return this._dataSource; }\n set dataSource(dataSource: DataSource<T> | Observable<T[]> | T[]) {\n if (this._dataSource !== dataSource) {\n this._switchDataSource(dataSource);\n }\n }\n private _dataSource: DataSource<T> | Observable<T[]> | T[] | T[];\n\n // TODO(andrewseguin): Remove max value as the end index\n // and instead calculate the view on init and scroll.\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 viewChange: BehaviorSubject<{start: number, end: number}> =\n new BehaviorSubject<{start: number, end: number}>({start: 0, end: Number.MAX_VALUE});\n\n // Placeholders within the table's template where the header and data rows will be inserted.\n @ViewChild(RowPlaceholder) _rowPlaceholder: RowPlaceholder;\n @ViewChild(HeaderRowPlaceholder) _headerRowPlaceholder: HeaderRowPlaceholder;\n\n /**\n * The column definitions provided by the user that contain what the header and cells should\n * render for each column.\n */\n @ContentChildren(CdkColumnDef) _contentColumnDefs: QueryList<CdkColumnDef>;\n\n /** Set of template definitions that used as the data row containers. */\n @ContentChildren(CdkRowDef) _contentRowDefs: QueryList<CdkRowDef<T>>;\n\n /**\n * Template definition used as the header container. By default it stores the header row\n * definition found as a direct content child. Override this value through `setHeaderRowDef` if\n * the header row definition should be changed or was not defined as a part of the table's\n * content.\n */\n @ContentChild(CdkHeaderRowDef) _headerRowDef: CdkHeaderRowDef;\n\n constructor(private readonly _differs: IterableDiffers,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef,\n @Attribute('role') role: string) {\n if (!role) {\n elementRef.nativeElement.setAttribute('role', 'grid');\n }\n }\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 // If the table has a header row definition defined as part of its content, flag this as a\n // header row def change so that the content check will render the header row.\n if (this._headerRowDef) {\n this._headerRowDefChanged = true;\n }\n }\n\n ngAfterContentChecked() {\n // Cache the row and column definitions gathered by ContentChildren and programmatic injection.\n this._cacheRowDefs();\n this._cacheColumnDefs();\n\n // Make sure that the user has at least added a header row or row def.\n if (!this._headerRowDef && !this._rowDefs.length) {\n throw getTableMissingRowDefsError();\n }\n\n // Render updates if the list of columns have been changed for the header or row definitions.\n this._renderUpdatedColumns();\n\n // If the header row definition has been changed, trigger a render to the header row.\n if (this._headerRowDefChanged) {\n this._renderHeaderRow();\n this._headerRowDefChanged = false;\n }\n\n // If there is a data source and row definitions, connect to the data source unless a\n // connection has already been made.\n if (this.dataSource && this._rowDefs.length > 0 && !this._renderChangeSubscription) {\n this._observeRenderChanges();\n }\n }\n\n ngOnDestroy() {\n this._rowPlaceholder.viewContainer.clear();\n this._headerRowPlaceholder.viewContainer.clear();\n this._onDestroy.next();\n this._onDestroy.complete();\n\n if (this.dataSource instanceof DataSource) {\n this.dataSource.disconnect(this);\n }\n }\n\n /**\n * Renders rows based on the table's latest set of data, which was either provided directly as an\n * input or retrieved through an Observable stream (directly or from a DataSource).\n * Checks for differences in the data since the last diff to perform only the necessary\n * changes (add/remove/move rows).\n *\n * If the table's data source is a DataSource or Observable, this will be invoked automatically\n * each time the provided Observable stream emits a new data array. Otherwise if your data is\n * an array, this function will need to be called to render any changes.\n */\n renderRows() {\n const changes = this._dataDiffer.diff(this._data);\n if (!changes) { return; }\n\n const viewContainer = this._rowPlaceholder.viewContainer;\n changes.forEachOperation(\n (record: IterableChangeRecord<T>, adjustedPreviousIndex: number, currentIndex: number) => {\n if (record.previousIndex == null) {\n this._insertRow(record.item, currentIndex);\n } else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex);\n } else {\n const view = <RowViewRef<T>>viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view!, currentIndex);\n }\n });\n\n // Update the meta context of a row's context data (index, count, first, last, ...)\n this._updateRowIndexContext();\n\n // Update rows that did not get added/removed/moved but may have had their identity changed,\n // e.g. if trackBy matched data on some property but the actual data reference changed.\n changes.forEachIdentityChange((record: IterableChangeRecord<T>) => {\n const rowView = <RowViewRef<T>>viewContainer.get(record.currentIndex!);\n rowView.context.$implicit = record.item;\n });\n }\n\n /**\n * Sets the header row definition to be used. Overrides the header row definition gathered by\n * using `ContentChild`, if one exists. Sets a flag that will re-render the header row after the\n * table's content is checked.\n */\n setHeaderRowDef(headerRowDef: CdkHeaderRowDef) {\n this._headerRowDef = headerRowDef;\n this._headerRowDefChanged = true;\n }\n\n /** Adds a column definition that was not included as part of the direct content children. */\n addColumnDef(columnDef: CdkColumnDef) {\n this._customColumnDefs.add(columnDef);\n }\n\n /** Removes a column definition that was not included as part of the direct content children. */\n removeColumnDef(columnDef: CdkColumnDef) {\n this._customColumnDefs.delete(columnDef);\n }\n\n /** Adds a row definition that was not included as part of the direct content children. */\n addRowDef(rowDef: CdkRowDef<T>) {\n this._customRowDefs.add(rowDef);\n }\n\n /** Removes a row definition that was not included as part of the direct content children. */\n removeRowDef(rowDef: CdkRowDef<T>) {\n this._customRowDefs.delete(rowDef);\n }\n\n /** Update the map containing the content's column definitions. */\n private _cacheColumnDefs() {\n this._columnDefsByName.clear();\n\n const columnDefs = this._contentColumnDefs ? this._contentColumnDefs.toArray() : [];\n this._customColumnDefs.forEach(columnDef => columnDefs.push(columnDef));\n\n 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 /** Update the list of all available row definitions that can be used. */\n private _cacheRowDefs() {\n this._rowDefs = this._contentRowDefs ? this._contentRowDefs.toArray() : [];\n this._customRowDefs.forEach(rowDef => this._rowDefs.push(rowDef));\n\n const defaultRowDefs = this._rowDefs.filter(def => !def.when);\n if (defaultRowDefs.length > 1) { throw getTableMultipleDefaultRowDefsError(); }\n this._defaultRowDef = defaultRowDefs[0];\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 */\n private _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\n this._rowPlaceholder.viewContainer.clear();\n this.renderRows();\n }\n });\n\n // Re-render the header row if there is a difference in its columns.\n if (this._headerRowDef && this._headerRowDef.getColumnsDiff()) {\n this._renderHeaderRow();\n }\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 */\n private _switchDataSource(dataSource: DataSource<T> | Observable<T[]> | T[]) {\n this._data = [];\n\n if (this.dataSource instanceof DataSource) {\n this.dataSource.disconnect(this);\n }\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\n if (!dataSource) {\n if (this._dataDiffer) {\n this._dataDiffer.diff([]);\n }\n this._rowPlaceholder.viewContainer.clear();\n }\n\n this._dataSource = dataSource;\n }\n\n /** Set up a subscription for the data provided by the data source. */\n private _observeRenderChanges() {\n // If no data source has been set, there is nothing to observe for changes.\n if (!this.dataSource) { return; }\n\n let dataStream: Observable<T[]> | undefined;\n\n // Check if the datasource is a DataSource object by observing if it has a connect function.\n // Cannot check this.dataSource['connect'] due to potential property renaming, nor can it\n // checked as an instanceof DataSource<T> since the table should allow for data sources\n // that did not explicitly extend DataSource<T>.\n if ((this.dataSource as DataSource<T>).connect instanceof Function) {\n dataStream = (this.dataSource as DataSource<T>).connect(this);\n } else if (this.dataSource instanceof Observable) {\n dataStream = this.dataSource;\n } else if (Array.isArray(this.dataSource)) {\n dataStream = observableOf(this.dataSource);\n }\n\n if (dataStream === undefined) {\n throw getTableUnknownDataSourceError();\n }\n\n this._renderChangeSubscription = dataStream\n .pipe(takeUntil(this._onDestroy))\n .subscribe(data => {\n this._data = data;\n this.renderRows();\n });\n }\n\n /**\n * Clears any existing content in the header row placeholder and creates a new embedded view\n * in the placeholder using the header row definition.\n */\n private _renderHeaderRow() {\n // Clear the header row placeholder if any content exists.\n if (this._headerRowPlaceholder.viewContainer.length > 0) {\n this._headerRowPlaceholder.viewContainer.clear();\n }\n\n const cells = this._getHeaderCellTemplatesForRow(this._headerRowDef);\n if (!cells.length) { 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._headerRowDef.template, {cells});\n\n cells.forEach(cell => {\n if (CdkCellOutlet.mostRecentCellOutlet) {\n CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, {});\n }\n });\n\n this._changeDetectorRef.markForCheck();\n }\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 */\n _getRowDef(data: T, i: number): CdkRowDef<T> {\n if (this._rowDefs.length == 1) { return this._rowDefs[0]; }\n\n let rowDef = this._rowDefs.find(def => def.when && def.when(i, data)) || this._defaultRowDef;\n if (!rowDef) { throw getTableMissingMatchingRowDefError(); }\n\n return rowDef;\n }\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 */\n private _insertRow(rowData: T, index: number) {\n const row = this._getRowDef(rowData, index);\n\n // Row context that will be provided to both the created embedded row view and its cells.\n const context: CdkCellOutletRowContext<T> = {$implicit: rowData};\n\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\n this._getCellTemplatesForRow(row).forEach(cell => {\n if (CdkCellOutlet.mostRecentCellOutlet) {\n CdkCellOutlet.mostRecentCellOutlet._viewContainer\n .createEmbeddedView(cell.template, context);\n }\n });\n\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Updates the index-related context for each row to reflect any changes in the index of the rows,\n * e.g. first/last/even/odd.\n */\n private _updateRowIndexContext() {\n const viewContainer = this._rowPlaceholder.viewContainer;\n for (let index = 0, count = viewContainer.length; index < count; index++) {\n const viewRef = viewContainer.get(index) as RowViewRef<T>;\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 /**\n * Returns the cell template definitions to insert into the header\n * as defined by its list of columns to display.\n */\n private _getHeaderCellTemplatesForRow(headerDef: CdkHeaderRowDef): CdkHeaderCellDef[] {\n if (!headerDef || !headerDef.columns) { return []; }\n return headerDef.columns.map(columnId => {\n const column = this._columnDefsByName.get(columnId);\n\n if (!column) {\n throw getTableUnknownColumnError(columnId);\n }\n\n return column.headerCell;\n });\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 */\n private _getCellTemplatesForRow(rowDef: CdkRowDef<T>): CdkCellDef[] {\n if (!rowDef.columns) { return []; }\n return rowDef.columns.map(columnId => {\n const column = this._columnDefsByName.get(columnId);\n\n if (!column) {\n throw getTableUnknownColumnError(columnId);\n }\n\n return column.cell;\n });\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Returns an error to be thrown when attempting to find an unexisting column.\n * @param id Id whose lookup failed.\n * @docs-private\n */\nexport function getTableUnknownColumnError(id: string) {\n return Error(`Could not find column with id \"${id}\".`);\n}\n\n/**\n * Returns an error to be thrown when two column definitions have the same name.\n * @docs-private\n */\nexport function getTableDuplicateColumnNameError(name: string) {\n return Error(`Duplicate column definition name provided: \"${name}\".`);\n}\n\n/**\n * Returns an error to be thrown when there are multiple rows that are missing a when function.\n * @docs-private\n */\nexport function getTableMultipleDefaultRowDefsError() {\n return Error(`There can only be one default row without a when predicate function.`);\n}\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 */\nexport function getTableMissingMatchingRowDefError() {\n return Error(`Could not find a matching row definition for the provided row data.`);\n}\n\n/**\n * Returns an error to be thrown when there is no row definitions present in the content.\n * @docs-private\n */\nexport function getTableMissingRowDefsError() {\n return Error('Missing definitions for header and row, ' +\n 'cannot determine which columns should be rendered.');\n}\n\n/**\n * Returns an error to be thrown when the data source does not match the compatible types.\n * @docs-private\n */\nexport function getTableUnknownDataSourceError() {\n return Error(`Provided data source did not match an array, Observable, or DataSource`);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ContentChild, Directive, ElementRef, Input, TemplateRef} from '@angular/core';\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 */\n@Directive({selector: '[cdkCellDef]'})\nexport class CdkCellDef {\n constructor(/** @docs-private */ public template: TemplateRef<any>) { }\n}\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 */\n@Directive({selector: '[cdkHeaderCellDef]'})\nexport class CdkHeaderCellDef {\n constructor(/** @docs-private */ public template: TemplateRef<any>) { }\n}\n\n/**\n * Column definition for the CDK table.\n * Defines a set of cells available for a table column.\n */\n@Directive({selector: '[cdkColumnDef]'})\nexport class CdkColumnDef {\n /** Unique name for this column. */\n @Input('cdkColumnDef')\n get name(): string { return this._name; }\n set name(name: string) {\n // If the directive is set without a name (updated programatically), then this setter will\n // trigger with an empty string and should not overwrite the programatically set value.\n if (!name) { return; }\n\n this._name = name;\n this.cssClassFriendlyName = name.replace(/[^a-z0-9_-]/ig, '-');\n }\n _name: string;\n\n /** @docs-private */\n @ContentChild(CdkCellDef) cell: CdkCellDef;\n\n /** @docs-private */\n @ContentChild(CdkHeaderCellDef) headerCell: CdkHeaderCellDef;\n\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 */\n cssClassFriendlyName: string;\n}\n\n/** Header cell template container that adds the right classes and role. */\n@Directive({\n selector: 'cdk-header-cell',\n host: {\n 'class': 'cdk-header-cell',\n 'role': 'columnheader',\n },\n})\nexport class CdkHeaderCell {\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef) {\n elementRef.nativeElement.classList.add(`cdk-column-${columnDef.cssClassFriendlyName}`);\n }\n}\n\n/** Cell template container that adds the right classes and role. */\n@Directive({\n selector: 'cdk-cell',\n host: {\n 'class': 'cdk-cell',\n 'role': 'gridcell',\n },\n})\nexport class CdkCell {\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef) {\n elementRef.nativeElement.classList.add(`cdk-column-${columnDef.cssClassFriendlyName}`);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CdkCellDef} from './cell';\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 */\nexport const CDK_ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;\n\n/**\n * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs\n * for changes and notifying the table.\n */\nexport abstract class BaseRowDef {\n /** The columns to be displayed on this row. */\n columns: string[];\n\n /** Differ used to check if any changes were made to the columns. */\n protected _columnsDiffer: IterableDiffer<any>;\n\n constructor(/** @docs-private */ public template: TemplateRef<any>,\n protected _differs: IterableDiffers) { }\n\n ngOnChanges(changes: SimpleChanges): void {\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 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 /**\n * Returns the difference between the current columns and the columns from the last diff, or null\n * if there is no difference.\n */\n getColumnsDiff(): IterableChanges<any> | null {\n return this._columnsDiffer.diff(this.columns);\n }\n}\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 */\n@Directive({\n selector: '[cdkHeaderRowDef]',\n inputs: ['columns: cdkHeaderRowDef'],\n})\nexport class CdkHeaderRowDef extends BaseRowDef {\n constructor(template: TemplateRef<any>, _differs: IterableDiffers) {\n super(template, _differs);\n }\n}\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 */\n@Directive({\n selector: '[cdkRowDef]',\n inputs: ['columns: cdkRowDefColumns', 'when: cdkRowDefWhen'],\n})\nexport class CdkRowDef<T> extends BaseRowDef {\n /**\n * Function that should return true if this row template should be used for the provided index\n * and row data. If left undefined, this row will be considered the default row template to use\n * when 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 */\n when: (index: number, rowData: T) => boolean;\n\n // TODO(andrewseguin): Add an input for providing a switch function to determine\n // if this template should be used.\n constructor(template: TemplateRef<any>, _differs: IterableDiffers) {\n super(template, _differs);\n }\n}\n\n/** Context provided to the row cells */\nexport interface CdkCellOutletRowContext<T> {\n /** Data for the row that this cell is located within. */\n $implicit: T;\n\n /** Index location of the row that this cell is located within. */\n index?: number;\n\n /** Length of the number of total rows. */\n count?: number;\n\n /** True if this cell is contained in the first row. */\n first?: boolean;\n\n /** True if this cell is contained in the last row. */\n last?: boolean;\n\n /** True if this cell is contained in a row with an even-numbered index. */\n even?: boolean;\n\n /** True if this cell is contained in a row with an odd-numbered index. */\n odd?: boolean;\n}\n\n/**\n * Outlet for rendering cells inside of a row or header row.\n * @docs-private\n */\n@Directive({selector: '[cdkCellOutlet]'})\nexport class CdkCellOutlet {\n /** The ordered list of cells to render within this outlet's view container */\n cells: CdkCellDef[];\n\n /** The data context to be provided to each cell */\n context: any;\n\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 */\n static mostRecentCellOutlet: CdkCellOutlet | null = null;\n\n constructor(public _viewContainer: ViewContainerRef) {\n CdkCellOutlet.mostRecentCellOutlet = this;\n }\n}\n\n/** Header template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n moduleId: module.id,\n 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})\nexport class CdkHeaderRow { }\n\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n moduleId: module.id,\n 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})\nexport class CdkRow { }\n"],"names":["observableOf","tslib_1.__extends"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.es5.js","sources":["../../../src/cdk/table/index.ts","../../../src/cdk/table/public-api.ts","../../../src/cdk/table/table-module.ts","../../../src/cdk/table/table.ts","../../../src/cdk/table/table-errors.ts","../../../src/cdk/table/cell.ts","../../../src/cdk/table/row.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './table';\nexport * from './cell';\nexport * from './row';\nexport * from './table-module';\n\n/** Re-export DataSource for a more intuitive experience for users of just the table. */\nexport {DataSource} from '@angular/cdk/collections';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {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';\n\nconst 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];\n\n@NgModule({\n imports: [CommonModule],\n exports: [EXPORTED_DECLARATIONS],\n declarations: [EXPORTED_DECLARATIONS]\n\n})\nexport class CdkTableModule { }\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n AfterContentChecked,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Input,\n isDevMode,\n IterableChangeRecord,\n IterableDiffer,\n IterableDiffers,\n OnInit,\n QueryList,\n TrackByFunction,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\nimport {CdkCellOutlet, CdkCellOutletRowContext, CdkHeaderRowDef, CdkRowDef} from './row';\nimport {takeUntil} from 'rxjs/operators/takeUntil';\nimport {BehaviorSubject} from 'rxjs/BehaviorSubject';\nimport {Subscription} from 'rxjs/Subscription';\nimport {Subject} from 'rxjs/Subject';\nimport {CdkCellDef, CdkColumnDef, CdkHeaderCellDef} from './cell';\nimport {\n getTableDuplicateColumnNameError,\n getTableMissingMatchingRowDefError,\n getTableMissingRowDefsError,\n getTableMultipleDefaultRowDefsError,\n getTableUnknownColumnError,\n getTableUnknownDataSourceError\n} from './table-errors';\nimport {Observable} from 'rxjs/Observable';\nimport {of as observableOf} from 'rxjs/observable/of';\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 */\n@Directive({selector: '[rowPlaceholder]'})\nexport class RowPlaceholder {\n constructor(public viewContainer: ViewContainerRef) { }\n}\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 */\n@Directive({selector: '[headerRowPlaceholder]'})\nexport class HeaderRowPlaceholder {\n constructor(public viewContainer: ViewContainerRef) { }\n}\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/**\n * Class used to conveniently type the embedded view ref for rows with a context.\n * @docs-private\n */\nabstract class RowViewRef<T> extends EmbeddedViewRef<CdkCellOutletRowContext<T>> { }\n\n/**\n * A data table that renders a header row and data rows. Uses the dataSource input to determine\n * the data to be rendered. The data can be provided either as a data array, an Observable stream\n * that emits the data array to render, or a DataSource with a connect function that will\n * return an Observable stream that emits the data array to render.\n */\n@Component({\n moduleId: module.id,\n 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})\nexport class CdkTable<T> implements CollectionViewer, OnInit, AfterContentChecked {\n /** Subject that emits when the component has been destroyed. */\n private _onDestroy = new Subject<void>();\n\n /** Latest data provided by the data source. */\n private _data: T[];\n\n /** Subscription that listens for the data provided by the data source. */\n private _renderChangeSubscription: Subscription | null;\n\n /**\n * Map of all the user's defined columns (header and data cell template) identified by name.\n * Collection populated by the column definitions gathered by `ContentChildren` as well as any\n * custom column definitions added to `_customColumnDefs`.\n */\n private _columnDefsByName = new Map<string, CdkColumnDef>();\n\n /**\n * Set of all row defitions that can be used by this table. Populated by the rows gathered by\n * using `ContentChildren` as well as any custom row definitions added to `_customRowDefs`.\n */\n private _rowDefs: CdkRowDef<T>[];\n\n /** Differ used to find the changes in the data provided by the data source. */\n private _dataDiffer: IterableDiffer<T>;\n\n /** Stores the row definition that does not have a when predicate. */\n private _defaultRowDef: CdkRowDef<T> | null;\n\n /** Column definitions that were defined outside of the direct content children of the table. */\n private _customColumnDefs = new Set<CdkColumnDef>();\n\n /** Row definitions that were defined outside of the direct content children of the table. */\n private _customRowDefs = new Set<CdkRowDef<T>>();\n\n /**\n * Whether the header row definition has been changed. Triggers an update to the header row after\n * content is checked.\n */\n private _headerRowDefChanged = false;\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 */\n @Input()\n get trackBy(): TrackByFunction<T> { return this._trackByFn; }\n set trackBy(fn: TrackByFunction<T>) {\n if (isDevMode() &&\n fn != null && typeof fn !== 'function' &&\n <any>console && <any>console.warn) {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._trackByFn = fn;\n }\n private _trackByFn: TrackByFunction<T>;\n\n /**\n * The table's source of data, which can be provided in three ways (in order of complexity):\n * - Simple data array (each object represents one table row)\n * - Stream that emits a data array each time the array changes\n * - `DataSource` object that implements the connect/disconnect interface.\n *\n * If a data array is provided, the table must be notified when the array's objects are\n * added, removed, or moved. This can be done by calling the `renderRows()` function which will\n * render the diff since the last table render. If the data array reference is changed, the table\n * will automatically trigger an update to the rows.\n *\n * When providing an Observable stream, the table will trigger an update automatically when the\n * stream emits a new array of data.\n *\n * Finally, when providing a `DataSource` object, the table will use the Observable stream\n * provided by the connect function and trigger updates when that stream emits new data array\n * values. During the table's ngOnDestroy or when the data source is removed from the table, the\n * table will call the DataSource's `disconnect` function (may be useful for cleaning up any\n * subscriptions registered during the connect process).\n */\n @Input()\n get dataSource(): DataSource<T> | Observable<T[]> | T[] { return this._dataSource; }\n set dataSource(dataSource: DataSource<T> | Observable<T[]> | T[]) {\n if (this._dataSource !== dataSource) {\n this._switchDataSource(dataSource);\n }\n }\n private _dataSource: DataSource<T> | Observable<T[]> | T[] | T[];\n\n // TODO(andrewseguin): Remove max value as the end index\n // and instead calculate the view on init and scroll.\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 viewChange: BehaviorSubject<{start: number, end: number}> =\n new BehaviorSubject<{start: number, end: number}>({start: 0, end: Number.MAX_VALUE});\n\n // Placeholders within the table's template where the header and data rows will be inserted.\n @ViewChild(RowPlaceholder) _rowPlaceholder: RowPlaceholder;\n @ViewChild(HeaderRowPlaceholder) _headerRowPlaceholder: HeaderRowPlaceholder;\n\n /**\n * The column definitions provided by the user that contain what the header and cells should\n * render for each column.\n */\n @ContentChildren(CdkColumnDef) _contentColumnDefs: QueryList<CdkColumnDef>;\n\n /** Set of template definitions that used as the data row containers. */\n @ContentChildren(CdkRowDef) _contentRowDefs: QueryList<CdkRowDef<T>>;\n\n /**\n * Template definition used as the header container. By default it stores the header row\n * definition found as a direct content child. Override this value through `setHeaderRowDef` if\n * the header row definition should be changed or was not defined as a part of the table's\n * content.\n */\n @ContentChild(CdkHeaderRowDef) _headerRowDef: CdkHeaderRowDef;\n\n constructor(private readonly _differs: IterableDiffers,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n elementRef: ElementRef,\n @Attribute('role') role: string) {\n if (!role) {\n elementRef.nativeElement.setAttribute('role', 'grid');\n }\n }\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 // If the table has a header row definition defined as part of its content, flag this as a\n // header row def change so that the content check will render the header row.\n if (this._headerRowDef) {\n this._headerRowDefChanged = true;\n }\n }\n\n ngAfterContentChecked() {\n // Cache the row and column definitions gathered by ContentChildren and programmatic injection.\n this._cacheRowDefs();\n this._cacheColumnDefs();\n\n // Make sure that the user has at least added a header row or row def.\n if (!this._headerRowDef && !this._rowDefs.length) {\n throw getTableMissingRowDefsError();\n }\n\n // Render updates if the list of columns have been changed for the header or row definitions.\n this._renderUpdatedColumns();\n\n // If the header row definition has been changed, trigger a render to the header row.\n if (this._headerRowDefChanged) {\n this._renderHeaderRow();\n this._headerRowDefChanged = false;\n }\n\n // If there is a data source and row definitions, connect to the data source unless a\n // connection has already been made.\n if (this.dataSource && this._rowDefs.length > 0 && !this._renderChangeSubscription) {\n this._observeRenderChanges();\n }\n }\n\n ngOnDestroy() {\n this._rowPlaceholder.viewContainer.clear();\n this._headerRowPlaceholder.viewContainer.clear();\n this._onDestroy.next();\n this._onDestroy.complete();\n\n if (this.dataSource instanceof DataSource) {\n this.dataSource.disconnect(this);\n }\n }\n\n /**\n * Renders rows based on the table's latest set of data, which was either provided directly as an\n * input or retrieved through an Observable stream (directly or from a DataSource).\n * Checks for differences in the data since the last diff to perform only the necessary\n * changes (add/remove/move rows).\n *\n * If the table's data source is a DataSource or Observable, this will be invoked automatically\n * each time the provided Observable stream emits a new data array. Otherwise if your data is\n * an array, this function will need to be called to render any changes.\n */\n renderRows() {\n const changes = this._dataDiffer.diff(this._data);\n if (!changes) { return; }\n\n const viewContainer = this._rowPlaceholder.viewContainer;\n changes.forEachOperation(\n (record: IterableChangeRecord<T>, adjustedPreviousIndex: number, currentIndex: number) => {\n if (record.previousIndex == null) {\n this._insertRow(record.item, currentIndex);\n } else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex);\n } else {\n const view = <RowViewRef<T>>viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view!, currentIndex);\n }\n });\n\n // Update the meta context of a row's context data (index, count, first, last, ...)\n this._updateRowIndexContext();\n\n // Update rows that did not get added/removed/moved but may have had their identity changed,\n // e.g. if trackBy matched data on some property but the actual data reference changed.\n changes.forEachIdentityChange((record: IterableChangeRecord<T>) => {\n const rowView = <RowViewRef<T>>viewContainer.get(record.currentIndex!);\n rowView.context.$implicit = record.item;\n });\n }\n\n /**\n * Sets the header row definition to be used. Overrides the header row definition gathered by\n * using `ContentChild`, if one exists. Sets a flag that will re-render the header row after the\n * table's content is checked.\n */\n setHeaderRowDef(headerRowDef: CdkHeaderRowDef) {\n this._headerRowDef = headerRowDef;\n this._headerRowDefChanged = true;\n }\n\n /** Adds a column definition that was not included as part of the direct content children. */\n addColumnDef(columnDef: CdkColumnDef) {\n this._customColumnDefs.add(columnDef);\n }\n\n /** Removes a column definition that was not included as part of the direct content children. */\n removeColumnDef(columnDef: CdkColumnDef) {\n this._customColumnDefs.delete(columnDef);\n }\n\n /** Adds a row definition that was not included as part of the direct content children. */\n addRowDef(rowDef: CdkRowDef<T>) {\n this._customRowDefs.add(rowDef);\n }\n\n /** Removes a row definition that was not included as part of the direct content children. */\n removeRowDef(rowDef: CdkRowDef<T>) {\n this._customRowDefs.delete(rowDef);\n }\n\n /** Update the map containing the content's column definitions. */\n private _cacheColumnDefs() {\n this._columnDefsByName.clear();\n\n const columnDefs = this._contentColumnDefs ? this._contentColumnDefs.toArray() : [];\n this._customColumnDefs.forEach(columnDef => columnDefs.push(columnDef));\n\n 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 /** Update the list of all available row definitions that can be used. */\n private _cacheRowDefs() {\n this._rowDefs = this._contentRowDefs ? this._contentRowDefs.toArray() : [];\n this._customRowDefs.forEach(rowDef => this._rowDefs.push(rowDef));\n\n const defaultRowDefs = this._rowDefs.filter(def => !def.when);\n if (defaultRowDefs.length > 1) { throw getTableMultipleDefaultRowDefsError(); }\n this._defaultRowDef = defaultRowDefs[0];\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 */\n private _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\n this._rowPlaceholder.viewContainer.clear();\n this.renderRows();\n }\n });\n\n // Re-render the header row if there is a difference in its columns.\n if (this._headerRowDef && this._headerRowDef.getColumnsDiff()) {\n this._renderHeaderRow();\n }\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 */\n private _switchDataSource(dataSource: DataSource<T> | Observable<T[]> | T[]) {\n this._data = [];\n\n if (this.dataSource instanceof DataSource) {\n this.dataSource.disconnect(this);\n }\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\n if (!dataSource) {\n if (this._dataDiffer) {\n this._dataDiffer.diff([]);\n }\n this._rowPlaceholder.viewContainer.clear();\n }\n\n this._dataSource = dataSource;\n }\n\n /** Set up a subscription for the data provided by the data source. */\n private _observeRenderChanges() {\n // If no data source has been set, there is nothing to observe for changes.\n if (!this.dataSource) { return; }\n\n let dataStream: Observable<T[]> | undefined;\n\n // Check if the datasource is a DataSource object by observing if it has a connect function.\n // Cannot check this.dataSource['connect'] due to potential property renaming, nor can it\n // checked as an instanceof DataSource<T> since the table should allow for data sources\n // that did not explicitly extend DataSource<T>.\n if ((this.dataSource as DataSource<T>).connect instanceof Function) {\n dataStream = (this.dataSource as DataSource<T>).connect(this);\n } else if (this.dataSource instanceof Observable) {\n dataStream = this.dataSource;\n } else if (Array.isArray(this.dataSource)) {\n dataStream = observableOf(this.dataSource);\n }\n\n if (dataStream === undefined) {\n throw getTableUnknownDataSourceError();\n }\n\n this._renderChangeSubscription = dataStream\n .pipe(takeUntil(this._onDestroy))\n .subscribe(data => {\n this._data = data;\n this.renderRows();\n });\n }\n\n /**\n * Clears any existing content in the header row placeholder and creates a new embedded view\n * in the placeholder using the header row definition.\n */\n private _renderHeaderRow() {\n // Clear the header row placeholder if any content exists.\n if (this._headerRowPlaceholder.viewContainer.length > 0) {\n this._headerRowPlaceholder.viewContainer.clear();\n }\n\n const cells = this._getHeaderCellTemplatesForRow(this._headerRowDef);\n if (!cells.length) { 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._headerRowDef.template, {cells});\n\n cells.forEach(cell => {\n if (CdkCellOutlet.mostRecentCellOutlet) {\n CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cell.template, {});\n }\n });\n\n this._changeDetectorRef.markForCheck();\n }\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 */\n _getRowDef(data: T, i: number): CdkRowDef<T> {\n if (this._rowDefs.length == 1) { return this._rowDefs[0]; }\n\n let rowDef = this._rowDefs.find(def => def.when && def.when(i, data)) || this._defaultRowDef;\n if (!rowDef) { throw getTableMissingMatchingRowDefError(); }\n\n return rowDef;\n }\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 */\n private _insertRow(rowData: T, index: number) {\n const row = this._getRowDef(rowData, index);\n\n // Row context that will be provided to both the created embedded row view and its cells.\n const context: CdkCellOutletRowContext<T> = {$implicit: rowData};\n\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\n this._getCellTemplatesForRow(row).forEach(cell => {\n if (CdkCellOutlet.mostRecentCellOutlet) {\n CdkCellOutlet.mostRecentCellOutlet._viewContainer\n .createEmbeddedView(cell.template, context);\n }\n });\n\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Updates the index-related context for each row to reflect any changes in the index of the rows,\n * e.g. first/last/even/odd.\n */\n private _updateRowIndexContext() {\n const viewContainer = this._rowPlaceholder.viewContainer;\n for (let index = 0, count = viewContainer.length; index < count; index++) {\n const viewRef = viewContainer.get(index) as RowViewRef<T>;\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 /**\n * Returns the cell template definitions to insert into the header\n * as defined by its list of columns to display.\n */\n private _getHeaderCellTemplatesForRow(headerDef: CdkHeaderRowDef): CdkHeaderCellDef[] {\n if (!headerDef || !headerDef.columns) { return []; }\n return headerDef.columns.map(columnId => {\n const column = this._columnDefsByName.get(columnId);\n\n if (!column) {\n throw getTableUnknownColumnError(columnId);\n }\n\n return column.headerCell;\n });\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 */\n private _getCellTemplatesForRow(rowDef: CdkRowDef<T>): CdkCellDef[] {\n if (!rowDef.columns) { return []; }\n return rowDef.columns.map(columnId => {\n const column = this._columnDefsByName.get(columnId);\n\n if (!column) {\n throw getTableUnknownColumnError(columnId);\n }\n\n return column.cell;\n });\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Returns an error to be thrown when attempting to find an unexisting column.\n * @param id Id whose lookup failed.\n * @docs-private\n */\nexport function getTableUnknownColumnError(id: string) {\n return Error(`Could not find column with id \"${id}\".`);\n}\n\n/**\n * Returns an error to be thrown when two column definitions have the same name.\n * @docs-private\n */\nexport function getTableDuplicateColumnNameError(name: string) {\n return Error(`Duplicate column definition name provided: \"${name}\".`);\n}\n\n/**\n * Returns an error to be thrown when there are multiple rows that are missing a when function.\n * @docs-private\n */\nexport function getTableMultipleDefaultRowDefsError() {\n return Error(`There can only be one default row without a when predicate function.`);\n}\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 */\nexport function getTableMissingMatchingRowDefError() {\n return Error(`Could not find a matching row definition for the provided row data.`);\n}\n\n/**\n * Returns an error to be thrown when there is no row definitions present in the content.\n * @docs-private\n */\nexport function getTableMissingRowDefsError() {\n return Error('Missing definitions for header and row, ' +\n 'cannot determine which columns should be rendered.');\n}\n\n/**\n * Returns an error to be thrown when the data source does not match the compatible types.\n * @docs-private\n */\nexport function getTableUnknownDataSourceError() {\n return Error(`Provided data source did not match an array, Observable, or DataSource`);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ContentChild, Directive, ElementRef, Input, TemplateRef} from '@angular/core';\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 */\n@Directive({selector: '[cdkCellDef]'})\nexport class CdkCellDef {\n constructor(/** @docs-private */ public template: TemplateRef<any>) { }\n}\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 */\n@Directive({selector: '[cdkHeaderCellDef]'})\nexport class CdkHeaderCellDef {\n constructor(/** @docs-private */ public template: TemplateRef<any>) { }\n}\n\n/**\n * Column definition for the CDK table.\n * Defines a set of cells available for a table column.\n */\n@Directive({selector: '[cdkColumnDef]'})\nexport class CdkColumnDef {\n /** Unique name for this column. */\n @Input('cdkColumnDef')\n get name(): string { return this._name; }\n set name(name: string) {\n // If the directive is set without a name (updated programatically), then this setter will\n // trigger with an empty string and should not overwrite the programatically set value.\n if (!name) { return; }\n\n this._name = name;\n this.cssClassFriendlyName = name.replace(/[^a-z0-9_-]/ig, '-');\n }\n _name: string;\n\n /** @docs-private */\n @ContentChild(CdkCellDef) cell: CdkCellDef;\n\n /** @docs-private */\n @ContentChild(CdkHeaderCellDef) headerCell: CdkHeaderCellDef;\n\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 */\n cssClassFriendlyName: string;\n}\n\n/** Header cell template container that adds the right classes and role. */\n@Directive({\n selector: 'cdk-header-cell',\n host: {\n 'class': 'cdk-header-cell',\n 'role': 'columnheader',\n },\n})\nexport class CdkHeaderCell {\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef) {\n elementRef.nativeElement.classList.add(`cdk-column-${columnDef.cssClassFriendlyName}`);\n }\n}\n\n/** Cell template container that adds the right classes and role. */\n@Directive({\n selector: 'cdk-cell',\n host: {\n 'class': 'cdk-cell',\n 'role': 'gridcell',\n },\n})\nexport class CdkCell {\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef) {\n elementRef.nativeElement.classList.add(`cdk-column-${columnDef.cssClassFriendlyName}`);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n IterableChanges,\n IterableDiffer,\n IterableDiffers,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CdkCellDef} from './cell';\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 */\nexport const CDK_ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;\n\n/**\n * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs\n * for changes and notifying the table.\n */\nexport abstract class BaseRowDef {\n /** The columns to be displayed on this row. */\n columns: string[];\n\n /** Differ used to check if any changes were made to the columns. */\n protected _columnsDiffer: IterableDiffer<any>;\n\n constructor(/** @docs-private */ public template: TemplateRef<any>,\n protected _differs: IterableDiffers) { }\n\n ngOnChanges(changes: SimpleChanges): void {\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 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 /**\n * Returns the difference between the current columns and the columns from the last diff, or null\n * if there is no difference.\n */\n getColumnsDiff(): IterableChanges<any> | null {\n return this._columnsDiffer.diff(this.columns);\n }\n}\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 */\n@Directive({\n selector: '[cdkHeaderRowDef]',\n inputs: ['columns: cdkHeaderRowDef'],\n})\nexport class CdkHeaderRowDef extends BaseRowDef {\n constructor(template: TemplateRef<any>, _differs: IterableDiffers) {\n super(template, _differs);\n }\n}\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 */\n@Directive({\n selector: '[cdkRowDef]',\n inputs: ['columns: cdkRowDefColumns', 'when: cdkRowDefWhen'],\n})\nexport class CdkRowDef<T> extends BaseRowDef {\n /**\n * Function that should return true if this row template should be used for the provided index\n * and row data. If left undefined, this row will be considered the default row template to use\n * when 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 */\n when: (index: number, rowData: T) => boolean;\n\n // TODO(andrewseguin): Add an input for providing a switch function to determine\n // if this template should be used.\n constructor(template: TemplateRef<any>, _differs: IterableDiffers) {\n super(template, _differs);\n }\n}\n\n/** Context provided to the row cells */\nexport interface CdkCellOutletRowContext<T> {\n /** Data for the row that this cell is located within. */\n $implicit: T;\n\n /** Index location of the row that this cell is located within. */\n index?: number;\n\n /** Length of the number of total rows. */\n count?: number;\n\n /** True if this cell is contained in the first row. */\n first?: boolean;\n\n /** True if this cell is contained in the last row. */\n last?: boolean;\n\n /** True if this cell is contained in a row with an even-numbered index. */\n even?: boolean;\n\n /** True if this cell is contained in a row with an odd-numbered index. */\n odd?: boolean;\n}\n\n/**\n * Outlet for rendering cells inside of a row or header row.\n * @docs-private\n */\n@Directive({selector: '[cdkCellOutlet]'})\nexport class CdkCellOutlet {\n /** The ordered list of cells to render within this outlet's view container */\n cells: CdkCellDef[];\n\n /** The data context to be provided to each cell */\n context: any;\n\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 */\n static mostRecentCellOutlet: CdkCellOutlet | null = null;\n\n constructor(public _viewContainer: ViewContainerRef) {\n CdkCellOutlet.mostRecentCellOutlet = this;\n }\n}\n\n/** Header template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n moduleId: module.id,\n 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})\nexport class CdkHeaderRow { }\n\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\n@Component({\n moduleId: module.id,\n 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})\nexport class CdkRow { }\n"],"names":["observableOf","tslib_1.__extends"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/cdk",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.5",
|
|
4
4
|
"description": "Angular Material Component Development Kit",
|
|
5
5
|
"main": "./bundles/cdk.umd.js",
|
|
6
6
|
"module": "./esm5/cdk.es5.js",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
},
|
|
24
24
|
"homepage": "https://github.com/angular/material2#readme",
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@angular/core": "
|
|
27
|
-
"@angular/common": "
|
|
26
|
+
"@angular/core": ">=5.0.0 <7.0.0",
|
|
27
|
+
"@angular/common": ">=5.0.0 <7.0.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"tslib": "^1.7.1"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":11,"character":27},"arguments":["5.2.
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":11,"character":27},"arguments":["5.2.5"]}},"origins":{"VERSION":"./version"},"importAs":"@angular/cdk"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":11,"character":27},"arguments":["5.2.
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":11,"character":27},"arguments":["5.2.5"]}},"origins":{"VERSION":"./version"},"importAs":"@angular/cdk"}
|