@sd-angular/core 0.0.971 → 0.0.975

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.
Files changed (38) hide show
  1. package/bundles/sd-angular-core-grid-material.umd.js +18 -15
  2. package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
  3. package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
  4. package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
  5. package/bundles/sd-angular-core-loading.umd.js +5 -5
  6. package/bundles/sd-angular-core-loading.umd.js.map +1 -1
  7. package/bundles/sd-angular-core-loading.umd.min.js +1 -1
  8. package/bundles/sd-angular-core-loading.umd.min.js.map +1 -1
  9. package/bundles/sd-angular-core-select.umd.js +5 -2
  10. package/bundles/sd-angular-core-select.umd.js.map +1 -1
  11. package/bundles/sd-angular-core-select.umd.min.js +1 -1
  12. package/bundles/sd-angular-core-select.umd.min.js.map +1 -1
  13. package/bundles/sd-angular-core-tab-router.umd.js +1 -1
  14. package/bundles/sd-angular-core-tab-router.umd.min.js +1 -1
  15. package/bundles/sd-angular-core-tab-router.umd.min.js.map +1 -1
  16. package/esm2015/grid-material/sd-angular-core-grid-material.js +2 -2
  17. package/esm2015/grid-material/src/lib/grid-material.component.js +2 -2
  18. package/esm2015/grid-material/src/lib/grid-material.module.js +3 -3
  19. package/esm2015/grid-material/src/lib/models/grid-selection.model.js +1 -1
  20. package/esm2015/grid-material/src/lib/pipes/selection-disable.pipe.js +7 -4
  21. package/esm2015/grid-material/src/lib/pipes/{selection-disable-select-all.pipe.js → selection-visible-select-all.pipe.js} +8 -8
  22. package/esm2015/loading/src/lib/loading.service.js +8 -8
  23. package/esm2015/select/src/lib/select.component.js +6 -3
  24. package/esm2015/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.js +1 -1
  25. package/fesm2015/sd-angular-core-grid-material.js +16 -13
  26. package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
  27. package/fesm2015/sd-angular-core-loading.js +5 -5
  28. package/fesm2015/sd-angular-core-loading.js.map +1 -1
  29. package/fesm2015/sd-angular-core-select.js +5 -2
  30. package/fesm2015/sd-angular-core-select.js.map +1 -1
  31. package/fesm2015/sd-angular-core-tab-router.js +1 -1
  32. package/grid-material/sd-angular-core-grid-material.d.ts +1 -1
  33. package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
  34. package/grid-material/src/lib/models/grid-selection.model.d.ts +3 -2
  35. package/grid-material/src/lib/pipes/{selection-disable-select-all.pipe.d.ts → selection-visible-select-all.pipe.d.ts} +1 -1
  36. package/package.json +1 -1
  37. package/{sd-angular-core-0.0.971.tgz → sd-angular-core-0.0.975.tgz} +0 -0
  38. package/tab-router/sd-angular-core-tab-router.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/select/src/lib/select-display-def.directive.ts","../../../../projects/sd-core/select/src/lib/select.component.ts","../../../../projects/sd-core/select/src/lib/select.module.ts"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","__classPrivateFieldGet","receiver","privateMap","has","get","__classPrivateFieldSet","set","templateRef","Directive","args","selector","TemplateRef","SdSelect","ref","utilityService","_this","_name","uuid.v4","disableErrorMessage","formControl","FormControl","searchTerm$","Subject","_form","_model","_items","_currentItems","_allItem","loading","_delay","isRequired","_validator","multiple","limit","filtered","selectAll","allSelected","modelChange","EventEmitter","sdChange","sdSelection","_updateValidator","clearValidators","clearAsyncValidators","validators","asyncValidators","Validators","required","_customValidator","setValidators","setAsyncValidators","updateValueAndValidity","_loadItems","searchText","items","finally","results","_c","objItem_1","valueField","arrayToObject","forEach","item","toString","assign","val","displayField","detectChanges","onSelectionChange","change","select","options","some","selected","_a","_onChange","reValidate","emitEvent","Array","isArray","vals_1","dataType","every","Number","isNumber","map","emit","filter","e1","val_1","_b","find","clear","$event","stopPropagation","setValue","func","c","message","customValidator","onOpenChange","isOpened","input","defineProperty","prototype","NgForm","form","validator","disable","enable","ngOnInit","filteredItems","asObservable","pipe","startWith","debounceTime","switchMap","index","formValue","changeAliasLowerCase","value_1","display","indexOf","value_2","ngAfterViewInit","addControl","ngOnDestroy","removeControl","onSelectAll","Component","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","SdUtilityService","ViewChild","Input","ContentChild","SdSelectDisplayDefDirective","Output","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatTooltipModule","MatFormFieldModule","MatIconModule","MatSelectModule","MatProgressSpinnerModule","MatCheckboxModule","SdTranslateModule","declarations","exports","providers"],"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 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\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdSelectDisplayDef]'\r\n})\r\nexport class SdSelectDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, AfterViewInit, OnDestroy, OnInit, ViewChild, ChangeDetectionStrategy, ContentChild } from '@angular/core';\r\nimport { NgForm, FormControl, Validators, ValidatorFn, AbstractControl, AsyncValidatorFn, FormGroup } from '@angular/forms';\r\nimport * as uuid from 'uuid';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { debounceTime, startWith, switchMap } from 'rxjs/operators';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n@Component({\r\n selector: 'sd-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdSelect implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild('input') input: MatInput;\r\n @ViewChild('select') select: MatSelect;\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n formControl = new FormControl();\r\n\r\n searchTerm$ = new Subject();\r\n\r\n get dataType(): 'boolean' | 'number' | 'string' {\r\n if (Array.isArray(this.#model)) {\r\n if (this.#model.length && typeof (this.#model[0]) === 'number') {\r\n return 'number';\r\n }\r\n if (this.#model.length && typeof (this.#model[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n return 'string';\r\n } else {\r\n if ((this.#model && typeof (this.#model) === 'number') || this.#model === 0) {\r\n return 'number';\r\n }\r\n if ((this.#model && typeof (this.#model) === 'boolean') || this.#model === false) {\r\n return 'boolean';\r\n }\r\n }\r\n if (this.#currentItems?.length) {\r\n if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'number') {\r\n return 'number';\r\n } else if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'boolean') {\r\n return 'boolean';\r\n } else if (typeof (this.#currentItems[0]) === 'number') {\r\n return 'number';\r\n } else if (typeof (this.#currentItems[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n }\r\n return 'string';\r\n }\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n // Model\r\n #model: boolean | number | string | (number | string)[];\r\n @Input() set model(value: undefined | boolean | number | string | (number | string)[]) {\r\n this.#model = value;\r\n if (Array.isArray(value)) {\r\n this.formControl.setValue(value.map(val => (val ?? '') + ''), {\r\n emitEvent: false\r\n });\r\n } else {\r\n this.formControl.setValue((value ?? '') + '', {\r\n emitEvent: false\r\n });\r\n }\r\n this.ref.detectChanges();\r\n }\r\n // Items\r\n #items: any[] | ((searchText?: string) => Promise<any[]>) = [];\r\n #currentItems: any[] = [];\r\n #allItem: {\r\n [key: string]: any\r\n } = {};\r\n @Input() set items(items: undefined | any[] | ((searchText?: string) => Promise<any[]>)) {\r\n if (!items) {\r\n this.#items = [];\r\n } else if (Array.isArray(items)) {\r\n this.#items = items.filter(e => e !== null && e !== undefined);\r\n } else {\r\n this.#items = items;\r\n }\r\n this.searchTerm$.next('');\r\n }\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n\r\n // Server search\r\n loading = false;\r\n #delay = 500; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n\r\n // Validator\r\n isRequired = false;\r\n #validator: (value: any) => string | Promise<string>;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n @Input() set validator(validator: (value: any) => string | Promise<string>) {\r\n this.#validator = validator;\r\n this.#updateValidator();\r\n }\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n multiple = false;\r\n @Input('multiple') set _multiple(val: boolean | '') {\r\n this.multiple = (val === '') || val;\r\n }\r\n @Input() limit = 100;\r\n filtered = false;\r\n @Input('filtered') set _filtered(val: boolean | '') {\r\n this.filtered = (val === '') || val;\r\n }\r\n @ContentChild(SdSelectDisplayDefDirective) selectDisplayDef: SdSelectDisplayDefDirective;\r\n selectAll = false;\r\n @Input('selectAll') set _selectAll(val: boolean | '') {\r\n this.selectAll = (val === '') || val;\r\n }\r\n filteredItems: Observable<any[]>;\r\n allSelected = false;\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n @Output() sdSelection = new EventEmitter<{ value: any | any[], item?: any, items?: any[] }>();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private utilityService: SdUtilityService) { }\r\n\r\n ngOnInit() {\r\n this.filteredItems = this.searchTerm$.asObservable().pipe(\r\n startWith(''),\r\n debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0),\r\n // distinctUntilChanged(), Dùng sẽ gây ra bug khi items changes\r\n switchMap(async (val: string) => {\r\n if (typeof (this.#items) === 'function') {\r\n const items = await this.#loadItems(val, this.#items);\r\n this.#currentItems = items.filter((item, index) => {\r\n const formValue: any | any[] = this.formControl.value;\r\n let value = item?.toString() || '';\r\n if (this.valueField && this.displayField) {\r\n value = item[this.valueField]?.toString() || '';\r\n }\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || index < this.limit;\r\n });\r\n return this.#currentItems.map(e => {\r\n if (this.valueField && this.displayField) {\r\n return {\r\n ...e,\r\n [`${this.valueField}`]: e[this.valueField]?.toString()\r\n };\r\n }\r\n return e?.toString();\r\n });\r\n // return this.#currentItems.map(e => {\r\n // if (this.valueField && this.displayField) {\r\n // return {\r\n // ...e,\r\n // [`${this.valueField}`]: e[this.displayField]?.toString() ?? e[this.valueField]?.toString()\r\n // };\r\n // }\r\n // return e?.toString();\r\n // });\r\n }\r\n const { changeAliasLowerCase } = this.utilityService;\r\n this.#currentItems = this.#items.filter(item => {\r\n const searchText = changeAliasLowerCase(val);\r\n const formValue: any | any[] = this.formControl.value;\r\n if (this.valueField && this.displayField) {\r\n const value = item[this.valueField]?.toString() || '';\r\n const display = item[this.displayField]?.toString() || '';\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || changeAliasLowerCase(value).indexOf(searchText) !== -1\r\n || changeAliasLowerCase(display).indexOf(searchText) !== -1;\r\n } else {\r\n const value = item?.toString() || '';\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || changeAliasLowerCase(value).indexOf(searchText) !== -1;\r\n }\r\n }).filter((item, index) => {\r\n const formValue: any | any[] = this.formControl.value;\r\n let value = item?.toString() || '';\r\n if (this.valueField && this.displayField) {\r\n value = item[this.valueField]?.toString() || '';\r\n }\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || index < this.limit;\r\n });\r\n return this.#currentItems.map(e => {\r\n if (this.valueField && this.displayField) {\r\n return {\r\n ...e,\r\n [`${this.valueField}`]: e[this.valueField]?.toString()\r\n };\r\n }\r\n return e?.toString();\r\n });\r\n })\r\n );\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.#validator) {\r\n asyncValidators.push(this.#customValidator(this.#validator));\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n #loadItems = async (searchText: string, items: (searchText?: string) => Promise<any[]>) => {\r\n this.loading = true;\r\n const results = await items(searchText).finally(() => this.loading = false);\r\n if (this.multiple) {\r\n let objItem = {};\r\n if (this.valueField) {\r\n objItem = this.utilityService.arrayToObject(results, this.valueField);\r\n } else {\r\n results.forEach(item => objItem[item?.toString()] = item);\r\n }\r\n Object.assign(this.#allItem, objItem);\r\n const values: (number | string)[] = this.formControl.value || [];\r\n values.forEach(val => {\r\n if (!objItem[val]) {\r\n if (this.#allItem[val]) {\r\n results.push(this.#allItem[val]);\r\n } else {\r\n results.push({\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n });\r\n }\r\n }\r\n });\r\n }\r\n this.ref.detectChanges();\r\n return results;\r\n }\r\n\r\n onSelectionChange = (change: MatSelectChange) => {\r\n this.allSelected = !this.select.options.some(e => !e.selected);\r\n const value = change?.value ?? '';\r\n if (this.multiple) {\r\n this.#onChange(value || []);\r\n } else {\r\n this.searchTerm$.next('');\r\n this.#onChange(value);\r\n }\r\n }\r\n\r\n onSelectAll() {\r\n if (this.allSelected) {\r\n this.formControl.setValue(this.select.options.map(e => e.value));\r\n } else {\r\n this.formControl.setValue([]);\r\n }\r\n this.#onChange(this.formControl.value);\r\n }\r\n\r\n reValidate = () => {\r\n this.formControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n\r\n #onChange = (value: boolean | number | string | (number | string)[]) => {\r\n if (Array.isArray(value)) {\r\n let vals = value;\r\n if (this.dataType === 'number' && value.every(val => Number.isNumber(val))) {\r\n vals = value.map(e => +e);\r\n }\r\n this.modelChange.emit(vals);\r\n this.sdChange.emit(vals);\r\n this.sdSelection.emit({\r\n value: vals,\r\n items: this.#currentItems?.filter(e => vals.some(e1 => e1?.toString() === e?.[this.valueField]?.toString()))\r\n });\r\n } else {\r\n let val = value;\r\n if (this.dataType === 'number' && Number.isNumber(value)) {\r\n val = +value;\r\n }\r\n if (this.dataType === 'boolean') {\r\n if (value === 'true') {\r\n val = true;\r\n } else if (value === 'false') {\r\n val = false;\r\n } else {\r\n val = !!value;\r\n }\r\n }\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(val);\r\n this.sdSelection.emit({\r\n value: val,\r\n item: this.#currentItems?.find(e => val?.toString() === e?.[this.valueField]?.toString())\r\n });\r\n }\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n if (this.multiple) {\r\n this.formControl.setValue([]);\r\n this.modelChange.emit([]);\r\n this.sdChange.emit([]);\r\n this.sdSelection.emit({\r\n value: [],\r\n items: []\r\n });\r\n } else {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n this.sdSelection.emit({\r\n value: null,\r\n item: null\r\n });\r\n }\r\n }\r\n\r\n #customValidator = (func: (value: any) => string | Promise<string>): AsyncValidatorFn => {\r\n return async (c: AbstractControl): Promise<{ [key: string]: any } | null> => {\r\n const value = c.value || null;\r\n if (func && typeof (func) === 'function') {\r\n const result = func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n onOpenChange = (isOpened: boolean) => {\r\n if(isOpened) {\r\n this.input.value = null;\r\n this.searchTerm$.next('');\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport '@sd-angular/core/typing';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdSelect } from './select.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n MatCheckboxModule,\r\n SdTranslateModule\r\n ],\r\n declarations: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n exports: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdSelectModule {\r\n\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/select/src/lib/select-display-def.directive.ts","../../../../projects/sd-core/select/src/lib/select.component.ts","../../../../projects/sd-core/select/src/lib/select.module.ts"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","__classPrivateFieldGet","receiver","privateMap","has","get","__classPrivateFieldSet","set","templateRef","Directive","args","selector","TemplateRef","SdSelect","ref","utilityService","_this","_name","uuid.v4","disableErrorMessage","formControl","FormControl","searchTerm$","Subject","_form","_model","_items","_currentItems","_allItem","loading","_delay","isRequired","_validator","multiple","limit","filtered","selectAll","allSelected","modelChange","EventEmitter","sdChange","sdSelection","_updateValidator","clearValidators","clearAsyncValidators","validators","asyncValidators","Validators","required","_customValidator","setValidators","setAsyncValidators","updateValueAndValidity","_loadItems","searchText","items","finally","results","_c","objItem_1","valueField","arrayToObject","forEach","item","toString","assign","val","displayField","detectChanges","onSelectionChange","change","select","options","some","selected","_a","_onChange","reValidate","emitEvent","Array","isArray","vals_1","dataType","every","Number","isNumber","map","emit","filter","e1","val_1","_b","find","clear","$event","stopPropagation","setValue","func","c","message","customValidator","onOpenChange","isOpened","input","defineProperty","prototype","NgForm","form","validator","disable","enable","ngOnInit","filteredItems","asObservable","pipe","startWith","debounceTime","switchMap","index","formValue","changeAliasLowerCase","value_1","display","indexOf","value_2","ngAfterViewInit","addControl","ngOnDestroy","removeControl","onSelectAll","Component","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","SdUtilityService","ViewChild","Input","ContentChild","SdSelectDisplayDefDirective","Output","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatTooltipModule","MatFormFieldModule","MatIconModule","MatSelectModule","MatProgressSpinnerModule","MatCheckboxModule","SdTranslateModule","declarations","exports","providers"],"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 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\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdSelectDisplayDef]'\r\n})\r\nexport class SdSelectDisplayDefDirective {\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n}\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, AfterViewInit, OnDestroy, OnInit, ViewChild, ChangeDetectionStrategy, ContentChild } from '@angular/core';\r\nimport { NgForm, FormControl, Validators, ValidatorFn, AbstractControl, AsyncValidatorFn, FormGroup } from '@angular/forms';\r\nimport * as uuid from 'uuid';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { debounceTime, startWith, switchMap } from 'rxjs/operators';\r\nimport { SdUtilityService } from '@sd-angular/core/utility';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n@Component({\r\n selector: 'sd-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdSelect implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild('input') input: MatInput;\r\n @ViewChild('select') select: MatSelect;\r\n #name = uuid.v4();\r\n @Input() set name(val: string) {\r\n if (val) {\r\n this.#name = val;\r\n }\r\n }\r\n disableErrorMessage = false;\r\n @Input('disableErrorMessage') set _disableErrorMessage(val: boolean | '') {\r\n this.disableErrorMessage = (val === '') || val;\r\n val = (val === '') || val;\r\n }\r\n formControl = new FormControl();\r\n\r\n searchTerm$ = new Subject();\r\n\r\n get dataType(): 'boolean' | 'number' | 'string' {\r\n if (Array.isArray(this.#model)) {\r\n if (this.#model.length && typeof (this.#model[0]) === 'number') {\r\n return 'number';\r\n }\r\n if (this.#model.length && typeof (this.#model[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n return 'string';\r\n } else {\r\n if ((this.#model && typeof (this.#model) === 'number') || this.#model === 0) {\r\n return 'number';\r\n }\r\n if ((this.#model && typeof (this.#model) === 'boolean') || this.#model === false) {\r\n return 'boolean';\r\n }\r\n }\r\n if (this.#currentItems?.length) {\r\n if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'number') {\r\n return 'number';\r\n } else if (this.valueField && typeof (this.#currentItems[0][this.valueField]) === 'boolean') {\r\n return 'boolean';\r\n } else if (typeof (this.#currentItems[0]) === 'number') {\r\n return 'number';\r\n } else if (typeof (this.#currentItems[0]) === 'boolean') {\r\n return 'boolean';\r\n }\r\n }\r\n return 'string';\r\n }\r\n @Input() size: 'sm' | 'lg';\r\n #form: FormGroup;\r\n @Input() set form(val: NgForm | FormGroup) {\r\n if (val) {\r\n if (val instanceof NgForm) {\r\n this.#form = val.form;\r\n } else {\r\n this.#form = val;\r\n }\r\n }\r\n }\r\n @Input() label: string;\r\n @Input() placeholder: string;\r\n\r\n // Model\r\n #model: boolean | number | string | (number | string)[];\r\n @Input() set model(value: undefined | boolean | number | string | (number | string)[]) {\r\n this.#model = value;\r\n if (Array.isArray(value)) {\r\n this.formControl.setValue(value.map(val => (val ?? '') + ''), {\r\n emitEvent: false\r\n });\r\n } else {\r\n this.formControl.setValue((value ?? '') + '', {\r\n emitEvent: false\r\n });\r\n }\r\n this.ref.detectChanges();\r\n }\r\n // Items\r\n #items: any[] | ((searchText?: string) => Promise<any[]>) = [];\r\n #currentItems: any[] = [];\r\n #allItem: {\r\n [key: string]: any\r\n } = {};\r\n @Input() set items(items: undefined | any[] | ((searchText?: string) => Promise<any[]>)) {\r\n if (!items) {\r\n this.#items = [];\r\n } else if (Array.isArray(items)) {\r\n this.#items = items.filter(e => e !== null && e !== undefined);\r\n } else {\r\n this.#items = items;\r\n }\r\n this.searchTerm$.next('');\r\n }\r\n @Input() valueField: string;\r\n @Input() displayField: string;\r\n\r\n // Server search\r\n loading = false;\r\n #delay = 500; // Sau khoảng thời gian delay nếu không có thay đổi thì thì mới bắt đầu thực hiện gọi hàm\r\n\r\n // Validator\r\n isRequired = false;\r\n #validator: (value: any) => string | Promise<string>;\r\n @Input() set required(val: boolean | '') {\r\n this.isRequired = (val === '') || val;\r\n this.#updateValidator();\r\n }\r\n @Input() set validator(validator: (value: any) => string | Promise<string>) {\r\n this.#validator = validator;\r\n this.#updateValidator();\r\n }\r\n // Optional\r\n @Input() set disabled(val: boolean | '') {\r\n val = (val === '') || val;\r\n if (val) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n multiple = false;\r\n @Input('multiple') set _multiple(val: boolean | '') {\r\n this.multiple = (val === '') || val;\r\n }\r\n @Input() limit = 100;\r\n filtered = false;\r\n @Input('filtered') set _filtered(val: boolean | '') {\r\n this.filtered = (val === '') || val;\r\n }\r\n @ContentChild(SdSelectDisplayDefDirective) selectDisplayDef: SdSelectDisplayDefDirective;\r\n selectAll = false;\r\n @Input('selectAll') set _selectAll(val: boolean | '') {\r\n this.selectAll = (val === '') || val;\r\n }\r\n filteredItems: Observable<any[]>;\r\n allSelected = false;\r\n @Output() modelChange = new EventEmitter();\r\n @Output() sdChange = new EventEmitter();\r\n @Output() sdSelection = new EventEmitter<{ value: any | any[], item?: any, items?: any[] }>();\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private utilityService: SdUtilityService) { }\r\n\r\n ngOnInit() {\r\n this.filteredItems = this.searchTerm$.asObservable().pipe(\r\n startWith(''),\r\n debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0),\r\n // distinctUntilChanged(), Dùng sẽ gây ra bug khi items changes\r\n switchMap(async (val: string) => {\r\n if (typeof (this.#items) === 'function') {\r\n const items = await this.#loadItems(val, this.#items);\r\n this.#currentItems = items.filter((item, index) => {\r\n const formValue: any | any[] = this.formControl.value;\r\n let value = item?.toString() || '';\r\n if (this.valueField && this.displayField) {\r\n value = item[this.valueField]?.toString() || '';\r\n }\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || index < this.limit;\r\n });\r\n return this.#currentItems.map(e => {\r\n if (this.valueField && this.displayField) {\r\n return {\r\n ...e,\r\n [`${this.valueField}`]: e[this.valueField]?.toString()\r\n };\r\n }\r\n return e?.toString();\r\n });\r\n // return this.#currentItems.map(e => {\r\n // if (this.valueField && this.displayField) {\r\n // return {\r\n // ...e,\r\n // [`${this.valueField}`]: e[this.displayField]?.toString() ?? e[this.valueField]?.toString()\r\n // };\r\n // }\r\n // return e?.toString();\r\n // });\r\n }\r\n const { changeAliasLowerCase } = this.utilityService;\r\n this.#currentItems = this.#items.filter(item => {\r\n const searchText = changeAliasLowerCase(val);\r\n const formValue: any | any[] = this.formControl.value;\r\n if (this.valueField && this.displayField) {\r\n const value = item[this.valueField]?.toString() || '';\r\n const display = item[this.displayField]?.toString() || '';\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || changeAliasLowerCase(value).indexOf(searchText) !== -1\r\n || changeAliasLowerCase(display).indexOf(searchText) !== -1;\r\n } else {\r\n const value = item?.toString() || '';\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || changeAliasLowerCase(value).indexOf(searchText) !== -1;\r\n }\r\n }).filter((item, index) => {\r\n const formValue: any | any[] = this.formControl.value;\r\n let value = item?.toString() || '';\r\n if (this.valueField && this.displayField) {\r\n value = item[this.valueField]?.toString() || '';\r\n }\r\n return (Array.isArray(formValue) ? formValue.some(e => e?.toString() === value) : formValue?.toString() === value)\r\n || index < this.limit;\r\n });\r\n return this.#currentItems.map(e => {\r\n if (this.valueField && this.displayField) {\r\n return {\r\n ...e,\r\n [`${this.valueField}`]: e[this.valueField]?.toString()\r\n };\r\n }\r\n return e?.toString();\r\n });\r\n })\r\n );\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.#form?.addControl(this.#name, this.formControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#form?.removeControl(this.#name);\r\n }\r\n\r\n #updateValidator = () => {\r\n this.formControl.clearValidators();\r\n this.formControl.clearAsyncValidators();\r\n const validators: ValidatorFn[] = [];\r\n const asyncValidators: AsyncValidatorFn[] = [];\r\n if (this.isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (this.#validator) {\r\n asyncValidators.push(this.#customValidator(this.#validator));\r\n }\r\n this.formControl.setValidators(validators);\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n }\r\n\r\n #loadItems = async (searchText: string, items: (searchText?: string) => Promise<any[]>) => {\r\n this.loading = true;\r\n const results = await items(searchText).finally(() => this.loading = false);\r\n if (this.multiple) {\r\n let objItem = {};\r\n if (this.valueField) {\r\n objItem = this.utilityService.arrayToObject(results, this.valueField);\r\n } else {\r\n results.forEach(item => objItem[item?.toString()] = item);\r\n }\r\n Object.assign(this.#allItem, objItem);\r\n const values: (number | string)[] = this.formControl.value || [];\r\n values.forEach(val => {\r\n if (!objItem[val]) {\r\n if (this.#allItem[val]) {\r\n results.push(this.#allItem[val]);\r\n } else {\r\n results.push({\r\n [this.valueField]: val,\r\n [this.displayField]: val\r\n });\r\n }\r\n }\r\n });\r\n }\r\n this.ref.detectChanges();\r\n return results;\r\n }\r\n\r\n onSelectionChange = (change: MatSelectChange) => {\r\n this.allSelected = !this.select.options.some(e => !e.selected);\r\n const value = change?.value ?? '';\r\n if (this.multiple) {\r\n this.#onChange(value || []);\r\n } else {\r\n this.searchTerm$.next('');\r\n this.#onChange(value);\r\n }\r\n }\r\n\r\n onSelectAll() {\r\n if (this.allSelected) {\r\n this.formControl.setValue(this.select.options.map(e => e.value));\r\n } else {\r\n this.formControl.setValue([]);\r\n }\r\n this.#onChange(this.formControl.value);\r\n }\r\n\r\n reValidate = () => {\r\n this.formControl.updateValueAndValidity({ emitEvent: true });\r\n }\r\n\r\n #onChange = (value: boolean | number | string | (number | string)[]) => {\r\n if (Array.isArray(value)) {\r\n let vals = value;\r\n if (this.dataType === 'number' && value.every(val => Number.isNumber(val))) {\r\n vals = value.map(e => +e);\r\n }\r\n this.modelChange.emit(vals);\r\n this.sdChange.emit(vals);\r\n this.sdSelection.emit({\r\n value: vals,\r\n items: this.#currentItems?.filter(e => vals.some(e1 => e1?.toString() === e?.[this.valueField]?.toString()))\r\n });\r\n } else {\r\n let val = value;\r\n if (this.dataType === 'number' && Number.isNumber(value)) {\r\n val = +value;\r\n }\r\n if (this.dataType === 'boolean') {\r\n if (value === 'true') {\r\n val = true;\r\n } else if (value === 'false') {\r\n val = false;\r\n } else {\r\n val = !!value;\r\n }\r\n }\r\n this.modelChange.emit(val);\r\n this.sdChange.emit(val);\r\n this.sdSelection.emit({\r\n value: val,\r\n item: this.#currentItems?.find(e => val?.toString() === e?.[this.valueField]?.toString())\r\n });\r\n }\r\n }\r\n\r\n clear = ($event?: any) => {\r\n $event?.stopPropagation();\r\n if (this.multiple) {\r\n this.formControl.setValue([]);\r\n this.modelChange.emit([]);\r\n this.sdChange.emit([]);\r\n this.sdSelection.emit({\r\n value: [],\r\n items: []\r\n });\r\n } else {\r\n this.formControl.setValue(null);\r\n this.modelChange.emit(null);\r\n this.sdChange.emit(null);\r\n this.sdSelection.emit({\r\n value: null,\r\n item: null\r\n });\r\n }\r\n }\r\n\r\n #customValidator = (func: (value: any) => string | Promise<string>): AsyncValidatorFn => {\r\n return async (c: AbstractControl): Promise<{ [key: string]: any } | null> => {\r\n const value = c.value || null;\r\n if (func && typeof (func) === 'function') {\r\n const result = func(value);\r\n if (result instanceof Promise) {\r\n const message = await result;\r\n if (message) {\r\n return {\r\n customValidator: message\r\n };\r\n }\r\n return null;\r\n }\r\n if (result) {\r\n return {\r\n customValidator: result\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n onOpenChange = (isOpened: boolean) => {\r\n if(isOpened) {\r\n if(this.input?.value) {\r\n this.input.value = null;\r\n this.searchTerm$.next('');\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport '@sd-angular/core/typing';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SdSelect } from './select.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { SdTranslateModule } from '@sd-angular/core/translate';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatSelectModule,\r\n MatProgressSpinnerModule,\r\n MatCheckboxModule,\r\n SdTranslateModule\r\n ],\r\n declarations: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n exports: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdSelectModule {\r\n\r\n}\r\n"]}
