@ptsecurity/mosaic 8.5.3 → 8.5.7
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/mosaic-list.umd.js +68 -26
- package/bundles/mosaic-list.umd.js.map +1 -1
- package/bundles/mosaic-list.umd.min.js +1 -1
- package/bundles/mosaic-list.umd.min.js.map +1 -1
- package/bundles/mosaic-select.umd.js +27 -10
- package/bundles/mosaic-select.umd.js.map +1 -1
- package/bundles/mosaic-select.umd.min.js +1 -1
- package/bundles/mosaic-select.umd.min.js.map +1 -1
- package/bundles/mosaic-splitter.umd.js +12 -6
- package/bundles/mosaic-splitter.umd.js.map +1 -1
- package/bundles/mosaic-splitter.umd.min.js +1 -1
- package/bundles/mosaic-splitter.umd.min.js.map +1 -1
- package/bundles/mosaic-toggle.umd.js +4 -5
- package/bundles/mosaic-toggle.umd.js.map +1 -1
- package/bundles/mosaic-toggle.umd.min.js +1 -1
- package/bundles/mosaic-toggle.umd.min.js.map +1 -1
- package/bundles/mosaic.umd.js +112 -48
- package/bundles/mosaic.umd.js.map +1 -1
- package/bundles/mosaic.umd.min.js +9 -9
- package/bundles/mosaic.umd.min.js.map +1 -1
- package/esm2015/list.js +64 -26
- package/esm2015/list.js.map +1 -1
- package/esm2015/mosaic.js +2 -2
- package/esm2015/mosaic.js.map +1 -1
- package/esm2015/select.js +28 -11
- package/esm2015/select.js.map +1 -1
- package/esm2015/splitter.js +12 -7
- package/esm2015/splitter.js.map +1 -1
- package/esm2015/toggle.js +4 -5
- package/esm2015/toggle.js.map +1 -1
- package/esm5/list.es5.js +68 -26
- package/esm5/list.es5.js.map +1 -1
- package/esm5/mosaic.es5.js +2 -2
- package/esm5/mosaic.es5.js.map +1 -1
- package/esm5/select.es5.js +28 -11
- package/esm5/select.es5.js.map +1 -1
- package/esm5/splitter.es5.js +12 -7
- package/esm5/splitter.es5.js.map +1 -1
- package/esm5/toggle.es5.js +4 -5
- package/esm5/toggle.es5.js.map +1 -1
- package/list/typings/index.metadata.json +1 -1
- package/list/typings/list-selection.component.d.ts +13 -1
- package/package.json +3 -3
- package/select/typings/index.metadata.json +1 -1
- package/splitter/typings/splitter.component.d.ts +1 -1
- package/toggle/typings/index.metadata.json +1 -1
- package/toggle/typings/toggle.component.d.ts +1 -1
- package/typings/esm5/index.metadata.json +1 -1
- package/typings/esm5/list/index.metadata.json +1 -1
- package/typings/esm5/list/list-selection.component.d.ts +13 -1
- package/typings/esm5/select/index.metadata.json +1 -1
- package/typings/esm5/splitter/splitter.component.d.ts +1 -1
- package/typings/esm5/toggle/index.metadata.json +1 -1
- package/typings/esm5/toggle/toggle.component.d.ts +1 -1
- package/typings/index.metadata.json +1 -1
- package/typings/list/index.metadata.json +1 -1
- package/typings/list/list-selection.component.d.ts +13 -1
- package/typings/select/index.metadata.json +1 -1
- package/typings/splitter/splitter.component.d.ts +1 -1
- package/typings/toggle/index.metadata.json +1 -1
- package/typings/toggle/toggle.component.d.ts +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mosaic-list.umd.min.js","sources":["../../node_modules/tslib/tslib.es6.js","../../packages/mosaic/list/list-selection.component.ts","../../packages/mosaic/list/list.component.ts","../../packages/mosaic/list/list.module.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++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\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 __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\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","/* tslint:disable:no-empty */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n Attribute,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n QueryList,\n ViewEncapsulation,\n ChangeDetectorRef,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n NgZone,\n Optional\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusKeyManager, IFocusableOption } from '@ptsecurity/cdk/a11y';\nimport {\n DOWN_ARROW,\n END,\n ENTER,\n hasModifierKey,\n HOME,\n PAGE_DOWN,\n PAGE_UP,\n SPACE,\n TAB,\n UP_ARROW\n} from '@ptsecurity/cdk/keycodes';\nimport {\n McLine,\n CanDisable,\n mixinDisabled,\n toBoolean,\n CanDisableCtor,\n HasTabIndexCtor,\n mixinTabIndex,\n HasTabIndex,\n MultipleMode,\n McOptgroup\n} from '@ptsecurity/mosaic/core';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { startWith, take, takeUntil } from 'rxjs/operators';\n\n\n// tslint:disable-next-line:naming-convention\nexport interface McOptionEvent {\n option: McListOption;\n}\n\n/**\n * Component for list-options of selection-list. Each list-option can automatically\n * generate a checkbox and can put current item into the selectionModel of selection-list\n * if the current item is selected.\n */\n@Component({\n exportAs: 'mcListOption',\n selector: 'mc-list-option',\n host: {\n '[attr.tabindex]': 'tabIndex',\n\n class: 'mc-list-option mc-no-select',\n '[class.mc-selected]': 'selected',\n '[class.mc-focused]': 'hasFocus',\n '[class.mc-disabled]': 'disabled',\n\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(click)': 'handleClick($event)'\n },\n templateUrl: 'list-option.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McListOption implements OnDestroy, OnInit, IFocusableOption {\n hasFocus: boolean = false;\n\n readonly onFocus = new Subject<McOptionEvent>();\n\n readonly onBlur = new Subject<McOptionEvent>();\n\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n @ViewChild('text', { static: false }) text: ElementRef;\n\n // Whether the label should appear before or after the checkbox. Defaults to 'after'\n @Input() checkboxPosition: 'before' | 'after';\n\n @Input() value: any;\n\n @Input()\n get disabled() {\n return (this.listSelection && this.listSelection.disabled) || (this.group && this.group.disabled) ||\n this._disabled;\n }\n\n set disabled(value: any) {\n const newValue = toBoolean(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;\n }\n\n set showCheckbox(value: any) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n @Input()\n get selected(): boolean {\n return this.listSelection.selectionModel && this.listSelection.selectionModel.isSelected(this) || false;\n }\n\n set selected(value: boolean) {\n const isSelected = toBoolean(value);\n\n if (isSelected !== this._selected) {\n this.setSelected(isSelected);\n\n this.listSelection.reportValueChange();\n }\n }\n\n private _selected = false;\n\n get tabIndex(): any {\n return this.disabled ? null : -1;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n private ngZone: NgZone,\n @Inject(forwardRef(() => McListSelection)) public listSelection: McListSelection,\n @Optional() readonly group: McOptgroup\n ) {}\n\n ngOnInit() {\n if (this._selected) {\n // List options that are selected at initialization can't be reported properly to the form\n // control. This is because it takes some time until the selection-list knows about all\n // available options. Also it can happen that the ControlValueAccessor has an initial value\n // that should be used instead. Deferring the value change report to the next tick ensures\n // that the form control value is not being overwritten.\n const wasSelected = this._selected;\n\n Promise.resolve().then(() => {\n if (this._selected || wasSelected) {\n this.selected = true;\n this.changeDetector.markForCheck();\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this.selected) {\n // We have to delay this until the next tick in order\n // to avoid changed after checked errors.\n Promise.resolve().then(() => this.selected = false);\n }\n\n this.listSelection.removeOptionFromList(this);\n }\n\n toggle(): void {\n this.selected = !this.selected;\n }\n\n getLabel() {\n return this.text ? this.text.nativeElement.textContent : '';\n }\n\n setSelected(selected: boolean) {\n if (this._selected === selected || !this.listSelection.selectionModel) { return; }\n\n this._selected = selected;\n\n if (selected) {\n this.listSelection.selectionModel.select(this);\n } else {\n this.listSelection.selectionModel.deselect(this);\n }\n\n this.changeDetector.markForCheck();\n }\n\n getHeight(): number {\n return this.elementRef.nativeElement.getClientRects()[0].height;\n }\n\n handleClick($event) {\n if (this.disabled) { return; }\n\n this.listSelection.setSelectedOptionsByClick(\n this, hasModifierKey($event, 'shiftKey'), hasModifierKey($event, 'ctrlKey')\n );\n }\n\n focus() {\n if (!this.hasFocus) {\n this.elementRef.nativeElement.focus();\n\n this.onFocus.next({ option: this });\n\n Promise.resolve().then(() => {\n this.hasFocus = true;\n\n this.changeDetector.markForCheck();\n });\n }\n }\n\n blur(): void {\n // When animations are enabled, Angular may end up removing the option from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\n // that moves focus not the next item. To work around the issue, we defer marking the option\n // as not focused until the next time the zone stabilizes.\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.ngZone.run(() => {\n this.hasFocus = false;\n\n this.onBlur.next({ option: this });\n });\n });\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n\n\nexport const MC_SELECTION_LIST_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McListSelection),\n multi: true\n};\n\nexport class McListSelectionChange {\n constructor(public source: McListSelection, public option: McListOption) {}\n}\n\n\nexport class McListSelectionBase {}\n\n// tslint:disable-next-line:naming-convention\nexport const McListSelectionMixinBase: CanDisableCtor & HasTabIndexCtor & typeof McListSelectionBase\n = mixinTabIndex(mixinDisabled(McListSelectionBase));\n\n@Component({\n exportAs: 'mcListSelection',\n selector: 'mc-list-selection',\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n '[attr.tabindex]': 'tabIndex',\n\n class: 'mc-list-selection',\n\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(keydown)': 'onKeyDown($event)',\n '(window:resize)': 'updateScrollSize()'\n },\n providers: [MC_SELECTION_LIST_VALUE_ACCESSOR],\n preserveWhitespaces: false\n})\nexport class McListSelection extends McListSelectionMixinBase implements CanDisable, HasTabIndex, AfterContentInit,\n ControlValueAccessor {\n\n keyManager: FocusKeyManager<McListOption>;\n\n @ContentChildren(McListOption, { descendants: true }) options: QueryList<McListOption>;\n\n autoSelect: boolean;\n noUnselect: boolean;\n\n multipleMode: MultipleMode | null;\n\n get multiple(): boolean {\n return !!this.multipleMode;\n }\n\n @Input() horizontal: boolean = false;\n\n @Input()\n get tabIndex(): any {\n return this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n get showCheckbox(): boolean {\n return this.multipleMode === MultipleMode.CHECKBOX;\n }\n\n // Emits a change event whenever the selected state of an option changes.\n @Output() readonly selectionChange: EventEmitter<McListSelectionChange> = new EventEmitter<McListSelectionChange>();\n\n selectionModel: SelectionModel<McListOption>;\n\n get optionFocusChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onFocus));\n }\n\n get optionBlurChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onBlur));\n }\n\n // Used for storing the values that were assigned before the options were initialized.\n private tempValues: string[] | null;\n\n /** Emits whenever the component is destroyed. */\n private readonly destroyed = new Subject<void>();\n\n private optionFocusSubscription: Subscription | null;\n\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n private element: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('tabindex') tabIndex: string,\n @Attribute('auto-select') autoSelect: string,\n @Attribute('no-unselect') noUnselect: string,\n @Attribute('multiple') multiple: string\n ) {\n super();\n\n this.autoSelect = autoSelect === null ? true : toBoolean(autoSelect);\n this.noUnselect = noUnselect === null ? true : toBoolean(noUnselect);\n\n if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {\n this.multipleMode = multiple;\n } else if (multiple !== null) {\n this.multipleMode = MultipleMode.CHECKBOX;\n }\n\n if (this.multipleMode === MultipleMode.CHECKBOX) {\n this.autoSelect = false;\n this.noUnselect = false;\n }\n\n this._tabIndex = parseInt(tabIndex) || 0;\n\n this.selectionModel = new SelectionModel<McListOption>(this.multiple);\n }\n\n ngAfterContentInit(): void {\n this.horizontal = toBoolean(this.horizontal);\n\n this.keyManager = new FocusKeyManager<McListOption>(this.options)\n .withTypeAhead()\n .withVerticalOrientation(!this.horizontal)\n .withHorizontalOrientation(this.horizontal ? 'ltr' : null);\n\n this.keyManager.tabOut\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => {\n this._tabIndex = -1;\n\n setTimeout(() => {\n this._tabIndex = 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n if (this.tempValues) {\n this.setOptionsFromValues(this.tempValues);\n this.tempValues = null;\n }\n\n this.selectionModel.changed\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n for (const item of event.added) { item.selected = true; }\n\n for (const item of event.removed) { item.selected = false; }\n });\n\n this.options.changes\n .pipe(startWith(null), takeUntil(this.destroyed))\n .subscribe(() => {\n this.resetOptions();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n });\n\n this.updateScrollSize();\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n\n this.destroyed.complete();\n }\n\n focus(): void {\n if (this.options.length === 0) { return; }\n\n this.keyManager.setFirstItemActive();\n }\n\n blur() {\n if (!this.hasFocusedOption()) {\n this.keyManager.setActiveItem(-1);\n }\n\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n }\n\n selectAll() {\n this.options.forEach((option) => option.setSelected(true));\n\n this.reportValueChange();\n }\n\n deselectAll() {\n this.options.forEach((option) => option.setSelected(false));\n\n this.reportValueChange();\n }\n\n updateScrollSize(): void {\n if (this.horizontal || !this.options.first) { return; }\n\n this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));\n }\n\n setSelectedOptionsByClick(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n\n this.selectionModel.toggle(option);\n } else {\n if (this.autoSelect) {\n if (this.multipleMode !== MultipleMode.KEYBOARD) {\n this.selectionModel.toggle(option);\n }\n\n if (this.multipleMode === MultipleMode.KEYBOARD || !this.multiple) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n }\n }\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptionsByKey(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n } else {\n\n if (this.multipleMode === MultipleMode.KEYBOARD || !this.multiple) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n }\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptions(option: McListOption): void {\n const selectedOptionState = option.selected;\n\n let fromIndex = this.keyManager.previousActiveItemIndex;\n let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;\n\n if (toIndex === fromIndex) { return; }\n\n if (fromIndex > toIndex) {\n [fromIndex, toIndex] = [toIndex, fromIndex];\n }\n\n this.options\n .toArray()\n .slice(fromIndex, toIndex + 1)\n .filter((item) => !item.disabled)\n .forEach((renderedOption) => {\n const isLastRenderedOption = renderedOption === this.keyManager.activeItem;\n\n if (isLastRenderedOption && renderedOption.selected && this.noUnselect) { return; }\n\n renderedOption.setSelected(!selectedOptionState);\n });\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(values: string[]): void {\n if (this.options) {\n this.setOptionsFromValues(values || []);\n } else {\n this.tempValues = values;\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as a part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n if (this.options) {\n this.options.forEach((option) => option.disabled = isDisabled);\n }\n }\n\n getSelectedOptionValues(): string[] {\n return this.options.filter((option) => option.selected).map((option) => option.value);\n }\n\n // Toggles the selected state of the currently focused option.\n toggleFocusedOption(): void {\n const focusedIndex = this.keyManager.activeItemIndex;\n\n if (focusedIndex != null && this.isValidIndex(focusedIndex)) {\n const focusedOption: McListOption = this.options.toArray()[focusedIndex];\n\n if (focusedOption && this.canDeselectLast(focusedOption)) {\n focusedOption.toggle();\n\n // Emit a change event because the focused option changed its state through user interaction.\n this.emitChangeEvent(focusedOption);\n }\n }\n }\n\n canDeselectLast(listOption: McListOption): boolean {\n return !(this.noUnselect && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n return this.element.nativeElement.getClientRects()[0].height;\n }\n\n // View to model callback that should be called if the list or its options lost focus.\n // tslint:disable-next-line:no-empty\n onTouched: () => void = () => {};\n\n // Removes an option from the selection list and updates the active item.\n removeOptionFromList(option: McListOption) {\n if (option.hasFocus) {\n const optionIndex = this.getOptionIndex(option);\n\n // Check whether the option is the last item\n if (optionIndex > 0) {\n this.keyManager.setPreviousItemActive();\n } else if (optionIndex === 0 && this.options.length > 1) {\n this.keyManager.setNextItemActive();\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n switch (keyCode) {\n case SPACE:\n case ENTER:\n this.toggleFocusedOption();\n\n break;\n\n case TAB:\n this.keyManager.tabOut.next();\n\n return;\n\n case DOWN_ARROW:\n this.keyManager.setNextItemActive();\n\n break;\n case UP_ARROW:\n this.keyManager.setPreviousItemActive();\n\n break;\n case HOME:\n this.keyManager.setFirstItemActive();\n\n break;\n case END:\n this.keyManager.setLastItemActive();\n\n break;\n case PAGE_UP:\n this.keyManager.setPreviousPageItemActive();\n\n break;\n case PAGE_DOWN:\n this.keyManager.setNextPageItemActive();\n\n break;\n default:\n return;\n }\n\n event.preventDefault();\n\n this.setSelectedOptionsByKey(\n this.keyManager.activeItem as McListOption,\n hasModifierKey(event, 'shiftKey'),\n hasModifierKey(event, 'ctrlKey')\n );\n }\n\n // Reports a value change to the ControlValueAccessor\n reportValueChange() {\n if (this.options) {\n this.onChange(this.getSelectedOptionValues());\n }\n }\n\n // Emits a change event if the selected state of an option changed.\n emitChangeEvent(option: McListOption) {\n this.selectionChange.emit(new McListSelectionChange(this, option));\n }\n\n protected updateTabIndex(): void {\n this._tabIndex = this.options.length === 0 ? -1 : 0;\n }\n\n private resetOptions() {\n this.dropSubscriptions();\n this.listenToOptionsFocus();\n }\n\n private dropSubscriptions() {\n if (this.optionFocusSubscription) {\n this.optionFocusSubscription.unsubscribe();\n this.optionFocusSubscription = null;\n }\n\n if (this.optionBlurSubscription) {\n this.optionBlurSubscription.unsubscribe();\n this.optionBlurSubscription = null;\n }\n }\n\n private listenToOptionsFocus(): void {\n this.optionFocusSubscription = this.optionFocusChanges\n .subscribe((event) => {\n const index: number = this.options.toArray().indexOf(event.option);\n\n if (this.isValidIndex(index)) {\n this.keyManager.updateActiveItem(index);\n }\n });\n\n this.optionBlurSubscription = this.optionBlurChanges\n .subscribe(() => this.blur());\n }\n\n /** Checks whether any of the options is focused. */\n private hasFocusedOption() {\n return this.options.some((option) => option.hasFocus);\n }\n\n // Returns the option with the specified value.\n private getOptionByValue(value: string): McListOption | undefined {\n return this.options.find((option) => option.value === value);\n }\n\n // Sets the selected options based on the specified values.\n private setOptionsFromValues(values: string[]) {\n this.options.forEach((option) => option.setSelected(false));\n\n values\n .map((value) => this.getOptionByValue(value))\n .filter(Boolean)\n .forEach((option) => option!.setSelected(true));\n }\n\n /**\n * Utility to ensure all indexes are valid.\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of options.\n */\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.options.length;\n }\n\n // Returns the index of the specified list option.\n private getOptionIndex(option: McListOption): number {\n return this.options.toArray().indexOf(option);\n }\n\n // View to model callback that should be called whenever the selected options change.\n private onChange: (value: any) => void = (_: any) => {};\n}\n","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\nimport {\n AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, Directive, ElementRef, QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\n\n\nexport class McListBase {}\n\n@Component({\n selector: 'mc-list',\n host: { class: 'mc-list' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McList extends McListBase {}\n\n\n/**\n * Directive whose purpose is to add the mc- CSS styling to this selector.\n * @docs-private\n */\n@Directive({\n selector: '[mc-subheader], [mcSubheader]',\n host: { class: 'mc-subheader' }\n})\nexport class McListSubheaderCssStyler {}\n\n\n// Boilerplate for applying mixins to McListItem.\nexport class McListItemBase {}\n\n@Component({\n selector: 'mc-list-item, a[mc-list-item]',\n host: {\n class: 'mc-list-item',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()'\n },\n templateUrl: './list-item.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McListItem extends McListItemBase implements AfterContentInit {\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n private lineSetter: McLineSetter;\n\n constructor(private _element: ElementRef) {\n super();\n }\n\n ngAfterContentInit() {\n this.lineSetter = new McLineSetter(this.lines, this._element);\n }\n\n handleFocus() {\n this._element.nativeElement.classList.add('mc-focused');\n }\n\n handleBlur() {\n this._element.nativeElement.classList.remove('mc-focused');\n }\n\n getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { A11yModule } from '@ptsecurity/cdk/a11y';\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\n\nimport { McListSelection, McListOption } from './list-selection.component';\nimport { McList, McListItem, McListSubheaderCssStyler } from './list.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n McPseudoCheckboxModule,\n McLineModule,\n McOptionModule\n ],\n exports: [\n McList,\n McListSelection,\n McListItem,\n McListOption,\n McOptionModule,\n McListSubheaderCssStyler\n ],\n declarations: [\n McList,\n McListSelection,\n McListItem,\n McListOption,\n McListSubheaderCssStyler\n ]\n})\nexport class McListModule {}\n"],"names":["__extends","d","b","__","this","constructor","extendStatics","prototype","Object","create","setPrototypeOf","__proto__","Array","p","hasOwnProperty","McListOption","elementRef","changeDetector","ngZone","listSelection","group","hasFocus","onFocus","Subject","onBlur","_disabled","_selected","defineProperty","disabled","value","newValue","toBoolean","markForCheck","undefined","_showCheckbox","showCheckbox","coerceBooleanProperty","selectionModel","isSelected","setSelected","reportValueChange","ngOnInit","_this","wasSelected_1","Promise","resolve","then","selected","ngOnDestroy","removeOptionFromList","toggle","getLabel","text","nativeElement","textContent","select","deselect","getHeight","getClientRects","height","handleClick","$event","setSelectedOptionsByClick","hasModifierKey","focus","next","option","blur","onStable","asObservable","pipe","take","subscribe","run","getHostElement","type","Component","args","exportAs","selector","host","[attr.tabindex]","class","[class.mc-selected]","[class.mc-focused]","[class.mc-disabled]","(focus)","(blur)","(click)","template","encapsulation","ViewEncapsulation","None","preserveWhitespaces","changeDetection","ChangeDetectionStrategy","OnPush","ElementRef","ChangeDetectorRef","NgZone","McListSelection","decorators","Inject","forwardRef","McOptgroup","Optional","lines","ContentChildren","McLine","ViewChild","static","checkboxPosition","Input","MC_SELECTION_LIST_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","multi","McListSelectionChange","source","McListSelectionBase","McListSelectionMixinBase","mixinTabIndex","mixinDisabled","_super","element","changeDetectorRef","tabIndex","autoSelect","noUnselect","multiple","call","horizontal","_tabIndex","selectionChange","EventEmitter","destroyed","onTouched","onChange","_","MultipleMode","CHECKBOX","KEYBOARD","multipleMode","parseInt","SelectionModel","tslib_1.__extends","merge","apply","options","map","ngAfterContentInit","keyManager","FocusKeyManager","withTypeAhead","withVerticalOrientation","withHorizontalOrientation","tabOut","takeUntil","setTimeout","tempValues","setOptionsFromValues","changed","event","_i","_a","added","length","item","_b","_c","removed","changes","startWith","resetOptions","updateTabIndex","updateScrollSize","complete","setFirstItemActive","hasFocusedOption","setActiveItem","selectAll","forEach","deselectAll","first","withScrollSize","Math","floor","shiftKey","ctrlKey","setSelectedOptions","canDeselectLast","emitChangeEvent","setSelectedOptionsByKey","selectedOptionState","fromIndex","previousActiveItemIndex","toIndex","activeItemIndex","toArray","slice","filter","renderedOption","activeItem","writeValue","values","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","getSelectedOptionValues","toggleFocusedOption","focusedIndex","isValidIndex","focusedOption","listOption","optionIndex","getOptionIndex","setPreviousItemActive","setNextItemActive","onKeyDown","keyCode","SPACE","ENTER","TAB","DOWN_ARROW","UP_ARROW","HOME","END","setLastItemActive","PAGE_UP","setPreviousPageItemActive","PAGE_DOWN","setNextPageItemActive","preventDefault","emit","dropSubscriptions","listenToOptionsFocus","optionFocusSubscription","unsubscribe","optionBlurSubscription","optionFocusChanges","index","indexOf","updateActiveItem","optionBlurChanges","some","getOptionByValue","find","Boolean","styles","inputs","(keydown)","(window:resize)","providers","String","Attribute","descendants","Output","McListBase","McList","McListSubheaderCssStyler","Directive","McListItemBase","McListItem","_element","lineSetter","McLineSetter","handleFocus","classList","add","handleBlur","remove","McListModule","NgModule","imports","CommonModule","A11yModule","McPseudoCheckboxModule","McLineModule","McOptionModule","exports","declarations"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"mosaic-list.umd.min.js","sources":["../../node_modules/tslib/tslib.es6.js","../../packages/mosaic/list/list-selection.component.ts","../../packages/mosaic/list/list.component.ts","../../packages/mosaic/list/list.module.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++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\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 __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\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","/* tslint:disable:no-empty */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n Attribute,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n QueryList,\n ViewEncapsulation,\n ChangeDetectorRef,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild,\n NgZone,\n Optional\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusKeyManager, IFocusableOption } from '@ptsecurity/cdk/a11y';\nimport {\n DOWN_ARROW,\n END,\n ENTER,\n hasModifierKey,\n HOME,\n PAGE_DOWN,\n PAGE_UP,\n SPACE,\n TAB,\n UP_ARROW\n} from '@ptsecurity/cdk/keycodes';\nimport {\n McLine,\n CanDisable,\n mixinDisabled,\n toBoolean,\n CanDisableCtor,\n HasTabIndexCtor,\n mixinTabIndex,\n HasTabIndex,\n MultipleMode,\n McOptgroup\n} from '@ptsecurity/mosaic/core';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { startWith, take, takeUntil } from 'rxjs/operators';\n\n\n// tslint:disable-next-line:naming-convention\nexport interface McOptionEvent {\n option: McListOption;\n}\n\n/**\n * Component for list-options of selection-list. Each list-option can automatically\n * generate a checkbox and can put current item into the selectionModel of selection-list\n * if the current item is selected.\n */\n@Component({\n exportAs: 'mcListOption',\n selector: 'mc-list-option',\n host: {\n '[attr.tabindex]': 'tabIndex',\n\n class: 'mc-list-option mc-no-select',\n '[class.mc-selected]': 'selected',\n '[class.mc-focused]': 'hasFocus',\n '[class.mc-disabled]': 'disabled',\n\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(click)': 'handleClick($event)'\n },\n templateUrl: 'list-option.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McListOption implements OnDestroy, OnInit, IFocusableOption {\n hasFocus: boolean = false;\n\n readonly onFocus = new Subject<McOptionEvent>();\n\n readonly onBlur = new Subject<McOptionEvent>();\n\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n @ViewChild('text', { static: false }) text: ElementRef;\n\n // Whether the label should appear before or after the checkbox. Defaults to 'after'\n @Input() checkboxPosition: 'before' | 'after';\n\n /**\n * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`\n * in the first cycle.\n */\n private inputsInitialized = false;\n\n @Input()\n get value(): any { return this._value; }\n set value(newValue: any) {\n if (this.selected && newValue !== this.value && this.inputsInitialized) {\n this.selected = false;\n }\n\n this._value = newValue;\n }\n private _value: any;\n\n @Input()\n get disabled() {\n return (this.listSelection && this.listSelection.disabled) || (this.group && this.group.disabled) ||\n this._disabled;\n }\n\n set disabled(value: any) {\n const newValue = toBoolean(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;\n }\n\n set showCheckbox(value: any) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n @Input()\n get selected(): boolean {\n return this.listSelection.selectionModel && this.listSelection.selectionModel.isSelected(this) || false;\n }\n\n set selected(value: boolean) {\n const isSelected = toBoolean(value);\n\n if (isSelected !== this._selected) {\n this.setSelected(isSelected);\n\n this.listSelection.reportValueChange();\n }\n }\n\n private _selected = false;\n\n get tabIndex(): any {\n return this.disabled ? null : -1;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n private ngZone: NgZone,\n @Inject(forwardRef(() => McListSelection)) public listSelection: McListSelection,\n @Optional() readonly group: McOptgroup\n ) {}\n\n ngOnInit() {\n const list = this.listSelection;\n\n if (list._value && list._value.some((value) => list.compareWith(value, this._value))) {\n this.setSelected(true);\n }\n\n const wasSelected = this._selected;\n\n // List options that are selected at initialization can't be reported properly to the form\n // control. This is because it takes some time until the selection-list knows about all\n // available options. Also it can happen that the ControlValueAccessor has an initial value\n // that should be used instead. Deferring the value change report to the next tick ensures\n // that the form control value is not being overwritten.\n Promise.resolve().then(() => {\n if (this._selected || wasSelected) {\n this.selected = true;\n this.changeDetector.markForCheck();\n }\n });\n\n this.inputsInitialized = true;\n }\n\n ngOnDestroy(): void {\n if (this.selected) {\n // We have to delay this until the next tick in order\n // to avoid changed after checked errors.\n Promise.resolve().then(() => this.selected = false);\n }\n\n this.listSelection.removeOptionFromList(this);\n }\n\n toggle(): void {\n this.selected = !this.selected;\n }\n\n getLabel() {\n return this.text ? this.text.nativeElement.textContent : '';\n }\n\n setSelected(selected: boolean) {\n if (this._selected === selected || !this.listSelection.selectionModel) { return; }\n\n this._selected = selected;\n\n if (selected) {\n this.listSelection.selectionModel.select(this);\n } else {\n this.listSelection.selectionModel.deselect(this);\n }\n\n this.changeDetector.markForCheck();\n }\n\n getHeight(): number {\n return this.elementRef.nativeElement.getClientRects()[0].height;\n }\n\n handleClick($event) {\n if (this.disabled) { return; }\n\n this.listSelection.setSelectedOptionsByClick(\n this, hasModifierKey($event, 'shiftKey'), hasModifierKey($event, 'ctrlKey')\n );\n }\n\n focus() {\n if (!this.hasFocus) {\n this.elementRef.nativeElement.focus();\n\n this.onFocus.next({ option: this });\n\n Promise.resolve().then(() => {\n this.hasFocus = true;\n\n this.changeDetector.markForCheck();\n });\n }\n }\n\n blur(): void {\n // When animations are enabled, Angular may end up removing the option from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\n // that moves focus not the next item. To work around the issue, we defer marking the option\n // as not focused until the next time the zone stabilizes.\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.ngZone.run(() => {\n this.hasFocus = false;\n\n this.onBlur.next({ option: this });\n });\n });\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n\n\nexport const MC_SELECTION_LIST_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McListSelection),\n multi: true\n};\n\nexport class McListSelectionChange {\n constructor(public source: McListSelection, public option: McListOption) {}\n}\n\n\nexport class McListSelectionBase {}\n\n// tslint:disable-next-line:naming-convention\nexport const McListSelectionMixinBase: CanDisableCtor & HasTabIndexCtor & typeof McListSelectionBase\n = mixinTabIndex(mixinDisabled(McListSelectionBase));\n\n@Component({\n exportAs: 'mcListSelection',\n selector: 'mc-list-selection',\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n '[attr.tabindex]': 'tabIndex',\n\n class: 'mc-list-selection',\n\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(keydown)': 'onKeyDown($event)',\n '(window:resize)': 'updateScrollSize()'\n },\n providers: [MC_SELECTION_LIST_VALUE_ACCESSOR],\n preserveWhitespaces: false\n})\nexport class McListSelection extends McListSelectionMixinBase implements CanDisable, HasTabIndex, AfterContentInit,\n ControlValueAccessor {\n\n keyManager: FocusKeyManager<McListOption>;\n\n @ContentChildren(McListOption, { descendants: true }) options: QueryList<McListOption>;\n\n autoSelect: boolean;\n noUnselect: boolean;\n\n multipleMode: MultipleMode | null;\n\n get multiple(): boolean {\n return !!this.multipleMode;\n }\n\n @Input() horizontal: boolean = false;\n\n @Input()\n get tabIndex(): any {\n return this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n get showCheckbox(): boolean {\n return this.multipleMode === MultipleMode.CHECKBOX;\n }\n\n // Emits a change event whenever the selected state of an option changes.\n @Output() readonly selectionChange: EventEmitter<McListSelectionChange> = new EventEmitter<McListSelectionChange>();\n\n selectionModel: SelectionModel<McListOption>;\n\n get optionFocusChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onFocus));\n }\n\n get optionBlurChanges(): Observable<McOptionEvent> {\n return merge(...this.options.map((option) => option.onBlur));\n }\n\n // tslint:disable-next-line:orthodox-getter-and-setter naming-convention\n _value: string[] | null;\n\n /** Emits whenever the component is destroyed. */\n private readonly destroyed = new Subject<void>();\n\n private optionFocusSubscription: Subscription | null;\n\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n private element: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('tabindex') tabIndex: string,\n @Attribute('auto-select') autoSelect: string,\n @Attribute('no-unselect') noUnselect: string,\n @Attribute('multiple') multiple: string\n ) {\n super();\n\n this.autoSelect = autoSelect === null ? true : toBoolean(autoSelect);\n this.noUnselect = noUnselect === null ? true : toBoolean(noUnselect);\n\n if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {\n this.multipleMode = multiple;\n } else if (multiple !== null) {\n this.multipleMode = MultipleMode.CHECKBOX;\n }\n\n if (this.multipleMode === MultipleMode.CHECKBOX) {\n this.noUnselect = false;\n }\n\n this._tabIndex = parseInt(tabIndex) || 0;\n\n this.selectionModel = new SelectionModel<McListOption>(this.multiple);\n }\n\n /**\n * Function used for comparing an option against the selected value when determining which\n * options should appear as selected. The first argument is the value of an options. The second\n * one is a value from the selected value. A boolean must be returned.\n */\n @Input() compareWith: (o1: any, o2: any) => boolean = (a1, a2) => a1 === a2;\n\n ngAfterContentInit(): void {\n this.horizontal = toBoolean(this.horizontal);\n\n this.keyManager = new FocusKeyManager<McListOption>(this.options)\n .withTypeAhead()\n .withVerticalOrientation(!this.horizontal)\n .withHorizontalOrientation(this.horizontal ? 'ltr' : null);\n\n this.keyManager.tabOut\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => {\n this._tabIndex = -1;\n\n setTimeout(() => {\n this._tabIndex = 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n if (this._value) {\n this.setOptionsFromValues(this._value);\n }\n\n this.selectionModel.changed\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n for (const item of event.added) { item.selected = true; }\n\n for (const item of event.removed) { item.selected = false; }\n });\n\n this.options.changes\n .pipe(startWith(null), takeUntil(this.destroyed))\n .subscribe(() => {\n this.resetOptions();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n });\n\n this.updateScrollSize();\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n\n this.destroyed.complete();\n }\n\n focus(): void {\n if (this.options.length === 0) { return; }\n\n this.keyManager.setFirstItemActive();\n }\n\n blur() {\n if (!this.hasFocusedOption()) {\n this.keyManager.setActiveItem(-1);\n }\n\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n }\n\n selectAll() {\n this.options.forEach((option) => option.setSelected(true));\n\n this.reportValueChange();\n }\n\n deselectAll() {\n this.options.forEach((option) => option.setSelected(false));\n\n this.reportValueChange();\n }\n\n updateScrollSize(): void {\n if (this.horizontal || !this.options.first) { return; }\n\n this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));\n }\n\n setSelectedOptionsByClick(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n\n this.selectionModel.toggle(option);\n } else {\n if (this.autoSelect) {\n if (this.multipleMode !== MultipleMode.KEYBOARD) {\n this.selectionModel.toggle(option);\n }\n\n if (this.multipleMode === MultipleMode.KEYBOARD || !this.multiple) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n }\n }\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptionsByKey(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n } else {\n\n if (this.multipleMode === MultipleMode.KEYBOARD || !this.multiple) {\n this.options.forEach((item) => item.setSelected(false));\n option.setSelected(true);\n }\n }\n\n this.emitChangeEvent(option);\n this.reportValueChange();\n }\n\n setSelectedOptions(option: McListOption): void {\n const selectedOptionState = option.selected;\n\n let fromIndex = this.keyManager.previousActiveItemIndex;\n let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;\n\n if (toIndex === fromIndex) { return; }\n\n if (fromIndex > toIndex) {\n [fromIndex, toIndex] = [toIndex, fromIndex];\n }\n\n this.options\n .toArray()\n .slice(fromIndex, toIndex + 1)\n .filter((item) => !item.disabled)\n .forEach((renderedOption) => {\n const isLastRenderedOption = renderedOption === this.keyManager.activeItem;\n\n if (isLastRenderedOption && renderedOption.selected && this.noUnselect) { return; }\n\n renderedOption.setSelected(!selectedOptionState);\n });\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(values: string[]): void {\n this._value = values;\n\n if (this.options) {\n this.setOptionsFromValues(values || []);\n }\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as a part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n if (this.options) {\n this.options.forEach((option) => option.disabled = isDisabled);\n }\n }\n\n getSelectedOptionValues(): string[] {\n return this.options.filter((option) => option.selected).map((option) => option.value);\n }\n\n // Toggles the selected state of the currently focused option.\n toggleFocusedOption(): void {\n const focusedIndex = this.keyManager.activeItemIndex;\n\n if (focusedIndex != null && this.isValidIndex(focusedIndex)) {\n const focusedOption: McListOption = this.options.toArray()[focusedIndex];\n\n if (focusedOption && this.canDeselectLast(focusedOption)) {\n focusedOption.toggle();\n\n // Emit a change event because the focused option changed its state through user interaction.\n this.emitChangeEvent(focusedOption);\n }\n }\n }\n\n canDeselectLast(listOption: McListOption): boolean {\n return !(this.noUnselect && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n return this.element.nativeElement.getClientRects()[0].height;\n }\n\n // View to model callback that should be called if the list or its options lost focus.\n // tslint:disable-next-line:no-empty\n onTouched: () => void = () => {};\n\n // Removes an option from the selection list and updates the active item.\n removeOptionFromList(option: McListOption) {\n if (option.hasFocus) {\n const optionIndex = this.getOptionIndex(option);\n\n // Check whether the option is the last item\n if (optionIndex > 0) {\n this.keyManager.setPreviousItemActive();\n } else if (optionIndex === 0 && this.options.length > 1) {\n this.keyManager.setNextItemActive();\n }\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n switch (keyCode) {\n case SPACE:\n case ENTER:\n this.toggleFocusedOption();\n\n break;\n\n case TAB:\n this.keyManager.tabOut.next();\n\n return;\n\n case DOWN_ARROW:\n this.keyManager.setNextItemActive();\n\n break;\n case UP_ARROW:\n this.keyManager.setPreviousItemActive();\n\n break;\n case HOME:\n this.keyManager.setFirstItemActive();\n\n break;\n case END:\n this.keyManager.setLastItemActive();\n\n break;\n case PAGE_UP:\n this.keyManager.setPreviousPageItemActive();\n\n break;\n case PAGE_DOWN:\n this.keyManager.setNextPageItemActive();\n\n break;\n default:\n return;\n }\n\n event.preventDefault();\n\n this.setSelectedOptionsByKey(\n this.keyManager.activeItem as McListOption,\n hasModifierKey(event, 'shiftKey'),\n hasModifierKey(event, 'ctrlKey')\n );\n }\n\n // Reports a value change to the ControlValueAccessor\n reportValueChange() {\n if (this.options) {\n const value = this.getSelectedOptionValues();\n this.onChange(value);\n this._value = value;\n }\n }\n\n // Emits a change event if the selected state of an option changed.\n emitChangeEvent(option: McListOption) {\n this.selectionChange.emit(new McListSelectionChange(this, option));\n }\n\n protected updateTabIndex(): void {\n this._tabIndex = this.options.length === 0 ? -1 : 0;\n }\n\n private resetOptions() {\n this.dropSubscriptions();\n this.listenToOptionsFocus();\n }\n\n private dropSubscriptions() {\n if (this.optionFocusSubscription) {\n this.optionFocusSubscription.unsubscribe();\n this.optionFocusSubscription = null;\n }\n\n if (this.optionBlurSubscription) {\n this.optionBlurSubscription.unsubscribe();\n this.optionBlurSubscription = null;\n }\n }\n\n private listenToOptionsFocus(): void {\n this.optionFocusSubscription = this.optionFocusChanges\n .subscribe((event) => {\n const index: number = this.options.toArray().indexOf(event.option);\n\n if (this.isValidIndex(index)) {\n this.keyManager.updateActiveItem(index);\n }\n });\n\n this.optionBlurSubscription = this.optionBlurChanges\n .subscribe(() => this.blur());\n }\n\n /** Checks whether any of the options is focused. */\n private hasFocusedOption() {\n return this.options.some((option) => option.hasFocus);\n }\n\n // Returns the option with the specified value.\n private getOptionByValue(value: string): McListOption | undefined {\n return this.options.find((option) => option.value === value);\n }\n\n // Sets the selected options based on the specified values.\n private setOptionsFromValues(values: string[]) {\n this.options.forEach((option) => option.setSelected(false));\n\n values\n .map((value) => this.getOptionByValue(value))\n .filter(Boolean)\n .forEach((option) => option!.setSelected(true));\n }\n\n /**\n * Utility to ensure all indexes are valid.\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of options.\n */\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.options.length;\n }\n\n // Returns the index of the specified list option.\n private getOptionIndex(option: McListOption): number {\n return this.options.toArray().indexOf(option);\n }\n\n // View to model callback that should be called whenever the selected options change.\n private onChange: (value: any) => void = (_: any) => {};\n}\n","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\nimport {\n AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, Directive, ElementRef, QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\n\n\nexport class McListBase {}\n\n@Component({\n selector: 'mc-list',\n host: { class: 'mc-list' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McList extends McListBase {}\n\n\n/**\n * Directive whose purpose is to add the mc- CSS styling to this selector.\n * @docs-private\n */\n@Directive({\n selector: '[mc-subheader], [mcSubheader]',\n host: { class: 'mc-subheader' }\n})\nexport class McListSubheaderCssStyler {}\n\n\n// Boilerplate for applying mixins to McListItem.\nexport class McListItemBase {}\n\n@Component({\n selector: 'mc-list-item, a[mc-list-item]',\n host: {\n class: 'mc-list-item',\n '(focus)': 'handleFocus()',\n '(blur)': 'handleBlur()'\n },\n templateUrl: './list-item.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class McListItem extends McListItemBase implements AfterContentInit {\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n private lineSetter: McLineSetter;\n\n constructor(private _element: ElementRef) {\n super();\n }\n\n ngAfterContentInit() {\n this.lineSetter = new McLineSetter(this.lines, this._element);\n }\n\n handleFocus() {\n this._element.nativeElement.classList.add('mc-focused');\n }\n\n handleBlur() {\n this._element.nativeElement.classList.remove('mc-focused');\n }\n\n getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { A11yModule } from '@ptsecurity/cdk/a11y';\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\n\nimport { McListSelection, McListOption } from './list-selection.component';\nimport { McList, McListItem, McListSubheaderCssStyler } from './list.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n McPseudoCheckboxModule,\n McLineModule,\n McOptionModule\n ],\n exports: [\n McList,\n McListSelection,\n McListItem,\n McListOption,\n McOptionModule,\n McListSubheaderCssStyler\n ],\n declarations: [\n McList,\n McListSelection,\n McListItem,\n McListOption,\n McListSubheaderCssStyler\n ]\n})\nexport class McListModule {}\n"],"names":["__extends","d","b","__","this","constructor","extendStatics","prototype","Object","create","setPrototypeOf","__proto__","Array","p","hasOwnProperty","McListOption","elementRef","changeDetector","ngZone","listSelection","group","hasFocus","onFocus","Subject","onBlur","inputsInitialized","_disabled","_selected","defineProperty","_value","newValue","selected","value","disabled","toBoolean","markForCheck","undefined","_showCheckbox","showCheckbox","coerceBooleanProperty","selectionModel","isSelected","setSelected","reportValueChange","ngOnInit","_this","list","some","compareWith","wasSelected","Promise","resolve","then","ngOnDestroy","removeOptionFromList","toggle","getLabel","text","nativeElement","textContent","select","deselect","getHeight","getClientRects","height","handleClick","$event","setSelectedOptionsByClick","hasModifierKey","focus","next","option","blur","onStable","asObservable","pipe","take","subscribe","run","getHostElement","type","Component","args","exportAs","selector","host","[attr.tabindex]","class","[class.mc-selected]","[class.mc-focused]","[class.mc-disabled]","(focus)","(blur)","(click)","template","encapsulation","ViewEncapsulation","None","preserveWhitespaces","changeDetection","ChangeDetectionStrategy","OnPush","ElementRef","ChangeDetectorRef","NgZone","McListSelection","decorators","Inject","forwardRef","McOptgroup","Optional","lines","ContentChildren","McLine","ViewChild","static","checkboxPosition","Input","MC_SELECTION_LIST_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","multi","McListSelectionChange","source","McListSelectionBase","McListSelectionMixinBase","mixinTabIndex","mixinDisabled","_super","element","changeDetectorRef","tabIndex","autoSelect","noUnselect","multiple","call","horizontal","_tabIndex","selectionChange","EventEmitter","destroyed","a1","a2","onTouched","onChange","_","MultipleMode","CHECKBOX","KEYBOARD","multipleMode","parseInt","SelectionModel","tslib_1.__extends","merge","apply","options","map","ngAfterContentInit","keyManager","FocusKeyManager","withTypeAhead","withVerticalOrientation","withHorizontalOrientation","tabOut","takeUntil","setTimeout","setOptionsFromValues","changed","event","_i","_a","added","length","item","_b","_c","removed","changes","startWith","resetOptions","updateTabIndex","updateScrollSize","complete","setFirstItemActive","hasFocusedOption","setActiveItem","selectAll","forEach","deselectAll","first","withScrollSize","Math","floor","shiftKey","ctrlKey","setSelectedOptions","canDeselectLast","emitChangeEvent","setSelectedOptionsByKey","selectedOptionState","fromIndex","previousActiveItemIndex","toIndex","activeItemIndex","toArray","slice","filter","renderedOption","activeItem","writeValue","values","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","getSelectedOptionValues","toggleFocusedOption","focusedIndex","isValidIndex","focusedOption","listOption","optionIndex","getOptionIndex","setPreviousItemActive","setNextItemActive","onKeyDown","keyCode","SPACE","ENTER","TAB","DOWN_ARROW","UP_ARROW","HOME","END","setLastItemActive","PAGE_UP","setPreviousPageItemActive","PAGE_DOWN","setNextPageItemActive","preventDefault","emit","dropSubscriptions","listenToOptionsFocus","optionFocusSubscription","unsubscribe","optionBlurSubscription","optionFocusChanges","index","indexOf","updateActiveItem","optionBlurChanges","getOptionByValue","find","Boolean","styles","inputs","(keydown)","(window:resize)","providers","String","Attribute","descendants","Output","McListBase","McList","McListSubheaderCssStyler","Directive","McListItemBase","McListItem","_element","lineSetter","McLineSetter","handleFocus","classList","add","handleBlur","remove","McListModule","NgModule","imports","CommonModule","A11yModule","McPseudoCheckboxModule","McLineModule","McOptionModule","exports","declarations"],"mappings":"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"}
|
@@ -109,11 +109,16 @@
|
|
109
109
|
if (!this.input.ngControl) {
|
110
110
|
throw Error('McSelectSearch does not work without ngControl');
|
111
111
|
}
|
112
|
-
|
112
|
+
Promise.resolve().then((/**
|
113
113
|
* @return {?}
|
114
114
|
*/
|
115
115
|
function () {
|
116
|
-
_this.
|
116
|
+
_this.searchChangesSubscription = (/** @type {?} */ (_this.input.ngControl.valueChanges)).subscribe((/**
|
117
|
+
* @return {?}
|
118
|
+
*/
|
119
|
+
function () {
|
120
|
+
_this.isSearchChanged = true;
|
121
|
+
}));
|
117
122
|
}));
|
118
123
|
};
|
119
124
|
/**
|
@@ -141,6 +146,14 @@
|
|
141
146
|
event.stopPropagation();
|
142
147
|
}
|
143
148
|
}
|
149
|
+
// tslint:disable-next-line:deprecation
|
150
|
+
if ([keycodes.SPACE, keycodes.HOME, keycodes.END].some((/**
|
151
|
+
* @param {?} keyCode
|
152
|
+
* @return {?}
|
153
|
+
*/
|
154
|
+
function (keyCode) { return keyCode === event.keyCode; }))) {
|
155
|
+
event.stopPropagation();
|
156
|
+
}
|
144
157
|
};
|
145
158
|
McSelectSearch.decorators = [
|
146
159
|
{ type: core.Directive, args: [{
|
@@ -954,13 +967,14 @@
|
|
954
967
|
* @return {?}
|
955
968
|
*/
|
956
969
|
function (event) {
|
957
|
-
if (
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
|
970
|
+
if (this.disabled) {
|
971
|
+
return;
|
972
|
+
}
|
973
|
+
if (this.panelOpen) {
|
974
|
+
this.handleOpenKeydown(event);
|
975
|
+
}
|
976
|
+
else {
|
977
|
+
this.handleClosedKeydown(event);
|
964
978
|
}
|
965
979
|
};
|
966
980
|
/**
|
@@ -1349,6 +1363,9 @@
|
|
1349
1363
|
manager.activeItemIndex !== previouslyFocusedIndex) {
|
1350
1364
|
manager.activeItem.selectViaInteraction();
|
1351
1365
|
}
|
1366
|
+
if (this.search) {
|
1367
|
+
this.search.focus();
|
1368
|
+
}
|
1352
1369
|
}
|
1353
1370
|
};
|
1354
1371
|
/**
|
@@ -1540,7 +1557,7 @@
|
|
1540
1557
|
Promise.resolve().then((/**
|
1541
1558
|
* @return {?}
|
1542
1559
|
*/
|
1543
|
-
function () { return _this.keyManager.
|
1560
|
+
function () { return _this.keyManager.updateActiveItem(0); }));
|
1544
1561
|
_this.search.isSearchChanged = false;
|
1545
1562
|
}
|
1546
1563
|
if (event.isUserInput && !_this.multiple && _this._panelOpen) {
|