ngx-sp-infra 0.3.77 → 0.3.79

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.
@@ -3,8 +3,7 @@ import { FormUtils } from "../../utils/form-utils";
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/forms";
5
5
  import * as i2 from "@angular/common";
6
- import * as i3 from "ngx-bootstrap/tooltip";
7
- import * as i4 from "../svg-storage/svg-storage.component";
6
+ import * as i3 from "../svg-storage/svg-storage.component";
8
7
  /**
9
8
  * @file search-combobox.component.ts
10
9
  * @description Este arquivo contém a implementação do componente SearchComboboxComponent, que é um componente de interface do usuário
@@ -67,21 +66,25 @@ export class SearchComboboxComponent {
67
66
  this.searchInputPlaceholder = "Pesquisa...";
68
67
  this.onReloadList = new EventEmitter();
69
68
  this.onSelectItem = new EventEmitter();
70
- this.mappedComboboxList = [];
71
- this.searchCombobox = "";
72
69
  }
73
70
  ngOnInit() {
74
71
  this.createFilterForm();
72
+ if (this.initializedValueID) {
73
+ this.initializeSelectedValue();
74
+ }
75
75
  }
76
76
  ngOnChanges(changes) {
77
- if (changes["comboboxList"] != undefined && changes["comboboxList"].currentValue != undefined) {
78
- this.mappedComboboxList = this.comboboxList;
77
+ if (changes["currentSelectedOption"] != undefined && changes["currentSelectedOption"].currentValue != undefined) {
78
+ this.initializeSelectedValue();
79
79
  }
80
80
  }
81
81
  get selectedItem() { return this._selectedItem; }
82
82
  set selectedItem(value) {
83
83
  this._selectedItem = value;
84
- this.onSelectItem.emit(value);
84
+ console.log("public set selectedItem");
85
+ if (!this.initializedValueID) {
86
+ this.onSelectItem.emit(value);
87
+ }
85
88
  }
86
89
  get FormUtils() { return FormUtils; }
87
90
  // #region FORM DATA
@@ -101,21 +104,30 @@ export class SearchComboboxComponent {
101
104
  this.selectedText = label;
102
105
  this.selectedItem = { ID: id, LABEL: label, AdditionalStringProperty1: "", IS_SELECTED: true };
103
106
  }
107
+ initializeSelectedValue() {
108
+ let initializedValue = this.comboboxList.find(item => item.ID == this.initializedValueID);
109
+ if (this.comboboxList && initializedValue) {
110
+ this.selectedText = initializedValue.LABEL;
111
+ this.selectedItem = { ID: initializedValue.ID, LABEL: initializedValue.LABEL, AdditionalStringProperty1: "", IS_SELECTED: true };
112
+ }
113
+ }
104
114
  reloadList(search) {
105
115
  this.onReloadList.emit(search);
106
116
  }
107
117
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchComboboxComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
108
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SearchComboboxComponent, selector: "lib-search-combobox", inputs: { comboboxList: "comboboxList", labelText: "labelText", colorTheme: "colorTheme", inputGroupIconName: "inputGroupIconName", inputGroupIconTooltip: "inputGroupIconTooltip", mainInputPlaceholder: "mainInputPlaceholder", searchInputPlaceholder: "searchInputPlaceholder" }, outputs: { onReloadList: "onReloadList", onSelectItem: "onSelectItem" }, usesOnChanges: true, ngImport: i0, template: "<label class=\"form-label\">{{ labelText }}</label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n <button *ngIf=\"inputGroupIconName\" class=\"btn btn-{{colorTheme}}\" type=\"button\" [tooltip]=\"inputGroupIconTooltip\">\r\n <app-svg-storage [svgName]=\"inputGroupIconName\" svgSize=\"medium-small\" />\r\n </button>\r\n\r\n <input class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly>\r\n <ul class=\"dropdown-menu p-2 w-100 glb-max-height-350px overflow-y-scroll\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> Pesquisar </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"mappedComboboxList; else loadingList\">\r\n <ng-container *ngIf=\"mappedComboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID\" class=\"dropdown-item\" (click)=\"setFilterValue('', '')\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of mappedComboboxList\" (click)=\"setFilterValue(item.ID, item.LABEL); selectedItem = item\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.SvgStorageComponent, selector: "app-svg-storage", inputs: ["svgName", "svgColor", "svgFill", "svgSize", "svgStrokeWidth"] }] }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SearchComboboxComponent, selector: "lib-search-combobox", inputs: { comboboxList: "comboboxList", labelText: "labelText", initializedValueID: "initializedValueID", colorTheme: "colorTheme", inputGroupIconName: "inputGroupIconName", inputGroupIconTooltip: "inputGroupIconTooltip", mainInputPlaceholder: "mainInputPlaceholder", searchInputPlaceholder: "searchInputPlaceholder" }, outputs: { onReloadList: "onReloadList", onSelectItem: "onSelectItem" }, usesOnChanges: true, ngImport: i0, template: "<label class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly>\r\n <ul class=\"dropdown-menu p-2 w-100 glb-max-height-350px overflow-y-scroll\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> Pesquisar </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"comboboxList; else loadingList\">\r\n <ng-container *ngIf=\"comboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID\" class=\"dropdown-item\" (click)=\"setFilterValue('', '')\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of comboboxList\" (click)=\"setFilterValue(item.ID, item.LABEL); selectedItem = item\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n\r\n <!-- Este elemento ng-content com o atributo [btnRight] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado direito do combobox de pesquisa.\r\n Ao usar o atributo [btnRight], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnRight]\"></ng-content>\r\n\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SvgStorageComponent, selector: "app-svg-storage", inputs: ["svgName", "svgColor", "svgFill", "svgSize", "svgStrokeWidth"] }] }); }
109
119
  }
110
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchComboboxComponent, decorators: [{
111
121
  type: Component,
112
- args: [{ selector: 'lib-search-combobox', template: "<label class=\"form-label\">{{ labelText }}</label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n <button *ngIf=\"inputGroupIconName\" class=\"btn btn-{{colorTheme}}\" type=\"button\" [tooltip]=\"inputGroupIconTooltip\">\r\n <app-svg-storage [svgName]=\"inputGroupIconName\" svgSize=\"medium-small\" />\r\n </button>\r\n\r\n <input class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly>\r\n <ul class=\"dropdown-menu p-2 w-100 glb-max-height-350px overflow-y-scroll\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> Pesquisar </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"mappedComboboxList; else loadingList\">\r\n <ng-container *ngIf=\"mappedComboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID\" class=\"dropdown-item\" (click)=\"setFilterValue('', '')\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of mappedComboboxList\" (click)=\"setFilterValue(item.ID, item.LABEL); selectedItem = item\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"] }]
122
+ args: [{ selector: 'lib-search-combobox', template: "<label class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly>\r\n <ul class=\"dropdown-menu p-2 w-100 glb-max-height-350px overflow-y-scroll\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> Pesquisar </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"comboboxList; else loadingList\">\r\n <ng-container *ngIf=\"comboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID\" class=\"dropdown-item\" (click)=\"setFilterValue('', '')\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of comboboxList\" (click)=\"setFilterValue(item.ID, item.LABEL); selectedItem = item\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n\r\n <!-- Este elemento ng-content com o atributo [btnRight] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado direito do combobox de pesquisa.\r\n Ao usar o atributo [btnRight], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnRight]\"></ng-content>\r\n\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"] }]
113
123
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { comboboxList: [{
114
124
  type: Input,
115
125
  args: [{ required: true }]
116
126
  }], labelText: [{
117
127
  type: Input,
118
128
  args: [{ required: true }]
129
+ }], initializedValueID: [{
130
+ type: Input
119
131
  }], colorTheme: [{
120
132
  type: Input
121
133
  }], inputGroupIconName: [{
@@ -131,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
131
143
  }], onSelectItem: [{
132
144
  type: Output
133
145
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvc2VhcmNoLWNvbWJvYm94L3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3NlYXJjaC1jb21ib2JveC9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBR3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBS25EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUNVLFlBQXlCO1FBQXpCLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBdUJuQixlQUFVLEdBQVcsU0FBUyxDQUFDO1FBRS9CLDBCQUFxQixHQUFXLEVBQUUsQ0FBQztRQUNuQyx5QkFBb0IsR0FBVyx3QkFBd0IsQ0FBQztRQUN4RCwyQkFBc0IsR0FBVyxhQUFhLENBQUM7UUFFOUMsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNoRSxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXBFLHVCQUFrQixHQUFxQixFQUFFLENBQUM7UUFDMUMsbUJBQWMsR0FBVyxFQUFFLENBQUM7SUFoQ2hDLENBQUM7SUFFRyxRQUFRO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxTQUFTLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVksSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUM5RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztJQTBCRCxJQUFXLFlBQVksS0FBcUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUN4RSxJQUFXLFlBQVksQ0FBQyxLQUFxQjtRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBUUQsSUFBVyxTQUFTLEtBQXVCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztJQUU5RCxvQkFBb0I7SUFDcEIsSUFBVyxZQUFZLEtBQWEsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hGLHVCQUF1QjtJQUV2QiwwQkFBMEI7SUFDbEIsZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDeEMsWUFBWSxFQUFFLENBQUUsRUFBRSxDQUFFO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCw2QkFBNkI7SUFFN0Isa0RBQWtEO0lBR2xELDRDQUE0QztJQUNyQyxjQUFjLENBQUMsRUFBbUIsRUFBRSxLQUFhO1FBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQVksTUFBTSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBRTFCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUseUJBQXlCLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNqRyxDQUFDO0lBR00sVUFBVSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0EvRVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsK2FDbEVwQyw0d0VBMEJBOzs0RkR3Q2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjtnRkEwQkcsWUFBWTtzQkFBN0MsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ1MsU0FBUztzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRVQsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxrQkFBa0I7c0JBQWpDLEtBQUs7Z0JBQ1UscUJBQXFCO3NCQUFwQyxLQUFLO2dCQUNVLG9CQUFvQjtzQkFBbkMsS0FBSztnQkFDVSxzQkFBc0I7c0JBQXJDLEtBQUs7Z0JBRVcsWUFBWTtzQkFBNUIsTUFBTTtnQkFDVSxZQUFZO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuaW1wb3J0IHsgRm9ybVV0aWxzIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2Zvcm0tdXRpbHNcIjtcclxuXHJcbmltcG9ydCB7IFJlY29yZENvbWJvYm94IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21ib2JveC9yZWNvcmQtY29tYm9ib3hcIjtcclxuXHJcblxyXG4vKipcclxuICogQGZpbGUgc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC50c1xyXG4gKiBAZGVzY3JpcHRpb24gRXN0ZSBhcnF1aXZvIGNvbnTDqW0gYSBpbXBsZW1lbnRhw6fDo28gZG8gY29tcG9uZW50ZSBTZWFyY2hDb21ib2JveENvbXBvbmVudCwgcXVlIMOpIHVtIGNvbXBvbmVudGUgZGUgaW50ZXJmYWNlIGRvIHVzdcOhcmlvXHJcbiAqIHBhcmEgcmVhbGl6YXIgcGVzcXVpc2FzIGUgc2VsZcOnw7VlcyBlbSB1bWEgbGlzdGEgZGUgb3DDp8O1ZXMgYXByZXNlbnRhZGEgZW0gdW0gY29tYm9ib3guXHJcbiAqIFxyXG4gKiBAY29tcG9uZW50IFNlYXJjaENvbWJvYm94Q29tcG9uZW50XHJcbiAqIEBzZWxlY3RvciBzZWFyY2gtY29tYm9ib3hcclxuICogQHN0YW5kYWxvbmUgdHJ1ZVxyXG4gKiBAaW1wb3J0cyBDb21tb25Nb2R1bGUsIFByb2plY3RNb2R1bGVcclxuICogQHRlbXBsYXRlVXJsIC4vc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5odG1sXHJcbiAqIEBzdHlsZVVybCAuL3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQuc2Nzc1xyXG4gKiBcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIE8gY29tcG9uZW50ZSBTZWFyY2hDb21ib2JveENvbXBvbmVudCDDqSBwcm9qZXRhZG8gcGFyYSBmb3JuZWNlciBhb3MgdXN1w6FyaW9zIHVtYSBpbnRlcmZhY2UgcGFyYSBwZXNxdWlzYXIgZSBzZWxlY2lvbmFyIGl0ZW5zIGRlIHVtYSBsaXN0YS5cclxuICogRWxlIHN1cG9ydGEgYSBmaWx0cmFnZW0gZGUgaXRlbnMgY29tIGJhc2UgbmEgZW50cmFkYSBkbyB1c3XDoXJpbywgcGVybWl0aW5kbyB1bWEgc2VsZcOnw6NvIG1haXMgZsOhY2lsIGVtIGxpc3RhcyBleHRlbnNhcy5cclxuICogXHJcbiAqICMjIEZ1bmNpb25hbGlkYWRlczpcclxuICogLSBQZXNxdWlzYSBlIGZpbHRyYWdlbSBkZSBpdGVucyBuYSBsaXN0YSBkbyBjb21ib2JveC5cclxuICogLSBTZWxlw6fDo28gZGUgaXRlbnMgY29tIGZlZWRiYWNrIHZpc3VhbC5cclxuICogLSBFbWlzc8OjbyBkZSBldmVudG9zIHBlcnNvbmFsaXphZG9zIHBhcmEgaW50ZXJhw6fDtWVzIGRvIHVzdcOhcmlvLCBjb21vIHJlY2FycmVnYXIgYSBsaXN0YSBvdSBzZWxlY2lvbmFyIHVtIGl0ZW0uXHJcbiAqIFxyXG4gKiAjIyBJbnB1dHM6XHJcbiAqIC0gYGNvbWJvYm94TGlzdGA6IEFycmF5IGRlIG9iamV0b3MgcmVwcmVzZW50YW5kbyBvcyBpdGVucyBkaXNwb27DrXZlaXMgcGFyYSBzZWxlw6fDo28uXHJcbiAqIC0gYGxhYmVsVGV4dGA6IFRleHRvIGRlIGV0aXF1ZXRhIGFzc29jaWFkbyBhbyBjb21ib2JveC5cclxuICogLSBgY29sb3JUaGVtZWA6IFRlbWEgZGUgY29yZXMgcGFyYSBvIGNvbXBvbmVudGUuXHJcbiAqIC0gYGlucHV0R3JvdXBJY29uTmFtZWA6IE5vbWUgZG8gw61jb25lIGEgc2VyIGV4aWJpZG8gbm8gZ3J1cG8gZGUgZW50cmFkYS5cclxuICogLSBgaW5wdXRHcm91cEljb25Ub29sdGlwYDogVGV4dG8gZGUgZGljYSBkZSBmZXJyYW1lbnRhIHBhcmEgbyDDrWNvbmUgZG8gZ3J1cG8gZGUgZW50cmFkYS5cclxuICogLSBgbWFpbklucHV0UGxhY2Vob2xkZXJgOiBUZXh0byBkZSBlc3Bhw6dvIHJlc2VydmFkbyBwYXJhIG8gaW5wdXQgcHJpbmNpcGFsLlxyXG4gKiAtIGBzZWFyY2hJbnB1dFBsYWNlaG9sZGVyYDogVGV4dG8gZGUgZXNwYcOnbyByZXNlcnZhZG8gcGFyYSBvIGlucHV0IGRlIHBlc3F1aXNhLlxyXG4gKiBcclxuICogIyMgT3V0cHV0czpcclxuICogLSBgb25SZWxvYWRMaXN0YDogRXZlbnRvIGVtaXRpZG8gcXVhbmRvIGEgbGlzdGEgcHJlY2lzYSBzZXIgcmVjYXJyZWdhZGEuXHJcbiAqIC0gYG9uU2VsZWN0SXRlbWA6IEV2ZW50byBlbWl0aWRvIHF1YW5kbyB1bSBpdGVtIMOpIHNlbGVjaW9uYWRvLlxyXG4gKiBcclxuICogIyMgTcOpdG9kb3MgUMO6YmxpY29zOlxyXG4gKiAtIGByZWxvYWRMaXN0KHNlYXJjaDogc3RyaW5nKWA6IE3DqXRvZG8gcGFyYSByZWNhcnJlZ2FyIGEgbGlzdGEgZGUgaXRlbnMgY29tIGJhc2UgbmEgcGVzcXVpc2EgZm9ybmVjaWRhLlxyXG4gKiAtIGBzZXRGaWx0ZXJWYWx1ZShpZDogc3RyaW5nIHwgbnVtYmVyLCBsYWJlbDogc3RyaW5nKWA6IE3DqXRvZG8gcGFyYSBkZWZpbmlyIG8gdmFsb3IgZG8gZmlsdHJvLlxyXG4gKiBcclxuICogIyMgUHJvcHJpZWRhZGVzOlxyXG4gKiAtIGBzZWxlY3RlZEl0ZW1gOiBHZXR0ZXIgZSBTZXR0ZXIgcGFyYSBvIGl0ZW0gc2VsZWNpb25hZG8gYXR1YWxtZW50ZS5cclxuICogLSBgRm9ybVV0aWxzYDogR2V0dGVyIHBhcmEgdXRpbGl0w6FyaW9zIGRlIGZvcm11bMOhcmlvLlxyXG4gKiAtIGBfc2VhcmNoSW5wdXRgOiBHZXR0ZXIgcGFyYSBvIHZhbG9yIGRvIGlucHV0IGRlIHBlc3F1aXNhLlxyXG4gKiBcclxuICogIyMgRXZlbnRvczpcclxuICogLSBgbmdPbkluaXQoKWA6IEluaWNpYWxpemEgbyBjb21wb25lbnRlLlxyXG4gKiAtIGBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKWA6IFJlc3BvbmRlIGEgbXVkYW7Dp2FzIG5hcyBwcm9wcmllZGFkZXMgZGUgZW50cmFkYS5cclxuICogXHJcbiAqICMjIFV0aWxpdMOhcmlvczpcclxuICogLSBgY3JlYXRlRmlsdGVyRm9ybSgpYDogQ3JpYSBvIGZvcm11bMOhcmlvIGRlIGZpbHRybyBwYXJhIGEgcGVzcXVpc2EuXHJcbiAqIC0gYG1hcENvbWJvYm94TGlzdCgpYDogTWFwZWlhIGEgbGlzdGEgZGUgY29tYm9ib3ggcGFyYSBvIGZvcm1hdG8gbmVjZXNzw6FyaW8uXHJcbiAqIFxyXG4gKiBAbm90ZSBFc3RlIGNvbXBvbmVudGUgw6kgbWFyY2FkbyBjb21vIGBzdGFuZGFsb25lYCwgcGVybWl0aW5kbyBzZXUgdXNvIHNlbSBhIG5lY2Vzc2lkYWRlIGRlIGltcG9ydMOhLWxvIGVtIHVtIG3Ds2R1bG8uXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zZWFyY2gtY29tYm9ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hDb21ib2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlclxyXG4gICkge31cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVhdGVGaWx0ZXJGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1tcImNvbWJvYm94TGlzdFwiXSAhPSB1bmRlZmluZWQgJiYgY2hhbmdlc1tcImNvbWJvYm94TGlzdFwiXS5jdXJyZW50VmFsdWUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMubWFwcGVkQ29tYm9ib3hMaXN0ID0gdGhpcy5jb21ib2JveExpc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFBST1BFUlRJRVMgPD09PT09PT09PT1cclxuXHJcbiAgLy8gI3JlZ2lvbiBQUklWQVRFXHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtOiBSZWNvcmRDb21ib2JveDtcclxuICAvLyAjZW5kcmVnaW9uIFBSSVZBVEVcclxuXHJcbiAgLy8gI3JlZ2lvbiBQVUJMSUNcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgY29tYm9ib3hMaXN0OiBSZWNvcmRDb21ib2JveFtdO1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHB1YmxpYyBsYWJlbFRleHQ6IHN0cmluZztcclxuICBcclxuICBASW5wdXQoKSBwdWJsaWMgY29sb3JUaGVtZTogc3RyaW5nID0gXCJwcmltYXJ5XCI7XHJcbiAgQElucHV0KCkgcHVibGljIGlucHV0R3JvdXBJY29uTmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnB1dEdyb3VwSWNvblRvb2x0aXA6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgcHVibGljIG1haW5JbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlNlbGVjaW9uZSB1bWEgb3DDp8Ojby4uLlwiO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hJbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlBlc3F1aXNhLi4uXCI7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25SZWxvYWRMaXN0OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25TZWxlY3RJdGVtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwdWJsaWMgbWFwcGVkQ29tYm9ib3hMaXN0OiBSZWNvcmRDb21ib2JveFtdID0gW107XHJcbiAgcHVibGljIHNlYXJjaENvbWJvYm94OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRUZXh0OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJdGVtKCk6IFJlY29yZENvbWJvYm94IHsgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbTsgfVxyXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRJdGVtKHZhbHVlOiBSZWNvcmRDb21ib2JveCkge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uU2VsZWN0SXRlbS5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBQVUJMSUNcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XHJcblxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IEZPUk0gQlVJTERFUiA8PT09PT09PT09PVxyXG4gIHB1YmxpYyBmaWx0ZXJGb3JtOiBGb3JtR3JvdXA7XHJcbiAgcHVibGljIGdldCBGb3JtVXRpbHMoKTogdHlwZW9mIEZvcm1VdGlscyB7IHJldHVybiBGb3JtVXRpbHM7IH1cclxuXHJcbiAgLy8gI3JlZ2lvbiBGT1JNIERBVEFcclxuICBwdWJsaWMgZ2V0IF9zZWFyY2hJbnB1dCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5maWx0ZXJGb3JtLmdldChcIl9zZWFyY2hJbnB1dFwiKT8udmFsdWU7IH1cclxuICAvLyAjZW5kcmVnaW9uIEZPUk0gREFUQVxyXG5cclxuICAvLyAjcmVnaW9uIEZPUk0gVkFMSURBVE9SU1xyXG4gIHByaXZhdGUgY3JlYXRlRmlsdGVyRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgX3NlYXJjaElucHV0OiBbIFwiXCIgXVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gRk9STSBWQUxJREFUT1JTXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gRk9STSBCVUlMREVSIDw9PT09PT09PT09XHJcblxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFVUSUxJVElFUyA8PT09PT09PT09PVxyXG4gIHB1YmxpYyBzZXRGaWx0ZXJWYWx1ZShpZDogc3RyaW5nIHwgbnVtYmVyLCBsYWJlbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm0uY29udHJvbHNbXCJfc2VhcmNoSW5wdXRcIl0uc2V0VmFsdWUoYCR7aWQgYXMgc3RyaW5nfSAtICR7bGFiZWx9YCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGV4dCA9IGxhYmVsO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0geyBJRDogaWQsIExBQkVMOiBsYWJlbCwgQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MTogXCJcIiwgSVNfU0VMRUNURUQ6IHRydWUgfTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgcmVsb2FkTGlzdChzZWFyY2g6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5vblJlbG9hZExpc3QuZW1pdChzZWFyY2gpO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFVUSUxJVElFUyA8PT09PT09PT09PVxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBNT0RBTFMgPD09PT09PT09PT1cclxuICAvLyBbLi4uXVxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gTU9EQUxTIDw9PT09PT09PT09XHJcblxyXG59XHJcbiIsIjxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eyBsYWJlbFRleHQgfX08L2xhYmVsPlxyXG48ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgZHJvcGRvd24gZmxleC1maWxsIGdsYi1tYXgtaGVpZ2h0LTM1MHB4XCI+XHJcbiAgIDxidXR0b24gKm5nSWY9XCJpbnB1dEdyb3VwSWNvbk5hbWVcIiBjbGFzcz1cImJ0biBidG4te3tjb2xvclRoZW1lfX1cIiB0eXBlPVwiYnV0dG9uXCIgW3Rvb2x0aXBdPVwiaW5wdXRHcm91cEljb25Ub29sdGlwXCI+XHJcbiAgICAgIDxhcHAtc3ZnLXN0b3JhZ2UgW3N2Z05hbWVdPVwiaW5wdXRHcm91cEljb25OYW1lXCIgc3ZnU2l6ZT1cIm1lZGl1bS1zbWFsbFwiIC8+XHJcbiAgIDwvYnV0dG9uPlxyXG5cclxuICAgPGlucHV0IGNsYXNzPVwiZm9ybS1zZWxlY3QgdGV4dC1zdGFydCByb3VuZGVkLWVuZFwiIHR5cGU9XCJ0ZXh0XCIgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIFtwbGFjZWhvbGRlcl09XCJtYWluSW5wdXRQbGFjZWhvbGRlclwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUZXh0XCIgZGF0YS1icy1hdXRvLWNsb3NlPVwib3V0c2lkZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIHJlYWRvbmx5PlxyXG4gICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51IHAtMiB3LTEwMCBnbGItbWF4LWhlaWdodC0zNTBweCBvdmVyZmxvdy15LXNjcm9sbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgbWItMlwiPlxyXG4gICAgICAgICA8aW5wdXQgI3NlYXJjaElucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJzZWFyY2hJbnB1dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGdsYi1pbnB1dC1uby1nbG93XCIgW3BsYWNlaG9sZGVyXT1cInNlYXJjaElucHV0UGxhY2Vob2xkZXJcIiAoa2V5dXAuZW50ZXIpPVwicmVsb2FkTGlzdChzZWFyY2hJbnB1dC52YWx1ZSlcIj5cclxuICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4te3tjb2xvclRoZW1lfX1cIiAoY2xpY2spPVwicmVsb2FkTGlzdChzZWFyY2hJbnB1dC52YWx1ZSlcIj4gPGFwcC1zdmctc3RvcmFnZSBzdmdOYW1lPVwibHVwYVwiIHN2Z1NpemU9XCJtZWRpdW0tc21hbGxcIiAvPiBQZXNxdWlzYXIgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1hcHBlZENvbWJvYm94TGlzdDsgZWxzZSBsb2FkaW5nTGlzdFwiPlxyXG4gICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWFwcGVkQ29tYm9ib3hMaXN0Lmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlJdGVtTGlzdFwiPlxyXG4gICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gJiYgc2VsZWN0ZWRJdGVtLklEXCIgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInNldEZpbHRlclZhbHVlKCcnLCAnJylcIj4gPHNwYW4gY2xhc3M9XCJmdy1ib2xkXCI+TGltcGFyIG9ww6fDo28gc2VsZWNpb25hZGE8L3NwYW4+IDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtYXBwZWRDb21ib2JveExpc3RcIiAoY2xpY2spPVwic2V0RmlsdGVyVmFsdWUoaXRlbS5JRCwgaXRlbS5MQUJFTCk7IHNlbGVjdGVkSXRlbSA9IGl0ZW1cIj5cclxuICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgfHwgaXRlbS5BZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxICE9ICcnXCIgY2xhc3M9XCJnbGItZnMtMTIgZnctYm9sZCBkLWlubGluZS1ibG9jayB3LTEyNVwiPnt7IGl0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSB9fTwvc3Bhbj4ge3sgaXRlbS5MQUJFTCB9fVxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmdMaXN0PiA8bGkgY2xhc3M9XCJkcm9wZG93bi1pdGVtIHRleHQtY2VudGVyXCI+IDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlclwiIHJvbGU9XCJzdGF0dXNcIj48c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPkNhcnJlZ2FuZG8gZGFkb3MuLi48L3NwYW4+PC9kaXY+IDwvbGk+IDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlJdGVtTGlzdD4gPGxpIGNsYXNzPVwiZHJvcGRvd24taXRlbSBmc3QtaXRhbGljXCI+TmVuaHVtIHJlZ2lzdHJvIGVuY29udHJhZG8gY29tIGVzdGEgcGVzcXVpc2EuLi48L2xpPiA8L25nLXRlbXBsYXRlPlxyXG4gICA8L3VsPlxyXG48L2Rpdj5cclxuIl19
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvc2VhcmNoLWNvbWJvYm94L3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3NlYXJjaC1jb21ib2JveC9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBR3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFLbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvREc7QUFNSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQ1UsWUFBeUI7UUFBekIsaUJBQVksR0FBWixZQUFZLENBQWE7UUEyQm5CLGVBQVUsR0FBVyxTQUFTLENBQUM7UUFFL0IsMEJBQXFCLEdBQVcsRUFBRSxDQUFDO1FBQ25DLHlCQUFvQixHQUFXLHdCQUF3QixDQUFDO1FBQ3hELDJCQUFzQixHQUFXLGFBQWEsQ0FBQztRQUU5QyxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2hFLGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFqQ3hFLENBQUM7SUFFRyxRQUFRO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO1FBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksU0FBUyxJQUFJLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFlBQVksSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNoSCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQXlCRCxJQUFXLFlBQVksS0FBcUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUN4RSxJQUFXLFlBQVksQ0FBQyxLQUFxQjtRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUUzQixPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFBQyxDQUFDO0lBQ2xFLENBQUM7SUFRRCxJQUFXLFNBQVMsS0FBdUIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRTlELG9CQUFvQjtJQUNwQixJQUFXLFlBQVksS0FBYSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEYsdUJBQXVCO0lBRXZCLDBCQUEwQjtJQUNsQixnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUN4QyxZQUFZLEVBQUUsQ0FBRSxFQUFFLENBQUU7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDZCQUE2QjtJQUU3QixrREFBa0Q7SUFHbEQsNENBQTRDO0lBQ3JDLGNBQWMsQ0FBQyxFQUFtQixFQUFFLEtBQWE7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBWSxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2pHLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFMUYsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7WUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ25JLENBQUM7SUFDSCxDQUFDO0lBR00sVUFBVSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0EzRlUsdUJBQXVCO21HQUF2Qix1QkFBdUIseWRDbEVwQyx1NUZBZ0NBOzs0RkRrQ2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjtnRkE0QkcsWUFBWTtzQkFBN0MsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ1MsU0FBUztzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRVQsa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUVVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUNVLHFCQUFxQjtzQkFBcEMsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1Usc0JBQXNCO3NCQUFyQyxLQUFLO2dCQUVXLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsWUFBWTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmltcG9ydCB7IEZvcm1VdGlscyB9IGZyb20gXCIuLi8uLi91dGlscy9mb3JtLXV0aWxzXCI7XHJcblxyXG5pbXBvcnQgeyBSZWNvcmRDb21ib2JveCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tYm9ib3gvcmVjb3JkLWNvbWJvYm94XCI7XHJcblxyXG5cclxuLyoqXHJcbiAqIEBmaWxlIHNlYXJjaC1jb21ib2JveC5jb21wb25lbnQudHNcclxuICogQGRlc2NyaXB0aW9uIEVzdGUgYXJxdWl2byBjb250w6ltIGEgaW1wbGVtZW50YcOnw6NvIGRvIGNvbXBvbmVudGUgU2VhcmNoQ29tYm9ib3hDb21wb25lbnQsIHF1ZSDDqSB1bSBjb21wb25lbnRlIGRlIGludGVyZmFjZSBkbyB1c3XDoXJpb1xyXG4gKiBwYXJhIHJlYWxpemFyIHBlc3F1aXNhcyBlIHNlbGXDp8O1ZXMgZW0gdW1hIGxpc3RhIGRlIG9ww6fDtWVzIGFwcmVzZW50YWRhIGVtIHVtIGNvbWJvYm94LlxyXG4gKiBcclxuICogQGNvbXBvbmVudCBTZWFyY2hDb21ib2JveENvbXBvbmVudFxyXG4gKiBAc2VsZWN0b3Igc2VhcmNoLWNvbWJvYm94XHJcbiAqIEBzdGFuZGFsb25lIHRydWVcclxuICogQGltcG9ydHMgQ29tbW9uTW9kdWxlLCBQcm9qZWN0TW9kdWxlXHJcbiAqIEB0ZW1wbGF0ZVVybCAuL3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQuaHRtbFxyXG4gKiBAc3R5bGVVcmwgLi9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50LnNjc3NcclxuICogXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBPIGNvbXBvbmVudGUgU2VhcmNoQ29tYm9ib3hDb21wb25lbnQgw6kgcHJvamV0YWRvIHBhcmEgZm9ybmVjZXIgYW9zIHVzdcOhcmlvcyB1bWEgaW50ZXJmYWNlIHBhcmEgcGVzcXVpc2FyIGUgc2VsZWNpb25hciBpdGVucyBkZSB1bWEgbGlzdGEuXHJcbiAqIEVsZSBzdXBvcnRhIGEgZmlsdHJhZ2VtIGRlIGl0ZW5zIGNvbSBiYXNlIG5hIGVudHJhZGEgZG8gdXN1w6FyaW8sIHBlcm1pdGluZG8gdW1hIHNlbGXDp8OjbyBtYWlzIGbDoWNpbCBlbSBsaXN0YXMgZXh0ZW5zYXMuXHJcbiAqIFxyXG4gKiAjIyBGdW5jaW9uYWxpZGFkZXM6XHJcbiAqIC0gUGVzcXVpc2EgZSBmaWx0cmFnZW0gZGUgaXRlbnMgbmEgbGlzdGEgZG8gY29tYm9ib3guXHJcbiAqIC0gU2VsZcOnw6NvIGRlIGl0ZW5zIGNvbSBmZWVkYmFjayB2aXN1YWwuXHJcbiAqIC0gRW1pc3PDo28gZGUgZXZlbnRvcyBwZXJzb25hbGl6YWRvcyBwYXJhIGludGVyYcOnw7VlcyBkbyB1c3XDoXJpbywgY29tbyByZWNhcnJlZ2FyIGEgbGlzdGEgb3Ugc2VsZWNpb25hciB1bSBpdGVtLlxyXG4gKiBcclxuICogIyMgSW5wdXRzOlxyXG4gKiAtIGBjb21ib2JveExpc3RgOiBBcnJheSBkZSBvYmpldG9zIHJlcHJlc2VudGFuZG8gb3MgaXRlbnMgZGlzcG9uw612ZWlzIHBhcmEgc2VsZcOnw6NvLlxyXG4gKiAtIGBsYWJlbFRleHRgOiBUZXh0byBkZSBldGlxdWV0YSBhc3NvY2lhZG8gYW8gY29tYm9ib3guXHJcbiAqIC0gYGNvbG9yVGhlbWVgOiBUZW1hIGRlIGNvcmVzIHBhcmEgbyBjb21wb25lbnRlLlxyXG4gKiAtIGBpbnB1dEdyb3VwSWNvbk5hbWVgOiBOb21lIGRvIMOtY29uZSBhIHNlciBleGliaWRvIG5vIGdydXBvIGRlIGVudHJhZGEuXHJcbiAqIC0gYGlucHV0R3JvdXBJY29uVG9vbHRpcGA6IFRleHRvIGRlIGRpY2EgZGUgZmVycmFtZW50YSBwYXJhIG8gw61jb25lIGRvIGdydXBvIGRlIGVudHJhZGEuXHJcbiAqIC0gYG1haW5JbnB1dFBsYWNlaG9sZGVyYDogVGV4dG8gZGUgZXNwYcOnbyByZXNlcnZhZG8gcGFyYSBvIGlucHV0IHByaW5jaXBhbC5cclxuICogLSBgc2VhcmNoSW5wdXRQbGFjZWhvbGRlcmA6IFRleHRvIGRlIGVzcGHDp28gcmVzZXJ2YWRvIHBhcmEgbyBpbnB1dCBkZSBwZXNxdWlzYS5cclxuICogXHJcbiAqICMjIE91dHB1dHM6XHJcbiAqIC0gYG9uUmVsb2FkTGlzdGA6IEV2ZW50byBlbWl0aWRvIHF1YW5kbyBhIGxpc3RhIHByZWNpc2Egc2VyIHJlY2FycmVnYWRhLlxyXG4gKiAtIGBvblNlbGVjdEl0ZW1gOiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gdW0gaXRlbSDDqSBzZWxlY2lvbmFkby5cclxuICogXHJcbiAqICMjIE3DqXRvZG9zIFDDumJsaWNvczpcclxuICogLSBgcmVsb2FkTGlzdChzZWFyY2g6IHN0cmluZylgOiBNw6l0b2RvIHBhcmEgcmVjYXJyZWdhciBhIGxpc3RhIGRlIGl0ZW5zIGNvbSBiYXNlIG5hIHBlc3F1aXNhIGZvcm5lY2lkYS5cclxuICogLSBgc2V0RmlsdGVyVmFsdWUoaWQ6IHN0cmluZyB8IG51bWJlciwgbGFiZWw6IHN0cmluZylgOiBNw6l0b2RvIHBhcmEgZGVmaW5pciBvIHZhbG9yIGRvIGZpbHRyby5cclxuICogXHJcbiAqICMjIFByb3ByaWVkYWRlczpcclxuICogLSBgc2VsZWN0ZWRJdGVtYDogR2V0dGVyIGUgU2V0dGVyIHBhcmEgbyBpdGVtIHNlbGVjaW9uYWRvIGF0dWFsbWVudGUuXHJcbiAqIC0gYEZvcm1VdGlsc2A6IEdldHRlciBwYXJhIHV0aWxpdMOhcmlvcyBkZSBmb3JtdWzDoXJpby5cclxuICogLSBgX3NlYXJjaElucHV0YDogR2V0dGVyIHBhcmEgbyB2YWxvciBkbyBpbnB1dCBkZSBwZXNxdWlzYS5cclxuICogXHJcbiAqICMjIEV2ZW50b3M6XHJcbiAqIC0gYG5nT25Jbml0KClgOiBJbmljaWFsaXphIG8gY29tcG9uZW50ZS5cclxuICogLSBgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcylgOiBSZXNwb25kZSBhIG11ZGFuw6dhcyBuYXMgcHJvcHJpZWRhZGVzIGRlIGVudHJhZGEuXHJcbiAqIFxyXG4gKiAjIyBVdGlsaXTDoXJpb3M6XHJcbiAqIC0gYGNyZWF0ZUZpbHRlckZvcm0oKWA6IENyaWEgbyBmb3JtdWzDoXJpbyBkZSBmaWx0cm8gcGFyYSBhIHBlc3F1aXNhLlxyXG4gKiAtIGBtYXBDb21ib2JveExpc3QoKWA6IE1hcGVpYSBhIGxpc3RhIGRlIGNvbWJvYm94IHBhcmEgbyBmb3JtYXRvIG5lY2Vzc8OhcmlvLlxyXG4gKiBcclxuICogQG5vdGUgRXN0ZSBjb21wb25lbnRlIMOpIG1hcmNhZG8gY29tbyBgc3RhbmRhbG9uZWAsIHBlcm1pdGluZG8gc2V1IHVzbyBzZW0gYSBuZWNlc3NpZGFkZSBkZSBpbXBvcnTDoS1sbyBlbSB1bSBtw7NkdWxvLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc2VhcmNoLWNvbWJvYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29tYm9ib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlRmlsdGVyRm9ybSgpO1xyXG5cclxuICAgIGlmICh0aGlzLmluaXRpYWxpemVkVmFsdWVJRCkgeyB0aGlzLmluaXRpYWxpemVTZWxlY3RlZFZhbHVlKCkgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbXCJjdXJyZW50U2VsZWN0ZWRPcHRpb25cIl0gIT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbXCJjdXJyZW50U2VsZWN0ZWRPcHRpb25cIl0uY3VycmVudFZhbHVlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVTZWxlY3RlZFZhbHVlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFBST1BFUlRJRVMgPD09PT09PT09PT1cclxuXHJcbiAgLy8gI3JlZ2lvbiBQUklWQVRFXHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtOiBSZWNvcmRDb21ib2JveDtcclxuICAvLyAjZW5kcmVnaW9uIFBSSVZBVEVcclxuXHJcbiAgLy8gI3JlZ2lvbiBQVUJMSUNcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgY29tYm9ib3hMaXN0OiBSZWNvcmRDb21ib2JveFtdO1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHB1YmxpYyBsYWJlbFRleHQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGluaXRpYWxpemVkVmFsdWVJRDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIFxyXG4gIEBJbnB1dCgpIHB1YmxpYyBjb2xvclRoZW1lOiBzdHJpbmcgPSBcInByaW1hcnlcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRHcm91cEljb25OYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGlucHV0R3JvdXBJY29uVG9vbHRpcDogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgbWFpbklucHV0UGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiU2VsZWNpb25lIHVtYSBvcMOnw6NvLi4uXCI7XHJcbiAgQElucHV0KCkgcHVibGljIHNlYXJjaElucHV0UGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiUGVzcXVpc2EuLi5cIjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvblJlbG9hZExpc3Q6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvblNlbGVjdEl0ZW06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZFRleHQ6IHN0cmluZztcclxuXHJcbiAgcHVibGljIGdldCBzZWxlY3RlZEl0ZW0oKTogUmVjb3JkQ29tYm9ib3ggeyByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtOyB9XHJcbiAgcHVibGljIHNldCBzZWxlY3RlZEl0ZW0odmFsdWU6IFJlY29yZENvbWJvYm94KSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW0gPSB2YWx1ZTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcInB1YmxpYyBzZXQgc2VsZWN0ZWRJdGVtXCIpO1xyXG4gICAgaWYgKCF0aGlzLmluaXRpYWxpemVkVmFsdWVJRCkgeyB0aGlzLm9uU2VsZWN0SXRlbS5lbWl0KHZhbHVlKTsgfVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIFBVQkxJQ1xyXG5cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFBST1BFUlRJRVMgPD09PT09PT09PT1cclxuXHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gRk9STSBCVUlMREVSIDw9PT09PT09PT09XHJcbiAgcHVibGljIGZpbHRlckZvcm06IEZvcm1Hcm91cDtcclxuICBwdWJsaWMgZ2V0IEZvcm1VdGlscygpOiB0eXBlb2YgRm9ybVV0aWxzIHsgcmV0dXJuIEZvcm1VdGlsczsgfVxyXG5cclxuICAvLyAjcmVnaW9uIEZPUk0gREFUQVxyXG4gIHB1YmxpYyBnZXQgX3NlYXJjaElucHV0KCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmZpbHRlckZvcm0uZ2V0KFwiX3NlYXJjaElucHV0XCIpPy52YWx1ZTsgfVxyXG4gIC8vICNlbmRyZWdpb24gRk9STSBEQVRBXHJcblxyXG4gIC8vICNyZWdpb24gRk9STSBWQUxJREFUT1JTXHJcbiAgcHJpdmF0ZSBjcmVhdGVGaWx0ZXJGb3JtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBfc2VhcmNoSW5wdXQ6IFsgXCJcIiBdXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBGT1JNIFZBTElEQVRPUlNcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBGT1JNIEJVSUxERVIgPD09PT09PT09PT1cclxuXHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gVVRJTElUSUVTIDw9PT09PT09PT09XHJcbiAgcHVibGljIHNldEZpbHRlclZhbHVlKGlkOiBzdHJpbmcgfCBudW1iZXIsIGxhYmVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybS5jb250cm9sc1tcIl9zZWFyY2hJbnB1dFwiXS5zZXRWYWx1ZShgJHtpZCBhcyBzdHJpbmd9IC0gJHtsYWJlbH1gKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUZXh0ID0gbGFiZWw7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB7IElEOiBpZCwgTEFCRUw6IGxhYmVsLCBBZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxOiBcIlwiLCBJU19TRUxFQ1RFRDogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplU2VsZWN0ZWRWYWx1ZSgpOiB2b2lkIHtcclxuICAgIGxldCBpbml0aWFsaXplZFZhbHVlID0gdGhpcy5jb21ib2JveExpc3QuZmluZChpdGVtID0+IGl0ZW0uSUQgPT0gdGhpcy5pbml0aWFsaXplZFZhbHVlSUQpO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbWJvYm94TGlzdCAmJiBpbml0aWFsaXplZFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZXh0ID0gaW5pdGlhbGl6ZWRWYWx1ZS5MQUJFTDtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB7IElEOiBpbml0aWFsaXplZFZhbHVlLklELCBMQUJFTDogaW5pdGlhbGl6ZWRWYWx1ZS5MQUJFTCwgQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MTogXCJcIiwgSVNfU0VMRUNURUQ6IHRydWUgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgcmVsb2FkTGlzdChzZWFyY2g6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5vblJlbG9hZExpc3QuZW1pdChzZWFyY2gpO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFVUSUxJVElFUyA8PT09PT09PT09PVxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBNT0RBTFMgPD09PT09PT09PT1cclxuICAvLyBbLi4uXVxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gTU9EQUxTIDw9PT09PT09PT09XHJcblxyXG59XHJcbiIsIjxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgZnctYm9sZFwiIFtpbm5lckhUTUxdPVwibGFiZWxUZXh0XCI+PC9sYWJlbD5cclxuPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGRyb3Bkb3duIGZsZXgtZmlsbCBnbGItbWF4LWhlaWdodC0zNTBweFwiPlxyXG5cclxuICAgPCEtLSBFc3RlIGVsZW1lbnRvIG5nLWNvbnRlbnQgY29tIG8gYXRyaWJ1dG8gW2J0bkxlZnRdIHBlcm1pdGUgcXVlIG8gdXN1w6FyaW8gZmluYWwgZm9ybmXDp2EgY29udGXDumRvIHBlcnNvbmFsaXphZG8gcGFyYSBzZXIgZXhpYmlkbyBubyBsYWRvIGVzcXVlcmRvIGRvIGNvbWJvYm94IGRlIHBlc3F1aXNhLlxyXG4gICBBbyB1c2FyIG8gYXRyaWJ1dG8gW2J0bkxlZnRdLCBvIHVzdcOhcmlvIHBvZGUgZmFjaWxtZW50ZSBhZGljaW9uYXIgYm90w7VlcyBvdSBvdXRyb3MgZWxlbWVudG9zIHBhcmEgbWVsaG9yYXIgYSBmdW5jaW9uYWxpZGFkZSBvdSBhcGFyw6puY2lhIGRvIGNvbWJvYm94IGRlIHBlc3F1aXNhLiAtLT5cclxuICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2J0bkxlZnRdXCI+PC9uZy1jb250ZW50PlxyXG5cclxuICAgPGlucHV0IGNsYXNzPVwiZm9ybS1zZWxlY3QgdGV4dC1zdGFydCByb3VuZGVkLWVuZFwiIHR5cGU9XCJ0ZXh0XCIgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIFtwbGFjZWhvbGRlcl09XCJtYWluSW5wdXRQbGFjZWhvbGRlclwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUZXh0XCIgZGF0YS1icy1hdXRvLWNsb3NlPVwib3V0c2lkZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIHJlYWRvbmx5PlxyXG4gICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51IHAtMiB3LTEwMCBnbGItbWF4LWhlaWdodC0zNTBweCBvdmVyZmxvdy15LXNjcm9sbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgbWItMlwiPlxyXG4gICAgICAgICA8aW5wdXQgI3NlYXJjaElucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJzZWFyY2hJbnB1dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGdsYi1pbnB1dC1uby1nbG93XCIgW3BsYWNlaG9sZGVyXT1cInNlYXJjaElucHV0UGxhY2Vob2xkZXJcIiAoa2V5dXAuZW50ZXIpPVwicmVsb2FkTGlzdChzZWFyY2hJbnB1dC52YWx1ZSlcIj5cclxuICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4te3tjb2xvclRoZW1lfX1cIiAoY2xpY2spPVwicmVsb2FkTGlzdChzZWFyY2hJbnB1dC52YWx1ZSlcIj4gPGFwcC1zdmctc3RvcmFnZSBzdmdOYW1lPVwibHVwYVwiIHN2Z1NpemU9XCJtZWRpdW0tc21hbGxcIiAvPiBQZXNxdWlzYXIgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94TGlzdDsgZWxzZSBsb2FkaW5nTGlzdFwiPlxyXG4gICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3hMaXN0Lmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlJdGVtTGlzdFwiPlxyXG4gICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gJiYgc2VsZWN0ZWRJdGVtLklEXCIgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInNldEZpbHRlclZhbHVlKCcnLCAnJylcIj4gPHNwYW4gY2xhc3M9XCJmdy1ib2xkXCI+TGltcGFyIG9ww6fDo28gc2VsZWNpb25hZGE8L3NwYW4+IDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb21ib2JveExpc3RcIiAoY2xpY2spPVwic2V0RmlsdGVyVmFsdWUoaXRlbS5JRCwgaXRlbS5MQUJFTCk7IHNlbGVjdGVkSXRlbSA9IGl0ZW1cIj5cclxuICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgfHwgaXRlbS5BZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxICE9ICcnXCIgY2xhc3M9XCJnbGItZnMtMTIgZnctYm9sZCBkLWlubGluZS1ibG9jayB3LTEyNVwiPnt7IGl0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSB9fTwvc3Bhbj4ge3sgaXRlbS5MQUJFTCB9fVxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmdMaXN0PiA8bGkgY2xhc3M9XCJkcm9wZG93bi1pdGVtIHRleHQtY2VudGVyXCI+IDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlclwiIHJvbGU9XCJzdGF0dXNcIj48c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPkNhcnJlZ2FuZG8gZGFkb3MuLi48L3NwYW4+PC9kaXY+IDwvbGk+IDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlJdGVtTGlzdD4gPGxpIGNsYXNzPVwiZHJvcGRvd24taXRlbSBmc3QtaXRhbGljXCI+TmVuaHVtIHJlZ2lzdHJvIGVuY29udHJhZG8gY29tIGVzdGEgcGVzcXVpc2EuLi48L2xpPiA8L25nLXRlbXBsYXRlPlxyXG4gICA8L3VsPlxyXG5cclxuICAgPCEtLSBFc3RlIGVsZW1lbnRvIG5nLWNvbnRlbnQgY29tIG8gYXRyaWJ1dG8gW2J0blJpZ2h0XSBwZXJtaXRlIHF1ZSBvIHVzdcOhcmlvIGZpbmFsIGZvcm5lw6dhIGNvbnRlw7pkbyBwZXJzb25hbGl6YWRvIHBhcmEgc2VyIGV4aWJpZG8gbm8gbGFkbyBkaXJlaXRvIGRvIGNvbWJvYm94IGRlIHBlc3F1aXNhLlxyXG4gICBBbyB1c2FyIG8gYXRyaWJ1dG8gW2J0blJpZ2h0XSwgbyB1c3XDoXJpbyBwb2RlIGZhY2lsbWVudGUgYWRpY2lvbmFyIGJvdMO1ZXMgb3Ugb3V0cm9zIGVsZW1lbnRvcyBwYXJhIG1lbGhvcmFyIGEgZnVuY2lvbmFsaWRhZGUgb3UgYXBhcsOqbmNpYSBkbyBjb21ib2JveCBkZSBwZXNxdWlzYS4gLS0+XHJcbiAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltidG5SaWdodF1cIj48L25nLWNvbnRlbnQ+XHJcblxyXG48L2Rpdj5cclxuIl19
@@ -49,4 +49,4 @@ export * from './lib/widgets/tree/models/ret-tree';
49
49
  export * from './lib/widgets/tree/models/tree-item';
50
50
  export * from './lib/widgets/tree/pipes/search-tree.pipe';
51
51
  export * from './lib/widgets/search-combobox/search-combobox.component';
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWM7QUFDZCxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWM7QUFDZCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxhQUFhO0FBQ2IsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLFlBQVk7QUFDWixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxZQUFZO0FBQ1osY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGlCQUFpQjtBQUNqQixjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYztBQUNkLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseURBQXlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGluZnJhXG4gKi9cblxuLyoqIE1vZHVsZXMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2luZnJhLm1vZHVsZSc7XG5cbi8qKiBNZXNzYWdlICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzc2FnZS9jb25maXJtLW1vZGFsL2NvbmZpcm0tbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2Uvc2F2ZS9zYXZlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlL21lc3NhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlL21lc3NhZ2UtZW51bSc7XG5cbi8qKiBNb2RlbHMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9Eb3dubG9hZEFycXVpdm9zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9lbWFpbC1tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaWVycm9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9pcGFnaW5hdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmVwb3J0LWZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JldC1lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvcmV0LWZlZWRiYWNrLW1lc3NhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JldC1yZXBvcnQtZmlsZSc7XG5cbi8qKiBQaXBlcyAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvY3BmLWNucGoucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9jdXJyZW5jeS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL3RvLXVybC5waXBlJztcblxuLyoqIFV0aWxzICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9jaGVjay11cmwtYW5kLW1ldGhvZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2Zvcm0tdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvc2V0dGluZ3Muc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9pcC1zZXJ2aWNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvdXRpbHMnO1xuXG4vKiogVmFsaWRhdG9ycyAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmFsaWRhdG9ycy9jcGYtY25wai52YWxpZGF0b3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMvY3BmLWNucGoudmFsaWRhdG9yJztcblxuLyoqIFdpZGdldHMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvYnJlYWRjcnVtYi9pbmZyYS1icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvYnJlYWRjcnVtYi9pbmZyYS1icmVhZGNydW1iLWl0ZW0vaW5mcmEtYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL2JyZWFkY3J1bWIvcG9ydGFscmgtYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL2NsaWNrLW91dHNpZGUvY2xpY2tvdXRzaWRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL2ZpZWxkLWNvbnRyb2wtZXJyb3IvZmllbGQtY29udHJvbC1lcnJvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy9maWVsZC1lcnJvci1tZXNzYWdlL2ZpZWxkLWVycm9yLW1lc3NhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL2xvYWRpbmctYnV0dG9uL2xvYWRpbmctYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL29yZGVyaW5nL29yZGVyaW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL3N2Zy1zdG9yYWdlL3N2Zy1zdG9yYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL3RyZWUvdHJlZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy90cmVlL21vZGVscy9yZXQtdHJlZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL3RyZWUvbW9kZWxzL3RyZWUtaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL3RyZWUvcGlwZXMvc2VhcmNoLXRyZWUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL3NlYXJjaC1jb21ib2JveC9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50JztcbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWM7QUFDZCxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWM7QUFDZCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxhQUFhO0FBQ2IsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLFlBQVk7QUFDWixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxZQUFZO0FBQ1osY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGlCQUFpQjtBQUNqQixjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYztBQUNkLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseURBQXlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgaW5mcmFcclxuICovXHJcblxyXG4vKiogTW9kdWxlcyAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbmZyYS5tb2R1bGUnO1xyXG5cclxuLyoqIE1lc3NhZ2UgKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzc2FnZS9hbGVydC9hbGVydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlL2NvbmZpcm0tbW9kYWwvY29uZmlybS1tb2RhbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlL3NhdmUvc2F2ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNzYWdlL21lc3NhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc3NhZ2UvbWVzc2FnZS1lbnVtJztcclxuXHJcbi8qKiBNb2RlbHMgKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL0Rvd25sb2FkQXJxdWl2b3MnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZW1haWwtbW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvaWVycm9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2lwYWdpbmF0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JlcG9ydC1maWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3JldC1lcnJvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXQtZmVlZGJhY2stbWVzc2FnZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yZXQtcmVwb3J0LWZpbGUnO1xyXG5cclxuLyoqIFBpcGVzICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2NwZi1jbnBqLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9jdXJyZW5jeS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvdG8tdXJsLnBpcGUnO1xyXG5cclxuLyoqIFV0aWxzICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2NoZWNrLXVybC1hbmQtbWV0aG9kLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9mb3JtLXV0aWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvc2V0dGluZ3Muc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2lwLXNlcnZpY2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3V0aWxzJztcclxuXHJcbi8qKiBWYWxpZGF0b3JzICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMvY3BmLWNucGoudmFsaWRhdG9yLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMvY3BmLWNucGoudmFsaWRhdG9yJztcclxuXHJcbi8qKiBXaWRnZXRzICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvYnJlYWRjcnVtYi9pbmZyYS1icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy9icmVhZGNydW1iL2luZnJhLWJyZWFkY3J1bWItaXRlbS9pbmZyYS1icmVhZGNydW1iLWl0ZW0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy9icmVhZGNydW1iL3BvcnRhbHJoLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL2NsaWNrLW91dHNpZGUvY2xpY2tvdXRzaWRlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvY29tYm9ib3gvY29tYm9ib3guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy9maWVsZC1jb250cm9sLWVycm9yL2ZpZWxkLWNvbnRyb2wtZXJyb3IuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy9maWVsZC1lcnJvci1tZXNzYWdlL2ZpZWxkLWVycm9yLW1lc3NhZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy9sb2FkaW5nLWJ1dHRvbi9sb2FkaW5nLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL29yZGVyaW5nL29yZGVyaW5nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvc3ZnLXN0b3JhZ2Uvc3ZnLXN0b3JhZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy90cmVlL3RyZWUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy90cmVlL21vZGVscy9yZXQtdHJlZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMvdHJlZS9tb2RlbHMvdHJlZS1pdGVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy90cmVlL3BpcGVzL3NlYXJjaC10cmVlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi93aWRnZXRzL3NlYXJjaC1jb21ib2JveC9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50JztcclxuIl19
@@ -5,13 +5,13 @@ import { Component, Input, EventEmitter, Output, Pipe, forwardRef, ViewChildren,
5
5
  import * as i2 from '@angular/forms';
6
6
  import { NG_VALUE_ACCESSOR, UntypedFormGroup, UntypedFormArray, FormsModule, ReactiveFormsModule, NG_VALIDATORS } from '@angular/forms';
7
7
  import { RouterModule } from '@angular/router';
8
- import * as i2$1 from 'ngx-bootstrap/accordion';
8
+ import * as i2$2 from 'ngx-bootstrap/accordion';
9
9
  import { AccordionModule } from 'ngx-bootstrap/accordion';
10
10
  import * as i1 from 'ngx-bootstrap/modal';
11
11
  import { ModalModule } from 'ngx-bootstrap/modal';
12
12
  import { Subject } from 'rxjs';
13
13
  import * as i1$2 from '@angular/platform-browser';
14
- import * as i3 from 'ngx-bootstrap/tooltip';
14
+ import * as i2$1 from 'ngx-bootstrap/tooltip';
15
15
  import { TooltipModule } from 'ngx-bootstrap/tooltip';
16
16
  import { take } from 'rxjs/operators';
17
17
  import * as i1$3 from '@angular/common/http';
@@ -1449,7 +1449,7 @@ class OrderingComponent {
1449
1449
  this.sortDirection = '';
1450
1450
  }
1451
1451
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: OrderingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1452
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: OrderingComponent, selector: "app-ordering", inputs: { isColumnClicked: "isColumnClicked", sortDirection: "sortDirection", sortAttributes: "sortAttributes" }, outputs: { sortDirectionChange: "sortDirectionChange", sortChange: "sortChange" }, ngImport: i0, template: "<ng-template [ngIf]=\"sortDirection !== 'desc'\">\n <app-svg-storage\n (click)=\"sort()\"\n [svgName]=\"'arrow-up'\"\n [class.rotate]=\"sortDirection !== ''\"\n [svgColor]=\"getSvgColor()\"\n tooltip=\"'Ascendente'\"\n style=\"cursor: pointer;\"\n ></app-svg-storage>\n <!-- Ordenar Ascendente -->\n</ng-template>\n\n<ng-template [ngIf]=\"sortDirection === 'desc'\">\n <app-svg-storage\n (click)=\"sort()\"\n [svgName]=\"'arrow-down'\"\n [class.rotate]=\"true\"\n [svgColor]=\"'blue'\"\n tooltip=\"'Descendente'\"\n style=\"cursor: pointer;\"\n ></app-svg-storage>\n <!-- Ordenar Descendente -->\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: SvgStorageComponent, selector: "app-svg-storage", inputs: ["svgName", "svgColor", "svgFill", "svgSize", "svgStrokeWidth"] }] }); }
1452
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: OrderingComponent, selector: "app-ordering", inputs: { isColumnClicked: "isColumnClicked", sortDirection: "sortDirection", sortAttributes: "sortAttributes" }, outputs: { sortDirectionChange: "sortDirectionChange", sortChange: "sortChange" }, ngImport: i0, template: "<ng-template [ngIf]=\"sortDirection !== 'desc'\">\n <app-svg-storage\n (click)=\"sort()\"\n [svgName]=\"'arrow-up'\"\n [class.rotate]=\"sortDirection !== ''\"\n [svgColor]=\"getSvgColor()\"\n tooltip=\"'Ascendente'\"\n style=\"cursor: pointer;\"\n ></app-svg-storage>\n <!-- Ordenar Ascendente -->\n</ng-template>\n\n<ng-template [ngIf]=\"sortDirection === 'desc'\">\n <app-svg-storage\n (click)=\"sort()\"\n [svgName]=\"'arrow-down'\"\n [class.rotate]=\"true\"\n [svgColor]=\"'blue'\"\n tooltip=\"'Descendente'\"\n style=\"cursor: pointer;\"\n ></app-svg-storage>\n <!-- Ordenar Descendente -->\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: SvgStorageComponent, selector: "app-svg-storage", inputs: ["svgName", "svgColor", "svgFill", "svgSize", "svgStrokeWidth"] }] }); }
1453
1453
  }
1454
1454
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: OrderingComponent, decorators: [{
1455
1455
  type: Component,
@@ -1528,21 +1528,25 @@ class SearchComboboxComponent {
1528
1528
  this.searchInputPlaceholder = "Pesquisa...";
1529
1529
  this.onReloadList = new EventEmitter();
1530
1530
  this.onSelectItem = new EventEmitter();
1531
- this.mappedComboboxList = [];
1532
- this.searchCombobox = "";
1533
1531
  }
1534
1532
  ngOnInit() {
1535
1533
  this.createFilterForm();
1534
+ if (this.initializedValueID) {
1535
+ this.initializeSelectedValue();
1536
+ }
1536
1537
  }
1537
1538
  ngOnChanges(changes) {
1538
- if (changes["comboboxList"] != undefined && changes["comboboxList"].currentValue != undefined) {
1539
- this.mappedComboboxList = this.comboboxList;
1539
+ if (changes["currentSelectedOption"] != undefined && changes["currentSelectedOption"].currentValue != undefined) {
1540
+ this.initializeSelectedValue();
1540
1541
  }
1541
1542
  }
1542
1543
  get selectedItem() { return this._selectedItem; }
1543
1544
  set selectedItem(value) {
1544
1545
  this._selectedItem = value;
1545
- this.onSelectItem.emit(value);
1546
+ console.log("public set selectedItem");
1547
+ if (!this.initializedValueID) {
1548
+ this.onSelectItem.emit(value);
1549
+ }
1546
1550
  }
1547
1551
  get FormUtils() { return FormUtils; }
1548
1552
  // #region FORM DATA
@@ -1562,21 +1566,30 @@ class SearchComboboxComponent {
1562
1566
  this.selectedText = label;
1563
1567
  this.selectedItem = { ID: id, LABEL: label, AdditionalStringProperty1: "", IS_SELECTED: true };
1564
1568
  }
1569
+ initializeSelectedValue() {
1570
+ let initializedValue = this.comboboxList.find(item => item.ID == this.initializedValueID);
1571
+ if (this.comboboxList && initializedValue) {
1572
+ this.selectedText = initializedValue.LABEL;
1573
+ this.selectedItem = { ID: initializedValue.ID, LABEL: initializedValue.LABEL, AdditionalStringProperty1: "", IS_SELECTED: true };
1574
+ }
1575
+ }
1565
1576
  reloadList(search) {
1566
1577
  this.onReloadList.emit(search);
1567
1578
  }
1568
1579
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchComboboxComponent, deps: [{ token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
1569
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SearchComboboxComponent, selector: "lib-search-combobox", inputs: { comboboxList: "comboboxList", labelText: "labelText", colorTheme: "colorTheme", inputGroupIconName: "inputGroupIconName", inputGroupIconTooltip: "inputGroupIconTooltip", mainInputPlaceholder: "mainInputPlaceholder", searchInputPlaceholder: "searchInputPlaceholder" }, outputs: { onReloadList: "onReloadList", onSelectItem: "onSelectItem" }, usesOnChanges: true, ngImport: i0, template: "<label class=\"form-label\">{{ labelText }}</label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n <button *ngIf=\"inputGroupIconName\" class=\"btn btn-{{colorTheme}}\" type=\"button\" [tooltip]=\"inputGroupIconTooltip\">\r\n <app-svg-storage [svgName]=\"inputGroupIconName\" svgSize=\"medium-small\" />\r\n </button>\r\n\r\n <input class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly>\r\n <ul class=\"dropdown-menu p-2 w-100 glb-max-height-350px overflow-y-scroll\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> Pesquisar </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"mappedComboboxList; else loadingList\">\r\n <ng-container *ngIf=\"mappedComboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID\" class=\"dropdown-item\" (click)=\"setFilterValue('', '')\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of mappedComboboxList\" (click)=\"setFilterValue(item.ID, item.LABEL); selectedItem = item\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SvgStorageComponent, selector: "app-svg-storage", inputs: ["svgName", "svgColor", "svgFill", "svgSize", "svgStrokeWidth"] }] }); }
1580
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SearchComboboxComponent, selector: "lib-search-combobox", inputs: { comboboxList: "comboboxList", labelText: "labelText", initializedValueID: "initializedValueID", colorTheme: "colorTheme", inputGroupIconName: "inputGroupIconName", inputGroupIconTooltip: "inputGroupIconTooltip", mainInputPlaceholder: "mainInputPlaceholder", searchInputPlaceholder: "searchInputPlaceholder" }, outputs: { onReloadList: "onReloadList", onSelectItem: "onSelectItem" }, usesOnChanges: true, ngImport: i0, template: "<label class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly>\r\n <ul class=\"dropdown-menu p-2 w-100 glb-max-height-350px overflow-y-scroll\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> Pesquisar </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"comboboxList; else loadingList\">\r\n <ng-container *ngIf=\"comboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID\" class=\"dropdown-item\" (click)=\"setFilterValue('', '')\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of comboboxList\" (click)=\"setFilterValue(item.ID, item.LABEL); selectedItem = item\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n\r\n <!-- Este elemento ng-content com o atributo [btnRight] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado direito do combobox de pesquisa.\r\n Ao usar o atributo [btnRight], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnRight]\"></ng-content>\r\n\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SvgStorageComponent, selector: "app-svg-storage", inputs: ["svgName", "svgColor", "svgFill", "svgSize", "svgStrokeWidth"] }] }); }
1570
1581
  }
1571
1582
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchComboboxComponent, decorators: [{
1572
1583
  type: Component,
1573
- args: [{ selector: 'lib-search-combobox', template: "<label class=\"form-label\">{{ labelText }}</label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n <button *ngIf=\"inputGroupIconName\" class=\"btn btn-{{colorTheme}}\" type=\"button\" [tooltip]=\"inputGroupIconTooltip\">\r\n <app-svg-storage [svgName]=\"inputGroupIconName\" svgSize=\"medium-small\" />\r\n </button>\r\n\r\n <input class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly>\r\n <ul class=\"dropdown-menu p-2 w-100 glb-max-height-350px overflow-y-scroll\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> Pesquisar </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"mappedComboboxList; else loadingList\">\r\n <ng-container *ngIf=\"mappedComboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID\" class=\"dropdown-item\" (click)=\"setFilterValue('', '')\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of mappedComboboxList\" (click)=\"setFilterValue(item.ID, item.LABEL); selectedItem = item\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"] }]
1584
+ args: [{ selector: 'lib-search-combobox', template: "<label class=\"form-label fw-bold\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\n\r\n <!-- Este elemento ng-content com o atributo [btnLeft] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado esquerdo do combobox de pesquisa.\r\n Ao usar o atributo [btnLeft], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnLeft]\"></ng-content>\r\n\r\n <input class=\"form-select text-start rounded-end\" type=\"text\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" [placeholder]=\"mainInputPlaceholder\" [(ngModel)]=\"selectedText\" data-bs-auto-close=\"outside\" aria-expanded=\"false\" readonly>\r\n <ul class=\"dropdown-menu p-2 w-100 glb-max-height-350px overflow-y-scroll\">\r\n <div class=\"input-group mb-2\">\r\n <input #searchInput type=\"text\" id=\"searchInput\" class=\"form-control glb-input-no-glow\" [placeholder]=\"searchInputPlaceholder\" (keyup.enter)=\"reloadList(searchInput.value)\">\r\n <button class=\"btn btn-{{colorTheme}}\" (click)=\"reloadList(searchInput.value)\"> <app-svg-storage svgName=\"lupa\" svgSize=\"medium-small\" /> Pesquisar </button>\r\n </div>\r\n\r\n <ng-container *ngIf=\"comboboxList; else loadingList\">\r\n <ng-container *ngIf=\"comboboxList.length > 0; else emptyItemList\">\r\n <li *ngIf=\"selectedItem && selectedItem.ID\" class=\"dropdown-item\" (click)=\"setFilterValue('', '')\"> <span class=\"fw-bold\">Limpar op\u00E7\u00E3o selecionada</span> </li>\r\n <li class=\"dropdown-item\" *ngFor=\"let item of comboboxList\" (click)=\"setFilterValue(item.ID, item.LABEL); selectedItem = item\">\r\n <span *ngIf=\"item.AdditionalStringProperty1 || item.AdditionalStringProperty1 != ''\" class=\"glb-fs-12 fw-bold d-inline-block w-125\">{{ item.AdditionalStringProperty1 }}</span> {{ item.LABEL }}\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loadingList> <li class=\"dropdown-item text-center\"> <div class=\"spinner-border\" role=\"status\"><span class=\"visually-hidden\">Carregando dados...</span></div> </li> </ng-template>\r\n <ng-template #emptyItemList> <li class=\"dropdown-item fst-italic\">Nenhum registro encontrado com esta pesquisa...</li> </ng-template>\r\n </ul>\r\n\r\n <!-- Este elemento ng-content com o atributo [btnRight] permite que o usu\u00E1rio final forne\u00E7a conte\u00FAdo personalizado para ser exibido no lado direito do combobox de pesquisa.\r\n Ao usar o atributo [btnRight], o usu\u00E1rio pode facilmente adicionar bot\u00F5es ou outros elementos para melhorar a funcionalidade ou apar\u00EAncia do combobox de pesquisa. -->\r\n <ng-content select=\"[btnRight]\"></ng-content>\r\n\r\n</div>\r\n", styles: [".glb-max-height-350px{max-height:350px!important}\n"] }]
1574
1585
  }], ctorParameters: () => [{ type: i2.FormBuilder }], propDecorators: { comboboxList: [{
1575
1586
  type: Input,
1576
1587
  args: [{ required: true }]
1577
1588
  }], labelText: [{
1578
1589
  type: Input,
1579
1590
  args: [{ required: true }]
1591
+ }], initializedValueID: [{
1592
+ type: Input
1580
1593
  }], colorTheme: [{
1581
1594
  type: Input
1582
1595
  }], inputGroupIconName: [{
@@ -1616,7 +1629,7 @@ class InfraModule {
1616
1629
  SearchTreePipe,
1617
1630
  ClickOutsideDirective,
1618
1631
  OrderingComponent,
1619
- SearchComboboxComponent], imports: [CommonModule, i1.ModalModule, i2$1.AccordionModule, i3.TooltipModule, FormsModule,
1632
+ SearchComboboxComponent], imports: [CommonModule, i1.ModalModule, i2$2.AccordionModule, i2$1.TooltipModule, FormsModule,
1620
1633
  ReactiveFormsModule,
1621
1634
  RouterModule], exports: [LoadingComponent,
1622
1635
  FieldControlErrorComponent,