ngx-vector-components 5.87.0 → 5.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/esm2022/lib/components/fields/filters/filters.component.mjs +1 -1
- package/esm2022/lib/components/fields/multiselect-field/multiselect-field.component.mjs +40 -2
- package/esm2022/lib/components/fields/radio-button-field/radio-button-field.component.mjs +3 -3
- package/fesm2022/ngx-vector-components.mjs +42 -4
- package/fesm2022/ngx-vector-components.mjs.map +1 -1
- package/lib/components/fields/multiselect-field/multiselect-field.component.d.ts +5 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.89.0] (25/02/2025)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- Added directive features: service with BaseDropdown, limitScrollPage and forceSelection in `multiselect-field.component.ts`
|
|
8
|
+
|
|
9
|
+
## [5.88.0] (24/01/2025)
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
- Add validation to tooltip in `radio-button-field.component.html`
|
|
14
|
+
|
|
3
15
|
## [5.87.0] (24/01/2025)
|
|
4
16
|
|
|
5
17
|
### Features
|
|
@@ -194,7 +194,7 @@ export class FiltersComponent {
|
|
|
194
194
|
return validators;
|
|
195
195
|
}
|
|
196
196
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FiltersComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
197
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FiltersComponent, selector: "vector-filters", inputs: { fields: "fields" }, outputs: { onSearch: "onSearch", formBuilded: "formBuilded" }, ngImport: i0, template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label\r\n >{{ field.label }}\r\n <i\r\n *ngIf=\"field.tooltip\"\r\n class=\"fas fa-info-circle mt-1 pl-2 ch\"\r\n pTooltip=\"{{ field.tooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i\r\n ></label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"[fieldTypes.DYNAMIC_DROPDOWN, fieldTypes.DROPDOWN].includes(field.type)\"\r\n [dynamicFilters]=\"field.filterTypes\"\r\n [disabled]=\"field.disabled\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [minLengthToService]=\"field.minLengthToService || 0\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n [initialLoad]=\"field.initiateValue\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n [disabled]=\"field.disabled\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [min]=\"field.dateMin\"\r\n [max]=\"field.dateMax\"\r\n ></vector-calendar-field>\r\n <vector-select-button-field\r\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options\"\r\n (click)=\"search()\"\r\n [disabled]=\"field.disabled\"\r\n >\r\n </vector-select-button-field>\r\n <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\r\n <vector-calendar-field\r\n [control]=\"formGroup.get(field.name + '.startDate')\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [min]=\"field.dateMin\"\r\n ></vector-calendar-field>\r\n At\u00E9\r\n <vector-calendar-field\r\n [control]=\"formGroup.get(field.name + '.endDate')\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [max]=\"field.dateMax\"\r\n ></vector-calendar-field>\r\n </div>\r\n <vector-multiselect-field\r\n *ngIf=\"field.type === fieldTypes.MULTISELECT\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options || []\"\r\n [disabled]=\"field.disabled\"\r\n >\r\n </vector-multiselect-field>\r\n </div>\r\n <div class=\"search-button sm:col-4\">\r\n <vector-button\r\n [label]=\"'app.label.search' | translate\"\r\n (click)=\"search()\"\r\n [disabled]=\"!formGroup.valid\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}.filter-container .search-button{flex:1;padding-right:7px;display:flex;justify-content:flex-end}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}.filter-container .range-date-container{display:flex;align-items:center;gap:10px}.display-none{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.TextFieldComponent, selector: "vector-text-field", inputs: ["isRequired", "label", "maxlength", "isPassword", "numeric", "numericPositive", "numericDotComma", "decimal", "onlyText", "noSpecialCharacters", "alphaNumeric", "alphaNumericAndWhitespace", "mask", "autoClear", "readonly", "rightIcon", "centered", "enableDocumentTypeChoice", "hiddenErrorMessage", "leftLabel", "control", "inputId", "slotChar", "disabled", "pattern"], outputs: ["blurEvent", "inputEvent", "enterKeyPress", "backSpaceKeyPress", "focusEvent", "onDocumentTypeChange"] }, { kind: "component", type: i6.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "round", "style", "loading"], outputs: ["onClick"] }, { kind: "component", type: i7.CalendarComponent, selector: "vector-calendar-field", inputs: ["isRequired", "control", "label", "showCalendarOnFocus", "min", "max", "disabledDates", "disabled", "defaultDate", "hiddenErrorMessage", "showTime", "showSeconds", "stepMinute", "stepHour", "stepSecond", "timeOnly", "hourFormat"], outputs: ["onFocus", "onBlur", "onInput", "onSelect"] }, { kind: "component", type: i8.MultiselectFieldComponent, selector: "vector-multiselect-field", inputs: ["pagedSugestion", "isRequired", "control", "label", "options", "filter", "showSelectAllOption", "display", "paged", "disabled", "minLengthToService", "initialLoad", "service", "filterVirtualScrool", "showHeader", "showFlags", "showFlagsOptions"], outputs: ["onChange", "onClosePanel"] }, { kind: "component", type: i9.DropdownFieldComponent, selector: "vector-dropdown-field", inputs: ["options", "isNgContent", "forceSelection", "isRequired", "control", "label", "service", "paged", "buttonAction", "dependencies", "hiddenErrorMessage", "dynamicFilters", "minLengthToService", "initialLoad", "disabled", "limitScrollPage", "inputId"], outputs: ["onFocus", "onChange"] }, { kind: "component", type: i10.CurrencyFieldComponent, selector: "vector-currency-field", inputs: ["minValue", "maxValue", "placeholder", "numberOfDecimals", "control", "outlined", "rounded", "label", "isBankingField", "inputClassName", "localePrefix", "currencyPrefix", "disabled", "centered", "inputId"], outputs: ["onBlur"] }, { kind: "component", type: i11.SelectButtonFieldComponent, selector: "vector-select-button-field", inputs: ["options", "control", "disabled"] }, { kind: "pipe", type: i12.NotHiddenPipe, name: "notHidden" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
|
|
197
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FiltersComponent, selector: "vector-filters", inputs: { fields: "fields" }, outputs: { onSearch: "onSearch", formBuilded: "formBuilded" }, ngImport: i0, template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label\r\n >{{ field.label }}\r\n <i\r\n *ngIf=\"field.tooltip\"\r\n class=\"fas fa-info-circle mt-1 pl-2 ch\"\r\n pTooltip=\"{{ field.tooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i\r\n ></label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"[fieldTypes.DYNAMIC_DROPDOWN, fieldTypes.DROPDOWN].includes(field.type)\"\r\n [dynamicFilters]=\"field.filterTypes\"\r\n [disabled]=\"field.disabled\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [minLengthToService]=\"field.minLengthToService || 0\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n [initialLoad]=\"field.initiateValue\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n [disabled]=\"field.disabled\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [min]=\"field.dateMin\"\r\n [max]=\"field.dateMax\"\r\n ></vector-calendar-field>\r\n <vector-select-button-field\r\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options\"\r\n (click)=\"search()\"\r\n [disabled]=\"field.disabled\"\r\n >\r\n </vector-select-button-field>\r\n <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\r\n <vector-calendar-field\r\n [control]=\"formGroup.get(field.name + '.startDate')\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [min]=\"field.dateMin\"\r\n ></vector-calendar-field>\r\n At\u00E9\r\n <vector-calendar-field\r\n [control]=\"formGroup.get(field.name + '.endDate')\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [max]=\"field.dateMax\"\r\n ></vector-calendar-field>\r\n </div>\r\n <vector-multiselect-field\r\n *ngIf=\"field.type === fieldTypes.MULTISELECT\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options || []\"\r\n [disabled]=\"field.disabled\"\r\n >\r\n </vector-multiselect-field>\r\n </div>\r\n <div class=\"search-button sm:col-4\">\r\n <vector-button\r\n [label]=\"'app.label.search' | translate\"\r\n (click)=\"search()\"\r\n [disabled]=\"!formGroup.valid\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}.filter-container .search-button{flex:1;padding-right:7px;display:flex;justify-content:flex-end}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}.filter-container .range-date-container{display:flex;align-items:center;gap:10px}.display-none{display:none!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.TextFieldComponent, selector: "vector-text-field", inputs: ["isRequired", "label", "maxlength", "isPassword", "numeric", "numericPositive", "numericDotComma", "decimal", "onlyText", "noSpecialCharacters", "alphaNumeric", "alphaNumericAndWhitespace", "mask", "autoClear", "readonly", "rightIcon", "centered", "enableDocumentTypeChoice", "hiddenErrorMessage", "leftLabel", "control", "inputId", "slotChar", "disabled", "pattern"], outputs: ["blurEvent", "inputEvent", "enterKeyPress", "backSpaceKeyPress", "focusEvent", "onDocumentTypeChange"] }, { kind: "component", type: i6.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "round", "style", "loading"], outputs: ["onClick"] }, { kind: "component", type: i7.CalendarComponent, selector: "vector-calendar-field", inputs: ["isRequired", "control", "label", "showCalendarOnFocus", "min", "max", "disabledDates", "disabled", "defaultDate", "hiddenErrorMessage", "showTime", "showSeconds", "stepMinute", "stepHour", "stepSecond", "timeOnly", "hourFormat"], outputs: ["onFocus", "onBlur", "onInput", "onSelect"] }, { kind: "component", type: i8.MultiselectFieldComponent, selector: "vector-multiselect-field", inputs: ["pagedSugestion", "isRequired", "control", "label", "options", "filter", "showSelectAllOption", "display", "paged", "disabled", "minLengthToService", "initialLoad", "service", "filterVirtualScrool", "showHeader", "showFlags", "dependencies", "limitScrollPage", "forceSelection", "showFlagsOptions"], outputs: ["onChange", "onClosePanel"] }, { kind: "component", type: i9.DropdownFieldComponent, selector: "vector-dropdown-field", inputs: ["options", "isNgContent", "forceSelection", "isRequired", "control", "label", "service", "paged", "buttonAction", "dependencies", "hiddenErrorMessage", "dynamicFilters", "minLengthToService", "initialLoad", "disabled", "limitScrollPage", "inputId"], outputs: ["onFocus", "onChange"] }, { kind: "component", type: i10.CurrencyFieldComponent, selector: "vector-currency-field", inputs: ["minValue", "maxValue", "placeholder", "numberOfDecimals", "control", "outlined", "rounded", "label", "isBankingField", "inputClassName", "localePrefix", "currencyPrefix", "disabled", "centered", "inputId"], outputs: ["onBlur"] }, { kind: "component", type: i11.SelectButtonFieldComponent, selector: "vector-select-button-field", inputs: ["options", "control", "disabled"] }, { kind: "pipe", type: i12.NotHiddenPipe, name: "notHidden" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }] }); }
|
|
198
198
|
}
|
|
199
199
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FiltersComponent, decorators: [{
|
|
200
200
|
type: Component,
|
|
@@ -64,6 +64,8 @@ export class MultiselectFieldComponent {
|
|
|
64
64
|
this.filterVirtualScrool = false;
|
|
65
65
|
this.showHeader = true;
|
|
66
66
|
this.showFlags = false;
|
|
67
|
+
this.limitScrollPage = 20;
|
|
68
|
+
this.forceSelection = true;
|
|
67
69
|
this.onChange = new EventEmitter();
|
|
68
70
|
this.onClosePanel = new EventEmitter();
|
|
69
71
|
this.currentSearchQuery = '';
|
|
@@ -105,6 +107,28 @@ export class MultiselectFieldComponent {
|
|
|
105
107
|
}
|
|
106
108
|
}
|
|
107
109
|
customFormattingMultiSelectFieldWithFlags() {
|
|
110
|
+
if (this.service) {
|
|
111
|
+
this.search();
|
|
112
|
+
this.currentScrollPage++;
|
|
113
|
+
this.service
|
|
114
|
+
.getPaged(encodeURIComponent(this.currentSearchQuery), this.currentScrollPage, this.limitScrollPage, this.dependencies)
|
|
115
|
+
.subscribe({
|
|
116
|
+
next: (response) => {
|
|
117
|
+
this.options =
|
|
118
|
+
this.currentScrollPage === 0
|
|
119
|
+
? response
|
|
120
|
+
: this.options?.concat(response);
|
|
121
|
+
const controlValue = typeof this.control.value == 'object' ? this.control.value?.code : this.control.value;
|
|
122
|
+
if (this.control.value && this.options?.find((item) => item.code == controlValue)) {
|
|
123
|
+
this.setControlValueFromSuggestions();
|
|
124
|
+
}
|
|
125
|
+
if (this.forceSelection) {
|
|
126
|
+
this.handleSearchErrors();
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
error: (err) => { },
|
|
130
|
+
});
|
|
131
|
+
}
|
|
108
132
|
setTimeout(() => {
|
|
109
133
|
const vectorMultiselectField = document.querySelector('vector-multiselect-field.multiselect-flags');
|
|
110
134
|
if (vectorMultiselectField) {
|
|
@@ -173,8 +197,16 @@ export class MultiselectFieldComponent {
|
|
|
173
197
|
});
|
|
174
198
|
}
|
|
175
199
|
}
|
|
200
|
+
handleSearchErrors() {
|
|
201
|
+
if (this.options?.length) {
|
|
202
|
+
delete this.control.errors?.itemNotFound;
|
|
203
|
+
}
|
|
204
|
+
else if (this.currentSearchQuery) {
|
|
205
|
+
this.control.setErrors({ itemNotFound: true });
|
|
206
|
+
}
|
|
207
|
+
}
|
|
176
208
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiselectFieldComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
177
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MultiselectFieldComponent, selector: "vector-multiselect-field", inputs: { pagedSugestion: "pagedSugestion", isRequired: "isRequired", control: "control", label: "label", options: "options", filter: "filter", showSelectAllOption: "showSelectAllOption", display: "display", paged: "paged", disabled: "disabled", minLengthToService: "minLengthToService", initialLoad: "initialLoad", service: "service", filterVirtualScrool: "filterVirtualScrool", showHeader: "showHeader", showFlags: "showFlags", showFlagsOptions: "showFlagsOptions" }, outputs: { onChange: "onChange", onClosePanel: "onClosePanel" }, ngImport: i0, template: "<div class=\"multiselect-field-input-container\">\r\n <p-multiSelect\r\n *ngIf=\"!filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onPanelHide)=\"onClosePanel.emit($event)\"\r\n (onPanelShow)=\"customFormattingMultiSelectFieldWithFlags()\"\r\n [disabled]=\"disabled\"\r\n [showHeader]=\"showHeader\"\r\n >\r\n <ng-container *ngIf=\"showFlags\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"grid-nogutter w-full flex\">\r\n <div\r\n class=\"md:col-6 sm:col-12 align-content-center\"\r\n [ngClass]=\"option.align === 'center' ? 'md:text-center' : 'md:text-left'\"\r\n >\r\n <img\r\n *ngIf=\"option.type == 'img'\"\r\n [src]=\"option.imgSource\"\r\n [ngClass]=\"option.imgClass\"\r\n [style]=\"{ height: option.imgSize + 'px' }\"\r\n />\r\n <i\r\n *ngIf=\"option.type == 'icon'\"\r\n [className]=\"option.iconSource\"\r\n [ngClass]=\"option.iconClass\"\r\n [style]=\"{ 'font-size': option.iconSize }\"\r\n ></i>\r\n </div>\r\n\r\n <div *ngIf=\"option.showDescriptionOnRight\" class=\"col-6 hidden md:block align-content-center\">\r\n <span class=\"block\">{{ option.name }}</span>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </p-multiSelect>\r\n\r\n <p-multiSelect\r\n *ngIf=\"filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onFilter)=\"search($event)\"\r\n (onPanelShow)=\"onOpenAutocompletePanel()\"\r\n (onPanelHide)=\"onHideAutocompletePanel()\"\r\n [disabled]=\"disabled\"\r\n >\r\n </p-multiSelect>\r\n <p-multiSelect\r\n *ngIf=\"filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onFilter)=\"search($event)\"\r\n (onPanelShow)=\"onOpenAutocompletePanel()\"\r\n (onPanelHide)=\"onHideAutocompletePanel()\"\r\n [disabled]=\"disabled\"\r\n >\r\n </p-multiSelect>\r\n <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n</div>\r\n", styles: [".multiselect-field-input-container{height:62px}.multiselect-field-input-container .input-error{font-size:.7em;color:var(--error-color)}.multiselect-field-input-container div.p-multiselect-token{padding:auto 1em!important;background:#eff0f6!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }] }); }
|
|
209
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MultiselectFieldComponent, selector: "vector-multiselect-field", inputs: { pagedSugestion: "pagedSugestion", isRequired: "isRequired", control: "control", label: "label", options: "options", filter: "filter", showSelectAllOption: "showSelectAllOption", display: "display", paged: "paged", disabled: "disabled", minLengthToService: "minLengthToService", initialLoad: "initialLoad", service: "service", filterVirtualScrool: "filterVirtualScrool", showHeader: "showHeader", showFlags: "showFlags", dependencies: "dependencies", limitScrollPage: "limitScrollPage", forceSelection: "forceSelection", showFlagsOptions: "showFlagsOptions" }, outputs: { onChange: "onChange", onClosePanel: "onClosePanel" }, ngImport: i0, template: "<div class=\"multiselect-field-input-container\">\r\n <p-multiSelect\r\n *ngIf=\"!filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onPanelHide)=\"onClosePanel.emit($event)\"\r\n (onPanelShow)=\"customFormattingMultiSelectFieldWithFlags()\"\r\n [disabled]=\"disabled\"\r\n [showHeader]=\"showHeader\"\r\n >\r\n <ng-container *ngIf=\"showFlags\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"grid-nogutter w-full flex\">\r\n <div\r\n class=\"md:col-6 sm:col-12 align-content-center\"\r\n [ngClass]=\"option.align === 'center' ? 'md:text-center' : 'md:text-left'\"\r\n >\r\n <img\r\n *ngIf=\"option.type == 'img'\"\r\n [src]=\"option.imgSource\"\r\n [ngClass]=\"option.imgClass\"\r\n [style]=\"{ height: option.imgSize + 'px' }\"\r\n />\r\n <i\r\n *ngIf=\"option.type == 'icon'\"\r\n [className]=\"option.iconSource\"\r\n [ngClass]=\"option.iconClass\"\r\n [style]=\"{ 'font-size': option.iconSize }\"\r\n ></i>\r\n </div>\r\n\r\n <div *ngIf=\"option.showDescriptionOnRight\" class=\"col-6 hidden md:block align-content-center\">\r\n <span class=\"block\">{{ option.name }}</span>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </p-multiSelect>\r\n\r\n <p-multiSelect\r\n *ngIf=\"filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onFilter)=\"search($event)\"\r\n (onPanelShow)=\"onOpenAutocompletePanel()\"\r\n (onPanelHide)=\"onHideAutocompletePanel()\"\r\n [disabled]=\"disabled\"\r\n >\r\n </p-multiSelect>\r\n <p-multiSelect\r\n *ngIf=\"filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onFilter)=\"search($event)\"\r\n (onPanelShow)=\"onOpenAutocompletePanel()\"\r\n (onPanelHide)=\"onHideAutocompletePanel()\"\r\n [disabled]=\"disabled\"\r\n >\r\n </p-multiSelect>\r\n <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n</div>\r\n", styles: [".multiselect-field-input-container{height:62px}.multiselect-field-input-container .input-error{font-size:.7em;color:var(--error-color)}.multiselect-field-input-container div.p-multiselect-token{padding:auto 1em!important;background:#eff0f6!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }] }); }
|
|
178
210
|
}
|
|
179
211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiselectFieldComponent, decorators: [{
|
|
180
212
|
type: Component,
|
|
@@ -211,6 +243,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
211
243
|
type: Input
|
|
212
244
|
}], showFlags: [{
|
|
213
245
|
type: Input
|
|
246
|
+
}], dependencies: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], limitScrollPage: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], forceSelection: [{
|
|
251
|
+
type: Input
|
|
214
252
|
}], showFlagsOptions: [{
|
|
215
253
|
type: Input
|
|
216
254
|
}], onChange: [{
|
|
@@ -218,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
218
256
|
}], onClosePanel: [{
|
|
219
257
|
type: Output
|
|
220
258
|
}] } });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvbXVsdGlzZWxlY3QtZmllbGQvbXVsdGlzZWxlY3QtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvbXVsdGlzZWxlY3QtZmllbGQvbXVsdGlzZWxlY3QtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUdsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQW1CNUMsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxJQUNJLGNBQWMsQ0FBQyxlQUEyQjtRQUM1QyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFpQ0QsSUFDSSxnQkFBZ0IsQ0FBQyxLQUFnQztRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7U0FDeEY7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7b0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMs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QUFFLEVBQUU7Z0JBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOytHQXJOVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qix1bEJDdEJ0Qyx5d0hBeUdBOzs0RkRuRmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLDBCQUEwQjs4RUFNaEMsY0FBYztzQkFEakIsS0FBSztnQkFNQyxVQUFVO3NCQURoQixLQUFLO2dCQUdDLE9BQU87c0JBRGIsS0FBSztnQkFHQyxLQUFLO3NCQURYLEtBQUs7Z0JBR0MsT0FBTztzQkFEYixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFHQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBR0MsT0FBTztzQkFEYixLQUFLO2dCQUdDLEtBQUs7c0JBRFgsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0Msa0JBQWtCO3NCQUR4QixLQUFLO2dCQUdDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBR0MsT0FBTztzQkFEYixLQUFLO2dCQUdDLG1CQUFtQjtzQkFEekIsS0FBSztnQkFHQyxVQUFVO3NCQURoQixLQUFLO2dCQUdDLFNBQVM7c0JBRGYsS0FBSztnQkFLRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBaUNDLFFBQVE7c0JBRGQsTUFBTTtnQkFHQSxZQUFZO3NCQURsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEJhc2VEcm9wZG93biB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcclxuXHJcbmV4cG9ydCB0eXBlIExpc3RJdGVtT3B0aW9uc0ZsYWdUeXBlID0gTGlzdEl0ZW0gJiB7XHJcbiAgYWxpZ246ICdjZW50ZXInIHwgJ2xlZnQnO1xyXG4gIHNob3dEZXNjcmlwdGlvbk9uUmlnaHQ6IGJvb2xlYW47XHJcbiAgdHlwZTogJ2ltZycgfCAnaWNvbic7XHJcbiAgaWNvblNvdXJjZT86IHN0cmluZztcclxuICBpY29uU2l6ZT86ICcxZW0nIHwgJzEuMjVlbScgfCAnMS41ZW0nIHwgJzEuNzVlbScgfCAnMmVtJztcclxuICBpY29uQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaW1nU291cmNlPzogc3RyaW5nO1xyXG4gIGltZ1NpemU/OiAnMTUnIHwgJzIwJyB8ICcyNSc7XHJcbiAgaW1nQ2xhc3M/OiBzdHJpbmc7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ZlY3Rvci1tdWx0aXNlbGVjdC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpc2VsZWN0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aXNlbGVjdC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlzZWxlY3RGaWVsZENvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBzZXQgcGFnZWRTdWdlc3Rpb24oX3BhZ2VkU3VnZXN0aW9uOiBMaXN0SXRlbVtdKSB7XHJcbiAgICB0aGlzLl9wYWdlZFN1Z2VzdGlvbiA9IF9wYWdlZFN1Z2VzdGlvbjtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMucGFnZWRTdWdlc3Rpb24gfHwgW107XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb250cm9sOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG9wdGlvbnM6IExpc3RJdGVtW10gfCBMaXN0SXRlbU9wdGlvbnNGbGFnVHlwZVtdID0gW107XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmlsdGVyID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1NlbGVjdEFsbE9wdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGlzcGxheTogc3RyaW5nID0gJ2NvbW1hJztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYWdlZCA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtaW5MZW5ndGhUb1NlcnZpY2U6IG51bWJlciA9IDA7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaW5pdGlhbExvYWQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlcnZpY2U6IEJhc2VEcm9wZG93biB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmaWx0ZXJWaXJ0dWFsU2Nyb29sID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0ZsYWdzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc2hvd0ZsYWdzT3B0aW9ucz86IExpc3RJdGVtT3B0aW9uc0ZsYWdUeXBlW10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNob3dGbGFnc09wdGlvbnModmFsdWU6IExpc3RJdGVtT3B0aW9uc0ZsYWdUeXBlW10pIHtcclxuICAgIGlmICghdGhpcy5zaG93RmxhZ3MpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzaG93RmxhZ3MgaXMgc2V0IHRvIGZhbHNlLiBTZXR0aW5nIHNob3dGbGFnc09wdGlvbnMgaXMgbm90IGFsbG93ZWQuJyk7XHJcbiAgICB9XHJcbiAgICB2YWx1ZS5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgaWYgKG9wdGlvbi50eXBlID09PSAnaW1nJykge1xyXG4gICAgICAgIGlmICghb3B0aW9uLmltZ1NvdXJjZSkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW1nU291cmNlIGlzIHJlcXVpcmVkIHdoZW4gdHlwZSBpcyAnaW1nJ1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFvcHRpb24uaW1nU2l6ZSkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW1nU2l6ZSBpcyByZXF1aXJlZCB3aGVuIHR5cGUgaXMgJ2ltZydcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKG9wdGlvbi50eXBlID09PSAnaWNvbicpIHtcclxuICAgICAgICBpZiAoIW9wdGlvbi5pY29uU291cmNlKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpY29uU291cmNlIGlzIHJlcXVpcmVkIHdoZW4gdHlwZSBpcyAnaWNvbidcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghb3B0aW9uLmljb25TaXplKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpY29uU2l6ZSBpcyByZXF1aXJlZCB3aGVuIHR5cGUgaXMgJ2ljb24nXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zaG93RmxhZ3NPcHRpb25zID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd0ZsYWdzT3B0aW9ucygpOiBMaXN0SXRlbU9wdGlvbnNGbGFnVHlwZVtdIHtcclxuICAgIGlmICghdGhpcy5fc2hvd0ZsYWdzT3B0aW9ucykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Nob3dGbGFnc09wdGlvbnMgd2FzIG5vdCBzZXQnKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9zaG93RmxhZ3NPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkNsb3NlUGFuZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHByaXZhdGUgY3VycmVudFNlYXJjaFF1ZXJ5ID0gJyc7XHJcbiAgcHJpdmF0ZSBjdXJyZW50U2Nyb2xsUGFnZSA9IC0xO1xyXG4gIHByaXZhdGUgY3VycmVudFNjcm9sbEluZGV4ID0gMDtcclxuXHJcbiAgcHVibGljIHVubGlzdGVuQXV0b2NvbXBsZXRlVmlydHVhbFNjcm9sbCA9ICgpID0+IHt9O1xyXG5cclxuICBnZXQgcGxhY2Vob2xkZXIoKSB7XHJcbiAgICBpZiAoIXRoaXMubGFiZWwpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoaXMubGFiZWx9JHt0aGlzLmlzUmVxdWlyZWQgPyAnKicgOiAnJ31gO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBhZ2VkU3VnZXN0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VkU3VnZXN0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcGFnZWRTdWdlc3Rpb246IExpc3RJdGVtW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmluaXRpYWxMb2FkICYmIHRoaXMuZmlsdGVyVmlydHVhbFNjcm9vbCkge1xyXG4gICAgICB0aGlzLnNlYXJjaChudWxsLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb250cm9sICYmIHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5jb250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWVsZEVycm9yTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wgJiYgdGhpcy5jb250cm9sLmludmFsaWQgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQpIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xyXG4gICAgICAgIHJldHVybiAnQ2FtcG8gb2JyaWdhdMOzcmlvJztcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLmNvbnRyb2wuZXJyb3JzWydpbnZhbGlkJ10gPT09ICdzdHJpbmcnID8gdGhpcy5jb250cm9sLmVycm9yc1snaW52YWxpZCddIDogJ0NhbXBvIGludsOhbGlkbyc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uT3BlbkF1dG9jb21wbGV0ZVBhbmVsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2goKTtcclxuICAgIGNvbnN0IG11bHRpU2VsZWN0UGFuZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1tdWx0aXNlbGVjdC1pdGVtcy13cmFwcGVyJyk7XHJcblxyXG4gICAgaWYgKG11bHRpU2VsZWN0UGFuZWwgJiYgdGhpcy5wYWdlZCAmJiB0aGlzLmN1cnJlbnRTZWFyY2hRdWVyeS5sZW5ndGggPj0gdGhpcy5taW5MZW5ndGhUb1NlcnZpY2UpIHtcclxuICAgICAgdGhpcy51bmxpc3RlbkF1dG9jb21wbGV0ZVZpcnR1YWxTY3JvbGwgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihtdWx0aVNlbGVjdFBhbmVsLCAnc2Nyb2xsJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZXZlbnRIZWlnaHQgPSBldmVudC50YXJnZXQuc2Nyb2xsSGVpZ2h0IC0gZXZlbnQudGFyZ2V0LmNsaWVudEhlaWdodCAtIDE1MDtcclxuXHJcbiAgICAgICAgaWYgKE1hdGgucm91bmQoZXZlbnQudGFyZ2V0LnNjcm9sbFRvcCkgPj0gZXZlbnRIZWlnaHQpIHtcclxuICAgICAgICAgIHRoaXMucGFnZVJlc3VsdHMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGN1c3RvbUZvcm1hdHRpbmdNdWx0aVNlbGVjdEZpZWxkV2l0aEZsYWdzKCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZlY3Rvck11bHRpc2VsZWN0RmllbGQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2ZWN0b3ItbXVsdGlzZWxlY3QtZmllbGQubXVsdGlzZWxlY3QtZmxhZ3MnKTtcclxuXHJcbiAgICAgIGlmICh2ZWN0b3JNdWx0aXNlbGVjdEZpZWxkKSB7XHJcbiAgICAgICAgY29uc3QgcE92ZXJsYXlFbGVtZW50ID0gdmVjdG9yTXVsdGlzZWxlY3RGaWVsZC5xdWVyeVNlbGVjdG9yKCdwLW92ZXJsYXknKTtcclxuXHJcbiAgICAgICAgaWYgKHBPdmVybGF5RWxlbWVudCkge1xyXG4gICAgICAgICAgY29uc3QgY2xhc3NMaXN0ID0gQXJyYXkuZnJvbShwT3ZlcmxheUVsZW1lbnQuY2xhc3NMaXN0KTtcclxuICAgICAgICAgIGNvbnN0IHRhcmdldENsYXNzID0gY2xhc3NMaXN0LmZpbmQoKGNsYXNzTmFtZSkgPT4gY2xhc3NOYW1lLnN0YXJ0c1dpdGgoJ25nLXRucy0nKSk7XHJcblxyXG4gICAgICAgICAgaWYgKHRhcmdldENsYXNzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzUmVmZXJlbmNlQ29kZSA9IHRhcmdldENsYXNzLnJlcGxhY2UoJ25nLXRucy0nLCAnJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldERpdldpdGhSZWZDb2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgZGl2Lm5nLXRucy0ke2NsYXNzUmVmZXJlbmNlQ29kZX1gKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0YXJnZXREaXZXaXRoUmVmQ29kZSkge1xyXG4gICAgICAgICAgICAgIHRhcmdldERpdldpdGhSZWZDb2RlLmNsYXNzTGlzdC5hZGQoJ211bHRpc2VsZWN0LWZsYWdzJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25IaWRlQXV0b2NvbXBsZXRlUGFuZWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wYWdlZCkge1xyXG4gICAgICB0aGlzLnVubGlzdGVuQXV0b2NvbXBsZXRlVmlydHVhbFNjcm9sbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlYXJjaCgkZXZlbnQ/OiBhbnksIGZvcmNlU2VhcmNoID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFNlYXJjaFF1ZXJ5ID0gJGV2ZW50Py5maWx0ZXIudG9VcHBlckNhc2UoKSB8fCAnJztcclxuICAgIHRoaXMuY3VycmVudFNjcm9sbFBhZ2UgPSAtMTtcclxuICAgIHRoaXMuY3VycmVudFNjcm9sbEluZGV4ID0gMDtcclxuICAgIGlmIChmb3JjZVNlYXJjaCB8fCB0aGlzLmN1cnJlbnRTZWFyY2hRdWVyeS5sZW5ndGggPj0gdGhpcy5taW5MZW5ndGhUb1NlcnZpY2UpIHtcclxuICAgICAgdGhpcy5wYWdlUmVzdWx0cygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhZ2VSZXN1bHRzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gdGhpcy5maWx0ZXJMaXN0QnlRdWVyeSh0aGlzLnBhZ2VkU3VnZXN0aW9uLCB0aGlzLmN1cnJlbnRTZWFyY2hRdWVyeS50b1VwcGVyQ2FzZSgpKTtcclxuICAgIHRoaXMub3B0aW9ucyA9IGZpbHRlcmVkT3B0aW9ucy5zbGljZSgwLCB0aGlzLmN1cnJlbnRTY3JvbGxJbmRleCArIDIwKTtcclxuXHJcbiAgICBpZiAodGhpcy5wYWdlZFN1Z2VzdGlvbj8ubGVuZ3RoICYmIHRoaXMucGFnZWRTdWdlc3Rpb24ubGVuZ3RoID4gMjApIHtcclxuICAgICAgdGhpcy5jdXJyZW50U2Nyb2xsSW5kZXggPSB0aGlzLmN1cnJlbnRTY3JvbGxJbmRleCArIDIwO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlRnJvbVN1Z2dlc3Rpb25zKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbHRlckxpc3RCeVF1ZXJ5KGxpc3Q6IExpc3RJdGVtW10gPSBbXSwgcXVlcnk6IHN0cmluZyk6IExpc3RJdGVtW10ge1xyXG4gICAgcmV0dXJuIGxpc3QuZmlsdGVyKFxyXG4gICAgICAob3B0KSA9PiBTdHJpbmcob3B0LmNvZGUpLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpIHx8IG9wdC5uYW1lLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpXHJcbiAgICApO1xyXG4gIH1cclxuICBwcml2YXRlIHNldENvbnRyb2xWYWx1ZUZyb21TdWdnZXN0aW9ucygpIHtcclxuICAgIGNvbnN0IGNvZGUgPVxyXG4gICAgICAoT2JqZWN0VXRpbC5pc1ZhbGlkKHRoaXMuY29udHJvbC52YWx1ZT8uY29kZSkgJiYgYCR7dGhpcy5jb250cm9sLnZhbHVlPy5jb2RlfWApIHx8IGAke3RoaXMuY29udHJvbC52YWx1ZX1gO1xyXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZSAmJiB0aGlzLm9wdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICBsZXQgaXRlbXNBcnJheSA9IHRoaXMub3B0aW9ucztcclxuICAgICAgaWYgKHRoaXMub3B0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgaXRlbXNBcnJheSA9IHRoaXMub3B0aW9ucztcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBpdGVtRnJvbVN1Z2dlc3Rpb25zID0gaXRlbXNBcnJheS5maW5kKChvcHQpID0+IGAke29wdC5jb2RlfWAudG9VcHBlckNhc2UoKSA9PT0gY29kZS50b1VwcGVyQ2FzZSgpKTtcclxuICAgICAgaWYgKGl0ZW1Gcm9tU3VnZ2VzdGlvbnMpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoaXRlbUZyb21TdWdnZXN0aW9ucywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VydmljZT8uZ2V0QnlJZCgrY29kZSkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHJlc3BvbnNlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5jb250cm9sLnZhbHVlICYmICF0aGlzLm9wdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnNlcnZpY2U/LmdldEJ5SWQoK2NvZGUpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUocmVzcG9uc2UsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtdWx0aXNlbGVjdC1maWVsZC1pbnB1dC1jb250YWluZXJcIj5cclxuICA8cC1tdWx0aVNlbGVjdFxyXG4gICAgKm5nSWY9XCIhZmlsdGVyVmlydHVhbFNjcm9vbFwiXHJcbiAgICAjbXVsdGlzZWxlY3RcclxuICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICBvcHRpb25MYWJlbD1cIm5hbWVcIlxyXG4gICAgb3B0aW9uVmFsdWU9XCJjb2RlXCJcclxuICAgIGRyb3Bkb3duSWNvbj1cImZhcyBmYS1zb3J0LWRvd25cIlxyXG4gICAgc2VsZWN0ZWRJdGVtc0xhYmVsPVwiU2VsZWNpb25hciB0b2Rvc1wiXHJcbiAgICBbcGFuZWxTdHlsZUNsYXNzXT1cImZpbHRlciA/ICdoYXMtZmlsdGVyJyA6ICcnXCJcclxuICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcclxuICAgIFttYXhTZWxlY3RlZExhYmVsc109XCJvcHRpb25zLmxlbmd0aCAtIDFcIlxyXG4gICAgW3Nob3dUb2dnbGVBbGxdPVwic2hvd1NlbGVjdEFsbE9wdGlvblwiXHJcbiAgICBbZHJvcGRvd25JY29uXT1cIidwaSBwaS1jaGV2cm9uLWRvd24nXCJcclxuICAgIFtkaXNwbGF5XT1cImRpc3BsYXlcIlxyXG4gICAgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAob25QYW5lbEhpZGUpPVwib25DbG9zZVBhbmVsLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAob25QYW5lbFNob3cpPVwiY3VzdG9tRm9ybWF0dGluZ011bHRpU2VsZWN0RmllbGRXaXRoRmxhZ3MoKVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW3Nob3dIZWFkZXJdPVwic2hvd0hlYWRlclwiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dGbGFnc1wiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbGV0LW9wdGlvbiBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtbm9ndXR0ZXIgdy1mdWxsIGZsZXhcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJtZDpjb2wtNiBzbTpjb2wtMTIgYWxpZ24tY29udGVudC1jZW50ZXJcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJvcHRpb24uYWxpZ24gPT09ICdjZW50ZXInID8gJ21kOnRleHQtY2VudGVyJyA6ICdtZDp0ZXh0LWxlZnQnXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLnR5cGUgPT0gJ2ltZydcIlxyXG4gICAgICAgICAgICAgIFtzcmNdPVwib3B0aW9uLmltZ1NvdXJjZVwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwib3B0aW9uLmltZ0NsYXNzXCJcclxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyBoZWlnaHQ6IG9wdGlvbi5pbWdTaXplICsgJ3B4JyB9XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi50eXBlID09ICdpY29uJ1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCJvcHRpb24uaWNvblNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwib3B0aW9uLmljb25DbGFzc1wiXHJcbiAgICAgICAgICAgICAgW3N0eWxlXT1cInsgJ2ZvbnQtc2l6ZSc6IG9wdGlvbi5pY29uU2l6ZSB9XCJcclxuICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJvcHRpb24uc2hvd0Rlc2NyaXB0aW9uT25SaWdodFwiIGNsYXNzPVwiY29sLTYgaGlkZGVuIG1kOmJsb2NrIGFsaWduLWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmxvY2tcIj57eyBvcHRpb24ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9wLW11bHRpU2VsZWN0PlxyXG5cclxuICA8cC1tdWx0aVNlbGVjdFxyXG4gICAgKm5nSWY9XCJmaWx0ZXJWaXJ0dWFsU2Nyb29sXCJcclxuICAgICNtdWx0aXNlbGVjdFxyXG4gICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgIG9wdGlvbkxhYmVsPVwibmFtZVwiXHJcbiAgICBvcHRpb25WYWx1ZT1cImNvZGVcIlxyXG4gICAgZHJvcGRvd25JY29uPVwiZmFzIGZhLXNvcnQtZG93blwiXHJcbiAgICBzZWxlY3RlZEl0ZW1zTGFiZWw9XCJTZWxlY2lvbmFyIHRvZG9zXCJcclxuICAgIFtwYW5lbFN0eWxlQ2xhc3NdPVwiZmlsdGVyID8gJ2hhcy1maWx0ZXInIDogJydcIlxyXG4gICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXHJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxyXG4gICAgW21heFNlbGVjdGVkTGFiZWxzXT1cIm9wdGlvbnMubGVuZ3RoIC0gMVwiXHJcbiAgICBbc2hvd0hlYWRlcl09XCJ0cnVlXCJcclxuICAgIFtzaG93VG9nZ2xlQWxsXT1cInNob3dTZWxlY3RBbGxPcHRpb25cIlxyXG4gICAgW2Ryb3Bkb3duSWNvbl09XCIncGkgcGktY2hldnJvbi1kb3duJ1wiXHJcbiAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgIChvbkNoYW5nZSk9XCJvbkNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgKG9uRmlsdGVyKT1cInNlYXJjaCgkZXZlbnQpXCJcclxuICAgIChvblBhbmVsU2hvdyk9XCJvbk9wZW5BdXRvY29tcGxldGVQYW5lbCgpXCJcclxuICAgIChvblBhbmVsSGlkZSk9XCJvbkhpZGVBdXRvY29tcGxldGVQYW5lbCgpXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgPlxyXG4gIDwvcC1tdWx0aVNlbGVjdD5cclxuICA8cC1tdWx0aVNlbGVjdFxyXG4gICAgKm5nSWY9XCJmaWx0ZXJWaXJ0dWFsU2Nyb29sXCJcclxuICAgICNtdWx0aXNlbGVjdFxyXG4gICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgIG9wdGlvbkxhYmVsPVwibmFtZVwiXHJcbiAgICBvcHRpb25WYWx1ZT1cImNvZGVcIlxyXG4gICAgZHJvcGRvd25JY29uPVwiZmFzIGZhLXNvcnQtZG93blwiXHJcbiAgICBzZWxlY3RlZEl0ZW1zTGFiZWw9XCJTZWxlY2lvbmFyIHRvZG9zXCJcclxuICAgIFtwYW5lbFN0eWxlQ2xhc3NdPVwiZmlsdGVyID8gJ2hhcy1maWx0ZXInIDogJydcIlxyXG4gICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXHJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxyXG4gICAgW21heFNlbGVjdGVkTGFiZWxzXT1cIm9wdGlvbnMubGVuZ3RoIC0gMVwiXHJcbiAgICBbc2hvd0hlYWRlcl09XCJ0cnVlXCJcclxuICAgIFtzaG93VG9nZ2xlQWxsXT1cInNob3dTZWxlY3RBbGxPcHRpb25cIlxyXG4gICAgW2Ryb3Bkb3duSWNvbl09XCIncGkgcGktY2hldnJvbi1kb3duJ1wiXHJcbiAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgIChvbkNoYW5nZSk9XCJvbkNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgKG9uRmlsdGVyKT1cInNlYXJjaCgkZXZlbnQpXCJcclxuICAgIChvblBhbmVsU2hvdyk9XCJvbk9wZW5BdXRvY29tcGxldGVQYW5lbCgpXCJcclxuICAgIChvblBhbmVsSGlkZSk9XCJvbkhpZGVBdXRvY29tcGxldGVQYW5lbCgpXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgPlxyXG4gIDwvcC1tdWx0aVNlbGVjdD5cclxuICA8c3BhbiBjbGFzcz1cImlucHV0LWVycm9yXCI+e3sgZmllbGRFcnJvckxhYmVsKCkgfX08L3NwYW4+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvbXVsdGlzZWxlY3QtZmllbGQvbXVsdGlzZWxlY3QtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvbXVsdGlzZWxlY3QtZmllbGQvbXVsdGlzZWxlY3QtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUdsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQW1CNUMsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxJQUNJLGNBQWMsQ0FBQyxlQUEyQjtRQUM1QyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUF3Q0QsSUFDSSxnQkFBZ0IsQ0FBQyxLQUFnQztRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7U0FDeEY7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7b0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMs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QWU7c0JBRHJCLEtBQUs7Z0JBR0MsY0FBYztzQkFEcEIsS0FBSztnQkFJRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBaUNDLFFBQVE7c0JBRGQsTUFBTTtnQkFHQSxZQUFZO3NCQURsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEJhc2VEcm9wZG93biB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcclxuXHJcbmV4cG9ydCB0eXBlIExpc3RJdGVtT3B0aW9uc0ZsYWdUeXBlID0gTGlzdEl0ZW0gJiB7XHJcbiAgYWxpZ246ICdjZW50ZXInIHwgJ2xlZnQnO1xyXG4gIHNob3dEZXNjcmlwdGlvbk9uUmlnaHQ6IGJvb2xlYW47XHJcbiAgdHlwZTogJ2ltZycgfCAnaWNvbic7XHJcbiAgaWNvblNvdXJjZT86IHN0cmluZztcclxuICBpY29uU2l6ZT86ICcxZW0nIHwgJzEuMjVlbScgfCAnMS41ZW0nIHwgJzEuNzVlbScgfCAnMmVtJztcclxuICBpY29uQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaW1nU291cmNlPzogc3RyaW5nO1xyXG4gIGltZ1NpemU/OiAnMTUnIHwgJzIwJyB8ICcyNSc7XHJcbiAgaW1nQ2xhc3M/OiBzdHJpbmc7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ZlY3Rvci1tdWx0aXNlbGVjdC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpc2VsZWN0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aXNlbGVjdC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlzZWxlY3RGaWVsZENvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBzZXQgcGFnZWRTdWdlc3Rpb24oX3BhZ2VkU3VnZXN0aW9uOiBMaXN0SXRlbVtdKSB7XHJcbiAgICB0aGlzLl9wYWdlZFN1Z2VzdGlvbiA9IF9wYWdlZFN1Z2VzdGlvbjtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMucGFnZWRTdWdlc3Rpb24gfHwgW107XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb250cm9sOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG9wdGlvbnM6IExpc3RJdGVtW10gfCBMaXN0SXRlbU9wdGlvbnNGbGFnVHlwZVtdID0gW107XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmlsdGVyID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1NlbGVjdEFsbE9wdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGlzcGxheTogc3RyaW5nID0gJ2NvbW1hJztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYWdlZCA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtaW5MZW5ndGhUb1NlcnZpY2U6IG51bWJlciA9IDA7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaW5pdGlhbExvYWQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlcnZpY2U6IEJhc2VEcm9wZG93biB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmaWx0ZXJWaXJ0dWFsU2Nyb29sID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0ZsYWdzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc2hvd0ZsYWdzT3B0aW9ucz86IExpc3RJdGVtT3B0aW9uc0ZsYWdUeXBlW10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRlcGVuZGVuY2llczogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxpbWl0U2Nyb2xsUGFnZTogbnVtYmVyID0gMjA7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZm9yY2VTZWxlY3Rpb24gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBzaG93RmxhZ3NPcHRpb25zKHZhbHVlOiBMaXN0SXRlbU9wdGlvbnNGbGFnVHlwZVtdKSB7XHJcbiAgICBpZiAoIXRoaXMuc2hvd0ZsYWdzKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignc2hvd0ZsYWdzIGlzIHNldCB0byBmYWxzZS4gU2V0dGluZyBzaG93RmxhZ3NPcHRpb25zIGlzIG5vdCBhbGxvd2VkLicpO1xyXG4gICAgfVxyXG4gICAgdmFsdWUuZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChvcHRpb24udHlwZSA9PT0gJ2ltZycpIHtcclxuICAgICAgICBpZiAoIW9wdGlvbi5pbWdTb3VyY2UpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImltZ1NvdXJjZSBpcyByZXF1aXJlZCB3aGVuIHR5cGUgaXMgJ2ltZydcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghb3B0aW9uLmltZ1NpemUpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImltZ1NpemUgaXMgcmVxdWlyZWQgd2hlbiB0eXBlIGlzICdpbWcnXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChvcHRpb24udHlwZSA9PT0gJ2ljb24nKSB7XHJcbiAgICAgICAgaWYgKCFvcHRpb24uaWNvblNvdXJjZSkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaWNvblNvdXJjZSBpcyByZXF1aXJlZCB3aGVuIHR5cGUgaXMgJ2ljb24nXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIW9wdGlvbi5pY29uU2l6ZSkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaWNvblNpemUgaXMgcmVxdWlyZWQgd2hlbiB0eXBlIGlzICdpY29uJ1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc2hvd0ZsYWdzT3B0aW9ucyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dGbGFnc09wdGlvbnMoKTogTGlzdEl0ZW1PcHRpb25zRmxhZ1R5cGVbXSB7XHJcbiAgICBpZiAoIXRoaXMuX3Nob3dGbGFnc09wdGlvbnMpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzaG93RmxhZ3NPcHRpb25zIHdhcyBub3Qgc2V0Jyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fc2hvd0ZsYWdzT3B0aW9ucztcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25DbG9zZVBhbmVsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwcml2YXRlIGN1cnJlbnRTZWFyY2hRdWVyeSA9ICcnO1xyXG4gIHByaXZhdGUgY3VycmVudFNjcm9sbFBhZ2UgPSAtMTtcclxuICBwcml2YXRlIGN1cnJlbnRTY3JvbGxJbmRleCA9IDA7XHJcblxyXG4gIHB1YmxpYyB1bmxpc3RlbkF1dG9jb21wbGV0ZVZpcnR1YWxTY3JvbGwgPSAoKSA9PiB7fTtcclxuXHJcbiAgZ2V0IHBsYWNlaG9sZGVyKCkge1xyXG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGlzLmxhYmVsfSR7dGhpcy5pc1JlcXVpcmVkID8gJyonIDogJyd9YDtcclxuICB9XHJcblxyXG4gIGdldCBwYWdlZFN1Z2VzdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLl9wYWdlZFN1Z2VzdGlvbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3BhZ2VkU3VnZXN0aW9uOiBMaXN0SXRlbVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbml0aWFsTG9hZCAmJiB0aGlzLmZpbHRlclZpcnR1YWxTY3Jvb2wpIHtcclxuICAgICAgdGhpcy5zZWFyY2gobnVsbCwgdHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY29udHJvbCAmJiB0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmllbGRFcnJvckxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sICYmIHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcclxuICAgICAgICByZXR1cm4gJ0NhbXBvIG9icmlnYXTDs3Jpbyc7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5jb250cm9sLmVycm9yc1snaW52YWxpZCddID09PSAnc3RyaW5nJyA/IHRoaXMuY29udHJvbC5lcnJvcnNbJ2ludmFsaWQnXSA6ICdDYW1wbyBpbnbDoWxpZG8nO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9wZW5BdXRvY29tcGxldGVQYW5lbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoKCk7XHJcbiAgICBjb25zdCBtdWx0aVNlbGVjdFBhbmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnAtbXVsdGlzZWxlY3QtaXRlbXMtd3JhcHBlcicpO1xyXG5cclxuICAgIGlmIChtdWx0aVNlbGVjdFBhbmVsICYmIHRoaXMucGFnZWQgJiYgdGhpcy5jdXJyZW50U2VhcmNoUXVlcnkubGVuZ3RoID49IHRoaXMubWluTGVuZ3RoVG9TZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMudW5saXN0ZW5BdXRvY29tcGxldGVWaXJ0dWFsU2Nyb2xsID0gdGhpcy5yZW5kZXJlci5saXN0ZW4obXVsdGlTZWxlY3RQYW5lbCwgJ3Njcm9sbCcsIChldmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50SGVpZ2h0ID0gZXZlbnQudGFyZ2V0LnNjcm9sbEhlaWdodCAtIGV2ZW50LnRhcmdldC5jbGllbnRIZWlnaHQgLSAxNTA7XHJcblxyXG4gICAgICAgIGlmIChNYXRoLnJvdW5kKGV2ZW50LnRhcmdldC5zY3JvbGxUb3ApID49IGV2ZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VSZXN1bHRzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjdXN0b21Gb3JtYXR0aW5nTXVsdGlTZWxlY3RGaWVsZFdpdGhGbGFncygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5zZWFyY2goKTtcclxuICAgICAgdGhpcy5jdXJyZW50U2Nyb2xsUGFnZSsrO1xyXG5cclxuICAgICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgLmdldFBhZ2VkKFxyXG4gICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuY3VycmVudFNlYXJjaFF1ZXJ5KSxcclxuICAgICAgICAgIHRoaXMuY3VycmVudFNjcm9sbFBhZ2UsXHJcbiAgICAgICAgICB0aGlzLmxpbWl0U2Nyb2xsUGFnZSxcclxuICAgICAgICAgIHRoaXMuZGVwZW5kZW5jaWVzXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9XHJcbiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2Nyb2xsUGFnZSA9PT0gMFxyXG4gICAgICAgICAgICAgICAgPyByZXNwb25zZVxyXG4gICAgICAgICAgICAgICAgOiAodGhpcy5vcHRpb25zIGFzIChMaXN0SXRlbSB8IExpc3RJdGVtT3B0aW9uc0ZsYWdUeXBlKVtdKT8uY29uY2F0KFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlIGFzIChMaXN0SXRlbSB8IExpc3RJdGVtT3B0aW9uc0ZsYWdUeXBlKVtdXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9IHR5cGVvZiB0aGlzLmNvbnRyb2wudmFsdWUgPT0gJ29iamVjdCcgPyB0aGlzLmNvbnRyb2wudmFsdWU/LmNvZGUgOiB0aGlzLmNvbnRyb2wudmFsdWU7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlICYmIHRoaXMub3B0aW9ucz8uZmluZCgoaXRlbSkgPT4gaXRlbS5jb2RlID09IGNvbnRyb2xWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZUZyb21TdWdnZXN0aW9ucygpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JjZVNlbGVjdGlvbikge1xyXG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlU2VhcmNoRXJyb3JzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjogKGVycikgPT4ge30sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZlY3Rvck11bHRpc2VsZWN0RmllbGQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2ZWN0b3ItbXVsdGlzZWxlY3QtZmllbGQubXVsdGlzZWxlY3QtZmxhZ3MnKTtcclxuXHJcbiAgICAgIGlmICh2ZWN0b3JNdWx0aXNlbGVjdEZpZWxkKSB7XHJcbiAgICAgICAgY29uc3QgcE92ZXJsYXlFbGVtZW50ID0gdmVjdG9yTXVsdGlzZWxlY3RGaWVsZC5xdWVyeVNlbGVjdG9yKCdwLW92ZXJsYXknKTtcclxuXHJcbiAgICAgICAgaWYgKHBPdmVybGF5RWxlbWVudCkge1xyXG4gICAgICAgICAgY29uc3QgY2xhc3NMaXN0ID0gQXJyYXkuZnJvbShwT3ZlcmxheUVsZW1lbnQuY2xhc3NMaXN0KTtcclxuICAgICAgICAgIGNvbnN0IHRhcmdldENsYXNzID0gY2xhc3NMaXN0LmZpbmQoKGNsYXNzTmFtZSkgPT4gY2xhc3NOYW1lLnN0YXJ0c1dpdGgoJ25nLXRucy0nKSk7XHJcblxyXG4gICAgICAgICAgaWYgKHRhcmdldENsYXNzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzUmVmZXJlbmNlQ29kZSA9IHRhcmdldENsYXNzLnJlcGxhY2UoJ25nLXRucy0nLCAnJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldERpdldpdGhSZWZDb2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgZGl2Lm5nLXRucy0ke2NsYXNzUmVmZXJlbmNlQ29kZX1gKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0YXJnZXREaXZXaXRoUmVmQ29kZSkge1xyXG4gICAgICAgICAgICAgIHRhcmdldERpdldpdGhSZWZDb2RlLmNsYXNzTGlzdC5hZGQoJ211bHRpc2VsZWN0LWZsYWdzJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25IaWRlQXV0b2NvbXBsZXRlUGFuZWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wYWdlZCkge1xyXG4gICAgICB0aGlzLnVubGlzdGVuQXV0b2NvbXBsZXRlVmlydHVhbFNjcm9sbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlYXJjaCgkZXZlbnQ/OiBhbnksIGZvcmNlU2VhcmNoID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudFNlYXJjaFF1ZXJ5ID0gJGV2ZW50Py5maWx0ZXIudG9VcHBlckNhc2UoKSB8fCAnJztcclxuICAgIHRoaXMuY3VycmVudFNjcm9sbFBhZ2UgPSAtMTtcclxuICAgIHRoaXMuY3VycmVudFNjcm9sbEluZGV4ID0gMDtcclxuICAgIGlmIChmb3JjZVNlYXJjaCB8fCB0aGlzLmN1cnJlbnRTZWFyY2hRdWVyeS5sZW5ndGggPj0gdGhpcy5taW5MZW5ndGhUb1NlcnZpY2UpIHtcclxuICAgICAgdGhpcy5wYWdlUmVzdWx0cygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhZ2VSZXN1bHRzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZmlsdGVyZWRPcHRpb25zID0gdGhpcy5maWx0ZXJMaXN0QnlRdWVyeSh0aGlzLnBhZ2VkU3VnZXN0aW9uLCB0aGlzLmN1cnJlbnRTZWFyY2hRdWVyeS50b1VwcGVyQ2FzZSgpKTtcclxuICAgIHRoaXMub3B0aW9ucyA9IGZpbHRlcmVkT3B0aW9ucy5zbGljZSgwLCB0aGlzLmN1cnJlbnRTY3JvbGxJbmRleCArIDIwKTtcclxuXHJcbiAgICBpZiAodGhpcy5wYWdlZFN1Z2VzdGlvbj8ubGVuZ3RoICYmIHRoaXMucGFnZWRTdWdlc3Rpb24ubGVuZ3RoID4gMjApIHtcclxuICAgICAgdGhpcy5jdXJyZW50U2Nyb2xsSW5kZXggPSB0aGlzLmN1cnJlbnRTY3JvbGxJbmRleCArIDIwO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlRnJvbVN1Z2dlc3Rpb25zKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbHRlckxpc3RCeVF1ZXJ5KGxpc3Q6IExpc3RJdGVtW10gPSBbXSwgcXVlcnk6IHN0cmluZyk6IExpc3RJdGVtW10ge1xyXG4gICAgcmV0dXJuIGxpc3QuZmlsdGVyKFxyXG4gICAgICAob3B0KSA9PiBTdHJpbmcob3B0LmNvZGUpLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpIHx8IG9wdC5uYW1lLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpXHJcbiAgICApO1xyXG4gIH1cclxuICBwcml2YXRlIHNldENvbnRyb2xWYWx1ZUZyb21TdWdnZXN0aW9ucygpIHtcclxuICAgIGNvbnN0IGNvZGUgPVxyXG4gICAgICAoT2JqZWN0VXRpbC5pc1ZhbGlkKHRoaXMuY29udHJvbC52YWx1ZT8uY29kZSkgJiYgYCR7dGhpcy5jb250cm9sLnZhbHVlPy5jb2RlfWApIHx8IGAke3RoaXMuY29udHJvbC52YWx1ZX1gO1xyXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZSAmJiB0aGlzLm9wdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICBsZXQgaXRlbXNBcnJheSA9IHRoaXMub3B0aW9ucztcclxuICAgICAgaWYgKHRoaXMub3B0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgaXRlbXNBcnJheSA9IHRoaXMub3B0aW9ucztcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBpdGVtRnJvbVN1Z2dlc3Rpb25zID0gaXRlbXNBcnJheS5maW5kKChvcHQpID0+IGAke29wdC5jb2RlfWAudG9VcHBlckNhc2UoKSA9PT0gY29kZS50b1VwcGVyQ2FzZSgpKTtcclxuICAgICAgaWYgKGl0ZW1Gcm9tU3VnZ2VzdGlvbnMpIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoaXRlbUZyb21TdWdnZXN0aW9ucywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VydmljZT8uZ2V0QnlJZCgrY29kZSkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHJlc3BvbnNlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5jb250cm9sLnZhbHVlICYmICF0aGlzLm9wdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnNlcnZpY2U/LmdldEJ5SWQoK2NvZGUpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUocmVzcG9uc2UsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVNlYXJjaEVycm9ycygpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICBkZWxldGUgdGhpcy5jb250cm9sLmVycm9ycz8uaXRlbU5vdEZvdW5kO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRTZWFyY2hRdWVyeSkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHsgaXRlbU5vdEZvdW5kOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXVsdGlzZWxlY3QtZmllbGQtaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgPHAtbXVsdGlTZWxlY3RcclxuICAgICpuZ0lmPVwiIWZpbHRlclZpcnR1YWxTY3Jvb2xcIlxyXG4gICAgI211bHRpc2VsZWN0XHJcbiAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgb3B0aW9uTGFiZWw9XCJuYW1lXCJcclxuICAgIG9wdGlvblZhbHVlPVwiY29kZVwiXHJcbiAgICBkcm9wZG93bkljb249XCJmYXMgZmEtc29ydC1kb3duXCJcclxuICAgIHNlbGVjdGVkSXRlbXNMYWJlbD1cIlNlbGVjaW9uYXIgdG9kb3NcIlxyXG4gICAgW3BhbmVsU3R5bGVDbGFzc109XCJmaWx0ZXIgPyAnaGFzLWZpbHRlcicgOiAnJ1wiXHJcbiAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICBbZmlsdGVyXT1cImZpbHRlclwiXHJcbiAgICBbbWF4U2VsZWN0ZWRMYWJlbHNdPVwib3B0aW9ucy5sZW5ndGggLSAxXCJcclxuICAgIFtzaG93VG9nZ2xlQWxsXT1cInNob3dTZWxlY3RBbGxPcHRpb25cIlxyXG4gICAgW2Ryb3Bkb3duSWNvbl09XCIncGkgcGktY2hldnJvbi1kb3duJ1wiXHJcbiAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgIChvbkNoYW5nZSk9XCJvbkNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgKG9uUGFuZWxIaWRlKT1cIm9uQ2xvc2VQYW5lbC5lbWl0KCRldmVudClcIlxyXG4gICAgKG9uUGFuZWxTaG93KT1cImN1c3RvbUZvcm1hdHRpbmdNdWx0aVNlbGVjdEZpZWxkV2l0aEZsYWdzKClcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtzaG93SGVhZGVyXT1cInNob3dIZWFkZXJcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RmxhZ3NcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1vcHRpb24gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLW5vZ3V0dGVyIHctZnVsbCBmbGV4XCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwibWQ6Y29sLTYgc206Y29sLTEyIGFsaWduLWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwib3B0aW9uLmFsaWduID09PSAnY2VudGVyJyA/ICdtZDp0ZXh0LWNlbnRlcicgOiAnbWQ6dGV4dC1sZWZ0J1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi50eXBlID09ICdpbWcnXCJcclxuICAgICAgICAgICAgICBbc3JjXT1cIm9wdGlvbi5pbWdTb3VyY2VcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm9wdGlvbi5pbWdDbGFzc1wiXHJcbiAgICAgICAgICAgICAgW3N0eWxlXT1cInsgaGVpZ2h0OiBvcHRpb24uaW1nU2l6ZSArICdweCcgfVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJvcHRpb24udHlwZSA9PSAnaWNvbidcIlxyXG4gICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwib3B0aW9uLmljb25Tb3VyY2VcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm9wdGlvbi5pY29uQ2xhc3NcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7ICdmb250LXNpemUnOiBvcHRpb24uaWNvblNpemUgfVwiXHJcbiAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aW9uLnNob3dEZXNjcmlwdGlvbk9uUmlnaHRcIiBjbGFzcz1cImNvbC02IGhpZGRlbiBtZDpibG9jayBhbGlnbi1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJsb2NrXCI+e3sgb3B0aW9uLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvcC1tdWx0aVNlbGVjdD5cclxuXHJcbiAgPHAtbXVsdGlTZWxlY3RcclxuICAgICpuZ0lmPVwiZmlsdGVyVmlydHVhbFNjcm9vbFwiXHJcbiAgICAjbXVsdGlzZWxlY3RcclxuICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICBvcHRpb25MYWJlbD1cIm5hbWVcIlxyXG4gICAgb3B0aW9uVmFsdWU9XCJjb2RlXCJcclxuICAgIGRyb3Bkb3duSWNvbj1cImZhcyBmYS1zb3J0LWRvd25cIlxyXG4gICAgc2VsZWN0ZWRJdGVtc0xhYmVsPVwiU2VsZWNpb25hciB0b2Rvc1wiXHJcbiAgICBbcGFuZWxTdHlsZUNsYXNzXT1cImZpbHRlciA/ICdoYXMtZmlsdGVyJyA6ICcnXCJcclxuICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcclxuICAgIFttYXhTZWxlY3RlZExhYmVsc109XCJvcHRpb25zLmxlbmd0aCAtIDFcIlxyXG4gICAgW3Nob3dIZWFkZXJdPVwidHJ1ZVwiXHJcbiAgICBbc2hvd1RvZ2dsZUFsbF09XCJzaG93U2VsZWN0QWxsT3B0aW9uXCJcclxuICAgIFtkcm9wZG93bkljb25dPVwiJ3BpIHBpLWNoZXZyb24tZG93bidcIlxyXG4gICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAob25DaGFuZ2UpPVwib25DaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgIChvbkZpbHRlcik9XCJzZWFyY2goJGV2ZW50KVwiXHJcbiAgICAob25QYW5lbFNob3cpPVwib25PcGVuQXV0b2NvbXBsZXRlUGFuZWwoKVwiXHJcbiAgICAob25QYW5lbEhpZGUpPVwib25IaWRlQXV0b2NvbXBsZXRlUGFuZWwoKVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gID5cclxuICA8L3AtbXVsdGlTZWxlY3Q+XHJcbiAgPHAtbXVsdGlTZWxlY3RcclxuICAgICpuZ0lmPVwiZmlsdGVyVmlydHVhbFNjcm9vbFwiXHJcbiAgICAjbXVsdGlzZWxlY3RcclxuICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICBvcHRpb25MYWJlbD1cIm5hbWVcIlxyXG4gICAgb3B0aW9uVmFsdWU9XCJjb2RlXCJcclxuICAgIGRyb3Bkb3duSWNvbj1cImZhcyBmYS1zb3J0LWRvd25cIlxyXG4gICAgc2VsZWN0ZWRJdGVtc0xhYmVsPVwiU2VsZWNpb25hciB0b2Rvc1wiXHJcbiAgICBbcGFuZWxTdHlsZUNsYXNzXT1cImZpbHRlciA/ICdoYXMtZmlsdGVyJyA6ICcnXCJcclxuICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcclxuICAgIFttYXhTZWxlY3RlZExhYmVsc109XCJvcHRpb25zLmxlbmd0aCAtIDFcIlxyXG4gICAgW3Nob3dIZWFkZXJdPVwidHJ1ZVwiXHJcbiAgICBbc2hvd1RvZ2dsZUFsbF09XCJzaG93U2VsZWN0QWxsT3B0aW9uXCJcclxuICAgIFtkcm9wZG93bkljb25dPVwiJ3BpIHBpLWNoZXZyb24tZG93bidcIlxyXG4gICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAob25DaGFuZ2UpPVwib25DaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgIChvbkZpbHRlcik9XCJzZWFyY2goJGV2ZW50KVwiXHJcbiAgICAob25QYW5lbFNob3cpPVwib25PcGVuQXV0b2NvbXBsZXRlUGFuZWwoKVwiXHJcbiAgICAob25QYW5lbEhpZGUpPVwib25IaWRlQXV0b2NvbXBsZXRlUGFuZWwoKVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gID5cclxuICA8L3AtbXVsdGlTZWxlY3Q+XHJcbiAgPHNwYW4gY2xhc3M9XCJpbnB1dC1lcnJvclwiPnt7IGZpZWxkRXJyb3JMYWJlbCgpIH19PC9zcGFuPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -39,11 +39,11 @@ export class RadioButtonFieldComponent {
|
|
|
39
39
|
return label !== 'app.label.no' ? label : 'Não';
|
|
40
40
|
}
|
|
41
41
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioButtonFieldComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RadioButtonFieldComponent, selector: "vector-radio-button-field", inputs: { groupName: "groupName", options: "options", control: "control", layout: "layout", justifySpaceBetween: "justifySpaceBetween", addIcon: "addIcon", disabled: "disabled" }, ngImport: i0, template: "<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n <i\r\n *ngIf=\"addIcon\"\r\n class=\"fas fa-info-circle mt-1 pr-3 pl-2\"\r\n pTooltip=\"{{ option.textTooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i>\r\n </div>\r\n</div>\r\n", styles: [".radio-buttons-container{flex-wrap:wrap;height:100%;width:100%;padding-top:5px}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{display:flex;flex-direction:row;padding-top:5px}.horizontal .radio-buttons-container .radio-button-item{margin:0 5px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }] }); }
|
|
42
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RadioButtonFieldComponent, selector: "vector-radio-button-field", inputs: { groupName: "groupName", options: "options", control: "control", layout: "layout", justifySpaceBetween: "justifySpaceBetween", addIcon: "addIcon", disabled: "disabled" }, ngImport: i0, template: "<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n <i\r\n *ngIf=\"addIcon && option.textTooltip != null\"\r\n class=\"fas fa-info-circle mt-1 pr-3 pl-2\"\r\n pTooltip=\"{{ option.textTooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i>\r\n </div>\r\n</div>\r\n", styles: [".radio-buttons-container{flex-wrap:wrap;height:100%;width:100%;padding-top:5px}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{display:flex;flex-direction:row;padding-top:5px}.horizontal .radio-buttons-container .radio-button-item{margin:0 5px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }] }); }
|
|
43
43
|
}
|
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioButtonFieldComponent, decorators: [{
|
|
45
45
|
type: Component,
|
|
46
|
-
args: [{ selector: 'vector-radio-button-field', template: "<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n <i\r\n *ngIf=\"addIcon\"\r\n class=\"fas fa-info-circle mt-1 pr-3 pl-2\"\r\n pTooltip=\"{{ option.textTooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i>\r\n </div>\r\n</div>\r\n", styles: [".radio-buttons-container{flex-wrap:wrap;height:100%;width:100%;padding-top:5px}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{display:flex;flex-direction:row;padding-top:5px}.horizontal .radio-buttons-container .radio-button-item{margin:0 5px}\n"] }]
|
|
46
|
+
args: [{ selector: 'vector-radio-button-field', template: "<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n <i\r\n *ngIf=\"addIcon && option.textTooltip != null\"\r\n class=\"fas fa-info-circle mt-1 pr-3 pl-2\"\r\n pTooltip=\"{{ option.textTooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i>\r\n </div>\r\n</div>\r\n", styles: [".radio-buttons-container{flex-wrap:wrap;height:100%;width:100%;padding-top:5px}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{display:flex;flex-direction:row;padding-top:5px}.horizontal .radio-buttons-container .radio-button-item{margin:0 5px}\n"] }]
|
|
47
47
|
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { groupName: [{
|
|
48
48
|
type: Input
|
|
49
49
|
}], options: [{
|
|
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
59
59
|
}], disabled: [{
|
|
60
60
|
type: Input
|
|
61
61
|
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmllbGRzL3JhZGlvLWJ1dHRvbi1maWVsZC9yYWRpby1idXR0b24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvcmFkaW8tYnV0dG9uLWZpZWxkL3JhZGlvLWJ1dHRvbi1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFhOUMsTUFBTSxPQUFPLHlCQUF5QjtJQW1CcEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFqQi9DLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsWUFBTyxHQUF3QjtZQUNwQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDckQsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO1NBQ3BELENBQUM7UUFJSyxXQUFNLEdBQThCLFVBQVUsQ0FBQztRQUUvQyx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFNUIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixhQUFRLEdBQVksS0FBSyxDQUFDO0lBRXdCLENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDeEI7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxLQUFLLFlBQVksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztJQUM1RixDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdELE9BQU8sS0FBSyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVPLFVBQVU7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1RCxPQUFPLEtBQUssS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2xELENBQUM7K0dBekNVLHlCQUF5QjttR0FBekIseUJBQXlCLHFQQ2Z0Qyw4cEJBb0JBOzs0RkRMYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsMkJBQTJCO3FGQU05QixTQUFTO3NCQURmLEtBQUs7Z0JBR0MsT0FBTztzQkFEYixLQUFLO2dCQU1DLE9BQU87c0JBRGIsS0FBSztnQkFHQyxNQUFNO3NCQURaLEtBQUs7Z0JBR0MsbUJBQW1CO3NCQUR6QixLQUFLO2dCQUdDLE9BQU87c0JBRGIsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCb29sZWFuVHlwZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcblxyXG5leHBvcnQgdHlwZSBSYWRpb0J1dHRvbk9wdGlvbiA9IHtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgdGV4dFRvb2x0aXA/OiBzdHJpbmc7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ZlY3Rvci1yYWRpby1idXR0b24tZmllbGQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1idXR0b24tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLWJ1dHRvbi1maWVsZC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ3JvdXBOYW1lOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvcHRpb25zOiBSYWRpb0J1dHRvbk9wdGlvbltdID0gW1xyXG4gICAgeyBsYWJlbDogdGhpcy5nZXRZZXNMYWJlbCgpLCB2YWx1ZTogQm9vbGVhblR5cGUuWUVTIH0sXHJcbiAgICB7IGxhYmVsOiB0aGlzLmdldE5vTGFiZWwoKSwgdmFsdWU6IEJvb2xlYW5UeXBlLk5PIH0sXHJcbiAgXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb250cm9sOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGF5b3V0OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ3ZlcnRpY2FsJztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBqdXN0aWZ5U3BhY2VCZXR3ZWVuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWRkSWNvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sICYmIHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5jb250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBsYXlvdXRDbGFzcygpIHtcclxuICAgIHJldHVybiB7IGhvcml6b250YWw6IHRoaXMubGF5b3V0ID09PSAnaG9yaXpvbnRhbCcsIHZlcnRpY2FsOiB0aGlzLmxheW91dCA9PT0gJ3ZlcnRpY2FsJyB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRZZXNMYWJlbCgpIHtcclxuICAgIGNvbnN0IGxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2FwcC5sYWJlbC55ZXMnKTtcclxuICAgIHJldHVybiBsYWJlbCAhPT0gJ2FwcC5sYWJlbC55ZXMnID8gbGFiZWwgOiAnU2ltJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Tm9MYWJlbCgpIHtcclxuICAgIGNvbnN0IGxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2FwcC5sYWJlbC5ubycpO1xyXG4gICAgcmV0dXJuIGxhYmVsICE9PSAnYXBwLmxhYmVsLm5vJyA/IGxhYmVsIDogJ07Do28nO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJyYWRpby1idXR0b25zLWNvbnRhaW5lclwiXHJcbiAgW25nQ2xhc3NdPVwibGF5b3V0Q2xhc3NcIlxyXG4gIFtuZ1N0eWxlXT1cInsgJ2p1c3RpZnktY29udGVudCc6IGp1c3RpZnlTcGFjZUJldHdlZW4gPyAnc3BhY2UtYmV0d2VlbicgOiAnZmxleC1zdGFydCcgfVwiXHJcbj5cclxuICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIGNsYXNzPVwicmFkaW8tYnV0dG9uLWl0ZW1cIj5cclxuICAgIDxwLXJhZGlvQnV0dG9uXHJcbiAgICAgIFtuYW1lXT1cImdyb3VwTmFtZVwiXHJcbiAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxyXG4gICAgICBbbGFiZWxdPVwib3B0aW9uLmxhYmVsXCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgPjwvcC1yYWRpb0J1dHRvbj5cclxuICAgIDxpXHJcbiAgICAgICpuZ0lmPVwiYWRkSWNvbiAmJiBvcHRpb24udGV4dFRvb2x0aXAgIT0gbnVsbFwiXHJcbiAgICAgIGNsYXNzPVwiZmFzIGZhLWluZm8tY2lyY2xlIG10LTEgcHItMyBwbC0yXCJcclxuICAgICAgcFRvb2x0aXA9XCJ7eyBvcHRpb24udGV4dFRvb2x0aXAgfX1cIlxyXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxyXG4gICAgPjwvaT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -2835,6 +2835,8 @@ class MultiselectFieldComponent {
|
|
|
2835
2835
|
this.filterVirtualScrool = false;
|
|
2836
2836
|
this.showHeader = true;
|
|
2837
2837
|
this.showFlags = false;
|
|
2838
|
+
this.limitScrollPage = 20;
|
|
2839
|
+
this.forceSelection = true;
|
|
2838
2840
|
this.onChange = new EventEmitter();
|
|
2839
2841
|
this.onClosePanel = new EventEmitter();
|
|
2840
2842
|
this.currentSearchQuery = '';
|
|
@@ -2876,6 +2878,28 @@ class MultiselectFieldComponent {
|
|
|
2876
2878
|
}
|
|
2877
2879
|
}
|
|
2878
2880
|
customFormattingMultiSelectFieldWithFlags() {
|
|
2881
|
+
if (this.service) {
|
|
2882
|
+
this.search();
|
|
2883
|
+
this.currentScrollPage++;
|
|
2884
|
+
this.service
|
|
2885
|
+
.getPaged(encodeURIComponent(this.currentSearchQuery), this.currentScrollPage, this.limitScrollPage, this.dependencies)
|
|
2886
|
+
.subscribe({
|
|
2887
|
+
next: (response) => {
|
|
2888
|
+
this.options =
|
|
2889
|
+
this.currentScrollPage === 0
|
|
2890
|
+
? response
|
|
2891
|
+
: this.options?.concat(response);
|
|
2892
|
+
const controlValue = typeof this.control.value == 'object' ? this.control.value?.code : this.control.value;
|
|
2893
|
+
if (this.control.value && this.options?.find((item) => item.code == controlValue)) {
|
|
2894
|
+
this.setControlValueFromSuggestions();
|
|
2895
|
+
}
|
|
2896
|
+
if (this.forceSelection) {
|
|
2897
|
+
this.handleSearchErrors();
|
|
2898
|
+
}
|
|
2899
|
+
},
|
|
2900
|
+
error: (err) => { },
|
|
2901
|
+
});
|
|
2902
|
+
}
|
|
2879
2903
|
setTimeout(() => {
|
|
2880
2904
|
const vectorMultiselectField = document.querySelector('vector-multiselect-field.multiselect-flags');
|
|
2881
2905
|
if (vectorMultiselectField) {
|
|
@@ -2944,8 +2968,16 @@ class MultiselectFieldComponent {
|
|
|
2944
2968
|
});
|
|
2945
2969
|
}
|
|
2946
2970
|
}
|
|
2971
|
+
handleSearchErrors() {
|
|
2972
|
+
if (this.options?.length) {
|
|
2973
|
+
delete this.control.errors?.itemNotFound;
|
|
2974
|
+
}
|
|
2975
|
+
else if (this.currentSearchQuery) {
|
|
2976
|
+
this.control.setErrors({ itemNotFound: true });
|
|
2977
|
+
}
|
|
2978
|
+
}
|
|
2947
2979
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiselectFieldComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2948
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MultiselectFieldComponent, selector: "vector-multiselect-field", inputs: { pagedSugestion: "pagedSugestion", isRequired: "isRequired", control: "control", label: "label", options: "options", filter: "filter", showSelectAllOption: "showSelectAllOption", display: "display", paged: "paged", disabled: "disabled", minLengthToService: "minLengthToService", initialLoad: "initialLoad", service: "service", filterVirtualScrool: "filterVirtualScrool", showHeader: "showHeader", showFlags: "showFlags", showFlagsOptions: "showFlagsOptions" }, outputs: { onChange: "onChange", onClosePanel: "onClosePanel" }, ngImport: i0, template: "<div class=\"multiselect-field-input-container\">\r\n <p-multiSelect\r\n *ngIf=\"!filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onPanelHide)=\"onClosePanel.emit($event)\"\r\n (onPanelShow)=\"customFormattingMultiSelectFieldWithFlags()\"\r\n [disabled]=\"disabled\"\r\n [showHeader]=\"showHeader\"\r\n >\r\n <ng-container *ngIf=\"showFlags\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"grid-nogutter w-full flex\">\r\n <div\r\n class=\"md:col-6 sm:col-12 align-content-center\"\r\n [ngClass]=\"option.align === 'center' ? 'md:text-center' : 'md:text-left'\"\r\n >\r\n <img\r\n *ngIf=\"option.type == 'img'\"\r\n [src]=\"option.imgSource\"\r\n [ngClass]=\"option.imgClass\"\r\n [style]=\"{ height: option.imgSize + 'px' }\"\r\n />\r\n <i\r\n *ngIf=\"option.type == 'icon'\"\r\n [className]=\"option.iconSource\"\r\n [ngClass]=\"option.iconClass\"\r\n [style]=\"{ 'font-size': option.iconSize }\"\r\n ></i>\r\n </div>\r\n\r\n <div *ngIf=\"option.showDescriptionOnRight\" class=\"col-6 hidden md:block align-content-center\">\r\n <span class=\"block\">{{ option.name }}</span>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </p-multiSelect>\r\n\r\n <p-multiSelect\r\n *ngIf=\"filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onFilter)=\"search($event)\"\r\n (onPanelShow)=\"onOpenAutocompletePanel()\"\r\n (onPanelHide)=\"onHideAutocompletePanel()\"\r\n [disabled]=\"disabled\"\r\n >\r\n </p-multiSelect>\r\n <p-multiSelect\r\n *ngIf=\"filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onFilter)=\"search($event)\"\r\n (onPanelShow)=\"onOpenAutocompletePanel()\"\r\n (onPanelHide)=\"onHideAutocompletePanel()\"\r\n [disabled]=\"disabled\"\r\n >\r\n </p-multiSelect>\r\n <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n</div>\r\n", styles: [".multiselect-field-input-container{height:62px}.multiselect-field-input-container .input-error{font-size:.7em;color:var(--error-color)}.multiselect-field-input-container div.p-multiselect-token{padding:auto 1em!important;background:#eff0f6!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4$2.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }] }); }
|
|
2980
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MultiselectFieldComponent, selector: "vector-multiselect-field", inputs: { pagedSugestion: "pagedSugestion", isRequired: "isRequired", control: "control", label: "label", options: "options", filter: "filter", showSelectAllOption: "showSelectAllOption", display: "display", paged: "paged", disabled: "disabled", minLengthToService: "minLengthToService", initialLoad: "initialLoad", service: "service", filterVirtualScrool: "filterVirtualScrool", showHeader: "showHeader", showFlags: "showFlags", dependencies: "dependencies", limitScrollPage: "limitScrollPage", forceSelection: "forceSelection", showFlagsOptions: "showFlagsOptions" }, outputs: { onChange: "onChange", onClosePanel: "onClosePanel" }, ngImport: i0, template: "<div class=\"multiselect-field-input-container\">\r\n <p-multiSelect\r\n *ngIf=\"!filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onPanelHide)=\"onClosePanel.emit($event)\"\r\n (onPanelShow)=\"customFormattingMultiSelectFieldWithFlags()\"\r\n [disabled]=\"disabled\"\r\n [showHeader]=\"showHeader\"\r\n >\r\n <ng-container *ngIf=\"showFlags\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"grid-nogutter w-full flex\">\r\n <div\r\n class=\"md:col-6 sm:col-12 align-content-center\"\r\n [ngClass]=\"option.align === 'center' ? 'md:text-center' : 'md:text-left'\"\r\n >\r\n <img\r\n *ngIf=\"option.type == 'img'\"\r\n [src]=\"option.imgSource\"\r\n [ngClass]=\"option.imgClass\"\r\n [style]=\"{ height: option.imgSize + 'px' }\"\r\n />\r\n <i\r\n *ngIf=\"option.type == 'icon'\"\r\n [className]=\"option.iconSource\"\r\n [ngClass]=\"option.iconClass\"\r\n [style]=\"{ 'font-size': option.iconSize }\"\r\n ></i>\r\n </div>\r\n\r\n <div *ngIf=\"option.showDescriptionOnRight\" class=\"col-6 hidden md:block align-content-center\">\r\n <span class=\"block\">{{ option.name }}</span>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </p-multiSelect>\r\n\r\n <p-multiSelect\r\n *ngIf=\"filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onFilter)=\"search($event)\"\r\n (onPanelShow)=\"onOpenAutocompletePanel()\"\r\n (onPanelHide)=\"onHideAutocompletePanel()\"\r\n [disabled]=\"disabled\"\r\n >\r\n </p-multiSelect>\r\n <p-multiSelect\r\n *ngIf=\"filterVirtualScrool\"\r\n #multiselect\r\n appendTo=\"body\"\r\n optionLabel=\"name\"\r\n optionValue=\"code\"\r\n dropdownIcon=\"fas fa-sort-down\"\r\n selectedItemsLabel=\"Selecionar todos\"\r\n [panelStyleClass]=\"filter ? 'has-filter' : ''\"\r\n [options]=\"options\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [filter]=\"filter\"\r\n [maxSelectedLabels]=\"options.length - 1\"\r\n [showHeader]=\"true\"\r\n [showToggleAll]=\"showSelectAllOption\"\r\n [dropdownIcon]=\"'pi pi-chevron-down'\"\r\n [display]=\"display\"\r\n (onChange)=\"onChange.emit($event)\"\r\n (onFilter)=\"search($event)\"\r\n (onPanelShow)=\"onOpenAutocompletePanel()\"\r\n (onPanelHide)=\"onHideAutocompletePanel()\"\r\n [disabled]=\"disabled\"\r\n >\r\n </p-multiSelect>\r\n <span class=\"input-error\">{{ fieldErrorLabel() }}</span>\r\n</div>\r\n", styles: [".multiselect-field-input-container{height:62px}.multiselect-field-input-container .input-error{font-size:.7em;color:var(--error-color)}.multiselect-field-input-container div.p-multiselect-token{padding:auto 1em!important;background:#eff0f6!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4$2.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }] }); }
|
|
2949
2981
|
}
|
|
2950
2982
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MultiselectFieldComponent, decorators: [{
|
|
2951
2983
|
type: Component,
|
|
@@ -2982,6 +3014,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2982
3014
|
type: Input
|
|
2983
3015
|
}], showFlags: [{
|
|
2984
3016
|
type: Input
|
|
3017
|
+
}], dependencies: [{
|
|
3018
|
+
type: Input
|
|
3019
|
+
}], limitScrollPage: [{
|
|
3020
|
+
type: Input
|
|
3021
|
+
}], forceSelection: [{
|
|
3022
|
+
type: Input
|
|
2985
3023
|
}], showFlagsOptions: [{
|
|
2986
3024
|
type: Input
|
|
2987
3025
|
}], onChange: [{
|
|
@@ -3401,7 +3439,7 @@ class FiltersComponent {
|
|
|
3401
3439
|
return validators;
|
|
3402
3440
|
}
|
|
3403
3441
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FiltersComponent, deps: [{ token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3404
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FiltersComponent, selector: "vector-filters", inputs: { fields: "fields" }, outputs: { onSearch: "onSearch", formBuilded: "formBuilded" }, ngImport: i0, template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label\r\n >{{ field.label }}\r\n <i\r\n *ngIf=\"field.tooltip\"\r\n class=\"fas fa-info-circle mt-1 pl-2 ch\"\r\n pTooltip=\"{{ field.tooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i\r\n ></label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"[fieldTypes.DYNAMIC_DROPDOWN, fieldTypes.DROPDOWN].includes(field.type)\"\r\n [dynamicFilters]=\"field.filterTypes\"\r\n [disabled]=\"field.disabled\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [minLengthToService]=\"field.minLengthToService || 0\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n [initialLoad]=\"field.initiateValue\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n [disabled]=\"field.disabled\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [min]=\"field.dateMin\"\r\n [max]=\"field.dateMax\"\r\n ></vector-calendar-field>\r\n <vector-select-button-field\r\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options\"\r\n (click)=\"search()\"\r\n [disabled]=\"field.disabled\"\r\n >\r\n </vector-select-button-field>\r\n <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\r\n <vector-calendar-field\r\n [control]=\"formGroup.get(field.name + '.startDate')\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [min]=\"field.dateMin\"\r\n ></vector-calendar-field>\r\n At\u00E9\r\n <vector-calendar-field\r\n [control]=\"formGroup.get(field.name + '.endDate')\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [max]=\"field.dateMax\"\r\n ></vector-calendar-field>\r\n </div>\r\n <vector-multiselect-field\r\n *ngIf=\"field.type === fieldTypes.MULTISELECT\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options || []\"\r\n [disabled]=\"field.disabled\"\r\n >\r\n </vector-multiselect-field>\r\n </div>\r\n <div class=\"search-button sm:col-4\">\r\n <vector-button\r\n [label]=\"'app.label.search' | translate\"\r\n (click)=\"search()\"\r\n [disabled]=\"!formGroup.valid\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}.filter-container .search-button{flex:1;padding-right:7px;display:flex;justify-content:flex-end}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}.filter-container .range-date-container{display:flex;align-items:center;gap:10px}.display-none{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: TextFieldComponent, selector: "vector-text-field", inputs: ["isRequired", "label", "maxlength", "isPassword", "numeric", "numericPositive", "numericDotComma", "decimal", "onlyText", "noSpecialCharacters", "alphaNumeric", "alphaNumericAndWhitespace", "mask", "autoClear", "readonly", "rightIcon", "centered", "enableDocumentTypeChoice", "hiddenErrorMessage", "leftLabel", "control", "inputId", "slotChar", "disabled", "pattern"], outputs: ["blurEvent", "inputEvent", "enterKeyPress", "backSpaceKeyPress", "focusEvent", "onDocumentTypeChange"] }, { kind: "component", type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "round", "style", "loading"], outputs: ["onClick"] }, { kind: "component", type: CalendarComponent, selector: "vector-calendar-field", inputs: ["isRequired", "control", "label", "showCalendarOnFocus", "min", "max", "disabledDates", "disabled", "defaultDate", "hiddenErrorMessage", "showTime", "showSeconds", "stepMinute", "stepHour", "stepSecond", "timeOnly", "hourFormat"], outputs: ["onFocus", "onBlur", "onInput", "onSelect"] }, { kind: "component", type: MultiselectFieldComponent, selector: "vector-multiselect-field", inputs: ["pagedSugestion", "isRequired", "control", "label", "options", "filter", "showSelectAllOption", "display", "paged", "disabled", "minLengthToService", "initialLoad", "service", "filterVirtualScrool", "showHeader", "showFlags", "showFlagsOptions"], outputs: ["onChange", "onClosePanel"] }, { kind: "component", type: DropdownFieldComponent, selector: "vector-dropdown-field", inputs: ["options", "isNgContent", "forceSelection", "isRequired", "control", "label", "service", "paged", "buttonAction", "dependencies", "hiddenErrorMessage", "dynamicFilters", "minLengthToService", "initialLoad", "disabled", "limitScrollPage", "inputId"], outputs: ["onFocus", "onChange"] }, { kind: "component", type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: ["minValue", "maxValue", "placeholder", "numberOfDecimals", "control", "outlined", "rounded", "label", "isBankingField", "inputClassName", "localePrefix", "currencyPrefix", "disabled", "centered", "inputId"], outputs: ["onBlur"] }, { kind: "component", type: SelectButtonFieldComponent, selector: "vector-select-button-field", inputs: ["options", "control", "disabled"] }, { kind: "pipe", type: NotHiddenPipe, name: "notHidden" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] }); }
|
|
3442
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FiltersComponent, selector: "vector-filters", inputs: { fields: "fields" }, outputs: { onSearch: "onSearch", formBuilded: "formBuilded" }, ngImport: i0, template: "<div class=\"grid filter-container\" [ngClass]=\"{ 'display-none': hideFilters }\" [formGroup]=\"formGroup\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label\r\n >{{ field.label }}\r\n <i\r\n *ngIf=\"field.tooltip\"\r\n class=\"fas fa-info-circle mt-1 pl-2 ch\"\r\n pTooltip=\"{{ field.tooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i\r\n ></label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"[fieldTypes.DYNAMIC_DROPDOWN, fieldTypes.DROPDOWN].includes(field.type)\"\r\n [dynamicFilters]=\"field.filterTypes\"\r\n [disabled]=\"field.disabled\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [minLengthToService]=\"field.minLengthToService || 0\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n [initialLoad]=\"field.initiateValue\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n [disabled]=\"field.disabled\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [min]=\"field.dateMin\"\r\n [max]=\"field.dateMax\"\r\n ></vector-calendar-field>\r\n <vector-select-button-field\r\n *ngIf=\"field.type === fieldTypes.SELECT_BUTTON\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options\"\r\n (click)=\"search()\"\r\n [disabled]=\"field.disabled\"\r\n >\r\n </vector-select-button-field>\r\n <div *ngIf=\"field.type === fieldTypes.DATE_RANGE\" class=\"range-date-container\">\r\n <vector-calendar-field\r\n [control]=\"formGroup.get(field.name + '.startDate')\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [min]=\"field.dateMin\"\r\n ></vector-calendar-field>\r\n At\u00E9\r\n <vector-calendar-field\r\n [control]=\"formGroup.get(field.name + '.endDate')\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n [disabled]=\"field.disabled\"\r\n [max]=\"field.dateMax\"\r\n ></vector-calendar-field>\r\n </div>\r\n <vector-multiselect-field\r\n *ngIf=\"field.type === fieldTypes.MULTISELECT\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [options]=\"field.options || []\"\r\n [disabled]=\"field.disabled\"\r\n >\r\n </vector-multiselect-field>\r\n </div>\r\n <div class=\"search-button sm:col-4\">\r\n <vector-button\r\n [label]=\"'app.label.search' | translate\"\r\n (click)=\"search()\"\r\n [disabled]=\"!formGroup.valid\"\r\n ></vector-button>\r\n </div>\r\n</div>\r\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}.filter-container .search-button{flex:1;padding-right:7px;display:flex;justify-content:flex-end}@media (min-width: 768px){.filter-container .search-button{padding-top:36px}}.filter-container .range-date-container{display:flex;align-items:center;gap:10px}.display-none{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: TextFieldComponent, selector: "vector-text-field", inputs: ["isRequired", "label", "maxlength", "isPassword", "numeric", "numericPositive", "numericDotComma", "decimal", "onlyText", "noSpecialCharacters", "alphaNumeric", "alphaNumericAndWhitespace", "mask", "autoClear", "readonly", "rightIcon", "centered", "enableDocumentTypeChoice", "hiddenErrorMessage", "leftLabel", "control", "inputId", "slotChar", "disabled", "pattern"], outputs: ["blurEvent", "inputEvent", "enterKeyPress", "backSpaceKeyPress", "focusEvent", "onDocumentTypeChange"] }, { kind: "component", type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "round", "style", "loading"], outputs: ["onClick"] }, { kind: "component", type: CalendarComponent, selector: "vector-calendar-field", inputs: ["isRequired", "control", "label", "showCalendarOnFocus", "min", "max", "disabledDates", "disabled", "defaultDate", "hiddenErrorMessage", "showTime", "showSeconds", "stepMinute", "stepHour", "stepSecond", "timeOnly", "hourFormat"], outputs: ["onFocus", "onBlur", "onInput", "onSelect"] }, { kind: "component", type: MultiselectFieldComponent, selector: "vector-multiselect-field", inputs: ["pagedSugestion", "isRequired", "control", "label", "options", "filter", "showSelectAllOption", "display", "paged", "disabled", "minLengthToService", "initialLoad", "service", "filterVirtualScrool", "showHeader", "showFlags", "dependencies", "limitScrollPage", "forceSelection", "showFlagsOptions"], outputs: ["onChange", "onClosePanel"] }, { kind: "component", type: DropdownFieldComponent, selector: "vector-dropdown-field", inputs: ["options", "isNgContent", "forceSelection", "isRequired", "control", "label", "service", "paged", "buttonAction", "dependencies", "hiddenErrorMessage", "dynamicFilters", "minLengthToService", "initialLoad", "disabled", "limitScrollPage", "inputId"], outputs: ["onFocus", "onChange"] }, { kind: "component", type: CurrencyFieldComponent, selector: "vector-currency-field", inputs: ["minValue", "maxValue", "placeholder", "numberOfDecimals", "control", "outlined", "rounded", "label", "isBankingField", "inputClassName", "localePrefix", "currencyPrefix", "disabled", "centered", "inputId"], outputs: ["onBlur"] }, { kind: "component", type: SelectButtonFieldComponent, selector: "vector-select-button-field", inputs: ["options", "control", "disabled"] }, { kind: "pipe", type: NotHiddenPipe, name: "notHidden" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] }); }
|
|
3405
3443
|
}
|
|
3406
3444
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FiltersComponent, decorators: [{
|
|
3407
3445
|
type: Component,
|
|
@@ -4017,11 +4055,11 @@ class RadioButtonFieldComponent {
|
|
|
4017
4055
|
return label !== 'app.label.no' ? label : 'Não';
|
|
4018
4056
|
}
|
|
4019
4057
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioButtonFieldComponent, deps: [{ token: i1$2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4020
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RadioButtonFieldComponent, selector: "vector-radio-button-field", inputs: { groupName: "groupName", options: "options", control: "control", layout: "layout", justifySpaceBetween: "justifySpaceBetween", addIcon: "addIcon", disabled: "disabled" }, ngImport: i0, template: "<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n <i\r\n *ngIf=\"addIcon\"\r\n class=\"fas fa-info-circle mt-1 pr-3 pl-2\"\r\n pTooltip=\"{{ option.textTooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i>\r\n </div>\r\n</div>\r\n", styles: [".radio-buttons-container{flex-wrap:wrap;height:100%;width:100%;padding-top:5px}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{display:flex;flex-direction:row;padding-top:5px}.horizontal .radio-buttons-container .radio-button-item{margin:0 5px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5$2.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }] }); }
|
|
4058
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RadioButtonFieldComponent, selector: "vector-radio-button-field", inputs: { groupName: "groupName", options: "options", control: "control", layout: "layout", justifySpaceBetween: "justifySpaceBetween", addIcon: "addIcon", disabled: "disabled" }, ngImport: i0, template: "<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n <i\r\n *ngIf=\"addIcon && option.textTooltip != null\"\r\n class=\"fas fa-info-circle mt-1 pr-3 pl-2\"\r\n pTooltip=\"{{ option.textTooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i>\r\n </div>\r\n</div>\r\n", styles: [".radio-buttons-container{flex-wrap:wrap;height:100%;width:100%;padding-top:5px}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{display:flex;flex-direction:row;padding-top:5px}.horizontal .radio-buttons-container .radio-button-item{margin:0 5px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5$2.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }] }); }
|
|
4021
4059
|
}
|
|
4022
4060
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioButtonFieldComponent, decorators: [{
|
|
4023
4061
|
type: Component,
|
|
4024
|
-
args: [{ selector: 'vector-radio-button-field', template: "<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n <i\r\n *ngIf=\"addIcon\"\r\n class=\"fas fa-info-circle mt-1 pr-3 pl-2\"\r\n pTooltip=\"{{ option.textTooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i>\r\n </div>\r\n</div>\r\n", styles: [".radio-buttons-container{flex-wrap:wrap;height:100%;width:100%;padding-top:5px}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{display:flex;flex-direction:row;padding-top:5px}.horizontal .radio-buttons-container .radio-button-item{margin:0 5px}\n"] }]
|
|
4062
|
+
args: [{ selector: 'vector-radio-button-field', template: "<div\r\n class=\"radio-buttons-container\"\r\n [ngClass]=\"layoutClass\"\r\n [ngStyle]=\"{ 'justify-content': justifySpaceBetween ? 'space-between' : 'flex-start' }\"\r\n>\r\n <div *ngFor=\"let option of options\" class=\"radio-button-item\">\r\n <p-radioButton\r\n [name]=\"groupName\"\r\n [value]=\"option.value\"\r\n [label]=\"option.label\"\r\n [formControl]=\"control\"\r\n ></p-radioButton>\r\n <i\r\n *ngIf=\"addIcon && option.textTooltip != null\"\r\n class=\"fas fa-info-circle mt-1 pr-3 pl-2\"\r\n pTooltip=\"{{ option.textTooltip }}\"\r\n tooltipPosition=\"bottom\"\r\n ></i>\r\n </div>\r\n</div>\r\n", styles: [".radio-buttons-container{flex-wrap:wrap;height:100%;width:100%;padding-top:5px}.radio-buttons-container .radio-button-item{margin:5px;flex:1 100px}.vertical{flex-direction:column;align-items:flex-start}.vertical .radio-button-item{margin-bottom:.5rem}.horizontal{display:flex;flex-direction:row;padding-top:5px}.horizontal .radio-buttons-container .radio-button-item{margin:0 5px}\n"] }]
|
|
4025
4063
|
}], ctorParameters: () => [{ type: i1$2.TranslateService }], propDecorators: { groupName: [{
|
|
4026
4064
|
type: Input
|
|
4027
4065
|
}], options: [{
|