@sd-angular/core 0.0.1009 → 0.0.1013
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sd-angular-core-comment.umd.js +2 -1
- package/bundles/sd-angular-core-comment.umd.js.map +1 -1
- package/bundles/sd-angular-core-comment.umd.min.js +1 -1
- package/bundles/sd-angular-core-comment.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-common.umd.js +1 -1
- package/bundles/sd-angular-core-common.umd.js.map +1 -1
- package/bundles/sd-angular-core-common.umd.min.js +1 -1
- package/bundles/sd-angular-core-common.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.js +2 -2
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.js +18 -38
- package/bundles/sd-angular-core-select.umd.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.min.js +2 -2
- package/bundles/sd-angular-core-select.umd.min.js.map +1 -1
- package/esm2015/comment/src/lib/comment.component.js +3 -2
- package/esm2015/common/src/lib/typings/array.extension.js +2 -2
- package/esm2015/grid-material/src/lib/services/grid-configuration.service.js +3 -3
- package/esm2015/select/src/lib/select.component.js +20 -40
- package/fesm2015/sd-angular-core-comment.js +2 -1
- package/fesm2015/sd-angular-core-comment.js.map +1 -1
- package/fesm2015/sd-angular-core-common.js +1 -1
- package/fesm2015/sd-angular-core-common.js.map +1 -1
- package/fesm2015/sd-angular-core-grid-material.js +2 -2
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/fesm2015/sd-angular-core-select.js +19 -39
- package/fesm2015/sd-angular-core-select.js.map +1 -1
- package/package.json +1 -1
- package/{sd-angular-core-0.0.1009.tgz → sd-angular-core-0.0.1013.tgz} +0 -0
- package/select/sd-angular-core-select.metadata.json +1 -1
- package/select/src/lib/select.component.d.ts +1 -3
|
@@ -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","__read","o","m","r","i","ar","error","__spread","arguments","concat","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","templateRef","Directive","args","selector","TemplateRef","SdSelect","ref","utilityService","_this","_input","_name","uuid.v4","disableErrorMessage","formControl","SdFormControl","searchTerm$","Subject","_form","_items","loading","_delay","isRequired","_validator","multiple","limit","filtered","selectAll","modelChange","EventEmitter","sdChange","sdSelection","_subscription","Subscription","_selectedItems","_allItems","_allItem","allSelected","isFocused","_updateValidator","clearValidators","clearAsyncValidators","validators","asyncValidators","Validators","required","_customValidator","setValidators","setAsyncValidators","updateValueAndValidity","_loadSelectedItems","items","toString","values","Array","isArray","valueField","displayField","some","val","undefined","finally","results","_c","objItem","toObject","assign","map","_d","_loadItems","searchText","union","onSelectionChange","change","select","options","selected","_a","_onChange","reValidate","emitEvent","emit","selectedItems","item","clear","$event","stopPropagation","setValue","onClick","sdView","disabled","focus","setTimeout","_b","open","func","c","message","customValidator","onOpenChange","isOpened","defineProperty","prototype","input","NgForm","form","filter","validator","disable","enable","ngOnInit","add","touchedChanges","subscribe","markForCheck","combineLatest","asObservable","pipe","startWith","debounceTime","valueChanges","switchMap","formValue","hasFields","display","String","aliasIncludes","sort","a","b","value1","value2","t1_1","t2_1","t1","t2","find","filteredItems","allItems","paging","join","ngAfterViewInit","addControl","ngOnDestroy","removeControl","unsubscribe","onSelectAll","Component","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","SdUtilityService","ViewChild","MatInput","Input","ContentChild","SdSelectDisplayDefDirective","Output","SdViewDefDirective","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatTooltipModule","MatFormFieldModule","MatIconModule","MatSelectModule","MatProgressSpinnerModule","MatCheckboxModule","SdTranslateModule","SdCommonModule","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 if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","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 { combineLatest, Observable, Subject, Subscription } from 'rxjs';\r\nimport { debounceTime, map, 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\nimport { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';\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 #input: MatInput;\r\n @ViewChild(MatInput) set input(input: MatInput) {\r\n if (this.#input !== input) {\r\n this.#input = input;\r\n this.#input.value = null;\r\n }\r\n }\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 SdFormControl();\r\n\r\n searchTerm$ = new Subject<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 display: Observable<string>;\r\n @Input() set model(value: undefined | boolean | number | string | (number | string)[]) {\r\n this.formControl.setValue(value);\r\n }\r\n // Items\r\n \r\n #items: any[] | SearchFunc = [];\r\n @Input() set items(items: undefined | any[] | SearchFunc) {\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\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 #subscription = new Subscription();\r\n #selectedItems: Observable<any[]>;\r\n selectedItems: any[];\r\n #allItems: Observable<any[]>;\r\n filteredItems: Observable<any[]>;\r\n #allItem: {\r\n [key: string]: any\r\n } = {};\r\n allSelected = false;\r\n\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n isFocused = false;\r\n \r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private utilityService: SdUtilityService) { }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.touchedChanges.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#allItems = combineLatest([\r\n this.searchTerm$.asObservable().pipe(startWith(''), debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0)),\r\n this.formControl.valueChanges.pipe(startWith(this.formControl.value))]).pipe(\r\n switchMap(async ([val, formValue]) => {\r\n if (typeof (this.#items) === 'function') {\r\n return await this.#loadItems(val, this.#items);\r\n }\r\n const isArray = Array.isArray(formValue);\r\n const hasFields = !!this.valueField && !!this.displayField;\r\n return this.#items.filter(item => {\r\n const value = hasFields ? item[this.valueField] : item;\r\n const display = hasFields ? item[this.displayField] : item;\r\n if (String.aliasIncludes(value, val) || String.aliasIncludes(display, val)) {\r\n return true;\r\n }\r\n if (isArray) {\r\n return formValue.some(e => e === value)\r\n }\r\n return formValue === value;\r\n }).sort((a, b) => {\r\n if (!this.multiple) {\r\n return 0;\r\n }\r\n const value1 = hasFields ? a[this.valueField] : a;\r\n const value2 = hasFields ? b[this.valueField] : b;\r\n if (isArray) {\r\n const t1 = formValue.some(e => e === value1);\r\n const t2 = formValue.some(e => e === value2);\r\n if (t1 && !t2) {\r\n return -1;\r\n }\r\n if (!t1 && t2) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n const t1 = formValue === value1;\r\n const t2 = formValue === value2;\r\n if (t1 && !t2) {\r\n return -1;\r\n }\r\n if (!t1 && t2) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }));\r\n this.#selectedItems = this.#allItems.pipe(map(items => {\r\n const formValue = this.formControl.value;\r\n if (!formValue?.toString()) {\r\n return [];\r\n }\r\n const values = Array.isArray(formValue) ? formValue : [formValue];\r\n this.selectedItems = values.map(val => {\r\n if (this.valueField) {\r\n return items?.find(item => item[this.valueField] === val);\r\n }\r\n return val;\r\n });\r\n return this.selectedItems;\r\n }));\r\n this.filteredItems = this.#allItems.pipe(map(allItems => allItems.paging(this.limit)));\r\n this.display = this.#selectedItems.pipe(map(selectedItems => selectedItems?.map(item => this.displayField ? item[this.displayField] : item)?.join(', ')));\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 this.#subscription.unsubscribe();\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 #loadSelectedItems = async (value: string | string[], items: SearchFunc) => {\r\n if (!value?.toString()) {\r\n return [];\r\n }\r\n const values = Array.isArray(value) ? value : [value];\r\n if (!this.valueField && !this.displayField) {\r\n return values;\r\n }\r\n this.loading = true;\r\n if (values.some(val => this.#allItem[val] === undefined)) {\r\n const results = await items(value, true).finally(() => this.loading = false);\r\n const objItem = Array.toObject(results, this.valueField);\r\n this.#allItem = {\r\n ...values.map(val => ({ [val]: { [this.valueField]: val, [this.displayField]: val } })),\r\n ...this.#allItem,\r\n ...objItem\r\n };\r\n }\r\n return values.map(val => this.#allItem[val]);\r\n }\r\n\r\n #loadItems = async (searchText: string, items: SearchFunc) => {\r\n this.loading = true;\r\n const results = await items(searchText).finally(() => this.loading = false);\r\n const objItem = Array.toObject(results, this.valueField);\r\n this.#allItem = {\r\n ...this.#allItem,\r\n ...objItem\r\n };\r\n const selectedItems = await this.#loadSelectedItems(this.formControl.value, items);\r\n return [...selectedItems, ...results].union(this.valueField);\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 this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n this.sdSelection.emit({\r\n value: value,\r\n items: this.selectedItems\r\n });\r\n } else {\r\n this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n this.sdSelection.emit({\r\n value: value,\r\n item: this.selectedItems[0]\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 onClick = () => {\r\n if(this.sdView?.templateRef) {\r\n if(!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.select?.focus();\r\n this.select?.open();\r\n }, 100);\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.isFocused = true;\r\n if (this.#input) {\r\n this.#input.value = null;\r\n }\r\n this.searchTerm$.next('');\r\n } else {\r\n this.isFocused = false;\r\n }\r\n }\r\n}\r\n\r\ntype SearchFunc = (searchText?: string | string[], isFormValue?: boolean) => Promise<any[]>;","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 { 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\nimport { SdCommonModule } from '@sd-angular/core/common';\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 SdCommonModule\r\n ],\r\n declarations: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n exports: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective,\r\n SdCommonModule\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","__read","o","m","r","i","ar","error","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","templateRef","Directive","args","selector","TemplateRef","SdSelect","ref","_this","_input","_name","uuid.v4","disableErrorMessage","formControl","SdFormControl","searchTerm$","Subject","_form","_items","loading","_delay","isRequired","_validator","multiple","limit","filtered","selectAll","modelChange","EventEmitter","sdChange","sdSelection","_subscription","Subscription","_selectedItems","_allItems","_allItem","allSelected","_cache","isFocused","_updateValidator","clearValidators","clearAsyncValidators","validators","asyncValidators","Validators","required","_customValidator","setValidators","setAsyncValidators","updateValueAndValidity","_loadSelectedItems","items","toString","values","Array","isArray","valueField","displayField","some","val","undefined","finally","results","_c","objItem","toObject","assign","map","_d","_loadItems","searchText","catch","selectedItems","arguments","concat","__spread","union","onSelectionChange","change","select","options","selected","_a","_onChange","reValidate","emitEvent","emit","item","clear","$event","stopPropagation","setValue","onClick","sdView","disabled","focus","setTimeout","_b","open","func","c","message","customValidator","onOpenChange","isOpened","defineProperty","prototype","input","NgForm","form","filter","validator","disable","enable","ngOnInit","add","touchedChanges","subscribe","markForCheck","combineLatest","asObservable","pipe","startWith","debounceTime","valueChanges","switchMap","formValue","hasFields","display","String","aliasIncludes","find","filteredItems","allItems","paging","join","ngAfterViewInit","addControl","ngOnDestroy","removeControl","unsubscribe","onSelectAll","Component","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","ViewChild","MatInput","Input","ContentChild","SdSelectDisplayDefDirective","Output","SdViewDefDirective","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","MatInputModule","MatTooltipModule","MatFormFieldModule","MatIconModule","MatSelectModule","MatProgressSpinnerModule","MatCheckboxModule","SdTranslateModule","SdCommonModule","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 if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","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, Validators, ValidatorFn, AbstractControl, AsyncValidatorFn, FormGroup } from '@angular/forms';\r\nimport * as uuid from 'uuid';\r\nimport { MatSelect, MatSelectChange } from '@angular/material/select';\r\nimport { combineLatest, Observable, Subject, Subscription } from 'rxjs';\r\nimport { debounceTime, map, startWith, switchMap } from 'rxjs/operators';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { SdSelectDisplayDefDirective } from './select-display-def.directive';\r\nimport { SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';\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 #input: MatInput;\r\n @ViewChild(MatInput) set input(input: MatInput) {\r\n if (this.#input !== input) {\r\n this.#input = input;\r\n this.#input.value = null;\r\n }\r\n }\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 SdFormControl();\r\n\r\n searchTerm$ = new Subject<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 display: Observable<string>;\r\n @Input() set model(value: undefined | boolean | number | string | (number | string)[]) {\r\n this.formControl.setValue(value);\r\n }\r\n // Items\r\n\r\n #items: any[] | SearchFunc = [];\r\n @Input() set items(items: undefined | any[] | SearchFunc) {\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\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 #subscription = new Subscription();\r\n #selectedItems: Observable<any[]>;\r\n selectedItems: any[];\r\n #allItems: Observable<any[]>;\r\n filteredItems: Observable<any[]>;\r\n #allItem: {\r\n [key: string]: any\r\n } = {};\r\n allSelected = false;\r\n #cache: {\r\n [key: string]: any[]\r\n } = {};\r\n @ContentChild(SdViewDefDirective) sdView: SdViewDefDirective;\r\n isFocused = false;\r\n\r\n constructor(\r\n private ref: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {\r\n this.#subscription.add(this.formControl.touchedChanges.subscribe(() => {\r\n this.ref.markForCheck();\r\n }));\r\n this.#allItems = combineLatest([\r\n this.searchTerm$.asObservable().pipe(startWith(''), debounceTime(typeof (this.#items) === 'function' ? this.#delay : 0)),\r\n this.formControl.valueChanges.pipe(startWith(this.formControl.value))]).pipe(\r\n switchMap(async ([val, formValue]) => {\r\n if (typeof (this.#items) === 'function') {\r\n return await this.#loadItems(val, this.#items);\r\n }\r\n const isArray = Array.isArray(formValue);\r\n const hasFields = !!this.valueField && !!this.displayField;\r\n return this.#items.filter(item => {\r\n const value = hasFields ? item[this.valueField] : item;\r\n const display = hasFields ? item[this.displayField] : item;\r\n if (String.aliasIncludes(value, val) || String.aliasIncludes(display, val)) {\r\n return true;\r\n }\r\n if (isArray) {\r\n return formValue.some(e => e === value)\r\n }\r\n return formValue === value;\r\n })\r\n }));\r\n this.#selectedItems = this.#allItems.pipe(map(items => {\r\n const formValue = this.formControl.value;\r\n if (!formValue?.toString()) {\r\n return [];\r\n }\r\n const values = Array.isArray(formValue) ? formValue : [formValue];\r\n this.selectedItems = values.map(val => {\r\n if (this.valueField) {\r\n return items?.find(item => item[this.valueField] === val);\r\n }\r\n return val;\r\n });\r\n return this.selectedItems;\r\n }));\r\n this.filteredItems = this.#allItems.pipe(map(allItems => allItems.paging(this.limit)));\r\n this.display = this.#selectedItems.pipe(map(selectedItems => selectedItems?.map(item => this.displayField ? item[this.displayField] : item)?.join(', ')));\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 this.#subscription.unsubscribe();\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 #loadSelectedItems = async (value: string | string[], items: SearchFunc) => {\r\n if (!value?.toString()) {\r\n return [];\r\n }\r\n const values = Array.isArray(value) ? value : [value];\r\n if (!this.valueField && !this.displayField) {\r\n return values;\r\n }\r\n this.loading = true;\r\n if (values.some(val => this.#allItem[val] === undefined)) {\r\n const results = await items(value, true).finally(() => this.loading = false);\r\n const objItem = Array.toObject(results, this.valueField);\r\n this.#allItem = {\r\n ...values.map(val => ({ [val]: { [this.valueField]: val, [this.displayField]: val } })),\r\n ...this.#allItem,\r\n ...objItem\r\n };\r\n }\r\n return values.map(val => this.#allItem[val]);\r\n }\r\n\r\n #loadItems = async (searchText: string, items: SearchFunc) => {\r\n if (this.#cache[searchText] === undefined) {\r\n this.loading = true;\r\n const results = await items(searchText).catch(() => []).finally(() => this.loading = false);\r\n const objItem = Array.toObject(results, this.valueField);\r\n this.#allItem = {\r\n ...this.#allItem,\r\n ...objItem\r\n };\r\n if (this.multiple) {\r\n const selectedItems = await this.#loadSelectedItems(this.formControl.value, items);\r\n this.#cache[searchText] = [...selectedItems, ...results].union(this.valueField);\r\n } else {\r\n this.#cache[searchText] = results.union(this.valueField);\r\n }\r\n }\r\n return this.#cache[searchText];\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 this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n this.sdSelection.emit({\r\n value: value,\r\n items: this.selectedItems\r\n });\r\n } else {\r\n this.modelChange.emit(value);\r\n this.sdChange.emit(value);\r\n this.sdSelection.emit({\r\n value: value,\r\n item: this.selectedItems[0]\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 onClick = () => {\r\n if (this.sdView?.templateRef) {\r\n if (!this.formControl.disabled && !this.isFocused) {\r\n this.focus();\r\n }\r\n }\r\n }\r\n\r\n focus = () => {\r\n this.isFocused = true;\r\n setTimeout(() => {\r\n this.select?.focus();\r\n this.select?.open();\r\n }, 100);\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.isFocused = true;\r\n if (this.#input) {\r\n this.#input.value = null;\r\n }\r\n this.searchTerm$.next('');\r\n } else {\r\n this.isFocused = false;\r\n }\r\n }\r\n}\r\n\r\ntype SearchFunc = (searchText?: string | string[], isFormValue?: boolean) => Promise<any[]>;","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 { 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\nimport { SdCommonModule } from '@sd-angular/core/common';\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 SdCommonModule\r\n ],\r\n declarations: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective\r\n ],\r\n exports: [\r\n SdSelect,\r\n SdSelectDisplayDefDirective,\r\n SdCommonModule\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdSelectModule {\r\n\r\n}\r\n"]}
|
|
@@ -10,7 +10,8 @@ export class SdComment {
|
|
|
10
10
|
this.onSend = () => {
|
|
11
11
|
var _a, _b;
|
|
12
12
|
if (this.message) {
|
|
13
|
-
(_b = (_a = this.
|
|
13
|
+
(_b = (_a = this.commentOption) === null || _a === void 0 ? void 0 : _a.event) === null || _b === void 0 ? void 0 : _b.onSend(this.message);
|
|
14
|
+
this.message = null;
|
|
14
15
|
}
|
|
15
16
|
};
|
|
16
17
|
_load.set(this, () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -57,4 +58,4 @@ SdComment.ctorParameters = () => [];
|
|
|
57
58
|
SdComment.propDecorators = {
|
|
58
59
|
option: [{ type: Input }]
|
|
59
60
|
};
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jb21tZW50LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21tZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBSVQsS0FBSyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQVFoRCxNQUFNLE9BQU8sU0FBUztJQVlwQjtRQVhBLGlCQUFTLElBQUksZUFBZSxDQUFZLEVBQUUsQ0FBQyxFQUFDO1FBQzVDLGdCQUFRLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxFQUFDO1FBMEJ4QyxXQUFNLEdBQUcsR0FBRyxFQUFFOztZQUNaLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsWUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxLQUFLLDBDQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQTtRQUVELGdCQUFRLEdBQVMsRUFBRTtZQUNqQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUN4QixJQUFJLE9BQU8sWUFBWSxPQUFPLEVBQUU7Z0JBQzlCLE9BQU8sTUFBTSxPQUFPLENBQUM7YUFDdEI7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUEsRUFBQTtRQUVELFdBQU0sR0FBRyxHQUFTLEVBQUU7WUFDbEIscUNBQVksSUFBSSxDQUFDLE1BQU0seUNBQUEsSUFBSSxDQUFRLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUEsQ0FBQTtJQWpDRCxDQUFDO0lBVEQsSUFBYSxNQUFNLENBQUMsTUFBdUI7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFBQSxDQUFDO0lBT0YsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcscUNBQVksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7O2dCQUFDLE9BQUEsaUNBQ2pCLENBQUMsS0FDSixPQUFPLFFBQUUsQ0FBQyxDQUFDLE9BQU8sbUNBQUksMkVBQTJFLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFDNUcsQ0FBQTthQUFBLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxXQUFXO0lBQ1gsQ0FBQztJQUNELGVBQWU7SUFDZixDQUFDOzs7O1lBaENGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsNGxEQUF1QztnQkFFdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7O3FCQUtFLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgSW5wdXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb21tZW50LCBTZENvbW1lbnRPcHRpb24gfSBmcm9tICcuL2NvbW1lbnQubW9kZWwnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWNvbW1lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb21tZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQ29tbWVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAjaXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbW1lbnRbXT4oW10pO1xyXG4gICNzZW5kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuICBjb21tZW50T3B0aW9uOiBTZENvbW1lbnRPcHRpb247XHJcbiAgQElucHV0KCkgc2V0IG9wdGlvbihvcHRpb246IFNkQ29tbWVudE9wdGlvbikge1xyXG4gICAgdGhpcy5jb21tZW50T3B0aW9uID0gb3B0aW9uO1xyXG4gICAgdGhpcy5yZWxvYWQoKTtcclxuICB9O1xyXG5cclxuICBpdGVtczogT2JzZXJ2YWJsZTxDb21tZW50W10+O1xyXG4gIGNvdW50OiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXRlbXMgPSB0aGlzLiNpdGVtcy5waXBlKG1hcChpdGVtcyA9PiB7XHJcbiAgICAgIHJldHVybiBpdGVtcy5tYXAoZSA9PiAoe1xyXG4gICAgICAgIC4uLmUsXHJcbiAgICAgICAgcGljdHVyZTogZS5waWN0dXJlID8/IGBodHRwczovL3VpLWF2YXRhcnMuY29tL2FwaS8/c2l6ZT0zMiZyb3VuZGVkPXRydWUmYmFja2dyb3VuZD1yYW5kb20mbmFtZT0ke2UuY3JlYXRvcn1gXHJcbiAgICAgIH0pKVxyXG4gICAgfSkpO1xyXG4gICAgdGhpcy5jb3VudCA9IHRoaXMuaXRlbXMucGlwZShtYXAoaXRlbXMgPT4gaXRlbXMubGVuZ3RoKSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBvblNlbmQgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5tZXNzYWdlKSB7XHJcbiAgICAgIHRoaXMuY29tbWVudE9wdGlvbj8uZXZlbnQ/Lm9uU2VuZCh0aGlzLm1lc3NhZ2UpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2UgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI2xvYWQgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCB7IGl0ZW1zIH0gPSB0aGlzLmNvbW1lbnRPcHRpb247XHJcbiAgICBjb25zdCByZXN1bHRzID0gaXRlbXMoKTtcclxuICAgIGlmIChyZXN1bHRzIGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICByZXR1cm4gYXdhaXQgcmVzdWx0cztcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHRzO1xyXG4gIH1cclxuXHJcbiAgcmVsb2FkID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgdGhpcy4jaXRlbXMubmV4dChhd2FpdCB0aGlzLiNsb2FkKCkpO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -32,7 +32,7 @@ Array.prototype.toObject = function (key) {
|
|
|
32
32
|
};
|
|
33
33
|
Array.prototype.union = function (key, ...args) {
|
|
34
34
|
let results = this;
|
|
35
|
-
const filterUnion = (val, index, self) => val !== undefined && val !== null && self.findIndex((e) => !!key ? e[key] === val[key] : e === val)
|
|
35
|
+
const filterUnion = (val, index, self) => val !== undefined && val !== null && self.findIndex((e) => !!key ? e[key] === val[key] : e === val) === index;
|
|
36
36
|
if (!(args === null || args === void 0 ? void 0 : args.length)) {
|
|
37
37
|
return results.filter(filterUnion);
|
|
38
38
|
}
|
|
@@ -62,4 +62,4 @@ Array.toObject = (items, key) => {
|
|
|
62
62
|
}
|
|
63
63
|
return items.toObject(key);
|
|
64
64
|
};
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNS9EZXNrdG9wL1dvcmtpbmcvMU1HL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvY29tbW9uLyIsInNvdXJjZXMiOlsic3JjL2xpYi90eXBpbmdzL2FycmF5LmV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBbUJ0QyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxVQUFtQixVQUFlLEVBQUUsTUFBMEI7SUFDckYsTUFBTSxLQUFLLEdBQVEsSUFBSSxDQUFDO0lBQ3hCLElBQUksRUFBQyxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsUUFBUSxHQUFFLEVBQUU7UUFDM0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRTtZQUNkLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQzVHO1FBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUs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b3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCB7IH07XHJcblxyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgaW50ZXJmYWNlIEFycmF5PFQgPSBhbnk+IHtcclxuICAgIHNlYXJjaChzZWFyY2hUZXh0OiBzdHJpbmcgfCBudW1iZXIsIGZpZWxkcz86IHN0cmluZyB8IHN0cmluZ1tdKTogVFtdO1xyXG4gICAgcGFnaW5nKHBhZ2VTaXplOiBudW1iZXIsIHBhZ2U/OiBudW1iZXIpOiBUW107XHJcbiAgICB0b09iamVjdChrZXk/OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IFQgfTtcclxuICAgIHVuaW9uKGtleTogc3RyaW5nLCAuLi5hcmdzOiBUW11bXSk6IFRbXTtcclxuICAgIGFzT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPFRbXT5cclxuICB9XHJcbiAgaW50ZXJmYWNlIEFycmF5Q29uc3RydWN0b3Ige1xyXG4gICAgc2VhcmNoPFQgPSBhbnk+KGl0ZW1zOiBUW10sIHNlYXJjaFRleHQ6IHN0cmluZyB8IG51bWJlciwgZmllbGRzPzogc3RyaW5nIHwgc3RyaW5nW10pOiBUW107XHJcbiAgICB1bmlvbjxUID0gYW55PihrZXk6IHN0cmluZywgLi4uYXJnczogVFtdW10pOiBUW107XHJcbiAgICB0b09iamVjdDxUID0gYW55PihpdGVtczogVFtdLCBrZXk/OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IFQgfTtcclxuICB9XHJcbn1cclxuXHJcbkFycmF5LnByb3RvdHlwZS5zZWFyY2ggPSBmdW5jdGlvbiA8VCA9IGFueT4oc2VhcmNoVGV4dDogYW55LCBmaWVsZHM/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IFRbXSB7XHJcbiAgY29uc3QgaXRlbXM6IFRbXSA9IHRoaXM7XHJcbiAgaWYgKCFzZWFyY2hUZXh0Py50b1N0cmluZygpKSB7XHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbiAgfVxyXG4gIGlmIChBcnJheS5pc0FycmF5KGZpZWxkcykpIHtcclxuICAgIGNvbnN0IGZzID0gZmllbGRzLmZpbHRlcihlID0+IGUgIT09IHVuZGVmaW5lZCAmJiBlICE9PSBudWxsICYmIGUgIT09ICcnKTtcclxuICAgIGlmICghZnMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtLCBzZWFyY2hUZXh0KSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gdW5kZWZpbmVkICYmIGl0ZW0gIT09IG51bGwgJiYgZnMuc29tZShmaWVsZCA9PiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtW2ZpZWxkXSwgc2VhcmNoVGV4dCkpKTtcclxuICB9XHJcbiAgaWYgKCFmaWVsZHMpIHtcclxuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtLCBzZWFyY2hUZXh0KSk7XHJcbiAgfVxyXG4gIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtW2ZpZWxkc10sIHNlYXJjaFRleHQpKTtcclxufTtcclxuXHJcbkFycmF5LnByb3RvdHlwZS5wYWdpbmcgPSBmdW5jdGlvbiA8VCA9IGFueT4ocGFnZVNpemU6IG51bWJlciwgcGFnZTogbnVtYmVyID0gMCk6IFRbXSB7XHJcbiAgY29uc3QgaXRlbXM6IFRbXSA9IHRoaXM7XHJcbiAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgIHJldHVybiBpbmRleCA+PSBwYWdlICogcGFnZVNpemVcclxuICAgICAgJiYgaW5kZXggPCAocGFnZSArIDEpICogcGFnZVNpemU7XHJcbiAgfSk7XHJcbn07XHJcblxyXG5BcnJheS5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbiA8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IFQgfSB7XHJcbiAgY29uc3QgaXRlbXM6IFRbXSA9IHRoaXM7XHJcbiAgaWYgKCFrZXkpIHtcclxuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCkucmVkdWNlKChvYmosIGl0ZW0pID0+IHsgb2JqW2l0ZW0/LnRvU3RyaW5nKCldID0gaXRlbTsgcmV0dXJuIG9iajsgfSwge30pO1xyXG4gIH1cclxuICByZXR1cm4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gdW5kZWZpbmVkICYmIGl0ZW0gIT09IG51bGwpLnJlZHVjZSgob2JqLCBpdGVtKSA9PiB7IG9ialtpdGVtW2tleV1dID0gaXRlbTsgcmV0dXJuIG9iajsgfSwge30pO1xyXG59O1xyXG5cclxuQXJyYXkucHJvdG90eXBlLnVuaW9uID0gZnVuY3Rpb24gPFQgPSBhbnk+KGtleTogc3RyaW5nLCAuLi5hcmdzOiBUW11bXSkge1xyXG4gIGxldCByZXN1bHRzOiBUW10gPSB0aGlzO1xyXG4gIGNvbnN0IGZpbHRlclVuaW9uID0gPFQgPSBhbnk+
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNS9EZXNrdG9wL1dvcmtpbmcvMU1HL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvY29tbW9uLyIsInNvdXJjZXMiOlsic3JjL2xpYi90eXBpbmdzL2FycmF5LmV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBbUJ0QyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxVQUFtQixVQUFlLEVBQUUsTUFBMEI7SUFDckYsTUFBTSxLQUFLLEdBQVEsSUFBSSxDQUFDO0lBQ3hCLElBQUksRUFBQyxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsUUFBUSxHQUFFLEVBQUU7UUFDM0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRTtZQUNkLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQzVHO1FBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUs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b3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCB7IH07XHJcblxyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgaW50ZXJmYWNlIEFycmF5PFQgPSBhbnk+IHtcclxuICAgIHNlYXJjaChzZWFyY2hUZXh0OiBzdHJpbmcgfCBudW1iZXIsIGZpZWxkcz86IHN0cmluZyB8IHN0cmluZ1tdKTogVFtdO1xyXG4gICAgcGFnaW5nKHBhZ2VTaXplOiBudW1iZXIsIHBhZ2U/OiBudW1iZXIpOiBUW107XHJcbiAgICB0b09iamVjdChrZXk/OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IFQgfTtcclxuICAgIHVuaW9uKGtleTogc3RyaW5nLCAuLi5hcmdzOiBUW11bXSk6IFRbXTtcclxuICAgIGFzT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPFRbXT5cclxuICB9XHJcbiAgaW50ZXJmYWNlIEFycmF5Q29uc3RydWN0b3Ige1xyXG4gICAgc2VhcmNoPFQgPSBhbnk+KGl0ZW1zOiBUW10sIHNlYXJjaFRleHQ6IHN0cmluZyB8IG51bWJlciwgZmllbGRzPzogc3RyaW5nIHwgc3RyaW5nW10pOiBUW107XHJcbiAgICB1bmlvbjxUID0gYW55PihrZXk6IHN0cmluZywgLi4uYXJnczogVFtdW10pOiBUW107XHJcbiAgICB0b09iamVjdDxUID0gYW55PihpdGVtczogVFtdLCBrZXk/OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IFQgfTtcclxuICB9XHJcbn1cclxuXHJcbkFycmF5LnByb3RvdHlwZS5zZWFyY2ggPSBmdW5jdGlvbiA8VCA9IGFueT4oc2VhcmNoVGV4dDogYW55LCBmaWVsZHM/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IFRbXSB7XHJcbiAgY29uc3QgaXRlbXM6IFRbXSA9IHRoaXM7XHJcbiAgaWYgKCFzZWFyY2hUZXh0Py50b1N0cmluZygpKSB7XHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbiAgfVxyXG4gIGlmIChBcnJheS5pc0FycmF5KGZpZWxkcykpIHtcclxuICAgIGNvbnN0IGZzID0gZmllbGRzLmZpbHRlcihlID0+IGUgIT09IHVuZGVmaW5lZCAmJiBlICE9PSBudWxsICYmIGUgIT09ICcnKTtcclxuICAgIGlmICghZnMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtLCBzZWFyY2hUZXh0KSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gdW5kZWZpbmVkICYmIGl0ZW0gIT09IG51bGwgJiYgZnMuc29tZShmaWVsZCA9PiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtW2ZpZWxkXSwgc2VhcmNoVGV4dCkpKTtcclxuICB9XHJcbiAgaWYgKCFmaWVsZHMpIHtcclxuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtLCBzZWFyY2hUZXh0KSk7XHJcbiAgfVxyXG4gIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCAmJiBTdHJpbmcuYWxpYXNJbmNsdWRlcyhpdGVtW2ZpZWxkc10sIHNlYXJjaFRleHQpKTtcclxufTtcclxuXHJcbkFycmF5LnByb3RvdHlwZS5wYWdpbmcgPSBmdW5jdGlvbiA8VCA9IGFueT4ocGFnZVNpemU6IG51bWJlciwgcGFnZTogbnVtYmVyID0gMCk6IFRbXSB7XHJcbiAgY29uc3QgaXRlbXM6IFRbXSA9IHRoaXM7XHJcbiAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgIHJldHVybiBpbmRleCA+PSBwYWdlICogcGFnZVNpemVcclxuICAgICAgJiYgaW5kZXggPCAocGFnZSArIDEpICogcGFnZVNpemU7XHJcbiAgfSk7XHJcbn07XHJcblxyXG5BcnJheS5wcm90b3R5cGUudG9PYmplY3QgPSBmdW5jdGlvbiA8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IFQgfSB7XHJcbiAgY29uc3QgaXRlbXM6IFRbXSA9IHRoaXM7XHJcbiAgaWYgKCFrZXkpIHtcclxuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQgJiYgaXRlbSAhPT0gbnVsbCkucmVkdWNlKChvYmosIGl0ZW0pID0+IHsgb2JqW2l0ZW0/LnRvU3RyaW5nKCldID0gaXRlbTsgcmV0dXJuIG9iajsgfSwge30pO1xyXG4gIH1cclxuICByZXR1cm4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gdW5kZWZpbmVkICYmIGl0ZW0gIT09IG51bGwpLnJlZHVjZSgob2JqLCBpdGVtKSA9PiB7IG9ialtpdGVtW2tleV1dID0gaXRlbTsgcmV0dXJuIG9iajsgfSwge30pO1xyXG59O1xyXG5cclxuQXJyYXkucHJvdG90eXBlLnVuaW9uID0gZnVuY3Rpb24gPFQgPSBhbnk+KGtleTogc3RyaW5nLCAuLi5hcmdzOiBUW11bXSkge1xyXG4gIGxldCByZXN1bHRzOiBUW10gPSB0aGlzO1xyXG4gIGNvbnN0IGZpbHRlclVuaW9uID0gPFQgPSBhbnk+KHZhbDogVCwgaW5kZXg6IG51bWJlciwgc2VsZjogVFtdKSA9PiB2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwgJiYgc2VsZi5maW5kSW5kZXgoKGU6IHsgW3g6IHN0cmluZ106IGFueTsgfSkgPT4gISFrZXkgPyBlW2tleV0gPT09IHZhbFtrZXldIDogZSA9PT0gdmFsKSA9PT0gaW5kZXg7XHJcbiAgaWYgKCFhcmdzPy5sZW5ndGgpIHtcclxuICAgIHJldHVybiByZXN1bHRzLmZpbHRlcihmaWx0ZXJVbmlvbik7XHJcbiAgfVxyXG4gIGZvciAoY29uc3QgYXJnIG9mIGFyZ3MpIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcclxuICAgICAgcmVzdWx0cyA9IFsuLi5yZXN1bHRzLCAuLi5hcmddLmZpbHRlcihmaWx0ZXJVbmlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHRzO1xyXG59XHJcblxyXG5BcnJheS5wcm90b3R5cGUuYXNPYnNlcnZhYmxlID0gZnVuY3Rpb24gPFQgPSBhbnk+KCkge1xyXG4gIGNvbnN0IGl0ZW1zOiBUW10gPSB0aGlzO1xyXG4gIHJldHVybiBvZihpdGVtcyk7XHJcbn1cclxuXHJcbkFycmF5LnNlYXJjaCA9IDxUID0gYW55PihpdGVtczogVFtdLCBzZWFyY2hUZXh0OiBzdHJpbmcgfCBudW1iZXIsIGZpZWxkcz86IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB7XHJcbiAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuICByZXR1cm4gaXRlbXMuc2VhcmNoKHNlYXJjaFRleHQsIGZpZWxkcyk7XHJcbn07XHJcblxyXG5BcnJheS51bmlvbiA9IDxUID0gYW55PihrZXk6IHN0cmluZywgLi4uYXJnczogVFtdW10pID0+IHtcclxuICByZXR1cm4gW10udW5pb24oa2V5LCBhcmdzKTtcclxufVxyXG5cclxuQXJyYXkudG9PYmplY3QgPSA8VD4oaXRlbXM6IFRbXSwga2V5Pzogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBUIH0gPT4ge1xyXG4gIGlmICghQXJyYXkuaXNBcnJheShpdGVtcykpIHtcclxuICAgIHJldHVybiB7fTtcclxuICB9XHJcbiAgcmV0dXJuIGl0ZW1zLnRvT2JqZWN0KGtleSk7XHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -252,7 +252,7 @@ export class SdGridConfigurationService {
|
|
|
252
252
|
multipleHeader: false
|
|
253
253
|
};
|
|
254
254
|
const { selection, commands, editor } = gridOption || {};
|
|
255
|
-
if ((editor === null || editor === void 0 ? void 0 : editor.addable) || ((editor === null || editor === void 0 ? void 0 : editor.type) === 'inline' && (editor === null || editor === void 0 ? void 0 : editor.removable))
|
|
255
|
+
if ((editor === null || editor === void 0 ? void 0 : editor.addable) || ((editor === null || editor === void 0 ? void 0 : editor.type) === 'inline' && ((editor === null || editor === void 0 ? void 0 : editor.removable) || typeof (editor === null || editor === void 0 ? void 0 : editor.disabled) === 'function' || !(editor === null || editor === void 0 ? void 0 : editor.disabled)))
|
|
256
256
|
|| ((editor === null || editor === void 0 ? void 0 : editor.type) === 'focus' && (typeof (editor === null || editor === void 0 ? void 0 : editor.disabled) === 'function' || !(editor === null || editor === void 0 ? void 0 : editor.disabled)))) {
|
|
257
257
|
result.firstHeaders.push(__classPrivateFieldGet(this, _COLUMNS).EDITORVALIDATION);
|
|
258
258
|
result.displayedColumns.push(__classPrivateFieldGet(this, _COLUMNS).EDITORVALIDATION);
|
|
@@ -261,7 +261,7 @@ export class SdGridConfigurationService {
|
|
|
261
261
|
result.firstHeaders.push(__classPrivateFieldGet(this, _COLUMNS).SELECTION);
|
|
262
262
|
result.displayedColumns.push(__classPrivateFieldGet(this, _COLUMNS).SELECTION);
|
|
263
263
|
}
|
|
264
|
-
if ((editor === null || editor === void 0 ? void 0 : editor.addable) || ((editor === null || editor === void 0 ? void 0 : editor.type) === 'inline' && (editor === null || editor === void 0 ? void 0 : editor.removable))
|
|
264
|
+
if ((editor === null || editor === void 0 ? void 0 : editor.addable) || ((editor === null || editor === void 0 ? void 0 : editor.type) === 'inline' && ((editor === null || editor === void 0 ? void 0 : editor.removable) || typeof (editor === null || editor === void 0 ? void 0 : editor.disabled) === 'function' || !(editor === null || editor === void 0 ? void 0 : editor.disabled)))
|
|
265
265
|
|| ((editor === null || editor === void 0 ? void 0 : editor.type) === 'focus' && (typeof (editor === null || editor === void 0 ? void 0 : editor.disabled) === 'function' || !(editor === null || editor === void 0 ? void 0 : editor.disabled)))
|
|
266
266
|
|| ((editor === null || editor === void 0 ? void 0 : editor.type) === 'popup' && (typeof (editor === null || editor === void 0 ? void 0 : editor.disabled) === 'function' || !(editor === null || editor === void 0 ? void 0 : editor.disabled)))) {
|
|
267
267
|
result.firstHeaders.push(__classPrivateFieldGet(this, _COLUMNS).EDITOR);
|
|
@@ -350,4 +350,4 @@ SdGridConfigurationService.ctorParameters = () => [
|
|
|
350
350
|
{ type: SdSettingService },
|
|
351
351
|
{ type: undefined, decorators: [{ type: Inject, args: [GRID_MATERIAL_CONFIG,] }, { type: Optional }] }
|
|
352
352
|
];
|
|
353
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9zZXJ2aWNlcy9ncmlkLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsb0JBQW9CLEVBQWdDLE1BQU0sb0NBQW9DLENBQUM7QUFHeEcsTUFBTSxPQUFPLDBCQUEwQjtJQVdyQyxZQUNVLGNBQWdDLEVBQ1MseUJBQXVEO1FBRGhHLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNTLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBOEI7UUFaMUcsbUJBQVc7WUFDVCxnQkFBZ0IsRUFBRSxvQkFBb0I7WUFDdEMsTUFBTSxFQUFFLFVBQVU7WUFDbEIsY0FBYyxFQUFFLHdCQUF3QjtZQUN4QyxPQUFPLEVBQUUsV0FBVztZQUNwQixTQUFTLEVBQUUsYUFBYTtTQUN6QixFQUFDO1FBQ0YsaUJBRUksRUFBRSxFQUFDO1FBTVAsU0FBSSxHQUFHLENBQUMsR0FBVyxFQUFFLFVBQWdDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMscUNBQVksR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO2dCQUNuRCxxQ0FBWSxHQUFHLENBQUMsR0FBRztvQkFDakIsSUFBSSxFQUFFLHlDQUFB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QU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDaEQ7aUJBQ0Y7WUFDSCxDQUFDLEVBQUU7WUFDSCxJQUFJLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixDQUFFLFdBQVcsRUFBRTtnQkFDakMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsdUNBQWMsY0FBYyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsdUNBQWMsY0FBYyxDQUFDLENBQUM7YUFDNUQ7WUFDRCxNQUFNLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN4RCxxQ0FBcUM7WUFDckMsTUFBTSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssdUNBQWMsY0FBYyxDQUFDLENBQUM7WUFDdEcsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFBO0lBdFNELENBQUM7Ozs7WUFmRixVQUFVOzs7WUFSRixnQkFBZ0I7NENBc0JwQixNQUFNLFNBQUMsb0JBQW9CLGNBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xyXG5pbXBvcnQgeyBTZFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9zZXR0aW5nJztcclxuaW1wb3J0IHsgU2RHcmlkTWF0ZXJpYWxPcHRpb24gfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBTZENvbHVtbkNvbmZpZ3VyYXRpb24sIFNkR3JpZENvbmZpZ3VyYXRpb24sIFNkR3JpZENvbmZpZ3VyYXRpb25DYWNoZSwgU2RHcmlkQ29uZmlndXJhdGlvblJlc3VsdCB9IGZyb20gJy4uL21vZGVscy9ncmlkLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFNkTWF0ZXJpYWxTdWJJbmZvcm1hdGlvbkRlZkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc2QtbWF0ZXJpYWwtc3ViLWluZm9ybWF0aW9uLWRlZi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNkR3JpZE1hdGVyaWFsQ29sdW1uIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtY29sdW1uLm1vZGVsJztcclxuaW1wb3J0IHsgR1JJRF9NQVRFUklBTF9DT05GSUcsIElTZEdyaWRNYXRlcmlhbENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC1jb25maWd1cmF0aW9uLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNkR3JpZENvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcclxuICAjQ09MVU1OUyA9IHtcclxuICAgIEVESVRPUlZBTElEQVRJT046ICdzZEVkaXRvclZhbGlkYXRpb24nLFxyXG4gICAgRURJVE9SOiAnc2RFZGl0b3InLFxyXG4gICAgU1VCSU5GT1JNQVRJT046ICdzZFN1YkluZm9ybWF0aW9uQWN0aW9uJyxcclxuICAgIENPTU1BTkQ6ICdzZENvbW1hbmQnLFxyXG4gICAgU0VMRUNUSU9OOiAnc2RTZWxlY3Rpb24nXHJcbiAgfTtcclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IFNkR3JpZENvbmZpZ3VyYXRpb25DYWNoZVxyXG4gIH0gPSB7fTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2V0dGluZ1NlcnZpY2U6IFNkU2V0dGluZ1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KEdSSURfTUFURVJJQUxfQ09ORklHKSBAT3B0aW9uYWwoKSBwdWJsaWMgZ3JpZE1hdGVyaWFsQ29uZmlndXJhdGlvbjogSVNkR3JpZE1hdGVyaWFsQ29uZmlndXJhdGlvbikge1xyXG4gIH1cclxuXHJcbiAgaW5pdCA9IChrZXk6IHN0cmluZywgZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb24pID0+IHtcclxuICAgIGlmICghdGhpcy4jY2FjaGVba2V5XSkge1xyXG4gICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8U2RHcmlkQ29uZmlndXJhdGlvbj4oKTtcclxuICAgICAgdGhpcy4jY2FjaGVba2V5XSA9IHtcclxuICAgICAgICBsb2FkOiB0aGlzLiNsb2FkKGdyaWRPcHRpb24sIHN1YmplY3QpLFxyXG4gICAgICAgIGdldDogdGhpcy4jZ2V0KGdyaWRPcHRpb24pLFxyXG4gICAgICAgIHNldDogKGNvbmZpZ3VyYXRpb246IFNkR3JpZENvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSB0aGlzLiNzZXQoZ3JpZE9wdGlvbiwgY29uZmlndXJhdGlvbik7XHJcbiAgICAgICAgICBzdWJqZWN0Lm5leHQoeyAuLi5jb25maWd1cmF0aW9uIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247XHJcbiAgICAgICAgfSxcclxuICAgICAgICByZW1vdmU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuI3JlbW92ZShncmlkT3B0aW9uKSgpO1xyXG4gICAgICAgICAgc3ViamVjdC5uZXh0KHRoaXMuI2RlZmF1bHQoZ3JpZE9wdGlvbikpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb2JzZXJ2ZXI6IHN1YmplY3RcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLiNjYWNoZVtrZXldO1xyXG4gIH1cclxuXHJcbiAgI2dldEtleSA9IChncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbikgPT4ge1xyXG4gICAgY29uc3QgcHJlZml4ID0gJ2M5ZTk0ODM2LTZhY2UtNGFlYi1iMTQ4LTRmMGJlNjM1ODllZSc7XHJcbiAgICBpZiAoIWdyaWRPcHRpb24/LmNvbmZpZz8ua2V5ICYmICFncmlkT3B0aW9uPy5rZXkpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaGFzaCh7XHJcbiAgICAgIHByZWZpeCxcclxuICAgICAga2V5OiBncmlkT3B0aW9uPy5jb25maWc/LmtleSB8fCAhZ3JpZE9wdGlvbj8ua2V5XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gICNkZWZhdWx0ID0gKGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uKTogU2RHcmlkQ29uZmlndXJhdGlvbiA9PiB7XHJcbiAgICBjb25zdCBjb2x1bW5zOiBTZENvbHVtbkNvbmZpZ3VyYXRpb25bXSA9IGdyaWRPcHRpb24/LmNvbHVtbnM/LmZpbHRlcihlID0+ICFlLmhpZGRlbikubWFwKGUgPT4gKHtcclxuICAgICAgb3JpZ2luOiB7XHJcbiAgICAgICAgZmllbGQ6IGUuZmllbGQsXHJcbiAgICAgICAgdGl0bGU6IGUudGl0bGUsXHJcbiAgICAgICAgd2lkdGg6IGUud2lkdGgsXHJcbiAgICAgICAgaW52aXNpYmxlOiBlLmludmlzaWJsZVxyXG4gICAgICB9LFxyXG4gICAgICBpbnZpc2libGU6IGUuaW52aXNpYmxlLFxyXG4gICAgICBmaXhlZDogZmFsc2VcclxuICAgIH0pKSB8fCBbXTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNvbHVtbnNcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAjbG9hZCA9IChncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbiwgc3ViamVjdDogU3ViamVjdDxTZEdyaWRDb25maWd1cmF0aW9uPikgPT4ge1xyXG4gICAgcmV0dXJuIGFzeW5jICgpID0+IHtcclxuICAgICAgY29uc3QgZ2V0ID0gdGhpcy4jZ2V0KGdyaWRPcHRpb24pO1xyXG4gICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gYXdhaXQgZ2V0KCk7XHJcbiAgICAgIHN1YmplY3QubmV4dCh7IC4uLmNvbmZpZ3VyYXRpb24gfSk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgI2dldCA9IChncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbikgPT4ge1xyXG4gICAgcmV0dXJuIGFzeW5jICgpID0+IHtcclxuICAgICAgY29uc3Qga2V5ID0gdGhpcy4jZ2V0S2V5KGdyaWRPcHRpb24pO1xyXG4gICAgICBpZiAoIWtleSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNkZWZhdWx0KGdyaWRPcHRpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHsgY29sdW1ucywgY29uZmlnIH0gPSBncmlkT3B0aW9uO1xyXG4gICAgICBjb25zdCB7IGdldCwgcmVtb3ZlIH0gPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEdyaWRDb25maWd1cmF0aW9uPihrZXksIHtcclxuICAgICAgICB0eXBlOiBjb25maWc/LnN0b3JhZ2UsXHJcbiAgICAgICAgYXJnczogY29uZmlnPy5hcmdzXHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zdCBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uID0gYXdhaXQgZ2V0KCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcclxuICAgICAgaWYgKCFjb25maWd1cmF0aW9uPy5jb2x1bW5zKSB7XHJcbiAgICAgICAgcmVtb3ZlKCkuY2F0Y2goY29uc29sZS5lcnJvcik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2RlZmF1bHQoZ3JpZE9wdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgY29uZmlndXJhdGlvbi5jb2x1bW5zID0gY29uZmlndXJhdGlvbi5jb2x1bW5zXHJcbiAgICAgICAgLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLmlzR2VuZXJhdGVkQ29sdW1uIHx8IGNvbHVtbnMuc29tZShlID0+ICFlLmhpZGRlbiAmJiBlLmZpZWxkID09PSBjb2x1bW4ub3JpZ2luLmZpZWxkKSk7XHJcbiAgICAgIC8vIFRow6ptIG5o4buvbmcgY29sdW1uIG3hu5tpIHbDoG8gc3RvcmFnZSBu4bq/dSBjw7NcclxuICAgICAgY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XHJcbiAgICAgICAgY29uc3QgY29sID0gY29uZmlndXJhdGlvbi5jb2x1bW5zLmZpbmQoZSA9PiBlLm9yaWdpbj8uZmllbGQgPT09IGNvbHVtbi5maWVsZCk7XHJcbiAgICAgICAgaWYgKCFjb2wpIHtcclxuICAgICAgICAgIGNvbmZpZ3VyYXRpb24uY29sdW1ucy5wdXNoKHtcclxuICAgICAgICAgICAgb3JpZ2luOiB7XHJcbiAgICAgICAgICAgICAgZmllbGQ6IGNvbHVtbi5maWVsZCxcclxuICAgICAgICAgICAgICB0aXRsZTogY29sdW1uLnRpdGxlLFxyXG4gICAgICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICAgICAgaW52aXNpYmxlOiBjb2x1bW4uaW52aXNpYmxlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbnZpc2libGU6IGNvbHVtbi5pbnZpc2libGUsXHJcbiAgICAgICAgICAgIGZpeGVkOiBmYWxzZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbC5vcmlnaW4gPSB7XHJcbiAgICAgICAgICAgIGZpZWxkOiBjb2x1bW4uZmllbGQsXHJcbiAgICAgICAgICAgIHRpdGxlOiBjb2x1bW4udGl0bGUsXHJcbiAgICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICAgIGludmlzaWJsZTogY29sdW1uLmludmlzaWJsZVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gY29uZmlndXJhdGlvbjtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAjc2V0ID0gKGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uLCBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uKSA9PiB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLiNnZXRLZXkoZ3JpZE9wdGlvbik7XHJcbiAgICBpZiAoa2V5KSB7XHJcbiAgICAgIGNvbnN0IHsgc2V0IH0gPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEdyaWRDb25maWd1cmF0aW9uPihrZXksIHtcclxuICAgICAgICB0eXBlOiBncmlkT3B0aW9uPy5jb25maWc/LnN0b3JhZ2UsXHJcbiAgICAgICAgYXJnczogZ3JpZE9wdGlvbj8uY29uZmlnPy5hcmdzXHJcbiAgICAgIH0pO1xyXG4gICAgICBzZXQoY29uZmlndXJhdGlvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjb25maWd1cmF0aW9uKSk7XHJcbiAgfVxyXG5cclxuICAjcmVtb3ZlID0gKGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uKSA9PiB7XHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBjb25zdCBrZXkgPSB0aGlzLiNnZXRLZXkoZ3JpZE9wdGlvbik7XHJcbiAgICAgIGlmIChrZXkpIHtcclxuICAgICAgICBjb25zdCB7IHJlbW92ZSB9ID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGU8U2RHcmlkQ29uZmlndXJhdGlvbj4oa2V5LCB7XHJcbiAgICAgICAgICB0eXBlOiBncmlkT3B0aW9uPy5jb25maWc/LnN0b3JhZ2UsXHJcbiAgICAgICAgICBhcmdzOiBncmlkT3B0aW9uPy5jb25maWc/LmFyZ3NcclxuICAgICAgICB9KTtcclxuICAgICAgICByZW1vdmUoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIGdldCA9IGFzeW5jIChncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbik6IFByb21pc2U8U2RHcmlkQ29uZmlndXJhdGlvbj4gPT4ge1xyXG4gIC8vICAgaWYgKCFncmlkT3B0aW9uPy5rZXkpIHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuI2dldERlZmF1bHRDb25maWd1cmF0aW9uKGdyaWRPcHRpb24pO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgY29uc3QgeyBrZXksIGNvbHVtbnMgfSA9IGdyaWRPcHRpb247XHJcbiAgLy8gICBjb25zdCBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uID0gYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXQodGhpcy4jZ2V0S2V5KGtleSkpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XHJcbiAgLy8gICBpZiAoIWNvbmZpZ3VyYXRpb24/LmNvbHVtbnMpIHtcclxuICAvLyAgICAgdGhpcy5zZXR0aW5nU2VydmljZS5yZW1vdmUodGhpcy4jZ2V0S2V5KGtleSkpLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy4jZ2V0RGVmYXVsdENvbmZpZ3VyYXRpb24oZ3JpZE9wdGlvbik7XHJcbiAgLy8gICB9XHJcbiAgLy8gICBjb25maWd1cmF0aW9uLmNvbHVtbnMgPSBjb25maWd1cmF0aW9uLmNvbHVtbnNcclxuICAvLyAgICAgLmZpbHRlcihjb2x1bW4gPT4gY29sdW1ucy5zb21lKGUgPT4gIWUuaGlkZGVuICYmIGUuZmllbGQgPT09IGNvbHVtbi5vcmlnaW4uZmllbGQpKTtcclxuICAvLyAgIC8vIFRow6ptIG5o4buvbmcgY29sdW1uIG3hu5tpIHbDoG8gc3RvcmFnZSBu4bq/dSBjw7NcclxuICAvLyAgIGNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xyXG4gIC8vICAgICBjb25zdCBjb2wgPSBjb25maWd1cmF0aW9uLmNvbHVtbnMuZmluZChlID0+IGUub3JpZ2luPy5maWVsZCA9PT0gY29sdW1uLmZpZWxkKTtcclxuICAvLyAgICAgaWYgKCFjb2wpIHtcclxuICAvLyAgICAgICBjb25maWd1cmF0aW9uLmNvbHVtbnMucHVzaCh7XHJcbiAgLy8gICAgICAgICBvcmlnaW46IHtcclxuICAvLyAgICAgICAgICAgZmllbGQ6IGNvbHVtbi5maWVsZCxcclxuICAvLyAgICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZSxcclxuICAvLyAgICAgICAgICAgd2lkdGg6IGNvbHVtbi53aWR0aCxcclxuICAvLyAgICAgICAgICAgaW52aXNpYmxlOiBjb2x1bW4uaW52aXNpYmxlLFxyXG4gIC8vICAgICAgICAgfSxcclxuICAvLyAgICAgICAgIGludmlzaWJsZTogY29sdW1uLmludmlzaWJsZSxcclxuICAvLyAgICAgICAgIGZpeGVkOiBmYWxzZVxyXG4gIC8vICAgICAgIH0pO1xyXG4gIC8vICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgIGNvbC5vcmlnaW4gPSB7XHJcbiAgLy8gICAgICAgICBmaWVsZDogY29sdW1uLmZpZWxkLFxyXG4gIC8vICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZSxcclxuICAvLyAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgLy8gICAgICAgICBpbnZpc2libGU6IGNvbHVtbi5pbnZpc2libGVcclxuICAvLyAgICAgICB9O1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9KTtcclxuICAvLyAgIHJldHVybiBjb25maWd1cmF0aW9uO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gc2V0ID0gYXN5bmMgKGtleTogc3RyaW5nLCBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uKTogUHJvbWlzZTxTZEdyaWRDb25maWd1cmF0aW9uPiA9PiB7XHJcbiAgLy8gICBpZiAoa2V5KSB7XHJcbiAgLy8gICAgIHRoaXMuc2V0dGluZ1NlcnZpY2Uuc2V0KHRoaXMuI2dldEtleShrZXkpLCBjb25maWd1cmF0aW9uKTtcclxuICAvLyAgIH1cclxuICAvLyAgIHJldHVybiBjb25maWd1cmF0aW9uO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcmVtb3ZlID0gKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgLy8gICBpZiAoa2V5KSB7XHJcbiAgLy8gICAgIHRoaXMuc2V0dGluZ1NlcnZpY2UucmVtb3ZlKHRoaXMuI2dldEtleShrZXkpKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIGdlbmVyYXRlQ29uZmlndXJhdGlvblJlc3VsdCA9IChcclxuICAgIGNvbmZpZ3VyYXRpb246IFNkR3JpZENvbmZpZ3VyYXRpb24sXHJcbiAgICBncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbixcclxuICAgIHNkU3ViSW5mb3JtYXRpb246IFNkTWF0ZXJpYWxTdWJJbmZvcm1hdGlvbkRlZkRpcmVjdGl2ZSkgPT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBTZEdyaWRDb25maWd1cmF0aW9uUmVzdWx0ID0ge1xyXG4gICAgICBjb2x1bW46IHt9LFxyXG4gICAgICBmaXhlZENvbHVtbjoge30sXHJcbiAgICAgIGZpcnN0Q29sdW1uczogW10sXHJcbiAgICAgIHNlY29uZENvbHVtbnM6IFtdLFxyXG4gICAgICBmaXJzdEhlYWRlcnM6IFtdLFxyXG4gICAgICBzZWNvbmRIZWFkZXJzOiBbXSxcclxuICAgICAgZGlzcGxheWVkQ29sdW1uczogW10sXHJcbiAgICAgIGRpc3BsYXllZEZvb3RlcnM6IFtdLFxyXG4gICAgICBtdWx0aXBsZUhlYWRlcjogZmFsc2VcclxuICAgIH07XHJcbiAgICBjb25zdCB7IHNlbGVjdGlvbiwgY29tbWFuZHMsIGVkaXRvciB9ID0gZ3JpZE9wdGlvbiB8fCB7fTtcclxuICAgIGlmIChlZGl0b3I/LmFkZGFibGUgfHwgKGVkaXRvcj8udHlwZSA9PT0gJ2lubGluZScgJiYgZWRpdG9yPy5yZW1vdmFibGUpXHJcbiAgICAgIHx8IChlZGl0b3I/LnR5cGUgPT09ICdmb2N1cycgJiYgKHR5cGVvZiAoZWRpdG9yPy5kaXNhYmxlZCkgPT09ICdmdW5jdGlvbicgfHwgIWVkaXRvcj8uZGlzYWJsZWQpKSkge1xyXG4gICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2godGhpcy4jQ09MVU1OUy5FRElUT1JWQUxJREFUSU9OKTtcclxuICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaCh0aGlzLiNDT0xVTU5TLkVESVRPUlZBTElEQVRJT04pO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlbGVjdGlvbj8udmlzaWJsZSkge1xyXG4gICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2godGhpcy4jQ09MVU1OUy5TRUxFQ1RJT04pO1xyXG4gICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKHRoaXMuI0NPTFVNTlMuU0VMRUNUSU9OKTtcclxuICAgIH1cclxuICAgIGlmIChlZGl0b3I/LmFkZGFibGUgfHwgKGVkaXRvcj8udHlwZSA9PT0gJ2lubGluZScgJiYgZWRpdG9yPy5yZW1vdmFibGUpXHJcbiAgICAgIHx8IChlZGl0b3I/LnR5cGUgPT09ICdmb2N1cycgJiYgKHR5cGVvZiAoZWRpdG9yPy5kaXNhYmxlZCkgPT09ICdmdW5jdGlvbicgfHwgIWVkaXRvcj8uZGlzYWJsZWQpKVxyXG4gICAgICB8fCAoZWRpdG9yPy50eXBlID09PSAncG9wdXAnICYmICh0eXBlb2YgKGVkaXRvcj8uZGlzYWJsZWQpID09PSAnZnVuY3Rpb24nIHx8ICFlZGl0b3I/LmRpc2FibGVkKSkpIHtcclxuICAgICAgcmVzdWx0LmZpcnN0SGVhZGVycy5wdXNoKHRoaXMuI0NPTFVNTlMuRURJVE9SKTtcclxuICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaCh0aGlzLiNDT0xVTU5TLkVESVRPUik7XHJcbiAgICB9XHJcbiAgICBpZiAoY29tbWFuZHM/Lmxlbmd0aCkge1xyXG4gICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2godGhpcy4jQ09MVU1OUy5DT01NQU5EKTtcclxuICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaCh0aGlzLiNDT0xVTU5TLkNPTU1BTkQpO1xyXG4gICAgfVxyXG4gICAgY29uZmlndXJhdGlvbj8uY29sdW1ucz8uZmlsdGVyKGNvbCA9PiAhY29sLmludmlzaWJsZSkuZm9yRWFjaChjb2wgPT4ge1xyXG4gICAgICBpZiAoY29sLmlzR2VuZXJhdGVkQ29sdW1uKSB7XHJcbiAgICAgICAgcmVzdWx0LmNvbHVtbltjb2wub3JpZ2luLmZpZWxkXSA9IHtcclxuICAgICAgICAgIHRpdGxlOiBjb2wudGl0bGUgfHwgY29sLm9yaWdpbi50aXRsZSxcclxuICAgICAgICAgIHdpZHRoOiBjb2wud2lkdGggfHwgY29sLm9yaWdpbi53aWR0aCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChjb2wuZml4ZWQpIHtcclxuICAgICAgICAgIHJlc3VsdC5maXhlZENvbHVtbltjb2wub3JpZ2luLmZpZWxkXSA9IHtcclxuICAgICAgICAgICAgdGl0bGU6IGNvbC50aXRsZSB8fCBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgICB3aWR0aDogY29sLndpZHRoIHx8IGNvbC5vcmlnaW4ud2lkdGgsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBnZW5lcmF0ZWRDb2x1bW46IFNkR3JpZE1hdGVyaWFsQ29sdW1uID0ge1xyXG4gICAgICAgICAgdHlwZTogJ2NoaWxkcmVuJyxcclxuICAgICAgICAgIGZpZWxkOiBjb2wub3JpZ2luLmZpZWxkLFxyXG4gICAgICAgICAgdGl0bGU6IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICBjaGlsZHJlbjogW11cclxuICAgICAgICB9O1xyXG4gICAgICAgIGZvciAoY29uc3Qgc3ViQ29sdW1uIG9mIGdyaWRPcHRpb24/LmNvbHVtbnMuZmlsdGVyKGUxID0+IGNvbC5nZW5lcmF0ZWRDb2x1bW5zLmluY2x1ZGVzKGUxLmZpZWxkKSkpIHtcclxuICAgICAgICAgIGlmIChzdWJDb2x1bW4udHlwZSA9PT0gJ2NoaWxkcmVuJyB8fCBzdWJDb2x1bW4udHlwZSA9PT0gJ2NoaWxkcmVuLWNvbCcpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZENvbHVtbiBvZiBzdWJDb2x1bW4uY2hpbGRyZW4pIHtcclxuICAgICAgICAgICAgICBnZW5lcmF0ZWRDb2x1bW4uY2hpbGRyZW4ucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAuLi5jaGlsZENvbHVtbixcclxuICAgICAgICAgICAgICAgIGNvbFNwYW46IDJcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmNoaWxkcmVuLnB1c2goe1xyXG4gICAgICAgICAgICAgIC4uLnN1YkNvbHVtbixcclxuICAgICAgICAgICAgICBjb2xTcGFuOiAyXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0LmZpcnN0Q29sdW1ucy5wdXNoKHtcclxuICAgICAgICAgIC4uLmdlbmVyYXRlZENvbHVtbixcclxuICAgICAgICAgIHRpdGxlOiBjb2wudGl0bGUgfHwgY29sLm9yaWdpbi50aXRsZSxcclxuICAgICAgICAgIHdpZHRoOiBjb2wud2lkdGggfHwgY29sLm9yaWdpbi53aWR0aFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJlc3VsdC5maXJzdEhlYWRlcnMucHVzaChjb2wub3JpZ2luLmZpZWxkKTtcclxuICAgICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKGNvbC5vcmlnaW4uZmllbGQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBjb2x1bW4gPSBncmlkT3B0aW9uPy5jb2x1bW5zLmZpbmQoZSA9PiBlLmZpZWxkID09PSBjb2wub3JpZ2luLmZpZWxkKTtcclxuICAgICAgaWYgKGNvbHVtbikge1xyXG4gICAgICAgIHJlc3VsdC5jb2x1bW5bY29sLm9yaWdpbi5maWVsZF0gPSB7XHJcbiAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICB3aWR0aDogY29sLndpZHRoIHx8IGNvbC5vcmlnaW4ud2lkdGgsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoY29sLmZpeGVkKSB7XHJcbiAgICAgICAgICByZXN1bHQuZml4ZWRDb2x1bW5bY29sLm9yaWdpbi5maWVsZF0gPSB7XHJcbiAgICAgICAgICAgIHRpdGxlOiBjb2wudGl0bGUgfHwgY29sLm9yaWdpbi50aXRsZSxcclxuICAgICAgICAgICAgd2lkdGg6IGNvbC53aWR0aCB8fCBjb2wub3JpZ2luLndpZHRoLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0LmZpcnN0Q29sdW1ucy5wdXNoKHtcclxuICAgICAgICAgIC4uLmNvbHVtbixcclxuICAgICAgICAgIHRpdGxlOiBjb2wudGl0bGUgfHwgY29sLm9yaWdpbi50aXRsZSxcclxuICAgICAgICAgIHdpZHRoOiBjb2wud2lkdGggfHwgY29sLm9yaWdpbi53aWR0aFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJlc3VsdC5maXJzdEhlYWRlcnMucHVzaChjb2wub3JpZ2luLmZpZWxkKTtcclxuICAgICAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdjaGlsZHJlbi1jb2wnKSB7XHJcbiAgICAgICAgICBjb2x1bW4uY2hpbGRyZW4/LmZvckVhY2goY2hpbGRDb2x1bW4gPT4ge1xyXG4gICAgICAgICAgICByZXN1bHQuc2Vjb25kQ29sdW1ucy5wdXNoKGNoaWxkQ29sdW1uKTtcclxuICAgICAgICAgICAgcmVzdWx0LnNlY29uZEhlYWRlcnMucHVzaChjaGlsZENvbHVtbi5maWVsZCk7XHJcbiAgICAgICAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goY2hpbGRDb2x1bW4uZmllbGQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goY29sLm9yaWdpbi5maWVsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChzZFN1YkluZm9ybWF0aW9uPy50ZW1wbGF0ZVJlZikge1xyXG4gICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2godGhpcy4jQ09MVU1OUy5TVUJJTkZPUk1BVElPTik7XHJcbiAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2godGhpcy4jQ09MVU1OUy5TVUJJTkZPUk1BVElPTik7XHJcbiAgICB9XHJcbiAgICByZXN1bHQubXVsdGlwbGVIZWFkZXIgPSByZXN1bHQuc2Vjb25kSGVhZGVycy5sZW5ndGggPiAwO1xyXG4gICAgLy8gU3ViIGluZm9tYXRpb24ga2jDtG5nIHRo4buDIGPDsyBmb290ZXJcclxuICAgIHJlc3VsdC5kaXNwbGF5ZWRGb290ZXJzID0gcmVzdWx0LmRpc3BsYXllZENvbHVtbnMuZmlsdGVyKHZhbCA9PiB2YWwgIT09IHRoaXMuI0NPTFVNTlMuU1VCSU5GT1JNQVRJT04pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuIl19
|
|
353
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9zZXJ2aWNlcy9ncmlkLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsb0JBQW9CLEVBQWdDLE1BQU0sb0NBQW9DLENBQUM7QUFHeEcsTUFBTSxPQUFPLDBCQUEwQjtJQVdyQyxZQUNVLGNBQWdDLEVBQ1MseUJBQXVEO1FBRGhHLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNTLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBOEI7UUFaMUcsbUJBQVc7WUFDVCxnQkFBZ0IsRUFBRSxvQkFBb0I7WUFDdEMsTUFBTSxFQUFFLFVBQVU7WUFDbEIsY0FBYyxFQUFFLHdCQUF3QjtZQUN4QyxPQUFPLEVBQUUsV0FBVztZQUNwQixTQUFTLEVBQUUsYUFBYTtTQUN6QixFQUFDO1FBQ0YsaUJBRUksRUFBRSxFQUFDO1FBTVAsU0FBSSxHQUFHLENBQUMsR0FBVyxFQUFFLFVBQWdDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMscUNBQVksR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO2dCQUNuRCxxQ0FBWSxHQUFHLENBQUMsR0FBRztvQkFDakIsSUFBSSxFQUFFLHlDQUFBLElBQUksRUFBTyxVQUFVLEVBQUUsT0FBTyxDQUFDO29CQUNyQyxHQUFHLEVBQUUsd0NBQUEsSUFBSSxFQUFNLFVBQVUsQ0FBQztvQkFDMUIsR0FBRyxFQUFFLENBQUMsYUFBa0MsRUFBRSxFQUFFO3dCQUMxQyxhQUFhLEdBQUcsd0NBQUEsSUFBSSxFQUFNLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQzt3QkFDckQsT0FBTyxDQUFDLElBQUksbUJBQU0sYUFBYSxFQUFHLENBQUM7d0JBQ25DLE9BQU8sYUFBYSxDQUFDO29CQUN2QixDQUFDO29CQUNELE1BQU0sRUFBRSxHQUFHLEVBQUU7d0JBQ1gsMkNBQUEsSUFBSSxFQUFTLFVBQVUsQ0FBQyxFQUFFLENBQUM7d0JBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsNENBQUEsSUFBSSxFQUFVLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQzFDLENBQUM7b0JBQ0QsUUFBUSxFQUFFLE9BQU87aUJBQ2xCLENBQUM7YUFDSDtZQUNELE9BQU8scUNBQVksR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFBO1FBRUQsa0JBQVUsQ0FBQyxVQUFnQyxFQUFFLEVBQUU7O1lBQzdDLE1BQU0sTUFBTSxHQUFHLHNDQUFzQyxDQUFDO1lBQ3RELElBQUksUUFBQyxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsTUFBTSwwQ0FBRSxHQUFHLENBQUEsSUFBSSxFQUFDLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxHQUFHLENBQUEsRUFBRTtnQkFDaEQsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELE9BQU8sSUFBSSxDQUFDO2dCQUNWLE1BQU07Z0JBQ04sR0FBRyxFQUFFLE9BQUEsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLE1BQU0sMENBQUUsR0FBRyxLQUFJLEVBQUMsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLEdBQUcsQ0FBQTthQUNqRCxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUE7UUFFRCxtQkFBVyxDQUFDLFVBQWdDLEVBQXVCLEVBQUU7O1lBQ25FLE1BQU0sT0FBTyxHQUE0QixPQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxPQUFPLDBDQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RixNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO29CQUNkLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztvQkFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7b0JBQ2QsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTO2lCQUN2QjtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3RCLEtBQUssRUFBRSxLQUFLO2FBQ2IsQ0FBQyxNQUFLLEVBQUUsQ0FBQztZQUNWLE9BQU87Z0JBQ0wsT0FBTzthQUNSLENBQUM7UUFDSixDQUFDLEVBQUE7UUFFRCxnQkFBUSxDQUFDLFVBQWdDLEVBQUUsT0FBcUMsRUFBRSxFQUFFO1lBQ2xGLE9BQU8sR0FBUyxFQUFFO2dCQUNoQixNQUFNLEdBQUcsR0FBRyx3Q0FBQSxJQUFJLEVBQU0sVUFBVSxDQUFDLENBQUM7Z0JBQ2xDLE1BQU0sYUFBYSxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxJQUFJLG1CQUFNLGFBQWEsRUFBRyxDQUFDO1lBQ3JDLENBQUMsQ0FBQSxDQUFDO1FBQ0osQ0FBQyxFQUFBO1FBRUQsZUFBTyxDQUFDLFVBQWdDLEVBQUUsRUFBRTtZQUMxQyxPQUFPLEdBQVMsRUFBRTtnQkFDaEIsTUFBTSxHQUFHLEdBQUcsMkNBQUEsSUFBSSxFQUFTLFVBQVUsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNSLE9BQU8sNENBQUEsSUFBSSxFQUFVLFVBQVUsQ0FBQyxDQUFDO2lCQUNsQztnQkFDRCxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQztnQkFDdkMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBc0IsR0FBRyxFQUFFO29CQUMzRSxJQUFJLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU87b0JBQ3JCLElBQUksRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSTtpQkFDbkIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sYUFBYSxHQUF3QixNQUFNLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDOUUsSUFBSSxFQUFDLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxPQUFPLENBQUEsRUFBRTtvQkFDM0IsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDOUIsT0FBTyw0Q0FBQSxJQUFJLEVBQVUsVUFBVSxDQUFDLENBQUM7aUJBQ2xDO2dCQUNELGFBQWEsQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDLE9BQU87cUJBQzFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNqSCwyQ0FBMkM7Z0JBQzNDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQ3ZCLE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQUMsT0FBQSxPQUFBLENBQUMsQ0FBQyxNQUFNLDBDQUFFLEtBQUssTUFBSyxNQUFNLENBQUMsS0FBSyxDQUFBLEVBQUEsQ0FBQyxDQUFDO29CQUM5RSxJQUFJLENBQUMsR0FBRyxFQUFFO3dCQUNSLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDOzRCQUN6QixNQUFNLEVBQUU7Z0NBQ04sS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2dDQUNuQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0NBQ25CLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQ0FDbkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTOzZCQUM1Qjs0QkFDRCxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7NEJBQzNCLEtBQUssRUFBRSxLQUFLO3lCQUNiLENBQUMsQ0FBQztxQkFDSjt5QkFBTTt3QkFDTCxHQUFHLENBQUMsTUFBTSxHQUFHOzRCQUNYLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSzs0QkFDbkIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLOzRCQUNuQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7NEJBQ25CLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUzt5QkFDNUIsQ0FBQztxQkFDSDtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLGFBQWEsQ0FBQztZQUN2QixDQUFDLENBQUEsQ0FBQztRQUNKLENBQUMsRUFBQTtRQUVELGVBQU8sQ0FBQyxVQUFnQyxFQUFFLGFBQWtDLEVBQUUsRUFBRTs7WUFDOUUsTUFBTSxHQUFHLEdBQUcsMkNBQUEsSUFBSSxFQUFTLFVBQVUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksR0FBRyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBc0IsR0FBRyxFQUFFO29CQUNuRSxJQUFJLFFBQUUsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLE1BQU0sMENBQUUsT0FBTztvQkFDakMsSUFBSSxRQUFFLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxNQUFNLDBDQUFFLElBQUk7aUJBQy9CLENBQUMsQ0FBQztnQkFDSCxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDcEI7WUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUMsRUFBQTtRQUVELGtCQUFVLENBQUMsVUFBZ0MsRUFBRSxFQUFFO1lBQzdDLE9BQU8sR0FBRyxFQUFFOztnQkFDVixNQUFNLEdBQUcsR0FBRywyQ0FBQSxJQUFJLEVBQVMsVUFBVSxDQUFDLENBQUM7Z0JBQ3JDLElBQUksR0FBRyxFQUFFO29CQUNQLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBc0IsR0FBRyxFQUFFO3dCQUN0RSxJQUFJLFFBQUUsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLE1BQU0sMENBQUUsT0FBTzt3QkFDakMsSUFBSSxRQUFFLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxNQUFNLDBDQUFFLElBQUk7cUJBQy9CLENBQUMsQ0FBQztvQkFDSCxNQUFNLEVBQUUsQ0FBQztpQkFDVjtZQUNILENBQUMsQ0FBQztRQUNKLENBQUM7UUFFRCxvRkFBb0Y7UUFDcEYsNEJBQTRCO1FBQzVCLHdEQUF3RDtRQUN4RCxNQUFNO1FBQ04seUNBQXlDO1FBQ3pDLHdIQUF3SDtRQUN4SCxtQ0FBbUM7UUFDbkMsMEVBQTBFO1FBQzFFLHdEQUF3RDtRQUN4RCxNQUFNO1FBQ04sa0RBQWtEO1FBQ2xELDBGQUEwRjtRQUMxRixnREFBZ0Q7UUFDaEQsZ0NBQWdDO1FBQ2hDLHFGQUFxRjtRQUNyRixrQkFBa0I7UUFDbEIscUNBQXFDO1FBQ3JDLG9CQUFvQjtRQUNwQixpQ0FBaUM7UUFDakMsaUNBQWlDO1FBQ2pDLGlDQUFpQztRQUNqQyx5Q0FBeUM7UUFDekMsYUFBYTtRQUNiLHVDQUF1QztRQUN2Qyx1QkFBdUI7UUFDdkIsWUFBWTtRQUNaLGVBQWU7UUFDZix1QkFBdUI7UUFDdkIsK0JBQStCO1FBQy9CLCtCQUErQjtRQUMvQiwrQkFBK0I7UUFDL0Isc0NBQXNDO1FBQ3RDLFdBQVc7UUFDWCxRQUFRO1FBQ1IsUUFBUTtRQUNSLDBCQUEwQjtRQUMxQixJQUFJO1FBRUosbUdBQW1HO1FBQ25HLGVBQWU7UUFDZixpRUFBaUU7UUFDakUsTUFBTTtRQUNOLDBCQUEwQjtRQUMxQixJQUFJO1FBRUosOEJBQThCO1FBQzlCLGVBQWU7UUFDZixxREFBcUQ7UUFDckQsTUFBTTtRQUNOLElBQUk7VUFuREg7UUFFRCxvRkFBb0Y7UUFDcEYsNEJBQTRCO1FBQzVCLHdEQUF3RDtRQUN4RCxNQUFNO1FBQ04seUNBQXlDO1FBQ3pDLHdIQUF3SDtRQUN4SCxtQ0FBbUM7UUFDbkMsMEVBQTBFO1FBQzFFLHdEQUF3RDtRQUN4RCxNQUFNO1FBQ04sa0RBQWtEO1FBQ2xELDBGQUEwRjtRQUMxRixnREFBZ0Q7UUFDaEQsZ0NBQWdDO1FBQ2hDLHFGQUFxRjtRQUNyRixrQkFBa0I7UUFDbEIscUNBQXFDO1FBQ3JDLG9CQUFvQjtRQUNwQixpQ0FBaUM7UUFDakMsaUNBQWlDO1FBQ2pDLGlDQUFpQztRQUNqQyx5Q0FBeUM7UUFDekMsYUFBYTtRQUNiLHVDQUF1QztRQUN2Qyx1QkFBdUI7UUFDdkIsWUFBWTtRQUNaLGVBQWU7UUFDZix1QkFBdUI7UUFDdkIsK0JBQStCO1FBQy9CLCtCQUErQjtRQUMvQiwrQkFBK0I7UUFDL0Isc0NBQXNDO1FBQ3RDLFdBQVc7UUFDWCxRQUFRO1FBQ1IsUUFBUTtRQUNSLDBCQUEwQjtRQUMxQixJQUFJO1FBRUosbUdBQW1HO1FBQ25HLGVBQWU7UUFDZixpRUFBaUU7UUFDakUsTUFBTTtRQUNOLDBCQUEwQjtRQUMxQixJQUFJO1FBRUosOEJBQThCO1FBQzlCLGVBQWU7UUFDZixxREFBcUQ7UUFDckQsTUFBTTtRQUNOLElBQUk7UUFFSixnQ0FBMkIsR0FBRyxDQUM1QixhQUFrQyxFQUNsQyxVQUFnQyxFQUNoQyxnQkFBc0QsRUFBRSxFQUFFOztZQUMxRCxNQUFNLE1BQU0sR0FBOEI7Z0JBQ3hDLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFdBQVcsRUFBRSxFQUFFO2dCQUNmLFlBQVksRUFBRSxFQUFFO2dCQUNoQixhQUFhLEVBQUUsRUFBRTtnQkFDakIsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLGFBQWEsRUFBRSxFQUFFO2dCQUNqQixnQkFBZ0IsRUFBRSxFQUFFO2dCQUNwQixnQkFBZ0IsRUFBRSxFQUFFO2dCQUNwQixjQUFjLEVBQUUsS0FBSzthQUN0QixDQUFDO1lBQ0YsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU8sS0FBSSxDQUFDLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLElBQUksTUFBSyxRQUFRLElBQUksQ0FBQyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLEtBQUksT0FBTyxDQUFDLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxRQUFRLENBQUMsS0FBSyxVQUFVLElBQUksRUFBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFBLENBQUMsQ0FBQzttQkFDckksQ0FBQyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxJQUFJLE1BQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxRQUFRLENBQUMsS0FBSyxVQUFVLElBQUksRUFBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFBLENBQUMsQ0FBQyxFQUFFO2dCQUNsRyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyx1Q0FBYyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN6RCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLHVDQUFjLGdCQUFnQixDQUFDLENBQUM7YUFDOUQ7WUFDRCxJQUFJLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxPQUFPLEVBQUU7Z0JBQ3RCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHVDQUFjLFNBQVMsQ0FBQyxDQUFDO2dCQUNsRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLHVDQUFjLFNBQVMsQ0FBQyxDQUFDO2FBQ3ZEO1lBQ0QsSUFBSSxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxPQUFPLEtBQUksQ0FBQyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxJQUFJLE1BQUssUUFBUSxJQUFJLENBQUMsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsU0FBUyxLQUFJLE9BQU8sQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFDLEtBQUssVUFBVSxJQUFJLEVBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsQ0FBQSxDQUFDLENBQUM7bUJBQ3JJLENBQUMsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSxNQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFDLEtBQUssVUFBVSxJQUFJLEVBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsQ0FBQSxDQUFDLENBQUM7bUJBQzdGLENBQUMsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSxNQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFDLEtBQUssVUFBVSxJQUFJLEVBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsQ0FBQSxDQUFDLENBQUMsRUFBRTtnQkFDbEcsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsdUNBQWMsTUFBTSxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsdUNBQWMsTUFBTSxDQUFDLENBQUM7YUFDcEQ7WUFDRCxJQUFJLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxNQUFNLEVBQUU7Z0JBQ3BCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHVDQUFjLE9BQU8sQ0FBQyxDQUFDO2dCQUNoRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLHVDQUFjLE9BQU8sQ0FBQyxDQUFDO2FBQ3JEO1lBQ0QsTUFBQSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsT0FBTywwQ0FBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFOztnQkFDbEUsSUFBSSxHQUFHLENBQUMsaUJBQWlCLEVBQUU7b0JBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRzt3QkFDaEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO3dCQUNwQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7cUJBQ3JDLENBQUM7b0JBQ0YsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO3dCQUNiLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRzs0QkFDckMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLOzRCQUNwQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7eUJBQ3JDLENBQUM7cUJBQ0g7b0JBQ0QsTUFBTSxlQUFlLEdBQXlCO3dCQUM1QyxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSzt3QkFDdkIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSzt3QkFDdkIsUUFBUSxFQUFFLEVBQUU7cUJBQ2IsQ0FBQztvQkFDRixLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUc7d0JBQ2pHLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxjQUFjLEVBQUU7NEJBQ3RFLEtBQUssTUFBTSxXQUFXLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtnQ0FDNUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGlDQUN4QixXQUFXLEtBQ2QsT0FBTyxFQUFFLENBQUMsSUFDVixDQUFDOzZCQUNKO3lCQUNGOzZCQUFNOzRCQUNMLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxpQ0FDeEIsU0FBUyxLQUNaLE9BQU8sRUFBRSxDQUFDLElBQ1YsQ0FBQzt5QkFDSjtxQkFFRjtvQkFDRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksaUNBQ25CLGVBQWUsS0FDbEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ3BDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUNwQyxDQUFDO29CQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzNDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0MsT0FBTztpQkFDUjtnQkFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0UsSUFBSSxNQUFNLEVBQUU7b0JBQ1YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHO3dCQUNoQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7d0JBQ3BDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztxQkFDckMsQ0FBQztvQkFDRixJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7d0JBQ2IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHOzRCQUNyQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7NEJBQ3BDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSzt5QkFDckMsQ0FBQztxQkFDSDtvQkFDRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksaUNBQ25CLE1BQU0sS0FDVCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFDcEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQ3BDLENBQUM7b0JBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDM0MsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRTt3QkFDbEMsTUFBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7NEJBQ3JDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDOzRCQUN2QyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQzdDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNsRCxDQUFDLEVBQUU7cUJBQ0o7eUJBQU07d0JBQ0wsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNoRDtpQkFDRjtZQUNILENBQUMsRUFBRTtZQUNILElBQUksZ0JBQWdCLGFBQWhCLGdCQUFnQix1QkFBaEIsZ0JBQWdCLENBQUUsV0FBVyxFQUFFO2dCQUNqQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyx1Q0FBYyxjQUFjLENBQUMsQ0FBQztnQkFDdkQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyx1Q0FBYyxjQUFjLENBQUMsQ0FBQzthQUM1RDtZQUNELE1BQU0sQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3hELHFDQUFxQztZQUNyQyxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyx1Q0FBYyxjQUFjLENBQUMsQ0FBQztZQUN0RyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUE7SUF0U0QsQ0FBQzs7OztZQWZGLFVBQVU7OztZQVJGLGdCQUFnQjs0Q0FzQnBCLE1BQU0sU0FBQyxvQkFBb0IsY0FBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgaGFzaCBmcm9tICdvYmplY3QtaGFzaCc7XHJcbmltcG9ydCB7IFNkU2V0dGluZ1NlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3NldHRpbmcnO1xyXG5pbXBvcnQgeyBTZEdyaWRNYXRlcmlhbE9wdGlvbiB9IGZyb20gJy4uL21vZGVscy9ncmlkLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNkQ29sdW1uQ29uZmlndXJhdGlvbiwgU2RHcmlkQ29uZmlndXJhdGlvbiwgU2RHcmlkQ29uZmlndXJhdGlvbkNhY2hlLCBTZEdyaWRDb25maWd1cmF0aW9uUmVzdWx0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgU2RNYXRlcmlhbFN1YkluZm9ybWF0aW9uRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9zZC1tYXRlcmlhbC1zdWItaW5mb3JtYXRpb24tZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RHcmlkTWF0ZXJpYWxDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvZ3JpZC1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBHUklEX01BVEVSSUFMX0NPTkZJRywgSVNkR3JpZE1hdGVyaWFsQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy9ncmlkLWNvbmZpZ3VyYXRpb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2RHcmlkQ29uZmlndXJhdGlvblNlcnZpY2Uge1xyXG4gICNDT0xVTU5TID0ge1xyXG4gICAgRURJVE9SVkFMSURBVElPTjogJ3NkRWRpdG9yVmFsaWRhdGlvbicsXHJcbiAgICBFRElUT1I6ICdzZEVkaXRvcicsXHJcbiAgICBTVUJJTkZPUk1BVElPTjogJ3NkU3ViSW5mb3JtYXRpb25BY3Rpb24nLFxyXG4gICAgQ09NTUFORDogJ3NkQ29tbWFuZCcsXHJcbiAgICBTRUxFQ1RJT046ICdzZFNlbGVjdGlvbidcclxuICB9O1xyXG4gICNjYWNoZToge1xyXG4gICAgW2tleTogc3RyaW5nXTogU2RHcmlkQ29uZmlndXJhdGlvbkNhY2hlXHJcbiAgfSA9IHt9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXR0aW5nU2VydmljZTogU2RTZXR0aW5nU2VydmljZSxcclxuICAgIEBJbmplY3QoR1JJRF9NQVRFUklBTF9DT05GSUcpIEBPcHRpb25hbCgpIHB1YmxpYyBncmlkTWF0ZXJpYWxDb25maWd1cmF0aW9uOiBJU2RHcmlkTWF0ZXJpYWxDb25maWd1cmF0aW9uKSB7XHJcbiAgfVxyXG5cclxuICBpbml0ID0gKGtleTogc3RyaW5nLCBncmlkT3B0aW9uOiBTZEdyaWRNYXRlcmlhbE9wdGlvbikgPT4ge1xyXG4gICAgaWYgKCF0aGlzLiNjYWNoZVtrZXldKSB7XHJcbiAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxTZEdyaWRDb25maWd1cmF0aW9uPigpO1xyXG4gICAgICB0aGlzLiNjYWNoZVtrZXldID0ge1xyXG4gICAgICAgIGxvYWQ6IHRoaXMuI2xvYWQoZ3JpZE9wdGlvbiwgc3ViamVjdCksXHJcbiAgICAgICAgZ2V0OiB0aGlzLiNnZXQoZ3JpZE9wdGlvbiksXHJcbiAgICAgICAgc2V0OiAoY29uZmlndXJhdGlvbjogU2RHcmlkQ29uZmlndXJhdGlvbikgPT4ge1xyXG4gICAgICAgICAgY29uZmlndXJhdGlvbiA9IHRoaXMuI3NldChncmlkT3B0aW9uLCBjb25maWd1cmF0aW9uKTtcclxuICAgICAgICAgIHN1YmplY3QubmV4dCh7IC4uLmNvbmZpZ3VyYXRpb24gfSk7XHJcbiAgICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbjtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlbW92ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy4jcmVtb3ZlKGdyaWRPcHRpb24pKCk7XHJcbiAgICAgICAgICBzdWJqZWN0Lm5leHQodGhpcy4jZGVmYXVsdChncmlkT3B0aW9uKSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvYnNlcnZlcjogc3ViamVjdFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuI2NhY2hlW2tleV07XHJcbiAgfVxyXG5cclxuICAjZ2V0S2V5ID0gKGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uKSA9PiB7XHJcbiAgICBjb25zdCBwcmVmaXggPSAnYzllOTQ4MzYtNmFjZS00YWViLWIxNDgtNGYwYmU2MzU4OWVlJztcclxuICAgIGlmICghZ3JpZE9wdGlvbj8uY29uZmlnPy5rZXkgJiYgIWdyaWRPcHRpb24/LmtleSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBoYXNoKHtcclxuICAgICAgcHJlZml4LFxyXG4gICAgICBrZXk6IGdyaWRPcHRpb24/LmNvbmZpZz8ua2V5IHx8ICFncmlkT3B0aW9uPy5rZXlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgI2RlZmF1bHQgPSAoZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb24pOiBTZEdyaWRDb25maWd1cmF0aW9uID0+IHtcclxuICAgIGNvbnN0IGNvbHVtbnM6IFNkQ29sdW1uQ29uZmlndXJhdGlvbltdID0gZ3JpZE9wdGlvbj8uY29sdW1ucz8uZmlsdGVyKGUgPT4gIWUuaGlkZGVuKS5tYXAoZSA9PiAoe1xyXG4gICAgICBvcmlnaW46IHtcclxuICAgICAgICBmaWVsZDogZS5maWVsZCxcclxuICAgICAgICB0aXRsZTogZS50aXRsZSxcclxuICAgICAgICB3aWR0aDogZS53aWR0aCxcclxuICAgICAgICBpbnZpc2libGU6IGUuaW52aXNpYmxlXHJcbiAgICAgIH0sXHJcbiAgICAgIGludmlzaWJsZTogZS5pbnZpc2libGUsXHJcbiAgICAgIGZpeGVkOiBmYWxzZVxyXG4gICAgfSkpIHx8IFtdO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY29sdW1uc1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gICNsb2FkID0gKGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uLCBzdWJqZWN0OiBTdWJqZWN0PFNkR3JpZENvbmZpZ3VyYXRpb24+KSA9PiB7XHJcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xyXG4gICAgICBjb25zdCBnZXQgPSB0aGlzLiNnZXQoZ3JpZE9wdGlvbik7XHJcbiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBnZXQoKTtcclxuICAgICAgc3ViamVjdC5uZXh0KHsgLi4uY29uZmlndXJhdGlvbiB9KTtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAjZ2V0ID0gKGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uKSA9PiB7XHJcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xyXG4gICAgICBjb25zdCBrZXkgPSB0aGlzLiNnZXRLZXkoZ3JpZE9wdGlvbik7XHJcbiAgICAgIGlmICgha2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2RlZmF1bHQoZ3JpZE9wdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgeyBjb2x1bW5zLCBjb25maWcgfSA9IGdyaWRPcHRpb247XHJcbiAgICAgIGNvbnN0IHsgZ2V0LCByZW1vdmUgfSA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPFNkR3JpZENvbmZpZ3VyYXRpb24+KGtleSwge1xyXG4gICAgICAgIHR5cGU6IGNvbmZpZz8uc3RvcmFnZSxcclxuICAgICAgICBhcmdzOiBjb25maWc/LmFyZ3NcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IFNkR3JpZENvbmZpZ3VyYXRpb24gPSBhd2FpdCBnZXQoKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xyXG4gICAgICBpZiAoIWNvbmZpZ3VyYXRpb24/LmNvbHVtbnMpIHtcclxuICAgICAgICByZW1vdmUoKS5jYXRjaChjb25zb2xlLmVycm9yKTtcclxuICAgICAgICByZXR1cm4gdGhpcy4jZGVmYXVsdChncmlkT3B0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBjb25maWd1cmF0aW9uLmNvbHVtbnMgPSBjb25maWd1cmF0aW9uLmNvbHVtbnNcclxuICAgICAgICAuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4uaXNHZW5lcmF0ZWRDb2x1bW4gfHwgY29sdW1ucy5zb21lKGUgPT4gIWUuaGlkZGVuICYmIGUuZmllbGQgPT09IGNvbHVtbi5vcmlnaW4uZmllbGQpKTtcclxuICAgICAgLy8gVGjDqm0gbmjhu69uZyBjb2x1bW4gbeG7m2kgdsOgbyBzdG9yYWdlIG7hur91IGPDs1xyXG4gICAgICBjb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcclxuICAgICAgICBjb25zdCBjb2wgPSBjb25maWd1cmF0aW9uLmNvbHVtbnMuZmluZChlID0+IGUub3JpZ2luPy5maWVsZCA9PT0gY29sdW1uLmZpZWxkKTtcclxuICAgICAgICBpZiAoIWNvbCkge1xyXG4gICAgICAgICAgY29uZmlndXJhdGlvbi5jb2x1bW5zLnB1c2goe1xyXG4gICAgICAgICAgICBvcmlnaW46IHtcclxuICAgICAgICAgICAgICBmaWVsZDogY29sdW1uLmZpZWxkLFxyXG4gICAgICAgICAgICAgIHRpdGxlOiBjb2x1bW4udGl0bGUsXHJcbiAgICAgICAgICAgICAgd2lkdGg6IGNvbHVtbi53aWR0aCxcclxuICAgICAgICAgICAgICBpbnZpc2libGU6IGNvbHVtbi5pbnZpc2libGUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGludmlzaWJsZTogY29sdW1uLmludmlzaWJsZSxcclxuICAgICAgICAgICAgZml4ZWQ6IGZhbHNlXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29sLm9yaWdpbiA9IHtcclxuICAgICAgICAgICAgZmllbGQ6IGNvbHVtbi5maWVsZCxcclxuICAgICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZSxcclxuICAgICAgICAgICAgd2lkdGg6IGNvbHVtbi53aWR0aCxcclxuICAgICAgICAgICAgaW52aXNpYmxlOiBjb2x1bW4uaW52aXNpYmxlXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBjb25maWd1cmF0aW9uO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gICNzZXQgPSAoZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb24sIGNvbmZpZ3VyYXRpb246IFNkR3JpZENvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuI2dldEtleShncmlkT3B0aW9uKTtcclxuICAgIGlmIChrZXkpIHtcclxuICAgICAgY29uc3QgeyBzZXQgfSA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPFNkR3JpZENvbmZpZ3VyYXRpb24+KGtleSwge1xyXG4gICAgICAgIHR5cGU6IGdyaWRPcHRpb24/LmNvbmZpZz8uc3RvcmFnZSxcclxuICAgICAgICBhcmdzOiBncmlkT3B0aW9uPy5jb25maWc/LmFyZ3NcclxuICAgICAgfSk7XHJcbiAgICAgIHNldChjb25maWd1cmF0aW9uKTtcclxuICAgIH1cclxuICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbmZpZ3VyYXRpb24pKTtcclxuICB9XHJcblxyXG4gICNyZW1vdmUgPSAoZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb24pID0+IHtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGtleSA9IHRoaXMuI2dldEtleShncmlkT3B0aW9uKTtcclxuICAgICAgaWYgKGtleSkge1xyXG4gICAgICAgIGNvbnN0IHsgcmVtb3ZlIH0gPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEdyaWRDb25maWd1cmF0aW9uPihrZXksIHtcclxuICAgICAgICAgIHR5cGU6IGdyaWRPcHRpb24/LmNvbmZpZz8uc3RvcmFnZSxcclxuICAgICAgICAgIGFyZ3M6IGdyaWRPcHRpb24/LmNvbmZpZz8uYXJnc1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJlbW92ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gZ2V0ID0gYXN5bmMgKGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uKTogUHJvbWlzZTxTZEdyaWRDb25maWd1cmF0aW9uPiA9PiB7XHJcbiAgLy8gICBpZiAoIWdyaWRPcHRpb24/LmtleSkge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy4jZ2V0RGVmYXVsdENvbmZpZ3VyYXRpb24oZ3JpZE9wdGlvbik7XHJcbiAgLy8gICB9XHJcbiAgLy8gICBjb25zdCB7IGtleSwgY29sdW1ucyB9ID0gZ3JpZE9wdGlvbjtcclxuICAvLyAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IFNkR3JpZENvbmZpZ3VyYXRpb24gPSBhd2FpdCB0aGlzLnNldHRpbmdTZXJ2aWNlLmdldCh0aGlzLiNnZXRLZXkoa2V5KSkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcclxuICAvLyAgIGlmICghY29uZmlndXJhdGlvbj8uY29sdW1ucykge1xyXG4gIC8vICAgICB0aGlzLnNldHRpbmdTZXJ2aWNlLnJlbW92ZSh0aGlzLiNnZXRLZXkoa2V5KSkuY2F0Y2goY29uc29sZS5lcnJvcik7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLiNnZXREZWZhdWx0Q29uZmlndXJhdGlvbihncmlkT3B0aW9uKTtcclxuICAvLyAgIH1cclxuICAvLyAgIGNvbmZpZ3VyYXRpb24uY29sdW1ucyA9IGNvbmZpZ3VyYXRpb24uY29sdW1uc1xyXG4gIC8vICAgICAuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW5zLnNvbWUoZSA9PiAhZS5oaWRkZW4gJiYgZS5maWVsZCA9PT0gY29sdW1uLm9yaWdpbi5maWVsZCkpO1xyXG4gIC8vICAgLy8gVGjDqm0gbmjhu69uZyBjb2x1bW4gbeG7m2kgdsOgbyBzdG9yYWdlIG7hur91IGPDs1xyXG4gIC8vICAgY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XHJcbiAgLy8gICAgIGNvbnN0IGNvbCA9IGNvbmZpZ3VyYXRpb24uY29sdW1ucy5maW5kKGUgPT4gZS5vcmlnaW4/LmZpZWxkID09PSBjb2x1bW4uZmllbGQpO1xyXG4gIC8vICAgICBpZiAoIWNvbCkge1xyXG4gIC8vICAgICAgIGNvbmZpZ3VyYXRpb24uY29sdW1ucy5wdXNoKHtcclxuICAvLyAgICAgICAgIG9yaWdpbjoge1xyXG4gIC8vICAgICAgICAgICBmaWVsZDogY29sdW1uLmZpZWxkLFxyXG4gIC8vICAgICAgICAgICB0aXRsZTogY29sdW1uLnRpdGxlLFxyXG4gIC8vICAgICAgICAgICB3aWR0aDogY29sdW1uLndpZHRoLFxyXG4gIC8vICAgICAgICAgICBpbnZpc2libGU6IGNvbHVtbi5pbnZpc2libGUsXHJcbiAgLy8gICAgICAgICB9LFxyXG4gIC8vICAgICAgICAgaW52aXNpYmxlOiBjb2x1bW4uaW52aXNpYmxlLFxyXG4gIC8vICAgICAgICAgZml4ZWQ6IGZhbHNlXHJcbiAgLy8gICAgICAgfSk7XHJcbiAgLy8gICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgY29sLm9yaWdpbiA9IHtcclxuICAvLyAgICAgICAgIGZpZWxkOiBjb2x1bW4uZmllbGQsXHJcbiAgLy8gICAgICAgICB0aXRsZTogY29sdW1uLnRpdGxlLFxyXG4gIC8vICAgICAgICAgd2lkdGg6IGNvbHVtbi53aWR0aCxcclxuICAvLyAgICAgICAgIGludmlzaWJsZTogY29sdW1uLmludmlzaWJsZVxyXG4gIC8vICAgICAgIH07XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0pO1xyXG4gIC8vICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247XHJcbiAgLy8gfVxyXG5cclxuICAvLyBzZXQgPSBhc3luYyAoa2V5OiBzdHJpbmcsIGNvbmZpZ3VyYXRpb246IFNkR3JpZENvbmZpZ3VyYXRpb24pOiBQcm9taXNlPFNkR3JpZENvbmZpZ3VyYXRpb24+ID0+IHtcclxuICAvLyAgIGlmIChrZXkpIHtcclxuICAvLyAgICAgdGhpcy5zZXR0aW5nU2VydmljZS5zZXQodGhpcy4jZ2V0S2V5KGtleSksIGNvbmZpZ3VyYXRpb24pO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247XHJcbiAgLy8gfVxyXG5cclxuICAvLyByZW1vdmUgPSAoa2V5OiBzdHJpbmcpID0+IHtcclxuICAvLyAgIGlmIChrZXkpIHtcclxuICAvLyAgICAgdGhpcy5zZXR0aW5nU2VydmljZS5yZW1vdmUodGhpcy4jZ2V0S2V5KGtleSkpO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgZ2VuZXJhdGVDb25maWd1cmF0aW9uUmVzdWx0ID0gKFxyXG4gICAgY29uZmlndXJhdGlvbjogU2RHcmlkQ29uZmlndXJhdGlvbixcclxuICAgIGdyaWRPcHRpb246IFNkR3JpZE1hdGVyaWFsT3B0aW9uLFxyXG4gICAgc2RTdWJJbmZvcm1hdGlvbjogU2RNYXRlcmlhbFN1YkluZm9ybWF0aW9uRGVmRGlyZWN0aXZlKSA9PiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IFNkR3JpZENvbmZpZ3VyYXRpb25SZXN1bHQgPSB7XHJcbiAgICAgIGNvbHVtbjoge30sXHJcbiAgICAgIGZpeGVkQ29sdW1uOiB7fSxcclxuICAgICAgZmlyc3RDb2x1bW5zOiBbXSxcclxuICAgICAgc2Vjb25kQ29sdW1uczogW10sXHJcbiAgICAgIGZpcnN0SGVhZGVyczogW10sXHJcbiAgICAgIHNlY29uZEhlYWRlcnM6IFtdLFxyXG4gICAgICBkaXNwbGF5ZWRDb2x1bW5zOiBbXSxcclxuICAgICAgZGlzcGxheWVkRm9vdGVyczogW10sXHJcbiAgICAgIG11bHRpcGxlSGVhZGVyOiBmYWxzZVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHsgc2VsZWN0aW9uLCBjb21tYW5kcywgZWRpdG9yIH0gPSBncmlkT3B0aW9uIHx8IHt9O1xyXG4gICAgaWYgKGVkaXRvcj8uYWRkYWJsZSB8fCAoZWRpdG9yPy50eXBlID09PSAnaW5saW5lJyAmJiAoZWRpdG9yPy5yZW1vdmFibGUgfHwgdHlwZW9mIChlZGl0b3I/LmRpc2FibGVkKSA9PT0gJ2Z1bmN0aW9uJyB8fCAhZWRpdG9yPy5kaXNhYmxlZCkpXHJcbiAgICAgIHx8IChlZGl0b3I/LnR5cGUgPT09ICdmb2N1cycgJiYgKHR5cGVvZiAoZWRpdG9yPy5kaXNhYmxlZCkgPT09ICdmdW5jdGlvbicgfHwgIWVkaXRvcj8uZGlzYWJsZWQpKSkge1xyXG4gICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2godGhpcy4jQ09MVU1OUy5FRElUT1JWQUxJREFUSU9OKTtcclxuICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaCh0aGlzLiNDT0xVTU5TLkVESVRPUlZBTElEQVRJT04pO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlbGVjdGlvbj8udmlzaWJsZSkge1xyXG4gICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2godGhpcy4jQ09MVU1OUy5TRUxFQ1RJT04pO1xyXG4gICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKHRoaXMuI0NPTFVNTlMuU0VMRUNUSU9OKTtcclxuICAgIH1cclxuICAgIGlmIChlZGl0b3I/LmFkZGFibGUgfHwgKGVkaXRvcj8udHlwZSA9PT0gJ2lubGluZScgJiYgKGVkaXRvcj8ucmVtb3ZhYmxlIHx8IHR5cGVvZiAoZWRpdG9yPy5kaXNhYmxlZCkgPT09ICdmdW5jdGlvbicgfHwgIWVkaXRvcj8uZGlzYWJsZWQpKVxyXG4gICAgICB8fCAoZWRpdG9yPy50eXBlID09PSAnZm9jdXMnICYmICh0eXBlb2YgKGVkaXRvcj8uZGlzYWJsZWQpID09PSAnZnVuY3Rpb24nIHx8ICFlZGl0b3I/LmRpc2FibGVkKSlcclxuICAgICAgfHwgKGVkaXRvcj8udHlwZSA9PT0gJ3BvcHVwJyAmJiAodHlwZW9mIChlZGl0b3I/LmRpc2FibGVkKSA9PT0gJ2Z1bmN0aW9uJyB8fCAhZWRpdG9yPy5kaXNhYmxlZCkpKSB7XHJcbiAgICAgIHJlc3VsdC5maXJzdEhlYWRlcnMucHVzaCh0aGlzLiNDT0xVTU5TLkVESVRPUik7XHJcbiAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2godGhpcy4jQ09MVU1OUy5FRElUT1IpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbW1hbmRzPy5sZW5ndGgpIHtcclxuICAgICAgcmVzdWx0LmZpcnN0SGVhZGVycy5wdXNoKHRoaXMuI0NPTFVNTlMuQ09NTUFORCk7XHJcbiAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2godGhpcy4jQ09MVU1OUy5DT01NQU5EKTtcclxuICAgIH1cclxuICAgIGNvbmZpZ3VyYXRpb24/LmNvbHVtbnM/LmZpbHRlcihjb2wgPT4gIWNvbC5pbnZpc2libGUpLmZvckVhY2goY29sID0+IHtcclxuICAgICAgaWYgKGNvbC5pc0dlbmVyYXRlZENvbHVtbikge1xyXG4gICAgICAgIHJlc3VsdC5jb2x1bW5bY29sLm9yaWdpbi5maWVsZF0gPSB7XHJcbiAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICB3aWR0aDogY29sLndpZHRoIHx8IGNvbC5vcmlnaW4ud2lkdGgsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoY29sLmZpeGVkKSB7XHJcbiAgICAgICAgICByZXN1bHQuZml4ZWRDb2x1bW5bY29sLm9yaWdpbi5maWVsZF0gPSB7XHJcbiAgICAgICAgICAgIHRpdGxlOiBjb2wudGl0bGUgfHwgY29sLm9yaWdpbi50aXRsZSxcclxuICAgICAgICAgICAgd2lkdGg6IGNvbC53aWR0aCB8fCBjb2wub3JpZ2luLndpZHRoLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZ2VuZXJhdGVkQ29sdW1uOiBTZEdyaWRNYXRlcmlhbENvbHVtbiA9IHtcclxuICAgICAgICAgIHR5cGU6ICdjaGlsZHJlbicsXHJcbiAgICAgICAgICBmaWVsZDogY29sLm9yaWdpbi5maWVsZCxcclxuICAgICAgICAgIHRpdGxlOiBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgY2hpbGRyZW46IFtdXHJcbiAgICAgICAgfTtcclxuICAgICAgICBmb3IgKGNvbnN0IHN1YkNvbHVtbiBvZiBncmlkT3B0aW9uPy5jb2x1bW5zLmZpbHRlcihlMSA9PiBjb2wuZ2VuZXJhdGVkQ29sdW1ucy5pbmNsdWRlcyhlMS5maWVsZCkpKSB7XHJcbiAgICAgICAgICBpZiAoc3ViQ29sdW1uLnR5cGUgPT09ICdjaGlsZHJlbicgfHwgc3ViQ29sdW1uLnR5cGUgPT09ICdjaGlsZHJlbi1jb2wnKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGRDb2x1bW4gb2Ygc3ViQ29sdW1uLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uLmNoaWxkcmVuLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgLi4uY2hpbGRDb2x1bW4sXHJcbiAgICAgICAgICAgICAgICBjb2xTcGFuOiAyXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbi5jaGlsZHJlbi5wdXNoKHtcclxuICAgICAgICAgICAgICAuLi5zdWJDb2x1bW4sXHJcbiAgICAgICAgICAgICAgY29sU3BhbjogMlxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3VsdC5maXJzdENvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICAuLi5nZW5lcmF0ZWRDb2x1bW4sXHJcbiAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICB3aWR0aDogY29sLndpZHRoIHx8IGNvbC5vcmlnaW4ud2lkdGhcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2goY29sLm9yaWdpbi5maWVsZCk7XHJcbiAgICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaChjb2wub3JpZ2luLmZpZWxkKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY29sdW1uID0gZ3JpZE9wdGlvbj8uY29sdW1ucy5maW5kKGUgPT4gZS5maWVsZCA9PT0gY29sLm9yaWdpbi5maWVsZCk7XHJcbiAgICAgIGlmIChjb2x1bW4pIHtcclxuICAgICAgICByZXN1bHQuY29sdW1uW2NvbC5vcmlnaW4uZmllbGRdID0ge1xyXG4gICAgICAgICAgdGl0bGU6IGNvbC50aXRsZSB8fCBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgd2lkdGg6IGNvbC53aWR0aCB8fCBjb2wub3JpZ2luLndpZHRoLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKGNvbC5maXhlZCkge1xyXG4gICAgICAgICAgcmVzdWx0LmZpeGVkQ29sdW1uW2NvbC5vcmlnaW4uZmllbGRdID0ge1xyXG4gICAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICAgIHdpZHRoOiBjb2wud2lkdGggfHwgY29sLm9yaWdpbi53aWR0aCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3VsdC5maXJzdENvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICAuLi5jb2x1bW4sXHJcbiAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICB3aWR0aDogY29sLndpZHRoIHx8IGNvbC5vcmlnaW4ud2lkdGhcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2goY29sLm9yaWdpbi5maWVsZCk7XHJcbiAgICAgICAgaWYgKGNvbHVtbi50eXBlID09PSAnY2hpbGRyZW4tY29sJykge1xyXG4gICAgICAgICAgY29sdW1uLmNoaWxkcmVuPy5mb3JFYWNoKGNoaWxkQ29sdW1uID0+IHtcclxuICAgICAgICAgICAgcmVzdWx0LnNlY29uZENvbHVtbnMucHVzaChjaGlsZENvbHVtbik7XHJcbiAgICAgICAgICAgIHJlc3VsdC5zZWNvbmRIZWFkZXJzLnB1c2goY2hpbGRDb2x1bW4uZmllbGQpO1xyXG4gICAgICAgICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKGNoaWxkQ29sdW1uLmZpZWxkKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKGNvbC5vcmlnaW4uZmllbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoc2RTdWJJbmZvcm1hdGlvbj8udGVtcGxhdGVSZWYpIHtcclxuICAgICAgcmVzdWx0LmZpcnN0SGVhZGVycy5wdXNoKHRoaXMuI0NPTFVNTlMuU1VCSU5GT1JNQVRJT04pO1xyXG4gICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKHRoaXMuI0NPTFVNTlMuU1VCSU5GT1JNQVRJT04pO1xyXG4gICAgfVxyXG4gICAgcmVzdWx0Lm11bHRpcGxlSGVhZGVyID0gcmVzdWx0LnNlY29uZEhlYWRlcnMubGVuZ3RoID4gMDtcclxuICAgIC8vIFN1YiBpbmZvbWF0aW9uIGtow7RuZyB0aOG7gyBjw7MgZm9vdGVyXHJcbiAgICByZXN1bHQuZGlzcGxheWVkRm9vdGVycyA9IHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLmZpbHRlcih2YWwgPT4gdmFsICE9PSB0aGlzLiNDT0xVTU5TLlNVQklORk9STUFUSU9OKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|