@progress-chef/platform-shared-components 0.0.98 → 0.0.100

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.
@@ -45,6 +45,8 @@ export class DropdownComponent {
45
45
  this.loaderTheme = LoaderThemeColor.primary;
46
46
  this.width = '100%';
47
47
  this.infiniteScrollLoader = false;
48
+ this.showError = false;
49
+ this.errorMessage = "Error";
48
50
  this.onScrollEnd = new EventEmitter();
49
51
  this.scrollListener = null;
50
52
  this._itemDisabled = (item) => {
@@ -99,11 +101,11 @@ export class DropdownComponent {
99
101
  }
100
102
  }
101
103
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownComponent, deps: [{ token: i1.ThemesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownComponent, selector: "lib-dropdown", inputs: { elementId: "elementId", label: "label", data: "data", isDisabled: "isDisabled", clearButton: "clearButton", fillMode: "fillMode", filterable: "filterable", placeholder: "placeholder", itemDisabled: "itemDisabled", popupClass: "popupClass", useAsComboBox: "useAsComboBox", selectedItem: "selectedItem", readonly: "readonly", rounded: "rounded", size: "size", suggest: "suggest", textField: "textField", value: "value", valueField: "valueField", valuePrimitive: "valuePrimitive", model: "model", control: "control", fontType: "fontType", focus: "focus", loading: "loading", loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", width: "width", infiniteScrollLoader: "infiniteScrollLoader" }, outputs: { modelChange: "modelChange", onScrollEnd: "onScrollEnd" }, viewQueries: [{ propertyName: "comboBox", first: true, predicate: ["comboBox"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<span class=\"dropdown\">\n <span *ngIf=\"label.length > 0\">\n <label class=\"checkbox-label\" [for]=\"elementId\">\n <lib-typography [defaultText]=\"label\" [type]=\"fontType\">\n </lib-typography>\n </label>\n &nbsp;\n </span>\n <kendo-combobox *ngIf=\"_useAsComboBox\" #comboBox [id]=\"elementId\" (opened)=\"onDropdownOpen()\"\n (close)=\"onDropdownClose()\" [data]=\"data\" [style.width]=\"width\" [clearButton]=\"clearButton\" fillMode=\"outline\"\n [filterable]=\"filterable\" [placeholder]=\"placeholder\" [readonly]=\"readonly\" rounded=\"small\" [size]=\"size\"\n [suggest]=\"suggest\" [textField]=\"textField\" [value]=\"value\" [valueField]=\"valueField\"\n [valuePrimitive]=\"valuePrimitive\" [ngModel]=\"model\" (ngModelChange)=\"emitModelChange($event)\"\n [formControl]=\"control\" [popupSettings]=\"{popupClass: popupClass}\">\n <ng-template kendoComboBoxHeaderTemplate>\n <ng-content select=\"header\"></ng-content>\n </ng-template>\n <ng-template kendoComboBoxItemTemplate let-data>\n <img *ngIf=\"data.imageUrl && data.imageUrl.length > 0\" [src]=\"data.imageUrl\" [width]=\"18\" [alt]=\"data.imageUrl\" />\n <div ngClass=\"data.imageUrl.length > 0 ? 'rowData' : ''\">\n <lib-typography [defaultText]=\"data.name\" [type]=\"fontType\">\n </lib-typography>\n </div>\n </ng-template>\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-combobox>\n <kendo-dropdownlist *ngIf=\"!_useAsComboBox\" [data]=\"data\" [textField]=\"textField\" [valueField]=\"valueField\"\n [(ngModel)]=\"model\" (selectionChange)=\"emitModelChange($event)\" [itemDisabled]=\"_itemDisabled\" [style.width]=\"width\"\n [valuePrimitive]=\"valuePrimitive\" [rounded]=\"rounded\" [size]=\"size\" (opened)=\"onDropdownOpen()\"\n [popupSettings]=\"{popupClass: popupClass}\" (close)=\"onDropdownClose()\">\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-dropdownlist>\n</span>\n", styles: [".checkbox-label{margin-bottom:8px}.footer-loader{display:flex;justify-content:center;align-items:center;padding:.5rem 0;box-sizing:border-box}::ng-deep .rowData{padding-left:1rem}::ng-deep .k-list-md .k-list-item,::ng-deep .k-list-md .k-list-optionlabel{border-bottom:1px solid #CDD7DD;padding:8px 16px}::ng-deep .k-list-md{border-radius:0 0 8px 8px}::ng-deep .k-list-container{border-radius:0 0 8px 8px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.HeaderTemplateDirective, selector: "[kendoDropDownListHeaderTemplate],[kendoComboBoxHeaderTemplate],[kendoDropDownTreeHeaderTemplate],[kendoMultiColumnComboBoxHeaderTemplate],[kendoAutoCompleteHeaderTemplate],[kendoMultiSelectHeaderTemplate],[kendoMultiSelectTreeHeaderTemplate]" }, { kind: "directive", type: i3.FooterTemplateDirective, selector: "[kendoDropDownListFooterTemplate],[kendoComboBoxFooterTemplate],[kendoDropDownTreeFooterTemplate],[kendoMultiColumnComboBoxFooterTemplate],[kendoAutoCompleteFooterTemplate],[kendoMultiSelectFooterTemplate],[kendoMultiSelectTreeFooterTemplate]" }, { kind: "directive", type: i3.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { kind: "directive", type: i3.NoDataTemplateDirective, selector: "[kendoDropDownListNoDataTemplate],[kendoDropDownTreeNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoMultiColumnComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate],[kendoMultiSelectTreeNoDataTemplate]" }, { kind: "component", type: i3.ComboBoxComponent, selector: "kendo-combobox", inputs: ["icon", "svgIcon", "showStickyHeader", "focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoComboBox"] }, { kind: "component", type: i3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: i6.LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }] }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownComponent, selector: "lib-dropdown", inputs: { elementId: "elementId", label: "label", data: "data", isDisabled: "isDisabled", clearButton: "clearButton", fillMode: "fillMode", filterable: "filterable", placeholder: "placeholder", itemDisabled: "itemDisabled", popupClass: "popupClass", useAsComboBox: "useAsComboBox", selectedItem: "selectedItem", readonly: "readonly", rounded: "rounded", size: "size", suggest: "suggest", textField: "textField", value: "value", valueField: "valueField", valuePrimitive: "valuePrimitive", model: "model", control: "control", fontType: "fontType", focus: "focus", loading: "loading", loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", width: "width", infiniteScrollLoader: "infiniteScrollLoader", showError: "showError", errorMessage: "errorMessage" }, outputs: { modelChange: "modelChange", onScrollEnd: "onScrollEnd" }, viewQueries: [{ propertyName: "comboBox", first: true, predicate: ["comboBox"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown\">\n <span *ngIf=\"label.length > 0\">\n <label class=\"checkbox-label\" [for]=\"elementId\">\n <lib-typography [defaultText]=\"label\" [type]=\"fontType\">\n </lib-typography>\n </label>\n &nbsp;\n </span>\n <kendo-combobox *ngIf=\"_useAsComboBox\" #comboBox [id]=\"elementId\" (opened)=\"onDropdownOpen()\"\n (close)=\"onDropdownClose()\" [data]=\"data\" [style.width]=\"width\" [clearButton]=\"clearButton\" fillMode=\"outline\"\n [filterable]=\"filterable\" [placeholder]=\"placeholder\" [readonly]=\"readonly\" rounded=\"small\" [size]=\"size\"\n [suggest]=\"suggest\" [textField]=\"textField\" [value]=\"value\" [valueField]=\"valueField\"\n [valuePrimitive]=\"valuePrimitive\" [ngModel]=\"model\" (ngModelChange)=\"emitModelChange($event)\"\n [formControl]=\"control\" [popupSettings]=\"{popupClass: popupClass}\">\n <ng-template kendoComboBoxHeaderTemplate>\n <ng-content select=\"header\"></ng-content>\n </ng-template>\n <ng-template kendoComboBoxItemTemplate let-data>\n <img *ngIf=\"data.imageUrl && data.imageUrl.length > 0\" [src]=\"data.imageUrl\" [width]=\"18\" [alt]=\"data.imageUrl\" />\n <div ngClass=\"data.imageUrl.length > 0 ? 'rowData' : ''\">\n <lib-typography [defaultText]=\"data.name\" [type]=\"fontType\">\n </lib-typography>\n </div>\n </ng-template>\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-combobox>\n <kendo-dropdownlist *ngIf=\"!_useAsComboBox\" [data]=\"data\" [textField]=\"textField\" [valueField]=\"valueField\"\n [(ngModel)]=\"model\" (selectionChange)=\"emitModelChange($event)\" [itemDisabled]=\"_itemDisabled\" [style.width]=\"width\"\n [valuePrimitive]=\"valuePrimitive\" [rounded]=\"rounded\" [size]=\"size\" (opened)=\"onDropdownOpen()\"\n [popupSettings]=\"{popupClass: popupClass}\" (close)=\"onDropdownClose()\">\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-dropdownlist>\n <div *ngIf=\"showError\">\n <lib-typography [defaultText]=\"errorMessage\" class=\"error-text\" />\n </div>\n</div>\n", styles: [".checkbox-label{margin-bottom:8px}.footer-loader{display:flex;justify-content:center;align-items:center;padding:.5rem 0;box-sizing:border-box}::ng-deep .rowData{padding-left:1rem}::ng-deep .k-list-md .k-list-item,::ng-deep .k-list-md .k-list-optionlabel{border-bottom:1px solid #CDD7DD;padding:8px 16px}::ng-deep .k-list-md{border-radius:0 0 8px 8px}::ng-deep .k-list-container{border-radius:0 0 8px 8px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.HeaderTemplateDirective, selector: "[kendoDropDownListHeaderTemplate],[kendoComboBoxHeaderTemplate],[kendoDropDownTreeHeaderTemplate],[kendoMultiColumnComboBoxHeaderTemplate],[kendoAutoCompleteHeaderTemplate],[kendoMultiSelectHeaderTemplate],[kendoMultiSelectTreeHeaderTemplate]" }, { kind: "directive", type: i3.FooterTemplateDirective, selector: "[kendoDropDownListFooterTemplate],[kendoComboBoxFooterTemplate],[kendoDropDownTreeFooterTemplate],[kendoMultiColumnComboBoxFooterTemplate],[kendoAutoCompleteFooterTemplate],[kendoMultiSelectFooterTemplate],[kendoMultiSelectTreeFooterTemplate]" }, { kind: "directive", type: i3.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { kind: "directive", type: i3.NoDataTemplateDirective, selector: "[kendoDropDownListNoDataTemplate],[kendoDropDownTreeNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoMultiColumnComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate],[kendoMultiSelectTreeNoDataTemplate]" }, { kind: "component", type: i3.ComboBoxComponent, selector: "kendo-combobox", inputs: ["icon", "svgIcon", "showStickyHeader", "focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoComboBox"] }, { kind: "component", type: i3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: i6.LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }] }); }
103
105
  }
104
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownComponent, decorators: [{
105
107
  type: Component,
106
- args: [{ selector: 'lib-dropdown', template: "<span class=\"dropdown\">\n <span *ngIf=\"label.length > 0\">\n <label class=\"checkbox-label\" [for]=\"elementId\">\n <lib-typography [defaultText]=\"label\" [type]=\"fontType\">\n </lib-typography>\n </label>\n &nbsp;\n </span>\n <kendo-combobox *ngIf=\"_useAsComboBox\" #comboBox [id]=\"elementId\" (opened)=\"onDropdownOpen()\"\n (close)=\"onDropdownClose()\" [data]=\"data\" [style.width]=\"width\" [clearButton]=\"clearButton\" fillMode=\"outline\"\n [filterable]=\"filterable\" [placeholder]=\"placeholder\" [readonly]=\"readonly\" rounded=\"small\" [size]=\"size\"\n [suggest]=\"suggest\" [textField]=\"textField\" [value]=\"value\" [valueField]=\"valueField\"\n [valuePrimitive]=\"valuePrimitive\" [ngModel]=\"model\" (ngModelChange)=\"emitModelChange($event)\"\n [formControl]=\"control\" [popupSettings]=\"{popupClass: popupClass}\">\n <ng-template kendoComboBoxHeaderTemplate>\n <ng-content select=\"header\"></ng-content>\n </ng-template>\n <ng-template kendoComboBoxItemTemplate let-data>\n <img *ngIf=\"data.imageUrl && data.imageUrl.length > 0\" [src]=\"data.imageUrl\" [width]=\"18\" [alt]=\"data.imageUrl\" />\n <div ngClass=\"data.imageUrl.length > 0 ? 'rowData' : ''\">\n <lib-typography [defaultText]=\"data.name\" [type]=\"fontType\">\n </lib-typography>\n </div>\n </ng-template>\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-combobox>\n <kendo-dropdownlist *ngIf=\"!_useAsComboBox\" [data]=\"data\" [textField]=\"textField\" [valueField]=\"valueField\"\n [(ngModel)]=\"model\" (selectionChange)=\"emitModelChange($event)\" [itemDisabled]=\"_itemDisabled\" [style.width]=\"width\"\n [valuePrimitive]=\"valuePrimitive\" [rounded]=\"rounded\" [size]=\"size\" (opened)=\"onDropdownOpen()\"\n [popupSettings]=\"{popupClass: popupClass}\" (close)=\"onDropdownClose()\">\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-dropdownlist>\n</span>\n", styles: [".checkbox-label{margin-bottom:8px}.footer-loader{display:flex;justify-content:center;align-items:center;padding:.5rem 0;box-sizing:border-box}::ng-deep .rowData{padding-left:1rem}::ng-deep .k-list-md .k-list-item,::ng-deep .k-list-md .k-list-optionlabel{border-bottom:1px solid #CDD7DD;padding:8px 16px}::ng-deep .k-list-md{border-radius:0 0 8px 8px}::ng-deep .k-list-container{border-radius:0 0 8px 8px}\n"] }]
108
+ args: [{ selector: 'lib-dropdown', template: "<div class=\"dropdown\">\n <span *ngIf=\"label.length > 0\">\n <label class=\"checkbox-label\" [for]=\"elementId\">\n <lib-typography [defaultText]=\"label\" [type]=\"fontType\">\n </lib-typography>\n </label>\n &nbsp;\n </span>\n <kendo-combobox *ngIf=\"_useAsComboBox\" #comboBox [id]=\"elementId\" (opened)=\"onDropdownOpen()\"\n (close)=\"onDropdownClose()\" [data]=\"data\" [style.width]=\"width\" [clearButton]=\"clearButton\" fillMode=\"outline\"\n [filterable]=\"filterable\" [placeholder]=\"placeholder\" [readonly]=\"readonly\" rounded=\"small\" [size]=\"size\"\n [suggest]=\"suggest\" [textField]=\"textField\" [value]=\"value\" [valueField]=\"valueField\"\n [valuePrimitive]=\"valuePrimitive\" [ngModel]=\"model\" (ngModelChange)=\"emitModelChange($event)\"\n [formControl]=\"control\" [popupSettings]=\"{popupClass: popupClass}\">\n <ng-template kendoComboBoxHeaderTemplate>\n <ng-content select=\"header\"></ng-content>\n </ng-template>\n <ng-template kendoComboBoxItemTemplate let-data>\n <img *ngIf=\"data.imageUrl && data.imageUrl.length > 0\" [src]=\"data.imageUrl\" [width]=\"18\" [alt]=\"data.imageUrl\" />\n <div ngClass=\"data.imageUrl.length > 0 ? 'rowData' : ''\">\n <lib-typography [defaultText]=\"data.name\" [type]=\"fontType\">\n </lib-typography>\n </div>\n </ng-template>\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-combobox>\n <kendo-dropdownlist *ngIf=\"!_useAsComboBox\" [data]=\"data\" [textField]=\"textField\" [valueField]=\"valueField\"\n [(ngModel)]=\"model\" (selectionChange)=\"emitModelChange($event)\" [itemDisabled]=\"_itemDisabled\" [style.width]=\"width\"\n [valuePrimitive]=\"valuePrimitive\" [rounded]=\"rounded\" [size]=\"size\" (opened)=\"onDropdownOpen()\"\n [popupSettings]=\"{popupClass: popupClass}\" (close)=\"onDropdownClose()\">\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-dropdownlist>\n <div *ngIf=\"showError\">\n <lib-typography [defaultText]=\"errorMessage\" class=\"error-text\" />\n </div>\n</div>\n", styles: [".checkbox-label{margin-bottom:8px}.footer-loader{display:flex;justify-content:center;align-items:center;padding:.5rem 0;box-sizing:border-box}::ng-deep .rowData{padding-left:1rem}::ng-deep .k-list-md .k-list-item,::ng-deep .k-list-md .k-list-optionlabel{border-bottom:1px solid #CDD7DD;padding:8px 16px}::ng-deep .k-list-md{border-radius:0 0 8px 8px}::ng-deep .k-list-container{border-radius:0 0 8px 8px}\n"] }]
107
109
  }], ctorParameters: function () { return [{ type: i1.ThemesService }, { type: i0.Renderer2 }]; }, propDecorators: { elementId: [{
108
110
  type: Input
109
111
  }], label: [{
@@ -166,10 +168,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
166
168
  type: Input
167
169
  }], infiniteScrollLoader: [{
168
170
  type: Input
171
+ }], showError: [{
172
+ type: Input
173
+ }], errorMessage: [{
174
+ type: Input
169
175
  }], onScrollEnd: [{
170
176
  type: Output
171
177
  }], comboBox: [{
172
178
  type: ViewChild,
173
179
  args: ['comboBox', { static: false }]
174
180
  }] } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvYXRvbXMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvYXRvbXMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTdDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLGdCQUFnQixHQUNqQixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQU9wQyxNQUFNLE9BQU8saUJBQWlCO0lBYzVCLElBQWEsYUFBYSxDQUFDLEtBQWM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUdELElBQWEsWUFBWSxDQUFDLEtBQVU7UUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQXdCRCxZQUFvQixhQUE0QixFQUFVLFFBQW1CO1FBQXpELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTNDcEUsY0FBUyxHQUFXLFVBQVUsQ0FBQztRQUMvQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFNBQUksR0FBZSxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixhQUFRLEdBQTBDLE9BQU8sQ0FBQztRQUMxRCxlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLGdCQUFX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O3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLQSxRQUFRO3NCQURkLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeVR5cGUgfSBmcm9tICcuLi90eXBvZ3JhcGh5L1R5cG9ncmFwaHlUeXBlJztcbmltcG9ydCB7IFRoZW1lc1NlcnZpY2UgfSBmcm9tICdAcHJvZ3Jlc3MtY2hlZi9wbGF0Zm9ybS10aGVtZXMtc2VydmljZSc7XG5pbXBvcnQgeyBDb21ib0JveENvbXBvbmVudCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWRyb3Bkb3ducyc7XG5pbXBvcnQge1xuICBMb2FkZXJTaXplLFxuICBMb2FkZXJUeXBlLFxuICBMb2FkZXJUaGVtZUNvbG9yLFxufSBmcm9tICcuLi9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBlbGVtZW50SWQ6IHN0cmluZyA9IFwic2FtcGxlSWRcIjtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGRhdGE6IEFycmF5PGFueT4gPSBbXTtcbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGVhckJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBmaWxsTW9kZTogXCJmbGF0XCIgfCBcInNvbGlkXCIgfCBcIm91dGxpbmVcIiB8IFwibm9uZVwiID0gXCJzb2xpZFwiO1xuICBASW5wdXQoKSBmaWx0ZXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGl0ZW1EaXNhYmxlZDogYW55ID0gbnVsbDtcbiAgQElucHV0KCkgcG9wdXBDbGFzczogc3RyaW5nID0gIFwiXCI7XG5cbiAgX3VzZUFzQ29tYm9Cb3g6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzZXQgdXNlQXNDb21ib0JveCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3VzZUFzQ29tYm9Cb3ggPSB2YWx1ZTtcbiAgfVxuXG4gIF9zZWxlY3RlZEl0ZW06IGFueSA9IG51bGw7XG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZEl0ZW0odmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3NlbGVjdGVkSXRlbSA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcm91bmRlZDogXCJzbWFsbFwiIHwgXCJtZWRpdW1cIiB8IFwibGFyZ2VcIiB8IFwiZnVsbFwiIHwgXCJub25lXCIgPSBcIm1lZGl1bVwiO1xuICBASW5wdXQoKSBzaXplOiBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiIHwgXCJub25lXCIgPSBcIm1lZGl1bVwiO1xuICBASW5wdXQoKSBzdWdnZXN0OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgdGV4dEZpZWxkITogc3RyaW5nO1xuICBASW5wdXQoKSB2YWx1ZSE6IGFueTtcbiAgQElucHV0KCkgdmFsdWVGaWVsZCE6IHN0cmluZztcbiAgQElucHV0KCkgdmFsdWVQcmltaXRpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZWwhOiBhbnk7XG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBjb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBASW5wdXQoKSBmb250VHlwZTogVHlwb2dyYXBoeVR5cGUgPSAnQk9EWV9NRURJVU0nO1xuICBASW5wdXQoKSBmb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxvYWRlclR5cGU6IExvYWRlclR5cGUgPSBMb2FkZXJUeXBlLnB1bHNpbmc7XG4gIEBJbnB1dCgpIGxvYWRlclNpemU6IExvYWRlclNpemUgPSBMb2FkZXJTaXplLm1lZGl1bTtcbiAgQElucHV0KCkgbG9hZGVyVGhlbWU6IExvYWRlclRoZW1lQ29sb3IgPSBMb2FkZXJUaGVtZUNvbG9yLnByaW1hcnk7XG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIGluZmluaXRlU2Nyb2xsTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBvblNjcm9sbEVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBzY3JvbGxMaXN0ZW5lcjogYW55ID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoZW1lc1NlcnZpY2U6IFRoZW1lc1NlcnZpY2UsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cbiAgQFZpZXdDaGlsZCgnY29tYm9Cb3gnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIGNvbWJvQm94ITogQ29tYm9Cb3hDb21wb25lbnQ7XG5cbiAgX2l0ZW1EaXNhYmxlZCA9IChpdGVtOiBhbnkpID0+IHtcbiAgICBpZiAodGhpcy5pdGVtRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1EaXNhYmxlZChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2lzRGlzYWJsZWQnXSkge1xuICAgICAgaWYgKGNoYW5nZXNbJ2lzRGlzYWJsZWQnXT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmZvY3VzKSB7XG4gICAgICB0aGlzLmNvbWJvQm94LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZW1pdE1vZGVsQ2hhbmdlKGV2OiBhbnkpIHtcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoZXYpO1xuICB9XG5cbiAgb25TY3JvbGwoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnRhcmdldC5vZmZzZXRIZWlnaHQgKyBldmVudC50YXJnZXQuc2Nyb2xsVG9wID49XG4gICAgICBldmVudC50YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gMVxuICAgICkge1xuICAgICAgdGhpcy5vblNjcm9sbEVuZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25Ecm9wZG93bk9wZW4oKSB7XG4gICAgaWYgKCF0aGlzLnBvcHVwQ2xhc3MpIHJldHVybjtcbiAgICBjb25zdCBkcm9wZG93bkxpc3QgPSB0aGlzLnJlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KGAuJHt0aGlzLnBvcHVwQ2xhc3N9YCwgdHJ1ZSlcbiAgICBpZiAoZHJvcGRvd25MaXN0KSB7XG4gICAgICB0aGlzLnNjcm9sbExpc3RlbmVyID0gKGU6IGFueSkgPT4gdGhpcy5vblNjcm9sbChlKTtcbiAgICAgIGRyb3Bkb3duTGlzdC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbExpc3RlbmVyLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBvbkRyb3Bkb3duQ2xvc2UoKSB7XG4gICAgaWYgKCF0aGlzLnBvcHVwQ2xhc3MpIHJldHVybjtcbiAgICBjb25zdCBkcm9wZG93bkxpc3QgPSB0aGlzLnJlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KGAuJHt0aGlzLnBvcHVwQ2xhc3N9YCwgdHJ1ZSlcbiAgICBpZiAoZHJvcGRvd25MaXN0ICYmIHRoaXMuc2Nyb2xsTGlzdGVuZXIpIHtcbiAgICAgIGRyb3Bkb3duTGlzdC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbExpc3RlbmVyLCB0cnVlKTtcbiAgICAgIHRoaXMuc2Nyb2xsTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIiwiPHNwYW4gY2xhc3M9XCJkcm9wZG93blwiPlxuICA8c3BhbiAqbmdJZj1cImxhYmVsLmxlbmd0aCA+IDBcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJjaGVja2JveC1sYWJlbFwiIFtmb3JdPVwiZWxlbWVudElkXCI+XG4gICAgICA8bGliLXR5cG9ncmFwaHkgW2RlZmF1bHRUZXh0XT1cImxhYmVsXCIgW3R5cGVdPVwiZm9udFR5cGVcIj5cbiAgICAgIDwvbGliLXR5cG9ncmFwaHk+XG4gICAgPC9sYWJlbD5cbiAgICAmbmJzcDtcbiAgPC9zcGFuPlxuICA8a2VuZG8tY29tYm9ib3ggKm5nSWY9XCJfdXNlQXNDb21ib0JveFwiICNjb21ib0JveCBbaWRdPVwiZWxlbWVudElkXCIgKG9wZW5lZCk9XCJvbkRyb3Bkb3duT3BlbigpXCJcbiAgICAoY2xvc2UpPVwib25Ecm9wZG93bkNsb3NlKClcIiBbZGF0YV09XCJkYXRhXCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCIgW2NsZWFyQnV0dG9uXT1cImNsZWFyQnV0dG9uXCIgZmlsbE1vZGU9XCJvdXRsaW5lXCJcbiAgICBbZmlsdGVyYWJsZV09XCJmaWx0ZXJhYmxlXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgcm91bmRlZD1cInNtYWxsXCIgW3NpemVdPVwic2l6ZVwiXG4gICAgW3N1Z2dlc3RdPVwic3VnZ2VzdFwiIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkXCIgW3ZhbHVlXT1cInZhbHVlXCIgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZFwiXG4gICAgW3ZhbHVlUHJpbWl0aXZlXT1cInZhbHVlUHJpbWl0aXZlXCIgW25nTW9kZWxdPVwibW9kZWxcIiAobmdNb2RlbENoYW5nZSk9XCJlbWl0TW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBbcG9wdXBTZXR0aW5nc109XCJ7cG9wdXBDbGFzczogcG9wdXBDbGFzc31cIj5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9Db21ib0JveEhlYWRlclRlbXBsYXRlPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvQ29tYm9Cb3hJdGVtVGVtcGxhdGUgbGV0LWRhdGE+XG4gICAgICA8aW1nICpuZ0lmPVwiZGF0YS5pbWFnZVVybCAmJiBkYXRhLmltYWdlVXJsLmxlbmd0aCA+IDBcIiBbc3JjXT1cImRhdGEuaW1hZ2VVcmxcIiBbd2lkdGhdPVwiMThcIiBbYWx0XT1cImRhdGEuaW1hZ2VVcmxcIiAvPlxuICAgICAgPGRpdiBuZ0NsYXNzPVwiZGF0YS5pbWFnZVVybC5sZW5ndGggPiAwID8gJ3Jvd0RhdGEnIDogJydcIj5cbiAgICAgICAgPGxpYi10eXBvZ3JhcGh5IFtkZWZhdWx0VGV4dF09XCJkYXRhLm5hbWVcIiBbdHlwZV09XCJmb250VHlwZVwiPlxuICAgICAgICA8L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9Db21ib0JveEZvb3RlclRlbXBsYXRlPlxuICAgICAgPGRpdiAqbmdJZj1cImluZmluaXRlU2Nyb2xsTG9hZGVyXCIgY2xhc3M9XCJmb290ZXItbG9hZGVyXCI+XG4gICAgICAgIDxsaWItbG9hZGVyIFt0eXBlXT1cImxvYWRlclR5cGVcIiBbc2l6ZV09XCJsb2FkZXJTaXplXCIgW3RoZW1lQ29sb3JdPVwibG9hZGVyVGhlbWVcIj48L2xpYi1sb2FkZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImxvYWRpbmdcIiBrZW5kb0NvbWJvQm94Tm9EYXRhVGVtcGxhdGU+XG4gICAgICA8bGliLWxvYWRlciBbdHlwZV09XCJsb2FkZXJUeXBlXCIgW3NpemVdPVwibG9hZGVyU2l6ZVwiIFt0aGVtZUNvbG9yXT1cImxvYWRlclRoZW1lXCI+PC9saWItbG9hZGVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwva2VuZG8tY29tYm9ib3g+XG4gIDxrZW5kby1kcm9wZG93bmxpc3QgKm5nSWY9XCIhX3VzZUFzQ29tYm9Cb3hcIiBbZGF0YV09XCJkYXRhXCIgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGRcIiBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkXCJcbiAgICBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJlbWl0TW9kZWxDaGFuZ2UoJGV2ZW50KVwiIFtpdGVtRGlzYWJsZWRdPVwiX2l0ZW1EaXNhYmxlZFwiIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgW3ZhbHVlUHJpbWl0aXZlXT1cInZhbHVlUHJpbWl0aXZlXCIgW3JvdW5kZWRdPVwicm91bmRlZFwiIFtzaXplXT1cInNpemVcIiAob3BlbmVkKT1cIm9uRHJvcGRvd25PcGVuKClcIlxuICAgIFtwb3B1cFNldHRpbmdzXT1cIntwb3B1cENsYXNzOiBwb3B1cENsYXNzfVwiIChjbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2UoKVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0NvbWJvQm94Rm9vdGVyVGVtcGxhdGU+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaW5maW5pdGVTY3JvbGxMb2FkZXJcIiBjbGFzcz1cImZvb3Rlci1sb2FkZXJcIj5cbiAgICAgICAgPGxpYi1sb2FkZXIgW3R5cGVdPVwibG9hZGVyVHlwZVwiIFtzaXplXT1cImxvYWRlclNpemVcIiBbdGhlbWVDb2xvcl09XCJsb2FkZXJUaGVtZVwiPjwvbGliLWxvYWRlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwibG9hZGluZ1wiIGtlbmRvQ29tYm9Cb3hOb0RhdGFUZW1wbGF0ZT5cbiAgICAgIDxsaWItbG9hZGVyIFt0eXBlXT1cImxvYWRlclR5cGVcIiBbc2l6ZV09XCJsb2FkZXJTaXplXCIgW3RoZW1lQ29sb3JdPVwibG9hZGVyVGhlbWVcIj48L2xpYi1sb2FkZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9rZW5kby1kcm9wZG93bmxpc3Q+XG48L3NwYW4+XG4iXX0=
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvYXRvbXMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvYXRvbXMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTdDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLGdCQUFnQixHQUNqQixNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQU9wQyxNQUFNLE9BQU8saUJBQWlCO0lBYzVCLElBQWEsYUFBYSxDQUFDLEtBQWM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUdELElBQWEsWUFBWSxDQUFDLEtBQVU7UUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQTJCRCxZQUFvQixhQUE0QixFQUFVLFFBQW1CO1FBQXpELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTlDcEUsY0FBUyxHQUFXLFVBQVUsQ0FBQztRQUMvQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFNBQUksR0FBZSxFQUFFLENBQUM7UUFDdEIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixhQUFRLEdBQTBDLE9BQU8sQ0FBQztRQUMxRCxlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLGdCQUFX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QUNFLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFLQSxRQUFRO3NCQURkLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeVR5cGUgfSBmcm9tICcuLi90eXBvZ3JhcGh5L1R5cG9ncmFwaHlUeXBlJztcbmltcG9ydCB7IFRoZW1lc1NlcnZpY2UgfSBmcm9tICdAcHJvZ3Jlc3MtY2hlZi9wbGF0Zm9ybS10aGVtZXMtc2VydmljZSc7XG5pbXBvcnQgeyBDb21ib0JveENvbXBvbmVudCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWRyb3Bkb3ducyc7XG5pbXBvcnQge1xuICBMb2FkZXJTaXplLFxuICBMb2FkZXJUeXBlLFxuICBMb2FkZXJUaGVtZUNvbG9yLFxufSBmcm9tICcuLi9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBlbGVtZW50SWQ6IHN0cmluZyA9IFwic2FtcGxlSWRcIjtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGRhdGE6IEFycmF5PGFueT4gPSBbXTtcbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGVhckJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBmaWxsTW9kZTogXCJmbGF0XCIgfCBcInNvbGlkXCIgfCBcIm91dGxpbmVcIiB8IFwibm9uZVwiID0gXCJzb2xpZFwiO1xuICBASW5wdXQoKSBmaWx0ZXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGl0ZW1EaXNhYmxlZDogYW55ID0gbnVsbDtcbiAgQElucHV0KCkgcG9wdXBDbGFzczogc3RyaW5nID0gXCJcIjtcblxuICBfdXNlQXNDb21ib0JveDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNldCB1c2VBc0NvbWJvQm94KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdXNlQXNDb21ib0JveCA9IHZhbHVlO1xuICB9XG5cbiAgX3NlbGVjdGVkSXRlbTogYW55ID0gbnVsbDtcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkSXRlbSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gdmFsdWU7XG4gIH1cblxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByb3VuZGVkOiBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiIHwgXCJmdWxsXCIgfCBcIm5vbmVcIiA9IFwibWVkaXVtXCI7XG4gIEBJbnB1dCgpIHNpemU6IFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCIgfCBcIm5vbmVcIiA9IFwibWVkaXVtXCI7XG4gIEBJbnB1dCgpIHN1Z2dlc3Q6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSB0ZXh0RmllbGQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZhbHVlITogYW55O1xuICBASW5wdXQoKSB2YWx1ZUZpZWxkITogc3RyaW5nO1xuICBASW5wdXQoKSB2YWx1ZVByaW1pdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtb2RlbCE6IGFueTtcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIEBJbnB1dCgpIGZvbnRUeXBlOiBUeXBvZ3JhcGh5VHlwZSA9ICdCT0RZX01FRElVTSc7XG4gIEBJbnB1dCgpIGZvY3VzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbG9hZGVyVHlwZTogTG9hZGVyVHlwZSA9IExvYWRlclR5cGUucHVsc2luZztcbiAgQElucHV0KCkgbG9hZGVyU2l6ZTogTG9hZGVyU2l6ZSA9IExvYWRlclNpemUubWVkaXVtO1xuICBASW5wdXQoKSBsb2FkZXJUaGVtZTogTG9hZGVyVGhlbWVDb2xvciA9IExvYWRlclRoZW1lQ29sb3IucHJpbWFyeTtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICcxMDAlJztcbiAgQElucHV0KCkgaW5maW5pdGVTY3JvbGxMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nID0gXCJFcnJvclwiXG5cbiAgQE91dHB1dCgpIG9uU2Nyb2xsRW5kID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHNjcm9sbExpc3RlbmVyOiBhbnkgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGhlbWVzU2VydmljZTogVGhlbWVzU2VydmljZSwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7IH1cbiAgQFZpZXdDaGlsZCgnY29tYm9Cb3gnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIGNvbWJvQm94ITogQ29tYm9Cb3hDb21wb25lbnQ7XG5cbiAgX2l0ZW1EaXNhYmxlZCA9IChpdGVtOiBhbnkpID0+IHtcbiAgICBpZiAodGhpcy5pdGVtRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1EaXNhYmxlZChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2lzRGlzYWJsZWQnXSkge1xuICAgICAgaWYgKGNoYW5nZXNbJ2lzRGlzYWJsZWQnXT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmZvY3VzKSB7XG4gICAgICB0aGlzLmNvbWJvQm94LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZW1pdE1vZGVsQ2hhbmdlKGV2OiBhbnkpIHtcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoZXYpO1xuICB9XG5cbiAgb25TY3JvbGwoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnRhcmdldC5vZmZzZXRIZWlnaHQgKyBldmVudC50YXJnZXQuc2Nyb2xsVG9wID49XG4gICAgICBldmVudC50YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gMVxuICAgICkge1xuICAgICAgdGhpcy5vblNjcm9sbEVuZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25Ecm9wZG93bk9wZW4oKSB7XG4gICAgaWYgKCF0aGlzLnBvcHVwQ2xhc3MpIHJldHVybjtcbiAgICBjb25zdCBkcm9wZG93bkxpc3QgPSB0aGlzLnJlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KGAuJHt0aGlzLnBvcHVwQ2xhc3N9YCwgdHJ1ZSlcbiAgICBpZiAoZHJvcGRvd25MaXN0KSB7XG4gICAgICB0aGlzLnNjcm9sbExpc3RlbmVyID0gKGU6IGFueSkgPT4gdGhpcy5vblNjcm9sbChlKTtcbiAgICAgIGRyb3Bkb3duTGlzdC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbExpc3RlbmVyLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBvbkRyb3Bkb3duQ2xvc2UoKSB7XG4gICAgaWYgKCF0aGlzLnBvcHVwQ2xhc3MpIHJldHVybjtcbiAgICBjb25zdCBkcm9wZG93bkxpc3QgPSB0aGlzLnJlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KGAuJHt0aGlzLnBvcHVwQ2xhc3N9YCwgdHJ1ZSlcbiAgICBpZiAoZHJvcGRvd25MaXN0ICYmIHRoaXMuc2Nyb2xsTGlzdGVuZXIpIHtcbiAgICAgIGRyb3Bkb3duTGlzdC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbExpc3RlbmVyLCB0cnVlKTtcbiAgICAgIHRoaXMuc2Nyb2xsTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRyb3Bkb3duXCI+XG4gIDxzcGFuICpuZ0lmPVwibGFiZWwubGVuZ3RoID4gMFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNoZWNrYm94LWxhYmVsXCIgW2Zvcl09XCJlbGVtZW50SWRcIj5cbiAgICAgIDxsaWItdHlwb2dyYXBoeSBbZGVmYXVsdFRleHRdPVwibGFiZWxcIiBbdHlwZV09XCJmb250VHlwZVwiPlxuICAgICAgPC9saWItdHlwb2dyYXBoeT5cbiAgICA8L2xhYmVsPlxuICAgICZuYnNwO1xuICA8L3NwYW4+XG4gIDxrZW5kby1jb21ib2JveCAqbmdJZj1cIl91c2VBc0NvbWJvQm94XCIgI2NvbWJvQm94IFtpZF09XCJlbGVtZW50SWRcIiAob3BlbmVkKT1cIm9uRHJvcGRvd25PcGVuKClcIlxuICAgIChjbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2UoKVwiIFtkYXRhXT1cImRhdGFcIiBbc3R5bGUud2lkdGhdPVwid2lkdGhcIiBbY2xlYXJCdXR0b25dPVwiY2xlYXJCdXR0b25cIiBmaWxsTW9kZT1cIm91dGxpbmVcIlxuICAgIFtmaWx0ZXJhYmxlXT1cImZpbHRlcmFibGVcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiByb3VuZGVkPVwic21hbGxcIiBbc2l6ZV09XCJzaXplXCJcbiAgICBbc3VnZ2VzdF09XCJzdWdnZXN0XCIgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGRcIiBbdmFsdWVdPVwidmFsdWVcIiBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkXCJcbiAgICBbdmFsdWVQcmltaXRpdmVdPVwidmFsdWVQcmltaXRpdmVcIiBbbmdNb2RlbF09XCJtb2RlbFwiIChuZ01vZGVsQ2hhbmdlKT1cImVtaXRNb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIFtwb3B1cFNldHRpbmdzXT1cIntwb3B1cENsYXNzOiBwb3B1cENsYXNzfVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0NvbWJvQm94SGVhZGVyVGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJoZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9Db21ib0JveEl0ZW1UZW1wbGF0ZSBsZXQtZGF0YT5cbiAgICAgIDxpbWcgKm5nSWY9XCJkYXRhLmltYWdlVXJsICYmIGRhdGEuaW1hZ2VVcmwubGVuZ3RoID4gMFwiIFtzcmNdPVwiZGF0YS5pbWFnZVVybFwiIFt3aWR0aF09XCIxOFwiIFthbHRdPVwiZGF0YS5pbWFnZVVybFwiIC8+XG4gICAgICA8ZGl2IG5nQ2xhc3M9XCJkYXRhLmltYWdlVXJsLmxlbmd0aCA+IDAgPyAncm93RGF0YScgOiAnJ1wiPlxuICAgICAgICA8bGliLXR5cG9ncmFwaHkgW2RlZmF1bHRUZXh0XT1cImRhdGEubmFtZVwiIFt0eXBlXT1cImZvbnRUeXBlXCI+XG4gICAgICAgIDwvbGliLXR5cG9ncmFwaHk+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0NvbWJvQm94Rm9vdGVyVGVtcGxhdGU+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaW5maW5pdGVTY3JvbGxMb2FkZXJcIiBjbGFzcz1cImZvb3Rlci1sb2FkZXJcIj5cbiAgICAgICAgPGxpYi1sb2FkZXIgW3R5cGVdPVwibG9hZGVyVHlwZVwiIFtzaXplXT1cImxvYWRlclNpemVcIiBbdGhlbWVDb2xvcl09XCJsb2FkZXJUaGVtZVwiPjwvbGliLWxvYWRlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwibG9hZGluZ1wiIGtlbmRvQ29tYm9Cb3hOb0RhdGFUZW1wbGF0ZT5cbiAgICAgIDxsaWItbG9hZGVyIFt0eXBlXT1cImxvYWRlclR5cGVcIiBbc2l6ZV09XCJsb2FkZXJTaXplXCIgW3RoZW1lQ29sb3JdPVwibG9hZGVyVGhlbWVcIj48L2xpYi1sb2FkZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9rZW5kby1jb21ib2JveD5cbiAgPGtlbmRvLWRyb3Bkb3dubGlzdCAqbmdJZj1cIiFfdXNlQXNDb21ib0JveFwiIFtkYXRhXT1cImRhdGFcIiBbdGV4dEZpZWxkXT1cInRleHRGaWVsZFwiIFt2YWx1ZUZpZWxkXT1cInZhbHVlRmllbGRcIlxuICAgIFsobmdNb2RlbCldPVwibW9kZWxcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cImVtaXRNb2RlbENoYW5nZSgkZXZlbnQpXCIgW2l0ZW1EaXNhYmxlZF09XCJfaXRlbURpc2FibGVkXCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCJcbiAgICBbdmFsdWVQcmltaXRpdmVdPVwidmFsdWVQcmltaXRpdmVcIiBbcm91bmRlZF09XCJyb3VuZGVkXCIgW3NpemVdPVwic2l6ZVwiIChvcGVuZWQpPVwib25Ecm9wZG93bk9wZW4oKVwiXG4gICAgW3BvcHVwU2V0dGluZ3NdPVwie3BvcHVwQ2xhc3M6IHBvcHVwQ2xhc3N9XCIgKGNsb3NlKT1cIm9uRHJvcGRvd25DbG9zZSgpXCI+XG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvQ29tYm9Cb3hGb290ZXJUZW1wbGF0ZT5cbiAgICAgIDxkaXYgKm5nSWY9XCJpbmZpbml0ZVNjcm9sbExvYWRlclwiIGNsYXNzPVwiZm9vdGVyLWxvYWRlclwiPlxuICAgICAgICA8bGliLWxvYWRlciBbdHlwZV09XCJsb2FkZXJUeXBlXCIgW3NpemVdPVwibG9hZGVyU2l6ZVwiIFt0aGVtZUNvbG9yXT1cImxvYWRlclRoZW1lXCI+PC9saWItbG9hZGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJsb2FkaW5nXCIga2VuZG9Db21ib0JveE5vRGF0YVRlbXBsYXRlPlxuICAgICAgPGxpYi1sb2FkZXIgW3R5cGVdPVwibG9hZGVyVHlwZVwiIFtzaXplXT1cImxvYWRlclNpemVcIiBbdGhlbWVDb2xvcl09XCJsb2FkZXJUaGVtZVwiPjwvbGliLWxvYWRlcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2tlbmRvLWRyb3Bkb3dubGlzdD5cbiAgPGRpdiAqbmdJZj1cInNob3dFcnJvclwiPlxuICAgIDxsaWItdHlwb2dyYXBoeSBbZGVmYXVsdFRleHRdPVwiZXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJlcnJvci10ZXh0XCIgLz5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -350,7 +350,7 @@ export class GridPaginationComponent {
350
350
  }
351
351
  loadGridData() {
352
352
  this._gridView = {
353
- data: orderBy(this.gridView?.data, this.sort),
353
+ data: orderBy(this._gridView?.data, this.sort),
354
354
  total: this._gridView?.total,
355
355
  };
356
356
  }
@@ -592,4 +592,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
592
592
  }], gridLoading: [{
593
593
  type: Input
594
594
  }] } });
595
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBSU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RCxPQUFPLEVBR0wsYUFBYSxFQU9kLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFrQixPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBRUwsZUFBZSxFQUNmLGFBQWEsRUFDYixnQkFBZ0IsRUFDakIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFLL0YsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtRQUQxQyxTQUFJLEdBQVcsRUFBRSxDQUFDO0lBQzRCLENBQUM7K0dBRjdDLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUho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QkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS2V5cyB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQge1xuICBDZWxsQ2xpY2tFdmVudCxcbiAgQ2VsbENsb3NlRXZlbnQsXG4gIEdyaWRDb21wb25lbnQsXG4gIEdyaWREYXRhUmVzdWx0LFxuICBQYWdlQ2hhbmdlRXZlbnQsXG4gIFJvd0NsYXNzQXJncyxcbiAgU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSxcbiAgU2VsZWN0YWJsZU1vZGUsXG4gIFNlbGVjdGFibGVTZXR0aW5nc1xufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7IFNvcnREZXNjcmlwdG9yLCBvcmRlckJ5IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHtcbiAgU1ZHSWNvbixcbiAgY2hldnJvbkRvd25JY29uLFxuICBjaGV2cm9uVXBJY29uLFxuICBtb3JlVmVydGljYWxJY29uXG59IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1zdmctaWNvbnMnO1xuaW1wb3J0IHsgTG9hZGVyU2l6ZSwgTG9hZGVyVGhlbWVDb2xvciwgTG9hZGVyVHlwZSB9IGZyb20gJy4uLy4uL2F0b21zL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbdHlwZV0nXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbHVtblRlbXBsYXRlIHtcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gXCJcIjtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb21wb25lbnQ+KSB7IH1cbn1cblxuY29uc3QgY3JlYXRlRm9ybUdyb3VwID0gKGRhdGFJdGVtOiBhbnkpOiBGb3JtR3JvdXAgPT4ge1xuICBjb25zdCBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIGZvciAobGV0IGRhdGEgb2YgT2JqZWN0LmtleXMoZGF0YUl0ZW0pKSB7XG4gICAgZm9ybS5hZGRDb250cm9sKGRhdGEsIG5ldyBGb3JtQ29udHJvbChkYXRhSXRlbVtkYXRhXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCkpXG4gIH1cbiAgcmV0dXJuIGZvcm1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ncmlkLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRQYWdpbmF0aW9uQ29tcG9uZW50XG5pbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBDb250ZW50Q2hpbGRyZW4oQ3VzdG9tQ29sdW1uVGVtcGxhdGUpIGNvbHVtblRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxDdXN0b21Db2x1bW5UZW1wbGF0ZT4gfCBbXTtcbiAgQENvbnRlbnRDaGlsZCgnbXVsdGlDb2x1bW5EYXRhJykgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnZGV0YWlsVGVtcGxhdGUnKSBkZXRhaWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdpbXBhY3RDb2x1bW4nKSBpbXBhY3RDb2x1bW4hOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQFZpZXdDaGlsZChHcmlkQ29tcG9uZW50KSBncmlkITogR3JpZENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZ3JpZEVsZW1lbnQnKSBncmlkRWxlbWVudCE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEFsbENoZWNrYm94Jykgc2VsZWN0QWxsQ2hlY2tib3ghOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZWxlY3RBbGxNZXNzYWdlRWxlbWVudCcpIHNlbGVjdEFsbE1lc3NhZ2VFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgQElucHV0KCkgc2tpcDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgaXRlbU5hbWU6IHN0cmluZyA9ICdJdGVtcyc7XG4gIEBJbnB1dCgpIHNob3dTZWxlY3RBbGxNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIGFsbFBhZ2VzU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2F2ZWRIZWlnaHQ6IG51bWJlciA9IDA7XG4gIHByZXZpb3VzU2VsZWN0QWxsU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUgPSAndW5jaGVja2VkJztcbiAgQE91dHB1dCgpIG9uU2VsZWN0QWxsQWNyb3NzUGFnZXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBJbnB1dCgpIGNvbHVtbkRhdGE6IGFueSA9IFtdO1xuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgcGFnZWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc29ydGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZ3JvdXBhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlb3JkZXJhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveFdpZHRoOiBudW1iZXIgPSA0NTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5SZXNpemFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94Q29sdW1uU2hvd1NlbGVjdGVkQWxsOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgY2hlY2tCb3hSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjb2x1bW5NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vZGU6IFNlbGVjdGFibGVNb2RlIHwgdW5kZWZpbmVkID0gJ211bHRpcGxlJztcbiAgQElucHV0KCkgY2hlY2tib3hPbmx5ID0gdHJ1ZTtcbiAgQElucHV0KCkgZHJhZ0NvbHVtbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgbmF2aWdhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZ3JpZEhlaWdodCE6IGFueTtcbiAgQElucHV0KCkgZ3JpZFJvd1NlbGVjdEJ5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBub1JlY29yZHNDb250ZW50OiBzdHJpbmcgPSAnTm8gUmVjb3JkcyBBdmFpbGFibGUnO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXh0cmFjdERhdGFJdGVtczogYW55O1xuICBzZWxlY3RhYmxlU2V0dGluZ3M6IFNlbGVjdGFibGVTZXR0aW5ncyA9IHt9O1xuICBASW5wdXQoKSBrZWJhYkxpc3Q6IGFueSA9IFtdO1xuICBASW5wdXQoKSBzaG93S2ViYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJvd0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkga2ViYWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWNvbjogU1ZHSWNvbiA9IG1vcmVWZXJ0aWNhbEljb247XG4gIEBJbnB1dCgpIGtlYmFiQ29sdW1uV2lkdGg6IG51bWJlciA9IDYwO1xuICBkYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0Q29sdW1uID0gJyc7XG4gIEBPdXRwdXQoKSByb3dEYXRhT2ZDbGlja2VkQ2VsbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBfcHJlU2VsZWN0ZWQ6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHNldCBwcmVTZWxlY3RlZCh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLl9wcmVTZWxlY3RlZCA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdEdyaWQoKTtcbiAgfVxuICBfZ3JpZFZpZXc6IEdyaWREYXRhUmVzdWx0ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgQElucHV0KCkgc2V0IGdyaWRWaWV3KHZhbHVlOiBHcmlkRGF0YVJlc3VsdCkge1xuICAgIHRoaXMuX2dyaWRWaWV3ID0gdmFsdWU7XG4gIH1cbiAgcHJlU2VsZWN0ZWRSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlnbm9yZUNvbHVtbkNlbGxDbGljazogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dDb2x1bW5DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvcltdID0gW1xuICAgIHtcbiAgICAgIGZpZWxkOiAnJyxcbiAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgIH0sXG4gIF07XG4gIEBJbnB1dCgpIGhhc0FwaVNvcnRpbmcgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNvcnREaXJlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGFycm93RG93bkljb246IFNWR0ljb24gPSBjaGV2cm9uRG93bkljb247XG4gIHB1YmxpYyBhcnJvd1VwSWNvbjogU1ZHSWNvbiA9IGNoZXZyb25VcEljb247XG4gIEBJbnB1dCgpIGV4cGFuZFJvd0luZGV4OiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBjdXN0b21FeHBhbmRSb3dDb2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGVsZXRlQ29sdW1uV2lkdGg6IG51bWJlciA9IDQyO1xuICBleHBhbmRSb3dDb2x1bW5XaWR0aDogbnVtYmVyID0gNTY7XG4gIEBPdXRwdXQoKSBkZWxldGVkUm93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBzaXplczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcGFnZUNvdW50ID0gMDtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZUNvbHVtbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlS2ViYWJSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkZXJUeXBlOiBMb2FkZXJUeXBlID0gTG9hZGVyVHlwZS5wdWxzaW5nO1xuICBASW5wdXQoKSBsb2FkZXJTaXplOiBMb2FkZXJTaXplID0gTG9hZGVyU2l6ZS5tZWRpdW07XG4gIEBJbnB1dCgpIGxvYWRlclRoZW1lOiBMb2FkZXJUaGVtZUNvbG9yID0gTG9hZGVyVGhlbWVDb2xvci5wcmltYXJ5O1xuICBpbml0aWFsR3JpZEhlaWdodDogYW55O1xuICBncmlkQm90dG9tU3BhY2UgPSAyNDtcbiAgcmVzaXplSGVpZ2h0OiBhbnkgPSAwO1xuICBzZWxlY3RBbGxTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICBzZWxlY3RlZEl0ZW1Db3VudDogbnVtYmVyID0gMDtcbiAgc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBkaXNhYmxlUHJlU2VsZWN0ZWRSb3dzID0gZmFsc2U7XG4gIHB1YmxpYyBmb3JtR3JvdXAhOiBGb3JtR3JvdXAgfCBhbnk7XG4gIEBPdXRwdXQoKSB1cGRhdGVkRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBhbGxvd0VkaXRpbmdDZWxsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbHVtbkNvbnRlbnROb1dyYXAgPSBmYWxzZTtcbiAgQElucHV0KCkgaW5maW5pdGVTY3JvbGxMb2FkZXIgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uc2Nyb2xsQm90dG9tID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlzSW5maW5pdGVTY3JvbGxHcmlkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGdyaWRMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHRoaXMuc2V0U2VsZWN0YWJsZVNldHRpbmdzKCk7XG4gIH1cblxuICBjb2x1bW5UZW1wbGF0ZURpY3Q6IGFueSA9IHt9O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uRGF0YS5mb3JFYWNoKChjb2x1bW46IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29sdW1uLnNvcnRhYmxlID0gY29sdW1uLnNvcnRhYmxlID09IHVuZGVmaW5lZCA/IHRydWUgOiBjb2x1bW4uc29ydGFibGU7XG4gICAgICBpZiAoIXRoaXMuaWdub3JlQ29sdW1uQ2VsbENsaWNrLmluY2x1ZGVzKGluZGV4KSkge1xuICAgICAgICBjb2x1bW4uY2xhc3MgPSAnY29sdW1uLWN1cnNvci1wb2ludGVyJztcbiAgICAgIH1cbiAgICB9KVxuICAgIGlmICghdGhpcy5oYXNBcGlTb3J0aW5nKSB7XG4gICAgICB0aGlzLmxvYWRHcmlkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEJvdHRvbSgpIHtcbiAgICB0aGlzLm9uc2Nyb2xsQm90dG9tLmVtaXQoKTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuc2hvd1Rvb2xiYXIgJiYgdGhpcy5pbmZpbml0ZVNjcm9sbExvYWRlcikge1xuICAgICAgcmV0dXJuICdib3RoJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2hvd1Rvb2xiYXIpIHtcbiAgICAgIHJldHVybiAndG9wJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGxMb2FkZXIpIHtcbiAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGFnZWFibGUpIHtcbiAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLl9ncmlkVmlldy5kYXRhPy5sZW5ndGg7XG4gICAgfVxuICAgIHRoaXMuY29sdW1uVGVtcGxhdGVzLmZvckVhY2goeCA9PiB0aGlzLmNvbHVtblRlbXBsYXRlRGljdFt4LnR5cGVdID0geC50ZW1wbGF0ZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0R3JpZCgpO1xuICB9XG5cbiAgaW5pdEdyaWQoKSB7XG4gICAgaWYgKHRoaXMuY3VzdG9tRXhwYW5kUm93Q29sdW1uKSB7XG4gICAgICB0aGlzLmV4cGFuZFJvd0luZGV4LmZvckVhY2goKGlkKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZC5leHBhbmRSb3coaWQpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5fcHJlU2VsZWN0ZWQ7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID09IHRoaXMuX2dyaWRWaWV3LnRvdGFsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgfVxuICAgIGlmICh0aGlzLmdyaWRFbGVtZW50KSB7XG4gICAgICB0aGlzLmluaXRpYWxHcmlkSGVpZ2h0ID1cbiAgICAgICAgdGhpcy5ncmlkRWxlbWVudD8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0SGVpZ2h0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2U7XG4gICAgICAvLyB0aGlzLmdldEdyaWRIZWlnaHQoKTtcblxuICAgICAgY29uc3QgZ3JpZENvbnRhaW5lciA9IHRoaXMuZ3JpZEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2stZ3JpZC1jb250YWluZXInKVswXTtcbiAgICAgIGlmKGdyaWRDb250YWluZXIgJiYgdGhpcy5zZWxlY3RBbGxNZXNzYWdlRWxlbWVudD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShcbiAgICAgICAgICBncmlkQ29udGFpbmVyLnBhcmVudEVsZW1lbnQsXG4gICAgICAgICAgdGhpcy5zZWxlY3RBbGxNZXNzYWdlRWxlbWVudD8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICBncmlkQ29udGFpbmVyLFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKTsgXG4gICAgICB9XG4gICAgICBjb25zdCBzZWxlY3RBbGxDaGVja2JveCA9IHRoaXMuZ3JpZEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3QtYWxsLWhlYWRlciBpbnB1dCcpO1xuICAgICAgaWYoc2VsZWN0QWxsQ2hlY2tib3gpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShzZWxlY3RBbGxDaGVja2JveCwgJ2Rpc2FibGVkJywgdGhpcy5jYW5FbmFibGVTZWxlY3RBbGwoKSk7XG4gICAgICB9XG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RBY3Jvc3NQYWdlcyhpc1NlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy50cmlnZ2VyU2VsZWN0QWxsUGFnZXNFdmVudChpc1NlbGVjdGVkKTtcbiAgICBpZiAoIWlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMub25TZWxlY3RBbGxDaGFuZ2UodGhpcy5wcmV2aW91c1NlbGVjdEFsbFN0YXRlKVxuICAgIH1cbiAgfVxuXG4gIHRyaWdnZXJTZWxlY3RBbGxQYWdlc0V2ZW50KGlzU2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmFsbFBhZ2VzU2VsZWN0ZWQgPSBpc1NlbGVjdGVkO1xuICAgIHRoaXMub25TZWxlY3RBbGxBY3Jvc3NQYWdlcy5lbWl0KGlzU2VsZWN0ZWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtQ291bnQgPSBpc1NlbGVjdGVkID8gdGhpcy5fZ3JpZFZpZXcudG90YWwgOiAwO1xuICAgIGNvbnNvbGUubG9nKCd0cmlnZ2VyU2VsZWN0QWxsUGFnZXNFdmVudCA6IGlzU2VsZWN0ZWQnLCBpc1NlbGVjdGVkKTtcbiAgfVxuXG4gIGFkZFNlbGVjdEFsbE1lc3NhZ2Uoc2VsZWN0QWxsOiBib29sZWFuKSB7XG4gICAgY29uc3QgZWxlbWVudFJlc3VsdCA9IHRoaXMuc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuc2hvd1NlbGVjdEFsbE1lc3NhZ2UgJiYgZWxlbWVudFJlc3VsdCAmJiAodGhpcy5wYWdlQ291bnQgPiAxIHx8IHRoaXMuaXNJbmZpbml0ZVNjcm9sbEdyaWQpKSB7XG4gICAgICBjb25zdCBzZWxlY3RBbGxNc2dFbGVtZW50ID0gdGhpcy5zZWxlY3RBbGxNZXNzYWdlRWxlbWVudD8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcignLmxpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZS1jb250YWluZXInKTtcbiAgICAgIGlmIChzZWxlY3RBbGwpIHtcbiAgICAgICAgdGhpcy5zYXZlZEhlaWdodCA9IGVsZW1lbnRSZXN1bHQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSBlbGVtZW50UmVzdWx0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgXG4gICAgICAgIHNlbGVjdEFsbE1zZ0VsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2xpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZS1zaG93Jyk7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBhZnRlckhlaWdodCA9IGVsZW1lbnRSZXN1bHQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBlbGVtZW50UmVzdWx0LnN0eWxlLmhlaWdodCA9IChlbGVtZW50UmVzdWx0Lm9mZnNldEhlaWdodCAtIChhZnRlckhlaWdodCAtIGJlZm9yZUhlaWdodCkpICsgJ3B4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGVjdEFsbE1zZ0VsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2xpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZS1zaG93Jyk7XG4gICAgICAgIGlmICh0aGlzLmFsbFBhZ2VzU2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXJTZWxlY3RBbGxQYWdlc0V2ZW50KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBpZih0aGlzLnNhdmVkSGVpZ2h0ID4gMCkge1xuICAgICAgICAgIGVsZW1lbnRSZXN1bHQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5zYXZlZEhlaWdodCArICdweCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwYWdlQ2hhbmdlKGV2ZW50OiBQYWdlQ2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHNldFNlbGVjdGFibGVTZXR0aW5ncygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jaGVja2JveE9ubHkgfHwgdGhpcy5tb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgdGhpcy5kcmFnQ29sdW1ucyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0YWJsZVNldHRpbmdzID0ge1xuICAgICAgY2hlY2tib3hPbmx5OiB0aGlzLmNoZWNrYm94T25seSxcbiAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgIGRyYWc6IHRoaXMuZHJhZ0NvbHVtbnMsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFdlIGNhbiBleHRyYWN0IGRhdGEgb3V0IG9mIHJvdyBudW1iZXIgdXNpbmcgYmVsb3cgZnVuY3Rpb25cbiAgLyogZXh0cmFjdCgpIHtcbiAgICB0aGlzLmV4dHJhY3REYXRhSXRlbXMgPSB0aGlzLm15U2VsZWN0aW9uLm1hcChpZHggPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ3JpZERhdGEuZmluZCgoZGF0YTogeyBQcm9kdWN0SUQ6IG51bWJlcjsgfSkgPT4gZGF0YS5Qcm9kdWN0SUQgPT09IGlkeCk7XG4gICAgfSk7XG4gICAgY29uc29sZS5sb2codGhpcy5leHRyYWN0RGF0YUl0ZW1zKVxuICAgIHRoaXMuc2VsZWN0ZWRSb3dEYXRhLmVtaXQodGhpcy5leHRyYWN0RGF0YUl0ZW1zKTtcbiAgfSAqL1xuXG4gIHNlbGVjdGVkS2V5c0NoYW5nZShyb3dzOiBudW1iZXJbXSkge1xuICAgIGxldCBzZWxlY3RlZFJvd0RhdGEgPSBbXTtcbiAgICBsZXQgc2VsZWN0ZWRSb3dzQ291bnQgPSAwO1xuXG4gICAgaWYgKHJvd3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHNlbGVjdGVkUm93c0NvdW50ID0gcm93cz8ubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDAgJiYgdGhpcy5kaXNhYmxlUHJlU2VsZWN0ZWRSb3dzKSB7XG4gICAgICBzZWxlY3RlZFJvd3NDb3VudCA9IHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGg7XG4gICAgICByb3dzID0gdGhpcy5zZWxlY3RlZFJvd3M7XG4gICAgfVxuICAgIHRoaXMucHJldmlvdXNTZWxlY3RBbGxTdGF0ZSA9IHRoaXMuc2VsZWN0QWxsU3RhdGU7XG4gICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9IHRoaXMuZ2V0U2VsZWN0QWxsU3RhdGUoc2VsZWN0ZWRSb3dzQ291bnQpO1xuICAgIGlmICh0aGlzLnNlbGVjdEFsbFN0YXRlID09PSAndW5jaGVja2VkJyB8fCB0aGlzLnNlbGVjdEFsbFN0YXRlID09PSAnaW5kZXRlcm1pbmF0ZScpIHtcbiAgICAgIHRoaXMuYWRkU2VsZWN0QWxsTWVzc2FnZShmYWxzZSk7XG4gICAgfVxuXG4gICAgc2VsZWN0ZWRSb3dEYXRhID0gcm93cy5tYXAocm93RGF0YSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fZ3JpZFZpZXcuZGF0YS5maW5kKChkYXRhKSA9PiBkYXRhW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdID09PSByb3dEYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRSb3dEYXRhLmVtaXQoc2VsZWN0ZWRSb3dEYXRhKTtcbiAgfVxuXG4gIGdldFNlbGVjdEFsbFN0YXRlKHNlbGVjdGVkUm93c0NvdW50Om51bWJlcik6IGFueSB7XG4gICAgaWYgKHNlbGVjdGVkUm93c0NvdW50ID09IHRoaXMuX2dyaWRWaWV3LnRvdGFsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2NoZWNrZWQnO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRSb3dzQ291bnQgPT0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgICAgdGhpcy5hZGRTZWxlY3RBbGxNZXNzYWdlKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdpbmRldGVybWluYXRlJztcbiAgICAgIHRoaXMuYWRkU2VsZWN0QWxsTWVzc2FnZShmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgb25LZWJhYkNsaWNrKGl0ZW06IGFueSwgcm93RGV0YWlsczogYW55KSB7XG4gICAgdGhpcy5rZWJhYkl0ZW1DbGljay5lbWl0KHsgYWN0aW9uOiBpdGVtLCByb3dEZXRhaWxzIH0pO1xuICB9XG5cbiAgb25EZXRhaWxFeHBhbmQocm93RGF0YTogYW55KSB7XG4gICAgdGhpcy5yb3dEZXRhaWxzLmVtaXQocm93RGF0YS5kYXRhSXRlbSk7XG4gIH1cblxuICBjZWxsQ2xpY2tIYW5kbGVyKGFyZ3M6IENlbGxDbGlja0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuYWxsb3dDb2x1bW5DbGljaykge1xuICAgICAgaWYgKHRoaXMuaWdub3JlQ29sdW1uQ2VsbENsaWNrLmluY2x1ZGVzKGFyZ3MuY29sdW1uSW5kZXgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMucm93RGF0YU9mQ2xpY2tlZENlbGwuZW1pdCh7IGRhdGFJdGVtOiBhcmdzLmRhdGFJdGVtLCBjb2x1bW5JbmRleDogYXJncy5jb2x1bW5JbmRleCB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYWxsb3dFZGl0aW5nQ2VsbCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAgPSBjcmVhdGVGb3JtR3JvdXAoYXJncy5kYXRhSXRlbSk7XG4gICAgICBhcmdzLnNlbmRlci5lZGl0Q2VsbChhcmdzLnJvd0luZGV4LCBhcmdzLmNvbHVtbkluZGV4LCB0aGlzLmZvcm1Hcm91cCk7XG4gICAgfVxuICB9XG5cbiAgc29ydENoYW5nZShzb3J0OiBTb3J0RGVzY3JpcHRvcltdKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0ID0gc29ydDtcbiAgICBpZiAoIXRoaXMuaGFzQXBpU29ydGluZykge1xuICAgICAgdGhpcy5sb2FkR3JpZERhdGEoKTtcbiAgICB9XG4gICAgdGhpcy5zb3J0RGlyZWN0aW9uLmVtaXQodGhpcy5zb3J0KTtcbiAgfVxuXG4gIGxvYWRHcmlkRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLl9ncmlkVmlldyA9IHtcbiAgICAgIGRhdGE6IG9yZGVyQnkodGhpcy5ncmlkVmlldz8uZGF0YSwgdGhpcy5zb3J0KSxcbiAgICAgIHRvdGFsOiB0aGlzLl9ncmlkVmlldz8udG90YWwsXG4gICAgfTtcbiAgfVxuXG4gIGV4cGFuZFJvdyhpZDogbnVtYmVyKSB7XG4gICAgdGhpcy5ncmlkLmV4cGFuZFJvdyhpZCk7XG4gICAgdGhpcy5leHBhbmRSb3dJbmRleC5wdXNoKGlkKTtcbiAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAvLyAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICAgIC8vIH0sIDApO1xuICB9XG5cbiAgY29sbGFwc2VSb3coaWQ6IG51bWJlcikge1xuICAgIHRoaXMuZ3JpZC5jb2xsYXBzZVJvdyhpZCk7XG4gICAgdGhpcy5leHBhbmRSb3dJbmRleC5zcGxpY2UodGhpcy5leHBhbmRSb3dJbmRleC5pbmRleE9mKGlkKSwgMSk7XG4gICAgLy8gaWYgKHRoaXMuZXhwYW5kUm93SW5kZXg/Lmxlbmd0aCA9PSAwKSB7XG4gICAgLy8gICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgLy8gICBjb25zdCB2aWV3cG9ydDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpYi1ncmlkJyk7XG4gICAgLy8gICBjb25zdCBncmlkT2Zmc2V0ID0gdmlld3BvcnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgLy8gICBpZiAod2luZG93SGVpZ2h0ID4gZ3JpZE9mZnNldCArIHRoaXMuaW5pdGlhbEdyaWRIZWlnaHQpIHtcbiAgICAvLyAgICAgdGhpcy5oZWlnaHQgPSAnMTAwJSc7XG4gICAgLy8gICAgIHJldHVybjtcbiAgICAvLyAgIH1cbiAgICAvLyAgIC8vIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICAgIC8vIH1cbiAgfVxuXG4gIG9uRGVsZXRlKHJvd0RldGFpbHM6IGFueSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRIZWFkZXJIZWlnaHQoKTtcbiAgICB9LCAxMDAwKTtcbiAgICB0aGlzLmRlbGV0ZWRSb3dEYXRhLmVtaXQocm93RGV0YWlscyk7XG4gIH1cblxuICBnZXRIZWFkZXJIZWlnaHQoKSB7XG4gICAgaWYgKHRoaXMuX2dyaWRWaWV3Py5kYXRhPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAnaGlkZS1oZWFkZXInO1xuICAgIH1cbiAgICByZXR1cm4gJ3ZpZXctaGVhZGVyJztcbiAgfVxuXG4gIC8qXG4gICAqIFRoaXMgbG9naWMgb2YgZHluYW1pY2FsbHkgY2FsY3VsYXRpbmcgdGhlIGhlaWdodCBvZiBncmlkIG5lZWQgZnVydGhlciBicmFpbnN0b3JtaW5nIGhlbmNlIGNvbW1lbnRlZCBmb3Igbm93LlxuICAgKi9cbiAgLy8gZ2V0R3JpZEhlaWdodCgpIHtcbiAgLy8gICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gIC8vICAgY29uc3Qgdmlld3BvcnQ6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaWItZ3JpZCcpO1xuICAvLyAgIGNvbnN0IGdyaWRPZmZzZXQgPSB2aWV3cG9ydC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWTtcbiAgLy8gICBjb25zdCBncmlkSGVpZ2h0ID1cbiAgLy8gICAgIHRoaXMuZ3JpZEVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyB0aGlzLmdyaWRCb3R0b21TcGFjZTsgLy9ncmlkIHNob3VsZCBoYXZlIDI0cHggc3BhY2UgYXQgYm90dG9tXG4gIC8vICAgaWYgKGdyaWRPZmZzZXQgKyBncmlkSGVpZ2h0ID49IHdpbmRvd0hlaWdodCkge1xuICAvLyAgICAgdGhpcy5oZWlnaHQgPSB3aW5kb3dIZWlnaHQgLSAoZ3JpZE9mZnNldCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlKTtcbiAgLy8gICB9XG4gIC8vIH1cblxuICAvLyBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgLy8gcmVzaXplKGV2OiBhbnkpIHtcbiAgLy8gICBpZiAoZXYudGFyZ2V0LmlubmVySGVpZ2h0ID4gdGhpcy5yZXNpemVIZWlnaHQpIHtcbiAgLy8gICAgIHRoaXMucmVzaXplSGVpZ2h0ID0gZXYudGFyZ2V0LmlubmVySGVpZ2h0O1xuICAvLyAgICAgdGhpcy5oZWlnaHQgPSAnMTAwJSc7XG4gIC8vICAgfVxuICAvLyAgIGlmICh0aGlzLnJlc2l6ZUhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAvLyAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSAwO1xuICAvLyAgIH1cbiAgLy8gICB0aGlzLmdldEdyaWRIZWlnaHQoKTtcbiAgLy8gfVxuXG4gIHJvd0NsYXNzID0gKGFyZ3M6IFJvd0NsYXNzQXJncykgPT4ge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cyAmJiB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICdrLWRpc2FibGVkJzogdGhpcy5zZWxlY3RlZFJvd3MuaW5jbHVkZXMoXG4gICAgICAgICAgICBhcmdzLmRhdGFJdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdXG4gICAgICAgICAgKSB8fCB0aGlzLmFsbFBhZ2VzU2VsZWN0ZWQsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH07XG5cbiAgZXhwYW5kQ29sdW1uQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5leHBhbmRSb3dDb2x1bW5XaWR0aCA9IDE5NDtcbiAgICAgIHJldHVybiAnZXhwYW5kLXJvdyc7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kUm93Q29sdW1uV2lkdGggPSA1NjtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBvblNlbGVjdEFsbENoYW5nZShjaGVja2VkU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGVja2VkU3RhdGUgPT09ICdjaGVja2VkJ1xuICAgICkge1xuICAgICAgdGhpcy5fcHJlU2VsZWN0ZWQgPSB0aGlzLl9ncmlkVmlldy5kYXRhXG4gICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSlcbiAgICAgICAgLmZpbHRlcigoaWQ6IGFueSkgPT4gaWQpO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdjaGVja2VkJztcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtQ291bnQgPSB0aGlzLl9ncmlkVmlldy5kYXRhLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5fcHJlU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkUm93cztcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnaW5kZXRlcm1pbmF0ZSc7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUNvdW50ID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcHJlU2VsZWN0ZWQgPSBbXTtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAndW5jaGVja2VkJztcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtQ291bnQgPSAwO1xuICAgIH1cbiAgICB0aGlzLmFkZFNlbGVjdEFsbE1lc3NhZ2UodGhpcy5zZWxlY3RBbGxTdGF0ZSA9PT0gJ2NoZWNrZWQnKTtcbiAgfVxuXG4gIGNhbkVuYWJsZVNlbGVjdEFsbCgpIHtcbiAgICByZXR1cm4gKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPT0gdGhpcy5fZ3JpZFZpZXcudG90YWwgJiZcbiAgICAgIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cylcbiAgfVxuXG4gIHB1YmxpYyBjZWxsQ2xvc2VIYW5kbGVyKGFyZ3M6IENlbGxDbG9zZUV2ZW50KTogdm9pZCB7XG4gICAgbGV0IHsgZm9ybUdyb3VwLCBkYXRhSXRlbSB9ID0gYXJncztcbiAgICBpZiAoIWZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgYXJncy5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSBpZiAoZm9ybUdyb3VwLmRpcnR5KSB7XG4gICAgICBpZiAoYXJncy5vcmlnaW5hbEV2ZW50ICYmIGFyZ3Mub3JpZ2luYWxFdmVudC5rZXlDb2RlID09PSBLZXlzLkVzY2FwZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBPYmplY3QuYXNzaWduKGRhdGFJdGVtLCBmb3JtR3JvdXAudmFsdWUpO1xuICAgICAgdGhpcy5zYXZlQ2hhbmdlcygpO1xuICAgICAgdGhpcy51cGRhdGVkRGF0YS5lbWl0KHRoaXMuZ3JpZC5kYXRhKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWQuY2xvc2VDZWxsKCk7XG4gICAgdGhpcy5ncmlkLmNhbmNlbENlbGwoKTtcbiAgfVxufVxuIiwiPGRpdiAjZ3JpZEVsZW1lbnQgW25nQ2xhc3NdPVwiY29sdW1uQ29udGVudE5vV3JhcCA/ICdjb2x1bW4tY29udGVudC1ub3dyYXAnIDogJydcIj5cbiAgPGtlbmRvLWdyaWQgW2RhdGFdPVwiX2dyaWRWaWV3XCIgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCIgW3NraXBdPVwic2tpcFwiIFtzZWxlY3RhYmxlXT1cInNlbGVjdGFibGVTZXR0aW5nc1wiXG4gICAgW3BhZ2VhYmxlXT1cInBhZ2VhYmxlXCIgW3NvcnRhYmxlXT1cInNvcnRhYmxlXCIgW2xvYWRpbmddPVwiZ3JpZExvYWRpbmdcIiBbZ3JvdXBhYmxlXT1cImdyb3VwYWJsZVwiIFtyZW9yZGVyYWJsZV09XCJyZW9yZGVyYWJsZVwiXG4gICAgW3Jlc2l6YWJsZV09XCJyZXNpemFibGVcIiBbY29sdW1uTWVudV09XCJjb2x1bW5NZW51XCIgW25hdmlnYWJsZV09XCJuYXZpZ2FibGVcIiBbaGVpZ2h0XT1cImdyaWRIZWlnaHRcIlxuICAgIChjaGFuZ2UpPVwic2V0U2VsZWN0YWJsZVNldHRpbmdzKClcIiAoc2VsZWN0ZWRLZXlzQ2hhbmdlKT1cInNlbGVjdGVkS2V5c0NoYW5nZSgkZXZlbnQpXCJcbiAgICBba2VuZG9HcmlkU2VsZWN0QnldPVwiZ3JpZFJvd1NlbGVjdEJ5VmFsdWVcIiAoZGV0YWlsRXhwYW5kKT1cIm9uRGV0YWlsRXhwYW5kKCRldmVudClcIiBbc2VsZWN0ZWRLZXlzXT1cIl9wcmVTZWxlY3RlZFwiXG4gICAgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZSgkZXZlbnQpXCIgKGNlbGxDbGljayk9XCJjZWxsQ2xpY2tIYW5kbGVyKCRldmVudClcIiAoY2VsbENsb3NlKT1cImNlbGxDbG9zZUhhbmRsZXIoJGV2ZW50KVwiXG4gICAgW3NvcnRdPVwic29ydFwiIChzb3J0Q2hhbmdlKT1cInNvcnRDaGFuZ2UoJGV2ZW50KVwiIChzY3JvbGxCb3R0b20pPVwic2Nyb2xsQm90dG9tKClcIiBbbmdDbGFzc109XCJnZXRIZWFkZXJIZWlnaHQoKVwiXG4gICAgaWQ9XCJsaWItZ3JpZFwiIFtyb3dDbGFzc109XCJyb3dDbGFzc1wiPlxuICAgIDxkaXYgI3NlbGVjdEFsbE1lc3NhZ2VFbGVtZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImxpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZS1jb250YWluZXJcIiAqbmdJZj1cIihzZWxlY3RlZEl0ZW1Db3VudCA8IF9ncmlkVmlldy50b3RhbClcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihzZWxlY3RlZEl0ZW1Db3VudCA8IF9ncmlkVmlldy50b3RhbClcIiBjbGFzcz1cImxpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZVwiPlxuICAgICAgICAgIDxsaWItdHlwb2dyYXBoeSBbZGVmYXVsdFRleHRdPVwiJ0FsbCAnK3NlbGVjdGVkSXRlbUNvdW50KycgJytpdGVtTmFtZSsnIG9uIHRoaXMgcGFnZSBhcmUgc2VsZWN0ZWQuJ1wiXG4gICAgICAgICAgICB0eXBlPVwiQk9EWV9TTUFMTFwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgICAgPHU+PGxpYi10eXBvZ3JhcGh5IChjbGljayk9XCJzZWxlY3RBY3Jvc3NQYWdlcyh0cnVlKVwiIGNsYXNzPVwic2VsZWN0LWFsbC1oYW5kbGVyXCJcbiAgICAgICAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidTZWxlY3QgYWxsICcrX2dyaWRWaWV3LnRvdGFsKycgJytpdGVtTmFtZSsnIGZyb20gYWxsIHBhZ2VzJ1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJCT0RZX1NNQUxMXCI+PC9saWItdHlwb2dyYXBoeT48L3U+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYWxsUGFnZXNTZWxlY3RlZFwiIGNsYXNzPVwibGliLWdyaWQtc2VsZWN0LWFsbC1tZXNzYWdlXCI+XG4gICAgICAgICAgPGxpYi1pY29uIG5hbWU9XCJjaXJjbGUtY2hlY2tlZFwiIGNsYXNzPVwiYWxsLXNlbGVjdGVkLWljb25cIj48L2xpYi1pY29uPlxuICAgICAgICAgIDxsaWItdHlwb2dyYXBoeSBbZGVmYXVsdFRleHRdPVwiJ0FsbCAnK19ncmlkVmlldy50b3RhbCsnICcraXRlbU5hbWUrJyBhY3Jvc3MgYWxsIHBhZ2VzIGFyZSBzZWxlY3RlZC4nXCJcbiAgICAgICAgICAgIHR5cGU9XCJCT0RZX1NNQUxMXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgICAgICAgICA8dT48bGliLXR5cG9ncmFwaHkgKGNsaWNrKT1cInNlbGVjdEFjcm9zc1BhZ2VzKGZhbHNlKVwiIGNsYXNzPVwic2VsZWN0LWFsbC1oYW5kbGVyXCJcbiAgICAgICAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidDbGVhciBzZWxlY3Rpb24nXCIgdHlwZT1cIkJPRFlfU01BTExcIj48L2xpYi10eXBvZ3JhcGh5PjwvdT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkVG9vbGJhclRlbXBsYXRlIFtwb3NpdGlvbl09XCJnZXRQb3NpdGlvbigpXCIgbGV0LXBvc2l0aW9uPVwicG9zaXRpb25cIj5cbiAgICAgIDxuZy1jb250ZW50ICpuZ0lmPVwic2hvd1Rvb2xiYXIgJiYgcG9zaXRpb24gPT09ICd0b3AnXCI+PC9uZy1jb250ZW50PlxuICAgICAgPGxpYi1ncmlkLXBhZ2luYXRpb24tc3BhY2VyICpuZ0lmPVwiaW5maW5pdGVTY3JvbGxMb2FkZXIgJiYgcG9zaXRpb24gPT09ICdib3R0b20nXCI+PC9saWItZ3JpZC1wYWdpbmF0aW9uLXNwYWNlcj5cbiAgICAgIDxsaWItbG9hZGVyICpuZ0lmPVwiaW5maW5pdGVTY3JvbGxMb2FkZXIgJiYgcG9zaXRpb24gPT09ICdib3R0b20nXCIgW3R5cGVdPVwibG9hZGVyVHlwZVwiIFtzaXplXT1cImxvYWRlclNpemVcIlxuICAgICAgICBbdGhlbWVDb2xvcl09XCJsb2FkZXJUaGVtZVwiPjwvbGliLWxvYWRlcj5cbiAgICAgIDxsaWItZ3JpZC1wYWdpbmF0aW9uLXNwYWNlciAqbmdJZj1cImluZmluaXRlU2Nyb2xsTG9hZGVyICYmIHBvc2l0aW9uID09PSAnYm90dG9tJ1wiPjwvbGliLWdyaWQtcGFnaW5hdGlvbi1zcGFjZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRMb2FkaW5nVGVtcGxhdGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiay1sb2FkaW5nLWNvbG9yXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxsaWItbG9hZGVyIFt0eXBlXT1cImxvYWRlclR5cGVcIiBbc2l6ZV09XCJsb2FkZXJTaXplXCIgW3RoZW1lQ29sb3JdPVwibG9hZGVyVGhlbWVcIj48L2xpYi1sb2FkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJ0aGlzLl9ncmlkVmlldy50b3RhbCA9PT0gMFwiIGtlbmRvR3JpZE5vUmVjb3Jkc1RlbXBsYXRlPlxuICAgICAgPGxpYi10eXBvZ3JhcGh5ICpuZ0lmPVwiIWxvYWRpbmdcIiBbZGVmYXVsdFRleHRdPVwibm9SZWNvcmRzQ29udGVudFwiIHR5cGU9XCJCT0RZX01FRElVTVwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICA8bGliLWxvYWRlciAqbmdJZj1cImxvYWRpbmdcIiBbdHlwZV09XCJsb2FkZXJUeXBlXCIgW3NpemVdPVwibG9hZGVyU2l6ZVwiIFt0aGVtZUNvbG9yXT1cImxvYWRlclRoZW1lXCI+PC9saWItbG9hZGVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuX2dyaWRWaWV3LnRvdGFsID4gMFwiPlxuICAgICAgPGtlbmRvLWdyaWQtY2hlY2tib3gtY29sdW1uICNzZWxlY3RBbGxDaGVja2JveCBoZWFkZXJDbGFzcz1cInNlbGVjdC1hbGwtaGVhZGVyXCIgKm5nSWY9XCJjaGVja0JveFJlcXVpcmVkID09PSB0cnVlXCIgW3dpZHRoXT1cImNoZWNrQm94V2lkdGhcIlxuICAgICAgICBbcmVzaXphYmxlXT1cImNoZWNrQm94Q29sdW1uUmVzaXphYmxlXCIgW2NvbHVtbk1lbnVdPVwiY2hlY2tCb3hDb2x1bW5NZW51XCIgY2xhc3M9XCJjaGVja2JveC1jb2x1bW5cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIDxpbnB1dCBpZD1cInNlbGVjdEFsbENoZWNrYm94SWRcIiB0eXBlPVwiY2hlY2tib3hcIiBrZW5kb0NoZWNrQm94IGtlbmRvR3JpZFNlbGVjdEFsbENoZWNrYm94XG4gICAgICAgICAgICBbc3RhdGVdPVwic2VsZWN0QWxsU3RhdGVcIiAoc2VsZWN0QWxsQ2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbj5cblxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uIGNsYXNzPVwiZ3JpZC1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2x1bW5EYXRhXCIgW2ZpZWxkXT1cIml0ZW0uZmllbGRcIiBbdGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgIFt3aWR0aF09XCJpdGVtLmNvbHVtbldpZHRoXCIgW3NvcnRhYmxlXT1cIml0ZW0uc29ydGFibGVcIiBbZWRpdG9yXT1cIml0ZW0uZWRpdG9yXCIgW2NsYXNzXT1cIml0ZW0uY2xhc3NcIj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJzb3J0YWJsZVwiIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIHt7aXRlbS50aXRsZX19XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0WzBdLmZpZWxkID09PSBpdGVtLmZpZWxkXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZGlyID09PSAnYXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5kaXIgPT09ICdkZXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5jdXN0b21Db2x1bW5cIiBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uVGVtcGxhdGVEaWN0W2l0ZW0udHlwZV1cIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uY3VzdG9tXCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVSZWY7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpdGVtLmltcGFjdFwiIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImltcGFjdENvbHVtbjsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gKm5nSWY9XCJzaG93RGVsZXRlQ29sdW1uXCIgW3dpZHRoXT1cImRlbGV0ZUNvbHVtbldpZHRoXCIgY2xhc3M9XCJkZWxldGUtY29sdW1uXCIgdGl0bGU9XCJBY3Rpb25cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICA8bGliLXRvb2x0aXAgc2hvd09uPVwiaG92ZXJcIiBwb3NpdGlvbj1cImJvdHRvbVwiIGNsYXNzPVwicmVtb3ZlLXRvb2x0aXBcIj5cbiAgICAgICAgICAgIDxsaWItaWNvbiBuYW1lPVwiZGVsZXRlXCIgY2xhc3M9XCJkZWxldGUtaWNvblwiIChjbGljayk9XCJvbkRlbGV0ZShkYXRhSXRlbSlcIj48L2xpYi1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxuICAgICAgICAgICAgICA8bGliLXR5cG9ncmFwaHkgZGVmYXVsdFRleHQ9XCJSZW1vdmVcIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9saWItdG9vbHRpcD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICAgIDxrZW5kby1ncmlkLWNvbHVtbiBbd2lkdGhdPVwia2ViYWJDb2x1bW5XaWR0aFwiIGNsYXNzPVwia2ViYWItY29sdW1uXCIgKm5nSWY9XCJzaG93S2ViYWJcIiB0aXRsZT1cIkFjdGlvbnNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICA8a2VuZG8tZHJvcGRvd25idXR0b24gKm5nSWY9XCIhaGlkZUtlYmFiUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiaWNvblwiIGZpbGxNb2RlPVwibm9uZVwiXG4gICAgICAgICAgICBbZGF0YV09XCJrZWJhYkxpc3QgfCBrZWJhYk1lbnVGaWx0ZXIgOiBkYXRhSXRlbVwiIGNsYXNzPVwia2ViYWJcIiAoaXRlbUNsaWNrKT1cIm9uS2ViYWJDbGljaygkZXZlbnQsIGRhdGFJdGVtKVwiXG4gICAgICAgICAgICBbcG9wdXBTZXR0aW5nc109XCJ7IGFsaWduOiAncmlnaHQnLCBhbmltYXRlOiB0cnVlLCBwb3B1cENsYXNzOiAna2ViYWItbGlzdCcgfVwiPlxuICAgICAgICAgIDwva2VuZG8tZHJvcGRvd25idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZERldGFpbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZXRhaWxUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxrZW5kby1ncmlkLWNvbHVtbiAqbmdJZj1cImN1c3RvbUV4cGFuZFJvd0NvbHVtblwiIFt3aWR0aF09XCJleHBhbmRSb3dDb2x1bW5XaWR0aFwiIGNsYXNzPVwiZ3JpZC1jb2x1bW4gZXhwYW5kLWNvbHVtblwiPlxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJleHBhbmRDb2x1bW5DbGFzcygpXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFJvd3MuaW5jbHVkZXMoZGF0YUl0ZW1bZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdKSAmJiBkaXNhYmxlUHJlU2VsZWN0ZWRSb3dzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5kLWNvbHVtbi10ZXh0XCI+XG4gICAgICAgICAgICBBbHJlYWR5IGFkZGVkXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxrZW5kby1idXR0b24gKm5nSWY9XCIhZXhwYW5kUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiYXJyb3dEb3duSWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kUm93KHJvd0luZGV4KVwiIGZpbGxNb2RlPVwibm9uZVwiIGNsYXNzPVwiYXJyb3ctYnRuXCI+XG4gICAgICAgICAgPC9rZW5kby1idXR0b24+XG4gICAgICAgICAgPGtlbmRvLWJ1dHRvbiAqbmdJZj1cImV4cGFuZFJvd0luZGV4LmluY2x1ZGVzKHJvd0luZGV4KVwiIFtzdmdJY29uXT1cImFycm93VXBJY29uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjb2xsYXBzZVJvdyhyb3dJbmRleClcIiBmaWxsTW9kZT1cIm5vbmVcIiBjbGFzcz1cImFycm93LWJ0blwiPlxuICAgICAgICAgIDwva2VuZG8tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cblxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1BhZ2VyVGVtcGxhdGUgbGV0LXRvdGFsUGFnZXM9XCJ0b3RhbFBhZ2VzXCIgbGV0LWN1cnJlbnRQYWdlPVwiY3VycmVudFBhZ2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLXdyYXBwZXJcIiBbbmdDbGFzc109XCJhbGxQYWdlc1NlbGVjdGVkID8gJ3BhZ2luYXRpb24tZGlzYWJsZWQnIDogJydcIj5cbiAgICAgICAgPGtlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz5cbiAgICAgICAgPGtlbmRvLXBhZ2VyLW51bWVyaWMtYnV0dG9ucyBbYnV0dG9uQ291bnRdPVwicGFnZUNvdW50XCI+PC9rZW5kby1wYWdlci1udW1lcmljLWJ1dHRvbnM+XG4gICAgICAgIDxrZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+XG4gICAgICAgIDxrZW5kby1wYWdlci1pbmZvPjwva2VuZG8tcGFnZXItaW5mbz5cbiAgICAgICAgPGtlbmRvLXBhZ2VyLXBhZ2Utc2l6ZXMgW3BhZ2VTaXplc109XCJzaXplc1wiPjwva2VuZG8tcGFnZXItcGFnZS1zaXplcz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgPC9rZW5kby1ncmlkPlxuPC9kaXY+Il19
595
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBSU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RCxPQUFPLEVBR0wsYUFBYSxFQU9kLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFrQixPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBRUwsZUFBZSxFQUNmLGFBQWEsRUFDYixnQkFBZ0IsRUFDakIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFLL0YsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtRQUQxQyxTQUFJLEdBQVcsRUFBRSxDQUFDO0lBQzRCLENBQUM7K0dBRjdDLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUho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QkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0Usb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS2V5cyB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQge1xuICBDZWxsQ2xpY2tFdmVudCxcbiAgQ2VsbENsb3NlRXZlbnQsXG4gIEdyaWRDb21wb25lbnQsXG4gIEdyaWREYXRhUmVzdWx0LFxuICBQYWdlQ2hhbmdlRXZlbnQsXG4gIFJvd0NsYXNzQXJncyxcbiAgU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSxcbiAgU2VsZWN0YWJsZU1vZGUsXG4gIFNlbGVjdGFibGVTZXR0aW5nc1xufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7IFNvcnREZXNjcmlwdG9yLCBvcmRlckJ5IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHtcbiAgU1ZHSWNvbixcbiAgY2hldnJvbkRvd25JY29uLFxuICBjaGV2cm9uVXBJY29uLFxuICBtb3JlVmVydGljYWxJY29uXG59IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1zdmctaWNvbnMnO1xuaW1wb3J0IHsgTG9hZGVyU2l6ZSwgTG9hZGVyVGhlbWVDb2xvciwgTG9hZGVyVHlwZSB9IGZyb20gJy4uLy4uL2F0b21zL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbdHlwZV0nXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbHVtblRlbXBsYXRlIHtcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nID0gXCJcIjtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb21wb25lbnQ+KSB7IH1cbn1cblxuY29uc3QgY3JlYXRlRm9ybUdyb3VwID0gKGRhdGFJdGVtOiBhbnkpOiBGb3JtR3JvdXAgPT4ge1xuICBjb25zdCBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIGZvciAobGV0IGRhdGEgb2YgT2JqZWN0LmtleXMoZGF0YUl0ZW0pKSB7XG4gICAgZm9ybS5hZGRDb250cm9sKGRhdGEsIG5ldyBGb3JtQ29udHJvbChkYXRhSXRlbVtkYXRhXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCkpXG4gIH1cbiAgcmV0dXJuIGZvcm1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ncmlkLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRQYWdpbmF0aW9uQ29tcG9uZW50XG5pbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBDb250ZW50Q2hpbGRyZW4oQ3VzdG9tQ29sdW1uVGVtcGxhdGUpIGNvbHVtblRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxDdXN0b21Db2x1bW5UZW1wbGF0ZT4gfCBbXTtcbiAgQENvbnRlbnRDaGlsZCgnbXVsdGlDb2x1bW5EYXRhJykgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnZGV0YWlsVGVtcGxhdGUnKSBkZXRhaWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdpbXBhY3RDb2x1bW4nKSBpbXBhY3RDb2x1bW4hOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQFZpZXdDaGlsZChHcmlkQ29tcG9uZW50KSBncmlkITogR3JpZENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZ3JpZEVsZW1lbnQnKSBncmlkRWxlbWVudCE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEFsbENoZWNrYm94Jykgc2VsZWN0QWxsQ2hlY2tib3ghOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzZWxlY3RBbGxNZXNzYWdlRWxlbWVudCcpIHNlbGVjdEFsbE1lc3NhZ2VFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgQElucHV0KCkgc2tpcDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgaXRlbU5hbWU6IHN0cmluZyA9ICdJdGVtcyc7XG4gIEBJbnB1dCgpIHNob3dTZWxlY3RBbGxNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIGFsbFBhZ2VzU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2F2ZWRIZWlnaHQ6IG51bWJlciA9IDA7XG4gIHByZXZpb3VzU2VsZWN0QWxsU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUgPSAndW5jaGVja2VkJztcbiAgQE91dHB1dCgpIG9uU2VsZWN0QWxsQWNyb3NzUGFnZXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBJbnB1dCgpIGNvbHVtbkRhdGE6IGFueSA9IFtdO1xuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgcGFnZWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc29ydGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZ3JvdXBhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlb3JkZXJhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveFdpZHRoOiBudW1iZXIgPSA0NTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5SZXNpemFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94Q29sdW1uU2hvd1NlbGVjdGVkQWxsOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgY2hlY2tCb3hSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjb2x1bW5NZW51OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vZGU6IFNlbGVjdGFibGVNb2RlIHwgdW5kZWZpbmVkID0gJ211bHRpcGxlJztcbiAgQElucHV0KCkgY2hlY2tib3hPbmx5ID0gdHJ1ZTtcbiAgQElucHV0KCkgZHJhZ0NvbHVtbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgbmF2aWdhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZ3JpZEhlaWdodCE6IGFueTtcbiAgQElucHV0KCkgZ3JpZFJvd1NlbGVjdEJ5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBub1JlY29yZHNDb250ZW50OiBzdHJpbmcgPSAnTm8gUmVjb3JkcyBBdmFpbGFibGUnO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXh0cmFjdERhdGFJdGVtczogYW55O1xuICBzZWxlY3RhYmxlU2V0dGluZ3M6IFNlbGVjdGFibGVTZXR0aW5ncyA9IHt9O1xuICBASW5wdXQoKSBrZWJhYkxpc3Q6IGFueSA9IFtdO1xuICBASW5wdXQoKSBzaG93S2ViYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJvd0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkga2ViYWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWNvbjogU1ZHSWNvbiA9IG1vcmVWZXJ0aWNhbEljb247XG4gIEBJbnB1dCgpIGtlYmFiQ29sdW1uV2lkdGg6IG51bWJlciA9IDYwO1xuICBkYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0Q29sdW1uID0gJyc7XG4gIEBPdXRwdXQoKSByb3dEYXRhT2ZDbGlja2VkQ2VsbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBfcHJlU2VsZWN0ZWQ6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHNldCBwcmVTZWxlY3RlZCh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLl9wcmVTZWxlY3RlZCA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdEdyaWQoKTtcbiAgfVxuICBfZ3JpZFZpZXc6IEdyaWREYXRhUmVzdWx0ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgQElucHV0KCkgc2V0IGdyaWRWaWV3KHZhbHVlOiBHcmlkRGF0YVJlc3VsdCkge1xuICAgIHRoaXMuX2dyaWRWaWV3ID0gdmFsdWU7XG4gIH1cbiAgcHJlU2VsZWN0ZWRSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlnbm9yZUNvbHVtbkNlbGxDbGljazogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dDb2x1bW5DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvcltdID0gW1xuICAgIHtcbiAgICAgIGZpZWxkOiAnJyxcbiAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgIH0sXG4gIF07XG4gIEBJbnB1dCgpIGhhc0FwaVNvcnRpbmcgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNvcnREaXJlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGFycm93RG93bkljb246IFNWR0ljb24gPSBjaGV2cm9uRG93bkljb247XG4gIHB1YmxpYyBhcnJvd1VwSWNvbjogU1ZHSWNvbiA9IGNoZXZyb25VcEljb247XG4gIEBJbnB1dCgpIGV4cGFuZFJvd0luZGV4OiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBjdXN0b21FeHBhbmRSb3dDb2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGVsZXRlQ29sdW1uV2lkdGg6IG51bWJlciA9IDQyO1xuICBleHBhbmRSb3dDb2x1bW5XaWR0aDogbnVtYmVyID0gNTY7XG4gIEBPdXRwdXQoKSBkZWxldGVkUm93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBzaXplczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcGFnZUNvdW50ID0gMDtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZUNvbHVtbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlS2ViYWJSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkZXJUeXBlOiBMb2FkZXJUeXBlID0gTG9hZGVyVHlwZS5wdWxzaW5nO1xuICBASW5wdXQoKSBsb2FkZXJTaXplOiBMb2FkZXJTaXplID0gTG9hZGVyU2l6ZS5tZWRpdW07XG4gIEBJbnB1dCgpIGxvYWRlclRoZW1lOiBMb2FkZXJUaGVtZUNvbG9yID0gTG9hZGVyVGhlbWVDb2xvci5wcmltYXJ5O1xuICBpbml0aWFsR3JpZEhlaWdodDogYW55O1xuICBncmlkQm90dG9tU3BhY2UgPSAyNDtcbiAgcmVzaXplSGVpZ2h0OiBhbnkgPSAwO1xuICBzZWxlY3RBbGxTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICBzZWxlY3RlZEl0ZW1Db3VudDogbnVtYmVyID0gMDtcbiAgc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBkaXNhYmxlUHJlU2VsZWN0ZWRSb3dzID0gZmFsc2U7XG4gIHB1YmxpYyBmb3JtR3JvdXAhOiBGb3JtR3JvdXAgfCBhbnk7XG4gIEBPdXRwdXQoKSB1cGRhdGVkRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBhbGxvd0VkaXRpbmdDZWxsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbHVtbkNvbnRlbnROb1dyYXAgPSBmYWxzZTtcbiAgQElucHV0KCkgaW5maW5pdGVTY3JvbGxMb2FkZXIgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uc2Nyb2xsQm90dG9tID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlzSW5maW5pdGVTY3JvbGxHcmlkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGdyaWRMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHRoaXMuc2V0U2VsZWN0YWJsZVNldHRpbmdzKCk7XG4gIH1cblxuICBjb2x1bW5UZW1wbGF0ZURpY3Q6IGFueSA9IHt9O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uRGF0YS5mb3JFYWNoKChjb2x1bW46IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29sdW1uLnNvcnRhYmxlID0gY29sdW1uLnNvcnRhYmxlID09IHVuZGVmaW5lZCA/IHRydWUgOiBjb2x1bW4uc29ydGFibGU7XG4gICAgICBpZiAoIXRoaXMuaWdub3JlQ29sdW1uQ2VsbENsaWNrLmluY2x1ZGVzKGluZGV4KSkge1xuICAgICAgICBjb2x1bW4uY2xhc3MgPSAnY29sdW1uLWN1cnNvci1wb2ludGVyJztcbiAgICAgIH1cbiAgICB9KVxuICAgIGlmICghdGhpcy5oYXNBcGlTb3J0aW5nKSB7XG4gICAgICB0aGlzLmxvYWRHcmlkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEJvdHRvbSgpIHtcbiAgICB0aGlzLm9uc2Nyb2xsQm90dG9tLmVtaXQoKTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuc2hvd1Rvb2xiYXIgJiYgdGhpcy5pbmZpbml0ZVNjcm9sbExvYWRlcikge1xuICAgICAgcmV0dXJuICdib3RoJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2hvd1Rvb2xiYXIpIHtcbiAgICAgIHJldHVybiAndG9wJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGxMb2FkZXIpIHtcbiAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGFnZWFibGUpIHtcbiAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLl9ncmlkVmlldy5kYXRhPy5sZW5ndGg7XG4gICAgfVxuICAgIHRoaXMuY29sdW1uVGVtcGxhdGVzLmZvckVhY2goeCA9PiB0aGlzLmNvbHVtblRlbXBsYXRlRGljdFt4LnR5cGVdID0geC50ZW1wbGF0ZSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0R3JpZCgpO1xuICB9XG5cbiAgaW5pdEdyaWQoKSB7XG4gICAgaWYgKHRoaXMuY3VzdG9tRXhwYW5kUm93Q29sdW1uKSB7XG4gICAgICB0aGlzLmV4cGFuZFJvd0luZGV4LmZvckVhY2goKGlkKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZC5leHBhbmRSb3coaWQpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5fcHJlU2VsZWN0ZWQ7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID09IHRoaXMuX2dyaWRWaWV3LnRvdGFsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgfVxuICAgIGlmICh0aGlzLmdyaWRFbGVtZW50KSB7XG4gICAgICB0aGlzLmluaXRpYWxHcmlkSGVpZ2h0ID1cbiAgICAgICAgdGhpcy5ncmlkRWxlbWVudD8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0SGVpZ2h0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2U7XG4gICAgICAvLyB0aGlzLmdldEdyaWRIZWlnaHQoKTtcblxuICAgICAgY29uc3QgZ3JpZENvbnRhaW5lciA9IHRoaXMuZ3JpZEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2stZ3JpZC1jb250YWluZXInKVswXTtcbiAgICAgIGlmKGdyaWRDb250YWluZXIgJiYgdGhpcy5zZWxlY3RBbGxNZXNzYWdlRWxlbWVudD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShcbiAgICAgICAgICBncmlkQ29udGFpbmVyLnBhcmVudEVsZW1lbnQsXG4gICAgICAgICAgdGhpcy5zZWxlY3RBbGxNZXNzYWdlRWxlbWVudD8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICBncmlkQ29udGFpbmVyLFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKTsgXG4gICAgICB9XG4gICAgICBjb25zdCBzZWxlY3RBbGxDaGVja2JveCA9IHRoaXMuZ3JpZEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3QtYWxsLWhlYWRlciBpbnB1dCcpO1xuICAgICAgaWYoc2VsZWN0QWxsQ2hlY2tib3gpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShzZWxlY3RBbGxDaGVja2JveCwgJ2Rpc2FibGVkJywgdGhpcy5jYW5FbmFibGVTZWxlY3RBbGwoKSk7XG4gICAgICB9XG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RBY3Jvc3NQYWdlcyhpc1NlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy50cmlnZ2VyU2VsZWN0QWxsUGFnZXNFdmVudChpc1NlbGVjdGVkKTtcbiAgICBpZiAoIWlzU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMub25TZWxlY3RBbGxDaGFuZ2UodGhpcy5wcmV2aW91c1NlbGVjdEFsbFN0YXRlKVxuICAgIH1cbiAgfVxuXG4gIHRyaWdnZXJTZWxlY3RBbGxQYWdlc0V2ZW50KGlzU2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmFsbFBhZ2VzU2VsZWN0ZWQgPSBpc1NlbGVjdGVkO1xuICAgIHRoaXMub25TZWxlY3RBbGxBY3Jvc3NQYWdlcy5lbWl0KGlzU2VsZWN0ZWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtQ291bnQgPSBpc1NlbGVjdGVkID8gdGhpcy5fZ3JpZFZpZXcudG90YWwgOiAwO1xuICAgIGNvbnNvbGUubG9nKCd0cmlnZ2VyU2VsZWN0QWxsUGFnZXNFdmVudCA6IGlzU2VsZWN0ZWQnLCBpc1NlbGVjdGVkKTtcbiAgfVxuXG4gIGFkZFNlbGVjdEFsbE1lc3NhZ2Uoc2VsZWN0QWxsOiBib29sZWFuKSB7XG4gICAgY29uc3QgZWxlbWVudFJlc3VsdCA9IHRoaXMuc2VsZWN0QWxsTWVzc2FnZUVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuc2hvd1NlbGVjdEFsbE1lc3NhZ2UgJiYgZWxlbWVudFJlc3VsdCAmJiAodGhpcy5wYWdlQ291bnQgPiAxIHx8IHRoaXMuaXNJbmZpbml0ZVNjcm9sbEdyaWQpKSB7XG4gICAgICBjb25zdCBzZWxlY3RBbGxNc2dFbGVtZW50ID0gdGhpcy5zZWxlY3RBbGxNZXNzYWdlRWxlbWVudD8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcignLmxpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZS1jb250YWluZXInKTtcbiAgICAgIGlmIChzZWxlY3RBbGwpIHtcbiAgICAgICAgdGhpcy5zYXZlZEhlaWdodCA9IGVsZW1lbnRSZXN1bHQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSBlbGVtZW50UmVzdWx0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgXG4gICAgICAgIHNlbGVjdEFsbE1zZ0VsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2xpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZS1zaG93Jyk7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBhZnRlckhlaWdodCA9IGVsZW1lbnRSZXN1bHQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICBlbGVtZW50UmVzdWx0LnN0eWxlLmhlaWdodCA9IChlbGVtZW50UmVzdWx0Lm9mZnNldEhlaWdodCAtIChhZnRlckhlaWdodCAtIGJlZm9yZUhlaWdodCkpICsgJ3B4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlbGVjdEFsbE1zZ0VsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2xpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZS1zaG93Jyk7XG4gICAgICAgIGlmICh0aGlzLmFsbFBhZ2VzU2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLnRyaWdnZXJTZWxlY3RBbGxQYWdlc0V2ZW50KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBpZih0aGlzLnNhdmVkSGVpZ2h0ID4gMCkge1xuICAgICAgICAgIGVsZW1lbnRSZXN1bHQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5zYXZlZEhlaWdodCArICdweCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwYWdlQ2hhbmdlKGV2ZW50OiBQYWdlQ2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHNldFNlbGVjdGFibGVTZXR0aW5ncygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jaGVja2JveE9ubHkgfHwgdGhpcy5tb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgdGhpcy5kcmFnQ29sdW1ucyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0YWJsZVNldHRpbmdzID0ge1xuICAgICAgY2hlY2tib3hPbmx5OiB0aGlzLmNoZWNrYm94T25seSxcbiAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgIGRyYWc6IHRoaXMuZHJhZ0NvbHVtbnMsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFdlIGNhbiBleHRyYWN0IGRhdGEgb3V0IG9mIHJvdyBudW1iZXIgdXNpbmcgYmVsb3cgZnVuY3Rpb25cbiAgLyogZXh0cmFjdCgpIHtcbiAgICB0aGlzLmV4dHJhY3REYXRhSXRlbXMgPSB0aGlzLm15U2VsZWN0aW9uLm1hcChpZHggPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ3JpZERhdGEuZmluZCgoZGF0YTogeyBQcm9kdWN0SUQ6IG51bWJlcjsgfSkgPT4gZGF0YS5Qcm9kdWN0SUQgPT09IGlkeCk7XG4gICAgfSk7XG4gICAgY29uc29sZS5sb2codGhpcy5leHRyYWN0RGF0YUl0ZW1zKVxuICAgIHRoaXMuc2VsZWN0ZWRSb3dEYXRhLmVtaXQodGhpcy5leHRyYWN0RGF0YUl0ZW1zKTtcbiAgfSAqL1xuXG4gIHNlbGVjdGVkS2V5c0NoYW5nZShyb3dzOiBudW1iZXJbXSkge1xuICAgIGxldCBzZWxlY3RlZFJvd0RhdGEgPSBbXTtcbiAgICBsZXQgc2VsZWN0ZWRSb3dzQ291bnQgPSAwO1xuXG4gICAgaWYgKHJvd3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHNlbGVjdGVkUm93c0NvdW50ID0gcm93cz8ubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDAgJiYgdGhpcy5kaXNhYmxlUHJlU2VsZWN0ZWRSb3dzKSB7XG4gICAgICBzZWxlY3RlZFJvd3NDb3VudCA9IHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGg7XG4gICAgICByb3dzID0gdGhpcy5zZWxlY3RlZFJvd3M7XG4gICAgfVxuICAgIHRoaXMucHJldmlvdXNTZWxlY3RBbGxTdGF0ZSA9IHRoaXMuc2VsZWN0QWxsU3RhdGU7XG4gICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9IHRoaXMuZ2V0U2VsZWN0QWxsU3RhdGUoc2VsZWN0ZWRSb3dzQ291bnQpO1xuICAgIGlmICh0aGlzLnNlbGVjdEFsbFN0YXRlID09PSAndW5jaGVja2VkJyB8fCB0aGlzLnNlbGVjdEFsbFN0YXRlID09PSAnaW5kZXRlcm1pbmF0ZScpIHtcbiAgICAgIHRoaXMuYWRkU2VsZWN0QWxsTWVzc2FnZShmYWxzZSk7XG4gICAgfVxuXG4gICAgc2VsZWN0ZWRSb3dEYXRhID0gcm93cy5tYXAocm93RGF0YSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fZ3JpZFZpZXcuZGF0YS5maW5kKChkYXRhKSA9PiBkYXRhW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdID09PSByb3dEYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRSb3dEYXRhLmVtaXQoc2VsZWN0ZWRSb3dEYXRhKTtcbiAgfVxuXG4gIGdldFNlbGVjdEFsbFN0YXRlKHNlbGVjdGVkUm93c0NvdW50Om51bWJlcik6IGFueSB7XG4gICAgaWYgKHNlbGVjdGVkUm93c0NvdW50ID09IHRoaXMuX2dyaWRWaWV3LnRvdGFsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2NoZWNrZWQnO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRSb3dzQ291bnQgPT0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgICAgdGhpcy5hZGRTZWxlY3RBbGxNZXNzYWdlKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdpbmRldGVybWluYXRlJztcbiAgICAgIHRoaXMuYWRkU2VsZWN0QWxsTWVzc2FnZShmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgb25LZWJhYkNsaWNrKGl0ZW06IGFueSwgcm93RGV0YWlsczogYW55KSB7XG4gICAgdGhpcy5rZWJhYkl0ZW1DbGljay5lbWl0KHsgYWN0aW9uOiBpdGVtLCByb3dEZXRhaWxzIH0pO1xuICB9XG5cbiAgb25EZXRhaWxFeHBhbmQocm93RGF0YTogYW55KSB7XG4gICAgdGhpcy5yb3dEZXRhaWxzLmVtaXQocm93RGF0YS5kYXRhSXRlbSk7XG4gIH1cblxuICBjZWxsQ2xpY2tIYW5kbGVyKGFyZ3M6IENlbGxDbGlja0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuYWxsb3dDb2x1bW5DbGljaykge1xuICAgICAgaWYgKHRoaXMuaWdub3JlQ29sdW1uQ2VsbENsaWNrLmluY2x1ZGVzKGFyZ3MuY29sdW1uSW5kZXgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMucm93RGF0YU9mQ2xpY2tlZENlbGwuZW1pdCh7IGRhdGFJdGVtOiBhcmdzLmRhdGFJdGVtLCBjb2x1bW5JbmRleDogYXJncy5jb2x1bW5JbmRleCB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYWxsb3dFZGl0aW5nQ2VsbCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAgPSBjcmVhdGVGb3JtR3JvdXAoYXJncy5kYXRhSXRlbSk7XG4gICAgICBhcmdzLnNlbmRlci5lZGl0Q2VsbChhcmdzLnJvd0luZGV4LCBhcmdzLmNvbHVtbkluZGV4LCB0aGlzLmZvcm1Hcm91cCk7XG4gICAgfVxuICB9XG5cbiAgc29ydENoYW5nZShzb3J0OiBTb3J0RGVzY3JpcHRvcltdKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0ID0gc29ydDtcbiAgICBpZiAoIXRoaXMuaGFzQXBpU29ydGluZykge1xuICAgICAgdGhpcy5sb2FkR3JpZERhdGEoKTtcbiAgICB9XG4gICAgdGhpcy5zb3J0RGlyZWN0aW9uLmVtaXQodGhpcy5zb3J0KTtcbiAgfVxuXG4gIGxvYWRHcmlkRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLl9ncmlkVmlldyA9IHtcbiAgICAgIGRhdGE6IG9yZGVyQnkodGhpcy5fZ3JpZFZpZXc/LmRhdGEsIHRoaXMuc29ydCksXG4gICAgICB0b3RhbDogdGhpcy5fZ3JpZFZpZXc/LnRvdGFsLFxuICAgIH07XG4gIH1cblxuICBleHBhbmRSb3coaWQ6IG51bWJlcikge1xuICAgIHRoaXMuZ3JpZC5leHBhbmRSb3coaWQpO1xuICAgIHRoaXMuZXhwYW5kUm93SW5kZXgucHVzaChpZCk7XG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgLy8gICB0aGlzLmdldEdyaWRIZWlnaHQoKTtcbiAgICAvLyB9LCAwKTtcbiAgfVxuXG4gIGNvbGxhcHNlUm93KGlkOiBudW1iZXIpIHtcbiAgICB0aGlzLmdyaWQuY29sbGFwc2VSb3coaWQpO1xuICAgIHRoaXMuZXhwYW5kUm93SW5kZXguc3BsaWNlKHRoaXMuZXhwYW5kUm93SW5kZXguaW5kZXhPZihpZCksIDEpO1xuICAgIC8vIGlmICh0aGlzLmV4cGFuZFJvd0luZGV4Py5sZW5ndGggPT0gMCkge1xuICAgIC8vICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgIC8vICAgY29uc3Qgdmlld3BvcnQ6IGFueSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaWItZ3JpZCcpO1xuICAgIC8vICAgY29uc3QgZ3JpZE9mZnNldCA9IHZpZXdwb3J0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xuICAgIC8vICAgaWYgKHdpbmRvd0hlaWdodCA+IGdyaWRPZmZzZXQgKyB0aGlzLmluaXRpYWxHcmlkSGVpZ2h0KSB7XG4gICAgLy8gICAgIHRoaXMuaGVpZ2h0ID0gJzEwMCUnO1xuICAgIC8vICAgICByZXR1cm47XG4gICAgLy8gICB9XG4gICAgLy8gICAvLyB0aGlzLmdldEdyaWRIZWlnaHQoKTtcbiAgICAvLyB9XG4gIH1cblxuICBvbkRlbGV0ZShyb3dEZXRhaWxzOiBhbnkpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZ2V0SGVhZGVySGVpZ2h0KCk7XG4gICAgfSwgMTAwMCk7XG4gICAgdGhpcy5kZWxldGVkUm93RGF0YS5lbWl0KHJvd0RldGFpbHMpO1xuICB9XG5cbiAgZ2V0SGVhZGVySGVpZ2h0KCkge1xuICAgIGlmICh0aGlzLl9ncmlkVmlldz8uZGF0YT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJ2hpZGUtaGVhZGVyJztcbiAgICB9XG4gICAgcmV0dXJuICd2aWV3LWhlYWRlcic7XG4gIH1cblxuICAvKlxuICAgKiBUaGlzIGxvZ2ljIG9mIGR5bmFtaWNhbGx5IGNhbGN1bGF0aW5nIHRoZSBoZWlnaHQgb2YgZ3JpZCBuZWVkIGZ1cnRoZXIgYnJhaW5zdG9ybWluZyBoZW5jZSBjb21tZW50ZWQgZm9yIG5vdy5cbiAgICovXG4gIC8vIGdldEdyaWRIZWlnaHQoKSB7XG4gIC8vICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAvLyAgIGNvbnN0IHZpZXdwb3J0OiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGliLWdyaWQnKTtcbiAgLy8gICBjb25zdCBncmlkT2Zmc2V0ID0gdmlld3BvcnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gIC8vICAgY29uc3QgZ3JpZEhlaWdodCA9XG4gIC8vICAgICB0aGlzLmdyaWRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2U7IC8vZ3JpZCBzaG91bGQgaGF2ZSAyNHB4IHNwYWNlIGF0IGJvdHRvbVxuICAvLyAgIGlmIChncmlkT2Zmc2V0ICsgZ3JpZEhlaWdodCA+PSB3aW5kb3dIZWlnaHQpIHtcbiAgLy8gICAgIHRoaXMuaGVpZ2h0ID0gd2luZG93SGVpZ2h0IC0gKGdyaWRPZmZzZXQgKyB0aGlzLmdyaWRCb3R0b21TcGFjZSk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLy8gQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIC8vIHJlc2l6ZShldjogYW55KSB7XG4gIC8vICAgaWYgKGV2LnRhcmdldC5pbm5lckhlaWdodCA+IHRoaXMucmVzaXplSGVpZ2h0KSB7XG4gIC8vICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IGV2LnRhcmdldC5pbm5lckhlaWdodDtcbiAgLy8gICAgIHRoaXMuaGVpZ2h0ID0gJzEwMCUnO1xuICAvLyAgIH1cbiAgLy8gICBpZiAodGhpcy5yZXNpemVIZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgLy8gICAgIHRoaXMucmVzaXplSGVpZ2h0ID0gMDtcbiAgLy8gICB9XG4gIC8vICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gIC8vIH1cblxuICByb3dDbGFzcyA9IChhcmdzOiBSb3dDbGFzc0FyZ3MpID0+IHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3MgJiYgdGhpcy5kaXNhYmxlUHJlU2VsZWN0ZWRSb3dzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAnay1kaXNhYmxlZCc6IHRoaXMuc2VsZWN0ZWRSb3dzLmluY2x1ZGVzKFxuICAgICAgICAgICAgYXJncy5kYXRhSXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXVxuICAgICAgICAgICkgfHwgdGhpcy5hbGxQYWdlc1NlbGVjdGVkLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9O1xuXG4gIGV4cGFuZENvbHVtbkNsYXNzKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID4gMCAmJiB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpIHtcbiAgICAgIHRoaXMuZXhwYW5kUm93Q29sdW1uV2lkdGggPSAxOTQ7XG4gICAgICByZXR1cm4gJ2V4cGFuZC1yb3cnO1xuICAgIH1cbiAgICB0aGlzLmV4cGFuZFJvd0NvbHVtbldpZHRoID0gNTY7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgb25TZWxlY3RBbGxDaGFuZ2UoY2hlY2tlZFN0YXRlOiBTZWxlY3RBbGxDaGVja2JveFN0YXRlKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgY2hlY2tlZFN0YXRlID09PSAnY2hlY2tlZCdcbiAgICApIHtcbiAgICAgIHRoaXMuX3ByZVNlbGVjdGVkID0gdGhpcy5fZ3JpZFZpZXcuZGF0YVxuICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+IGl0ZW1bdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV0pXG4gICAgICAgIC5maWx0ZXIoKGlkOiBhbnkpID0+IGlkKTtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUNvdW50ID0gdGhpcy5fZ3JpZFZpZXcuZGF0YS5sZW5ndGg7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID4gMCAmJiB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpIHtcbiAgICAgIHRoaXMuX3ByZVNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZFJvd3M7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1Db3VudCA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ByZVNlbGVjdGVkID0gW107XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUNvdW50ID0gMDtcbiAgICB9XG4gICAgdGhpcy5hZGRTZWxlY3RBbGxNZXNzYWdlKHRoaXMuc2VsZWN0QWxsU3RhdGUgPT09ICdjaGVja2VkJyk7XG4gIH1cblxuICBjYW5FbmFibGVTZWxlY3RBbGwoKSB7XG4gICAgcmV0dXJuICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID09IHRoaXMuX2dyaWRWaWV3LnRvdGFsICYmXG4gICAgICB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpXG4gIH1cblxuICBwdWJsaWMgY2VsbENsb3NlSGFuZGxlcihhcmdzOiBDZWxsQ2xvc2VFdmVudCk6IHZvaWQge1xuICAgIGxldCB7IGZvcm1Hcm91cCwgZGF0YUl0ZW0gfSA9IGFyZ3M7XG4gICAgaWYgKCFmb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgIGFyZ3MucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2UgaWYgKGZvcm1Hcm91cC5kaXJ0eSkge1xuICAgICAgaWYgKGFyZ3Mub3JpZ2luYWxFdmVudCAmJiBhcmdzLm9yaWdpbmFsRXZlbnQua2V5Q29kZSA9PT0gS2V5cy5Fc2NhcGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgT2JqZWN0LmFzc2lnbihkYXRhSXRlbSwgZm9ybUdyb3VwLnZhbHVlKTtcbiAgICAgIHRoaXMuc2F2ZUNoYW5nZXMoKTtcbiAgICAgIHRoaXMudXBkYXRlZERhdGEuZW1pdCh0aGlzLmdyaWQuZGF0YSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2F2ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkLmNsb3NlQ2VsbCgpO1xuICAgIHRoaXMuZ3JpZC5jYW5jZWxDZWxsKCk7XG4gIH1cbn1cbiIsIjxkaXYgI2dyaWRFbGVtZW50IFtuZ0NsYXNzXT1cImNvbHVtbkNvbnRlbnROb1dyYXAgPyAnY29sdW1uLWNvbnRlbnQtbm93cmFwJyA6ICcnXCI+XG4gIDxrZW5kby1ncmlkIFtkYXRhXT1cIl9ncmlkVmlld1wiIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIFtza2lwXT1cInNraXBcIiBbc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlU2V0dGluZ3NcIlxuICAgIFtwYWdlYWJsZV09XCJwYWdlYWJsZVwiIFtzb3J0YWJsZV09XCJzb3J0YWJsZVwiIFtsb2FkaW5nXT1cImdyaWRMb2FkaW5nXCIgW2dyb3VwYWJsZV09XCJncm91cGFibGVcIiBbcmVvcmRlcmFibGVdPVwicmVvcmRlcmFibGVcIlxuICAgIFtyZXNpemFibGVdPVwicmVzaXphYmxlXCIgW2NvbHVtbk1lbnVdPVwiY29sdW1uTWVudVwiIFtuYXZpZ2FibGVdPVwibmF2aWdhYmxlXCIgW2hlaWdodF09XCJncmlkSGVpZ2h0XCJcbiAgICAoY2hhbmdlKT1cInNldFNlbGVjdGFibGVTZXR0aW5ncygpXCIgKHNlbGVjdGVkS2V5c0NoYW5nZSk9XCJzZWxlY3RlZEtleXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2tlbmRvR3JpZFNlbGVjdEJ5XT1cImdyaWRSb3dTZWxlY3RCeVZhbHVlXCIgKGRldGFpbEV4cGFuZCk9XCJvbkRldGFpbEV4cGFuZCgkZXZlbnQpXCIgW3NlbGVjdGVkS2V5c109XCJfcHJlU2VsZWN0ZWRcIlxuICAgIChwYWdlQ2hhbmdlKT1cInBhZ2VDaGFuZ2UoJGV2ZW50KVwiIChjZWxsQ2xpY2spPVwiY2VsbENsaWNrSGFuZGxlcigkZXZlbnQpXCIgKGNlbGxDbG9zZSk9XCJjZWxsQ2xvc2VIYW5kbGVyKCRldmVudClcIlxuICAgIFtzb3J0XT1cInNvcnRcIiAoc29ydENoYW5nZSk9XCJzb3J0Q2hhbmdlKCRldmVudClcIiAoc2Nyb2xsQm90dG9tKT1cInNjcm9sbEJvdHRvbSgpXCIgW25nQ2xhc3NdPVwiZ2V0SGVhZGVySGVpZ2h0KClcIlxuICAgIGlkPVwibGliLWdyaWRcIiBbcm93Q2xhc3NdPVwicm93Q2xhc3NcIj5cbiAgICA8ZGl2ICNzZWxlY3RBbGxNZXNzYWdlRWxlbWVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaWItZ3JpZC1zZWxlY3QtYWxsLW1lc3NhZ2UtY29udGFpbmVyXCIgKm5nSWY9XCIoc2VsZWN0ZWRJdGVtQ291bnQgPCBfZ3JpZFZpZXcudG90YWwpXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoc2VsZWN0ZWRJdGVtQ291bnQgPCBfZ3JpZFZpZXcudG90YWwpXCIgY2xhc3M9XCJsaWItZ3JpZC1zZWxlY3QtYWxsLW1lc3NhZ2VcIj5cbiAgICAgICAgICA8bGliLXR5cG9ncmFwaHkgW2RlZmF1bHRUZXh0XT1cIidBbGwgJytzZWxlY3RlZEl0ZW1Db3VudCsnICcraXRlbU5hbWUrJyBvbiB0aGlzIHBhZ2UgYXJlIHNlbGVjdGVkLidcIlxuICAgICAgICAgICAgdHlwZT1cIkJPRFlfU01BTExcIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgICAgIDx1PjxsaWItdHlwb2dyYXBoeSAoY2xpY2spPVwic2VsZWN0QWNyb3NzUGFnZXModHJ1ZSlcIiBjbGFzcz1cInNlbGVjdC1hbGwtaGFuZGxlclwiXG4gICAgICAgICAgICAgIFtkZWZhdWx0VGV4dF09XCInU2VsZWN0IGFsbCAnK19ncmlkVmlldy50b3RhbCsnICcraXRlbU5hbWUrJyBmcm9tIGFsbCBwYWdlcydcIlxuICAgICAgICAgICAgICB0eXBlPVwiQk9EWV9TTUFMTFwiPjwvbGliLXR5cG9ncmFwaHk+PC91PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImFsbFBhZ2VzU2VsZWN0ZWRcIiBjbGFzcz1cImxpYi1ncmlkLXNlbGVjdC1hbGwtbWVzc2FnZVwiPlxuICAgICAgICAgIDxsaWItaWNvbiBuYW1lPVwiY2lyY2xlLWNoZWNrZWRcIiBjbGFzcz1cImFsbC1zZWxlY3RlZC1pY29uXCI+PC9saWItaWNvbj5cbiAgICAgICAgICA8bGliLXR5cG9ncmFwaHkgW2RlZmF1bHRUZXh0XT1cIidBbGwgJytfZ3JpZFZpZXcudG90YWwrJyAnK2l0ZW1OYW1lKycgYWNyb3NzIGFsbCBwYWdlcyBhcmUgc2VsZWN0ZWQuJ1wiXG4gICAgICAgICAgICB0eXBlPVwiQk9EWV9TTUFMTFwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgICAgPHU+PGxpYi10eXBvZ3JhcGh5IChjbGljayk9XCJzZWxlY3RBY3Jvc3NQYWdlcyhmYWxzZSlcIiBjbGFzcz1cInNlbGVjdC1hbGwtaGFuZGxlclwiXG4gICAgICAgICAgICAgIFtkZWZhdWx0VGV4dF09XCInQ2xlYXIgc2VsZWN0aW9uJ1wiIHR5cGU9XCJCT0RZX1NNQUxMXCI+PC9saWItdHlwb2dyYXBoeT48L3U+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZFRvb2xiYXJUZW1wbGF0ZSBbcG9zaXRpb25dPVwiZ2V0UG9zaXRpb24oKVwiIGxldC1wb3NpdGlvbj1cInBvc2l0aW9uXCI+XG4gICAgICA8bmctY29udGVudCAqbmdJZj1cInNob3dUb29sYmFyICYmIHBvc2l0aW9uID09PSAndG9wJ1wiPjwvbmctY29udGVudD5cbiAgICAgIDxsaWItZ3JpZC1wYWdpbmF0aW9uLXNwYWNlciAqbmdJZj1cImluZmluaXRlU2Nyb2xsTG9hZGVyICYmIHBvc2l0aW9uID09PSAnYm90dG9tJ1wiPjwvbGliLWdyaWQtcGFnaW5hdGlvbi1zcGFjZXI+XG4gICAgICA8bGliLWxvYWRlciAqbmdJZj1cImluZmluaXRlU2Nyb2xsTG9hZGVyICYmIHBvc2l0aW9uID09PSAnYm90dG9tJ1wiIFt0eXBlXT1cImxvYWRlclR5cGVcIiBbc2l6ZV09XCJsb2FkZXJTaXplXCJcbiAgICAgICAgW3RoZW1lQ29sb3JdPVwibG9hZGVyVGhlbWVcIj48L2xpYi1sb2FkZXI+XG4gICAgICA8bGliLWdyaWQtcGFnaW5hdGlvbi1zcGFjZXIgKm5nSWY9XCJpbmZpbml0ZVNjcm9sbExvYWRlciAmJiBwb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIj48L2xpYi1ncmlkLXBhZ2luYXRpb24tc3BhY2VyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkTG9hZGluZ1RlbXBsYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cImstbG9hZGluZy1jb2xvclwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIj5cbiAgICAgICAgICA8bGliLWxvYWRlciBbdHlwZV09XCJsb2FkZXJUeXBlXCIgW3NpemVdPVwibG9hZGVyU2l6ZVwiIFt0aGVtZUNvbG9yXT1cImxvYWRlclRoZW1lXCI+PC9saWItbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwidGhpcy5fZ3JpZFZpZXcudG90YWwgPT09IDBcIiBrZW5kb0dyaWROb1JlY29yZHNUZW1wbGF0ZT5cbiAgICAgIDxsaWItdHlwb2dyYXBoeSAqbmdJZj1cIiFsb2FkaW5nXCIgW2RlZmF1bHRUZXh0XT1cIm5vUmVjb3Jkc0NvbnRlbnRcIiB0eXBlPVwiQk9EWV9NRURJVU1cIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgPGxpYi1sb2FkZXIgKm5nSWY9XCJsb2FkaW5nXCIgW3R5cGVdPVwibG9hZGVyVHlwZVwiIFtzaXplXT1cImxvYWRlclNpemVcIiBbdGhlbWVDb2xvcl09XCJsb2FkZXJUaGVtZVwiPjwvbGliLWxvYWRlcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLl9ncmlkVmlldy50b3RhbCA+IDBcIj5cbiAgICAgIDxrZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbiAjc2VsZWN0QWxsQ2hlY2tib3ggaGVhZGVyQ2xhc3M9XCJzZWxlY3QtYWxsLWhlYWRlclwiICpuZ0lmPVwiY2hlY2tCb3hSZXF1aXJlZCA9PT0gdHJ1ZVwiIFt3aWR0aF09XCJjaGVja0JveFdpZHRoXCJcbiAgICAgICAgW3Jlc2l6YWJsZV09XCJjaGVja0JveENvbHVtblJlc2l6YWJsZVwiIFtjb2x1bW5NZW51XT1cImNoZWNrQm94Q29sdW1uTWVudVwiIGNsYXNzPVwiY2hlY2tib3gtY29sdW1uXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRIZWFkZXJUZW1wbGF0ZT5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJzZWxlY3RBbGxDaGVja2JveElkXCIgdHlwZT1cImNoZWNrYm94XCIga2VuZG9DaGVja0JveCBrZW5kb0dyaWRTZWxlY3RBbGxDaGVja2JveFxuICAgICAgICAgICAgW3N0YXRlXT1cInNlbGVjdEFsbFN0YXRlXCIgKHNlbGVjdEFsbENoYW5nZSk9XCJvblNlbGVjdEFsbENoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jaGVja2JveC1jb2x1bW4+XG5cbiAgICAgIDxrZW5kby1ncmlkLWNvbHVtbiBjbGFzcz1cImdyaWQtY29sdW1uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sdW1uRGF0YVwiIFtmaWVsZF09XCJpdGVtLmZpZWxkXCIgW3RpdGxlXT1cIml0ZW0udGl0bGVcIlxuICAgICAgICBbd2lkdGhdPVwiaXRlbS5jb2x1bW5XaWR0aFwiIFtzb3J0YWJsZV09XCJpdGVtLnNvcnRhYmxlXCIgW2VkaXRvcl09XCJpdGVtLmVkaXRvclwiIFtjbGFzc109XCJpdGVtLmNsYXNzXCI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwic29ydGFibGVcIiBrZW5kb0dyaWRIZWFkZXJUZW1wbGF0ZT5cbiAgICAgICAgICB7e2l0ZW0udGl0bGV9fVxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5maWVsZCA9PT0gaXRlbS5maWVsZFwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0WzBdLmRpciA9PT0gJ2FzYydcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZGlyID09PSAnZGVzYydcIj48L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uY3VzdG9tQ29sdW1uXCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtblRlbXBsYXRlRGljdFtpdGVtLnR5cGVdXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpdGVtLmN1c3RvbVwiIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlUmVmOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5pbXBhY3RcIiBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbXBhY3RDb2x1bW47IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cblxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uICpuZ0lmPVwic2hvd0RlbGV0ZUNvbHVtblwiIFt3aWR0aF09XCJkZWxldGVDb2x1bW5XaWR0aFwiIGNsYXNzPVwiZGVsZXRlLWNvbHVtblwiIHRpdGxlPVwiQWN0aW9uXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgICAgPGxpYi10b29sdGlwIHNob3dPbj1cImhvdmVyXCIgcG9zaXRpb249XCJib3R0b21cIiBjbGFzcz1cInJlbW92ZS10b29sdGlwXCI+XG4gICAgICAgICAgICA8bGliLWljb24gbmFtZT1cImRlbGV0ZVwiIGNsYXNzPVwiZGVsZXRlLWljb25cIiAoY2xpY2spPVwib25EZWxldGUoZGF0YUl0ZW0pXCI+PC9saWItaWNvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGxpYi10eXBvZ3JhcGh5IGRlZmF1bHRUZXh0PVwiUmVtb3ZlXCI+PC9saWItdHlwb2dyYXBoeT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbGliLXRvb2x0aXA+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gW3dpZHRoXT1cImtlYmFiQ29sdW1uV2lkdGhcIiBjbGFzcz1cImtlYmFiLWNvbHVtblwiICpuZ0lmPVwic2hvd0tlYmFiXCIgdGl0bGU9XCJBY3Rpb25zXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgICAgPGtlbmRvLWRyb3Bkb3duYnV0dG9uICpuZ0lmPVwiIWhpZGVLZWJhYlJvd0luZGV4LmluY2x1ZGVzKHJvd0luZGV4KVwiIFtzdmdJY29uXT1cImljb25cIiBmaWxsTW9kZT1cIm5vbmVcIlxuICAgICAgICAgICAgW2RhdGFdPVwia2ViYWJMaXN0IHwga2ViYWJNZW51RmlsdGVyIDogZGF0YUl0ZW1cIiBjbGFzcz1cImtlYmFiXCIgKGl0ZW1DbGljayk9XCJvbktlYmFiQ2xpY2soJGV2ZW50LCBkYXRhSXRlbSlcIlxuICAgICAgICAgICAgW3BvcHVwU2V0dGluZ3NdPVwieyBhbGlnbjogJ3JpZ2h0JywgYW5pbWF0ZTogdHJ1ZSwgcG9wdXBDbGFzczogJ2tlYmFiLWxpc3QnIH1cIj5cbiAgICAgICAgICA8L2tlbmRvLWRyb3Bkb3duYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWREZXRhaWxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGV0YWlsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gKm5nSWY9XCJjdXN0b21FeHBhbmRSb3dDb2x1bW5cIiBbd2lkdGhdPVwiZXhwYW5kUm93Q29sdW1uV2lkdGhcIiBjbGFzcz1cImdyaWQtY29sdW1uIGV4cGFuZC1jb2x1bW5cIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZXhwYW5kQ29sdW1uQ2xhc3MoKVwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRSb3dzLmluY2x1ZGVzKGRhdGFJdGVtW2dyaWRSb3dTZWxlY3RCeVZhbHVlXSkgJiYgZGlzYWJsZVByZVNlbGVjdGVkUm93c1wiXG4gICAgICAgICAgICBjbGFzcz1cImV4cGFuZC1jb2x1bW4tdGV4dFwiPlxuICAgICAgICAgICAgQWxyZWFkeSBhZGRlZFxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8a2VuZG8tYnV0dG9uICpuZ0lmPVwiIWV4cGFuZFJvd0luZGV4LmluY2x1ZGVzKHJvd0luZGV4KVwiIFtzdmdJY29uXT1cImFycm93RG93bkljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZFJvdyhyb3dJbmRleClcIiBmaWxsTW9kZT1cIm5vbmVcIiBjbGFzcz1cImFycm93LWJ0blwiPlxuICAgICAgICAgIDwva2VuZG8tYnV0dG9uPlxuICAgICAgICAgIDxrZW5kby1idXR0b24gKm5nSWY9XCJleHBhbmRSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJhcnJvd1VwSWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY29sbGFwc2VSb3cocm93SW5kZXgpXCIgZmlsbE1vZGU9XCJub25lXCIgY2xhc3M9XCJhcnJvdy1idG5cIj5cbiAgICAgICAgICA8L2tlbmRvLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9QYWdlclRlbXBsYXRlIGxldC10b3RhbFBhZ2VzPVwidG90YWxQYWdlc1wiIGxldC1jdXJyZW50UGFnZT1cImN1cnJlbnRQYWdlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi13cmFwcGVyXCIgW25nQ2xhc3NdPVwiYWxsUGFnZXNTZWxlY3RlZCA/ICdwYWdpbmF0aW9uLWRpc2FibGVkJyA6ICcnXCI+XG4gICAgICAgIDxrZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+XG4gICAgICAgIDxrZW5kby1wYWdlci1udW1lcmljLWJ1dHRvbnMgW2J1dHRvbkNvdW50XT1cInBhZ2VDb3VudFwiPjwva2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zPlxuICAgICAgICA8a2VuZG8tcGFnZXItbmV4dC1idXR0b25zPjwva2VuZG8tcGFnZXItbmV4dC1idXR0b25zPlxuICAgICAgICA8a2VuZG8tcGFnZXItaW5mbz48L2tlbmRvLXBhZ2VyLWluZm8+XG4gICAgICAgIDxrZW5kby1wYWdlci1wYWdlLXNpemVzIFtwYWdlU2l6ZXNdPVwic2l6ZXNcIj48L2tlbmRvLXBhZ2VyLXBhZ2Utc2l6ZXM+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gIDwva2VuZG8tZ3JpZD5cbjwvZGl2PiJdfQ==
@@ -914,6 +914,8 @@ class DropdownComponent {
914
914
  this.loaderTheme = LoaderThemeColor.primary;
915
915
  this.width = '100%';
916
916
  this.infiniteScrollLoader = false;
917
+ this.showError = false;
918
+ this.errorMessage = "Error";
917
919
  this.onScrollEnd = new EventEmitter();
918
920
  this.scrollListener = null;
919
921
  this._itemDisabled = (item) => {
@@ -968,11 +970,11 @@ class DropdownComponent {
968
970
  }
969
971
  }
970
972
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownComponent, deps: [{ token: i1$1.ThemesService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
971
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownComponent, selector: "lib-dropdown", inputs: { elementId: "elementId", label: "label", data: "data", isDisabled: "isDisabled", clearButton: "clearButton", fillMode: "fillMode", filterable: "filterable", placeholder: "placeholder", itemDisabled: "itemDisabled", popupClass: "popupClass", useAsComboBox: "useAsComboBox", selectedItem: "selectedItem", readonly: "readonly", rounded: "rounded", size: "size", suggest: "suggest", textField: "textField", value: "value", valueField: "valueField", valuePrimitive: "valuePrimitive", model: "model", control: "control", fontType: "fontType", focus: "focus", loading: "loading", loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", width: "width", infiniteScrollLoader: "infiniteScrollLoader" }, outputs: { modelChange: "modelChange", onScrollEnd: "onScrollEnd" }, viewQueries: [{ propertyName: "comboBox", first: true, predicate: ["comboBox"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<span class=\"dropdown\">\n <span *ngIf=\"label.length > 0\">\n <label class=\"checkbox-label\" [for]=\"elementId\">\n <lib-typography [defaultText]=\"label\" [type]=\"fontType\">\n </lib-typography>\n </label>\n &nbsp;\n </span>\n <kendo-combobox *ngIf=\"_useAsComboBox\" #comboBox [id]=\"elementId\" (opened)=\"onDropdownOpen()\"\n (close)=\"onDropdownClose()\" [data]=\"data\" [style.width]=\"width\" [clearButton]=\"clearButton\" fillMode=\"outline\"\n [filterable]=\"filterable\" [placeholder]=\"placeholder\" [readonly]=\"readonly\" rounded=\"small\" [size]=\"size\"\n [suggest]=\"suggest\" [textField]=\"textField\" [value]=\"value\" [valueField]=\"valueField\"\n [valuePrimitive]=\"valuePrimitive\" [ngModel]=\"model\" (ngModelChange)=\"emitModelChange($event)\"\n [formControl]=\"control\" [popupSettings]=\"{popupClass: popupClass}\">\n <ng-template kendoComboBoxHeaderTemplate>\n <ng-content select=\"header\"></ng-content>\n </ng-template>\n <ng-template kendoComboBoxItemTemplate let-data>\n <img *ngIf=\"data.imageUrl && data.imageUrl.length > 0\" [src]=\"data.imageUrl\" [width]=\"18\" [alt]=\"data.imageUrl\" />\n <div ngClass=\"data.imageUrl.length > 0 ? 'rowData' : ''\">\n <lib-typography [defaultText]=\"data.name\" [type]=\"fontType\">\n </lib-typography>\n </div>\n </ng-template>\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-combobox>\n <kendo-dropdownlist *ngIf=\"!_useAsComboBox\" [data]=\"data\" [textField]=\"textField\" [valueField]=\"valueField\"\n [(ngModel)]=\"model\" (selectionChange)=\"emitModelChange($event)\" [itemDisabled]=\"_itemDisabled\" [style.width]=\"width\"\n [valuePrimitive]=\"valuePrimitive\" [rounded]=\"rounded\" [size]=\"size\" (opened)=\"onDropdownOpen()\"\n [popupSettings]=\"{popupClass: popupClass}\" (close)=\"onDropdownClose()\">\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-dropdownlist>\n</span>\n", styles: [".checkbox-label{margin-bottom:8px}.footer-loader{display:flex;justify-content:center;align-items:center;padding:.5rem 0;box-sizing:border-box}::ng-deep .rowData{padding-left:1rem}::ng-deep .k-list-md .k-list-item,::ng-deep .k-list-md .k-list-optionlabel{border-bottom:1px solid #CDD7DD;padding:8px 16px}::ng-deep .k-list-md{border-radius:0 0 8px 8px}::ng-deep .k-list-container{border-radius:0 0 8px 8px}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$2.HeaderTemplateDirective, selector: "[kendoDropDownListHeaderTemplate],[kendoComboBoxHeaderTemplate],[kendoDropDownTreeHeaderTemplate],[kendoMultiColumnComboBoxHeaderTemplate],[kendoAutoCompleteHeaderTemplate],[kendoMultiSelectHeaderTemplate],[kendoMultiSelectTreeHeaderTemplate]" }, { kind: "directive", type: i3$2.FooterTemplateDirective, selector: "[kendoDropDownListFooterTemplate],[kendoComboBoxFooterTemplate],[kendoDropDownTreeFooterTemplate],[kendoMultiColumnComboBoxFooterTemplate],[kendoAutoCompleteFooterTemplate],[kendoMultiSelectFooterTemplate],[kendoMultiSelectTreeFooterTemplate]" }, { kind: "directive", type: i3$2.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { kind: "directive", type: i3$2.NoDataTemplateDirective, selector: "[kendoDropDownListNoDataTemplate],[kendoDropDownTreeNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoMultiColumnComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate],[kendoMultiSelectTreeNoDataTemplate]" }, { kind: "component", type: i3$2.ComboBoxComponent, selector: "kendo-combobox", inputs: ["icon", "svgIcon", "showStickyHeader", "focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoComboBox"] }, { kind: "component", type: i3$2.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }] }); }
973
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownComponent, selector: "lib-dropdown", inputs: { elementId: "elementId", label: "label", data: "data", isDisabled: "isDisabled", clearButton: "clearButton", fillMode: "fillMode", filterable: "filterable", placeholder: "placeholder", itemDisabled: "itemDisabled", popupClass: "popupClass", useAsComboBox: "useAsComboBox", selectedItem: "selectedItem", readonly: "readonly", rounded: "rounded", size: "size", suggest: "suggest", textField: "textField", value: "value", valueField: "valueField", valuePrimitive: "valuePrimitive", model: "model", control: "control", fontType: "fontType", focus: "focus", loading: "loading", loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", width: "width", infiniteScrollLoader: "infiniteScrollLoader", showError: "showError", errorMessage: "errorMessage" }, outputs: { modelChange: "modelChange", onScrollEnd: "onScrollEnd" }, viewQueries: [{ propertyName: "comboBox", first: true, predicate: ["comboBox"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown\">\n <span *ngIf=\"label.length > 0\">\n <label class=\"checkbox-label\" [for]=\"elementId\">\n <lib-typography [defaultText]=\"label\" [type]=\"fontType\">\n </lib-typography>\n </label>\n &nbsp;\n </span>\n <kendo-combobox *ngIf=\"_useAsComboBox\" #comboBox [id]=\"elementId\" (opened)=\"onDropdownOpen()\"\n (close)=\"onDropdownClose()\" [data]=\"data\" [style.width]=\"width\" [clearButton]=\"clearButton\" fillMode=\"outline\"\n [filterable]=\"filterable\" [placeholder]=\"placeholder\" [readonly]=\"readonly\" rounded=\"small\" [size]=\"size\"\n [suggest]=\"suggest\" [textField]=\"textField\" [value]=\"value\" [valueField]=\"valueField\"\n [valuePrimitive]=\"valuePrimitive\" [ngModel]=\"model\" (ngModelChange)=\"emitModelChange($event)\"\n [formControl]=\"control\" [popupSettings]=\"{popupClass: popupClass}\">\n <ng-template kendoComboBoxHeaderTemplate>\n <ng-content select=\"header\"></ng-content>\n </ng-template>\n <ng-template kendoComboBoxItemTemplate let-data>\n <img *ngIf=\"data.imageUrl && data.imageUrl.length > 0\" [src]=\"data.imageUrl\" [width]=\"18\" [alt]=\"data.imageUrl\" />\n <div ngClass=\"data.imageUrl.length > 0 ? 'rowData' : ''\">\n <lib-typography [defaultText]=\"data.name\" [type]=\"fontType\">\n </lib-typography>\n </div>\n </ng-template>\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-combobox>\n <kendo-dropdownlist *ngIf=\"!_useAsComboBox\" [data]=\"data\" [textField]=\"textField\" [valueField]=\"valueField\"\n [(ngModel)]=\"model\" (selectionChange)=\"emitModelChange($event)\" [itemDisabled]=\"_itemDisabled\" [style.width]=\"width\"\n [valuePrimitive]=\"valuePrimitive\" [rounded]=\"rounded\" [size]=\"size\" (opened)=\"onDropdownOpen()\"\n [popupSettings]=\"{popupClass: popupClass}\" (close)=\"onDropdownClose()\">\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-dropdownlist>\n <div *ngIf=\"showError\">\n <lib-typography [defaultText]=\"errorMessage\" class=\"error-text\" />\n </div>\n</div>\n", styles: [".checkbox-label{margin-bottom:8px}.footer-loader{display:flex;justify-content:center;align-items:center;padding:.5rem 0;box-sizing:border-box}::ng-deep .rowData{padding-left:1rem}::ng-deep .k-list-md .k-list-item,::ng-deep .k-list-md .k-list-optionlabel{border-bottom:1px solid #CDD7DD;padding:8px 16px}::ng-deep .k-list-md{border-radius:0 0 8px 8px}::ng-deep .k-list-container{border-radius:0 0 8px 8px}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$2.HeaderTemplateDirective, selector: "[kendoDropDownListHeaderTemplate],[kendoComboBoxHeaderTemplate],[kendoDropDownTreeHeaderTemplate],[kendoMultiColumnComboBoxHeaderTemplate],[kendoAutoCompleteHeaderTemplate],[kendoMultiSelectHeaderTemplate],[kendoMultiSelectTreeHeaderTemplate]" }, { kind: "directive", type: i3$2.FooterTemplateDirective, selector: "[kendoDropDownListFooterTemplate],[kendoComboBoxFooterTemplate],[kendoDropDownTreeFooterTemplate],[kendoMultiColumnComboBoxFooterTemplate],[kendoAutoCompleteFooterTemplate],[kendoMultiSelectFooterTemplate],[kendoMultiSelectTreeFooterTemplate]" }, { kind: "directive", type: i3$2.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { kind: "directive", type: i3$2.NoDataTemplateDirective, selector: "[kendoDropDownListNoDataTemplate],[kendoDropDownTreeNoDataTemplate],[kendoComboBoxNoDataTemplate],[kendoMultiColumnComboBoxNoDataTemplate],[kendoAutoCompleteNoDataTemplate],[kendoMultiSelectNoDataTemplate],[kendoMultiSelectTreeNoDataTemplate]" }, { kind: "component", type: i3$2.ComboBoxComponent, selector: "kendo-combobox", inputs: ["icon", "svgIcon", "showStickyHeader", "focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoComboBox"] }, { kind: "component", type: i3$2.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }] }); }
972
974
  }
973
975
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownComponent, decorators: [{
974
976
  type: Component,
975
- args: [{ selector: 'lib-dropdown', template: "<span class=\"dropdown\">\n <span *ngIf=\"label.length > 0\">\n <label class=\"checkbox-label\" [for]=\"elementId\">\n <lib-typography [defaultText]=\"label\" [type]=\"fontType\">\n </lib-typography>\n </label>\n &nbsp;\n </span>\n <kendo-combobox *ngIf=\"_useAsComboBox\" #comboBox [id]=\"elementId\" (opened)=\"onDropdownOpen()\"\n (close)=\"onDropdownClose()\" [data]=\"data\" [style.width]=\"width\" [clearButton]=\"clearButton\" fillMode=\"outline\"\n [filterable]=\"filterable\" [placeholder]=\"placeholder\" [readonly]=\"readonly\" rounded=\"small\" [size]=\"size\"\n [suggest]=\"suggest\" [textField]=\"textField\" [value]=\"value\" [valueField]=\"valueField\"\n [valuePrimitive]=\"valuePrimitive\" [ngModel]=\"model\" (ngModelChange)=\"emitModelChange($event)\"\n [formControl]=\"control\" [popupSettings]=\"{popupClass: popupClass}\">\n <ng-template kendoComboBoxHeaderTemplate>\n <ng-content select=\"header\"></ng-content>\n </ng-template>\n <ng-template kendoComboBoxItemTemplate let-data>\n <img *ngIf=\"data.imageUrl && data.imageUrl.length > 0\" [src]=\"data.imageUrl\" [width]=\"18\" [alt]=\"data.imageUrl\" />\n <div ngClass=\"data.imageUrl.length > 0 ? 'rowData' : ''\">\n <lib-typography [defaultText]=\"data.name\" [type]=\"fontType\">\n </lib-typography>\n </div>\n </ng-template>\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-combobox>\n <kendo-dropdownlist *ngIf=\"!_useAsComboBox\" [data]=\"data\" [textField]=\"textField\" [valueField]=\"valueField\"\n [(ngModel)]=\"model\" (selectionChange)=\"emitModelChange($event)\" [itemDisabled]=\"_itemDisabled\" [style.width]=\"width\"\n [valuePrimitive]=\"valuePrimitive\" [rounded]=\"rounded\" [size]=\"size\" (opened)=\"onDropdownOpen()\"\n [popupSettings]=\"{popupClass: popupClass}\" (close)=\"onDropdownClose()\">\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-dropdownlist>\n</span>\n", styles: [".checkbox-label{margin-bottom:8px}.footer-loader{display:flex;justify-content:center;align-items:center;padding:.5rem 0;box-sizing:border-box}::ng-deep .rowData{padding-left:1rem}::ng-deep .k-list-md .k-list-item,::ng-deep .k-list-md .k-list-optionlabel{border-bottom:1px solid #CDD7DD;padding:8px 16px}::ng-deep .k-list-md{border-radius:0 0 8px 8px}::ng-deep .k-list-container{border-radius:0 0 8px 8px}\n"] }]
977
+ args: [{ selector: 'lib-dropdown', template: "<div class=\"dropdown\">\n <span *ngIf=\"label.length > 0\">\n <label class=\"checkbox-label\" [for]=\"elementId\">\n <lib-typography [defaultText]=\"label\" [type]=\"fontType\">\n </lib-typography>\n </label>\n &nbsp;\n </span>\n <kendo-combobox *ngIf=\"_useAsComboBox\" #comboBox [id]=\"elementId\" (opened)=\"onDropdownOpen()\"\n (close)=\"onDropdownClose()\" [data]=\"data\" [style.width]=\"width\" [clearButton]=\"clearButton\" fillMode=\"outline\"\n [filterable]=\"filterable\" [placeholder]=\"placeholder\" [readonly]=\"readonly\" rounded=\"small\" [size]=\"size\"\n [suggest]=\"suggest\" [textField]=\"textField\" [value]=\"value\" [valueField]=\"valueField\"\n [valuePrimitive]=\"valuePrimitive\" [ngModel]=\"model\" (ngModelChange)=\"emitModelChange($event)\"\n [formControl]=\"control\" [popupSettings]=\"{popupClass: popupClass}\">\n <ng-template kendoComboBoxHeaderTemplate>\n <ng-content select=\"header\"></ng-content>\n </ng-template>\n <ng-template kendoComboBoxItemTemplate let-data>\n <img *ngIf=\"data.imageUrl && data.imageUrl.length > 0\" [src]=\"data.imageUrl\" [width]=\"18\" [alt]=\"data.imageUrl\" />\n <div ngClass=\"data.imageUrl.length > 0 ? 'rowData' : ''\">\n <lib-typography [defaultText]=\"data.name\" [type]=\"fontType\">\n </lib-typography>\n </div>\n </ng-template>\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-combobox>\n <kendo-dropdownlist *ngIf=\"!_useAsComboBox\" [data]=\"data\" [textField]=\"textField\" [valueField]=\"valueField\"\n [(ngModel)]=\"model\" (selectionChange)=\"emitModelChange($event)\" [itemDisabled]=\"_itemDisabled\" [style.width]=\"width\"\n [valuePrimitive]=\"valuePrimitive\" [rounded]=\"rounded\" [size]=\"size\" (opened)=\"onDropdownOpen()\"\n [popupSettings]=\"{popupClass: popupClass}\" (close)=\"onDropdownClose()\">\n <ng-template kendoComboBoxFooterTemplate>\n <div *ngIf=\"infiniteScrollLoader\" class=\"footer-loader\">\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </div>\n </ng-template>\n <ng-template *ngIf=\"loading\" kendoComboBoxNoDataTemplate>\n <lib-loader [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n </kendo-dropdownlist>\n <div *ngIf=\"showError\">\n <lib-typography [defaultText]=\"errorMessage\" class=\"error-text\" />\n </div>\n</div>\n", styles: [".checkbox-label{margin-bottom:8px}.footer-loader{display:flex;justify-content:center;align-items:center;padding:.5rem 0;box-sizing:border-box}::ng-deep .rowData{padding-left:1rem}::ng-deep .k-list-md .k-list-item,::ng-deep .k-list-md .k-list-optionlabel{border-bottom:1px solid #CDD7DD;padding:8px 16px}::ng-deep .k-list-md{border-radius:0 0 8px 8px}::ng-deep .k-list-container{border-radius:0 0 8px 8px}\n"] }]
976
978
  }], ctorParameters: function () { return [{ type: i1$1.ThemesService }, { type: i0.Renderer2 }]; }, propDecorators: { elementId: [{
977
979
  type: Input
978
980
  }], label: [{
@@ -1035,6 +1037,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1035
1037
  type: Input
1036
1038
  }], infiniteScrollLoader: [{
1037
1039
  type: Input
1040
+ }], showError: [{
1041
+ type: Input
1042
+ }], errorMessage: [{
1043
+ type: Input
1038
1044
  }], onScrollEnd: [{
1039
1045
  type: Output
1040
1046
  }], comboBox: [{
@@ -5101,7 +5107,7 @@ class GridPaginationComponent {
5101
5107
  }
5102
5108
  loadGridData() {
5103
5109
  this._gridView = {
5104
- data: orderBy(this.gridView?.data, this.sort),
5110
+ data: orderBy(this._gridView?.data, this.sort),
5105
5111
  total: this._gridView?.total,
5106
5112
  };
5107
5113
  }