@@ -753,7 +753,7 @@
753
753
  { type: i0.Component, args: [{
754
754
  selector: 'sd-tab-router-outlet',
755
755
  template: "<sd-tab-router-nav [tabs]=\"tabs\" #tabRouterNav></sd-tab-router-nav>\r\n\r\n<div class=\"tab-router__list\">\r\n <ng-container *ngFor=\"let tab of tabs\">\r\n <div class=\"tab-router__pane\" [class.active]=\"tab.isActive\" [id]=\"tab.key\">\r\n <div class=\"tab-router__content\">\r\n <ng-container\r\n *ngComponentOutlet=\"tab.component; injector: tab.injector\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n",
756
- styles: [":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]
756
+ styles: [":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}:host ::ng-deep .sd-loading{max-height:100%;max-width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]
757
757
  },] }
758
758
  ];
759
759
  SdTabRouterOutletComponent.ctorParameters = function () { return [
@@ -12,5 +12,5 @@
12
12
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
13
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */function b(t,e){function r(){this.constructor=t}f(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function d(t,e,r,n){return new(r||(r=Promise))((function(o,a){function i(t){try{s(n.next(t))}catch(t){a(t)}}function u(t){try{s(n.throw(t))}catch(t){a(t)}}function s(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(i,u)}s((n=n.apply(t,e||[])).next())}))}function h(t,e){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(a){return function(u){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=e.call(t,i)}catch(t){a=[6,t],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,u])}}}Object.create;function v(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,o,a=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}var m;Object.create;function y(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function g(t,e,r){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,r),r}var _=function(){function t(t){m.set(this,void 0),g(this,m,t)}return Object.defineProperty(t.prototype,"tab",{get:function(){return y(this,m)},enumerable:!1,configurable:!0}),t}();m=new WeakMap;var w,x,k=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return b(e,t),e}(_),S=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return b(e,t),e}(_),j=function(){function t(t){var e=this;this.notifyService=t,this.events=new n.BehaviorSubject(new _(null)),this.actions=new n.BehaviorSubject(null),this.builders=new n.BehaviorSubject([]),w.set(this,null),x.set(this,[]),this.addBuilder=function(t){y(e,x).some((function(e){return e.component===t.component}))||(y(e,x).push(t),e.builders.next(y(e,x)))},this.setCurrentTab=function(t){g(e,w,t)},this.pushEvent=function(t,r){e.events.next(new r(t))},this.setOptions=function(){},this.close=function(t){t?e.actions.next({type:"close",tab:t}):y(e,w)&&e.actions.next({type:"close",tab:y(e,w)})}}return Object.defineProperty(t.prototype,"currentTab",{get:function(){return y(this,w)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"key",{get:function(){var t;return(null===(t=y(this,w))||void 0===t?void 0:t.key)||null},enumerable:!1,configurable:!0}),t}();w=new WeakMap,x=new WeakMap,j.ɵprov=r.ɵɵdefineInjectable({factory:function(){return new j(r.ɵɵinject(o.SdNotifyService))},token:j,providedIn:"root"}),j.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],j.ctorParameters=function(){return[{type:o.SdNotifyService}]};var R=function t(e){t.tabRouterService.next(e)};R.tabRouterService=new n.BehaviorSubject(void 0),R.ɵprov=r.ɵɵdefineInjectable({factory:function(){return new R(r.ɵɵinject(j))},token:R,providedIn:"root"}),R.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],R.ctorParameters=function(){return[{type:j}]};var I=function(t){var e=this;this.tabRouterService=t,this.close=function(t){t.preventDefault(),t.stopPropagation(),e.tabRouterService.close(e.tab)}};I.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-item",template:'<a [routerLink]="[tab.url]" [queryParams]="tab.queryParams" [state]="{ switchTab: true }"\r\n class="tab-router__item d-flex align-items-center" [ngClass]="{\r\n \'tab-router__item--active\': tab.isActive\r\n }">\r\n <ng-container *ngIf="tab | sdTabInfo | async as tabInfo">\r\n <div class="\r\n tab-router__icon\r\n d-flex\r\n align-items-center\r\n justify-content-center\r\n mr-8\r\n " [ngStyle]="{\r\n \'background-color\': tabInfo.color\r\n }" [matTooltip]="tabInfo.tooltip || tabInfo.name" matTooltipPosition="below" matTooltipShowDelay="1000">\r\n {{ tabInfo.initialName || \'SD\' }}\r\n </div>\r\n <div class="flex-1">\r\n <div class="tab-router__name">{{ tabInfo.name }}</div>\r\n </div>\r\n <button type="button" class="\r\n tab-router__close\r\n d-flex\r\n align-items-center\r\n justify-content-center\r\n ml-4\r\n " (click)="close($event)">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </ng-container>\r\n\r\n</a>',styles:[':host{flex:1 1 auto;max-width:240px;position:relative}:host:after{background:#dde0e5;bottom:0;content:"";height:16px;margin:auto;position:absolute;right:0;top:0;width:1px}:host:last-child:after{content:none}.flex-1{flex:1}.tab-router__icon{background-color:#5c6bc0;border-radius:2px;color:#fff;font-size:10px;height:16px;line-height:1;text-transform:uppercase;width:16px}.tab-router__icon .mat-icon{font-size:10px;height:10px;width:10px}.tab-router__close{background:none;border:0;border-radius:50%;color:#757575;height:16px;outline:none;width:16px}.tab-router__close:hover{background-color:rgba(0,0,0,.12)}.tab-router__close .mat-icon{font-size:12px;height:12px;width:12px}.tab-router__item{background:#f2f3f4;color:inherit;font-size:12px;line-height:16px;padding:16px 16px 8px;text-decoration:none}.tab-router__item:hover{background-color:#fff}.tab-router__name{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.tab-router__item--active{background-color:#fff;border-radius:8px 8px 0 0}']}]}],I.ctorParameters=function(){return[{type:j}]},I.propDecorators={tab:[{type:r.Input}]};var T,P,C,N,O,q,M,A=function(){function t(){var t=this;this.mode="default",this.checkUI=function(){var e=(t.tabRouterNav.nativeElement.clientWidth-64*t.tabs.length)/t.tabs.length;t.mode=e<=20?"compact":"default"}}return t.prototype.onResize=function(t){this.checkUI()},t}();A.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-nav",template:'<div\r\n #tabRouterNav\r\n class="tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center"\r\n>\r\n <ng-container *ngFor="let tab of tabs">\r\n <sd-tab-router-item [tab]="tab"></sd-tab-router-item>\r\n </ng-container>\r\n</div>\r\n',styles:[".tab-router__nav{background:#f9f9f9}.tab-router__nav--compact::ng-deep .tab-router__name{display:none}.tab-router__nav--compact::ng-deep .tab-router__icon{margin:0!important}.tab-router__nav--compact::ng-deep .tab-router__item--active{min-width:240px}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__icon{margin-right:8px!important}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__name{display:-webkit-box}"]}]}],A.ctorParameters=function(){return[]},A.propDecorators={tabRouterNav:[{type:r.ViewChild,args:["tabRouterNav"]}],tabs:[{type:r.Input}],onResize:[{type:r.HostListener,args:["window:resize",["$event"]]}]};var D=function(){function t(t,r,o,i,u,s,c,l){var f=this;this.router=t,this.activatedRoute=r,this.cd=o,this.injector=i,this.compiler=u,this.tabDecoratorService=s,this.tabRouterService=c,this.sdNotifyService=l,this.tabs=[],T.set(this,void 0),P.set(this,new n.Subscription),C.set(this,!0),N.set(this,(function(t){var e,r=t.isActive,n=t.key;if(r){var o=f.tabs.findIndex((function(t){return t.key===n})),a=f.tabs[o+1]||f.tabs[o-1];if(a){var i=a.url,u=Object.assign({},a.queryParams||{});f.tabs=f.tabs.filter((function(t){return t.key!==n})),f.router.navigate([i],{queryParams:u,state:{switchTab:!0}})}else f.tabs=f.tabs.filter((function(t){return t.key!==n})),f.router.navigateByUrl("/",{state:{switchTab:!0}})}else f.tabs=f.tabs.filter((function(e){return e.key!==t.key})),null===(e=f.tabRouterNav)||void 0===e||e.checkUI(),f.cd.markForCheck()})),O.set(this,(function(t,e){return d(f,void 0,void 0,(function(){var r,n,o,a,i,u,s,c,l,f,b,d,m,g,_,w,x,j,R,I,P,C,N,O,q=this;return h(this,(function(h){switch(h.label){case 0:return(null==e?void 0:e.component)?(f=e.component,b=Object.assign({},e.queryParams||{}),d=Object.assign({},e.params||{}),m=v(t.split("?"),1),g=m[0],_=p({url:g,queryParams:b}),w=-1,x=-1,this.tabs.forEach((function(t,e){t.key===_?(t.isActive=!0,w=e):(t.isActive&&(x=e,q.tabRouterService.pushEvent(t,S)),t.isActive=!1)})),j=this.router.getCurrentNavigation(),w>=0&&(null===(n=null===(r=null==j?void 0:j.extras)||void 0===r?void 0:r.state)||void 0===n?void 0:n.switchTab)?(R=this.tabs[w],this.tabRouterService.setCurrentTab(R),this.tabRouterService.pushEvent(R,k),[3,5]):[3,1]):[2];case 1:return"function"!=typeof(null===(a=null===(o=null==e?void 0:e.parent)||void 0===o?void 0:o.routeConfig)||void 0===a?void 0:a.loadChildren)?[3,4]:[4,e.parent.routeConfig.loadChildren()];case 2:return I=h.sent(),[4,this.compiler.compileModuleAsync(I)];case 3:P=h.sent(),C=P.create(this.injector),N=y(this,M).call(this,y(this,T),f),O={key:_,component:f,injector:new E(N,C),isActive:!0,name:g,url:g,params:d,queryParams:b},this.tabRouterService.setCurrentTab(O),x>=0&&(null===(u=null===(i=null==j?void 0:j.extras)||void 0===i?void 0:i.state)||void 0===u?void 0:u.replaceTab)&&this.tabs.splice(x,1),w>=0&&!(null===(c=null===(s=null==j?void 0:j.extras)||void 0===s?void 0:s.state)||void 0===c?void 0:c.switchTab)?this.tabs[w]=O:this.tabs.push(O),h.label=4;case 4:null===(l=this.tabRouterNav)||void 0===l||l.checkUI(),this.tabs.length>10&&this.sdNotifyService.notify.warning("Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn."),this.tabs.length>12&&this.tabs.splice(0,this.tabs.length-10),h.label=5;case 5:return this.cd.markForCheck(),[2]}}))}))})),q.set(this,(function(t){if(!t)return null;for(;t.firstChild;)t=t.firstChild;return t})),M.set(this,(function(t,e){if(!t)return null;if(t.component&&t.component===e)return t;for(;t.firstChild;)if((t=t.firstChild).component&&t.component===e)return t;return null})),y(this,P).add(t.events.pipe(e.filter((function(t){return t instanceof a.RoutesRecognized||t instanceof a.NavigationEnd}))).subscribe((function(t){return d(f,void 0,void 0,(function(){var e;return h(this,(function(r){switch(r.label){case 0:return y(this,C)&&t instanceof a.NavigationEnd?(g(this,C,!1),e=y(this,q).call(this,this.activatedRoute.snapshot),g(this,T,this.router.routerState.root),[4,y(this,O).call(this,t.urlAfterRedirects||t.url,e)]):[3,2];case 1:return r.sent(),[2];case 2:return!y(this,C)&&t instanceof a.RoutesRecognized?(e=y(this,q).call(this,t.state.root),g(this,T,this.router.routerState.root),[4,y(this,O).call(this,t.urlAfterRedirects||t.url,e)]):[3,4];case 3:r.sent(),r.label=4;case 4:return[2]}}))}))}))),y(this,P).add(c.actions.subscribe((function(t){t&&"close"===t.type&&y(f,N).call(f,t.tab)})))}return t.prototype.ngOnDestroy=function(){y(this,P).unsubscribe()},t}();T=new WeakMap,P=new WeakMap,C=new WeakMap,N=new WeakMap,O=new WeakMap,q=new WeakMap,M=new WeakMap,D.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-outlet",template:'<sd-tab-router-nav [tabs]="tabs" #tabRouterNav></sd-tab-router-nav>\r\n\r\n<div class="tab-router__list">\r\n <ng-container *ngFor="let tab of tabs">\r\n <div class="tab-router__pane" [class.active]="tab.isActive" [id]="tab.key">\r\n <div class="tab-router__content">\r\n <ng-container\r\n *ngComponentOutlet="tab.component; injector: tab.injector"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n',styles:[":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]}]}],D.ctorParameters=function(){return[{type:a.Router},{type:a.ActivatedRoute},{type:r.ChangeDetectorRef},{type:r.Injector},{type:r.Compiler},{type:R},{type:j},{type:o.SdNotifyService}]},D.propDecorators={tabRouterNav:[{type:r.ViewChild,args:["tabRouterNav"]}]};var E=function(){function t(t,e){this.route=t,this.parent=e}return t.prototype.get=function(t,e){return t===a.ActivatedRoute&&this.route?this.route:this.parent.get(t,e)},t}(),W=function(){function t(t){this.tabRouterService=t}return t.prototype.transform=function(t){return this.tabRouterService.builders.pipe(e.map((function(e){var r=e.find((function(e){return e.component===t.component}));if(r){var n=t.url,o=t.params,a=t.queryParams;return t.tabInfo={name:"function"==typeof r.name?r.name({url:n,params:o,queryParams:a}):r.name,initialName:"function"==typeof r.initialName?r.initialName({url:n,params:o,queryParams:a}):r.initialName,tooltip:"function"==typeof r.tooltip?r.tooltip({url:n,params:o,queryParams:a}):r.tooltip,color:"function"==typeof r.color?r.color({url:n,params:o,queryParams:a}):r.color},t.tabInfo}return t.tabInfo={name:t.url,initialName:null},t.tabInfo})))},t}();W.decorators=[{type:r.Pipe,args:[{name:"sdTabInfo"}]}],W.ctorParameters=function(){return[{type:j}]};var z=function(){};z.decorators=[{type:r.NgModule,args:[{declarations:[I,A,D,W],imports:[a.RouterModule,u.CommonModule,s.MatIconModule,c.MatTooltipModule],exports:[I,A,D],providers:[]}]}],t.SdTabActivated=k,t.SdTabBase=_,t.SdTabComponent=function(t){return function(r){R.tabRouterService.pipe(e.filter((function(t){return null!=t})),e.take(1)).subscribe((function(e){e.addBuilder(t)}))}},t.SdTabDeactivated=S,t.SdTabDecoratorService=R,t.SdTabRouterItemComponent=I,t.SdTabRouterModule=z,t.SdTabRouterNavComponent=A,t.SdTabRouterOutletComponent=D,t.SdTabRouterService=j,t.ɵa=W,Object.defineProperty(t,"__esModule",{value:!0})}));
15
+ ***************************************************************************** */function b(t,e){function r(){this.constructor=t}f(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function d(t,e,r,n){return new(r||(r=Promise))((function(o,a){function i(t){try{s(n.next(t))}catch(t){a(t)}}function u(t){try{s(n.throw(t))}catch(t){a(t)}}function s(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(i,u)}s((n=n.apply(t,e||[])).next())}))}function h(t,e){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(a){return function(u){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=e.call(t,i)}catch(t){a=[6,t],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,u])}}}Object.create;function v(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,o,a=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}var m;Object.create;function g(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function y(t,e,r){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,r),r}var _=function(){function t(t){m.set(this,void 0),y(this,m,t)}return Object.defineProperty(t.prototype,"tab",{get:function(){return g(this,m)},enumerable:!1,configurable:!0}),t}();m=new WeakMap;var w,x,k=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return b(e,t),e}(_),S=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return b(e,t),e}(_),j=function(){function t(t){var e=this;this.notifyService=t,this.events=new n.BehaviorSubject(new _(null)),this.actions=new n.BehaviorSubject(null),this.builders=new n.BehaviorSubject([]),w.set(this,null),x.set(this,[]),this.addBuilder=function(t){g(e,x).some((function(e){return e.component===t.component}))||(g(e,x).push(t),e.builders.next(g(e,x)))},this.setCurrentTab=function(t){y(e,w,t)},this.pushEvent=function(t,r){e.events.next(new r(t))},this.setOptions=function(){},this.close=function(t){t?e.actions.next({type:"close",tab:t}):g(e,w)&&e.actions.next({type:"close",tab:g(e,w)})}}return Object.defineProperty(t.prototype,"currentTab",{get:function(){return g(this,w)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"key",{get:function(){var t;return(null===(t=g(this,w))||void 0===t?void 0:t.key)||null},enumerable:!1,configurable:!0}),t}();w=new WeakMap,x=new WeakMap,j.ɵprov=r.ɵɵdefineInjectable({factory:function(){return new j(r.ɵɵinject(o.SdNotifyService))},token:j,providedIn:"root"}),j.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],j.ctorParameters=function(){return[{type:o.SdNotifyService}]};var R=function t(e){t.tabRouterService.next(e)};R.tabRouterService=new n.BehaviorSubject(void 0),R.ɵprov=r.ɵɵdefineInjectable({factory:function(){return new R(r.ɵɵinject(j))},token:R,providedIn:"root"}),R.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],R.ctorParameters=function(){return[{type:j}]};var I=function(t){var e=this;this.tabRouterService=t,this.close=function(t){t.preventDefault(),t.stopPropagation(),e.tabRouterService.close(e.tab)}};I.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-item",template:'<a [routerLink]="[tab.url]" [queryParams]="tab.queryParams" [state]="{ switchTab: true }"\r\n class="tab-router__item d-flex align-items-center" [ngClass]="{\r\n \'tab-router__item--active\': tab.isActive\r\n }">\r\n <ng-container *ngIf="tab | sdTabInfo | async as tabInfo">\r\n <div class="\r\n tab-router__icon\r\n d-flex\r\n align-items-center\r\n justify-content-center\r\n mr-8\r\n " [ngStyle]="{\r\n \'background-color\': tabInfo.color\r\n }" [matTooltip]="tabInfo.tooltip || tabInfo.name" matTooltipPosition="below" matTooltipShowDelay="1000">\r\n {{ tabInfo.initialName || \'SD\' }}\r\n </div>\r\n <div class="flex-1">\r\n <div class="tab-router__name">{{ tabInfo.name }}</div>\r\n </div>\r\n <button type="button" class="\r\n tab-router__close\r\n d-flex\r\n align-items-center\r\n justify-content-center\r\n ml-4\r\n " (click)="close($event)">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </ng-container>\r\n\r\n</a>',styles:[':host{flex:1 1 auto;max-width:240px;position:relative}:host:after{background:#dde0e5;bottom:0;content:"";height:16px;margin:auto;position:absolute;right:0;top:0;width:1px}:host:last-child:after{content:none}.flex-1{flex:1}.tab-router__icon{background-color:#5c6bc0;border-radius:2px;color:#fff;font-size:10px;height:16px;line-height:1;text-transform:uppercase;width:16px}.tab-router__icon .mat-icon{font-size:10px;height:10px;width:10px}.tab-router__close{background:none;border:0;border-radius:50%;color:#757575;height:16px;outline:none;width:16px}.tab-router__close:hover{background-color:rgba(0,0,0,.12)}.tab-router__close .mat-icon{font-size:12px;height:12px;width:12px}.tab-router__item{background:#f2f3f4;color:inherit;font-size:12px;line-height:16px;padding:16px 16px 8px;text-decoration:none}.tab-router__item:hover{background-color:#fff}.tab-router__name{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.tab-router__item--active{background-color:#fff;border-radius:8px 8px 0 0}']}]}],I.ctorParameters=function(){return[{type:j}]},I.propDecorators={tab:[{type:r.Input}]};var T,P,C,N,O,q,M,A=function(){function t(){var t=this;this.mode="default",this.checkUI=function(){var e=(t.tabRouterNav.nativeElement.clientWidth-64*t.tabs.length)/t.tabs.length;t.mode=e<=20?"compact":"default"}}return t.prototype.onResize=function(t){this.checkUI()},t}();A.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-nav",template:'<div\r\n #tabRouterNav\r\n class="tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center"\r\n>\r\n <ng-container *ngFor="let tab of tabs">\r\n <sd-tab-router-item [tab]="tab"></sd-tab-router-item>\r\n </ng-container>\r\n</div>\r\n',styles:[".tab-router__nav{background:#f9f9f9}.tab-router__nav--compact::ng-deep .tab-router__name{display:none}.tab-router__nav--compact::ng-deep .tab-router__icon{margin:0!important}.tab-router__nav--compact::ng-deep .tab-router__item--active{min-width:240px}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__icon{margin-right:8px!important}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__name{display:-webkit-box}"]}]}],A.ctorParameters=function(){return[]},A.propDecorators={tabRouterNav:[{type:r.ViewChild,args:["tabRouterNav"]}],tabs:[{type:r.Input}],onResize:[{type:r.HostListener,args:["window:resize",["$event"]]}]};var D=function(){function t(t,r,o,i,u,s,c,l){var f=this;this.router=t,this.activatedRoute=r,this.cd=o,this.injector=i,this.compiler=u,this.tabDecoratorService=s,this.tabRouterService=c,this.sdNotifyService=l,this.tabs=[],T.set(this,void 0),P.set(this,new n.Subscription),C.set(this,!0),N.set(this,(function(t){var e,r=t.isActive,n=t.key;if(r){var o=f.tabs.findIndex((function(t){return t.key===n})),a=f.tabs[o+1]||f.tabs[o-1];if(a){var i=a.url,u=Object.assign({},a.queryParams||{});f.tabs=f.tabs.filter((function(t){return t.key!==n})),f.router.navigate([i],{queryParams:u,state:{switchTab:!0}})}else f.tabs=f.tabs.filter((function(t){return t.key!==n})),f.router.navigateByUrl("/",{state:{switchTab:!0}})}else f.tabs=f.tabs.filter((function(e){return e.key!==t.key})),null===(e=f.tabRouterNav)||void 0===e||e.checkUI(),f.cd.markForCheck()})),O.set(this,(function(t,e){return d(f,void 0,void 0,(function(){var r,n,o,a,i,u,s,c,l,f,b,d,m,y,_,w,x,j,R,I,P,C,N,O,q=this;return h(this,(function(h){switch(h.label){case 0:return(null==e?void 0:e.component)?(f=e.component,b=Object.assign({},e.queryParams||{}),d=Object.assign({},e.params||{}),m=v(t.split("?"),1),y=m[0],_=p({url:y,queryParams:b}),w=-1,x=-1,this.tabs.forEach((function(t,e){t.key===_?(t.isActive=!0,w=e):(t.isActive&&(x=e,q.tabRouterService.pushEvent(t,S)),t.isActive=!1)})),j=this.router.getCurrentNavigation(),w>=0&&(null===(n=null===(r=null==j?void 0:j.extras)||void 0===r?void 0:r.state)||void 0===n?void 0:n.switchTab)?(R=this.tabs[w],this.tabRouterService.setCurrentTab(R),this.tabRouterService.pushEvent(R,k),[3,5]):[3,1]):[2];case 1:return"function"!=typeof(null===(a=null===(o=null==e?void 0:e.parent)||void 0===o?void 0:o.routeConfig)||void 0===a?void 0:a.loadChildren)?[3,4]:[4,e.parent.routeConfig.loadChildren()];case 2:return I=h.sent(),[4,this.compiler.compileModuleAsync(I)];case 3:P=h.sent(),C=P.create(this.injector),N=g(this,M).call(this,g(this,T),f),O={key:_,component:f,injector:new E(N,C),isActive:!0,name:y,url:y,params:d,queryParams:b},this.tabRouterService.setCurrentTab(O),x>=0&&(null===(u=null===(i=null==j?void 0:j.extras)||void 0===i?void 0:i.state)||void 0===u?void 0:u.replaceTab)&&this.tabs.splice(x,1),w>=0&&!(null===(c=null===(s=null==j?void 0:j.extras)||void 0===s?void 0:s.state)||void 0===c?void 0:c.switchTab)?this.tabs[w]=O:this.tabs.push(O),h.label=4;case 4:null===(l=this.tabRouterNav)||void 0===l||l.checkUI(),this.tabs.length>10&&this.sdNotifyService.notify.warning("Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn."),this.tabs.length>12&&this.tabs.splice(0,this.tabs.length-10),h.label=5;case 5:return this.cd.markForCheck(),[2]}}))}))})),q.set(this,(function(t){if(!t)return null;for(;t.firstChild;)t=t.firstChild;return t})),M.set(this,(function(t,e){if(!t)return null;if(t.component&&t.component===e)return t;for(;t.firstChild;)if((t=t.firstChild).component&&t.component===e)return t;return null})),g(this,P).add(t.events.pipe(e.filter((function(t){return t instanceof a.RoutesRecognized||t instanceof a.NavigationEnd}))).subscribe((function(t){return d(f,void 0,void 0,(function(){var e;return h(this,(function(r){switch(r.label){case 0:return g(this,C)&&t instanceof a.NavigationEnd?(y(this,C,!1),e=g(this,q).call(this,this.activatedRoute.snapshot),y(this,T,this.router.routerState.root),[4,g(this,O).call(this,t.urlAfterRedirects||t.url,e)]):[3,2];case 1:return r.sent(),[2];case 2:return!g(this,C)&&t instanceof a.RoutesRecognized?(e=g(this,q).call(this,t.state.root),y(this,T,this.router.routerState.root),[4,g(this,O).call(this,t.urlAfterRedirects||t.url,e)]):[3,4];case 3:r.sent(),r.label=4;case 4:return[2]}}))}))}))),g(this,P).add(c.actions.subscribe((function(t){t&&"close"===t.type&&g(f,N).call(f,t.tab)})))}return t.prototype.ngOnDestroy=function(){g(this,P).unsubscribe()},t}();T=new WeakMap,P=new WeakMap,C=new WeakMap,N=new WeakMap,O=new WeakMap,q=new WeakMap,M=new WeakMap,D.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-outlet",template:'<sd-tab-router-nav [tabs]="tabs" #tabRouterNav></sd-tab-router-nav>\r\n\r\n<div class="tab-router__list">\r\n <ng-container *ngFor="let tab of tabs">\r\n <div class="tab-router__pane" [class.active]="tab.isActive" [id]="tab.key">\r\n <div class="tab-router__content">\r\n <ng-container\r\n *ngComponentOutlet="tab.component; injector: tab.injector"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n',styles:[":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}:host ::ng-deep .sd-loading{max-height:100%;max-width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]}]}],D.ctorParameters=function(){return[{type:a.Router},{type:a.ActivatedRoute},{type:r.ChangeDetectorRef},{type:r.Injector},{type:r.Compiler},{type:R},{type:j},{type:o.SdNotifyService}]},D.propDecorators={tabRouterNav:[{type:r.ViewChild,args:["tabRouterNav"]}]};var E=function(){function t(t,e){this.route=t,this.parent=e}return t.prototype.get=function(t,e){return t===a.ActivatedRoute&&this.route?this.route:this.parent.get(t,e)},t}(),W=function(){function t(t){this.tabRouterService=t}return t.prototype.transform=function(t){return this.tabRouterService.builders.pipe(e.map((function(e){var r=e.find((function(e){return e.component===t.component}));if(r){var n=t.url,o=t.params,a=t.queryParams;return t.tabInfo={name:"function"==typeof r.name?r.name({url:n,params:o,queryParams:a}):r.name,initialName:"function"==typeof r.initialName?r.initialName({url:n,params:o,queryParams:a}):r.initialName,tooltip:"function"==typeof r.tooltip?r.tooltip({url:n,params:o,queryParams:a}):r.tooltip,color:"function"==typeof r.color?r.color({url:n,params:o,queryParams:a}):r.color},t.tabInfo}return t.tabInfo={name:t.url,initialName:null},t.tabInfo})))},t}();W.decorators=[{type:r.Pipe,args:[{name:"sdTabInfo"}]}],W.ctorParameters=function(){return[{type:j}]};var z=function(){};z.decorators=[{type:r.NgModule,args:[{declarations:[I,A,D,W],imports:[a.RouterModule,u.CommonModule,s.MatIconModule,c.MatTooltipModule],exports:[I,A,D],providers:[]}]}],t.SdTabActivated=k,t.SdTabBase=_,t.SdTabComponent=function(t){return function(r){R.tabRouterService.pipe(e.filter((function(t){return null!=t})),e.take(1)).subscribe((function(e){e.addBuilder(t)}))}},t.SdTabDeactivated=S,t.SdTabDecoratorService=R,t.SdTabRouterItemComponent=I,t.SdTabRouterModule=z,t.SdTabRouterNavComponent=A,t.SdTabRouterOutletComponent=D,t.SdTabRouterService=j,t.ɵa=W,Object.defineProperty(t,"__esModule",{value:!0})}));
16
16
  //# sourceMappingURL=sd-angular-core-tab-router.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/tab-router/src/lib/events/tab-router.event.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-router.service.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-decorator.service.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-item/tab-router-item.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.ts","../../../../projects/sd-core/tab-router/src/lib/pipes/tab-info.pipe.ts","../../../../projects/sd-core/tab-router/src/lib/tab-router.module.ts","../../../../projects/sd-core/tab-router/src/lib/decorators/tab.decorator.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","__","this","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","pop","length","push","__read","o","m","r","i","ar","error","__classPrivateFieldGet","receiver","privateMap","has","get","__classPrivateFieldSet","set","SdTabBase","tab","_tab","defineProperty","SdTabActivated","_super","SdTabDeactivated","SdTabRouterService","notifyService","_this","events","BehaviorSubject","actions","builders","_currentTab","_componentBuilders","addBuilder","builder","some","component","setCurrentTab","pushEvent","Event","setOptions","close","type","_a","key","Injectable","args","providedIn","SdNotifyService","SdTabDecoratorService","tabRouterService","undefined","event","preventDefault","stopPropagation","Component","selector","template","Input","SdTabRouterNavComponent","mode","checkUI","nameWidth","tabRouterNav","nativeElement","clientWidth","tabs","onResize","ViewChild","HostListener","SdTabRouterOutletComponent","router","activatedRoute","cd","injector","compiler","tabDecoratorService","sdNotifyService","_rootRoute","_subscription","Subscription","_firstLoad","_closeTab","isActive","activeKey","activeIndex","findIndex","_k","nextTab","nextUrl","url","nextQueryParams","assign","queryParams","filter","navigate","state","switchTab","navigateByUrl","markForCheck","_activeRoute","fullUrl","route","params","split","hash","existedIndex","activatedIndex","forEach","index","currentNavigation","getCurrentNavigation","_b","extras","existedTab","_d","_c","parent","routeConfig","loadChildren","module","_l","compileModuleAsync","factory","injector_1","activatedRoute_1","_getActivatedRoute","SdOutletInjector","name","_f","_e","replaceTab","splice","_h","_g","_j","notify","warning","_getActivatedRouteSnapshot","activatedRouteSnapshot","firstChild","add","pipe","RoutesRecognized","NavigationEnd","subscribe","snapshot","routerState","root","urlAfterRedirects","ngOnDestroy","unsubscribe","Router","ActivatedRoute","ChangeDetectorRef","Injector","Compiler","token","notFoundValue","SdTabInfoPipe","transform","map","find","tabInfo","initialName","tooltip","color","Pipe","NgModule","declarations","SdTabRouterItemComponent","imports","RouterModule","CommonModule","MatIconModule","MatTooltipModule","exports","providers","service","take"],"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 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\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { SdTab } from '../models/tab-router.model';\r\n\r\nexport class SdTabBase {\r\n #tab: SdTab | null;\r\n\r\n constructor(tab: SdTab | null) {\r\n this.#tab = tab;\r\n }\r\n\r\n get tab(): SdTab | null {\r\n return this.#tab;\r\n }\r\n}\r\n\r\nexport class SdTabActivated extends SdTabBase {}\r\n\r\nexport class SdTabDeactivated extends SdTabBase {}\r\n\r\nexport declare type SdTabEvent = SdTabActivated | SdTabDeactivated;\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTab } from '../models/tab-router.model';\r\nimport { SdTabAction } from '../actions/tab-router.action';\r\nimport { SdTabEvent, SdTabBase } from '../events/tab-router.event';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTabComponentBuilder } from '../decorators/tab.decorator';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdTabRouterService {\r\n events = new BehaviorSubject<SdTabEvent>(new SdTabBase(null));\r\n actions = new BehaviorSubject<SdTabAction | null>(null);\r\n builders = new BehaviorSubject<SdTabComponentBuilder[]>([]);\r\n\r\n #currentTab: SdTab | null = null;\r\n #componentBuilders: SdTabComponentBuilder[] = [];\r\n constructor(private notifyService: SdNotifyService) {\r\n }\r\n\r\n addBuilder = (builder: SdTabComponentBuilder) => {\r\n if (!this.#componentBuilders.some(e => e.component === builder.component)) {\r\n this.#componentBuilders.push(builder);\r\n this.builders.next(this.#componentBuilders);\r\n }\r\n }\r\n\r\n get currentTab() {\r\n return this.#currentTab;\r\n }\r\n\r\n get key() {\r\n return this.#currentTab?.key || null;\r\n }\r\n\r\n // select = (tabOrKey: string | SdTab): void => {\r\n // const tab = this.#tabs.find(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key === tabOrKey;\r\n // }\r\n // return e.key === tabOrKey?.key;\r\n // });\r\n // if (tab) {\r\n // this.#currentTab = tab;\r\n // }\r\n // }\r\n\r\n // add = (tab: SdTab): void => {\r\n // if (!tab.key) {\r\n // this.notifyService.notify.warning('Tab key is required');\r\n // }\r\n // if (!tab.component) {\r\n // this.notifyService.notify.warning('Tab component is required');\r\n // }\r\n // const existedTab = this.#tabs.find(e => e.key === tab.key);\r\n // if (!existedTab) {\r\n // this.#tabs.push(tab);\r\n // this.select(tab);\r\n // } else {\r\n // this.select(existedTab);\r\n // }\r\n // }\r\n\r\n // remove = (tabOrKey: string | SdTab): void => {\r\n // this.#tabs = this.#tabs.filter(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key !== tabOrKey;\r\n // }\r\n // return e.key !== tabOrKey?.key;\r\n // });\r\n // }\r\n\r\n setCurrentTab = (tab: SdTab): void => {\r\n this.#currentTab = tab;\r\n }\r\n\r\n pushEvent = (tab: SdTab, Event: Type<SdTabEvent>) => {\r\n this.events.next(new Event(tab));\r\n }\r\n\r\n setOptions = () => { };\r\n\r\n close = (tab?: SdTab) => {\r\n if (tab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab,\r\n });\r\n } else if (this.#currentTab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab: this.#currentTab,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTabRouterService } from './tab-router.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTabDecoratorService {\r\n static tabRouterService = new BehaviorSubject<SdTabRouterService>(undefined);\r\n constructor(tabRouterService: SdTabRouterService) {\r\n SdTabDecoratorService.tabRouterService.next(tabRouterService);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-item',\r\n templateUrl: './tab-router-item.component.html',\r\n styleUrls: ['./tab-router-item.component.scss'],\r\n})\r\nexport class SdTabRouterItemComponent {\r\n @Input() tab: SdTab;\r\n\r\n constructor(private tabRouterService: SdTabRouterService) {}\r\n\r\n close = (event: Event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.tabRouterService.close(this.tab);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-nav',\r\n templateUrl: './tab-router-nav.component.html',\r\n styleUrls: ['./tab-router-nav.component.scss'],\r\n})\r\nexport class SdTabRouterNavComponent {\r\n @ViewChild('tabRouterNav') tabRouterNav: ElementRef;\r\n\r\n @Input() tabs: SdTab[];\r\n mode: 'default' | 'compact' = 'default';\r\n\r\n constructor() {}\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event): void {\r\n this.checkUI();\r\n }\r\n\r\n checkUI = () => {\r\n const width = this.tabRouterNav.nativeElement.clientWidth;\r\n const nameWidth = (width - this.tabs.length * 64) / this.tabs.length;\r\n if (nameWidth <= 20) {\r\n this.mode = 'compact';\r\n } else {\r\n this.mode = 'default';\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Compiler,\r\n Component,\r\n Injector,\r\n NgModuleRef,\r\n OnDestroy,\r\n OnInit,\r\n Type,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n // ChildrenOutletContexts,\r\n Event,\r\n NavigationEnd,\r\n PRIMARY_OUTLET,\r\n Router,\r\n RoutesRecognized,\r\n} from '@angular/router';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport {\r\n SdTabActivated,\r\n SdTabDeactivated,\r\n} from '../../events/tab-router.event';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabAction } from '../../actions/tab-router.action';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\nimport { SdTabRouterNavComponent } from '../tab-router-nav/tab-router-nav.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdTabDecoratorService } from '../../services/tab-decorator.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport * as hash from 'object-hash';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-outlet',\r\n templateUrl: './tab-router-outlet.component.html',\r\n styleUrls: ['./tab-router-outlet.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterOutletComponent implements OnDestroy {\r\n @ViewChild('tabRouterNav') tabRouterNav: SdTabRouterNavComponent;\r\n tabs: SdTab[] = [];\r\n\r\n #rootRoute: ActivatedRoute;\r\n #subscription = new Subscription();\r\n #firstLoad = true;\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private cd: ChangeDetectorRef,\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n private tabDecoratorService: SdTabDecoratorService,\r\n private tabRouterService: SdTabRouterService,\r\n private sdNotifyService: SdNotifyService\r\n ) {\r\n this.#subscription.add(\r\n router.events\r\n .pipe(\r\n filter(\r\n (event) =>\r\n event instanceof RoutesRecognized ||\r\n event instanceof NavigationEnd\r\n )\r\n )\r\n .subscribe(async (event: RoutesRecognized | NavigationEnd) => {\r\n if (this.#firstLoad && event instanceof NavigationEnd) {\r\n this.#firstLoad = false;\r\n const route = this.#getActivatedRouteSnapshot(\r\n this.activatedRoute.snapshot\r\n );\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n return;\r\n }\r\n if (!this.#firstLoad && event instanceof RoutesRecognized) {\r\n const route = this.#getActivatedRouteSnapshot(event.state.root);\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n }\r\n })\r\n );\r\n\r\n this.#subscription.add(\r\n tabRouterService.actions.subscribe((event: SdTabAction | null) => {\r\n if (event && event.type === 'close') {\r\n this.#closeTab(event.tab);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n #closeTab = (tab: SdTab) => {\r\n const { isActive, key: activeKey } = tab;\r\n\r\n if (isActive) {\r\n const activeIndex = this.tabs.findIndex(({ key }) => key === activeKey);\r\n const nextTab = this.tabs[activeIndex + 1] || this.tabs[activeIndex - 1];\r\n if (nextTab) {\r\n const { url: nextUrl } = nextTab;\r\n const nextQueryParams = {\r\n ...(nextTab.queryParams || {}),\r\n };\r\n\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigate([nextUrl], {\r\n queryParams: nextQueryParams,\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigateByUrl('/', {\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n }\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== tab.key);\r\n this.tabRouterNav?.checkUI();\r\n this.cd.markForCheck();\r\n }\r\n };\r\n\r\n #activeRoute = async (\r\n fullUrl: string,\r\n route: ActivatedRouteSnapshot | null\r\n ) => {\r\n if (!route?.component) {\r\n return;\r\n }\r\n const component = route.component as Type<any>;\r\n const queryParams = {\r\n ...(route.queryParams || {}),\r\n };\r\n const params = {\r\n ...(route.params || {}),\r\n };\r\n\r\n const [url] = fullUrl.split('?');\r\n const key = hash({ url, queryParams });\r\n\r\n let existedIndex = -1;\r\n let activatedIndex = -1;\r\n this.tabs.forEach((tab: SdTab, index: number) => {\r\n if (tab.key === key) {\r\n tab.isActive = true;\r\n existedIndex = index;\r\n } else {\r\n if (tab.isActive) {\r\n activatedIndex = index;\r\n this.tabRouterService.pushEvent(tab, SdTabDeactivated);\r\n }\r\n tab.isActive = false;\r\n }\r\n });\r\n\r\n const currentNavigation = this.router.getCurrentNavigation();\r\n if (existedIndex >= 0 && currentNavigation?.extras?.state?.switchTab) {\r\n const existedTab = this.tabs[existedIndex];\r\n this.tabRouterService.setCurrentTab(existedTab);\r\n this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n };\r\n\r\n this.tabRouterService.setCurrentTab(tab);\r\n if (\r\n activatedIndex >= 0 &&\r\n currentNavigation?.extras?.state?.replaceTab\r\n ) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n if (existedIndex >= 0 && !currentNavigation?.extras?.state?.switchTab) {\r\n this.tabs[existedIndex] = tab;\r\n } else {\r\n this.tabs.push(tab);\r\n }\r\n }\r\n\r\n this.tabRouterNav?.checkUI();\r\n if (this.tabs.length > 10) {\r\n this.sdNotifyService.notify.warning(\r\n 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n );\r\n }\r\n if (this.tabs.length > 12) {\r\n this.tabs.splice(0, this.tabs.length - 10);\r\n }\r\n }\r\n this.cd.markForCheck();\r\n };\r\n\r\n #getActivatedRouteSnapshot = (\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): ActivatedRouteSnapshot | null => {\r\n if (!activatedRouteSnapshot) {\r\n return null;\r\n }\r\n while (activatedRouteSnapshot.firstChild) {\r\n activatedRouteSnapshot = activatedRouteSnapshot.firstChild;\r\n }\r\n return activatedRouteSnapshot;\r\n };\r\n\r\n #getActivatedRoute = (\r\n activatedRoute: ActivatedRoute,\r\n component: any\r\n ): ActivatedRoute | null => {\r\n if (!activatedRoute) {\r\n return null;\r\n }\r\n\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n while (activatedRoute.firstChild) {\r\n activatedRoute = activatedRoute.firstChild;\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nclass SdOutletInjector implements Injector {\r\n constructor(\r\n private route: ActivatedRoute | null,\r\n // private childContexts: ChildrenOutletContexts,\r\n private parent: any\r\n ) {}\r\n\r\n get(token: any, notFoundValue?: any): any {\r\n if (token === ActivatedRoute && this.route) {\r\n return this.route;\r\n }\r\n\r\n // if (token === ChildrenOutletContexts) {\r\n // return this.childContexts;\r\n // }\r\n\r\n return this.parent.get(token, notFoundValue);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabRouterService } from '../services/tab-router.service';\r\n@Pipe({\r\n name: 'sdTabInfo'\r\n})\r\nexport class SdTabInfoPipe implements PipeTransform {\r\n constructor(private tabRouterService: SdTabRouterService) { }\r\n transform(tab: SdTab): Observable<SdTabInfo> {\r\n return this.tabRouterService.builders.pipe(map(builders => {\r\n const builder = builders.find(e => e.component === tab.component);\r\n if (builder) {\r\n const { url, params, queryParams } = tab;\r\n tab.tabInfo = {\r\n name: typeof (builder.name) === 'function' ?\r\n builder.name({ url, params, queryParams }) : builder.name,\r\n initialName: typeof (builder.initialName) === 'function' ?\r\n builder.initialName({ url, params, queryParams }) : builder.initialName,\r\n tooltip: typeof (builder.tooltip) === 'function' ?\r\n builder.tooltip({ url, params, queryParams }) : builder.tooltip,\r\n color: typeof (builder.color) === 'function' ?\r\n builder.color({ url, params, queryParams }) : builder.color\r\n };\r\n return tab.tabInfo;\r\n }\r\n tab.tabInfo = {\r\n name: tab.url,\r\n initialName: null,\r\n };\r\n return tab.tabInfo;\r\n }));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { SdTabRouterItemComponent } from './components/tab-router-item/tab-router-item.component';\r\nimport { SdTabRouterNavComponent } from './components/tab-router-nav/tab-router-nav.component';\r\nimport { SdTabRouterOutletComponent } from './components/tab-router-outlet/tab-router-outlet.component';\r\nimport { SdTabInfoPipe } from './pipes/tab-info.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n SdTabInfoPipe,\r\n ],\r\n imports: [RouterModule, CommonModule, MatIconModule, MatTooltipModule],\r\n exports: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class SdTabRouterModule {}\r\n","import { Type } from '@angular/core';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { SdTabDecoratorService } from '../services/tab-decorator.service';\r\n\r\nexport declare interface SdTabComponentBuilder {\r\n component: Type<any>;\r\n name: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n initialName: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n tooltip?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n color?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n isDetail?: boolean;\r\n}\r\n\r\nexport function SdTabComponent<T>(builder: SdTabComponentBuilder) {\r\n return (constructor: T) => {\r\n SdTabDecoratorService.tabRouterService.pipe(\r\n filter(service => service !== undefined && service !== null),\r\n take(1)).subscribe(service => {\r\n service.addBuilder(builder);\r\n });\r\n };\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/tab-router/src/lib/events/tab-router.event.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-router.service.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-decorator.service.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-item/tab-router-item.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.ts","../../../../projects/sd-core/tab-router/src/lib/pipes/tab-info.pipe.ts","../../../../projects/sd-core/tab-router/src/lib/tab-router.module.ts","../../../../projects/sd-core/tab-router/src/lib/decorators/tab.decorator.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","__","this","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","pop","length","push","__read","o","m","r","i","ar","error","__classPrivateFieldGet","receiver","privateMap","has","get","__classPrivateFieldSet","set","SdTabBase","tab","_tab","defineProperty","SdTabActivated","_super","SdTabDeactivated","SdTabRouterService","notifyService","_this","events","BehaviorSubject","actions","builders","_currentTab","_componentBuilders","addBuilder","builder","some","component","setCurrentTab","pushEvent","Event","setOptions","close","type","_a","key","Injectable","args","providedIn","SdNotifyService","SdTabDecoratorService","tabRouterService","undefined","event","preventDefault","stopPropagation","Component","selector","template","Input","SdTabRouterNavComponent","mode","checkUI","nameWidth","tabRouterNav","nativeElement","clientWidth","tabs","onResize","ViewChild","HostListener","SdTabRouterOutletComponent","router","activatedRoute","cd","injector","compiler","tabDecoratorService","sdNotifyService","_rootRoute","_subscription","Subscription","_firstLoad","_closeTab","isActive","activeKey","activeIndex","findIndex","_k","nextTab","nextUrl","url","nextQueryParams","assign","queryParams","filter","navigate","state","switchTab","navigateByUrl","markForCheck","_activeRoute","fullUrl","route","params","split","hash","existedIndex","activatedIndex","forEach","index","currentNavigation","getCurrentNavigation","_b","extras","existedTab","_d","_c","parent","routeConfig","loadChildren","module","_l","compileModuleAsync","factory","injector_1","activatedRoute_1","_getActivatedRoute","SdOutletInjector","name","_f","_e","replaceTab","splice","_h","_g","_j","notify","warning","_getActivatedRouteSnapshot","activatedRouteSnapshot","firstChild","add","pipe","RoutesRecognized","NavigationEnd","subscribe","snapshot","routerState","root","urlAfterRedirects","ngOnDestroy","unsubscribe","Router","ActivatedRoute","ChangeDetectorRef","Injector","Compiler","token","notFoundValue","SdTabInfoPipe","transform","map","find","tabInfo","initialName","tooltip","color","Pipe","NgModule","declarations","SdTabRouterItemComponent","imports","RouterModule","CommonModule","MatIconModule","MatTooltipModule","exports","providers","service","take"],"mappings":"+tCAgBIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,MAC3EN,EAAGC;;;;;;;;;;;;;;6FAGZS,EAAUV,EAAGC,GAEzB,SAASU,IAAOC,KAAKC,YAAcb,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOY,OAAOb,IAAMU,EAAGJ,UAAYN,EAAEM,UAAW,IAAII,YAyCnEI,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,oBAItDO,EAAYjB,EAASkB,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOpC,OAAU0B,EACvJ,SAASM,EAAKK,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIhB,EAAG,MAAM,IAAIiB,UAAU,mCAC3B,KAAOb,OACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARc,EAAG,GAASf,EAAU,OAAIe,EAAG,GAAKf,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAE5B,KAAK2B,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAE5B,KAAK2B,EAAGe,EAAG,KAAKrB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGc,EAAK,CAAS,EAARA,EAAG,GAAQd,EAAEb,QACzB2B,EAAG,IACP,KAAK,EAAG,KAAK,EAAGd,EAAIc,EAAI,MACxB,KAAK,EAAc,OAAXZ,EAAEC,QAAgB,CAAEhB,MAAO2B,EAAG,GAAIrB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIe,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKZ,EAAEI,IAAIU,MAAOd,EAAEG,KAAKW,MAAO,SACxC,QACI,KAAMhB,EAAIE,EAAEG,MAAML,EAAIA,EAAEiB,OAAS,GAAKjB,EAAEA,EAAEiB,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEZ,EAAI,EAAG,SACjG,GAAc,IAAVY,EAAG,MAAcd,GAAMc,EAAG,GAAKd,EAAE,IAAMc,EAAG,GAAKd,EAAE,IAAM,CAAEE,EAAEC,MAAQW,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYZ,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIc,EAAI,MAC7D,GAAId,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIY,KAAKJ,GAAK,MACvDd,EAAE,IAAIE,EAAEI,IAAIU,MAChBd,EAAEG,KAAKW,MAAO,SAEtBF,EAAKjB,EAAKzB,KAAKO,EAASuB,GAC1B,MAAOZ,GAAKwB,EAAK,CAAC,EAAGxB,GAAIS,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARc,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE3B,MAAO2B,EAAG,GAAKA,EAAG,QAAK,EAAQrB,MAAM,GArB9BL,CAAK,CAACwB,EAAGC,MAyBhChD,OAAOY,gBAwBpB0C,EAAOC,EAAGR,GACtB,IAAIS,EAAsB,mBAAXX,QAAyBU,EAAEV,OAAOC,UACjD,IAAKU,EAAG,OAAOD,EACf,IAAmBE,EAAYhC,EAA3BiC,EAAIF,EAAEjD,KAAKgD,GAAOI,EAAK,GAC3B,IACI,WAAc,IAANZ,GAAgBA,KAAM,MAAQU,EAAIC,EAAElC,QAAQI,MAAM+B,EAAGN,KAAKI,EAAEnC,OAExE,MAAOsC,GAASnC,EAAI,CAAEmC,MAAOA,WAEzB,IACQH,IAAMA,EAAE7B,OAAS4B,EAAIE,EAAU,SAAIF,EAAEjD,KAAKmD,WAExC,GAAIjC,EAAG,MAAMA,EAAEmC,OAE7B,OAAOD,EAoDX,MAAyB3D,OAAOY,gBAkBhBiD,EAAuBC,EAAUC,GAC7C,IAAKA,EAAWC,IAAIF,GAChB,MAAM,IAAIZ,UAAU,kDAExB,OAAOa,EAAWE,IAAIH,YAGVI,EAAuBJ,EAAUC,EAAYzC,GACzD,IAAKyC,EAAWC,IAAIF,GAChB,MAAM,IAAIZ,UAAU,kDAGxB,OADAa,EAAWI,IAAIL,EAAUxC,GAClBA,mBC5NT,SAAA8C,EAAYC,GAFZC,EAAAH,IAAAzD,UAAA,GAGEwD,EAAAxD,KAAI4D,EAAQD,UAGdrE,OAAAuE,eAAIH,EAAA/D,UAAA,MAAG,KAAP,WACE,OAAAwD,EAAAnD,KAAA4D,6EAIJ,SAAAE,0DAAoChE,EAAAgE,EAAAC,MAAAL,iBAEpC,SAAAM,0DAAsClE,EAAAkE,EAAAD,MAAAL,gBCEpC,SAAAO,EAAoBC,GAApB,IAAAC,EAAAnE,KAAoBA,KAAAkE,cAAAA,EANpBlE,KAAAoE,OAAS,IAAIC,EAAAA,gBAA4B,IAAIX,EAAU,OACvD1D,KAAAsE,QAAU,IAAID,EAAAA,gBAAoC,MAClDrE,KAAAuE,SAAW,IAAIF,EAAAA,gBAAyC,IAExDG,EAAAf,IAAAzD,KAA4B,MAC5ByE,EAAAhB,IAAAzD,KAA8C,IAI9CA,KAAA0E,WAAa,SAACC,GACPxB,EAAAgB,EAAAM,GAAwBG,MAAK,SAAA7D,GAAK,OAAAA,EAAE8D,YAAcF,EAAQE,eAC7D1B,EAAAgB,EAAAM,GAAwB9B,KAAKgC,GAC7BR,EAAKI,SAASzD,KAAIqC,EAAAgB,EAAAM,MAiDtBzE,KAAA8E,cAAgB,SAACnB,GACfH,EAAAW,EAAIK,EAAeb,IAGrB3D,KAAA+E,UAAY,SAACpB,EAAYqB,GACvBb,EAAKC,OAAOtD,KAAK,IAAIkE,EAAMrB,KAG7B3D,KAAAiF,WAAa,aAEbjF,KAAAkF,MAAQ,SAACvB,GACHA,EACFQ,EAAKG,QAAQxD,KAAK,CAChBqE,KAAM,QACNxB,IAAGA,IAEAR,EAAAgB,EAAAK,IACLL,EAAKG,QAAQxD,KAAK,CAChBqE,KAAM,QACNxB,IAAGR,EAAAgB,EAAAK,aAhETlF,OAAAuE,eAAII,EAAAtE,UAAA,aAAU,KAAd,WACE,OAAAwD,EAAAnD,KAAAwE,oCAGFlF,OAAAuE,eAAII,EAAAtE,UAAA,MAAG,KAAP,iBACE,OAAO,QAAAyF,EAAAjC,EAAAnD,KAAAwE,UAAA,IAAAY,OAAA,EAAAA,EAAkBC,MAAO,qNAzBnCC,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,oDAJLC,EAAAA,yBCGP,SAAAC,EAAYC,GACVD,EAAsBC,iBAAiB7E,KAAK6E,IAFvCD,EAAAC,iBAAmB,IAAItB,EAAAA,qBAAoCuB,iIAJnEN,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,oDAFLvB,WCWP,SAAoB0B,GAApB,IAAAxB,EAAAnE,KAAoBA,KAAA2F,iBAAAA,EAEpB3F,KAAAkF,MAAQ,SAACW,GACPA,EAAMC,iBACND,EAAME,kBACN5B,EAAKwB,iBAAiBT,MAAMf,EAAKR,2BAbpCqC,EAAAA,UAAST,KAAA,CAAC,CACTU,SAAU,qBACVC,SAAA,ikEAJOjC,kCAQNkC,EAAAA,wCCUD,SAAAC,IAAA,IAAAjC,EAAAnE,KAFAA,KAAAqG,KAA8B,UAS9BrG,KAAAsG,QAAU,WACR,IACMC,GADQpC,EAAKqC,aAAaC,cAAcC,YACA,GAAnBvC,EAAKwC,KAAKjE,QAAeyB,EAAKwC,KAAKjE,OAE5DyB,EAAKkC,KADHE,GAAa,GACH,UAEA,kBAVhBH,EAAAzG,UAAAiH,SAAA,SAASf,GACP7F,KAAKsG,oCAfRN,EAAAA,UAAST,KAAA,CAAC,CACTU,SAAU,oBACVC,SAAA,myBAICW,EAAAA,UAAStB,KAAA,CAAC,8BAEVY,EAAAA,wBAKAW,EAAAA,aAAYvB,KAAA,CAAC,gBAAiB,CAAC,+BC4BhC,SAAAwB,EACUC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA1B,EACA2B,GARV,IAAAnD,EAAAnE,KACUA,KAAAgH,OAAAA,EACAhH,KAAAiH,eAAAA,EACAjH,KAAAkH,GAAAA,EACAlH,KAAAmH,SAAAA,EACAnH,KAAAoH,SAAAA,EACApH,KAAAqH,oBAAAA,EACArH,KAAA2F,iBAAAA,EACA3F,KAAAsH,gBAAAA,EAbVtH,KAAA2G,KAAgB,GAEhBY,EAAA9D,IAAAzD,UAAA,GACAwH,EAAA/D,IAAAzD,KAAgB,IAAIyH,EAAAA,cACpBC,EAAAjE,IAAAzD,MAAa,GAyDb2H,EAAAlE,IAAAzD,MAAY,SAAC2D,SACHiE,EAA6BjE,EAAGiE,SAAjBC,EAAclE,EAAG0B,IAExC,GAAIuC,EAAU,CACZ,IAAME,EAAc3D,EAAKwC,KAAKoB,WAAU,SAACC,GAAY,OAAPA,EAAA3C,MAAewC,KACvDI,EAAU9D,EAAKwC,KAAKmB,EAAc,IAAM3D,EAAKwC,KAAKmB,EAAc,GACtE,GAAIG,EAAS,CACH,IAAKC,EAAYD,EAAOE,IAC1BC,EAAe9I,OAAA+I,OAAA,GACfJ,EAAQK,aAAe,IAG7BnE,EAAKwC,KAAOxC,EAAKwC,KAAK4B,QAAO,SAACP,GAAY,OAAPA,EAAA3C,MAAewC,KAClD1D,EAAK6C,OAAOwB,SAAS,CAACN,GAAU,CAC9BI,YAAaF,EACbK,MAAO,CACLC,WAAW,UAIfvE,EAAKwC,KAAOxC,EAAKwC,KAAK4B,QAAO,SAACP,GAAY,OAAPA,EAAA3C,MAAewC,KAClD1D,EAAK6C,OAAO2B,cAAc,IAAK,CAC7BF,MAAO,CACLC,WAAW,UAKjBvE,EAAKwC,KAAOxC,EAAKwC,KAAK4B,QAAO,SAACP,GAAY,OAAPA,EAAA3C,MAAe1B,EAAI0B,OACrC,QAAjBD,EAAAjB,EAAKqC,oBAAY,IAAApB,GAAAA,EAAEkB,UACnBnC,EAAK+C,GAAG0B,kBAIZC,EAAApF,IAAAzD,MAAe,SACb8I,EACAC,GAAoC,OAAA5I,EAAAgE,OAAA,OAAA,GAAA,wHAEpC,OAAK4E,MAAAA,OAAK,EAALA,EAAOlE,YAGNA,EAAYkE,EAAMlE,UAClByD,EAAWhJ,OAAA+I,OAAA,GACXU,EAAMT,aAAe,IAErBU,EAAM1J,OAAA+I,OAAA,GACNU,EAAMC,QAAU,IAGhBhB,EAAApF,EAAQkG,EAAQG,MAAM,KAAI,GAAzBd,EAAGH,EAAA,GACJ3C,EAAM6D,EAAK,CAAEf,IAAGA,EAAEG,YAAWA,IAE/Ba,GAAgB,EAChBC,GAAkB,EACtBpJ,KAAK2G,KAAK0C,SAAQ,SAAC1F,EAAY2F,GACzB3F,EAAI0B,MAAQA,GACd1B,EAAIiE,UAAW,EACfuB,EAAeG,IAEX3F,EAAIiE,WACNwB,EAAiBE,EACjBnF,EAAKwB,iBAAiBZ,UAAUpB,EAAKK,IAEvCL,EAAIiE,UAAW,MAIb2B,EAAoBvJ,KAAKgH,OAAOwC,uBAClCL,GAAgB,IAAqC,QAApCM,EAA6B,QAA7BrE,EAAImE,MAAAA,OAAiB,EAAjBA,EAAmBG,cAAM,IAAAtE,OAAA,EAAAA,EAAEqD,aAAK,IAAAgB,OAAA,EAAAA,EAAEf,YACnDiB,EAAa3J,KAAK2G,KAAKwC,GAC7BnJ,KAAK2F,iBAAiBb,cAAc6E,GACpC3J,KAAK2F,iBAAiBZ,UAAU4E,EAAY7F,UAH1C,CAAA,EAAA,IA7BF,CAAA,gBAkCwD,mBAAnB,QAAjC8F,EAAoB,QAApBC,EAAOd,MAAAA,OAAK,EAALA,EAAOe,cAAM,IAAAD,OAAA,EAAAA,EAAEE,mBAAW,IAAAH,OAAA,EAAAA,EAAEI,cAAnC,CAAA,EAAA,GACa,CAAA,EAAMjB,EAAMe,OAAOC,YAAYC,uBAC9B,OADVC,EAASC,EAAArI,OACC,CAAA,EAAM7B,KAAKoH,SAAS+C,mBAAmBF,WAAjDG,EAAUF,EAAArI,OACVwI,EAAWD,EAAQlK,OAAOF,KAAKmH,UAC/BmD,EAAiBnH,EAAAnD,KAAAuK,GAAA1K,KAAAG,KAAImD,EAAAnD,KAAAuH,GAEzB1C,GAGIlB,EAAM,CACV0B,IAAGA,EACHR,UAASA,EACTsC,SAAU,IAAIqD,EAAiBF,EAAgBD,GAC/CzC,UAAU,EACV6C,KAAMtC,EACNA,IAAGA,EACHa,OAAMA,EACNV,YAAWA,GAGbtI,KAAK2F,iBAAiBb,cAAcnB,GAElCyF,GAAkB,IACc,QADbsB,EACM,QADNC,EACnBpB,MAAAA,OAAiB,EAAjBA,EAAmBG,cAAM,IAAAiB,OAAA,EAAAA,EAAElC,aAAK,IAAAiC,OAAA,EAAAA,EAAEE,aAElC5K,KAAK2G,KAAKkE,OAAOzB,EAAgB,GAE/BD,GAAgB,KAAsC,QAAjC2B,EAA0B,QAA1BC,EAACxB,MAAAA,OAAiB,EAAjBA,EAAmBG,cAAM,IAAAqB,OAAA,EAAAA,EAAEtC,aAAK,IAAAqC,OAAA,EAAAA,EAAEpC,WAC1D1I,KAAK2G,KAAKwC,GAAgBxF,EAE1B3D,KAAK2G,KAAKhE,KAAKgB,oBAIF,QAAjBqH,EAAAhL,KAAKwG,oBAAY,IAAAwE,GAAAA,EAAE1E,UACftG,KAAK2G,KAAKjE,OAAS,IACrB1C,KAAKsH,gBAAgB2D,OAAOC,QAC1B,2FAGAlL,KAAK2G,KAAKjE,OAAS,IACrB1C,KAAK2G,KAAKkE,OAAO,EAAG7K,KAAK2G,KAAKjE,OAAS,4BAG3C1C,KAAKkH,GAAG0B,6BAGVuC,EAAA1H,IAAAzD,MAA6B,SAC3BoL,GAEA,IAAKA,EACH,OAAO,KAET,KAAOA,EAAuBC,YAC5BD,EAAyBA,EAAuBC,WAElD,OAAOD,KAGTb,EAAA9G,IAAAzD,MAAqB,SACnBiH,EACApC,GAEA,IAAKoC,EACH,OAAO,KAGT,GAAIA,EAAepC,WAAaoC,EAAepC,YAAcA,EAC3D,OAAOoC,EAET,KAAOA,EAAeoE,YAEpB,IADApE,EAAiBA,EAAeoE,YACbxG,WAAaoC,EAAepC,YAAcA,EAC3D,OAAOoC,EAGX,OAAO,QAnMP9D,EAAAnD,KAAAwH,GAAmB8D,IACjBtE,EAAO5C,OACJmH,KACChD,EAAAA,QACE,SAAC1C,GACC,OAAAA,aAAiB2F,EAAAA,kBACjB3F,aAAiB4F,EAAAA,kBAGtBC,WAAU,SAAO7F,GAAuC,OAAA1F,EAAAgE,OAAA,OAAA,GAAA,0EACnDhB,EAAAnD,KAAA0H,IAAmB7B,aAAiB4F,EAAAA,eACtCjI,EAAAxD,KAAI0H,GAAc,GACZqB,EAAQ5F,EAAAnD,KAAAmL,GAAAtL,KAAAG,KACZA,KAAKiH,eAAe0E,UAEtBnI,EAAAxD,KAAIuH,EAAcvH,KAAKgH,OAAO4E,YAAYC,MAC1C,CAAA,EAAM1I,EAAAnD,KAAA6I,GAAAhJ,KAAAG,KACJ6F,EAAMiG,mBAAqBjG,EAAMsC,IACjCY,KARA,CAAA,EAAA,UAUF,OAJAf,EAAAnG,OAIA,CAAA,iBAEEsB,EAAAnD,KAAA0H,IAAoB7B,aAAiB2F,EAAAA,kBACjCzC,EAAQ5F,EAAAnD,KAAAmL,GAAAtL,KAAAG,KAAgC6F,EAAM4C,MAAMoD,MAC1DrI,EAAAxD,KAAIuH,EAAcvH,KAAKgH,OAAO4E,YAAYC,MAC1C,CAAA,EAAM1I,EAAAnD,KAAA6I,GAAAhJ,KAAAG,KACJ6F,EAAMiG,mBAAqBjG,EAAMsC,IACjCY,KALA,CAAA,EAAA,UAGFf,EAAAnG,6CAQRsB,EAAAnD,KAAAwH,GAAmB8D,IACjB3F,EAAiBrB,QAAQoH,WAAU,SAAC7F,GAC9BA,GAAwB,UAAfA,EAAMV,MACjBhC,EAAAgB,EAAAwD,GAAA9H,KAAAsE,EAAe0B,EAAMlC,gBAM7BoD,EAAApH,UAAAoM,YAAA,WACE5I,EAAAnD,KAAAwH,GAAmBwE,0IAlEtBhG,EAAAA,UAAST,KAAA,CAAC,CACTU,SAAU,uBACVC,SAAA,q7BApBA+F,EAAAA,cAPAC,EAAAA,sBAXAC,EAAAA,yBAGAC,EAAAA,gBAFAC,EAAAA,gBA+BO3G,SAHAzB,SARAwB,EAAAA,yDAsBNoB,EAAAA,UAAStB,KAAA,CAAC,mBAuNb,IAAAiF,EAAA,WACE,SAAAA,EACUzB,EAEAe,GAFA9J,KAAA+I,MAAAA,EAEA/I,KAAA8J,OAAAA,SAGVU,EAAA7K,UAAA4D,IAAA,SAAI+I,EAAYC,GACd,OAAID,IAAUJ,EAAAA,gBAAkBlM,KAAK+I,MAC5B/I,KAAK+I,MAOP/I,KAAK8J,OAAOvG,IAAI+I,EAAOC,MAhBlC,gBC3PE,SAAAC,EAAoB7G,GAAA3F,KAAA2F,iBAAAA,SACpB6G,EAAA7M,UAAA8M,UAAA,SAAU9I,GACR,OAAO3D,KAAK2F,iBAAiBpB,SAASgH,KAAKmB,EAAAA,KAAI,SAAAnI,GAC7C,IAAMI,EAAUJ,EAASoI,MAAK,SAAA5L,GAAK,OAAAA,EAAE8D,YAAclB,EAAIkB,aACvD,GAAIF,EAAS,CACH,IAAAwD,EAA6BxE,EAAGwE,IAA3Ba,EAAwBrF,EAAGqF,OAAnBV,EAAgB3E,EAAG2E,YAWxC,OAVA3E,EAAIiJ,QAAU,CACZnC,KAAgC,mBAAlB9F,EAAY,KACxBA,EAAQ8F,KAAK,CAAEtC,IAAGA,EAAEa,OAAMA,EAAEV,YAAWA,IAAM3D,EAAQ8F,KACvDoC,YAA8C,mBAAzBlI,EAAmB,YACtCA,EAAQkI,YAAY,CAAE1E,IAAGA,EAAEa,OAAMA,EAAEV,YAAWA,IAAM3D,EAAQkI,YAC9DC,QAAsC,mBAArBnI,EAAe,QAC9BA,EAAQmI,QAAQ,CAAE3E,IAAGA,EAAEa,OAAMA,EAAEV,YAAWA,IAAM3D,EAAQmI,QAC1DC,MAAkC,mBAAnBpI,EAAa,MAC1BA,EAAQoI,MAAM,CAAE5E,IAAGA,EAAEa,OAAMA,EAAEV,YAAWA,IAAM3D,EAAQoI,OAEnDpJ,EAAIiJ,QAMb,OAJAjJ,EAAIiJ,QAAU,CACZnC,KAAM9G,EAAIwE,IACV0E,YAAa,MAERlJ,EAAIiJ,sCA1BhBI,EAAAA,KAAIzH,KAAA,CAAC,CACJkF,KAAM,yDAFCxG,WCsBT,iCAfCgJ,EAAAA,SAAQ1H,KAAA,CAAC,CACR2H,aAAc,CACZC,EACA/G,EACAW,EACAyF,GAEFY,QAAS,CAACC,EAAAA,aAAcC,EAAAA,aAAcC,EAAAA,cAAeC,EAAAA,kBACrDC,QAAS,CACPN,EACA/G,EACAW,GAEF2G,UAAW,kECXqB/I,GAChC,OAAO,SAAC1E,GACNyF,EAAsBC,iBAAiB4F,KACrChD,EAAAA,QAAO,SAAAoF,GAAW,OAAAA,MAAAA,KAClBC,EAAAA,KAAK,IAAIlC,WAAU,SAAAiC,GACjBA,EAAQjJ,WAAWC","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 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\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { SdTab } from '../models/tab-router.model';\r\n\r\nexport class SdTabBase {\r\n #tab: SdTab | null;\r\n\r\n constructor(tab: SdTab | null) {\r\n this.#tab = tab;\r\n }\r\n\r\n get tab(): SdTab | null {\r\n return this.#tab;\r\n }\r\n}\r\n\r\nexport class SdTabActivated extends SdTabBase {}\r\n\r\nexport class SdTabDeactivated extends SdTabBase {}\r\n\r\nexport declare type SdTabEvent = SdTabActivated | SdTabDeactivated;\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTab } from '../models/tab-router.model';\r\nimport { SdTabAction } from '../actions/tab-router.action';\r\nimport { SdTabEvent, SdTabBase } from '../events/tab-router.event';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTabComponentBuilder } from '../decorators/tab.decorator';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdTabRouterService {\r\n events = new BehaviorSubject<SdTabEvent>(new SdTabBase(null));\r\n actions = new BehaviorSubject<SdTabAction | null>(null);\r\n builders = new BehaviorSubject<SdTabComponentBuilder[]>([]);\r\n\r\n #currentTab: SdTab | null = null;\r\n #componentBuilders: SdTabComponentBuilder[] = [];\r\n constructor(private notifyService: SdNotifyService) {\r\n }\r\n\r\n addBuilder = (builder: SdTabComponentBuilder) => {\r\n if (!this.#componentBuilders.some(e => e.component === builder.component)) {\r\n this.#componentBuilders.push(builder);\r\n this.builders.next(this.#componentBuilders);\r\n }\r\n }\r\n\r\n get currentTab() {\r\n return this.#currentTab;\r\n }\r\n\r\n get key() {\r\n return this.#currentTab?.key || null;\r\n }\r\n\r\n // select = (tabOrKey: string | SdTab): void => {\r\n // const tab = this.#tabs.find(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key === tabOrKey;\r\n // }\r\n // return e.key === tabOrKey?.key;\r\n // });\r\n // if (tab) {\r\n // this.#currentTab = tab;\r\n // }\r\n // }\r\n\r\n // add = (tab: SdTab): void => {\r\n // if (!tab.key) {\r\n // this.notifyService.notify.warning('Tab key is required');\r\n // }\r\n // if (!tab.component) {\r\n // this.notifyService.notify.warning('Tab component is required');\r\n // }\r\n // const existedTab = this.#tabs.find(e => e.key === tab.key);\r\n // if (!existedTab) {\r\n // this.#tabs.push(tab);\r\n // this.select(tab);\r\n // } else {\r\n // this.select(existedTab);\r\n // }\r\n // }\r\n\r\n // remove = (tabOrKey: string | SdTab): void => {\r\n // this.#tabs = this.#tabs.filter(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key !== tabOrKey;\r\n // }\r\n // return e.key !== tabOrKey?.key;\r\n // });\r\n // }\r\n\r\n setCurrentTab = (tab: SdTab): void => {\r\n this.#currentTab = tab;\r\n }\r\n\r\n pushEvent = (tab: SdTab, Event: Type<SdTabEvent>) => {\r\n this.events.next(new Event(tab));\r\n }\r\n\r\n setOptions = () => { };\r\n\r\n close = (tab?: SdTab) => {\r\n if (tab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab,\r\n });\r\n } else if (this.#currentTab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab: this.#currentTab,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTabRouterService } from './tab-router.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTabDecoratorService {\r\n static tabRouterService = new BehaviorSubject<SdTabRouterService>(undefined);\r\n constructor(tabRouterService: SdTabRouterService) {\r\n SdTabDecoratorService.tabRouterService.next(tabRouterService);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-item',\r\n templateUrl: './tab-router-item.component.html',\r\n styleUrls: ['./tab-router-item.component.scss'],\r\n})\r\nexport class SdTabRouterItemComponent {\r\n @Input() tab: SdTab;\r\n\r\n constructor(private tabRouterService: SdTabRouterService) {}\r\n\r\n close = (event: Event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.tabRouterService.close(this.tab);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-nav',\r\n templateUrl: './tab-router-nav.component.html',\r\n styleUrls: ['./tab-router-nav.component.scss'],\r\n})\r\nexport class SdTabRouterNavComponent {\r\n @ViewChild('tabRouterNav') tabRouterNav: ElementRef;\r\n\r\n @Input() tabs: SdTab[];\r\n mode: 'default' | 'compact' = 'default';\r\n\r\n constructor() {}\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event): void {\r\n this.checkUI();\r\n }\r\n\r\n checkUI = () => {\r\n const width = this.tabRouterNav.nativeElement.clientWidth;\r\n const nameWidth = (width - this.tabs.length * 64) / this.tabs.length;\r\n if (nameWidth <= 20) {\r\n this.mode = 'compact';\r\n } else {\r\n this.mode = 'default';\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Compiler,\r\n Component,\r\n Injector,\r\n NgModuleRef,\r\n OnDestroy,\r\n OnInit,\r\n Type,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n // ChildrenOutletContexts,\r\n Event,\r\n NavigationEnd,\r\n PRIMARY_OUTLET,\r\n Router,\r\n RoutesRecognized,\r\n} from '@angular/router';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport {\r\n SdTabActivated,\r\n SdTabDeactivated,\r\n} from '../../events/tab-router.event';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabAction } from '../../actions/tab-router.action';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\nimport { SdTabRouterNavComponent } from '../tab-router-nav/tab-router-nav.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdTabDecoratorService } from '../../services/tab-decorator.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport * as hash from 'object-hash';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-outlet',\r\n templateUrl: './tab-router-outlet.component.html',\r\n styleUrls: ['./tab-router-outlet.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterOutletComponent implements OnDestroy {\r\n @ViewChild('tabRouterNav') tabRouterNav: SdTabRouterNavComponent;\r\n tabs: SdTab[] = [];\r\n\r\n #rootRoute: ActivatedRoute;\r\n #subscription = new Subscription();\r\n #firstLoad = true;\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private cd: ChangeDetectorRef,\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n private tabDecoratorService: SdTabDecoratorService,\r\n private tabRouterService: SdTabRouterService,\r\n private sdNotifyService: SdNotifyService\r\n ) {\r\n this.#subscription.add(\r\n router.events\r\n .pipe(\r\n filter(\r\n (event) =>\r\n event instanceof RoutesRecognized ||\r\n event instanceof NavigationEnd\r\n )\r\n )\r\n .subscribe(async (event: RoutesRecognized | NavigationEnd) => {\r\n if (this.#firstLoad && event instanceof NavigationEnd) {\r\n this.#firstLoad = false;\r\n const route = this.#getActivatedRouteSnapshot(\r\n this.activatedRoute.snapshot\r\n );\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n return;\r\n }\r\n if (!this.#firstLoad && event instanceof RoutesRecognized) {\r\n const route = this.#getActivatedRouteSnapshot(event.state.root);\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n }\r\n })\r\n );\r\n\r\n this.#subscription.add(\r\n tabRouterService.actions.subscribe((event: SdTabAction | null) => {\r\n if (event && event.type === 'close') {\r\n this.#closeTab(event.tab);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n #closeTab = (tab: SdTab) => {\r\n const { isActive, key: activeKey } = tab;\r\n\r\n if (isActive) {\r\n const activeIndex = this.tabs.findIndex(({ key }) => key === activeKey);\r\n const nextTab = this.tabs[activeIndex + 1] || this.tabs[activeIndex - 1];\r\n if (nextTab) {\r\n const { url: nextUrl } = nextTab;\r\n const nextQueryParams = {\r\n ...(nextTab.queryParams || {}),\r\n };\r\n\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigate([nextUrl], {\r\n queryParams: nextQueryParams,\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigateByUrl('/', {\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n }\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== tab.key);\r\n this.tabRouterNav?.checkUI();\r\n this.cd.markForCheck();\r\n }\r\n };\r\n\r\n #activeRoute = async (\r\n fullUrl: string,\r\n route: ActivatedRouteSnapshot | null\r\n ) => {\r\n if (!route?.component) {\r\n return;\r\n }\r\n const component = route.component as Type<any>;\r\n const queryParams = {\r\n ...(route.queryParams || {}),\r\n };\r\n const params = {\r\n ...(route.params || {}),\r\n };\r\n\r\n const [url] = fullUrl.split('?');\r\n const key = hash({ url, queryParams });\r\n\r\n let existedIndex = -1;\r\n let activatedIndex = -1;\r\n this.tabs.forEach((tab: SdTab, index: number) => {\r\n if (tab.key === key) {\r\n tab.isActive = true;\r\n existedIndex = index;\r\n } else {\r\n if (tab.isActive) {\r\n activatedIndex = index;\r\n this.tabRouterService.pushEvent(tab, SdTabDeactivated);\r\n }\r\n tab.isActive = false;\r\n }\r\n });\r\n\r\n const currentNavigation = this.router.getCurrentNavigation();\r\n if (existedIndex >= 0 && currentNavigation?.extras?.state?.switchTab) {\r\n const existedTab = this.tabs[existedIndex];\r\n this.tabRouterService.setCurrentTab(existedTab);\r\n this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n };\r\n\r\n this.tabRouterService.setCurrentTab(tab);\r\n if (\r\n activatedIndex >= 0 &&\r\n currentNavigation?.extras?.state?.replaceTab\r\n ) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n if (existedIndex >= 0 && !currentNavigation?.extras?.state?.switchTab) {\r\n this.tabs[existedIndex] = tab;\r\n } else {\r\n this.tabs.push(tab);\r\n }\r\n }\r\n\r\n this.tabRouterNav?.checkUI();\r\n if (this.tabs.length > 10) {\r\n this.sdNotifyService.notify.warning(\r\n 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n );\r\n }\r\n if (this.tabs.length > 12) {\r\n this.tabs.splice(0, this.tabs.length - 10);\r\n }\r\n }\r\n this.cd.markForCheck();\r\n };\r\n\r\n #getActivatedRouteSnapshot = (\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): ActivatedRouteSnapshot | null => {\r\n if (!activatedRouteSnapshot) {\r\n return null;\r\n }\r\n while (activatedRouteSnapshot.firstChild) {\r\n activatedRouteSnapshot = activatedRouteSnapshot.firstChild;\r\n }\r\n return activatedRouteSnapshot;\r\n };\r\n\r\n #getActivatedRoute = (\r\n activatedRoute: ActivatedRoute,\r\n component: any\r\n ): ActivatedRoute | null => {\r\n if (!activatedRoute) {\r\n return null;\r\n }\r\n\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n while (activatedRoute.firstChild) {\r\n activatedRoute = activatedRoute.firstChild;\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nclass SdOutletInjector implements Injector {\r\n constructor(\r\n private route: ActivatedRoute | null,\r\n // private childContexts: ChildrenOutletContexts,\r\n private parent: any\r\n ) {}\r\n\r\n get(token: any, notFoundValue?: any): any {\r\n if (token === ActivatedRoute && this.route) {\r\n return this.route;\r\n }\r\n\r\n // if (token === ChildrenOutletContexts) {\r\n // return this.childContexts;\r\n // }\r\n\r\n return this.parent.get(token, notFoundValue);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabRouterService } from '../services/tab-router.service';\r\n@Pipe({\r\n name: 'sdTabInfo'\r\n})\r\nexport class SdTabInfoPipe implements PipeTransform {\r\n constructor(private tabRouterService: SdTabRouterService) { }\r\n transform(tab: SdTab): Observable<SdTabInfo> {\r\n return this.tabRouterService.builders.pipe(map(builders => {\r\n const builder = builders.find(e => e.component === tab.component);\r\n if (builder) {\r\n const { url, params, queryParams } = tab;\r\n tab.tabInfo = {\r\n name: typeof (builder.name) === 'function' ?\r\n builder.name({ url, params, queryParams }) : builder.name,\r\n initialName: typeof (builder.initialName) === 'function' ?\r\n builder.initialName({ url, params, queryParams }) : builder.initialName,\r\n tooltip: typeof (builder.tooltip) === 'function' ?\r\n builder.tooltip({ url, params, queryParams }) : builder.tooltip,\r\n color: typeof (builder.color) === 'function' ?\r\n builder.color({ url, params, queryParams }) : builder.color\r\n };\r\n return tab.tabInfo;\r\n }\r\n tab.tabInfo = {\r\n name: tab.url,\r\n initialName: null,\r\n };\r\n return tab.tabInfo;\r\n }));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { SdTabRouterItemComponent } from './components/tab-router-item/tab-router-item.component';\r\nimport { SdTabRouterNavComponent } from './components/tab-router-nav/tab-router-nav.component';\r\nimport { SdTabRouterOutletComponent } from './components/tab-router-outlet/tab-router-outlet.component';\r\nimport { SdTabInfoPipe } from './pipes/tab-info.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n SdTabInfoPipe,\r\n ],\r\n imports: [RouterModule, CommonModule, MatIconModule, MatTooltipModule],\r\n exports: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class SdTabRouterModule {}\r\n","import { Type } from '@angular/core';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { SdTabDecoratorService } from '../services/tab-decorator.service';\r\n\r\nexport declare interface SdTabComponentBuilder {\r\n component: Type<any>;\r\n name: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n initialName: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n tooltip?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n color?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n isDetail?: boolean;\r\n}\r\n\r\nexport function SdTabComponent<T>(builder: SdTabComponentBuilder) {\r\n return (constructor: T) => {\r\n SdTabDecoratorService.tabRouterService.pipe(\r\n filter(service => service !== undefined && service !== null),\r\n take(1)).subscribe(service => {\r\n service.addBuilder(builder);\r\n });\r\n };\r\n}\r\n"]}
@@ -35,12 +35,12 @@ export { SdFilterColumnPipe as ɵbg } from './src/lib/pipes/filter-column.pipe';
35
35
  export { SdFilterExternalPipe as ɵbh } from './src/lib/pipes/filter-external.pipe';
36
36
  export { SdGridConfigurationResultPipe as ɵu } from './src/lib/pipes/grid-configuration-result.pipe';
37
37
  export { SdSelectionActionFilterPipe as ɵbi } from './src/lib/pipes/selection-action-filter.pipe';
38
- export { SdSelectionDisableSelectAllPipe as ɵbl } from './src/lib/pipes/selection-disable-select-all.pipe';
39
38
  export { SdSelectionDisablePipe as ɵbk } from './src/lib/pipes/selection-disable.pipe';
39
+ export { SdSelectionVisibleSelectAllPipe as ɵbl } from './src/lib/pipes/selection-visible-select-all.pipe';
40
40
  export { SdSelectionVisiblePipe as ɵbj } from './src/lib/pipes/selection-visible.pipe';
41
41
  export { SdStyleRowCss as ɵbp } from './src/lib/pipes/style-row-css.pipe';
42
42
  export { SdGeneratedColumnService as ɵt } from './src/lib/services/generated-column/generated-column.service';
43
43
  export { SdGridConfigurationService as ɵh } from './src/lib/services/grid-configuration.service';
44
44
  export { SdGridFilterService as ɵd } from './src/lib/services/grid-filter.service';
45
45
  export { SdGridService as ɵi } from './src/lib/services/grid.service';
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtYW5ndWxhci1jb3JlLWdyaWQtbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic2QtYW5ndWxhci1jb3JlLWdyaWQtbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sMEVBQTBFLENBQUM7QUFDcEgsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLHNGQUFzRixDQUFDO0FBQ3JJLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUNqSCxPQUFPLEVBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDM0csT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDdEcsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLG9GQUFvRixDQUFDO0FBQ25JLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sOERBQThELENBQUM7QUFDbkcsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLGtGQUFrRixDQUFDO0FBQ2hJLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQW9DLE1BQU0sMkNBQTJDLENBQUM7QUFDeEgsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUM3RixPQUFPLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDMUYsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxHQUFHLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMscUJBQXFCLElBQUksR0FBRyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDbkYsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEdBQUcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMseUJBQXlCLElBQUksR0FBRyxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDNUYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEdBQUcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsa0JBQWtCLElBQUksR0FBRyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEdBQUcsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRyxPQUFPLEVBQUMsMkJBQTJCLElBQUksR0FBRyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDaEcsT0FBTyxFQUFDLCtCQUErQixJQUFJLEdBQUcsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pHLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxHQUFHLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRixPQUFPLEVBQUMsc0JBQXNCLElBQUksR0FBRyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDckYsT0FBTyxFQUFDLGFBQWEsSUFBSSxHQUFHLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0sOERBQThELENBQUM7QUFDNUcsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQy9GLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHtTZENvbHVtbklubGluZUZpbHRlciBhcyDJtXB9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2NvbHVtbi1pbmxpbmUtZmlsdGVyL2NvbHVtbi1pbmxpbmUtZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQge1NkRGVza3RvcENlbGxDaGlsZHJlblZpZXcgYXMgybVufSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wLWNlbGwtY2hpbGRyZW4tdmlldy9kZXNrdG9wLWNlbGwtY2hpbGRyZW4tdmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHtTZERlc2t0b3BDZWxsRWRpdG9yIGFzIMm1a30gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC1jZWxsLWVkaXRvci9kZXNrdG9wLWNlbGwtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQge1NkRGVza3RvcENlbGxWaWV3IGFzIMm1bX0gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC1jZWxsLXZpZXcvZGVza3RvcC1jZWxsLXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCB7U2REZXNrdG9wQ2VsbCBhcyDJtWp9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AtY2VsbC9kZXNrdG9wLWNlbGwuY29tcG9uZW50JztcbmV4cG9ydCB7U2REZXNrdG9wQ29tbWFuZCBhcyDJtW99IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AtY29tbWFuZC9kZXNrdG9wLWNvbW1hbmQuY29tcG9uZW50JztcbmV4cG9ydCB7U2REZXNrdG9wRWRpdG9yVmFsaWRhdGlvbiBhcyDJtWx9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AtZWRpdG9yLXZhbGlkYXRpb24vZGVza3RvcC1lZGl0b3ItdmFsaWRhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtTZER5bmFtaWNDb2x1bW4gYXMgybVzfSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWNvbHVtbi9keW5hbWljLWNvbHVtbi5jb21wb25lbnQnO1xuZXhwb3J0IHtTZEdyaWRGaWx0ZXIgYXMgybVifSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9ncmlkLWZpbHRlci9ncmlkLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0IHtTZFBvcHVwRXhwb3J0IGFzIMm1ZX0gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvcG9wdXAtZXhwb3J0L3BvcHVwLWV4cG9ydC5jb21wb25lbnQnO1xuZXhwb3J0IHtTZFBvcHVwRmlsdGVyIGFzIMm1Y30gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvcG9wdXAtZmlsdGVyL3BvcHVwLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0IHtTZFBvcHVwR3JpZENvbmZpZ3VyYXRpb24gYXMgybVyfSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9wb3B1cC1ncmlkLWNvbmZpZ3VyYXRpb24vcG9wdXAtZ3JpZC1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQge1NkTGV0RGlyZWN0aXZlIGFzIMm1cX0gZnJvbSAnLi9zcmMvbGliL2RpcmVjdGl2ZXMvc2QtbGV0LmRpcmVjdGl2ZSc7XG5leHBvcnQge01hdFBhZ2luYXRvckludGxDcm8gYXMgybVhfSBmcm9tICcuL3NyYy9saWIvZ3JpZC1tYXRlcmlhbC5tb2R1bGUnO1xuZXhwb3J0IHtHUklEX01BVEVSSUFMX0NPTkZJRyBhcyDJtWcsSVNkR3JpZE1hdGVyaWFsQ29uZmlndXJhdGlvbiBhcyDJtWZ9IGZyb20gJy4vc3JjL2xpYi9tb2RlbHMvZ3JpZC1jb25maWd1cmF0aW9uLm1vZGVsJztcbmV4cG9ydCB7U2RDb2x1bW5CYWRnZVBpcGUgYXMgybViZn0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbHVtbi1iYWRnZS5waXBlJztcbmV4cG9ydCB7U2RDb2x1bW5DaGlsZHJlbkZpbHRlclBpcGUgYXMgybV2fSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29sdW1uLWNoaWxkcmVuLWZpbHRlci5waXBlJztcbmV4cG9ydCB7U2RDb2x1bW5IdG1sVGVtcGxhdGVQaXBlIGFzIMm1YmN9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb2x1bW4taHRtbC10ZW1wbGF0ZS5waXBlJztcbmV4cG9ydCB7U2RDb2x1bW5UaXRsZVBpcGUgYXMgybV3fSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29sdW1uLXRpdGxlLnBpcGUnO1xuZXhwb3J0IHtTZENvbHVtblRvb2x0aXBQaXBlIGFzIMm1YmV9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb2x1bW4tdG9vbHRpcC5waXBlJztcbmV4cG9ydCB7U2RDb2x1bW5UcmFuc2Zvcm1QaXBlIGFzIMm1YmR9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb2x1bW4tdHJhbnNmb3JtLnBpcGUnO1xuZXhwb3J0IHtTZENvbHVtblZhbHVlc1BpcGUgYXMgybViYn0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbHVtbi12YWx1ZXMucGlwZSc7XG5leHBvcnQge1NkQ29tbWFuZERpc2FibGVQaXBlIGFzIMm1eX0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbW1hbmQtZGlzYWJsZS5waXBlJztcbmV4cG9ydCB7U2RDb21tYW5kRmlsdGVyUGlwZSBhcyDJtXh9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb21tYW5kLWZpbHRlci5waXBlJztcbmV4cG9ydCB7U2RDb21tYW5kSWNvblBpcGUgYXMgybV6fSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29tbWFuZC1pY29uLnBpcGUnO1xuZXhwb3J0IHtTZENvbW1hbmRUaXRsZVBpcGUgYXMgybViYX0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbW1hbmQtdGl0bGUucGlwZSc7XG5leHBvcnQge1NkRWRpdG9ySGFuZGxlckNvbHVtblBpcGUgYXMgybVibn0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2VkaXRvci1oYW5kbGVyLWNvbHVtbi5waXBlJztcbmV4cG9ydCB7U2RFZGl0b3JIYW5kbGVyUm93UGlwZSBhcyDJtWJtfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvZWRpdG9yLWhhbmRsZXItcm93LnBpcGUnO1xuZXhwb3J0IHtTZEVkaXRvclZhbGlkYXRlUGlwZSBhcyDJtWJvfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvZWRpdG9yLXZhbGlkYXRlLnBpcGUnO1xuZXhwb3J0IHtTZEZpbHRlckNvbHVtblBpcGUgYXMgybViZ30gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2ZpbHRlci1jb2x1bW4ucGlwZSc7XG5leHBvcnQge1NkRmlsdGVyRXh0ZXJuYWxQaXBlIGFzIMm1Ymh9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9maWx0ZXItZXh0ZXJuYWwucGlwZSc7XG5leHBvcnQge1NkR3JpZENvbmZpZ3VyYXRpb25SZXN1bHRQaXBlIGFzIMm1dX0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2dyaWQtY29uZmlndXJhdGlvbi1yZXN1bHQucGlwZSc7XG5leHBvcnQge1NkU2VsZWN0aW9uQWN0aW9uRmlsdGVyUGlwZSBhcyDJtWJpfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvc2VsZWN0aW9uLWFjdGlvbi1maWx0ZXIucGlwZSc7XG5leHBvcnQge1NkU2VsZWN0aW9uRGlzYWJsZVNlbGVjdEFsbFBpcGUgYXMgybVibH0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL3NlbGVjdGlvbi1kaXNhYmxlLXNlbGVjdC1hbGwucGlwZSc7XG5leHBvcnQge1NkU2VsZWN0aW9uRGlzYWJsZVBpcGUgYXMgybVia30gZnJvbSAnLi9zcmMvbGliL3BpcGVzL3NlbGVjdGlvbi1kaXNhYmxlLnBpcGUnO1xuZXhwb3J0IHtTZFNlbGVjdGlvblZpc2libGVQaXBlIGFzIMm1Ymp9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9zZWxlY3Rpb24tdmlzaWJsZS5waXBlJztcbmV4cG9ydCB7U2RTdHlsZVJvd0NzcyBhcyDJtWJwfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvc3R5bGUtcm93LWNzcy5waXBlJztcbmV4cG9ydCB7U2RHZW5lcmF0ZWRDb2x1bW5TZXJ2aWNlIGFzIMm1dH0gZnJvbSAnLi9zcmMvbGliL3NlcnZpY2VzL2dlbmVyYXRlZC1jb2x1bW4vZ2VuZXJhdGVkLWNvbHVtbi5zZXJ2aWNlJztcbmV4cG9ydCB7U2RHcmlkQ29uZmlndXJhdGlvblNlcnZpY2UgYXMgybVofSBmcm9tICcuL3NyYy9saWIvc2VydmljZXMvZ3JpZC1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtTZEdyaWRGaWx0ZXJTZXJ2aWNlIGFzIMm1ZH0gZnJvbSAnLi9zcmMvbGliL3NlcnZpY2VzL2dyaWQtZmlsdGVyLnNlcnZpY2UnO1xuZXhwb3J0IHtTZEdyaWRTZXJ2aWNlIGFzIMm1aX0gZnJvbSAnLi9zcmMvbGliL3NlcnZpY2VzL2dyaWQuc2VydmljZSc7Il19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtYW5ndWxhci1jb3JlLWdyaWQtbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic2QtYW5ndWxhci1jb3JlLWdyaWQtbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sMEVBQTBFLENBQUM7QUFDcEgsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLHNGQUFzRixDQUFDO0FBQ3JJLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUNqSCxPQUFPLEVBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDM0csT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDdEcsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLG9GQUFvRixDQUFDO0FBQ25JLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0sOERBQThELENBQUM7QUFDbkcsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLGtGQUFrRixDQUFDO0FBQ2hJLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQW9DLE1BQU0sMkNBQTJDLENBQUM7QUFDeEgsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUM3RixPQUFPLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDMUYsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxHQUFHLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMscUJBQXFCLElBQUksR0FBRyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDbkYsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEdBQUcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMseUJBQXlCLElBQUksR0FBRyxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDNUYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEdBQUcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsa0JBQWtCLElBQUksR0FBRyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEdBQUcsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRyxPQUFPLEVBQUMsMkJBQTJCLElBQUksR0FBRyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDaEcsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEdBQUcsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQywrQkFBK0IsSUFBSSxHQUFHLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUN6RyxPQUFPLEVBQUMsc0JBQXNCLElBQUksR0FBRyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDckYsT0FBTyxFQUFDLGFBQWEsSUFBSSxHQUFHLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsd0JBQXdCLElBQUksRUFBRSxFQUFDLE1BQU0sOERBQThELENBQUM7QUFDNUcsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQy9GLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHtTZENvbHVtbklubGluZUZpbHRlciBhcyDJtXB9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2NvbHVtbi1pbmxpbmUtZmlsdGVyL2NvbHVtbi1pbmxpbmUtZmlsdGVyLmNvbXBvbmVudCc7XG5leHBvcnQge1NkRGVza3RvcENlbGxDaGlsZHJlblZpZXcgYXMgybVufSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9kZXNrdG9wLWNlbGwtY2hpbGRyZW4tdmlldy9kZXNrdG9wLWNlbGwtY2hpbGRyZW4tdmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHtTZERlc2t0b3BDZWxsRWRpdG9yIGFzIMm1a30gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC1jZWxsLWVkaXRvci9kZXNrdG9wLWNlbGwtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQge1NkRGVza3RvcENlbGxWaWV3IGFzIMm1bX0gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvZGVza3RvcC1jZWxsLXZpZXcvZGVza3RvcC1jZWxsLXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCB7U2REZXNrdG9wQ2VsbCBhcyDJtWp9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AtY2VsbC9kZXNrdG9wLWNlbGwuY29tcG9uZW50JztcbmV4cG9ydCB7U2REZXNrdG9wQ29tbWFuZCBhcyDJtW99IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AtY29tbWFuZC9kZXNrdG9wLWNvbW1hbmQuY29tcG9uZW50JztcbmV4cG9ydCB7U2REZXNrdG9wRWRpdG9yVmFsaWRhdGlvbiBhcyDJtWx9IGZyb20gJy4vc3JjL2xpYi9jb21wb25lbnRzL2Rlc2t0b3AtZWRpdG9yLXZhbGlkYXRpb24vZGVza3RvcC1lZGl0b3ItdmFsaWRhdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtTZER5bmFtaWNDb2x1bW4gYXMgybVzfSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWNvbHVtbi9keW5hbWljLWNvbHVtbi5jb21wb25lbnQnO1xuZXhwb3J0IHtTZEdyaWRGaWx0ZXIgYXMgybVifSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9ncmlkLWZpbHRlci9ncmlkLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0IHtTZFBvcHVwRXhwb3J0IGFzIMm1ZX0gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvcG9wdXAtZXhwb3J0L3BvcHVwLWV4cG9ydC5jb21wb25lbnQnO1xuZXhwb3J0IHtTZFBvcHVwRmlsdGVyIGFzIMm1Y30gZnJvbSAnLi9zcmMvbGliL2NvbXBvbmVudHMvcG9wdXAtZmlsdGVyL3BvcHVwLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0IHtTZFBvcHVwR3JpZENvbmZpZ3VyYXRpb24gYXMgybVyfSBmcm9tICcuL3NyYy9saWIvY29tcG9uZW50cy9wb3B1cC1ncmlkLWNvbmZpZ3VyYXRpb24vcG9wdXAtZ3JpZC1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQge1NkTGV0RGlyZWN0aXZlIGFzIMm1cX0gZnJvbSAnLi9zcmMvbGliL2RpcmVjdGl2ZXMvc2QtbGV0LmRpcmVjdGl2ZSc7XG5leHBvcnQge01hdFBhZ2luYXRvckludGxDcm8gYXMgybVhfSBmcm9tICcuL3NyYy9saWIvZ3JpZC1tYXRlcmlhbC5tb2R1bGUnO1xuZXhwb3J0IHtHUklEX01BVEVSSUFMX0NPTkZJRyBhcyDJtWcsSVNkR3JpZE1hdGVyaWFsQ29uZmlndXJhdGlvbiBhcyDJtWZ9IGZyb20gJy4vc3JjL2xpYi9tb2RlbHMvZ3JpZC1jb25maWd1cmF0aW9uLm1vZGVsJztcbmV4cG9ydCB7U2RDb2x1bW5CYWRnZVBpcGUgYXMgybViZn0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbHVtbi1iYWRnZS5waXBlJztcbmV4cG9ydCB7U2RDb2x1bW5DaGlsZHJlbkZpbHRlclBpcGUgYXMgybV2fSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29sdW1uLWNoaWxkcmVuLWZpbHRlci5waXBlJztcbmV4cG9ydCB7U2RDb2x1bW5IdG1sVGVtcGxhdGVQaXBlIGFzIMm1YmN9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb2x1bW4taHRtbC10ZW1wbGF0ZS5waXBlJztcbmV4cG9ydCB7U2RDb2x1bW5UaXRsZVBpcGUgYXMgybV3fSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29sdW1uLXRpdGxlLnBpcGUnO1xuZXhwb3J0IHtTZENvbHVtblRvb2x0aXBQaXBlIGFzIMm1YmV9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb2x1bW4tdG9vbHRpcC5waXBlJztcbmV4cG9ydCB7U2RDb2x1bW5UcmFuc2Zvcm1QaXBlIGFzIMm1YmR9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb2x1bW4tdHJhbnNmb3JtLnBpcGUnO1xuZXhwb3J0IHtTZENvbHVtblZhbHVlc1BpcGUgYXMgybViYn0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbHVtbi12YWx1ZXMucGlwZSc7XG5leHBvcnQge1NkQ29tbWFuZERpc2FibGVQaXBlIGFzIMm1eX0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbW1hbmQtZGlzYWJsZS5waXBlJztcbmV4cG9ydCB7U2RDb21tYW5kRmlsdGVyUGlwZSBhcyDJtXh9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9jb21tYW5kLWZpbHRlci5waXBlJztcbmV4cG9ydCB7U2RDb21tYW5kSWNvblBpcGUgYXMgybV6fSBmcm9tICcuL3NyYy9saWIvcGlwZXMvY29tbWFuZC1pY29uLnBpcGUnO1xuZXhwb3J0IHtTZENvbW1hbmRUaXRsZVBpcGUgYXMgybViYX0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2NvbW1hbmQtdGl0bGUucGlwZSc7XG5leHBvcnQge1NkRWRpdG9ySGFuZGxlckNvbHVtblBpcGUgYXMgybVibn0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2VkaXRvci1oYW5kbGVyLWNvbHVtbi5waXBlJztcbmV4cG9ydCB7U2RFZGl0b3JIYW5kbGVyUm93UGlwZSBhcyDJtWJtfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvZWRpdG9yLWhhbmRsZXItcm93LnBpcGUnO1xuZXhwb3J0IHtTZEVkaXRvclZhbGlkYXRlUGlwZSBhcyDJtWJvfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvZWRpdG9yLXZhbGlkYXRlLnBpcGUnO1xuZXhwb3J0IHtTZEZpbHRlckNvbHVtblBpcGUgYXMgybViZ30gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2ZpbHRlci1jb2x1bW4ucGlwZSc7XG5leHBvcnQge1NkRmlsdGVyRXh0ZXJuYWxQaXBlIGFzIMm1Ymh9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9maWx0ZXItZXh0ZXJuYWwucGlwZSc7XG5leHBvcnQge1NkR3JpZENvbmZpZ3VyYXRpb25SZXN1bHRQaXBlIGFzIMm1dX0gZnJvbSAnLi9zcmMvbGliL3BpcGVzL2dyaWQtY29uZmlndXJhdGlvbi1yZXN1bHQucGlwZSc7XG5leHBvcnQge1NkU2VsZWN0aW9uQWN0aW9uRmlsdGVyUGlwZSBhcyDJtWJpfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvc2VsZWN0aW9uLWFjdGlvbi1maWx0ZXIucGlwZSc7XG5leHBvcnQge1NkU2VsZWN0aW9uRGlzYWJsZVBpcGUgYXMgybVia30gZnJvbSAnLi9zcmMvbGliL3BpcGVzL3NlbGVjdGlvbi1kaXNhYmxlLnBpcGUnO1xuZXhwb3J0IHtTZFNlbGVjdGlvblZpc2libGVTZWxlY3RBbGxQaXBlIGFzIMm1Ymx9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9zZWxlY3Rpb24tdmlzaWJsZS1zZWxlY3QtYWxsLnBpcGUnO1xuZXhwb3J0IHtTZFNlbGVjdGlvblZpc2libGVQaXBlIGFzIMm1Ymp9IGZyb20gJy4vc3JjL2xpYi9waXBlcy9zZWxlY3Rpb24tdmlzaWJsZS5waXBlJztcbmV4cG9ydCB7U2RTdHlsZVJvd0NzcyBhcyDJtWJwfSBmcm9tICcuL3NyYy9saWIvcGlwZXMvc3R5bGUtcm93LWNzcy5waXBlJztcbmV4cG9ydCB7U2RHZW5lcmF0ZWRDb2x1bW5TZXJ2aWNlIGFzIMm1dH0gZnJvbSAnLi9zcmMvbGliL3NlcnZpY2VzL2dlbmVyYXRlZC1jb2x1bW4vZ2VuZXJhdGVkLWNvbHVtbi5zZXJ2aWNlJztcbmV4cG9ydCB7U2RHcmlkQ29uZmlndXJhdGlvblNlcnZpY2UgYXMgybVofSBmcm9tICcuL3NyYy9saWIvc2VydmljZXMvZ3JpZC1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtTZEdyaWRGaWx0ZXJTZXJ2aWNlIGFzIMm1ZH0gZnJvbSAnLi9zcmMvbGliL3NlcnZpY2VzL2dyaWQtZmlsdGVyLnNlcnZpY2UnO1xuZXhwb3J0IHtTZEdyaWRTZXJ2aWNlIGFzIMm1aX0gZnJvbSAnLi9zcmMvbGliL3NlcnZpY2VzL2dyaWQuc2VydmljZSc7Il19