ngx-sp-infra 0.3.78 → 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 "
|
|
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
|
|
@@ -70,6 +69,9 @@ export class SearchComboboxComponent {
|
|
|
70
69
|
}
|
|
71
70
|
ngOnInit() {
|
|
72
71
|
this.createFilterForm();
|
|
72
|
+
if (this.initializedValueID) {
|
|
73
|
+
this.initializeSelectedValue();
|
|
74
|
+
}
|
|
73
75
|
}
|
|
74
76
|
ngOnChanges(changes) {
|
|
75
77
|
if (changes["currentSelectedOption"] != undefined && changes["currentSelectedOption"].currentValue != undefined) {
|
|
@@ -79,7 +81,10 @@ export class SearchComboboxComponent {
|
|
|
79
81
|
get selectedItem() { return this._selectedItem; }
|
|
80
82
|
set selectedItem(value) {
|
|
81
83
|
this._selectedItem = value;
|
|
82
|
-
|
|
84
|
+
console.log("public set selectedItem");
|
|
85
|
+
if (!this.initializedValueID) {
|
|
86
|
+
this.onSelectItem.emit(value);
|
|
87
|
+
}
|
|
83
88
|
}
|
|
84
89
|
get FormUtils() { return FormUtils; }
|
|
85
90
|
// #region FORM DATA
|
|
@@ -100,26 +105,28 @@ export class SearchComboboxComponent {
|
|
|
100
105
|
this.selectedItem = { ID: id, LABEL: label, AdditionalStringProperty1: "", IS_SELECTED: true };
|
|
101
106
|
}
|
|
102
107
|
initializeSelectedValue() {
|
|
103
|
-
|
|
104
|
-
|
|
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 };
|
|
105
112
|
}
|
|
106
113
|
}
|
|
107
114
|
reloadList(search) {
|
|
108
115
|
this.onReloadList.emit(search);
|
|
109
116
|
}
|
|
110
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 }); }
|
|
111
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SearchComboboxComponent, selector: "lib-search-combobox", inputs: { comboboxList: "comboboxList", labelText: "labelText",
|
|
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"] }] }); }
|
|
112
119
|
}
|
|
113
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchComboboxComponent, decorators: [{
|
|
114
121
|
type: Component,
|
|
115
|
-
args: [{ selector: 'lib-search-combobox', template: "<label class=\"form-label\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\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"] }]
|
|
116
123
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { comboboxList: [{
|
|
117
124
|
type: Input,
|
|
118
125
|
args: [{ required: true }]
|
|
119
126
|
}], labelText: [{
|
|
120
127
|
type: Input,
|
|
121
128
|
args: [{ required: true }]
|
|
122
|
-
}],
|
|
129
|
+
}], initializedValueID: [{
|
|
123
130
|
type: Input
|
|
124
131
|
}], colorTheme: [{
|
|
125
132
|
type: Input
|
|
@@ -136,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
136
143
|
}], onSelectItem: [{
|
|
137
144
|
type: Output
|
|
138
145
|
}] } });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvc2VhcmNoLWNvbWJvYm94L3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3NlYXJjaC1jb21ib2JveC9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBR3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBS25EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUNVLFlBQXlCO1FBQXpCLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBeUJuQixlQUFVLEdBQVcsU0FBUyxDQUFDO1FBRS9CLDBCQUFxQixHQUFXLEVBQUUsQ0FBQztRQUNuQyx5QkFBb0IsR0FBVyx3QkFBd0IsQ0FBQztRQUN4RCwyQkFBc0IsR0FBVyxhQUFhLENBQUM7UUFFOUMsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNoRSxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBL0J4RSxDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxTQUFTLElBQUksT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUMsWUFBWSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2hILElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBeUJELElBQVcsWUFBWSxLQUFxQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLElBQVcsWUFBWSxDQUFDLEtBQXFCO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFRRCxJQUFXLFNBQVMsS0FBdUIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRTlELG9CQUFvQjtJQUNwQixJQUFXLFlBQVksS0FBYSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEYsdUJBQXVCO0lBRXZCLDBCQUEwQjtJQUNsQixnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUN4QyxZQUFZLEVBQUUsQ0FBRSxFQUFFLENBQUU7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDZCQUE2QjtJQUU3QixrREFBa0Q7SUFHbEQsNENBQTRDO0lBQ3JDLGNBQWMsQ0FBQyxFQUFtQixFQUFFLEtBQWE7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBWSxNQUFNLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2pHLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1lBQy9GLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBRSxDQUFDLEtBQUssQ0FBQztRQUNuRyxDQUFDO0lBQ0gsQ0FBQztJQUdNLFVBQVUsQ0FBQyxNQUFjO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBcEZVLHVCQUF1QjttR0FBdkIsdUJBQXVCLCtkQ2xFcEMscXdFQTBCQTs7NEZEd0NhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7Z0ZBMEJHLFlBQVk7c0JBQTdDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNTLFNBQVM7c0JBQTFDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUVULHFCQUFxQjtzQkFBcEMsS0FBSztnQkFFVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLGtCQUFrQjtzQkFBakMsS0FBSztnQkFDVSxxQkFBcUI7c0JBQXBDLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNVLHNCQUFzQjtzQkFBckMsS0FBSztnQkFFVyxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLFlBQVk7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5pbXBvcnQgeyBGb3JtVXRpbHMgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZm9ybS11dGlsc1wiO1xyXG5cclxuaW1wb3J0IHsgUmVjb3JkQ29tYm9ib3ggfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbWJvYm94L3JlY29yZC1jb21ib2JveFwiO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBAZmlsZSBzZWFyY2gtY29tYm9ib3guY29tcG9uZW50LnRzXHJcbiAqIEBkZXNjcmlwdGlvbiBFc3RlIGFycXVpdm8gY29udMOpbSBhIGltcGxlbWVudGHDp8OjbyBkbyBjb21wb25lbnRlIFNlYXJjaENvbWJvYm94Q29tcG9uZW50LCBxdWUgw6kgdW0gY29tcG9uZW50ZSBkZSBpbnRlcmZhY2UgZG8gdXN1w6FyaW9cclxuICogcGFyYSByZWFsaXphciBwZXNxdWlzYXMgZSBzZWxlw6fDtWVzIGVtIHVtYSBsaXN0YSBkZSBvcMOnw7VlcyBhcHJlc2VudGFkYSBlbSB1bSBjb21ib2JveC5cclxuICogXHJcbiAqIEBjb21wb25lbnQgU2VhcmNoQ29tYm9ib3hDb21wb25lbnRcclxuICogQHNlbGVjdG9yIHNlYXJjaC1jb21ib2JveFxyXG4gKiBAc3RhbmRhbG9uZSB0cnVlXHJcbiAqIEBpbXBvcnRzIENvbW1vbk1vZHVsZSwgUHJvamVjdE1vZHVsZVxyXG4gKiBAdGVtcGxhdGVVcmwgLi9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50Lmh0bWxcclxuICogQHN0eWxlVXJsIC4vc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5zY3NzXHJcbiAqIFxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogTyBjb21wb25lbnRlIFNlYXJjaENvbWJvYm94Q29tcG9uZW50IMOpIHByb2pldGFkbyBwYXJhIGZvcm5lY2VyIGFvcyB1c3XDoXJpb3MgdW1hIGludGVyZmFjZSBwYXJhIHBlc3F1aXNhciBlIHNlbGVjaW9uYXIgaXRlbnMgZGUgdW1hIGxpc3RhLlxyXG4gKiBFbGUgc3Vwb3J0YSBhIGZpbHRyYWdlbSBkZSBpdGVucyBjb20gYmFzZSBuYSBlbnRyYWRhIGRvIHVzdcOhcmlvLCBwZXJtaXRpbmRvIHVtYSBzZWxlw6fDo28gbWFpcyBmw6FjaWwgZW0gbGlzdGFzIGV4dGVuc2FzLlxyXG4gKiBcclxuICogIyMgRnVuY2lvbmFsaWRhZGVzOlxyXG4gKiAtIFBlc3F1aXNhIGUgZmlsdHJhZ2VtIGRlIGl0ZW5zIG5hIGxpc3RhIGRvIGNvbWJvYm94LlxyXG4gKiAtIFNlbGXDp8OjbyBkZSBpdGVucyBjb20gZmVlZGJhY2sgdmlzdWFsLlxyXG4gKiAtIEVtaXNzw6NvIGRlIGV2ZW50b3MgcGVyc29uYWxpemFkb3MgcGFyYSBpbnRlcmHDp8O1ZXMgZG8gdXN1w6FyaW8sIGNvbW8gcmVjYXJyZWdhciBhIGxpc3RhIG91IHNlbGVjaW9uYXIgdW0gaXRlbS5cclxuICogXHJcbiAqICMjIElucHV0czpcclxuICogLSBgY29tYm9ib3hMaXN0YDogQXJyYXkgZGUgb2JqZXRvcyByZXByZXNlbnRhbmRvIG9zIGl0ZW5zIGRpc3BvbsOtdmVpcyBwYXJhIHNlbGXDp8Ojby5cclxuICogLSBgbGFiZWxUZXh0YDogVGV4dG8gZGUgZXRpcXVldGEgYXNzb2NpYWRvIGFvIGNvbWJvYm94LlxyXG4gKiAtIGBjb2xvclRoZW1lYDogVGVtYSBkZSBjb3JlcyBwYXJhIG8gY29tcG9uZW50ZS5cclxuICogLSBgaW5wdXRHcm91cEljb25OYW1lYDogTm9tZSBkbyDDrWNvbmUgYSBzZXIgZXhpYmlkbyBubyBncnVwbyBkZSBlbnRyYWRhLlxyXG4gKiAtIGBpbnB1dEdyb3VwSWNvblRvb2x0aXBgOiBUZXh0byBkZSBkaWNhIGRlIGZlcnJhbWVudGEgcGFyYSBvIMOtY29uZSBkbyBncnVwbyBkZSBlbnRyYWRhLlxyXG4gKiAtIGBtYWluSW5wdXRQbGFjZWhvbGRlcmA6IFRleHRvIGRlIGVzcGHDp28gcmVzZXJ2YWRvIHBhcmEgbyBpbnB1dCBwcmluY2lwYWwuXHJcbiAqIC0gYHNlYXJjaElucHV0UGxhY2Vob2xkZXJgOiBUZXh0byBkZSBlc3Bhw6dvIHJlc2VydmFkbyBwYXJhIG8gaW5wdXQgZGUgcGVzcXVpc2EuXHJcbiAqIFxyXG4gKiAjIyBPdXRwdXRzOlxyXG4gKiAtIGBvblJlbG9hZExpc3RgOiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gYSBsaXN0YSBwcmVjaXNhIHNlciByZWNhcnJlZ2FkYS5cclxuICogLSBgb25TZWxlY3RJdGVtYDogRXZlbnRvIGVtaXRpZG8gcXVhbmRvIHVtIGl0ZW0gw6kgc2VsZWNpb25hZG8uXHJcbiAqIFxyXG4gKiAjIyBNw6l0b2RvcyBQw7pibGljb3M6XHJcbiAqIC0gYHJlbG9hZExpc3Qoc2VhcmNoOiBzdHJpbmcpYDogTcOpdG9kbyBwYXJhIHJlY2FycmVnYXIgYSBsaXN0YSBkZSBpdGVucyBjb20gYmFzZSBuYSBwZXNxdWlzYSBmb3JuZWNpZGEuXHJcbiAqIC0gYHNldEZpbHRlclZhbHVlKGlkOiBzdHJpbmcgfCBudW1iZXIsIGxhYmVsOiBzdHJpbmcpYDogTcOpdG9kbyBwYXJhIGRlZmluaXIgbyB2YWxvciBkbyBmaWx0cm8uXHJcbiAqIFxyXG4gKiAjIyBQcm9wcmllZGFkZXM6XHJcbiAqIC0gYHNlbGVjdGVkSXRlbWA6IEdldHRlciBlIFNldHRlciBwYXJhIG8gaXRlbSBzZWxlY2lvbmFkbyBhdHVhbG1lbnRlLlxyXG4gKiAtIGBGb3JtVXRpbHNgOiBHZXR0ZXIgcGFyYSB1dGlsaXTDoXJpb3MgZGUgZm9ybXVsw6FyaW8uXHJcbiAqIC0gYF9zZWFyY2hJbnB1dGA6IEdldHRlciBwYXJhIG8gdmFsb3IgZG8gaW5wdXQgZGUgcGVzcXVpc2EuXHJcbiAqIFxyXG4gKiAjIyBFdmVudG9zOlxyXG4gKiAtIGBuZ09uSW5pdCgpYDogSW5pY2lhbGl6YSBvIGNvbXBvbmVudGUuXHJcbiAqIC0gYG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpYDogUmVzcG9uZGUgYSBtdWRhbsOnYXMgbmFzIHByb3ByaWVkYWRlcyBkZSBlbnRyYWRhLlxyXG4gKiBcclxuICogIyMgVXRpbGl0w6FyaW9zOlxyXG4gKiAtIGBjcmVhdGVGaWx0ZXJGb3JtKClgOiBDcmlhIG8gZm9ybXVsw6FyaW8gZGUgZmlsdHJvIHBhcmEgYSBwZXNxdWlzYS5cclxuICogLSBgbWFwQ29tYm9ib3hMaXN0KClgOiBNYXBlaWEgYSBsaXN0YSBkZSBjb21ib2JveCBwYXJhIG8gZm9ybWF0byBuZWNlc3PDoXJpby5cclxuICogXHJcbiAqIEBub3RlIEVzdGUgY29tcG9uZW50ZSDDqSBtYXJjYWRvIGNvbW8gYHN0YW5kYWxvbmVgLCBwZXJtaXRpbmRvIHNldSB1c28gc2VtIGEgbmVjZXNzaWRhZGUgZGUgaW1wb3J0w6EtbG8gZW0gdW0gbcOzZHVsby5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNlYXJjaC1jb21ib2JveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaENvbWJvYm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUZpbHRlckZvcm0oKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzW1wiY3VycmVudFNlbGVjdGVkT3B0aW9uXCJdICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzW1wiY3VycmVudFNlbGVjdGVkT3B0aW9uXCJdLmN1cnJlbnRWYWx1ZSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplU2VsZWN0ZWRWYWx1ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XHJcblxyXG4gIC8vICNyZWdpb24gUFJJVkFURVxyXG4gIHByaXZhdGUgX3NlbGVjdGVkSXRlbTogUmVjb3JkQ29tYm9ib3g7XHJcbiAgLy8gI2VuZHJlZ2lvbiBQUklWQVRFXHJcblxyXG4gIC8vICNyZWdpb24gUFVCTElDXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIGNvbWJvYm94TGlzdDogUmVjb3JkQ29tYm9ib3hbXTtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgbGFiZWxUZXh0OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50U2VsZWN0ZWRPcHRpb246IHN0cmluZyB8IG51bWJlcjtcclxuICBcclxuICBASW5wdXQoKSBwdWJsaWMgY29sb3JUaGVtZTogc3RyaW5nID0gXCJwcmltYXJ5XCI7XHJcbiAgQElucHV0KCkgcHVibGljIGlucHV0R3JvdXBJY29uTmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnB1dEdyb3VwSWNvblRvb2x0aXA6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgcHVibGljIG1haW5JbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlNlbGVjaW9uZSB1bWEgb3DDp8Ojby4uLlwiO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hJbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlBlc3F1aXNhLi4uXCI7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25SZWxvYWRMaXN0OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25TZWxlY3RJdGVtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRUZXh0OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJdGVtKCk6IFJlY29yZENvbWJvYm94IHsgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbTsgfVxyXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRJdGVtKHZhbHVlOiBSZWNvcmRDb21ib2JveCkge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uU2VsZWN0SXRlbS5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBQVUJMSUNcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XHJcblxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IEZPUk0gQlVJTERFUiA8PT09PT09PT09PVxyXG4gIHB1YmxpYyBmaWx0ZXJGb3JtOiBGb3JtR3JvdXA7XHJcbiAgcHVibGljIGdldCBGb3JtVXRpbHMoKTogdHlwZW9mIEZvcm1VdGlscyB7IHJldHVybiBGb3JtVXRpbHM7IH1cclxuXHJcbiAgLy8gI3JlZ2lvbiBGT1JNIERBVEFcclxuICBwdWJsaWMgZ2V0IF9zZWFyY2hJbnB1dCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5maWx0ZXJGb3JtLmdldChcIl9zZWFyY2hJbnB1dFwiKT8udmFsdWU7IH1cclxuICAvLyAjZW5kcmVnaW9uIEZPUk0gREFUQVxyXG5cclxuICAvLyAjcmVnaW9uIEZPUk0gVkFMSURBVE9SU1xyXG4gIHByaXZhdGUgY3JlYXRlRmlsdGVyRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgX3NlYXJjaElucHV0OiBbIFwiXCIgXVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gRk9STSBWQUxJREFUT1JTXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gRk9STSBCVUlMREVSIDw9PT09PT09PT09XHJcblxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFVUSUxJVElFUyA8PT09PT09PT09PVxyXG4gIHB1YmxpYyBzZXRGaWx0ZXJWYWx1ZShpZDogc3RyaW5nIHwgbnVtYmVyLCBsYWJlbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm0uY29udHJvbHNbXCJfc2VhcmNoSW5wdXRcIl0uc2V0VmFsdWUoYCR7aWQgYXMgc3RyaW5nfSAtICR7bGFiZWx9YCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGV4dCA9IGxhYmVsO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0geyBJRDogaWQsIExBQkVMOiBsYWJlbCwgQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MTogXCJcIiwgSVNfU0VMRUNURUQ6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVNlbGVjdGVkVmFsdWUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb21ib2JveExpc3QgJiYgdGhpcy5jb21ib2JveExpc3QuZmluZChpdGVtID0+IGl0ZW0uSUQgPT0gdGhpcy5jdXJyZW50U2VsZWN0ZWRPcHRpb24pKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZXh0ID0gdGhpcy5jb21ib2JveExpc3QuZmluZChpdGVtID0+IGl0ZW0uSUQgPT0gdGhpcy5jdXJyZW50U2VsZWN0ZWRPcHRpb24pIS5MQUJFTDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgcmVsb2FkTGlzdChzZWFyY2g6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5vblJlbG9hZExpc3QuZW1pdChzZWFyY2gpO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFVUSUxJVElFUyA8PT09PT09PT09PVxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBNT0RBTFMgPD09PT09PT09PT1cclxuICAvLyBbLi4uXVxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gTU9EQUxTIDw9PT09PT09PT09XHJcblxyXG59XHJcbiIsIjxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBbaW5uZXJIVE1MXT1cImxhYmVsVGV4dFwiPjwvbGFiZWw+XHJcbjxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBkcm9wZG93biBmbGV4LWZpbGwgZ2xiLW1heC1oZWlnaHQtMzUwcHhcIj5cclxuICAgPGJ1dHRvbiAqbmdJZj1cImlucHV0R3JvdXBJY29uTmFtZVwiIGNsYXNzPVwiYnRuIGJ0bi17e2NvbG9yVGhlbWV9fVwiIHR5cGU9XCJidXR0b25cIiBbdG9vbHRpcF09XCJpbnB1dEdyb3VwSWNvblRvb2x0aXBcIj5cclxuICAgICAgPGFwcC1zdmctc3RvcmFnZSBbc3ZnTmFtZV09XCJpbnB1dEdyb3VwSWNvbk5hbWVcIiBzdmdTaXplPVwibWVkaXVtLXNtYWxsXCIgLz5cclxuICAgPC9idXR0b24+XHJcblxyXG4gICA8aW5wdXQgY2xhc3M9XCJmb3JtLXNlbGVjdCB0ZXh0LXN0YXJ0IHJvdW5kZWQtZW5kXCIgdHlwZT1cInRleHRcIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgW3BsYWNlaG9sZGVyXT1cIm1haW5JbnB1dFBsYWNlaG9sZGVyXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFRleHRcIiBkYXRhLWJzLWF1dG8tY2xvc2U9XCJvdXRzaWRlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgcmVhZG9ubHk+XHJcbiAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnUgcC0yIHctMTAwIGdsYi1tYXgtaGVpZ2h0LTM1MHB4IG92ZXJmbG93LXktc2Nyb2xsXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBtYi0yXCI+XHJcbiAgICAgICAgIDxpbnB1dCAjc2VhcmNoSW5wdXQgdHlwZT1cInRleHRcIiBpZD1cInNlYXJjaElucHV0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZ2xiLWlucHV0LW5vLWdsb3dcIiBbcGxhY2Vob2xkZXJdPVwic2VhcmNoSW5wdXRQbGFjZWhvbGRlclwiIChrZXl1cC5lbnRlcik9XCJyZWxvYWRMaXN0KHNlYXJjaElucHV0LnZhbHVlKVwiPlxyXG4gICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi17e2NvbG9yVGhlbWV9fVwiIChjbGljayk9XCJyZWxvYWRMaXN0KHNlYXJjaElucHV0LnZhbHVlKVwiPiA8YXBwLXN2Zy1zdG9yYWdlIHN2Z05hbWU9XCJsdXBhXCIgc3ZnU2l6ZT1cIm1lZGl1bS1zbWFsbFwiIC8+IFBlc3F1aXNhciA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3hMaXN0OyBlbHNlIGxvYWRpbmdMaXN0XCI+XHJcbiAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21ib2JveExpc3QubGVuZ3RoID4gMDsgZWxzZSBlbXB0eUl0ZW1MaXN0XCI+XHJcbiAgICAgICAgICAgIDxsaSAqbmdJZj1cInNlbGVjdGVkSXRlbSAmJiBzZWxlY3RlZEl0ZW0uSURcIiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwic2V0RmlsdGVyVmFsdWUoJycsICcnKVwiPiA8c3BhbiBjbGFzcz1cImZ3LWJvbGRcIj5MaW1wYXIgb3DDp8OjbyBzZWxlY2lvbmFkYTwvc3Bhbj4gPC9saT5cclxuICAgICAgICAgICAgPGxpIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbWJvYm94TGlzdFwiIChjbGljayk9XCJzZXRGaWx0ZXJWYWx1ZShpdGVtLklELCBpdGVtLkxBQkVMKTsgc2VsZWN0ZWRJdGVtID0gaXRlbVwiPlxyXG4gICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSB8fCBpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgIT0gJydcIiBjbGFzcz1cImdsYi1mcy0xMiBmdy1ib2xkIGQtaW5saW5lLWJsb2NrIHctMTI1XCI+e3sgaXRlbS5BZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxIH19PC9zcGFuPiB7eyBpdGVtLkxBQkVMIH19XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGluZ0xpc3Q+IDxsaSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gdGV4dC1jZW50ZXJcIj4gPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyXCIgcm9sZT1cInN0YXR1c1wiPjxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+Q2FycmVnYW5kbyBkYWRvcy4uLjwvc3Bhbj48L2Rpdj4gPC9saT4gPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUl0ZW1MaXN0PiA8bGkgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGZzdC1pdGFsaWNcIj5OZW5odW0gcmVnaXN0cm8gZW5jb250cmFkbyBjb20gZXN0YSBwZXNxdWlzYS4uLjwvbGk+IDwvbmctdGVtcGxhdGU+XHJcbiAgIDwvdWw+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1pbmZyYS9zcmMvbGliL3dpZGdldHMvc2VhcmNoLWNvbWJvYm94L3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3NlYXJjaC1jb21ib2JveC9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBR3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFLbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvREc7QUFNSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQ1UsWUFBeUI7UUFBekIsaUJBQVksR0FBWixZQUFZLENBQWE7UUEyQm5CLGVBQVUsR0FBVyxTQUFTLENBQUM7UUFFL0IsMEJBQXFCLEdBQVcsRUFBRSxDQUFDO1FBQ25DLHlCQUFvQixHQUFXLHdCQUF3QixDQUFDO1FBQ3hELDJCQUFzQixHQUFXLGFBQWEsQ0FBQztRQUU5QyxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2hFLGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFqQ3hFLENBQUM7SUFFRyxRQUFRO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO1FBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsV0FB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QWtCO3NCQUFqQyxLQUFLO2dCQUNVLHFCQUFxQjtzQkFBcEMsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1Usc0JBQXNCO3NCQUFyQyxLQUFLO2dCQUVXLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsWUFBWTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmltcG9ydCB7IEZvcm1VdGlscyB9IGZyb20gXCIuLi8uLi91dGlscy9mb3JtLXV0aWxzXCI7XHJcblxyXG5pbXBvcnQgeyBSZWNvcmRDb21ib2JveCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tYm9ib3gvcmVjb3JkLWNvbWJvYm94XCI7XHJcblxyXG5cclxuLyoqXHJcbiAqIEBmaWxlIHNlYXJjaC1jb21ib2JveC5jb21wb25lbnQudHNcclxuICogQGRlc2NyaXB0aW9uIEVzdGUgYXJxdWl2byBjb250w6ltIGEgaW1wbGVtZW50YcOnw6NvIGRvIGNvbXBvbmVudGUgU2VhcmNoQ29tYm9ib3hDb21wb25lbnQsIHF1ZSDDqSB1bSBjb21wb25lbnRlIGRlIGludGVyZmFjZSBkbyB1c3XDoXJpb1xyXG4gKiBwYXJhIHJlYWxpemFyIHBlc3F1aXNhcyBlIHNlbGXDp8O1ZXMgZW0gdW1hIGxpc3RhIGRlIG9ww6fDtWVzIGFwcmVzZW50YWRhIGVtIHVtIGNvbWJvYm94LlxyXG4gKiBcclxuICogQGNvbXBvbmVudCBTZWFyY2hDb21ib2JveENvbXBvbmVudFxyXG4gKiBAc2VsZWN0b3Igc2VhcmNoLWNvbWJvYm94XHJcbiAqIEBzdGFuZGFsb25lIHRydWVcclxuICogQGltcG9ydHMgQ29tbW9uTW9kdWxlLCBQcm9qZWN0TW9kdWxlXHJcbiAqIEB0ZW1wbGF0ZVVybCAuL3NlYXJjaC1jb21ib2JveC5jb21wb25lbnQuaHRtbFxyXG4gKiBAc3R5bGVVcmwgLi9zZWFyY2gtY29tYm9ib3guY29tcG9uZW50LnNjc3NcclxuICogXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBPIGNvbXBvbmVudGUgU2VhcmNoQ29tYm9ib3hDb21wb25lbnQgw6kgcHJvamV0YWRvIHBhcmEgZm9ybmVjZXIgYW9zIHVzdcOhcmlvcyB1bWEgaW50ZXJmYWNlIHBhcmEgcGVzcXVpc2FyIGUgc2VsZWNpb25hciBpdGVucyBkZSB1bWEgbGlzdGEuXHJcbiAqIEVsZSBzdXBvcnRhIGEgZmlsdHJhZ2VtIGRlIGl0ZW5zIGNvbSBiYXNlIG5hIGVudHJhZGEgZG8gdXN1w6FyaW8sIHBlcm1pdGluZG8gdW1hIHNlbGXDp8OjbyBtYWlzIGbDoWNpbCBlbSBsaXN0YXMgZXh0ZW5zYXMuXHJcbiAqIFxyXG4gKiAjIyBGdW5jaW9uYWxpZGFkZXM6XHJcbiAqIC0gUGVzcXVpc2EgZSBmaWx0cmFnZW0gZGUgaXRlbnMgbmEgbGlzdGEgZG8gY29tYm9ib3guXHJcbiAqIC0gU2VsZcOnw6NvIGRlIGl0ZW5zIGNvbSBmZWVkYmFjayB2aXN1YWwuXHJcbiAqIC0gRW1pc3PDo28gZGUgZXZlbnRvcyBwZXJzb25hbGl6YWRvcyBwYXJhIGludGVyYcOnw7VlcyBkbyB1c3XDoXJpbywgY29tbyByZWNhcnJlZ2FyIGEgbGlzdGEgb3Ugc2VsZWNpb25hciB1bSBpdGVtLlxyXG4gKiBcclxuICogIyMgSW5wdXRzOlxyXG4gKiAtIGBjb21ib2JveExpc3RgOiBBcnJheSBkZSBvYmpldG9zIHJlcHJlc2VudGFuZG8gb3MgaXRlbnMgZGlzcG9uw612ZWlzIHBhcmEgc2VsZcOnw6NvLlxyXG4gKiAtIGBsYWJlbFRleHRgOiBUZXh0byBkZSBldGlxdWV0YSBhc3NvY2lhZG8gYW8gY29tYm9ib3guXHJcbiAqIC0gYGNvbG9yVGhlbWVgOiBUZW1hIGRlIGNvcmVzIHBhcmEgbyBjb21wb25lbnRlLlxyXG4gKiAtIGBpbnB1dEdyb3VwSWNvbk5hbWVgOiBOb21lIGRvIMOtY29uZSBhIHNlciBleGliaWRvIG5vIGdydXBvIGRlIGVudHJhZGEuXHJcbiAqIC0gYGlucHV0R3JvdXBJY29uVG9vbHRpcGA6IFRleHRvIGRlIGRpY2EgZGUgZmVycmFtZW50YSBwYXJhIG8gw61jb25lIGRvIGdydXBvIGRlIGVudHJhZGEuXHJcbiAqIC0gYG1haW5JbnB1dFBsYWNlaG9sZGVyYDogVGV4dG8gZGUgZXNwYcOnbyByZXNlcnZhZG8gcGFyYSBvIGlucHV0IHByaW5jaXBhbC5cclxuICogLSBgc2VhcmNoSW5wdXRQbGFjZWhvbGRlcmA6IFRleHRvIGRlIGVzcGHDp28gcmVzZXJ2YWRvIHBhcmEgbyBpbnB1dCBkZSBwZXNxdWlzYS5cclxuICogXHJcbiAqICMjIE91dHB1dHM6XHJcbiAqIC0gYG9uUmVsb2FkTGlzdGA6IEV2ZW50byBlbWl0aWRvIHF1YW5kbyBhIGxpc3RhIHByZWNpc2Egc2VyIHJlY2FycmVnYWRhLlxyXG4gKiAtIGBvblNlbGVjdEl0ZW1gOiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gdW0gaXRlbSDDqSBzZWxlY2lvbmFkby5cclxuICogXHJcbiAqICMjIE3DqXRvZG9zIFDDumJsaWNvczpcclxuICogLSBgcmVsb2FkTGlzdChzZWFyY2g6IHN0cmluZylgOiBNw6l0b2RvIHBhcmEgcmVjYXJyZWdhciBhIGxpc3RhIGRlIGl0ZW5zIGNvbSBiYXNlIG5hIHBlc3F1aXNhIGZvcm5lY2lkYS5cclxuICogLSBgc2V0RmlsdGVyVmFsdWUoaWQ6IHN0cmluZyB8IG51bWJlciwgbGFiZWw6IHN0cmluZylgOiBNw6l0b2RvIHBhcmEgZGVmaW5pciBvIHZhbG9yIGRvIGZpbHRyby5cclxuICogXHJcbiAqICMjIFByb3ByaWVkYWRlczpcclxuICogLSBgc2VsZWN0ZWRJdGVtYDogR2V0dGVyIGUgU2V0dGVyIHBhcmEgbyBpdGVtIHNlbGVjaW9uYWRvIGF0dWFsbWVudGUuXHJcbiAqIC0gYEZvcm1VdGlsc2A6IEdldHRlciBwYXJhIHV0aWxpdMOhcmlvcyBkZSBmb3JtdWzDoXJpby5cclxuICogLSBgX3NlYXJjaElucHV0YDogR2V0dGVyIHBhcmEgbyB2YWxvciBkbyBpbnB1dCBkZSBwZXNxdWlzYS5cclxuICogXHJcbiAqICMjIEV2ZW50b3M6XHJcbiAqIC0gYG5nT25Jbml0KClgOiBJbmljaWFsaXphIG8gY29tcG9uZW50ZS5cclxuICogLSBgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcylgOiBSZXNwb25kZSBhIG11ZGFuw6dhcyBuYXMgcHJvcHJpZWRhZGVzIGRlIGVudHJhZGEuXHJcbiAqIFxyXG4gKiAjIyBVdGlsaXTDoXJpb3M6XHJcbiAqIC0gYGNyZWF0ZUZpbHRlckZvcm0oKWA6IENyaWEgbyBmb3JtdWzDoXJpbyBkZSBmaWx0cm8gcGFyYSBhIHBlc3F1aXNhLlxyXG4gKiAtIGBtYXBDb21ib2JveExpc3QoKWA6IE1hcGVpYSBhIGxpc3RhIGRlIGNvbWJvYm94IHBhcmEgbyBmb3JtYXRvIG5lY2Vzc8OhcmlvLlxyXG4gKiBcclxuICogQG5vdGUgRXN0ZSBjb21wb25lbnRlIMOpIG1hcmNhZG8gY29tbyBgc3RhbmRhbG9uZWAsIHBlcm1pdGluZG8gc2V1IHVzbyBzZW0gYSBuZWNlc3NpZGFkZSBkZSBpbXBvcnTDoS1sbyBlbSB1bSBtw7NkdWxvLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc2VhcmNoLWNvbWJvYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc2VhcmNoLWNvbWJvYm94LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29tYm9ib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlRmlsdGVyRm9ybSgpO1xyXG5cclxuICAgIGlmICh0aGlzLmluaXRpYWxpemVkVmFsdWVJRCkgeyB0aGlzLmluaXRpYWxpemVTZWxlY3RlZFZhbHVlKCkgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbXCJjdXJyZW50U2VsZWN0ZWRPcHRpb25cIl0gIT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbXCJjdXJyZW50U2VsZWN0ZWRPcHRpb25cIl0uY3VycmVudFZhbHVlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVTZWxlY3RlZFZhbHVlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFBST1BFUlRJRVMgPD09PT09PT09PT1cclxuXHJcbiAgLy8gI3JlZ2lvbiBQUklWQVRFXHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtOiBSZWNvcmRDb21ib2JveDtcclxuICAvLyAjZW5kcmVnaW9uIFBSSVZBVEVcclxuXHJcbiAgLy8gI3JlZ2lvbiBQVUJMSUNcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgY29tYm9ib3hMaXN0OiBSZWNvcmRDb21ib2JveFtdO1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHB1YmxpYyBsYWJlbFRleHQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGluaXRpYWxpemVkVmFsdWVJRDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIFxyXG4gIEBJbnB1dCgpIHB1YmxpYyBjb2xvclRoZW1lOiBzdHJpbmcgPSBcInByaW1hcnlcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRHcm91cEljb25OYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGlucHV0R3JvdXBJY29uVG9vbHRpcDogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgbWFpbklucHV0UGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiU2VsZWNpb25lIHVtYSBvcMOnw6NvLi4uXCI7XHJcbiAgQElucHV0KCkgcHVibGljIHNlYXJjaElucHV0UGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiUGVzcXVpc2EuLi5cIjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvblJlbG9hZExpc3Q6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvblNlbGVjdEl0ZW06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZFRleHQ6IHN0cmluZztcclxuXHJcbiAgcHVibGljIGdldCBzZWxlY3RlZEl0ZW0oKTogUmVjb3JkQ29tYm9ib3ggeyByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtOyB9XHJcbiAgcHVibGljIHNldCBzZWxlY3RlZEl0ZW0odmFsdWU6IFJlY29yZENvbWJvYm94KSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW0gPSB2YWx1ZTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcInB1YmxpYyBzZXQgc2VsZWN0ZWRJdGVtXCIpO1xyXG4gICAgaWYgKCF0aGlzLmluaXRpYWxpemVkVmFsdWVJRCkgeyB0aGlzLm9uU2VsZWN0SXRlbS5lbWl0KHZhbHVlKTsgfVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIFBVQkxJQ1xyXG5cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFBST1BFUlRJRVMgPD09PT09PT09PT1cclxuXHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gRk9STSBCVUlMREVSIDw9PT09PT09PT09XHJcbiAgcHVibGljIGZpbHRlckZvcm06IEZvcm1Hcm91cDtcclxuICBwdWJsaWMgZ2V0IEZvcm1VdGlscygpOiB0eXBlb2YgRm9ybVV0aWxzIHsgcmV0dXJuIEZvcm1VdGlsczsgfVxyXG5cclxuICAvLyAjcmVnaW9uIEZPUk0gREFUQVxyXG4gIHB1YmxpYyBnZXQgX3NlYXJjaElucHV0KCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmZpbHRlckZvcm0uZ2V0KFwiX3NlYXJjaElucHV0XCIpPy52YWx1ZTsgfVxyXG4gIC8vICNlbmRyZWdpb24gRk9STSBEQVRBXHJcblxyXG4gIC8vICNyZWdpb24gRk9STSBWQUxJREFUT1JTXHJcbiAgcHJpdmF0ZSBjcmVhdGVGaWx0ZXJGb3JtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBfc2VhcmNoSW5wdXQ6IFsgXCJcIiBdXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBGT1JNIFZBTElEQVRPUlNcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBGT1JNIEJVSUxERVIgPD09PT09PT09PT1cclxuXHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gVVRJTElUSUVTIDw9PT09PT09PT09XHJcbiAgcHVibGljIHNldEZpbHRlclZhbHVlKGlkOiBzdHJpbmcgfCBudW1iZXIsIGxhYmVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybS5jb250cm9sc1tcIl9zZWFyY2hJbnB1dFwiXS5zZXRWYWx1ZShgJHtpZCBhcyBzdHJpbmd9IC0gJHtsYWJlbH1gKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUZXh0ID0gbGFiZWw7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB7IElEOiBpZCwgTEFCRUw6IGxhYmVsLCBBZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxOiBcIlwiLCBJU19TRUxFQ1RFRDogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplU2VsZWN0ZWRWYWx1ZSgpOiB2b2lkIHtcclxuICAgIGxldCBpbml0aWFsaXplZFZhbHVlID0gdGhpcy5jb21ib2JveExpc3QuZmluZChpdGVtID0+IGl0ZW0uSUQgPT0gdGhpcy5pbml0aWFsaXplZFZhbHVlSUQpO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbWJvYm94TGlzdCAmJiBpbml0aWFsaXplZFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZXh0ID0gaW5pdGlhbGl6ZWRWYWx1ZS5MQUJFTDtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB7IElEOiBpbml0aWFsaXplZFZhbHVlLklELCBMQUJFTDogaW5pdGlhbGl6ZWRWYWx1ZS5MQUJFTCwgQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MTogXCJcIiwgSVNfU0VMRUNURUQ6IHRydWUgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgcmVsb2FkTGlzdChzZWFyY2g6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5vblJlbG9hZExpc3QuZW1pdChzZWFyY2gpO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFVUSUxJVElFUyA8PT09PT09PT09PVxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBNT0RBTFMgPD09PT09PT09PT1cclxuICAvLyBbLi4uXVxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gTU9EQUxTIDw9PT09PT09PT09XHJcblxyXG59XHJcbiIsIjxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgZnctYm9sZFwiIFtpbm5lckhUTUxdPVwibGFiZWxUZXh0XCI+PC9sYWJlbD5cclxuPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGRyb3Bkb3duIGZsZXgtZmlsbCBnbGItbWF4LWhlaWdodC0zNTBweFwiPlxyXG5cclxuICAgPCEtLSBFc3RlIGVsZW1lbnRvIG5nLWNvbnRlbnQgY29tIG8gYXRyaWJ1dG8gW2J0bkxlZnRdIHBlcm1pdGUgcXVlIG8gdXN1w6FyaW8gZmluYWwgZm9ybmXDp2EgY29udGXDumRvIHBlcnNvbmFsaXphZG8gcGFyYSBzZXIgZXhpYmlkbyBubyBsYWRvIGVzcXVlcmRvIGRvIGNvbWJvYm94IGRlIHBlc3F1aXNhLlxyXG4gICBBbyB1c2FyIG8gYXRyaWJ1dG8gW2J0bkxlZnRdLCBvIHVzdcOhcmlvIHBvZGUgZmFjaWxtZW50ZSBhZGljaW9uYXIgYm90w7VlcyBvdSBvdXRyb3MgZWxlbWVudG9zIHBhcmEgbWVsaG9yYXIgYSBmdW5jaW9uYWxpZGFkZSBvdSBhcGFyw6puY2lhIGRvIGNvbWJvYm94IGRlIHBlc3F1aXNhLiAtLT5cclxuICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2J0bkxlZnRdXCI+PC9uZy1jb250ZW50PlxyXG5cclxuICAgPGlucHV0IGNsYXNzPVwiZm9ybS1zZWxlY3QgdGV4dC1zdGFydCByb3VuZGVkLWVuZFwiIHR5cGU9XCJ0ZXh0XCIgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIFtwbGFjZWhvbGRlcl09XCJtYWluSW5wdXRQbGFjZWhvbGRlclwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUZXh0XCIgZGF0YS1icy1hdXRvLWNsb3NlPVwib3V0c2lkZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIHJlYWRvbmx5PlxyXG4gICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51IHAtMiB3LTEwMCBnbGItbWF4LWhlaWdodC0zNTBweCBvdmVyZmxvdy15LXNjcm9sbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgbWItMlwiPlxyXG4gICAgICAgICA8aW5wdXQgI3NlYXJjaElucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJzZWFyY2hJbnB1dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGdsYi1pbnB1dC1uby1nbG93XCIgW3BsYWNlaG9sZGVyXT1cInNlYXJjaElucHV0UGxhY2Vob2xkZXJcIiAoa2V5dXAuZW50ZXIpPVwicmVsb2FkTGlzdChzZWFyY2hJbnB1dC52YWx1ZSlcIj5cclxuICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4te3tjb2xvclRoZW1lfX1cIiAoY2xpY2spPVwicmVsb2FkTGlzdChzZWFyY2hJbnB1dC52YWx1ZSlcIj4gPGFwcC1zdmctc3RvcmFnZSBzdmdOYW1lPVwibHVwYVwiIHN2Z1NpemU9XCJtZWRpdW0tc21hbGxcIiAvPiBQZXNxdWlzYXIgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94TGlzdDsgZWxzZSBsb2FkaW5nTGlzdFwiPlxyXG4gICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3hMaXN0Lmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlJdGVtTGlzdFwiPlxyXG4gICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gJiYgc2VsZWN0ZWRJdGVtLklEXCIgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInNldEZpbHRlclZhbHVlKCcnLCAnJylcIj4gPHNwYW4gY2xhc3M9XCJmdy1ib2xkXCI+TGltcGFyIG9ww6fDo28gc2VsZWNpb25hZGE8L3NwYW4+IDwvbGk+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb21ib2JveExpc3RcIiAoY2xpY2spPVwic2V0RmlsdGVyVmFsdWUoaXRlbS5JRCwgaXRlbS5MQUJFTCk7IHNlbGVjdGVkSXRlbSA9IGl0ZW1cIj5cclxuICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLkFkZGl0aW9uYWxTdHJpbmdQcm9wZXJ0eTEgfHwgaXRlbS5BZGRpdGlvbmFsU3RyaW5nUHJvcGVydHkxICE9ICcnXCIgY2xhc3M9XCJnbGItZnMtMTIgZnctYm9sZCBkLWlubGluZS1ibG9jayB3LTEyNVwiPnt7IGl0ZW0uQWRkaXRpb25hbFN0cmluZ1Byb3BlcnR5MSB9fTwvc3Bhbj4ge3sgaXRlbS5MQUJFTCB9fVxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmdMaXN0PiA8bGkgY2xhc3M9XCJkcm9wZG93bi1pdGVtIHRleHQtY2VudGVyXCI+IDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlclwiIHJvbGU9XCJzdGF0dXNcIj48c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPkNhcnJlZ2FuZG8gZGFkb3MuLi48L3NwYW4+PC9kaXY+IDwvbGk+IDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlJdGVtTGlzdD4gPGxpIGNsYXNzPVwiZHJvcGRvd24taXRlbSBmc3QtaXRhbGljXCI+TmVuaHVtIHJlZ2lzdHJvIGVuY29udHJhZG8gY29tIGVzdGEgcGVzcXVpc2EuLi48L2xpPiA8L25nLXRlbXBsYXRlPlxyXG4gICA8L3VsPlxyXG5cclxuICAgPCEtLSBFc3RlIGVsZW1lbnRvIG5nLWNvbnRlbnQgY29tIG8gYXRyaWJ1dG8gW2J0blJpZ2h0XSBwZXJtaXRlIHF1ZSBvIHVzdcOhcmlvIGZpbmFsIGZvcm5lw6dhIGNvbnRlw7pkbyBwZXJzb25hbGl6YWRvIHBhcmEgc2VyIGV4aWJpZG8gbm8gbGFkbyBkaXJlaXRvIGRvIGNvbWJvYm94IGRlIHBlc3F1aXNhLlxyXG4gICBBbyB1c2FyIG8gYXRyaWJ1dG8gW2J0blJpZ2h0XSwgbyB1c3XDoXJpbyBwb2RlIGZhY2lsbWVudGUgYWRpY2lvbmFyIGJvdMO1ZXMgb3Ugb3V0cm9zIGVsZW1lbnRvcyBwYXJhIG1lbGhvcmFyIGEgZnVuY2lvbmFsaWRhZGUgb3UgYXBhcsOqbmNpYSBkbyBjb21ib2JveCBkZSBwZXNxdWlzYS4gLS0+XHJcbiAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltidG5SaWdodF1cIj48L25nLWNvbnRlbnQ+XHJcblxyXG48L2Rpdj5cclxuIl19
|
|
@@ -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$
|
|
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
|
|
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:
|
|
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,
|
|
@@ -1531,6 +1531,9 @@ class SearchComboboxComponent {
|
|
|
1531
1531
|
}
|
|
1532
1532
|
ngOnInit() {
|
|
1533
1533
|
this.createFilterForm();
|
|
1534
|
+
if (this.initializedValueID) {
|
|
1535
|
+
this.initializeSelectedValue();
|
|
1536
|
+
}
|
|
1534
1537
|
}
|
|
1535
1538
|
ngOnChanges(changes) {
|
|
1536
1539
|
if (changes["currentSelectedOption"] != undefined && changes["currentSelectedOption"].currentValue != undefined) {
|
|
@@ -1540,7 +1543,10 @@ class SearchComboboxComponent {
|
|
|
1540
1543
|
get selectedItem() { return this._selectedItem; }
|
|
1541
1544
|
set selectedItem(value) {
|
|
1542
1545
|
this._selectedItem = value;
|
|
1543
|
-
|
|
1546
|
+
console.log("public set selectedItem");
|
|
1547
|
+
if (!this.initializedValueID) {
|
|
1548
|
+
this.onSelectItem.emit(value);
|
|
1549
|
+
}
|
|
1544
1550
|
}
|
|
1545
1551
|
get FormUtils() { return FormUtils; }
|
|
1546
1552
|
// #region FORM DATA
|
|
@@ -1561,26 +1567,28 @@ class SearchComboboxComponent {
|
|
|
1561
1567
|
this.selectedItem = { ID: id, LABEL: label, AdditionalStringProperty1: "", IS_SELECTED: true };
|
|
1562
1568
|
}
|
|
1563
1569
|
initializeSelectedValue() {
|
|
1564
|
-
|
|
1565
|
-
|
|
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 };
|
|
1566
1574
|
}
|
|
1567
1575
|
}
|
|
1568
1576
|
reloadList(search) {
|
|
1569
1577
|
this.onReloadList.emit(search);
|
|
1570
1578
|
}
|
|
1571
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 }); }
|
|
1572
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SearchComboboxComponent, selector: "lib-search-combobox", inputs: { comboboxList: "comboboxList", labelText: "labelText",
|
|
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"] }] }); }
|
|
1573
1581
|
}
|
|
1574
1582
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SearchComboboxComponent, decorators: [{
|
|
1575
1583
|
type: Component,
|
|
1576
|
-
args: [{ selector: 'lib-search-combobox', template: "<label class=\"form-label\" [innerHTML]=\"labelText\"></label>\r\n<div class=\"input-group dropdown flex-fill glb-max-height-350px\">\r\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"] }]
|
|
1577
1585
|
}], ctorParameters: () => [{ type: i2.FormBuilder }], propDecorators: { comboboxList: [{
|
|
1578
1586
|
type: Input,
|
|
1579
1587
|
args: [{ required: true }]
|
|
1580
1588
|
}], labelText: [{
|
|
1581
1589
|
type: Input,
|
|
1582
1590
|
args: [{ required: true }]
|
|
1583
|
-
}],
|
|
1591
|
+
}], initializedValueID: [{
|
|
1584
1592
|
type: Input
|
|
1585
1593
|
}], colorTheme: [{
|
|
1586
1594
|
type: Input
|
|
@@ -1621,7 +1629,7 @@ class InfraModule {
|
|
|
1621
1629
|
SearchTreePipe,
|
|
1622
1630
|
ClickOutsideDirective,
|
|
1623
1631
|
OrderingComponent,
|
|
1624
|
-
SearchComboboxComponent], imports: [CommonModule, i1.ModalModule, i2$
|
|
1632
|
+
SearchComboboxComponent], imports: [CommonModule, i1.ModalModule, i2$2.AccordionModule, i2$1.TooltipModule, FormsModule,
|
|
1625
1633
|
ReactiveFormsModule,
|
|
1626
1634
|
RouterModule], exports: [LoadingComponent,
|
|
1627
1635
|
FieldControlErrorComponent,
|