@seniorsistemas/data-seniorx-core 1.12.0 → 1.13.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/esm2022/features/card-list/card/card.component.mjs +46 -12
- package/esm2022/features/card-list/card-list.component.mjs +4 -4
- package/esm2022/features/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/features/combobox/combobox.component.mjs +67 -15
- package/esm2022/features/filters/filters.component.mjs +1 -1
- package/esm2022/features/paginator/paginator.component.mjs +2 -2
- package/esm2022/features/picklist/picklist.component.mjs +82 -24
- package/esm2022/features/radio/radio.component.mjs +3 -4
- package/esm2022/features/scaffold/scaffold.component.mjs +4 -4
- package/esm2022/features/switch/switch.component.mjs +32 -7
- package/esm2022/features/textarea/textarea.component.mjs +117 -0
- package/esm2022/features/textbox/textbox.component.mjs +53 -22
- package/esm2022/public-api.mjs +2 -1
- package/features/card-list/card/card.component.d.ts +8 -1
- package/features/card-list/card-list.component.d.ts +1 -1
- package/features/combobox/combobox.component.d.ts +9 -1
- package/features/picklist/picklist.component.d.ts +7 -0
- package/features/scaffold/scaffold.component.d.ts +1 -1
- package/features/switch/switch.component.d.ts +9 -2
- package/features/textarea/textarea.component.d.ts +21 -0
- package/features/textbox/textbox.component.d.ts +8 -1
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +445 -142
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/styles/sdc-card.scss +7 -5
- package/styles/sdc-global-variables.scss +98 -1
- package/styles.css +91 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, forwardRef, Input, Output, ViewChild,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { AutoCompleteModule } from 'primeng/autocomplete';
|
|
3
3
|
import { MultiSelectModule } from 'primeng/multiselect';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
@@ -6,6 +6,7 @@ import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/fo
|
|
|
6
6
|
import { TranslateModule } from '@ngx-translate/core';
|
|
7
7
|
import { InputsComponent } from '../inputs';
|
|
8
8
|
import { fixComboBoxOverlay } from '../../core/fixes/fix-zindex';
|
|
9
|
+
import { TooltipComponent } from '../tooltip/tooltip.component';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "primeng/autocomplete";
|
|
11
12
|
import * as i2 from "primeng/api";
|
|
@@ -13,20 +14,27 @@ import * as i3 from "primeng/multiselect";
|
|
|
13
14
|
import * as i4 from "@angular/common";
|
|
14
15
|
import * as i5 from "@angular/forms";
|
|
15
16
|
import * as i6 from "@ngx-translate/core";
|
|
17
|
+
const DEFAULT_Z_INDEX = 9999;
|
|
18
|
+
const DEFAULT_MAX_SELECTED_LABELS = 2;
|
|
16
19
|
export class ComboboxComponent extends InputsComponent {
|
|
17
20
|
multiple = false;
|
|
18
21
|
appendTo;
|
|
19
|
-
zIndex =
|
|
22
|
+
zIndex = DEFAULT_Z_INDEX;
|
|
20
23
|
options = [];
|
|
21
24
|
overrideChipMessage;
|
|
22
|
-
maxSelectedLabels =
|
|
25
|
+
maxSelectedLabels = DEFAULT_MAX_SELECTED_LABELS;
|
|
23
26
|
showClear = true;
|
|
27
|
+
infoTooltip = null;
|
|
28
|
+
infoTooltipPosition = 'right';
|
|
29
|
+
infoTooltipEvent = 'both';
|
|
24
30
|
selectedValueEvent = new EventEmitter();
|
|
25
31
|
autocomplete;
|
|
26
32
|
multiselect;
|
|
27
33
|
filteredItems = [];
|
|
28
34
|
value = null;
|
|
29
35
|
displayMode = 'chip';
|
|
36
|
+
_optionsCacheKey;
|
|
37
|
+
_optionsCache = [];
|
|
30
38
|
ngAfterViewInit() {
|
|
31
39
|
if (!this.multiple && this.autocomplete) {
|
|
32
40
|
fixComboBoxOverlay(this.autocomplete, this.zIndex);
|
|
@@ -60,20 +68,50 @@ export class ComboboxComponent extends InputsComponent {
|
|
|
60
68
|
get normalizedOptions() {
|
|
61
69
|
return this.normalizeOptions();
|
|
62
70
|
}
|
|
71
|
+
get selectedSingleOption() {
|
|
72
|
+
if (this.multiple)
|
|
73
|
+
return null;
|
|
74
|
+
return this.resolveOption(this.value);
|
|
75
|
+
}
|
|
63
76
|
get selectedItemsLabel() {
|
|
64
77
|
const tpl = this.overrideChipMessage || '{0} itens selecionados';
|
|
65
78
|
return tpl.replace(/\{count\}/g, '{0}');
|
|
66
79
|
}
|
|
80
|
+
resolveOption(optOrValue) {
|
|
81
|
+
const all = this.normalizeOptions();
|
|
82
|
+
if (optOrValue == null)
|
|
83
|
+
return null;
|
|
84
|
+
if (typeof optOrValue === 'object') {
|
|
85
|
+
const obj = optOrValue;
|
|
86
|
+
if ('text' in obj && 'value' in obj) {
|
|
87
|
+
return obj;
|
|
88
|
+
}
|
|
89
|
+
if ('value' in obj) {
|
|
90
|
+
const v = obj.value;
|
|
91
|
+
return all.find(o => Object.is(o.value, v)) ?? null;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return all.find(o => Object.is(o.value, optOrValue)) ?? null;
|
|
95
|
+
}
|
|
67
96
|
normalizeOptions() {
|
|
68
|
-
if (
|
|
69
|
-
return this.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
97
|
+
if (this.options === this._optionsCacheKey)
|
|
98
|
+
return this._optionsCache;
|
|
99
|
+
let next = [];
|
|
100
|
+
if (Array.isArray(this.options)) {
|
|
101
|
+
next = this.options;
|
|
73
102
|
}
|
|
74
|
-
|
|
75
|
-
|
|
103
|
+
else {
|
|
104
|
+
try {
|
|
105
|
+
const parsed = JSON.parse(this.options || '[]');
|
|
106
|
+
next = Array.isArray(parsed) ? parsed : [];
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
next = [];
|
|
110
|
+
}
|
|
76
111
|
}
|
|
112
|
+
this._optionsCacheKey = this.options;
|
|
113
|
+
this._optionsCache = next;
|
|
114
|
+
return next;
|
|
77
115
|
}
|
|
78
116
|
asArray(val) {
|
|
79
117
|
if (Array.isArray(val))
|
|
@@ -103,23 +141,31 @@ export class ComboboxComponent extends InputsComponent {
|
|
|
103
141
|
this.updateDisplayMode();
|
|
104
142
|
}
|
|
105
143
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ComboboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
106
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ComboboxComponent, isStandalone: true, selector: "sdc-combobox", inputs: { multiple: "multiple", appendTo: "appendTo", zIndex: "zIndex", options: "options", overrideChipMessage: "overrideChipMessage", maxSelectedLabels: "maxSelectedLabels", showClear: "showClear" }, outputs: { selectedValueEvent: "onSelectedItem" }, providers: [
|
|
144
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ComboboxComponent, isStandalone: true, selector: "sdc-combobox", inputs: { multiple: "multiple", appendTo: "appendTo", zIndex: "zIndex", options: "options", overrideChipMessage: "overrideChipMessage", maxSelectedLabels: "maxSelectedLabels", showClear: "showClear", infoTooltip: "infoTooltip", infoTooltipPosition: "infoTooltipPosition", infoTooltipEvent: "infoTooltipEvent" }, outputs: { selectedValueEvent: "onSelectedItem" }, providers: [
|
|
107
145
|
{
|
|
108
146
|
provide: NG_VALUE_ACCESSOR,
|
|
109
147
|
useExisting: forwardRef(() => ComboboxComponent),
|
|
110
148
|
multi: true
|
|
111
149
|
}
|
|
112
|
-
], viewQueries: [{ propertyName: "autocomplete", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "multiselect", first: true, predicate: ["multiselect"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-combobox\">\n <label *ngIf=\"label\" [for]=\"identity.id\">\n <span>{{ label }}</span>\n <span\n class=\"required-field\"\n *ngIf=\"required\"\n [attr.aria-label]=\"'platform.datacore.accessibility.required_field' | translate\"\n >\n •\n </span>\n </label>\n\n <ng-container *ngIf=\"!multiple; else multipleTpl\">\n <p-autocomplete\n #autocomplete\n dropdownIcon=\"fas fa-caret-down\"\n (completeMethod)=\"onSearch($event)\"\n (ngModelChange)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [autoHighlight]=\"true\"\n [disabled]=\"disabled\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [ngClass]=\"getInvalidClass()\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [showClear]=\"showClear\"\n [style]=\"getInputStyle()\"\n [suggestions]=\"filteredItems\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [appendTo]=\"appendTo\"\n [attr.aria-label]=\"label || placeholder || ('platform.datacore.accessibility.dropdown_select' | translate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n <ng-template pTemplate=\"selectedItem\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-autocomplete>\n </ng-container>\n\n <ng-template #multipleTpl>\n <p-multiselect\n chipIcon=\"fas fa-times\"\n #multiselect\n (ngModelChange)=\"onMultiModelChange($event)\"\n [options]=\"normalizedOptions\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [filter]=\"true\"\n [display]=\"displayMode\"\n dropdownIcon=\"fas fa-caret-down\"\n [disabled]=\"disabled\"\n [appendTo]=\"appendTo\"\n [placeholder]=\"placeholder\"\n [showClear]=\"showClear\"\n [styleClass]=\"getInvalidClass()\"\n [ngClass]=\"getInvalidClass()\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [required]=\"required\"\n (onChange)=\"onMultiChange($event)\"\n [(ngModel)]=\"value\"\n [maxSelectedLabels]=\"maxSelectedLabels\"\n [selectedItemsLabel]=\"selectedItemsLabel\"\n [attr.aria-label]=\"label || placeholder || ('platform.datacore.accessibility.dropdown_select' | translate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n <ng-template pTemplate=\"chip\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span class=\"text-sm\">{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-multiselect>\n </ng-template>\n\n <small *ngIf=\"message\" [ngClass]=\"getInvalidMessageClass()\">{{ message }}</small>\n</div>\n", styles: [".sdc-combobox label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:7px;padding-bottom:7px}.sdc-combobox .required-field{margin-left:.25rem}.sdc-combobox ::ng-deep .p-inputtext{border:1px solid var(--sdc-formfield-default-border)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-inputtext:disabled{background-color:var(--sdc-formfield-disabled-bg)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown{border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important;background-color:var(--sdc-formfield-default-bg)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-left:0!important;color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:hover{transition:var(--sdc-button-bg-hover-transition)!important;background-color:var(--sdc-button-bg-hover)!important}.sdc-combobox ::ng-deep .p-autocomplete input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete .p-autocomplete-clear-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect{display:flex!important;align-items:center!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label-container{height:100%!important;display:flex!important;align-items:center!important;overflow:hidden!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label{height:100%!important;display:flex!important;align-items:center!important;padding:0 .75rem!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect-dropdown{height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;border-left:1px solid var(--sdc-formfield-default-border)!important;background-color:var(--sdc-formfield-default-bg)!important;border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger span,.sdc-combobox ::ng-deep .p-multiselect-dropdown span{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect-dropdown:hover{background-color:var(--sdc-button-bg-hover)!important;transition:var(--sdc-button-bg-hover-transition)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger-icon,.sdc-combobox ::ng-deep .p-multiselect-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect-token{margin-block:0!important}.sdc-combobox ::ng-deep .p-chip{background:#f5f5f5!important;border:1px solid var(--sdc-formfield-default-border)!important;height:22px;font-weight:500}.sdc-combobox ::ng-deep .p-multiselect:not(.p-disabled):hover{border-color:var(--sdc-formfield-default-border)!important}.sdc-combobox ::ng-deep .p-multiselect-clear-icon{color:var(--sdc-button-icon-default)!important;padding:10px!important}.sdc-combobox ::ng-deep .p-multiselect input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown{background-color:var(--sdc-formfield-disabled-bg)!important;color:var(--sdc-button-icon-default)!important;opacity:.6;cursor:not-allowed!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown:hover{background-color:var(--sdc-formfield-disabled-bg)!important}\n"], dependencies: [{ kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i1.AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i3.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "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"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
150
|
+
], viewQueries: [{ propertyName: "autocomplete", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "multiselect", first: true, predicate: ["multiselect"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-combobox\">\n <div class=\"sdc-combobox__label-row\" *ngIf=\"label || infoTooltip\">\n <label\n *ngIf=\"label\"\n [for]=\"identity.id\"\n class=\"sdc-combobox__label\"\n [attr.aria-label]=\"\n required ? label + ' ' + ('platform.datacore.accessibility.required_field' | translate) : label\n \"\n >\n <span class=\"sdc-combobox__label-text\">\n {{ label }}\n <span *ngIf=\"required\" class=\"required-field\" aria-hidden=\"true\">*</span>\n </span>\n </label>\n\n <sdc-tooltip\n *ngIf=\"infoTooltip\"\n class=\"sdc-combobox__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-combobox__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n </div>\n\n <ng-container *ngIf=\"!multiple; else multipleTpl\">\n <div class=\"sdc-combobox__single\" [class.sdc-combobox__single--has-icon]=\"selectedSingleOption?.icon\">\n <i\n *ngIf=\"selectedSingleOption?.icon\"\n class=\"sdc-combobox__leading-icon\"\n [ngClass]=\"selectedSingleOption?.icon\"\n aria-hidden=\"true\"\n ></i>\n\n <p-autocomplete\n #autocomplete\n dropdownIcon=\"fas fa-caret-down\"\n (completeMethod)=\"onSearch($event)\"\n (ngModelChange)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [autoHighlight]=\"true\"\n [disabled]=\"disabled\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [ngClass]=\"getInvalidClass()\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [showClear]=\"showClear\"\n [style]=\"getInputStyle()\"\n [suggestions]=\"filteredItems\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [appendTo]=\"appendTo\"\n [attr.aria-label]=\"label || placeholder || ('platform.datacore.accessibility.dropdown_select' | translate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"selectedItem\" let-opt>\n <ng-container *ngIf=\"resolveOption(opt) as item\">\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"item?.icon\" [class]=\"item.icon\"></i>\n <span>{{ item?.text }}</span>\n </div>\n </ng-container>\n </ng-template>\n </p-autocomplete>\n </div>\n </ng-container>\n\n <ng-template #multipleTpl>\n <p-multiselect\n chipIcon=\"fas fa-times\"\n #multiselect\n (ngModelChange)=\"onMultiModelChange($event)\"\n [options]=\"normalizedOptions\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [filter]=\"true\"\n [display]=\"displayMode\"\n dropdownIcon=\"fas fa-caret-down\"\n [disabled]=\"disabled\"\n [appendTo]=\"appendTo\"\n [placeholder]=\"placeholder\"\n [showClear]=\"showClear\"\n [styleClass]=\"getInvalidClass()\"\n [ngClass]=\"getInvalidClass()\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [required]=\"required\"\n (onChange)=\"onMultiChange($event)\"\n [(ngModel)]=\"value\"\n [maxSelectedLabels]=\"maxSelectedLabels\"\n [selectedItemsLabel]=\"selectedItemsLabel\"\n [attr.aria-label]=\"label || placeholder || ('platform.datacore.accessibility.dropdown_select' | translate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"chip\" let-opt>\n <ng-container *ngIf=\"resolveOption(opt) as item\">\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"item?.icon\" [class]=\"item.icon\"></i>\n <span class=\"text-sm\">{{ item?.text }}</span>\n </div>\n </ng-container>\n </ng-template>\n </p-multiselect>\n </ng-template>\n\n <small *ngIf=\"message\" [ngClass]=\"getInvalidMessageClass()\">\n {{ message }}\n </small>\n</div>\n", styles: [".sdc-combobox .sdc-combobox__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-combobox .sdc-combobox__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-combobox .sdc-combobox__label-text{display:inline-flex;align-items:center}.sdc-combobox .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-error-color, #dc3545);font-weight:400}.sdc-combobox .sdc-combobox__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-combobox .sdc-combobox__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-combobox .sdc-combobox__single{position:relative}.sdc-combobox .sdc-combobox__leading-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--sdc-button-icon-default);z-index:1}.sdc-combobox .sdc-combobox__single--has-icon ::ng-deep .p-autocomplete input.p-inputtext{padding-left:2.25rem!important}.sdc-combobox ::ng-deep .p-inputtext{border:1px solid var(--sdc-formfield-default-border)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-inputtext:disabled{background-color:var(--sdc-formfield-disabled-bg)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown{border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important;background-color:var(--sdc-formfield-default-bg)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-left:0!important;color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:hover{transition:var(--sdc-button-bg-hover-transition)!important;background-color:var(--sdc-button-bg-hover)!important}.sdc-combobox ::ng-deep .p-autocomplete input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete .p-autocomplete-clear-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect{display:flex!important;align-items:center!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label-container{height:100%!important;display:flex!important;align-items:center!important;overflow:hidden!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label{height:100%!important;display:flex!important;align-items:center!important;padding:0 .75rem!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect-dropdown{height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;border-left:1px solid var(--sdc-formfield-default-border)!important;background-color:var(--sdc-formfield-default-bg)!important;border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger span,.sdc-combobox ::ng-deep .p-multiselect-dropdown span{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect-dropdown:hover{background-color:var(--sdc-button-bg-hover)!important;transition:var(--sdc-button-bg-hover-transition)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger-icon,.sdc-combobox ::ng-deep .p-multiselect-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect-token{margin-block:0!important}.sdc-combobox ::ng-deep .p-chip{background:#f5f5f5!important;border:1px solid var(--sdc-formfield-default-border)!important;height:22px;font-weight:500}.sdc-combobox ::ng-deep .p-multiselect:not(.p-disabled):hover{border-color:var(--sdc-formfield-default-border)!important}.sdc-combobox ::ng-deep .p-multiselect-clear-icon{color:var(--sdc-button-icon-default)!important;padding:10px!important}.sdc-combobox ::ng-deep .p-multiselect input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown{background-color:var(--sdc-formfield-disabled-bg)!important;color:var(--sdc-button-icon-default)!important;opacity:.6;cursor:not-allowed!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown:hover{background-color:var(--sdc-formfield-disabled-bg)!important}\n"], dependencies: [{ kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i1.AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i3.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "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"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
113
151
|
}
|
|
114
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ComboboxComponent, decorators: [{
|
|
115
153
|
type: Component,
|
|
116
|
-
args: [{ imports: [
|
|
154
|
+
args: [{ imports: [
|
|
155
|
+
AutoCompleteModule,
|
|
156
|
+
MultiSelectModule,
|
|
157
|
+
CommonModule,
|
|
158
|
+
FormsModule,
|
|
159
|
+
ReactiveFormsModule,
|
|
160
|
+
TranslateModule,
|
|
161
|
+
TooltipComponent
|
|
162
|
+
], standalone: true, selector: 'sdc-combobox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, providers: [
|
|
117
163
|
{
|
|
118
164
|
provide: NG_VALUE_ACCESSOR,
|
|
119
165
|
useExisting: forwardRef(() => ComboboxComponent),
|
|
120
166
|
multi: true
|
|
121
167
|
}
|
|
122
|
-
], template: "<div class=\"sdc-combobox\">\n <label *ngIf=\"label\" [for]=\"identity.id\">\n <span>{{ label }}</span>\n <span\n class=\"required-field\"\n *ngIf=\"required\"\n [attr.aria-label]=\"'platform.datacore.accessibility.required_field' | translate\"\n >\n •\n </span>\n </label>\n\n <ng-container *ngIf=\"!multiple; else multipleTpl\">\n <p-autocomplete\n #autocomplete\n dropdownIcon=\"fas fa-caret-down\"\n (completeMethod)=\"onSearch($event)\"\n (ngModelChange)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [autoHighlight]=\"true\"\n [disabled]=\"disabled\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [ngClass]=\"getInvalidClass()\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [showClear]=\"showClear\"\n [style]=\"getInputStyle()\"\n [suggestions]=\"filteredItems\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [appendTo]=\"appendTo\"\n [attr.aria-label]=\"label || placeholder || ('platform.datacore.accessibility.dropdown_select' | translate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n <ng-template pTemplate=\"selectedItem\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-autocomplete>\n </ng-container>\n\n <ng-template #multipleTpl>\n <p-multiselect\n chipIcon=\"fas fa-times\"\n #multiselect\n (ngModelChange)=\"onMultiModelChange($event)\"\n [options]=\"normalizedOptions\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [filter]=\"true\"\n [display]=\"displayMode\"\n dropdownIcon=\"fas fa-caret-down\"\n [disabled]=\"disabled\"\n [appendTo]=\"appendTo\"\n [placeholder]=\"placeholder\"\n [showClear]=\"showClear\"\n [styleClass]=\"getInvalidClass()\"\n [ngClass]=\"getInvalidClass()\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [required]=\"required\"\n (onChange)=\"onMultiChange($event)\"\n [(ngModel)]=\"value\"\n [maxSelectedLabels]=\"maxSelectedLabels\"\n [selectedItemsLabel]=\"selectedItemsLabel\"\n [attr.aria-label]=\"label || placeholder || ('platform.datacore.accessibility.dropdown_select' | translate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n <ng-template pTemplate=\"chip\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span class=\"text-sm\">{{ opt?.text }}</span>\n </div>\n </ng-template>\n </p-multiselect>\n </ng-template>\n\n <small *ngIf=\"message\" [ngClass]=\"getInvalidMessageClass()\">{{ message }}</small>\n</div>\n", styles: [".sdc-combobox label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:7px;padding-bottom:7px}.sdc-combobox .required-field{margin-left:.25rem}.sdc-combobox ::ng-deep .p-inputtext{border:1px solid var(--sdc-formfield-default-border)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-inputtext:disabled{background-color:var(--sdc-formfield-disabled-bg)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown{border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important;background-color:var(--sdc-formfield-default-bg)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-left:0!important;color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:hover{transition:var(--sdc-button-bg-hover-transition)!important;background-color:var(--sdc-button-bg-hover)!important}.sdc-combobox ::ng-deep .p-autocomplete input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete .p-autocomplete-clear-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect{display:flex!important;align-items:center!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label-container{height:100%!important;display:flex!important;align-items:center!important;overflow:hidden!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label{height:100%!important;display:flex!important;align-items:center!important;padding:0 .75rem!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect-dropdown{height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;border-left:1px solid var(--sdc-formfield-default-border)!important;background-color:var(--sdc-formfield-default-bg)!important;border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger span,.sdc-combobox ::ng-deep .p-multiselect-dropdown span{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect-dropdown:hover{background-color:var(--sdc-button-bg-hover)!important;transition:var(--sdc-button-bg-hover-transition)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger-icon,.sdc-combobox ::ng-deep .p-multiselect-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect-token{margin-block:0!important}.sdc-combobox ::ng-deep .p-chip{background:#f5f5f5!important;border:1px solid var(--sdc-formfield-default-border)!important;height:22px;font-weight:500}.sdc-combobox ::ng-deep .p-multiselect:not(.p-disabled):hover{border-color:var(--sdc-formfield-default-border)!important}.sdc-combobox ::ng-deep .p-multiselect-clear-icon{color:var(--sdc-button-icon-default)!important;padding:10px!important}.sdc-combobox ::ng-deep .p-multiselect input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown{background-color:var(--sdc-formfield-disabled-bg)!important;color:var(--sdc-button-icon-default)!important;opacity:.6;cursor:not-allowed!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown:hover{background-color:var(--sdc-formfield-disabled-bg)!important}\n"] }]
|
|
168
|
+
], template: "<div class=\"sdc-combobox\">\n <div class=\"sdc-combobox__label-row\" *ngIf=\"label || infoTooltip\">\n <label\n *ngIf=\"label\"\n [for]=\"identity.id\"\n class=\"sdc-combobox__label\"\n [attr.aria-label]=\"\n required ? label + ' ' + ('platform.datacore.accessibility.required_field' | translate) : label\n \"\n >\n <span class=\"sdc-combobox__label-text\">\n {{ label }}\n <span *ngIf=\"required\" class=\"required-field\" aria-hidden=\"true\">*</span>\n </span>\n </label>\n\n <sdc-tooltip\n *ngIf=\"infoTooltip\"\n class=\"sdc-combobox__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-combobox__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n </div>\n\n <ng-container *ngIf=\"!multiple; else multipleTpl\">\n <div class=\"sdc-combobox__single\" [class.sdc-combobox__single--has-icon]=\"selectedSingleOption?.icon\">\n <i\n *ngIf=\"selectedSingleOption?.icon\"\n class=\"sdc-combobox__leading-icon\"\n [ngClass]=\"selectedSingleOption?.icon\"\n aria-hidden=\"true\"\n ></i>\n\n <p-autocomplete\n #autocomplete\n dropdownIcon=\"fas fa-caret-down\"\n (completeMethod)=\"onSearch($event)\"\n (ngModelChange)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [autoHighlight]=\"true\"\n [disabled]=\"disabled\"\n [dropdown]=\"true\"\n [forceSelection]=\"true\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [ngClass]=\"getInvalidClass()\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [showClear]=\"showClear\"\n [style]=\"getInputStyle()\"\n [suggestions]=\"filteredItems\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [appendTo]=\"appendTo\"\n [attr.aria-label]=\"label || placeholder || ('platform.datacore.accessibility.dropdown_select' | translate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"selectedItem\" let-opt>\n <ng-container *ngIf=\"resolveOption(opt) as item\">\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"item?.icon\" [class]=\"item.icon\"></i>\n <span>{{ item?.text }}</span>\n </div>\n </ng-container>\n </ng-template>\n </p-autocomplete>\n </div>\n </ng-container>\n\n <ng-template #multipleTpl>\n <p-multiselect\n chipIcon=\"fas fa-times\"\n #multiselect\n (ngModelChange)=\"onMultiModelChange($event)\"\n [options]=\"normalizedOptions\"\n optionLabel=\"text\"\n optionValue=\"value\"\n [filter]=\"true\"\n [display]=\"displayMode\"\n dropdownIcon=\"fas fa-caret-down\"\n [disabled]=\"disabled\"\n [appendTo]=\"appendTo\"\n [placeholder]=\"placeholder\"\n [showClear]=\"showClear\"\n [styleClass]=\"getInvalidClass()\"\n [ngClass]=\"getInvalidClass()\"\n [id]=\"identity.id\"\n [name]=\"identity.name ?? ''\"\n [required]=\"required\"\n (onChange)=\"onMultiChange($event)\"\n [(ngModel)]=\"value\"\n [maxSelectedLabels]=\"maxSelectedLabels\"\n [selectedItemsLabel]=\"selectedItemsLabel\"\n [attr.aria-label]=\"label || placeholder || ('platform.datacore.accessibility.dropdown_select' | translate)\"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n >\n <ng-template pTemplate=\"item\" let-opt>\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"opt?.icon\" [class]=\"opt.icon\"></i>\n <span>{{ opt?.text }}</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"chip\" let-opt>\n <ng-container *ngIf=\"resolveOption(opt) as item\">\n <div class=\"flex align-items-center gap-2\">\n <i *ngIf=\"item?.icon\" [class]=\"item.icon\"></i>\n <span class=\"text-sm\">{{ item?.text }}</span>\n </div>\n </ng-container>\n </ng-template>\n </p-multiselect>\n </ng-template>\n\n <small *ngIf=\"message\" [ngClass]=\"getInvalidMessageClass()\">\n {{ message }}\n </small>\n</div>\n", styles: [".sdc-combobox .sdc-combobox__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-combobox .sdc-combobox__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-combobox .sdc-combobox__label-text{display:inline-flex;align-items:center}.sdc-combobox .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-error-color, #dc3545);font-weight:400}.sdc-combobox .sdc-combobox__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-combobox .sdc-combobox__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-combobox .sdc-combobox__single{position:relative}.sdc-combobox .sdc-combobox__leading-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--sdc-button-icon-default);z-index:1}.sdc-combobox .sdc-combobox__single--has-icon ::ng-deep .p-autocomplete input.p-inputtext{padding-left:2.25rem!important}.sdc-combobox ::ng-deep .p-inputtext{border:1px solid var(--sdc-formfield-default-border)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-inputtext:disabled{background-color:var(--sdc-formfield-disabled-bg)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown{border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important;background-color:var(--sdc-formfield-default-bg)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-left:0!important;color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:hover{transition:var(--sdc-button-bg-hover-transition)!important;background-color:var(--sdc-button-bg-hover)!important}.sdc-combobox ::ng-deep .p-autocomplete input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete .p-autocomplete-clear-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect{display:flex!important;align-items:center!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;max-height:var(--sdc-formfield-default-height)!important;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label-container{height:100%!important;display:flex!important;align-items:center!important;overflow:hidden!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-label{height:100%!important;display:flex!important;align-items:center!important;padding:0 .75rem!important;line-height:var(--sdc-formfield-default-line-height)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect-dropdown{height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;border-left:1px solid var(--sdc-formfield-default-border)!important;background-color:var(--sdc-formfield-default-bg)!important;border-start-end-radius:var(--sdc-formfield-border-radius)!important;border-end-end-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger span,.sdc-combobox ::ng-deep .p-multiselect-dropdown span{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect-dropdown:hover{background-color:var(--sdc-button-bg-hover)!important;transition:var(--sdc-button-bg-hover-transition)!important}.sdc-combobox ::ng-deep .p-multiselect .p-multiselect-trigger-icon,.sdc-combobox ::ng-deep .p-multiselect-dropdown .p-button-icon{color:var(--sdc-button-icon-default)!important}.sdc-combobox ::ng-deep .p-multiselect-token{margin-block:0!important}.sdc-combobox ::ng-deep .p-chip{background:#f5f5f5!important;border:1px solid var(--sdc-formfield-default-border)!important;height:22px;font-weight:500}.sdc-combobox ::ng-deep .p-multiselect:not(.p-disabled):hover{border-color:var(--sdc-formfield-default-border)!important}.sdc-combobox ::ng-deep .p-multiselect-clear-icon{color:var(--sdc-button-icon-default)!important;padding:10px!important}.sdc-combobox ::ng-deep .p-multiselect input{border-start-start-radius:var(--sdc-formfield-border-radius)!important;border-end-start-radius:var(--sdc-formfield-border-radius)!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown{background-color:var(--sdc-formfield-disabled-bg)!important;color:var(--sdc-button-icon-default)!important;opacity:.6;cursor:not-allowed!important}.sdc-combobox ::ng-deep .p-autocomplete-dropdown:disabled:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-trigger:hover,.sdc-combobox ::ng-deep .p-multiselect.p-disabled .p-multiselect-dropdown:hover{background-color:var(--sdc-formfield-disabled-bg)!important}\n"] }]
|
|
123
169
|
}], propDecorators: { multiple: [{
|
|
124
170
|
type: Input
|
|
125
171
|
}], appendTo: [{
|
|
@@ -134,6 +180,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
134
180
|
type: Input
|
|
135
181
|
}], showClear: [{
|
|
136
182
|
type: Input
|
|
183
|
+
}], infoTooltip: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], infoTooltipPosition: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}], infoTooltipEvent: [{
|
|
188
|
+
type: Input
|
|
137
189
|
}], selectedValueEvent: [{
|
|
138
190
|
type: Output,
|
|
139
191
|
args: ['onSelectedItem']
|
|
@@ -144,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
144
196
|
type: ViewChild,
|
|
145
197
|
args: ['multiselect']
|
|
146
198
|
}] } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBNkIsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQWtCakUsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGVBQTRDO0lBQ3hFLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsUUFBUSxDQUFxQjtJQUM3QixNQUFNLEdBQVcsSUFBSSxDQUFDO0lBQ3RCLE9BQU8sR0FBcUIsRUFBRSxDQUFDO0lBQy9CLG1CQUFtQixDQUFVO0lBQzdCLGlCQUFpQixHQUFXLENBQUMsQ0FBQztJQUM5QixTQUFTLEdBQVksSUFBSSxDQUFDO0lBRVQsa0JBQWtCLEdBQUcs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RUFBRSxtQkFBbUIsRUFBRSxlQUFlLENBQUMsY0FDckcsSUFBSSxZQUNOLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUSxhQUM5Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBR1EsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVvQixrQkFBa0I7c0JBQTNDLE1BQU07dUJBQUMsZ0JBQWdCO2dCQUVHLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDQyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVNb2R1bGUsIEF1dG9Db21wbGV0ZUNvbXBsZXRlRXZlbnQgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvbXVsdGlzZWxlY3QnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXRzJztcbmltcG9ydCB7IE9wdGlvbkl0ZW0sIE9wdGlvbnMsIE9wdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBmaXhDb21ib0JveE92ZXJsYXkgfSBmcm9tICcuLi8uLi9jb3JlL2ZpeGVzL2ZpeC16aW5kZXgnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW0F1dG9Db21wbGV0ZU1vZHVsZSwgTXVsdGlTZWxlY3RNb2R1bGUsIENvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWNvbWJvYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbWJvYm94LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbWJvYm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94Q29tcG9uZW50IGV4dGVuZHMgSW5wdXRzQ29tcG9uZW50PE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgYXBwZW5kVG86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgekluZGV4OiBudW1iZXIgPSA5OTk5O1xuICBASW5wdXQoKSBvcHRpb25zOiBPcHRpb25zIHwgc3RyaW5nID0gW107XG4gIEBJbnB1dCgpIG92ZXJyaWRlQ2hpcE1lc3NhZ2U/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heFNlbGVjdGVkTGFiZWxzOiBudW1iZXIgPSAyO1xuICBASW5wdXQoKSBzaG93Q2xlYXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBPdXRwdXQoJ29uU2VsZWN0ZWRJdGVtJykgc2VsZWN0ZWRWYWx1ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxPcHRpb25WYWx1ZSB8IE9wdGlvblZhbHVlW10+KCk7XG5cbiAgQFZpZXdDaGlsZCgnYXV0b2NvbXBsZXRlJykgYXV0b2NvbXBsZXRlOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ211bHRpc2VsZWN0JykgbXVsdGlzZWxlY3Q6IGFueTtcblxuICBwdWJsaWMgZmlsdGVyZWRJdGVtczogT3B0aW9uSXRlbVtdID0gW107XG4gIHB1YmxpYyBvdmVycmlkZSB2YWx1ZTogT3B0aW9uVmFsdWUgfCBPcHRpb25WYWx1ZVtdIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBkaXNwbGF5TW9kZTogJ2NoaXAnIHwgJ2NvbW1hJyA9ICdjaGlwJztcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHRoaXMuYXV0b2NvbXBsZXRlKSB7XG4gICAgICBmaXhDb21ib0JveE92ZXJsYXkodGhpcy5hdXRvY29tcGxldGUsIHRoaXMuekluZGV4KTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5TW9kZSgpO1xuICB9XG5cbiAgb25TZWFyY2goZXZlbnQ6IEF1dG9Db21wbGV0ZUNvbXBsZXRlRXZlbnQpIHtcbiAgICBjb25zdCBhbGwgPSB0aGlzLm5vcm1hbGl6ZU9wdGlvbnMoKTtcbiAgICBjb25zdCBxID0gKGV2ZW50Py5xdWVyeSA/PyAnJykudG9TdHJpbmcoKS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzb3VyY2UgPSAhcSA/IGFsbCA6IGFsbC5maWx0ZXIoaSA9PiAoaT8udGV4dCA/PyAnJykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSk7XG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gc291cmNlLnNsaWNlKCk7XG4gICAgdGhpcy5pbnZhbGlkID0gdGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmFzQXJyYXkodGhpcy52YWx1ZSkubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgb25NdWx0aUNoYW5nZShlOiB7IHZhbHVlOiBPcHRpb25WYWx1ZVtdIH0pIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUZyb21WYWx1ZShlPy52YWx1ZSA/PyBbXSk7XG4gIH1cblxuICBvdmVycmlkZSBvbklucHV0KGV2ZW50OiBFdmVudCB8IE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXSk6IHZvaWQge1xuICAgIGNvbnN0IHZhbCA9IEFycmF5LmlzQXJyYXkoZXZlbnQpID8gKGV2ZW50IGFzIE9wdGlvblZhbHVlW10pIDogKGV2ZW50IGFzIE9wdGlvblZhbHVlIHwgbnVsbCk7XG4gICAgdGhpcy5wcm9wYWdhdGVGcm9tVmFsdWUodmFsIGFzIGFueSk7XG4gIH1cblxuICBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IFtdIDogbnVsbDtcbiAgICB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVFdmVudC5lbWl0KHRoaXMudmFsdWUgYXMgYW55KTtcbiAgICBzdXBlci5vbklucHV0KHsgdGFyZ2V0OiB7IHZhbHVlOiB0aGlzLnZhbHVlIH0gfSBhcyBhbnkpO1xuICAgIHRoaXMudXBkYXRlRGlzcGxheU1vZGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbk11bHRpTW9kZWxDaGFuZ2UodmFsOiBPcHRpb25WYWx1ZVtdIHwgbnVsbCkge1xuICAgIHRoaXMucHJvcGFnYXRlRnJvbVZhbHVlKEFycmF5LmlzQXJyYXkodmFsKSA/IHZhbCA6IFtdKTtcbiAgfVxuXG4gIGdldCBub3JtYWxpemVkT3B0aW9ucygpOiBPcHRpb25JdGVtW10ge1xuICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZU9wdGlvbnMoKTtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZEl0ZW1zTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cGwgPSB0aGlzLm92ZXJyaWRlQ2hpcE1lc3NhZ2UgfHwgJ3swfSBpdGVucyBzZWxlY2lvbmFkb3MnO1xuICAgIHJldHVybiB0cGwucmVwbGFjZSgvXFx7Y291bnRcXH0vZywgJ3swfScpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVPcHRpb25zKCk6IE9wdGlvbkl0ZW1bXSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5vcHRpb25zKSkgcmV0dXJuIHRoaXMub3B0aW9ucyBhcyBPcHRpb25JdGVtW107XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UodGhpcy5vcHRpb25zIHx8ICdbXScpO1xuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocGFyc2VkKSA/IChwYXJzZWQgYXMgT3B0aW9uSXRlbVtdKSA6IFtdO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXNBcnJheSh2YWw6IE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXSB8IG51bGwgfCB1bmRlZmluZWQpOiBPcHRpb25WYWx1ZVtdIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gdmFsIGFzIE9wdGlvblZhbHVlW107XG4gICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFtdO1xuICAgIHJldHVybiBbdmFsIGFzIE9wdGlvblZhbHVlXTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0ZWRDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gdGhpcy5hc0FycmF5KHRoaXMudmFsdWUpLmxlbmd0aCA6IHRoaXMudmFsdWUgIT0gbnVsbCA/IDEgOiAwO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEaXNwbGF5TW9kZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuZGlzcGxheU1vZGUgPSAnY29tbWEnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb3VudCA9IHRoaXMuc2VsZWN0ZWRDb3VudCgpO1xuICAgIHRoaXMuZGlzcGxheU1vZGUgPSBjb3VudCA+IHRoaXMubWF4U2VsZWN0ZWRMYWJlbHMgPyAnY29tbWEnIDogJ2NoaXAnO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9wYWdhdGVGcm9tVmFsdWUodmFsOiBPcHRpb25WYWx1ZSB8IE9wdGlvblZhbHVlW10gfCBudWxsKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbCBhcyBhbnk7XG4gICAgaWYgKHRoaXMuYXNBcnJheSh0aGlzLnZhbHVlKS5sZW5ndGggPiAwKSB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVFdmVudC5lbWl0KHRoaXMudmFsdWUgPz8gKHRoaXMubXVsdGlwbGUgPyBbXSA6IG51bGwpKTtcbiAgICBjb25zdCBzeW50aGV0aWNFdnQgPSB7IHRhcmdldDogeyB2YWx1ZTogdGhpcy52YWx1ZSB9IH0gYXMgdW5rbm93biBhcyBFdmVudDtcbiAgICBzdXBlci5vbklucHV0KHN5bnRoZXRpY0V2dCk7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5TW9kZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLWNvbWJvYm94XCI+XG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgW2Zvcl09XCJpZGVudGl0eS5pZFwiPlxuICAgIDxzcGFuPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cInJlcXVpcmVkLWZpZWxkXCJcbiAgICAgICpuZ0lmPVwicmVxdWlyZWRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGVcIlxuICAgID5cbiAgICAgICZidWxsO1xuICAgIDwvc3Bhbj5cbiAgPC9sYWJlbD5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW11bHRpcGxlOyBlbHNlIG11bHRpcGxlVHBsXCI+XG4gICAgPHAtYXV0b2NvbXBsZXRlXG4gICAgICAjYXV0b2NvbXBsZXRlXG4gICAgICBkcm9wZG93bkljb249XCJmYXMgZmEtY2FyZXQtZG93blwiXG4gICAgICAoY29tcGxldGVNZXRob2QpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbklucHV0KCRldmVudClcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICBbYXV0b0hpZ2hsaWdodF09XCJ0cnVlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbZHJvcGRvd25dPVwidHJ1ZVwiXG4gICAgICBbZm9yY2VTZWxlY3Rpb25dPVwidHJ1ZVwiXG4gICAgICBbaWRdPVwiaWRlbnRpdHkuaWRcIlxuICAgICAgW25hbWVdPVwiaWRlbnRpdHkubmFtZSA/PyAnJ1wiXG4gICAgICBbbmdDbGFzc109XCJnZXRJbnZhbGlkQ2xhc3MoKVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtzaG93Q2xlYXJdPVwic2hvd0NsZWFyXCJcbiAgICAgIFtzdHlsZV09XCJnZXRJbnB1dFN0eWxlKClcIlxuICAgICAgW3N1Z2dlc3Rpb25zXT1cImZpbHRlcmVkSXRlbXNcIlxuICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcbiAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIlxuICAgICAgW2FwcGVuZFRvXT1cImFwcGVuZFRvXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWwgfHwgcGxhY2Vob2xkZXIgfHwgKCdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmRyb3Bkb3duX3NlbGVjdCcgfCB0cmFuc2xhdGUpXCJcbiAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpdGVtXCIgbGV0LW9wdD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgPGkgKm5nSWY9XCJvcHQ/Lmljb25cIiBbY2xhc3NdPVwib3B0Lmljb25cIj48L2k+XG4gICAgICAgICAgPHNwYW4+e3sgb3B0Py50ZXh0IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwic2VsZWN0ZWRJdGVtXCIgbGV0LW9wdD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgPGkgKm5nSWY9XCJvcHQ/Lmljb25cIiBbY2xhc3NdPVwib3B0Lmljb25cIj48L2k+XG4gICAgICAgICAgPHNwYW4+e3sgb3B0Py50ZXh0IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLWF1dG9jb21wbGV0ZT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlICNtdWx0aXBsZVRwbD5cbiAgICA8cC1tdWx0aXNlbGVjdFxuICAgICAgY2hpcEljb249XCJmYXMgZmEtdGltZXNcIlxuICAgICAgI211bHRpc2VsZWN0XG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk11bHRpTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbb3B0aW9uc109XCJub3JtYWxpemVkT3B0aW9uc1wiXG4gICAgICBvcHRpb25MYWJlbD1cInRleHRcIlxuICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICBbZmlsdGVyXT1cInRydWVcIlxuICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheU1vZGVcIlxuICAgICAgZHJvcGRvd25JY29uPVwiZmFzIGZhLWNhcmV0LWRvd25cIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3Nob3dDbGVhcl09XCJzaG93Q2xlYXJcIlxuICAgICAgW3N0eWxlQ2xhc3NdPVwiZ2V0SW52YWxpZENsYXNzKClcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZENsYXNzKClcIlxuICAgICAgW2lkXT1cImlkZW50aXR5LmlkXCJcbiAgICAgIFtuYW1lXT1cImlkZW50aXR5Lm5hbWUgPz8gJydcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIChvbkNoYW5nZSk9XCJvbk11bHRpQ2hhbmdlKCRldmVudClcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICBbbWF4U2VsZWN0ZWRMYWJlbHNdPVwibWF4U2VsZWN0ZWRMYWJlbHNcIlxuICAgICAgW3NlbGVjdGVkSXRlbXNMYWJlbF09XCJzZWxlY3RlZEl0ZW1zTGFiZWxcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCB8fCBwbGFjZWhvbGRlciB8fCAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuZHJvcGRvd25fc2VsZWN0JyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtb3B0PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICA8aSAqbmdJZj1cIm9wdD8uaWNvblwiIFtjbGFzc109XCJvcHQuaWNvblwiPjwvaT5cbiAgICAgICAgICA8c3Bhbj57eyBvcHQ/LnRleHQgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjaGlwXCIgbGV0LW9wdD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgPGkgKm5nSWY9XCJvcHQ/Lmljb25cIiBbY2xhc3NdPVwib3B0Lmljb25cIj48L2k+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCI+e3sgb3B0Py50ZXh0IH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLW11bHRpc2VsZWN0PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxzbWFsbCAqbmdJZj1cIm1lc3NhZ2VcIiBbbmdDbGFzc109XCJnZXRJbnZhbGlkTWVzc2FnZUNsYXNzKClcIj57eyBtZXNzYWdlIH19PC9zbWFsbD5cbjwvZGl2PlxuIl19
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBNkIsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7OztBQUdoRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFDN0IsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLENBQUM7QUEwQnRDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUE0QztJQUN4RSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFFBQVEsQ0FBcUI7SUFDN0IsTUFBTSxHQUFHLGVBQWUsQ0FBQztJQUN6QixPQUFPLEdBQXFCLEVBQUUsQ0FBQztJQUMvQixtQkFBbUIsQ0FBVTtJQUM3QixpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQztJQUNoRCxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBRWpCLFdBQVcsR0FBa0IsSUFBSSxDQUFDO0lBQ2xDLG1CQUFtQixHQUFvQixPQUFPLENBQUM7SUFDL0MsZ0JBQWdCLEdBQWlCLE1BQU0sQ0FBQztJQUV2QixrQkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztJQUVwRSxZQUFZLENBQU07SUFDbkIsV0FBVyxDQUFNO0lBRXBDLGFBQWEsR0FBaUIsRUFBRSxDQUFDO0lBQ3hCLEtBQUssR0FBdUMsSUFBSSxDQUFDO0lBQzFELFdBQVcsR0FBcUIsTUFBTSxDQUFDO0lBRXRDLGdCQUFnQixDQUFVO0lBQzFCLGFBQWEsR0FBaUIsRUFBRSxDQUFDO0lBRXpDLGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBZ0M7UUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDcEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9ELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsYUFBYSxDQUFDLENBQTJCO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUSxPQUFPLENBQUMsS0FBMEM7UUFDekQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUUsS0FBdUIsQ0FBQyxDQUFDLENBQUUsS0FBNEIsQ0FBQztRQUM1RixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQVksQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFTLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRVMsa0JBQWtCLENBQUMsR0FBeUI7UUFDcEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLElBQUksd0JBQXdCLENBQUM7UUFDakUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQW1CO1FBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3BDLElBQUksVUFBVSxJQUFJLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVwQyxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ25DLE1BQU0sR0FBRyxHQUFHLFVBQWlCLENBQUM7WUFFOUIsSUFBSSxNQUFNLElBQUksR0FBRyxJQUFJLE9BQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxHQUFpQixDQUFDO1lBQzNCLENBQUM7WUFFRCxJQUFJLE9BQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDcEIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ3RELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQWlCLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN0RSxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRXRFLElBQUksSUFBSSxHQUFpQixFQUFFLENBQUM7UUFFNUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBdUIsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQztnQkFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUM7Z0JBQ2hELElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBRSxNQUF1QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0QsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxPQUFPLENBQUMsR0FBbUQ7UUFDakUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sR0FBb0IsQ0FBQztRQUNwRCxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNqRCxPQUFPLENBQUMsR0FBa0IsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxhQUFhO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1lBQzNCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkUsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEdBQXVDO1FBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBVSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUM5RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEUsTUFBTSxZQUFZLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFzQixDQUFDO1FBQzNFLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQzt3R0EvSVUsaUJBQWlCOzRGQUFqQixpQkFBaUIsc2FBUmpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDaEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDRQQy9DSCxtbkpBbUlBLHd0TER4R0ksa0JBQWtCLDIyQ0FDbEIsaUJBQWlCLGc1Q0FDakIsWUFBWSxnT0FDWixXQUFXLDJqQkFDWCxtQkFBbUIsOEJBQ25CLGVBQWUsNEZBQ2YsZ0JBQWdCOzs0RkFnQlAsaUJBQWlCO2tCQXhCN0IsU0FBUzs4QkFDQzt3QkFDUCxrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ2pCLGNBQ1csSUFBSSxZQUNOLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUSxhQUM5Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBR1EsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFb0Isa0JBQWtCO3NCQUEzQyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFFRyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0MsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlTW9kdWxlLCBBdXRvQ29tcGxldGVDb21wbGV0ZUV2ZW50IH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL211bHRpc2VsZWN0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElucHV0c0NvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0cyc7XG5pbXBvcnQgeyBPcHRpb25JdGVtLCBPcHRpb25zLCBPcHRpb25WYWx1ZSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2VtYW50aWNzLnR5cGUnO1xuaW1wb3J0IHsgZml4Q29tYm9Cb3hPdmVybGF5IH0gZnJvbSAnLi4vLi4vY29yZS9maXhlcy9maXgtemluZGV4JztcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHsgVG9vbHRpcEV2ZW50LCBUb29sdGlwUG9zaXRpb24gfSBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcblxuY29uc3QgREVGQVVMVF9aX0lOREVYID0gOTk5OTtcbmNvbnN0IERFRkFVTFRfTUFYX1NFTEVDVEVEX0xBQkVMUyA9IDI7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgQXV0b0NvbXBsZXRlTW9kdWxlLFxuICAgIE11bHRpU2VsZWN0TW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBUb29sdGlwQ29tcG9uZW50XG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWNvbWJvYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbWJvYm94LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbWJvYm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94Q29tcG9uZW50IGV4dGVuZHMgSW5wdXRzQ29tcG9uZW50PE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgYXBwZW5kVG86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgekluZGV4ID0gREVGQVVMVF9aX0lOREVYO1xuICBASW5wdXQoKSBvcHRpb25zOiBPcHRpb25zIHwgc3RyaW5nID0gW107XG4gIEBJbnB1dCgpIG92ZXJyaWRlQ2hpcE1lc3NhZ2U/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heFNlbGVjdGVkTGFiZWxzID0gREVGQVVMVF9NQVhfU0VMRUNURURfTEFCRUxTO1xuICBASW5wdXQoKSBzaG93Q2xlYXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBQb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXBFdmVudDogVG9vbHRpcEV2ZW50ID0gJ2JvdGgnO1xuXG4gIEBPdXRwdXQoJ29uU2VsZWN0ZWRJdGVtJykgc2VsZWN0ZWRWYWx1ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxPcHRpb25WYWx1ZSB8IE9wdGlvblZhbHVlW10+KCk7XG5cbiAgQFZpZXdDaGlsZCgnYXV0b2NvbXBsZXRlJykgYXV0b2NvbXBsZXRlOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ211bHRpc2VsZWN0JykgbXVsdGlzZWxlY3Q6IGFueTtcblxuICBwdWJsaWMgZmlsdGVyZWRJdGVtczogT3B0aW9uSXRlbVtdID0gW107XG4gIHB1YmxpYyBvdmVycmlkZSB2YWx1ZTogT3B0aW9uVmFsdWUgfCBPcHRpb25WYWx1ZVtdIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyBkaXNwbGF5TW9kZTogJ2NoaXAnIHwgJ2NvbW1hJyA9ICdjaGlwJztcblxuICBwcml2YXRlIF9vcHRpb25zQ2FjaGVLZXk6IHVua25vd247XG4gIHByaXZhdGUgX29wdGlvbnNDYWNoZTogT3B0aW9uSXRlbVtdID0gW107XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiB0aGlzLmF1dG9jb21wbGV0ZSkge1xuICAgICAgZml4Q29tYm9Cb3hPdmVybGF5KHRoaXMuYXV0b2NvbXBsZXRlLCB0aGlzLnpJbmRleCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlRGlzcGxheU1vZGUoKTtcbiAgfVxuXG4gIG9uU2VhcmNoKGV2ZW50OiBBdXRvQ29tcGxldGVDb21wbGV0ZUV2ZW50KSB7XG4gICAgY29uc3QgYWxsID0gdGhpcy5ub3JtYWxpemVPcHRpb25zKCk7XG4gICAgY29uc3QgcSA9IChldmVudD8ucXVlcnkgPz8gJycpLnRvU3RyaW5nKCkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3Qgc291cmNlID0gIXEgPyBhbGwgOiBhbGwuZmlsdGVyKGkgPT4gKGk/LnRleHQgPz8gJycpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpO1xuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHNvdXJjZS5zbGljZSgpO1xuICAgIHRoaXMuaW52YWxpZCA9IHRoaXMuZmlsdGVyZWRJdGVtcy5sZW5ndGggPT09IDAgJiYgdGhpcy5hc0FycmF5KHRoaXMudmFsdWUpLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIG9uTXVsdGlDaGFuZ2UoZTogeyB2YWx1ZTogT3B0aW9uVmFsdWVbXSB9KSB7XG4gICAgdGhpcy5wcm9wYWdhdGVGcm9tVmFsdWUoZT8udmFsdWUgPz8gW10pO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25JbnB1dChldmVudDogRXZlbnQgfCBPcHRpb25WYWx1ZSB8IE9wdGlvblZhbHVlW10pOiB2b2lkIHtcbiAgICBjb25zdCB2YWwgPSBBcnJheS5pc0FycmF5KGV2ZW50KSA/IChldmVudCBhcyBPcHRpb25WYWx1ZVtdKSA6IChldmVudCBhcyBPcHRpb25WYWx1ZSB8IG51bGwpO1xuICAgIHRoaXMucHJvcGFnYXRlRnJvbVZhbHVlKHZhbCBhcyBhbnkpO1xuICB9XG5cbiAgY2xlYXJBbGwoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMubXVsdGlwbGUgPyBbXSA6IG51bGw7XG4gICAgdGhpcy5pbnZhbGlkID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlRXZlbnQuZW1pdCh0aGlzLnZhbHVlIGFzIGFueSk7XG4gICAgc3VwZXIub25JbnB1dCh7IHRhcmdldDogeyB2YWx1ZTogdGhpcy52YWx1ZSB9IH0gYXMgYW55KTtcbiAgICB0aGlzLnVwZGF0ZURpc3BsYXlNb2RlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25NdWx0aU1vZGVsQ2hhbmdlKHZhbDogT3B0aW9uVmFsdWVbXSB8IG51bGwpIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUZyb21WYWx1ZShBcnJheS5pc0FycmF5KHZhbCkgPyB2YWwgOiBbXSk7XG4gIH1cblxuICBnZXQgbm9ybWFsaXplZE9wdGlvbnMoKTogT3B0aW9uSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVPcHRpb25zKCk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRTaW5nbGVPcHRpb24oKTogT3B0aW9uSXRlbSB8IG51bGwge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlT3B0aW9uKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkSXRlbXNMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRwbCA9IHRoaXMub3ZlcnJpZGVDaGlwTWVzc2FnZSB8fCAnezB9IGl0ZW5zIHNlbGVjaW9uYWRvcyc7XG4gICAgcmV0dXJuIHRwbC5yZXBsYWNlKC9cXHtjb3VudFxcfS9nLCAnezB9Jyk7XG4gIH1cblxuICByZXNvbHZlT3B0aW9uKG9wdE9yVmFsdWU6IHVua25vd24pOiBPcHRpb25JdGVtIHwgbnVsbCB7XG4gICAgY29uc3QgYWxsID0gdGhpcy5ub3JtYWxpemVPcHRpb25zKCk7XG4gICAgaWYgKG9wdE9yVmFsdWUgPT0gbnVsbCkgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAodHlwZW9mIG9wdE9yVmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBvYmogPSBvcHRPclZhbHVlIGFzIGFueTtcblxuICAgICAgaWYgKCd0ZXh0JyBpbiBvYmogJiYgJ3ZhbHVlJyBpbiBvYmopIHtcbiAgICAgICAgcmV0dXJuIG9iaiBhcyBPcHRpb25JdGVtO1xuICAgICAgfVxuXG4gICAgICBpZiAoJ3ZhbHVlJyBpbiBvYmopIHtcbiAgICAgICAgY29uc3QgdiA9IG9iai52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGFsbC5maW5kKG8gPT4gT2JqZWN0LmlzKG8udmFsdWUsIHYpKSA/PyBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhbGwuZmluZChvID0+IE9iamVjdC5pcyhvLnZhbHVlLCBvcHRPclZhbHVlIGFzIGFueSkpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZU9wdGlvbnMoKTogT3B0aW9uSXRlbVtdIHtcbiAgICBpZiAodGhpcy5vcHRpb25zID09PSB0aGlzLl9vcHRpb25zQ2FjaGVLZXkpIHJldHVybiB0aGlzLl9vcHRpb25zQ2FjaGU7XG5cbiAgICBsZXQgbmV4dDogT3B0aW9uSXRlbVtdID0gW107XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMpKSB7XG4gICAgICBuZXh0ID0gdGhpcy5vcHRpb25zIGFzIE9wdGlvbkl0ZW1bXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh0aGlzLm9wdGlvbnMgfHwgJ1tdJyk7XG4gICAgICAgIG5leHQgPSBBcnJheS5pc0FycmF5KHBhcnNlZCkgPyAocGFyc2VkIGFzIE9wdGlvbkl0ZW1bXSkgOiBbXTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBuZXh0ID0gW107XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fb3B0aW9uc0NhY2hlS2V5ID0gdGhpcy5vcHRpb25zO1xuICAgIHRoaXMuX29wdGlvbnNDYWNoZSA9IG5leHQ7XG5cbiAgICByZXR1cm4gbmV4dDtcbiAgfVxuXG4gIHByaXZhdGUgYXNBcnJheSh2YWw6IE9wdGlvblZhbHVlIHwgT3B0aW9uVmFsdWVbXSB8IG51bGwgfCB1bmRlZmluZWQpOiBPcHRpb25WYWx1ZVtdIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gdmFsIGFzIE9wdGlvblZhbHVlW107XG4gICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFtdO1xuICAgIHJldHVybiBbdmFsIGFzIE9wdGlvblZhbHVlXTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0ZWRDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlID8gdGhpcy5hc0FycmF5KHRoaXMudmFsdWUpLmxlbmd0aCA6IHRoaXMudmFsdWUgIT0gbnVsbCA/IDEgOiAwO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEaXNwbGF5TW9kZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuZGlzcGxheU1vZGUgPSAnY29tbWEnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb3VudCA9IHRoaXMuc2VsZWN0ZWRDb3VudCgpO1xuICAgIHRoaXMuZGlzcGxheU1vZGUgPSBjb3VudCA+IHRoaXMubWF4U2VsZWN0ZWRMYWJlbHMgPyAnY29tbWEnIDogJ2NoaXAnO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9wYWdhdGVGcm9tVmFsdWUodmFsOiBPcHRpb25WYWx1ZSB8IE9wdGlvblZhbHVlW10gfCBudWxsKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbCBhcyBhbnk7XG4gICAgaWYgKHRoaXMuYXNBcnJheSh0aGlzLnZhbHVlKS5sZW5ndGggPiAwKSB0aGlzLmludmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVFdmVudC5lbWl0KHRoaXMudmFsdWUgPz8gKHRoaXMubXVsdGlwbGUgPyBbXSA6IG51bGwpKTtcbiAgICBjb25zdCBzeW50aGV0aWNFdnQgPSB7IHRhcmdldDogeyB2YWx1ZTogdGhpcy52YWx1ZSB9IH0gYXMgdW5rbm93biBhcyBFdmVudDtcbiAgICBzdXBlci5vbklucHV0KHN5bnRoZXRpY0V2dCk7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5TW9kZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLWNvbWJvYm94XCI+XG4gIDxkaXYgY2xhc3M9XCJzZGMtY29tYm9ib3hfX2xhYmVsLXJvd1wiICpuZ0lmPVwibGFiZWwgfHwgaW5mb1Rvb2x0aXBcIj5cbiAgICA8bGFiZWxcbiAgICAgICpuZ0lmPVwibGFiZWxcIlxuICAgICAgW2Zvcl09XCJpZGVudGl0eS5pZFwiXG4gICAgICBjbGFzcz1cInNkYy1jb21ib2JveF9fbGFiZWxcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgcmVxdWlyZWQgPyBsYWJlbCArICcgJyArICgncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUpIDogbGFiZWxcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY29tYm9ib3hfX2xhYmVsLXRleHRcIj5cbiAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8c2RjLXRvb2x0aXBcbiAgICAgICpuZ0lmPVwiaW5mb1Rvb2x0aXBcIlxuICAgICAgY2xhc3M9XCJzZGMtY29tYm9ib3hfX2luZm8tdG9vbHRpcC13cmFwXCJcbiAgICAgIFtwVG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiXG4gICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImluZm9Ub29sdGlwUG9zaXRpb25cIlxuICAgICAgW3Rvb2x0aXBFdmVudF09XCJpbmZvVG9vbHRpcEV2ZW50XCJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgID5cbiAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWluZm8tY2lyY2xlIHNkYy1jb21ib2JveF9faW5mby10b29sdGlwLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9zZGMtdG9vbHRpcD5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aXBsZTsgZWxzZSBtdWx0aXBsZVRwbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtY29tYm9ib3hfX3NpbmdsZVwiIFtjbGFzcy5zZGMtY29tYm9ib3hfX3NpbmdsZS0taGFzLWljb25dPVwic2VsZWN0ZWRTaW5nbGVPcHRpb24/Lmljb25cIj5cbiAgICAgIDxpXG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRTaW5nbGVPcHRpb24/Lmljb25cIlxuICAgICAgICBjbGFzcz1cInNkYy1jb21ib2JveF9fbGVhZGluZy1pY29uXCJcbiAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWRTaW5nbGVPcHRpb24/Lmljb25cIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgPjwvaT5cblxuICAgICAgPHAtYXV0b2NvbXBsZXRlXG4gICAgICAgICNhdXRvY29tcGxldGVcbiAgICAgICAgZHJvcGRvd25JY29uPVwiZmFzIGZhLWNhcmV0LWRvd25cIlxuICAgICAgICAoY29tcGxldGVNZXRob2QpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICBbYXV0b0hpZ2hsaWdodF09XCJ0cnVlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2Ryb3Bkb3duXT1cInRydWVcIlxuICAgICAgICBbZm9yY2VTZWxlY3Rpb25dPVwidHJ1ZVwiXG4gICAgICAgIFtpZF09XCJpZGVudGl0eS5pZFwiXG4gICAgICAgIFtuYW1lXT1cImlkZW50aXR5Lm5hbWUgPz8gJydcIlxuICAgICAgICBbbmdDbGFzc109XCJnZXRJbnZhbGlkQ2xhc3MoKVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFtzaG93Q2xlYXJdPVwic2hvd0NsZWFyXCJcbiAgICAgICAgW3N0eWxlXT1cImdldElucHV0U3R5bGUoKVwiXG4gICAgICAgIFtzdWdnZXN0aW9uc109XCJmaWx0ZXJlZEl0ZW1zXCJcbiAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcbiAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWwgfHwgcGxhY2Vob2xkZXIgfHwgKCdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmRyb3Bkb3duX3NlbGVjdCcgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtb3B0PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgPGkgKm5nSWY9XCJvcHQ/Lmljb25cIiBbY2xhc3NdPVwib3B0Lmljb25cIj48L2k+XG4gICAgICAgICAgICA8c3Bhbj57eyBvcHQ/LnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInNlbGVjdGVkSXRlbVwiIGxldC1vcHQ+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc29sdmVPcHRpb24ob3B0KSBhcyBpdGVtXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJpdGVtPy5pY29uXCIgW2NsYXNzXT1cIml0ZW0uaWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbT8udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9wLWF1dG9jb21wbGV0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlICNtdWx0aXBsZVRwbD5cbiAgICA8cC1tdWx0aXNlbGVjdFxuICAgICAgY2hpcEljb249XCJmYXMgZmEtdGltZXNcIlxuICAgICAgI211bHRpc2VsZWN0XG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk11bHRpTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbb3B0aW9uc109XCJub3JtYWxpemVkT3B0aW9uc1wiXG4gICAgICBvcHRpb25MYWJlbD1cInRleHRcIlxuICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICBbZmlsdGVyXT1cInRydWVcIlxuICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheU1vZGVcIlxuICAgICAgZHJvcGRvd25JY29uPVwiZmFzIGZhLWNhcmV0LWRvd25cIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3Nob3dDbGVhcl09XCJzaG93Q2xlYXJcIlxuICAgICAgW3N0eWxlQ2xhc3NdPVwiZ2V0SW52YWxpZENsYXNzKClcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZENsYXNzKClcIlxuICAgICAgW2lkXT1cImlkZW50aXR5LmlkXCJcbiAgICAgIFtuYW1lXT1cImlkZW50aXR5Lm5hbWUgPz8gJydcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIChvbkNoYW5nZSk9XCJvbk11bHRpQ2hhbmdlKCRldmVudClcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICBbbWF4U2VsZWN0ZWRMYWJlbHNdPVwibWF4U2VsZWN0ZWRMYWJlbHNcIlxuICAgICAgW3NlbGVjdGVkSXRlbXNMYWJlbF09XCJzZWxlY3RlZEl0ZW1zTGFiZWxcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCB8fCBwbGFjZWhvbGRlciB8fCAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuZHJvcGRvd25fc2VsZWN0JyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZFwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cIml0ZW1cIiBsZXQtb3B0PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICA8aSAqbmdJZj1cIm9wdD8uaWNvblwiIFtjbGFzc109XCJvcHQuaWNvblwiPjwvaT5cbiAgICAgICAgICA8c3Bhbj57eyBvcHQ/LnRleHQgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNoaXBcIiBsZXQtb3B0PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzb2x2ZU9wdGlvbihvcHQpIGFzIGl0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgIDxpICpuZ0lmPVwiaXRlbT8uaWNvblwiIFtjbGFzc109XCJpdGVtLmljb25cIj48L2k+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIj57eyBpdGVtPy50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLW11bHRpc2VsZWN0PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxzbWFsbCAqbmdJZj1cIm1lc3NhZ2VcIiBbbmdDbGFzc109XCJnZXRJbnZhbGlkTWVzc2FnZUNsYXNzKClcIj5cbiAgICB7eyBtZXNzYWdlIH19XG4gIDwvc21hbGw+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -194,7 +194,7 @@ export class FiltersComponent {
|
|
|
194
194
|
}, 0);
|
|
195
195
|
}
|
|
196
196
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
197
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FiltersComponent, isStandalone: true, selector: "sdc-filters", inputs: { data: "data", config: "config", loading: "loading" }, outputs: { filtered: "filtered" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"grid min-h-10rem\" role=\"search\"\n [attr.aria-label]=\"'platform.datacore.accessibility.filters_section' | translate\">\n @if (config!.search!.show !== false) {\n <div class=\"col-12 md:col-12 lg:col-6 xl:col-4\">\n <sdc-searchbox [disabled]=\"loading\" [label]=\"config!.search!.label || ''\"\n [placeholder]=\"config!.search!.placeholder || ''\" [size]=\"'small'\"\n [triggerMode]=\"config!.search!.triggerMode || 'auto'\" (onSearch)=\"onSearch($event)\" (onClear)=\"onClear()\">\n </sdc-searchbox>\n </div>\n }\n @if (config!.filters!.length) {\n @for (def of config.filters; track def.key) {\n <div class=\"col-12 md:col-6 lg:col-3 xl:col-2\" [class.mb-3]=\"isMobile\">\n <sdc-combobox width=\"100%\" [label]=\"def.label || ''\" [disabled]=\"loading\" [placeholder]=\"def.placeholder || ''\"\n [multiple]=\"(def.type ?? 'multiselect') === 'multiselect'\" [options]=\"filterOptionsMap[def.key]\"\n [(ngModel)]=\"selectedValues[def.key]\" (ngModelChange)=\"onComboChange(def.key, $event)\" [attr.aria-label]=\"\n def.label || \n def.placeholder || \n ('platform.datacore.accessibility.filter_field' | translate)\n \">\n </sdc-combobox>\n </div>\n }\n }\n</section>", styles: [".bg-disabled{background-color:var(--p-inputtext-disabled-background)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: SearchboxComponent, selector: "sdc-searchbox", inputs: ["triggerMode"], outputs: ["onSearch", "onClear"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "ngmodule", type: InputGroupAddonModule }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: ComboboxComponent, selector: "sdc-combobox", inputs: ["multiple", "appendTo", "zIndex", "options", "overrideChipMessage", "maxSelectedLabels", "showClear"], outputs: ["onSelectedItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
197
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FiltersComponent, isStandalone: true, selector: "sdc-filters", inputs: { data: "data", config: "config", loading: "loading" }, outputs: { filtered: "filtered" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"grid min-h-10rem\" role=\"search\"\n [attr.aria-label]=\"'platform.datacore.accessibility.filters_section' | translate\">\n @if (config!.search!.show !== false) {\n <div class=\"col-12 md:col-12 lg:col-6 xl:col-4\">\n <sdc-searchbox [disabled]=\"loading\" [label]=\"config!.search!.label || ''\"\n [placeholder]=\"config!.search!.placeholder || ''\" [size]=\"'small'\"\n [triggerMode]=\"config!.search!.triggerMode || 'auto'\" (onSearch)=\"onSearch($event)\" (onClear)=\"onClear()\">\n </sdc-searchbox>\n </div>\n }\n @if (config!.filters!.length) {\n @for (def of config.filters; track def.key) {\n <div class=\"col-12 md:col-6 lg:col-3 xl:col-2\" [class.mb-3]=\"isMobile\">\n <sdc-combobox width=\"100%\" [label]=\"def.label || ''\" [disabled]=\"loading\" [placeholder]=\"def.placeholder || ''\"\n [multiple]=\"(def.type ?? 'multiselect') === 'multiselect'\" [options]=\"filterOptionsMap[def.key]\"\n [(ngModel)]=\"selectedValues[def.key]\" (ngModelChange)=\"onComboChange(def.key, $event)\" [attr.aria-label]=\"\n def.label || \n def.placeholder || \n ('platform.datacore.accessibility.filter_field' | translate)\n \">\n </sdc-combobox>\n </div>\n }\n }\n</section>", styles: [".bg-disabled{background-color:var(--p-inputtext-disabled-background)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: SearchboxComponent, selector: "sdc-searchbox", inputs: ["triggerMode"], outputs: ["onSearch", "onClear"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "ngmodule", type: InputGroupAddonModule }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: ComboboxComponent, selector: "sdc-combobox", inputs: ["multiple", "appendTo", "zIndex", "options", "overrideChipMessage", "maxSelectedLabels", "showClear", "infoTooltip", "infoTooltipPosition", "infoTooltipEvent"], outputs: ["onSelectedItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
198
198
|
}
|
|
199
199
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersComponent, decorators: [{
|
|
200
200
|
type: Component,
|
|
@@ -90,7 +90,7 @@ export class PaginatorComponent {
|
|
|
90
90
|
return String(p + 1);
|
|
91
91
|
}
|
|
92
92
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
93
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PaginatorComponent, isStandalone: true, selector: "sdc-paginator", inputs: { first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: true, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: true, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, totalRecordsLabel: { classPropertyName: "totalRecordsLabel", publicName: "totalRecordsLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<nav\n class=\"sdc-paginator\"\n role=\"navigation\"\n [attr.aria-label]=\"'platform.datacore.accessibility.pagination_navigation' | translate\"\n>\n <div class=\"sdc-paginator-left\">\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"currentPage() === 0\"\n (click)=\"firstPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.first_page' | translate\"\n >\n <i class=\"fas fa-step-forward fa-rotate-180\" aria-hidden=\"true\"></i>\n </button>\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"currentPage() === 0\"\n (click)=\"prevPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.previous_page' | translate\"\n >\n <i class=\"fas fa-caret-left\" aria-hidden=\"true\"></i>\n </button>\n\n @for (p of pages(); track p) { @if (asNumber(p)) {\n <button\n type=\"button\"\n class=\"sdc-page\"\n [class.is-active]=\"isCurrent(p)\"\n [attr.aria-current]=\"isCurrent(p) ? 'page' : null\"\n [attr.aria-label]=\"\n isCurrent(p)\n ? ('platform.datacore.accessibility.current_page' | translate).replace('{number}', getPageLabel(p))\n : ('platform.datacore.accessibility.page_number' | translate).replace('{number}', getPageLabel(p))\n \"\n (click)=\"gotoPage(p)\"\n >\n {{ p + 1 }}\n </button>\n } @else {\n <span class=\"sdc-ellipsis\" aria-hidden=\"true\">\u2026</span>\n } }\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"currentPage() >= pageCount() - 1\"\n (click)=\"nextPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.next_page' | translate\"\n >\n <i class=\"fas fa-caret-right\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"currentPage() >= pageCount() - 1\"\n (click)=\"lastPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.last_page' | translate\"\n >\n <i class=\"fas fa-step-forward\" aria-hidden=\"true\"></i>\n </button>\n <sdc-combobox\n class=\"sdc-rows-combobox\"\n [multiple]=\"false\"\n [options]=\"rowOptions()\"\n [appendTo]=\"'body'\"\n [showClear]=\"false\"\n [ngModel]=\"rows().toString()\"\n (onSelectedItem)=\"onRowsComboModel($event)\"\n [attr.aria-label]=\"'platform.datacore.accessibility.rows_per_page' | translate\"\n >\n </sdc-combobox>\n </div>\n @if (totalRecordsLabel()) {\n <span class=\"sdc-total\" aria-live=\"polite\"> {{ totalRecordsLabel() }}: {{ totalRecords() }} </span>\n }\n</nav>\n", styles: [":host{--sdc-paginator-page-size: var(--sdc-table-paginator-size, 34px);--sdc-paginator-border: #cccccc;--sdc-paginator-primary: #428bca;--sdc-paginator-primary-hover: #6aa3d5;display:block}.sdc-paginator{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;box-sizing:border-box;padding:10px 10px 10px 0}.sdc-paginator .sdc-paginator-left{display:inline-flex;align-items:center;gap:0}.sdc-paginator .sdc-paginator-left ::ng-deep .sdc-combobox{width:6.5rem!important;padding-left:1rem!important}.sdc-paginator .sdc-page{min-width:var(--sdc-paginator-page-size);height:var(--sdc-paginator-page-size);padding:.4em .25em;margin:0;border:1px solid var(--sdc-paginator-border);border-right-width:0;background:transparent;color:var(--sdc-paginator-primary);cursor:pointer;transition:background-color .2s ease-out;text-align:center}.sdc-paginator .sdc-page:focus-visible{outline:2px solid currentColor;outline-offset:2px;z-index:1}.sdc-paginator .sdc-page:first-child{border-radius:4px 0 0 4px}.sdc-paginator .sdc-page:last-of-type{border-right-width:1px;border-radius:0 4px 4px 0}.sdc-paginator .sdc-page:hover{background-color:#f7f7f7}.sdc-paginator .sdc-page.is-active{background:var(--sdc-paginator-primary);color:#fff;border-color:var(--sdc-paginator-primary)}.sdc-paginator .sdc-page.is-active:hover{background:var(--sdc-paginator-primary-hover);border-color:var(--sdc-paginator-primary-hover)}.sdc-paginator .sdc-page:disabled{opacity:.5;cursor:not-allowed}.sdc-paginator .sdc-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:var(--sdc-paginator-page-size);height:var(--sdc-paginator-page-size);border:1px solid var(--sdc-paginator-border);border-right-width:0}.sdc-paginator .sdc-rows-combobox{width:max-content;min-width:88px}.sdc-paginator .sdc-total{white-space:nowrap}::ng-deep .sdc-paginator .sdc-rows-combobox{min-height:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ComboboxComponent, selector: "sdc-combobox", inputs: ["multiple", "appendTo", "zIndex", "options", "overrideChipMessage", "maxSelectedLabels", "showClear"], outputs: ["onSelectedItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
93
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PaginatorComponent, isStandalone: true, selector: "sdc-paginator", inputs: { first: { classPropertyName: "first", publicName: "first", isSignal: true, isRequired: true, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: true, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, totalRecordsLabel: { classPropertyName: "totalRecordsLabel", publicName: "totalRecordsLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<nav\n class=\"sdc-paginator\"\n role=\"navigation\"\n [attr.aria-label]=\"'platform.datacore.accessibility.pagination_navigation' | translate\"\n>\n <div class=\"sdc-paginator-left\">\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"currentPage() === 0\"\n (click)=\"firstPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.first_page' | translate\"\n >\n <i class=\"fas fa-step-forward fa-rotate-180\" aria-hidden=\"true\"></i>\n </button>\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"currentPage() === 0\"\n (click)=\"prevPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.previous_page' | translate\"\n >\n <i class=\"fas fa-caret-left\" aria-hidden=\"true\"></i>\n </button>\n\n @for (p of pages(); track p) { @if (asNumber(p)) {\n <button\n type=\"button\"\n class=\"sdc-page\"\n [class.is-active]=\"isCurrent(p)\"\n [attr.aria-current]=\"isCurrent(p) ? 'page' : null\"\n [attr.aria-label]=\"\n isCurrent(p)\n ? ('platform.datacore.accessibility.current_page' | translate).replace('{number}', getPageLabel(p))\n : ('platform.datacore.accessibility.page_number' | translate).replace('{number}', getPageLabel(p))\n \"\n (click)=\"gotoPage(p)\"\n >\n {{ p + 1 }}\n </button>\n } @else {\n <span class=\"sdc-ellipsis\" aria-hidden=\"true\">\u2026</span>\n } }\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"currentPage() >= pageCount() - 1\"\n (click)=\"nextPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.next_page' | translate\"\n >\n <i class=\"fas fa-caret-right\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"sdc-page sdc-edge\"\n [disabled]=\"currentPage() >= pageCount() - 1\"\n (click)=\"lastPage()\"\n [attr.aria-label]=\"'platform.datacore.accessibility.last_page' | translate\"\n >\n <i class=\"fas fa-step-forward\" aria-hidden=\"true\"></i>\n </button>\n <sdc-combobox\n class=\"sdc-rows-combobox\"\n [multiple]=\"false\"\n [options]=\"rowOptions()\"\n [appendTo]=\"'body'\"\n [showClear]=\"false\"\n [ngModel]=\"rows().toString()\"\n (onSelectedItem)=\"onRowsComboModel($event)\"\n [attr.aria-label]=\"'platform.datacore.accessibility.rows_per_page' | translate\"\n >\n </sdc-combobox>\n </div>\n @if (totalRecordsLabel()) {\n <span class=\"sdc-total\" aria-live=\"polite\"> {{ totalRecordsLabel() }}: {{ totalRecords() }} </span>\n }\n</nav>\n", styles: [":host{--sdc-paginator-page-size: var(--sdc-table-paginator-size, 34px);--sdc-paginator-border: #cccccc;--sdc-paginator-primary: #428bca;--sdc-paginator-primary-hover: #6aa3d5;display:block}.sdc-paginator{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;box-sizing:border-box;padding:10px 10px 10px 0}.sdc-paginator .sdc-paginator-left{display:inline-flex;align-items:center;gap:0}.sdc-paginator .sdc-paginator-left ::ng-deep .sdc-combobox{width:6.5rem!important;padding-left:1rem!important}.sdc-paginator .sdc-page{min-width:var(--sdc-paginator-page-size);height:var(--sdc-paginator-page-size);padding:.4em .25em;margin:0;border:1px solid var(--sdc-paginator-border);border-right-width:0;background:transparent;color:var(--sdc-paginator-primary);cursor:pointer;transition:background-color .2s ease-out;text-align:center}.sdc-paginator .sdc-page:focus-visible{outline:2px solid currentColor;outline-offset:2px;z-index:1}.sdc-paginator .sdc-page:first-child{border-radius:4px 0 0 4px}.sdc-paginator .sdc-page:last-of-type{border-right-width:1px;border-radius:0 4px 4px 0}.sdc-paginator .sdc-page:hover{background-color:#f7f7f7}.sdc-paginator .sdc-page.is-active{background:var(--sdc-paginator-primary);color:#fff;border-color:var(--sdc-paginator-primary)}.sdc-paginator .sdc-page.is-active:hover{background:var(--sdc-paginator-primary-hover);border-color:var(--sdc-paginator-primary-hover)}.sdc-paginator .sdc-page:disabled{opacity:.5;cursor:not-allowed}.sdc-paginator .sdc-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:var(--sdc-paginator-page-size);height:var(--sdc-paginator-page-size);border:1px solid var(--sdc-paginator-border);border-right-width:0}.sdc-paginator .sdc-rows-combobox{width:max-content;min-width:88px}.sdc-paginator .sdc-total{white-space:nowrap}::ng-deep .sdc-paginator .sdc-rows-combobox{min-height:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ComboboxComponent, selector: "sdc-combobox", inputs: ["multiple", "appendTo", "zIndex", "options", "overrideChipMessage", "maxSelectedLabels", "showClear", "infoTooltip", "infoTooltipPosition", "infoTooltipEvent"], outputs: ["onSelectedItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
94
94
|
}
|
|
95
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PaginatorComponent, decorators: [{
|
|
96
96
|
type: Component,
|
|
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
98
98
|
}], propDecorators: { pageChange: [{
|
|
99
99
|
type: Output
|
|
100
100
|
}] } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBaUJuRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDakMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNoQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3hDLGtCQUFrQixHQUFHLEtBQUssQ0FBdUIsU0FBUyxDQUFDLENBQUM7SUFDNUQsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixpQkFBaUIsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7SUFFNUIsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO0lBRWpELFVBQVUsR0FBRyxRQUFRLENBQWUsR0FBRyxFQUFFO1FBQ2hELE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElB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ZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgY29tcHV0ZWQsXG4gIGlucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvbkl0ZW0sIE9wdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4uL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRvclN0YXRlID0ge1xuICBmaXJzdDogbnVtYmVyO1xuICByb3dzOiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbiAgcGFnZUNvdW50OiBudW1iZXI7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtcGFnaW5hdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIENvbWJvYm94Q29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JDb21wb25lbnQge1xuICBmaXJzdCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcm93cyA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgdG90YWxSZWNvcmRzID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuICByb3dzUGVyUGFnZU9wdGlvbnMgPSBpbnB1dDxudW1iZXJbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgaXNNb2JpbGUgPSBpbnB1dChmYWxzZSk7XG4gIHRvdGFsUmVjb3Jkc0xhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2luYXRvclN0YXRlPigpO1xuXG4gIHJlYWRvbmx5IHJvd09wdGlvbnMgPSBjb21wdXRlZDxPcHRpb25JdGVtW10+KCgpID0+IHtcbiAgICBjb25zdCBvcHRzID0gKHRoaXMucm93c1BlclBhZ2VPcHRpb25zKCkgPz8gW10pLm1hcCh2ID0+ICh7XG4gICAgICB0ZXh0OiBTdHJpbmcodiksXG4gICAgICB2YWx1ZTogU3RyaW5nKHYpIGFzIE9wdGlvblZhbHVlLFxuICAgIH0pKTtcbiAgICBjb25zdCBjdXIgPSBTdHJpbmcodGhpcy5yb3dzKCkpO1xuICAgIGlmICghb3B0cy5zb21lKG8gPT4gby52YWx1ZSA9PT0gY3VyKSkge1xuICAgICAgb3B0cy51bnNoaWZ0KHsgdGV4dDogY3VyLCB2YWx1ZTogY3VyIGFzIE9wdGlvblZhbHVlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gb3B0cztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnZUNvdW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHIgPSB0aGlzLnJvd3MoKTtcbiAgICBjb25zdCB0ID0gdGhpcy50b3RhbFJlY29yZHMoKTtcbiAgICByZXR1cm4gciA+IDAgPyBNYXRoLm1heCgxLCBNYXRoLmNlaWwodCAvIHIpKSA6IDE7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRQYWdlID0gY29tcHV0ZWQoKCkgPT4gTWF0aC5mbG9vcih0aGlzLmZpcnN0KCkgLyBNYXRoLm1heCgxLCB0aGlzLnJvd3MoKSkpKTtcblxuICByZWFkb25seSBwYWdlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMucGFnZUNvdW50KCk7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuY3VycmVudFBhZ2UoKTtcbiAgICBjb25zdCB3aW4gPSB0aGlzLmlzTW9iaWxlKCkgPyAzIDogNztcblxuICAgIGlmIChjb3VudCA8PSB3aW4pIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9LCAoXywgaSkgPT4gaSk7XG5cbiAgICBjb25zdCBuZWFyID0gTWF0aC5mbG9vcigod2luIC0gMykgLyAyKTtcbiAgICBjb25zdCBzdGFydCA9IE1hdGgubWF4KDEsIGN1cnJlbnQgLSBuZWFyKTtcbiAgICBjb25zdCBlbmQgPSBNYXRoLm1pbihjb3VudCAtIDIsIGN1cnJlbnQgKyBuZWFyKTtcbiAgICBjb25zdCBsaXN0OiBBcnJheTxudW1iZXIgfCAn4oCmJz4gPSBbMF07XG5cbiAgICBpZiAoc3RhcnQgPiAxKSBsaXN0LnB1c2goJ+KApicpO1xuICAgIGZvciAobGV0IHAgPSBzdGFydDsgcCA8PSBlbmQ7IHArKykgbGlzdC5wdXNoKHApO1xuICAgIGlmIChlbmQgPCBjb3VudCAtIDIpIGxpc3QucHVzaCgn4oCmJyk7XG4gICAgbGlzdC5wdXNoKGNvdW50IC0gMSk7XG5cbiAgICByZXR1cm4gbGlzdDtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBlbWl0Q2hhbmdlKGZpcnN0OiBudW1iZXIsIHJvd3MgPSB0aGlzLnJvd3MoKSkge1xuICAgIGNvbnN0IHNhZmVSb3dzID0gcm93cyA+IDAgPyByb3dzIDogMTtcbiAgICBjb25zdCBwYWdlID0gTWF0aC5mbG9vcihmaXJzdCAvIHNhZmVSb3dzKTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IGZpcnN0LCByb3dzOiBzYWZlUm93cywgcGFnZSwgcGFnZUNvdW50OiB0aGlzLnBhZ2VDb3VudCgpIH0pO1xuICB9XG5cbiAgZ290b1BhZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHNhZmUgPSBNYXRoLm1pbihNYXRoLm1heChpbmRleCwgMCksIHRoaXMucGFnZUNvdW50KCkgLSAxKTtcbiAgICB0aGlzLmVtaXRDaGFuZ2Uoc2FmZSAqIHRoaXMucm93cygpKTtcbiAgfVxuXG4gIGZpcnN0UGFnZSgpIHtcbiAgICB0aGlzLmdvdG9QYWdlKDApO1xuICB9XG5cbiAgcHJldlBhZ2UoKSB7XG4gICAgdGhpcy5nb3RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKCkgLSAxKTtcbiAgfVxuXG4gIG5leHRQYWdlKCkge1xuICAgIHRoaXMuZ290b1BhZ2UodGhpcy5jdXJyZW50UGFnZSgpICsgMSk7XG4gIH1cblxuICBsYXN0UGFnZSgpIHtcbiAgICB0aGlzLmdvdG9QYWdlKHRoaXMucGFnZUNvdW50KCkgLSAxKTtcbiAgfVxuXG4gIG9uUm93c0NoYW5nZShyb3dzOiBudW1iZXIpIHtcbiAgICB0aGlzLmVtaXRDaGFuZ2UoMCwgcm93cyk7XG4gIH1cblxuICBvblJvd3NDb21ib01vZGVsKHZhbDogT3B0aW9uVmFsdWUgfCBPcHRpb25WYWx1ZVtdIHwgbnVsbCkge1xuICAgIGNvbnN0IHJhdyA9IEFycmF5LmlzQXJyYXkodmFsKSA/IHZhbFswXSA6IHZhbDtcbiAgICBjb25zdCBuID0gTnVtYmVyKHJhdyk7XG4gICAgaWYgKCFOdW1iZXIuaXNOYU4obikpIHRoaXMub25Sb3dzQ2hhbmdlKG4pO1xuICB9XG5cbiAgaXNDdXJyZW50KHA6IG51bWJlcikge1xuICAgIHJldHVybiBwID09PSB0aGlzLmN1cnJlbnRQYWdlKCk7XG4gIH1cbiAgXG4gIGFzTnVtYmVyKHA6IG51bWJlciB8ICfigKYnKTogcCBpcyBudW1iZXIge1xuICAgIHJldHVybiB0eXBlb2YgcCA9PT0gJ251bWJlcic7XG4gIH1cblxuICBnZXRQYWdlTGFiZWwocDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3RyaW5nKHAgKyAxKTtcbiAgfVxufVxuIiwiPG5hdlxuICBjbGFzcz1cInNkYy1wYWdpbmF0b3JcIlxuICByb2xlPVwibmF2aWdhdGlvblwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucGFnaW5hdGlvbl9uYXZpZ2F0aW9uJyB8IHRyYW5zbGF0ZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzZGMtcGFnaW5hdG9yLWxlZnRcIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLWVkZ2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IDBcIlxuICAgICAgKGNsaWNrKT1cImZpcnN0UGFnZSgpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuZmlyc3RfcGFnZScgfCB0cmFuc2xhdGVcIlxuICAgID5cbiAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXN0ZXAtZm9yd2FyZCBmYS1yb3RhdGUtMTgwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJzZGMtcGFnZSBzZGMtZWRnZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UoKSA9PT0gMFwiXG4gICAgICAoY2xpY2spPVwicHJldlBhZ2UoKVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnByZXZpb3VzX3BhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1jYXJldC1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgQGZvciAocCBvZiBwYWdlcygpOyB0cmFjayBwKSB7IEBpZiAoYXNOdW1iZXIocCkpIHtcbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLXBhZ2VcIlxuICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJpc0N1cnJlbnQocClcIlxuICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzQ3VycmVudChwKSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgaXNDdXJyZW50KHApXG4gICAgICAgICAgPyAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY3VycmVudF9wYWdlJyB8IHRyYW5zbGF0ZSkucmVwbGFjZSgne251bWJlcn0nLCBnZXRQYWdlTGFiZWwocCkpXG4gICAgICAgICAgOiAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucGFnZV9udW1iZXInIHwgdHJhbnNsYXRlKS5yZXBsYWNlKCd7bnVtYmVyfScsIGdldFBhZ2VMYWJlbChwKSlcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwiZ290b1BhZ2UocClcIlxuICAgID5cbiAgICAgIHt7IHAgKyAxIH19XG4gICAgPC9idXR0b24+XG4gICAgfSBAZWxzZSB7XG4gICAgPHNwYW4gY2xhc3M9XCJzZGMtZWxsaXBzaXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj7igKY8L3NwYW4+XG4gICAgfSB9XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLWVkZ2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPj0gcGFnZUNvdW50KCkgLSAxXCJcbiAgICAgIChjbGljayk9XCJuZXh0UGFnZSgpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubmV4dF9wYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2FyZXQtcmlnaHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLWVkZ2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPj0gcGFnZUNvdW50KCkgLSAxXCJcbiAgICAgIChjbGljayk9XCJsYXN0UGFnZSgpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubGFzdF9wYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc3RlcC1mb3J3YXJkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxzZGMtY29tYm9ib3hcbiAgICAgIGNsYXNzPVwic2RjLXJvd3MtY29tYm9ib3hcIlxuICAgICAgW211bHRpcGxlXT1cImZhbHNlXCJcbiAgICAgIFtvcHRpb25zXT1cInJvd09wdGlvbnMoKVwiXG4gICAgICBbYXBwZW5kVG9dPVwiJ2JvZHknXCJcbiAgICAgIFtzaG93Q2xlYXJdPVwiZmFsc2VcIlxuICAgICAgW25nTW9kZWxdPVwicm93cygpLnRvU3RyaW5nKClcIlxuICAgICAgKG9uU2VsZWN0ZWRJdGVtKT1cIm9uUm93c0NvbWJvTW9kZWwoJGV2ZW50KVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd3NfcGVyX3BhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgPC9zZGMtY29tYm9ib3g+XG4gIDwvZGl2PlxuICBAaWYgKHRvdGFsUmVjb3Jkc0xhYmVsKCkpIHtcbiAgPHNwYW4gY2xhc3M9XCJzZGMtdG90YWxcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj4ge3sgdG90YWxSZWNvcmRzTGFiZWwoKSB9fToge3sgdG90YWxSZWNvcmRzKCkgfX0gPC9zcGFuPlxuICB9XG48L25hdj5cbiJdfQ==
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBaUJuRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDakMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNoQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3hDLGtCQUFrQixHQUFHLEtBQUssQ0FBdUIsU0FBUyxDQUFDLENBQUM7SUFDNUQsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixpQkFBaUIsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7SUFFNUIsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO0lBRWpELFVBQVUsR0FBRyxRQUFRLENBQWUsR0FBRyxFQUFFO1FBQ2hELE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElB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ZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgY29tcHV0ZWQsXG4gIGlucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgdHlwZSB7IE9wdGlvbkl0ZW0sIE9wdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBDb21ib2JveENvbXBvbmVudCB9IGZyb20gJy4uL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRvclN0YXRlID0ge1xuICBmaXJzdDogbnVtYmVyO1xuICByb3dzOiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbiAgcGFnZUNvdW50OiBudW1iZXI7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtcGFnaW5hdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIENvbWJvYm94Q29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JDb21wb25lbnQge1xuICBmaXJzdCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcm93cyA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgdG90YWxSZWNvcmRzID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuICByb3dzUGVyUGFnZU9wdGlvbnMgPSBpbnB1dDxudW1iZXJbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgaXNNb2JpbGUgPSBpbnB1dChmYWxzZSk7XG4gIHRvdGFsUmVjb3Jkc0xhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2luYXRvclN0YXRlPigpO1xuXG4gIHJlYWRvbmx5IHJvd09wdGlvbnMgPSBjb21wdXRlZDxPcHRpb25JdGVtW10+KCgpID0+IHtcbiAgICBjb25zdCBvcHRzID0gKHRoaXMucm93c1BlclBhZ2VPcHRpb25zKCkgPz8gW10pLm1hcCh2ID0+ICh7XG4gICAgICB0ZXh0OiBTdHJpbmcodiksXG4gICAgICB2YWx1ZTogU3RyaW5nKHYpIGFzIE9wdGlvblZhbHVlLFxuICAgIH0pKTtcbiAgICBjb25zdCBjdXIgPSBTdHJpbmcodGhpcy5yb3dzKCkpO1xuICAgIGlmICghb3B0cy5zb21lKG8gPT4gby52YWx1ZSA9PT0gY3VyKSkge1xuICAgICAgb3B0cy51bnNoaWZ0KHsgdGV4dDogY3VyLCB2YWx1ZTogY3VyIGFzIE9wdGlvblZhbHVlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gb3B0cztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnZUNvdW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHIgPSB0aGlzLnJvd3MoKTtcbiAgICBjb25zdCB0ID0gdGhpcy50b3RhbFJlY29yZHMoKTtcbiAgICByZXR1cm4gciA+IDAgPyBNYXRoLm1heCgxLCBNYXRoLmNlaWwodCAvIHIpKSA6IDE7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRQYWdlID0gY29tcHV0ZWQoKCkgPT4gTWF0aC5mbG9vcih0aGlzLmZpcnN0KCkgLyBNYXRoLm1heCgxLCB0aGlzLnJvd3MoKSkpKTtcblxuICByZWFkb25seSBwYWdlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMucGFnZUNvdW50KCk7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuY3VycmVudFBhZ2UoKTtcbiAgICBjb25zdCB3aW4gPSB0aGlzLmlzTW9iaWxlKCkgPyAzIDogNztcblxuICAgIGlmIChjb3VudCA8PSB3aW4pIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9LCAoXywgaSkgPT4gaSk7XG5cbiAgICBjb25zdCBuZWFyID0gTWF0aC5mbG9vcigod2luIC0gMykgLyAyKTtcbiAgICBjb25zdCBzdGFydCA9IE1hdGgubWF4KDEsIGN1cnJlbnQgLSBuZWFyKTtcbiAgICBjb25zdCBlbmQgPSBNYXRoLm1pbihjb3VudCAtIDIsIGN1cnJlbnQgKyBuZWFyKTtcbiAgICBjb25zdCBsaXN0OiBBcnJheTxudW1iZXIgfCAn4oCmJz4gPSBbMF07XG5cbiAgICBpZiAoc3RhcnQgPiAxKSBsaXN0LnB1c2goJ+KApicpO1xuICAgIGZvciAobGV0IHAgPSBzdGFydDsgcCA8PSBlbmQ7IHArKykgbGlzdC5wdXNoKHApO1xuICAgIGlmIChlbmQgPCBjb3VudCAtIDIpIGxpc3QucHVzaCgn4oCmJyk7XG4gICAgbGlzdC5wdXNoKGNvdW50IC0gMSk7XG5cbiAgICByZXR1cm4gbGlzdDtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBlbWl0Q2hhbmdlKGZpcnN0OiBudW1iZXIsIHJvd3MgPSB0aGlzLnJvd3MoKSkge1xuICAgIGNvbnN0IHNhZmVSb3dzID0gcm93cyA+IDAgPyByb3dzIDogMTtcbiAgICBjb25zdCBwYWdlID0gTWF0aC5mbG9vcihmaXJzdCAvIHNhZmVSb3dzKTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IGZpcnN0LCByb3dzOiBzYWZlUm93cywgcGFnZSwgcGFnZUNvdW50OiB0aGlzLnBhZ2VDb3VudCgpIH0pO1xuICB9XG5cbiAgZ290b1BhZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHNhZmUgPSBNYXRoLm1pbihNYXRoLm1heChpbmRleCwgMCksIHRoaXMucGFnZUNvdW50KCkgLSAxKTtcbiAgICB0aGlzLmVtaXRDaGFuZ2Uoc2FmZSAqIHRoaXMucm93cygpKTtcbiAgfVxuXG4gIGZpcnN0UGFnZSgpIHtcbiAgICB0aGlzLmdvdG9QYWdlKDApO1xuICB9XG5cbiAgcHJldlBhZ2UoKSB7XG4gICAgdGhpcy5nb3RvUGFnZSh0aGlzLmN1cnJlbnRQYWdlKCkgLSAxKTtcbiAgfVxuXG4gIG5leHRQYWdlKCkge1xuICAgIHRoaXMuZ290b1BhZ2UodGhpcy5jdXJyZW50UGFnZSgpICsgMSk7XG4gIH1cblxuICBsYXN0UGFnZSgpIHtcbiAgICB0aGlzLmdvdG9QYWdlKHRoaXMucGFnZUNvdW50KCkgLSAxKTtcbiAgfVxuXG4gIG9uUm93c0NoYW5nZShyb3dzOiBudW1iZXIpIHtcbiAgICB0aGlzLmVtaXRDaGFuZ2UoMCwgcm93cyk7XG4gIH1cblxuICBvblJvd3NDb21ib01vZGVsKHZhbDogT3B0aW9uVmFsdWUgfCBPcHRpb25WYWx1ZVtdIHwgbnVsbCkge1xuICAgIGNvbnN0IHJhdyA9IEFycmF5LmlzQXJyYXkodmFsKSA/IHZhbFswXSA6IHZhbDtcbiAgICBjb25zdCBuID0gTnVtYmVyKHJhdyk7XG4gICAgaWYgKCFOdW1iZXIuaXNOYU4obikpIHRoaXMub25Sb3dzQ2hhbmdlKG4pO1xuICB9XG5cbiAgaXNDdXJyZW50KHA6IG51bWJlcikge1xuICAgIHJldHVybiBwID09PSB0aGlzLmN1cnJlbnRQYWdlKCk7XG4gIH1cbiAgXG4gIGFzTnVtYmVyKHA6IG51bWJlciB8ICfigKYnKTogcCBpcyBudW1iZXIge1xuICAgIHJldHVybiB0eXBlb2YgcCA9PT0gJ251bWJlcic7XG4gIH1cblxuICBnZXRQYWdlTGFiZWwocDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3RyaW5nKHAgKyAxKTtcbiAgfVxufVxuIiwiPG5hdlxuICBjbGFzcz1cInNkYy1wYWdpbmF0b3JcIlxuICByb2xlPVwibmF2aWdhdGlvblwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucGFnaW5hdGlvbl9uYXZpZ2F0aW9uJyB8IHRyYW5zbGF0ZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzZGMtcGFnaW5hdG9yLWxlZnRcIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLWVkZ2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IDBcIlxuICAgICAgKGNsaWNrKT1cImZpcnN0UGFnZSgpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuZmlyc3RfcGFnZScgfCB0cmFuc2xhdGVcIlxuICAgID5cbiAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXN0ZXAtZm9yd2FyZCBmYS1yb3RhdGUtMTgwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJzZGMtcGFnZSBzZGMtZWRnZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UoKSA9PT0gMFwiXG4gICAgICAoY2xpY2spPVwicHJldlBhZ2UoKVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnByZXZpb3VzX3BhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1jYXJldC1sZWZ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgQGZvciAocCBvZiBwYWdlcygpOyB0cmFjayBwKSB7IEBpZiAoYXNOdW1iZXIocCkpIHtcbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLXBhZ2VcIlxuICAgICAgW2NsYXNzLmlzLWFjdGl2ZV09XCJpc0N1cnJlbnQocClcIlxuICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzQ3VycmVudChwKSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgaXNDdXJyZW50KHApXG4gICAgICAgICAgPyAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuY3VycmVudF9wYWdlJyB8IHRyYW5zbGF0ZSkucmVwbGFjZSgne251bWJlcn0nLCBnZXRQYWdlTGFiZWwocCkpXG4gICAgICAgICAgOiAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucGFnZV9udW1iZXInIHwgdHJhbnNsYXRlKS5yZXBsYWNlKCd7bnVtYmVyfScsIGdldFBhZ2VMYWJlbChwKSlcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwiZ290b1BhZ2UocClcIlxuICAgID5cbiAgICAgIHt7IHAgKyAxIH19XG4gICAgPC9idXR0b24+XG4gICAgfSBAZWxzZSB7XG4gICAgPHNwYW4gY2xhc3M9XCJzZGMtZWxsaXBzaXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj7igKY8L3NwYW4+XG4gICAgfSB9XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLWVkZ2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPj0gcGFnZUNvdW50KCkgLSAxXCJcbiAgICAgIChjbGljayk9XCJuZXh0UGFnZSgpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubmV4dF9wYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2FyZXQtcmlnaHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLXBhZ2Ugc2RjLWVkZ2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPj0gcGFnZUNvdW50KCkgLSAxXCJcbiAgICAgIChjbGljayk9XCJsYXN0UGFnZSgpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubGFzdF9wYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc3RlcC1mb3J3YXJkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxzZGMtY29tYm9ib3hcbiAgICAgIGNsYXNzPVwic2RjLXJvd3MtY29tYm9ib3hcIlxuICAgICAgW211bHRpcGxlXT1cImZhbHNlXCJcbiAgICAgIFtvcHRpb25zXT1cInJvd09wdGlvbnMoKVwiXG4gICAgICBbYXBwZW5kVG9dPVwiJ2JvZHknXCJcbiAgICAgIFtzaG93Q2xlYXJdPVwiZmFsc2VcIlxuICAgICAgW25nTW9kZWxdPVwicm93cygpLnRvU3RyaW5nKClcIlxuICAgICAgKG9uU2VsZWN0ZWRJdGVtKT1cIm9uUm93c0NvbWJvTW9kZWwoJGV2ZW50KVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnJvd3NfcGVyX3BhZ2UnIHwgdHJhbnNsYXRlXCJcbiAgICA+XG4gICAgPC9zZGMtY29tYm9ib3g+XG4gIDwvZGl2PlxuICBAaWYgKHRvdGFsUmVjb3Jkc0xhYmVsKCkpIHtcbiAgPHNwYW4gY2xhc3M9XCJzZGMtdG90YWxcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj4ge3sgdG90YWxSZWNvcmRzTGFiZWwoKSB9fToge3sgdG90YWxSZWNvcmRzKCkgfX0gPC9zcGFuPlxuICB9XG48L25hdj5cbiJdfQ==
|