blob: 1c7ec15748d4656ab93e85a80edcaa9065866ffc [file] [log] [blame]
{"version":3,"file":"cdk-collections.umd.min.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/cdk/collections/data-source.ts","../../src/cdk/collections/selection.ts","../../src/cdk/collections/array-data-source.ts","../../src/cdk/collections/unique-selection-dispatcher.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\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';\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[] | ReadonlyArray<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\n/** Checks whether an object is a data source. */\nexport function isDataSource(value: any): value is DataSource<any> {\n // Check if the value is a DataSource by observing if it has a connect function. Cannot\n // be checked as an `instanceof DataSource` since people could create their own sources\n // that match the interface, but don't extend DataSource.\n return value && typeof value.connect === 'function';\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';\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 = new Set<T>();\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 changed: Subject<SelectionChange<T>> = new Subject();\n\n /**\n * Event emitted when the value has changed.\n * @deprecated Use `changed` instead.\n * @breaking-change 8.0.0 To be changed to `changed`\n */\n onChange: Subject<SelectionChange<T>> = this.changed;\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 /**\n * Gets whether multiple values can be selected.\n */\n isMultipleSelection() {\n return this._multiple;\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 this.changed.next({\n source: this,\n added: this._selectedToEmit,\n removed: this._deselectedToEmit\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 * @docs-private\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, of as observableOf} from 'rxjs';\nimport {DataSource} from './data-source';\n\n\n/** DataSource wrapper for a native array. */\nexport class ArrayDataSource<T> extends DataSource<T> {\n constructor(private _data: T[] | ReadonlyArray<T> | Observable<T[] | ReadonlyArray<T>>) {\n super();\n }\n\n connect(): Observable<T[] | ReadonlyArray<T>> {\n return this._data instanceof Observable ? this._data : observableOf(this._data);\n }\n\n disconnect() {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, 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({providedIn: 'root'})\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"],"names":["__extends","d","b","__","this","constructor","extendStatics","prototype","Object","create","isDataSource","value","connect","getMultipleValuesInSingleSelectionError","Error","setPrototypeOf","__proto__","Array","p","hasOwnProperty","DataSource","ArrayDataSource","_data","_this","_super","call","tslib_1.__extends","Observable","observableOf","disconnect","SelectionModel","_multiple","initiallySelectedValues","_emitChanges","_selection","Set","_deselectedToEmit","_selectedToEmit","changed","Subject","onChange","length","forEach","_markSelected","defineProperty","_selected","from","values","select","_i","arguments","_verifyValueAssignment","_emitChangeEvent","deselect","_unmarkSelected","toggle","isSelected","clear","_unmarkAll","has","isEmpty","size","hasValue","sort","predicate","selected","isMultipleSelection","next","source","added","removed","add","push","delete","UniqueSelectionDispatcher","_listeners","notify","id","name","_a","listener","listen","filter","registered","ngOnDestroy","type","Injectable","args","providedIn"],"mappings":"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"}