@ptsecurity/mosaic 11.5.1 → 11.6.0
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/_theming.scss +2 -1
- package/_visual.scss +9 -6
- package/bundles/ptsecurity-mosaic-datepicker.umd.js +2 -1
- package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-datepicker.umd.min.js +1 -1
- package/bundles/ptsecurity-mosaic-datepicker.umd.min.js.map +1 -1
- package/bundles/ptsecurity-mosaic-list.umd.js +10 -2
- package/bundles/ptsecurity-mosaic-list.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-list.umd.min.js +1 -1
- package/bundles/ptsecurity-mosaic-list.umd.min.js.map +1 -1
- package/bundles/ptsecurity-mosaic-timepicker.umd.js +1 -1
- package/bundles/ptsecurity-mosaic-timepicker.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-timepicker.umd.min.js +1 -1
- package/bundles/ptsecurity-mosaic-timepicker.umd.min.js.map +1 -1
- package/esm2015/datepicker/datepicker-input.directive.js +3 -2
- package/esm2015/list/list-selection.component.js +11 -3
- package/esm2015/timepicker/timepicker.directive.js +3 -3
- package/fesm2015/ptsecurity-mosaic-datepicker.js +2 -1
- package/fesm2015/ptsecurity-mosaic-datepicker.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-list.js +10 -2
- package/fesm2015/ptsecurity-mosaic-list.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-timepicker.js +2 -2
- package/fesm2015/ptsecurity-mosaic-timepicker.js.map +1 -1
- package/list/ptsecurity-mosaic-list.metadata.json +1 -1
- package/package.json +4 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
- package/timepicker/ptsecurity-mosaic-timepicker.metadata.json +1 -1
- package/prebuilt-visual/default-visual.css +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"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"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","create","__values","o","s","Symbol","iterator","m","i","length","next","value","done","TypeError","__read","n","r","e","ar","push","error","__spread","arguments","concat","McListOption","elementRef","changeDetector","ngZone","listSelection","group","this","hasFocus","onFocus","Subject","onBlur","inputsInitialized","_disabled","_selected","defineProperty","_value","newValue","selected","listSelectionDisabled","disabled","groupDisabled","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","option","blur","onStable","asObservable","pipe","take","subscribe","run","getHostElement","Component","args","exportAs","selector","host","class","[class.mc-selected]","[class.mc-focused]","[class.mc-disabled]","[attr.tabindex]","[attr.disabled]","(focusin)","(blur)","(click)","template","encapsulation","ViewEncapsulation","None","preserveWhitespaces","changeDetection","ChangeDetectionStrategy","OnPush","ElementRef","ChangeDetectorRef","NgZone","McListSelection","decorators","type","Inject","forwardRef","McOptgroup","Optional","ContentChildren","McLine","ViewChild","static","Input","MC_SELECTION_LIST_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","multi","source","McListSelectionMixinBase","mixinTabIndex","mixinDisabled","McListSelectionBase","changeDetectorRef","multiple","_super","_autoSelect","_noUnselectLast","horizontal","_tabIndex","userTabIndex","selectionChange","EventEmitter","destroyed","a1","a2","onTouched","onChange","_","MultipleMode","CHECKBOX","KEYBOARD","multipleMode","autoSelect","noUnselectLast","SelectionModel","String","__","constructor","__extends","merge","apply","options","map","ngAfterContentInit","keyManager","FocusKeyManager","withTypeAhead","withVerticalOrientation","withHorizontalOrientation","tabOut","takeUntil","setTimeout","setOptionsFromValues","changed","event","_c","added","_d","_e","removed","_f","changes","startWith","resetOptions","updateTabIndex","updateScrollSize","complete","setFirstItemActive","hasFocusedOption","setActiveItem","selectAll","forEach","deselectAll","first","withScrollSize","Math","floor","shiftKey","ctrlKey","setSelectedOptions","canDeselectLast","clear","emitChangeEvent","setSelectedOptionsByKey","item","selectedOptionState","fromIndex","previousActiveItemIndex","toIndex","activeItemIndex","_a","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","McListSelectionChange","dropSubscriptions","listenToOptionsFocus","optionFocusSubscription","unsubscribe","optionBlurSubscription","optionFocusChanges","index","indexOf","updateActiveItem","optionBlurChanges","getOptionByValue","find","Boolean","inputs","(keydown)","(window:resize)","providers","Attribute","descendants","Output","McListItem","McLineSetter","lines","handleFocus","classList","add","handleBlur","remove","(focus)","NgModule","imports","CommonModule","A11yModule","McPseudoCheckboxModule","McLineModule","McOptionModule","exports","McList","declarations"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") 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 throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\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 class: 'mc-list-option mc-no-select',\n '[class.mc-selected]': 'selected',\n '[class.mc-focused]': 'hasFocus',\n '[class.mc-disabled]': 'disabled',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(focusin)': '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 const listSelectionDisabled = this.listSelection && this.listSelection.disabled;\n const groupDisabled = this.group && this.group.disabled;\n\n return listSelectionDisabled || groupDisabled || 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 constructor(public elementRef: ElementRef) {}\n}\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: `\n <div [attr.tabindex]=\"tabIndex\"\n (focus)=\"focus()\"\n (blur)=\"blur()\">\n <ng-content></ng-content>\n </div>`,\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n class: 'mc-list-selection',\n\n '[attr.tabindex]': '-1',\n '[attr.disabled]': 'disabled || null',\n\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 @Input()\n get autoSelect(): boolean {\n return this._autoSelect;\n }\n\n set autoSelect(value: boolean) {\n this._autoSelect = coerceBooleanProperty(value);\n }\n\n private _autoSelect: boolean = true;\n\n @Input()\n get noUnselectLast(): boolean {\n return this._noUnselectLast;\n }\n\n set noUnselectLast(value: boolean) {\n this._noUnselectLast = coerceBooleanProperty(value);\n }\n\n private _noUnselectLast: boolean = true;\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.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this.userTabIndex = value;\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n userTabIndex: number | null = null;\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 elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('multiple') multiple: MultipleMode\n ) {\n super(elementRef);\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.noUnselectLast = false;\n }\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 = this.userTabIndex || 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 if (this.autoSelect) {\n this.selectionModel.clear();\n this.selectionModel.toggle(option);\n } else {\n this.selectionModel.toggle(option);\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 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.noUnselectLast) { 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.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n return this.elementRef.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.userTabIndex || (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, ElementRef, QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\n\n\n@Component({\n selector: 'mc-list',\n host: { class: 'mc-list' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McList {}\n\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 implements AfterContentInit {\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit() {\n // tslint:disable-next-line:no-unused-expression\n new McLineSetter(this.lines, this.elementRef);\n }\n\n handleFocus() {\n this.elementRef.nativeElement.classList.add('mc-focused');\n }\n\n handleBlur() {\n this.elementRef.nativeElement.classList.remove('mc-focused');\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\n\nimport { McListSelection, McListOption } from './list-selection.component';\nimport { McList, McListItem } 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 ],\n declarations: [\n McList,\n McListSelection,\n McListItem,\n McListOption\n ]\n})\nexport class McListModule {}\n"]}
|
1
|
+
{"version":3,"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"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","create","__values","o","s","Symbol","iterator","m","i","length","next","value","done","TypeError","__read","n","r","e","ar","push","error","__spread","arguments","concat","McListOption","elementRef","changeDetector","ngZone","listSelection","group","this","hasFocus","onFocus","Subject","onBlur","inputsInitialized","_disabled","_selected","defineProperty","_value","newValue","selected","listSelectionDisabled","disabled","groupDisabled","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","clientRects","getClientRects","height","handleClick","$event","setSelectedOptionsByClick","hasModifierKey","focus","option","blur","onStable","asObservable","pipe","take","subscribe","run","getHostElement","Component","args","exportAs","selector","host","class","[class.mc-selected]","[class.mc-focused]","[class.mc-disabled]","[attr.tabindex]","[attr.disabled]","(focusin)","(blur)","(click)","template","encapsulation","ViewEncapsulation","None","preserveWhitespaces","changeDetection","ChangeDetectionStrategy","OnPush","ElementRef","ChangeDetectorRef","NgZone","McListSelection","decorators","type","Inject","forwardRef","McOptgroup","Optional","ContentChildren","McLine","ViewChild","static","Input","MC_SELECTION_LIST_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","multi","source","McListSelectionMixinBase","mixinTabIndex","mixinDisabled","McListSelectionBase","changeDetectorRef","multiple","_super","_autoSelect","_noUnselectLast","horizontal","_tabIndex","userTabIndex","selectionChange","EventEmitter","destroyed","a1","a2","onTouched","onChange","_","MultipleMode","CHECKBOX","KEYBOARD","multipleMode","autoSelect","noUnselectLast","SelectionModel","String","__","constructor","__extends","merge","apply","options","map","ngAfterContentInit","keyManager","FocusKeyManager","withTypeAhead","withVerticalOrientation","withHorizontalOrientation","tabOut","takeUntil","setTimeout","setOptionsFromValues","changed","event","_c","added","_d","_e","removed","_f","changes","startWith","resetOptions","updateTabIndex","updateScrollSize","complete","setFirstItemActive","hasFocusedOption","setActiveItem","selectAll","forEach","deselectAll","first","withScrollSize","Math","floor","shiftKey","ctrlKey","setSelectedOptions","canDeselectLast","clear","emitChangeEvent","setSelectedOptionsByKey","item","selectedOptionState","fromIndex","previousActiveItemIndex","toIndex","activeItemIndex","_a","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","McListSelectionChange","dropSubscriptions","listenToOptionsFocus","optionFocusSubscription","unsubscribe","optionBlurSubscription","optionFocusChanges","index","indexOf","updateActiveItem","optionBlurChanges","getOptionByValue","find","Boolean","inputs","(keydown)","(window:resize)","providers","Attribute","descendants","Output","McListItem","McLineSetter","lines","handleFocus","classList","add","handleBlur","remove","(focus)","NgModule","imports","CommonModule","A11yModule","McPseudoCheckboxModule","McLineModule","McOptionModule","exports","McList","declarations"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") 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 throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\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 class: 'mc-list-option mc-no-select',\n '[class.mc-selected]': 'selected',\n '[class.mc-focused]': 'hasFocus',\n '[class.mc-disabled]': 'disabled',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(focusin)': '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 const listSelectionDisabled = this.listSelection && this.listSelection.disabled;\n const groupDisabled = this.group && this.group.disabled;\n\n return listSelectionDisabled || groupDisabled || 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 const clientRects = this.elementRef.nativeElement.getClientRects();\n\n if (clientRects.length) {\n return clientRects[0].height;\n }\n\n return 0;\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 constructor(public elementRef: ElementRef) {}\n}\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: `\n <div [attr.tabindex]=\"tabIndex\"\n (focus)=\"focus()\"\n (blur)=\"blur()\">\n <ng-content></ng-content>\n </div>`,\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n host: {\n class: 'mc-list-selection',\n\n '[attr.tabindex]': '-1',\n '[attr.disabled]': 'disabled || null',\n\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 @Input()\n get autoSelect(): boolean {\n return this._autoSelect;\n }\n\n set autoSelect(value: boolean) {\n this._autoSelect = coerceBooleanProperty(value);\n }\n\n private _autoSelect: boolean = true;\n\n @Input()\n get noUnselectLast(): boolean {\n return this._noUnselectLast;\n }\n\n set noUnselectLast(value: boolean) {\n this._noUnselectLast = coerceBooleanProperty(value);\n }\n\n private _noUnselectLast: boolean = true;\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.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this.userTabIndex = value;\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n userTabIndex: number | null = null;\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 elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n @Attribute('multiple') multiple: MultipleMode\n ) {\n super(elementRef);\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.noUnselectLast = false;\n }\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 = this.userTabIndex || 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 if (this.autoSelect) {\n this.selectionModel.clear();\n this.selectionModel.toggle(option);\n } else {\n this.selectionModel.toggle(option);\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 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.noUnselectLast) { 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.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n if (clientRects.length) {\n return clientRects[0].height;\n }\n\n return 0;\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.userTabIndex || (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, ElementRef, QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\n\n\n@Component({\n selector: 'mc-list',\n host: { class: 'mc-list' },\n template: '<ng-content></ng-content>',\n styleUrls: ['./list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McList {}\n\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 implements AfterContentInit {\n @ContentChildren(McLine) lines: QueryList<McLine>;\n\n constructor(private elementRef: ElementRef) {}\n\n ngAfterContentInit() {\n // tslint:disable-next-line:no-unused-expression\n new McLineSetter(this.lines, this.elementRef);\n }\n\n handleFocus() {\n this.elementRef.nativeElement.classList.add('mc-focused');\n }\n\n handleBlur() {\n this.elementRef.nativeElement.classList.remove('mc-focused');\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\n\nimport { McListSelection, McListOption } from './list-selection.component';\nimport { McList, McListItem } 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 ],\n declarations: [\n McList,\n McListSelection,\n McListItem,\n McListOption\n ]\n})\nexport class McListModule {}\n"]}
|
@@ -363,7 +363,7 @@
|
|
363
363
|
}
|
364
364
|
else if ((keycodes.hasModifierKey(event) && (keycodes.isVerticalMovement(keyCode) || keycodes.isHorizontalMovement(keyCode))) ||
|
365
365
|
event.ctrlKey || event.metaKey ||
|
366
|
-
[keycodes.DELETE, keycodes.BACKSPACE].includes(keyCode)) {
|
366
|
+
[keycodes.DELETE, keycodes.BACKSPACE, keycodes.TAB].includes(keyCode)) {
|
367
367
|
rxjs.noop();
|
368
368
|
}
|
369
369
|
else if (keyCode === keycodes.SPACE) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ptsecurity-mosaic-timepicker.umd.js","sources":["../../../packages/mosaic/timepicker/timepicker.constants.ts","../../../packages/mosaic/timepicker/timepicker.directive.ts","../../../packages/mosaic/timepicker/timepicker.module.ts","../../../packages/mosaic/timepicker/ptsecurity-mosaic-timepicker.ts"],"sourcesContent":["// tslint:disable:naming-convention\nexport enum TimeParts {\n hours,\n minutes,\n seconds\n}\n\nexport enum TimeFormats {\n HHmmss = 'HH:mm:ss',\n HHmm = 'HH:mm'\n}\n\nexport const TIMEFORMAT_PLACEHOLDERS: { [timeFormat: string]: string } = {\n [TimeFormats.HHmmss]: 'чч:мм:сс',\n [TimeFormats.HHmm]: 'чч:мм'\n};\n\nexport const DEFAULT_TIME_FORMAT: TimeFormats = TimeFormats.HHmm;\n\nexport const HOURS_MINUTES_SECONDS_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9]):?([0-5][0-9])?$/;\nexport const HOURS_MINUTES_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9])?$/;\nexport const HOURS_ONLY_REGEXP = /^([0-1][0-9]|2[0-3]):?$/;\nexport const AM_PM_FORMAT_REGEXP = /^([0-1]?[0-9]):([0-5]?[0-9]) ([ap][m]?$)/i;\n\nexport const SECONDS_PER_MINUTE: number = 59;\nexport const MINUTES_PER_HOUR: number = 59;\nexport const HOURS_PER_DAY: number = 23;\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Optional,\n Output,\n Renderer2\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport { DateAdapter } from '@ptsecurity/cdk/datetime';\nimport {\n DOWN_ARROW,\n UP_ARROW,\n HOME,\n END,\n LEFT_ARROW,\n RIGHT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n SPACE,\n DELETE,\n BACKSPACE,\n hasModifierKey,\n isLetterKey,\n isVerticalMovement,\n isHorizontalMovement\n} from '@ptsecurity/cdk/keycodes';\nimport { validationTooltipHideDelay, validationTooltipShowDelay } from '@ptsecurity/mosaic/core';\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { McTooltip } from '@ptsecurity/mosaic/tooltip';\nimport { noop, Subject } from 'rxjs';\n\nimport {\n DEFAULT_TIME_FORMAT,\n HOURS_PER_DAY,\n HOURS_MINUTES_REGEXP,\n HOURS_MINUTES_SECONDS_REGEXP,\n HOURS_ONLY_REGEXP,\n MINUTES_PER_HOUR,\n SECONDS_PER_MINUTE,\n TIMEFORMAT_PLACEHOLDERS,\n TimeFormats,\n TimeParts,\n AM_PM_FORMAT_REGEXP\n} from './timepicker.constants';\n\n\n/** @docs-private */\nexport const MC_TIMEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McTimepicker),\n multi: true\n};\n\n/** @docs-private */\nexport const MC_TIMEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => McTimepicker),\n multi: true\n};\n\n\nlet uniqueComponentIdSuffix: number = 0;\n\nconst shortFormatSize: number = 5;\nconst fullFormatSize: number = 8;\n\n\n@Directive({\n selector: 'input[mcTimepicker]',\n exportAs: 'mcTimepicker',\n host: {\n class: 'mc-input mc-timepicker',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[attr.required]': 'required',\n '[attr.size]': 'getSize()',\n '[attr.autocomplete]': '\"off\"',\n\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n\n '(paste)': 'onPaste($event)',\n\n '(keydown)': 'onKeyDown($event)'\n },\n providers: [\n MC_TIMEPICKER_VALIDATORS,\n MC_TIMEPICKER_VALUE_ACCESSOR,\n { provide: McFormFieldControl, useExisting: McTimepicker }\n ]\n})\nexport class McTimepicker<D> implements McFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy {\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n readonly errorState: boolean;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n controlType: string = 'timepicker';\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.defaultPlaceholder = false;\n }\n\n private _placeholder = TIMEFORMAT_PLACEHOLDERS[DEFAULT_TIME_FORMAT];\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n }\n\n this.stateChanges.next();\n }\n\n private _disabled: boolean;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n private _id: string;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean;\n\n @Input()\n get format(): TimeFormats {\n return this._format;\n }\n\n set format(formatValue: TimeFormats) {\n this._format = Object\n .keys(TimeFormats)\n .map((timeFormatKey) => TimeFormats[timeFormatKey])\n .indexOf(formatValue) > -1 ? formatValue : DEFAULT_TIME_FORMAT;\n\n if (this.defaultPlaceholder) {\n this._placeholder = TIMEFORMAT_PLACEHOLDERS[this._format];\n }\n\n if (this.value) {\n this.updateView();\n }\n }\n\n private _format: TimeFormats = DEFAULT_TIME_FORMAT;\n\n @Input()\n get min(): D | null {\n return this._min;\n }\n\n set min(value: D | null) {\n this._min = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _min: D | null = null;\n\n @Input()\n get max(): D | null {\n return this._max;\n }\n\n set max(value: D | null) {\n this._max = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _max: D | null = null;\n\n @Input()\n get value(): D | null {\n return this._value;\n }\n\n set value(value: D | null) {\n const newValue = this.dateAdapter.deserialize(value);\n\n this.lastValueValid = !newValue || this.dateAdapter.isValid(newValue);\n\n this._value = this.getValidDateOrNull(newValue);\n\n this.updateView();\n }\n\n private _value: D | null;\n\n @Input()\n set mcValidationTooltip(tooltip: McTooltip) {\n if (!tooltip) { return; }\n\n tooltip.mcMouseEnterDelay = validationTooltipShowDelay;\n tooltip.mcTrigger = 'manual';\n tooltip.mcTooltipClass = 'mc-tooltip_warning';\n\n tooltip.initElementRefListeners();\n\n this.incorrectInput.subscribe(() => {\n if (tooltip.isTooltipOpen) { return; }\n\n tooltip.show();\n\n setTimeout(() => tooltip.hide(), validationTooltipHideDelay);\n });\n }\n\n @Output() incorrectInput = new EventEmitter<void>();\n\n get hasSelection(): boolean {\n return this.selectionStart !== this.selectionEnd;\n }\n\n get isFullFormat(): boolean {\n return this.format === TimeFormats.HHmmss;\n }\n\n get isShortFormat(): boolean {\n return this.format === TimeFormats.HHmm;\n }\n\n get viewValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n get ngControl(): any {\n return this.control;\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.viewValue && !this.isBadInput();\n }\n\n get selectionStart(): number | null {\n return this.elementRef.nativeElement.selectionStart;\n }\n\n set selectionStart(value: number | null) {\n this.elementRef.nativeElement.selectionStart = value;\n }\n\n get selectionEnd(): number | null {\n return this.elementRef.nativeElement.selectionEnd;\n }\n\n set selectionEnd(value: number | null) {\n this.elementRef.nativeElement.selectionEnd = value;\n }\n\n private readonly uid = `mc-timepicker-${uniqueComponentIdSuffix++}`;\n\n private readonly validator: ValidatorFn | null;\n\n private lastValueValid = false;\n\n private control: AbstractControl;\n\n private defaultPlaceholder = true;\n\n private onChange: (value: any) => void;\n private onTouched: () => void;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Optional() private dateAdapter: DateAdapter<any>\n ) {\n if (!this.dateAdapter) {\n throw Error(`McTimepicker: No provider found for DateAdapter. You must import one of the existing ` +\n `modules at your application root or provide a custom implementation or use exists ones.`);\n }\n\n this.validator = Validators.compose([this.parseValidator, this.minValidator, this.maxValidator]);\n\n this.onChange = noop;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n getSize(): number {\n return this.isFullFormat ? fullFormatSize : shortFormatSize;\n }\n\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n focusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.onTouched();\n this.stateChanges.next();\n }\n }\n\n onBlur() {\n this.focusChanged(false);\n\n this.onInput();\n }\n\n onPaste($event) {\n $event.preventDefault();\n\n const value = this.formatUserPaste($event.clipboardData.getData('text'));\n\n const newTimeObj = this.getDateFromTimeString(value);\n\n if (!newTimeObj) { return; }\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n onInput = () => {\n const formattedValue = this.formatUserInput(this.viewValue);\n\n const newTimeObj = this.getDateFromTimeString(formattedValue);\n this.lastValueValid = !!newTimeObj;\n\n if (!newTimeObj) {\n this.onChange(null);\n\n return;\n }\n\n const selectionStart = this.selectionStart;\n const selectionEnd = this.selectionEnd;\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n\n this.createSelectionOfTimeComponentInInput((selectionStart as number) + 1);\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n onKeyDown(event: KeyboardEvent): void {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n if (isLetterKey(event) && !event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n\n this.incorrectInput.emit();\n } else if (\n (hasModifierKey(event) && (isVerticalMovement(keyCode) || isHorizontalMovement(keyCode))) ||\n event.ctrlKey || event.metaKey ||\n [DELETE, BACKSPACE].includes(keyCode)\n ) {\n noop();\n } else if (keyCode === SPACE) {\n this.spaceKeyHandler(event);\n } else if ([HOME, PAGE_UP].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(0);\n } else if ([END, PAGE_DOWN].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(this.viewValue.length);\n } else if ([UP_ARROW, DOWN_ARROW].includes(keyCode)) {\n event.preventDefault();\n\n this.verticalArrowKeyHandler(keyCode);\n } else if ([LEFT_ARROW, RIGHT_ARROW].includes(keyCode)) {\n this.horizontalArrowKeyHandler(keyCode);\n } else if (/^\\D$/.test(event.key)) {\n event.preventDefault();\n\n const newValue = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(newValue);\n\n if (newValue !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n } else {\n this.incorrectInput.emit();\n }\n } else {\n setTimeout(this.onInput);\n }\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n this.setControl(control);\n\n return this.validator ? this.validator(control) : null;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.validatorOnChange = fn;\n }\n\n writeValue(value: D | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: D) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private formatUserPaste(value: string) {\n if (value.match(AM_PM_FORMAT_REGEXP)) { return value; }\n\n const match: RegExpMatchArray | null = value.match(\n /^(\\D+)?(?<hours>\\d+)?(\\D+)?(\\D+)?(?<minutes>\\d+)?(\\D+)?(\\D+)?(?<seconds>\\d+)?(\\D+)?$/\n );\n\n if (!match?.groups?.hours) {\n this.setViewValue(value);\n\n return value;\n }\n\n return this.replaceNumbers(Object.values(match.groups)\n // tslint:disable-next-line:no-magic-numbers\n .map((group) => (group || '').padStart(2, '0'))\n .join(':')\n );\n }\n\n private formatUserInput(value: string): string {\n return this.replaceNumbers(this.replaceSymbols(value));\n }\n\n private replaceSymbols(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(\\d\\d:){0,2}(?<number>[0-9])(?<symbol>\\W)(:\\d\\d){0,2}$/);\n\n if (match?.groups) {\n const { number, symbol } = match.groups;\n\n formattedValue = value.replace(number + symbol, `0${number}`);\n }\n\n return formattedValue;\n }\n\n private replaceNumbers(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(?<hours>\\d{0,4}):?(?<minutes>\\d{0,4}):?(?<seconds>\\d{0,4})$/);\n\n if (match?.groups) {\n const { hours, minutes, seconds } = match.groups;\n\n if (hours.length && parseInt(hours) > HOURS_PER_DAY) {\n formattedValue = formattedValue.replace(hours, HOURS_PER_DAY.toString());\n }\n\n if (minutes.length && parseInt(minutes) > MINUTES_PER_HOUR) {\n formattedValue = formattedValue.replace(minutes, MINUTES_PER_HOUR.toString());\n }\n\n if (seconds.length && parseInt(seconds) > SECONDS_PER_MINUTE) {\n formattedValue = formattedValue.replace(seconds, SECONDS_PER_MINUTE.toString());\n }\n }\n\n return formattedValue;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n private isBadInput(): boolean {\n const validity = (<HTMLInputElement> this.elementRef.nativeElement).validity;\n\n return validity && validity.badInput;\n }\n\n private spaceKeyHandler(event: KeyboardEvent) {\n event.preventDefault();\n\n if (this.selectionStart === this.selectionEnd) {\n const value = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(value);\n\n if (value !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n }\n } else if (this.selectionStart !== this.selectionEnd) {\n\n let cursorPos = this.selectionStart as number;\n\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n }\n\n private getNewValue(key: string, position: number) {\n return [this.viewValue.slice(0, position), key, this.viewValue.slice(position)].join('');\n }\n\n private verticalArrowKeyHandler(keyCode: number): void {\n if (!this.value) { return; }\n\n let changedTime;\n\n const newEditParams = this.getTimeEditMetrics(this.selectionStart as number);\n\n if (keyCode === UP_ARROW) {\n changedTime = this.incrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n if (keyCode === DOWN_ARROW) {\n changedTime = this.decrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n this.value = changedTime;\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n\n this.onChange(changedTime);\n this.stateChanges.next();\n }\n\n private horizontalArrowKeyHandler(keyCode: number): void {\n if (!this.value) { return; }\n\n let cursorPos = this.selectionStart as number;\n\n if (keyCode === LEFT_ARROW) {\n cursorPos = cursorPos === 0 ? this.viewValue.length : cursorPos - 1;\n } else if (keyCode === RIGHT_ARROW) {\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n }\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n\n private createSelectionOfTimeComponentInInput(cursorPos: number): void {\n setTimeout(() => {\n const newEditParams = this.getTimeEditMetrics(cursorPos);\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n });\n }\n\n private incrementTime(dateVal: D, whatToIncrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToIncrement) {\n case TimeParts.hours:\n hours++;\n break;\n case TimeParts.minutes:\n minutes++;\n break;\n case TimeParts.seconds:\n seconds++;\n break;\n default:\n }\n\n if (seconds > SECONDS_PER_MINUTE) { seconds = 0; }\n\n if (minutes > MINUTES_PER_HOUR) { minutes = 0; }\n\n if (hours > HOURS_PER_DAY) { hours = 0; }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n private decrementTime(dateVal: D, whatToDecrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToDecrement) {\n case TimeParts.hours:\n hours--;\n break;\n case TimeParts.minutes:\n minutes--;\n break;\n case TimeParts.seconds:\n seconds--;\n break;\n default:\n }\n\n if (seconds < 0) { seconds = SECONDS_PER_MINUTE; }\n\n if (minutes < 0) { minutes = MINUTES_PER_HOUR; }\n\n if (hours < 0) { hours = HOURS_PER_DAY; }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n /**\n * @description Get params for arrow-keys (up/down) time valie edit.\n * @param cursorPosition Current cursor position in timeString\n */\n private getTimeEditMetrics(cursorPosition: number): {\n modifiedTimePart: TimeParts;\n cursorStartPosition: number;\n cursorEndPosition: number;\n } {\n const timeString: string = this.viewValue;\n let modifiedTimePart: TimeParts;\n let cursorStartPosition: number;\n let cursorEndPosition: number;\n\n const hoursIndex = 0;\n const minutesIndex = timeString.indexOf(':', hoursIndex + 1);\n const secondsIndex = minutesIndex !== -1 ? timeString.indexOf(':', minutesIndex + 1) : -1;\n\n if (secondsIndex !== -1 && cursorPosition > secondsIndex) {\n modifiedTimePart = TimeParts.seconds;\n cursorStartPosition = secondsIndex + 1;\n cursorEndPosition = timeString.length;\n } else if (minutesIndex !== -1 && cursorPosition > minutesIndex) {\n modifiedTimePart = TimeParts.minutes;\n cursorStartPosition = minutesIndex + 1;\n cursorEndPosition = secondsIndex > -1 ? secondsIndex : timeString.length;\n } else {\n modifiedTimePart = TimeParts.hours;\n cursorStartPosition = hoursIndex;\n cursorEndPosition = minutesIndex !== -1 ? minutesIndex : timeString.length;\n }\n\n return { modifiedTimePart, cursorStartPosition, cursorEndPosition };\n }\n\n /**\n * @description Create time string for displaying inside input element of UI\n */\n private getTimeStringFromDate(value: D | null, timeFormat: TimeFormats): string {\n if (!value || !this.dateAdapter.isValid(value)) { return ''; }\n\n return this.dateAdapter.format(value, timeFormat);\n }\n\n private getDateFromTimeString(timeString: string): D | null {\n if (!timeString) { return null; }\n\n const HMS = timeString.match(HOURS_MINUTES_SECONDS_REGEXP);\n const HM = timeString.match(HOURS_MINUTES_REGEXP);\n const H = timeString.match(HOURS_ONLY_REGEXP);\n const amPm = timeString.match(AM_PM_FORMAT_REGEXP);\n\n let hours: number = 0;\n let minutes: number = 0;\n let seconds: number = 0;\n\n // tslint:disable:no-magic-numbers\n if (amPm) {\n hours = Number(amPm[1]);\n minutes = Number(amPm[2]);\n\n if (/[p]/i.test(amPm[3]) || (/[a]/i.test(amPm[3]) && hours === 12)) {\n hours += 12;\n }\n } else if (HMS) {\n hours = Number(HMS[1]);\n minutes = Number(HMS[2]);\n seconds = Number(HMS[3]);\n } else if (HM) {\n hours = Number(HM[1]);\n minutes = Number(HM[2]);\n } else if (H) {\n hours = Number(H[1]);\n } else {\n return null;\n }\n // tslint:enable\n\n const resultDate = this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes || 0,\n seconds || 0,\n this.dateAdapter.getMilliseconds(this.value)\n );\n\n return this.getValidDateOrNull(resultDate);\n }\n\n private parseValidator: ValidatorFn = (): ValidationErrors | null => {\n return this.focused ||\n this.empty ||\n this.lastValueValid ? null : { mcTimepickerParse: { text: this.viewValue } };\n }\n\n private minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return (!this.min || !controlValue || this.compareTime(this.min, controlValue) <= 0) ?\n null :\n { mcTimepickerLowerThenMin: { min: this.min, actual: controlValue } };\n }\n\n private maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return (!this.max || !controlValue || this.compareTime(this.max, controlValue) >= 0) ?\n null :\n { mcTimepickerHigherThenMax: { max: this.max, actual: controlValue } };\n }\n\n private compareTime(first: D, second: D): number {\n const result = this.dateAdapter.getHours(first) - this.dateAdapter.getHours(second) ||\n this.dateAdapter.getMinutes(first) - this.dateAdapter.getMinutes(second);\n\n if (TimeFormats.HHmm === this.format) {\n return result;\n } else if (TimeFormats.HHmmss === this.format) {\n return result || this.dateAdapter.getSeconds(first) - this.dateAdapter.getSeconds(second);\n } else {\n throw Error(`Unknown format: ${this.format}`);\n }\n }\n\n private getValidDateOrNull(obj: any): D | null {\n return (this.dateAdapter.isDateInstance(obj) && this.dateAdapter.isValid(obj)) ? obj : null;\n }\n\n private setViewValue(value: string) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n }\n\n private updateView() {\n const formattedValue = this.getTimeStringFromDate(this.value, this.format);\n\n this.setViewValue(formattedValue);\n }\n\n private setControl(control: AbstractControl) {\n if (!this.control) {\n this.control = control;\n }\n }\n\n // tslint:disable-next-line:no-empty\n private validatorOnChange = () => {};\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { McTimepicker } from './timepicker.directive';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule,\n FormsModule\n ],\n declarations: [McTimepicker],\n exports: [McTimepicker]\n})\nexport class McTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TimeParts","TimeFormats","NG_VALUE_ACCESSOR","forwardRef","NG_VALIDATORS","Subject","EventEmitter","Validators","noop","coerceBooleanProperty","validationTooltipShowDelay","validationTooltipHideDelay","isLetterKey","hasModifierKey","isVerticalMovement","isHorizontalMovement","DELETE","BACKSPACE","SPACE","HOME","PAGE_UP","END","PAGE_DOWN","UP_ARROW","DOWN_ARROW","LEFT_ARROW","RIGHT_ARROW","Directive","McFormFieldControl","ElementRef","Renderer2","DateAdapter","Optional","Input","Output","NgModule","CommonModule","A11yModule","PlatformModule","FormsModule"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ptsecurity-mosaic-timepicker.umd.js","sources":["../../../packages/mosaic/timepicker/timepicker.constants.ts","../../../packages/mosaic/timepicker/timepicker.directive.ts","../../../packages/mosaic/timepicker/timepicker.module.ts","../../../packages/mosaic/timepicker/ptsecurity-mosaic-timepicker.ts"],"sourcesContent":["// tslint:disable:naming-convention\nexport enum TimeParts {\n hours,\n minutes,\n seconds\n}\n\nexport enum TimeFormats {\n HHmmss = 'HH:mm:ss',\n HHmm = 'HH:mm'\n}\n\nexport const TIMEFORMAT_PLACEHOLDERS: { [timeFormat: string]: string } = {\n [TimeFormats.HHmmss]: 'чч:мм:сс',\n [TimeFormats.HHmm]: 'чч:мм'\n};\n\nexport const DEFAULT_TIME_FORMAT: TimeFormats = TimeFormats.HHmm;\n\nexport const HOURS_MINUTES_SECONDS_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9]):?([0-5][0-9])?$/;\nexport const HOURS_MINUTES_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9])?$/;\nexport const HOURS_ONLY_REGEXP = /^([0-1][0-9]|2[0-3]):?$/;\nexport const AM_PM_FORMAT_REGEXP = /^([0-1]?[0-9]):([0-5]?[0-9]) ([ap][m]?$)/i;\n\nexport const SECONDS_PER_MINUTE: number = 59;\nexport const MINUTES_PER_HOUR: number = 59;\nexport const HOURS_PER_DAY: number = 23;\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Optional,\n Output,\n Renderer2\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport { DateAdapter } from '@ptsecurity/cdk/datetime';\nimport {\n DOWN_ARROW,\n UP_ARROW,\n HOME,\n END,\n LEFT_ARROW,\n RIGHT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n SPACE,\n DELETE,\n BACKSPACE,\n hasModifierKey,\n isLetterKey,\n isVerticalMovement,\n isHorizontalMovement,\n TAB\n} from '@ptsecurity/cdk/keycodes';\nimport { validationTooltipHideDelay, validationTooltipShowDelay } from '@ptsecurity/mosaic/core';\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { McTooltip } from '@ptsecurity/mosaic/tooltip';\nimport { noop, Subject } from 'rxjs';\n\nimport {\n DEFAULT_TIME_FORMAT,\n HOURS_PER_DAY,\n HOURS_MINUTES_REGEXP,\n HOURS_MINUTES_SECONDS_REGEXP,\n HOURS_ONLY_REGEXP,\n MINUTES_PER_HOUR,\n SECONDS_PER_MINUTE,\n TIMEFORMAT_PLACEHOLDERS,\n TimeFormats,\n TimeParts,\n AM_PM_FORMAT_REGEXP\n} from './timepicker.constants';\n\n\n/** @docs-private */\nexport const MC_TIMEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McTimepicker),\n multi: true\n};\n\n/** @docs-private */\nexport const MC_TIMEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => McTimepicker),\n multi: true\n};\n\n\nlet uniqueComponentIdSuffix: number = 0;\n\nconst shortFormatSize: number = 5;\nconst fullFormatSize: number = 8;\n\n\n@Directive({\n selector: 'input[mcTimepicker]',\n exportAs: 'mcTimepicker',\n host: {\n class: 'mc-input mc-timepicker',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[attr.required]': 'required',\n '[attr.size]': 'getSize()',\n '[attr.autocomplete]': '\"off\"',\n\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n\n '(paste)': 'onPaste($event)',\n\n '(keydown)': 'onKeyDown($event)'\n },\n providers: [\n MC_TIMEPICKER_VALIDATORS,\n MC_TIMEPICKER_VALUE_ACCESSOR,\n { provide: McFormFieldControl, useExisting: McTimepicker }\n ]\n})\nexport class McTimepicker<D> implements McFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy {\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n readonly errorState: boolean;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n controlType: string = 'timepicker';\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.defaultPlaceholder = false;\n }\n\n private _placeholder = TIMEFORMAT_PLACEHOLDERS[DEFAULT_TIME_FORMAT];\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n }\n\n this.stateChanges.next();\n }\n\n private _disabled: boolean;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n private _id: string;\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean;\n\n @Input()\n get format(): TimeFormats {\n return this._format;\n }\n\n set format(formatValue: TimeFormats) {\n this._format = Object\n .keys(TimeFormats)\n .map((timeFormatKey) => TimeFormats[timeFormatKey])\n .indexOf(formatValue) > -1 ? formatValue : DEFAULT_TIME_FORMAT;\n\n if (this.defaultPlaceholder) {\n this._placeholder = TIMEFORMAT_PLACEHOLDERS[this._format];\n }\n\n if (this.value) {\n this.updateView();\n }\n }\n\n private _format: TimeFormats = DEFAULT_TIME_FORMAT;\n\n @Input()\n get min(): D | null {\n return this._min;\n }\n\n set min(value: D | null) {\n this._min = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _min: D | null = null;\n\n @Input()\n get max(): D | null {\n return this._max;\n }\n\n set max(value: D | null) {\n this._max = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\n this.validatorOnChange();\n }\n\n private _max: D | null = null;\n\n @Input()\n get value(): D | null {\n return this._value;\n }\n\n set value(value: D | null) {\n const newValue = this.dateAdapter.deserialize(value);\n\n this.lastValueValid = !newValue || this.dateAdapter.isValid(newValue);\n\n this._value = this.getValidDateOrNull(newValue);\n\n this.updateView();\n }\n\n private _value: D | null;\n\n @Input()\n set mcValidationTooltip(tooltip: McTooltip) {\n if (!tooltip) { return; }\n\n tooltip.mcMouseEnterDelay = validationTooltipShowDelay;\n tooltip.mcTrigger = 'manual';\n tooltip.mcTooltipClass = 'mc-tooltip_warning';\n\n tooltip.initElementRefListeners();\n\n this.incorrectInput.subscribe(() => {\n if (tooltip.isTooltipOpen) { return; }\n\n tooltip.show();\n\n setTimeout(() => tooltip.hide(), validationTooltipHideDelay);\n });\n }\n\n @Output() incorrectInput = new EventEmitter<void>();\n\n get hasSelection(): boolean {\n return this.selectionStart !== this.selectionEnd;\n }\n\n get isFullFormat(): boolean {\n return this.format === TimeFormats.HHmmss;\n }\n\n get isShortFormat(): boolean {\n return this.format === TimeFormats.HHmm;\n }\n\n get viewValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n get ngControl(): any {\n return this.control;\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.viewValue && !this.isBadInput();\n }\n\n get selectionStart(): number | null {\n return this.elementRef.nativeElement.selectionStart;\n }\n\n set selectionStart(value: number | null) {\n this.elementRef.nativeElement.selectionStart = value;\n }\n\n get selectionEnd(): number | null {\n return this.elementRef.nativeElement.selectionEnd;\n }\n\n set selectionEnd(value: number | null) {\n this.elementRef.nativeElement.selectionEnd = value;\n }\n\n private readonly uid = `mc-timepicker-${uniqueComponentIdSuffix++}`;\n\n private readonly validator: ValidatorFn | null;\n\n private lastValueValid = false;\n\n private control: AbstractControl;\n\n private defaultPlaceholder = true;\n\n private onChange: (value: any) => void;\n private onTouched: () => void;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Optional() private dateAdapter: DateAdapter<any>\n ) {\n if (!this.dateAdapter) {\n throw Error(`McTimepicker: No provider found for DateAdapter. You must import one of the existing ` +\n `modules at your application root or provide a custom implementation or use exists ones.`);\n }\n\n this.validator = Validators.compose([this.parseValidator, this.minValidator, this.maxValidator]);\n\n this.onChange = noop;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n getSize(): number {\n return this.isFullFormat ? fullFormatSize : shortFormatSize;\n }\n\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n focusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.onTouched();\n this.stateChanges.next();\n }\n }\n\n onBlur() {\n this.focusChanged(false);\n\n this.onInput();\n }\n\n onPaste($event) {\n $event.preventDefault();\n\n const value = this.formatUserPaste($event.clipboardData.getData('text'));\n\n const newTimeObj = this.getDateFromTimeString(value);\n\n if (!newTimeObj) { return; }\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n onInput = () => {\n const formattedValue = this.formatUserInput(this.viewValue);\n\n const newTimeObj = this.getDateFromTimeString(formattedValue);\n this.lastValueValid = !!newTimeObj;\n\n if (!newTimeObj) {\n this.onChange(null);\n\n return;\n }\n\n const selectionStart = this.selectionStart;\n const selectionEnd = this.selectionEnd;\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n\n this.createSelectionOfTimeComponentInInput((selectionStart as number) + 1);\n\n this.value = newTimeObj;\n this.onChange(newTimeObj);\n this.stateChanges.next();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n onKeyDown(event: KeyboardEvent): void {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n if (isLetterKey(event) && !event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n\n this.incorrectInput.emit();\n } else if (\n (hasModifierKey(event) && (isVerticalMovement(keyCode) || isHorizontalMovement(keyCode))) ||\n event.ctrlKey || event.metaKey ||\n [DELETE, BACKSPACE, TAB].includes(keyCode)\n ) {\n noop();\n } else if (keyCode === SPACE) {\n this.spaceKeyHandler(event);\n } else if ([HOME, PAGE_UP].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(0);\n } else if ([END, PAGE_DOWN].includes(keyCode)) {\n this.createSelectionOfTimeComponentInInput(this.viewValue.length);\n } else if ([UP_ARROW, DOWN_ARROW].includes(keyCode)) {\n event.preventDefault();\n\n this.verticalArrowKeyHandler(keyCode);\n } else if ([LEFT_ARROW, RIGHT_ARROW].includes(keyCode)) {\n this.horizontalArrowKeyHandler(keyCode);\n } else if (/^\\D$/.test(event.key)) {\n event.preventDefault();\n\n const newValue = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(newValue);\n\n if (newValue !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n } else {\n this.incorrectInput.emit();\n }\n } else {\n setTimeout(this.onInput);\n }\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n this.setControl(control);\n\n return this.validator ? this.validator(control) : null;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.validatorOnChange = fn;\n }\n\n writeValue(value: D | null): void {\n this.value = value;\n }\n\n registerOnChange(fn: (value: D) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private formatUserPaste(value: string) {\n if (value.match(AM_PM_FORMAT_REGEXP)) { return value; }\n\n const match: RegExpMatchArray | null = value.match(\n /^(\\D+)?(?<hours>\\d+)?(\\D+)?(\\D+)?(?<minutes>\\d+)?(\\D+)?(\\D+)?(?<seconds>\\d+)?(\\D+)?$/\n );\n\n if (!match?.groups?.hours) {\n this.setViewValue(value);\n\n return value;\n }\n\n return this.replaceNumbers(Object.values(match.groups)\n // tslint:disable-next-line:no-magic-numbers\n .map((group) => (group || '').padStart(2, '0'))\n .join(':')\n );\n }\n\n private formatUserInput(value: string): string {\n return this.replaceNumbers(this.replaceSymbols(value));\n }\n\n private replaceSymbols(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(\\d\\d:){0,2}(?<number>[0-9])(?<symbol>\\W)(:\\d\\d){0,2}$/);\n\n if (match?.groups) {\n const { number, symbol } = match.groups;\n\n formattedValue = value.replace(number + symbol, `0${number}`);\n }\n\n return formattedValue;\n }\n\n private replaceNumbers(value: string): string {\n let formattedValue: string = value;\n\n const match: RegExpMatchArray | null = value.match(/^(?<hours>\\d{0,4}):?(?<minutes>\\d{0,4}):?(?<seconds>\\d{0,4})$/);\n\n if (match?.groups) {\n const { hours, minutes, seconds } = match.groups;\n\n if (hours.length && parseInt(hours) > HOURS_PER_DAY) {\n formattedValue = formattedValue.replace(hours, HOURS_PER_DAY.toString());\n }\n\n if (minutes.length && parseInt(minutes) > MINUTES_PER_HOUR) {\n formattedValue = formattedValue.replace(minutes, MINUTES_PER_HOUR.toString());\n }\n\n if (seconds.length && parseInt(seconds) > SECONDS_PER_MINUTE) {\n formattedValue = formattedValue.replace(seconds, SECONDS_PER_MINUTE.toString());\n }\n }\n\n return formattedValue;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n private isBadInput(): boolean {\n const validity = (<HTMLInputElement> this.elementRef.nativeElement).validity;\n\n return validity && validity.badInput;\n }\n\n private spaceKeyHandler(event: KeyboardEvent) {\n event.preventDefault();\n\n if (this.selectionStart === this.selectionEnd) {\n const value = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(value);\n\n if (value !== formattedValue) {\n this.setViewValue(formattedValue);\n\n setTimeout(this.onInput);\n }\n } else if (this.selectionStart !== this.selectionEnd) {\n\n let cursorPos = this.selectionStart as number;\n\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n }\n\n private getNewValue(key: string, position: number) {\n return [this.viewValue.slice(0, position), key, this.viewValue.slice(position)].join('');\n }\n\n private verticalArrowKeyHandler(keyCode: number): void {\n if (!this.value) { return; }\n\n let changedTime;\n\n const newEditParams = this.getTimeEditMetrics(this.selectionStart as number);\n\n if (keyCode === UP_ARROW) {\n changedTime = this.incrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n if (keyCode === DOWN_ARROW) {\n changedTime = this.decrementTime(this.value, newEditParams.modifiedTimePart);\n }\n\n this.value = changedTime;\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n\n this.onChange(changedTime);\n this.stateChanges.next();\n }\n\n private horizontalArrowKeyHandler(keyCode: number): void {\n if (!this.value) { return; }\n\n let cursorPos = this.selectionStart as number;\n\n if (keyCode === LEFT_ARROW) {\n cursorPos = cursorPos === 0 ? this.viewValue.length : cursorPos - 1;\n } else if (keyCode === RIGHT_ARROW) {\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\n\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\n }\n\n this.createSelectionOfTimeComponentInInput(cursorPos);\n }\n\n private createSelectionOfTimeComponentInInput(cursorPos: number): void {\n setTimeout(() => {\n const newEditParams = this.getTimeEditMetrics(cursorPos);\n\n this.selectionStart = newEditParams.cursorStartPosition;\n this.selectionEnd = newEditParams.cursorEndPosition;\n });\n }\n\n private incrementTime(dateVal: D, whatToIncrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToIncrement) {\n case TimeParts.hours:\n hours++;\n break;\n case TimeParts.minutes:\n minutes++;\n break;\n case TimeParts.seconds:\n seconds++;\n break;\n default:\n }\n\n if (seconds > SECONDS_PER_MINUTE) { seconds = 0; }\n\n if (minutes > MINUTES_PER_HOUR) { minutes = 0; }\n\n if (hours > HOURS_PER_DAY) { hours = 0; }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n private decrementTime(dateVal: D, whatToDecrement: TimeParts = TimeParts.seconds): D {\n let hours = this.dateAdapter.getHours(dateVal);\n let minutes = this.dateAdapter.getMinutes(dateVal);\n let seconds = this.dateAdapter.getSeconds(dateVal);\n\n switch (whatToDecrement) {\n case TimeParts.hours:\n hours--;\n break;\n case TimeParts.minutes:\n minutes--;\n break;\n case TimeParts.seconds:\n seconds--;\n break;\n default:\n }\n\n if (seconds < 0) { seconds = SECONDS_PER_MINUTE; }\n\n if (minutes < 0) { minutes = MINUTES_PER_HOUR; }\n\n if (hours < 0) { hours = HOURS_PER_DAY; }\n\n return this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes,\n seconds,\n this.dateAdapter.getMilliseconds(this.value)\n );\n }\n\n /**\n * @description Get params for arrow-keys (up/down) time valie edit.\n * @param cursorPosition Current cursor position in timeString\n */\n private getTimeEditMetrics(cursorPosition: number): {\n modifiedTimePart: TimeParts;\n cursorStartPosition: number;\n cursorEndPosition: number;\n } {\n const timeString: string = this.viewValue;\n let modifiedTimePart: TimeParts;\n let cursorStartPosition: number;\n let cursorEndPosition: number;\n\n const hoursIndex = 0;\n const minutesIndex = timeString.indexOf(':', hoursIndex + 1);\n const secondsIndex = minutesIndex !== -1 ? timeString.indexOf(':', minutesIndex + 1) : -1;\n\n if (secondsIndex !== -1 && cursorPosition > secondsIndex) {\n modifiedTimePart = TimeParts.seconds;\n cursorStartPosition = secondsIndex + 1;\n cursorEndPosition = timeString.length;\n } else if (minutesIndex !== -1 && cursorPosition > minutesIndex) {\n modifiedTimePart = TimeParts.minutes;\n cursorStartPosition = minutesIndex + 1;\n cursorEndPosition = secondsIndex > -1 ? secondsIndex : timeString.length;\n } else {\n modifiedTimePart = TimeParts.hours;\n cursorStartPosition = hoursIndex;\n cursorEndPosition = minutesIndex !== -1 ? minutesIndex : timeString.length;\n }\n\n return { modifiedTimePart, cursorStartPosition, cursorEndPosition };\n }\n\n /**\n * @description Create time string for displaying inside input element of UI\n */\n private getTimeStringFromDate(value: D | null, timeFormat: TimeFormats): string {\n if (!value || !this.dateAdapter.isValid(value)) { return ''; }\n\n return this.dateAdapter.format(value, timeFormat);\n }\n\n private getDateFromTimeString(timeString: string): D | null {\n if (!timeString) { return null; }\n\n const HMS = timeString.match(HOURS_MINUTES_SECONDS_REGEXP);\n const HM = timeString.match(HOURS_MINUTES_REGEXP);\n const H = timeString.match(HOURS_ONLY_REGEXP);\n const amPm = timeString.match(AM_PM_FORMAT_REGEXP);\n\n let hours: number = 0;\n let minutes: number = 0;\n let seconds: number = 0;\n\n // tslint:disable:no-magic-numbers\n if (amPm) {\n hours = Number(amPm[1]);\n minutes = Number(amPm[2]);\n\n if (/[p]/i.test(amPm[3]) || (/[a]/i.test(amPm[3]) && hours === 12)) {\n hours += 12;\n }\n } else if (HMS) {\n hours = Number(HMS[1]);\n minutes = Number(HMS[2]);\n seconds = Number(HMS[3]);\n } else if (HM) {\n hours = Number(HM[1]);\n minutes = Number(HM[2]);\n } else if (H) {\n hours = Number(H[1]);\n } else {\n return null;\n }\n // tslint:enable\n\n const resultDate = this.dateAdapter.createDateTime(\n this.dateAdapter.getYear(this.value),\n this.dateAdapter.getMonth(this.value),\n this.dateAdapter.getDate(this.value),\n hours,\n minutes || 0,\n seconds || 0,\n this.dateAdapter.getMilliseconds(this.value)\n );\n\n return this.getValidDateOrNull(resultDate);\n }\n\n private parseValidator: ValidatorFn = (): ValidationErrors | null => {\n return this.focused ||\n this.empty ||\n this.lastValueValid ? null : { mcTimepickerParse: { text: this.viewValue } };\n }\n\n private minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return (!this.min || !controlValue || this.compareTime(this.min, controlValue) <= 0) ?\n null :\n { mcTimepickerLowerThenMin: { min: this.min, actual: controlValue } };\n }\n\n private maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\n\n return (!this.max || !controlValue || this.compareTime(this.max, controlValue) >= 0) ?\n null :\n { mcTimepickerHigherThenMax: { max: this.max, actual: controlValue } };\n }\n\n private compareTime(first: D, second: D): number {\n const result = this.dateAdapter.getHours(first) - this.dateAdapter.getHours(second) ||\n this.dateAdapter.getMinutes(first) - this.dateAdapter.getMinutes(second);\n\n if (TimeFormats.HHmm === this.format) {\n return result;\n } else if (TimeFormats.HHmmss === this.format) {\n return result || this.dateAdapter.getSeconds(first) - this.dateAdapter.getSeconds(second);\n } else {\n throw Error(`Unknown format: ${this.format}`);\n }\n }\n\n private getValidDateOrNull(obj: any): D | null {\n return (this.dateAdapter.isDateInstance(obj) && this.dateAdapter.isValid(obj)) ? obj : null;\n }\n\n private setViewValue(value: string) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n }\n\n private updateView() {\n const formattedValue = this.getTimeStringFromDate(this.value, this.format);\n\n this.setViewValue(formattedValue);\n }\n\n private setControl(control: AbstractControl) {\n if (!this.control) {\n this.control = control;\n }\n }\n\n // tslint:disable-next-line:no-empty\n private validatorOnChange = () => {};\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { McTimepicker } from './timepicker.directive';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule,\n FormsModule\n ],\n declarations: [McTimepicker],\n exports: [McTimepicker]\n})\nexport class McTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TimeParts","TimeFormats","NG_VALUE_ACCESSOR","forwardRef","NG_VALIDATORS","Subject","EventEmitter","Validators","noop","coerceBooleanProperty","validationTooltipShowDelay","validationTooltipHideDelay","isLetterKey","hasModifierKey","isVerticalMovement","isHorizontalMovement","DELETE","BACKSPACE","TAB","SPACE","HOME","PAGE_UP","END","PAGE_DOWN","UP_ARROW","DOWN_ARROW","LEFT_ARROW","RIGHT_ARROW","Directive","McFormFieldControl","ElementRef","Renderer2","DateAdapter","Optional","Input","Output","NgModule","CommonModule","A11yModule","PlatformModule","FormsModule"],"mappings":"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"}
|