@koobiq/components 18.30.0 → 18.31.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/core/common-behaviors/error-state.d.ts +18 -0
- package/core/common-behaviors/index.d.ts +1 -1
- package/core/option/_option-theme.scss +24 -2
- package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +1 -1
- package/datepicker/datepicker-input.directive.d.ts +14 -5
- package/datepicker/datepicker-module.d.ts +1 -1
- package/datepicker/datepicker-toggle.component.d.ts +22 -0
- package/datepicker/datepicker-toggle.scss +6 -0
- package/esm2022/core/common-behaviors/error-state.mjs +28 -1
- package/esm2022/core/common-behaviors/index.mjs +2 -2
- package/esm2022/core/option/option.mjs +2 -2
- package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/calendar-header.component.mjs +1 -1
- package/esm2022/datepicker/datepicker-input.directive.mjs +66 -6
- package/esm2022/datepicker/datepicker-module.mjs +8 -3
- package/esm2022/datepicker/datepicker-toggle.component.mjs +94 -10
- package/esm2022/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/filter-bar/filter-bar.mjs +11 -3
- package/esm2022/filter-bar/filter-bar.types.mjs +1 -1
- package/esm2022/filter-bar/pipe-add.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-date.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +29 -9
- package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +30 -10
- package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
- package/esm2022/icon/icon-button.component.mjs +2 -2
- package/esm2022/list/list-selection.component.mjs +5 -4
- package/esm2022/list/list.component.mjs +2 -2
- package/esm2022/select/select.component.mjs +30 -12
- package/esm2022/timezone/timezone-option.component.mjs +2 -2
- package/esm2022/timezone/timezone-select.component.mjs +2 -2
- package/esm2022/tree/toggle.mjs +2 -2
- package/esm2022/tree/tree-option.component.mjs +5 -4
- package/esm2022/tree/tree-selection.component.mjs +2 -2
- package/esm2022/tree/tree.mjs +2 -2
- package/esm2022/tree-select/tree-select.component.mjs +32 -13
- package/fesm2022/koobiq-components-core.mjs +33 -6
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +159 -11
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +2 -2
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +71 -23
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +2 -2
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +6 -5
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +29 -11
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +4 -4
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +31 -12
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +10 -9
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/filter-bar/filter-bar.d.ts +7 -1
- package/filter-bar/filter-bar.types.d.ts +5 -0
- package/filter-bar/pipes/pipe-multi-select.d.ts +5 -1
- package/filter-bar/pipes/pipe-multi-tree-select.d.ts +5 -1
- package/icon/_icon-button-theme.scss +67 -85
- package/list/_list-theme.scss +24 -2
- package/list/list-tokens.scss +5 -0
- package/package.json +6 -6
- package/schematics/ng-add/index.js +5 -5
- package/select/select.component.d.ts +8 -1
- package/tree/_tree-theme.scss +30 -7
- package/tree/tree-option.scss +5 -2
- package/tree/tree-tokens.scss +5 -0
- package/tree-select/tree-select.component.d.ts +8 -1
|
@@ -33,7 +33,9 @@ export class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
|
|
|
33
33
|
}
|
|
34
34
|
/** Whether the current pipe is empty. */
|
|
35
35
|
get isEmpty() {
|
|
36
|
-
return (super.isEmpty ||
|
|
36
|
+
return (super.isEmpty ||
|
|
37
|
+
(Array.isArray(this.data.value) && !this.data.value.length) ||
|
|
38
|
+
(this.selectedAllEqualsSelectedNothing && this.allOptionsSelected));
|
|
37
39
|
}
|
|
38
40
|
get selectAllCheckboxState() {
|
|
39
41
|
if (!this.select)
|
|
@@ -56,6 +58,9 @@ export class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
|
|
|
56
58
|
const dataNodesForSelect = this.data.selectAll ? dataNodesLength - 1 : dataNodesLength;
|
|
57
59
|
return this.select?.triggerValues?.length === dataNodesForSelect;
|
|
58
60
|
}
|
|
61
|
+
get selectedAllEqualsSelectedNothing() {
|
|
62
|
+
return this.data.selectedAllEqualsSelectedNothing ?? this.filterBar.selectedAllEqualsSelectedNothing;
|
|
63
|
+
}
|
|
59
64
|
/** true if all visible options selected */
|
|
60
65
|
get allVisibleOptionsSelected() {
|
|
61
66
|
return this.tree.renderedOptions
|
|
@@ -83,6 +88,11 @@ export class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
|
|
|
83
88
|
this.dataSource.data = values;
|
|
84
89
|
}
|
|
85
90
|
};
|
|
91
|
+
/** handler for select all options in select */
|
|
92
|
+
this.selectAllHandler = (event) => {
|
|
93
|
+
event.preventDefault();
|
|
94
|
+
this.toggleSelectAllNode();
|
|
95
|
+
};
|
|
86
96
|
this.transformer = (node, level, parent) => {
|
|
87
97
|
const flatNode = new KbqTreeSelectFlatNode();
|
|
88
98
|
flatNode.name = node.name;
|
|
@@ -129,7 +139,7 @@ export class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
|
|
|
129
139
|
}
|
|
130
140
|
this.toggleParents(option.data.parent);
|
|
131
141
|
this.data.value = this.select.selectedValues;
|
|
132
|
-
this.
|
|
142
|
+
this.emitChangePipeEvent();
|
|
133
143
|
this.stateChanges.next();
|
|
134
144
|
}
|
|
135
145
|
searchKeydownHandler() {
|
|
@@ -137,8 +147,8 @@ export class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
|
|
|
137
147
|
this.toggleSelectAllNode();
|
|
138
148
|
}
|
|
139
149
|
}
|
|
140
|
-
toggleSelectAllNode() {
|
|
141
|
-
if (this.select.search
|
|
150
|
+
toggleSelectAllNode(emitEvent = true) {
|
|
151
|
+
if (this.select.search?.ngControl.value) {
|
|
142
152
|
const renderedOptions = this.tree.renderedOptions.filter(({ value }) => value !== kbqTreeSelectAllValue);
|
|
143
153
|
if (this.allVisibleOptionsSelected) {
|
|
144
154
|
renderedOptions.forEach((option) => option.setSelected(false));
|
|
@@ -158,7 +168,9 @@ export class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
|
|
|
158
168
|
}
|
|
159
169
|
}
|
|
160
170
|
this.data.value = [...this.select.selectedValues];
|
|
161
|
-
|
|
171
|
+
if (emitEvent) {
|
|
172
|
+
this.emitChangePipeEvent();
|
|
173
|
+
}
|
|
162
174
|
this.stateChanges.next();
|
|
163
175
|
}
|
|
164
176
|
/** opens select */
|
|
@@ -169,8 +181,16 @@ export class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
|
|
|
169
181
|
this.treeControl.expandAll();
|
|
170
182
|
}
|
|
171
183
|
onClose() {
|
|
172
|
-
if (this.allOptionsSelected) {
|
|
173
|
-
this.toggleSelectAllNode();
|
|
184
|
+
if (this.selectedAllEqualsSelectedNothing && this.allOptionsSelected) {
|
|
185
|
+
this.toggleSelectAllNode(false);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
emitChangePipeEvent() {
|
|
189
|
+
if (this.selectedAllEqualsSelectedNothing && this.allOptionsSelected) {
|
|
190
|
+
this.filterBar?.onChangePipe.emit({ ...this.data, value: [] });
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
this.filterBar?.onChangePipe.emit(this.data);
|
|
174
194
|
}
|
|
175
195
|
}
|
|
176
196
|
toggleParents(parent) {
|
|
@@ -194,7 +214,7 @@ export class KbqPipeMultiTreeSelectComponent extends KbqBasePipe {
|
|
|
194
214
|
provide: KbqBasePipe,
|
|
195
215
|
useExisting: this
|
|
196
216
|
}
|
|
197
|
-
], viewQueries: [{ propertyName: "select", first: true, predicate: KbqTreeSelect, descendants: true }, { propertyName: "tree", first: true, predicate: KbqTreeSelection, descendants: true }], usesInheritance: true, ngImport: i0, template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [multiple]=\"true\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-multi-tree-select__panel'\"\n [tabIndex]=\"-1\"\n (closed)=\"onClose()\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n autocomplete=\"off\"\n kbqInput\n placeholder=\"{{ localeData.search.placeholder }}\"\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"searchKeydownHandler()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n\n @if (select.selected?.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.selected[0].name }}\n </span>\n } @else if (select.selected?.length > 1 && !allOptionsSelected) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ numberOfSelectedLeaves }}\n </kbq-badge>\n }\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeSelectAll\"\n kbqTreeNodePadding\n [class.kbq-selected]=\"allOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectAllNode()\"\n >\n <kbq-pseudo-checkbox [state]=\"selectAllCheckboxState\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding [checkboxThirdState]=\"true\">\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeHasChild\"\n kbqTreeNodePadding\n [checkboxThirdState]=\"true\"\n >\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multi-tree-select .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multi-tree-select .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe__multi-tree-select .kbq-tree-select .kbq-select__trigger{height:unset}.kbq-pipe-multi-tree-select__panel .kbq-select__content{max-height:404px}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", exportAs: ["kbqFormFieldWithoutBorders"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]" }, { kind: "component", type: i2.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i2.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqHighlightModule }, { kind: "pipe", type: i5.KbqHighlightPipe, name: "mcHighlight" }, { kind: "ngmodule", type: KbqTreeModule }, { kind: "directive", type: i6.KbqTreeNodeDef, selector: "[kbqTreeNodeDef]", inputs: ["kbqTreeNodeDefWhen", "kbqTreeNode"] }, { kind: "directive", type: i6.KbqTreeNodePadding, selector: "[kbqTreeNodePadding]", inputs: ["kbqTreeNodePaddingIndent"], exportAs: ["kbqTreeNodePadding"] }, { kind: "component", type: i6.KbqTreeSelection, selector: "kbq-tree-selection", inputs: ["treeControl", "autoSelect", "noUnselectLast", "disabled", "tabIndex"], outputs: ["navigationChange", "selectionChange", "onSelectAll", "onCopy"], exportAs: ["kbqTreeSelection"] }, { kind: "component", type: i6.KbqTreeOption, selector: "kbq-tree-option", inputs: ["checkboxThirdState", "disabled", "selectable", "showCheckbox"], outputs: ["onSelectionChange"], exportAs: ["kbqTreeOption"] }, { kind: "component", type: i6.KbqTreeNodeToggleComponent, selector: "kbq-tree-node-toggle", exportAs: ["kbqTreeNodeToggle"] }, { kind: "ngmodule", type: KbqTreeSelectModule }, { kind: "component", type: i7.KbqTreeSelect, selector: "kbq-tree-select", inputs: ["hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "placeholder", "required", "multiple", "autoSelect", "id", "hasBackdrop", "tabIndex", "disabled", "panelWidth", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqTreeSelect"] }, { kind: "directive", type: i5.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i5.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]" }, { kind: "directive", type: i5.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: KbqBadgeModule }, { kind: "component", type: i8.KbqBadge, selector: "kbq-badge", inputs: ["compact", "outline", "badgeColor"] }, { kind: "directive", type: i8.KbqBadgeCssStyler, selector: "kbq-badge" }, { kind: "ngmodule", type: KbqPseudoCheckboxModule }, { kind: "component", type: i5.KbqPseudoCheckbox, selector: "kbq-pseudo-checkbox", inputs: ["big", "state", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
217
|
+
], viewQueries: [{ propertyName: "select", first: true, predicate: KbqTreeSelect, descendants: true }, { propertyName: "tree", first: true, predicate: KbqTreeSelection, descendants: true }], usesInheritance: true, ngImport: i0, template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [multiple]=\"true\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-multi-tree-select__panel'\"\n [selectAllHandler]=\"selectAllHandler\"\n [tabIndex]=\"-1\"\n (closed)=\"onClose()\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n autocomplete=\"off\"\n kbqInput\n placeholder=\"{{ localeData.search.placeholder }}\"\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"searchKeydownHandler()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n\n @if (select.selected?.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.selected[0].name }}\n </span>\n } @else if (\n select.selected?.length > 1 &&\n (!selectedAllEqualsSelectedNothing || (selectedAllEqualsSelectedNothing && !allOptionsSelected))\n ) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ numberOfSelectedLeaves }}\n </kbq-badge>\n }\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeSelectAll\"\n kbqTreeNodePadding\n [class.kbq-selected]=\"allOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectAllNode()\"\n >\n <kbq-pseudo-checkbox [state]=\"selectAllCheckboxState\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding [checkboxThirdState]=\"true\">\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeHasChild\"\n kbqTreeNodePadding\n [checkboxThirdState]=\"true\"\n >\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multi-tree-select .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multi-tree-select .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe__multi-tree-select .kbq-tree-select .kbq-select__trigger{height:unset}.kbq-pipe-multi-tree-select__panel .kbq-select__content{max-height:404px}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", exportAs: ["kbqFormFieldWithoutBorders"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]" }, { kind: "component", type: i2.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i2.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: KbqHighlightModule }, { kind: "pipe", type: i5.KbqHighlightPipe, name: "mcHighlight" }, { kind: "ngmodule", type: KbqTreeModule }, { kind: "directive", type: i6.KbqTreeNodeDef, selector: "[kbqTreeNodeDef]", inputs: ["kbqTreeNodeDefWhen", "kbqTreeNode"] }, { kind: "directive", type: i6.KbqTreeNodePadding, selector: "[kbqTreeNodePadding]", inputs: ["kbqTreeNodePaddingIndent"], exportAs: ["kbqTreeNodePadding"] }, { kind: "component", type: i6.KbqTreeSelection, selector: "kbq-tree-selection", inputs: ["treeControl", "autoSelect", "noUnselectLast", "disabled", "tabIndex"], outputs: ["navigationChange", "selectionChange", "onSelectAll", "onCopy"], exportAs: ["kbqTreeSelection"] }, { kind: "component", type: i6.KbqTreeOption, selector: "kbq-tree-option", inputs: ["checkboxThirdState", "disabled", "selectable", "showCheckbox"], outputs: ["onSelectionChange"], exportAs: ["kbqTreeOption"] }, { kind: "component", type: i6.KbqTreeNodeToggleComponent, selector: "kbq-tree-node-toggle", exportAs: ["kbqTreeNodeToggle"] }, { kind: "ngmodule", type: KbqTreeSelectModule }, { kind: "component", type: i7.KbqTreeSelect, selector: "kbq-tree-select", inputs: ["hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "placeholder", "required", "multiple", "autoSelect", "id", "hasBackdrop", "tabIndex", "disabled", "selectAllHandler", "panelWidth", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqTreeSelect"] }, { kind: "directive", type: i5.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i5.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]" }, { kind: "directive", type: i5.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: KbqBadgeModule }, { kind: "component", type: i8.KbqBadge, selector: "kbq-badge", inputs: ["compact", "outline", "badgeColor"] }, { kind: "directive", type: i8.KbqBadgeCssStyler, selector: "kbq-badge" }, { kind: "ngmodule", type: KbqPseudoCheckboxModule }, { kind: "component", type: i5.KbqPseudoCheckbox, selector: "kbq-pseudo-checkbox", inputs: ["big", "state", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
198
218
|
}
|
|
199
219
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqPipeMultiTreeSelectComponent, decorators: [{
|
|
200
220
|
type: Component,
|
|
@@ -223,7 +243,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
223
243
|
FormsModule,
|
|
224
244
|
KbqBadgeModule,
|
|
225
245
|
KbqPseudoCheckboxModule
|
|
226
|
-
], template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [multiple]=\"true\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-multi-tree-select__panel'\"\n [tabIndex]=\"-1\"\n (closed)=\"onClose()\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n autocomplete=\"off\"\n kbqInput\n placeholder=\"{{ localeData.search.placeholder }}\"\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"searchKeydownHandler()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n\n @if (select.selected?.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.selected[0].name }}\n </span>\n } @else if (select.selected?.length > 1 && !allOptionsSelected) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ numberOfSelectedLeaves }}\n </kbq-badge>\n }\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeSelectAll\"\n kbqTreeNodePadding\n [class.kbq-selected]=\"allOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectAllNode()\"\n >\n <kbq-pseudo-checkbox [state]=\"selectAllCheckboxState\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding [checkboxThirdState]=\"true\">\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeHasChild\"\n kbqTreeNodePadding\n [checkboxThirdState]=\"true\"\n >\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multi-tree-select .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multi-tree-select .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe__multi-tree-select .kbq-tree-select .kbq-select__trigger{height:unset}.kbq-pipe-multi-tree-select__panel .kbq-select__content{max-height:404px}\n"] }]
|
|
246
|
+
], template: "<kbq-tree-select\n #select\n [autoSelect]=\"false\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [multiple]=\"true\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [ngModel]=\"selected\"\n [panelClass]=\"'kbq-pipe-multi-tree-select__panel'\"\n [selectAllHandler]=\"selectAllHandler\"\n [tabIndex]=\"-1\"\n (closed)=\"onClose()\"\n (opened)=\"onOpen()\"\n (selectionChange)=\"onSelect($event)\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-control-flow -->\n <kbq-form-field *ngIf=\"data.search\" kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n autocomplete=\"off\"\n kbqInput\n placeholder=\"{{ localeData.search.placeholder }}\"\n type=\"text\"\n [formControl]=\"searchControl\"\n (keydown.enter)=\"searchKeydownHandler()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n <kbq-cleaner #kbqSelectCleaner />\n\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n\n @if (select.selected?.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.selected[0].name }}\n </span>\n } @else if (\n select.selected?.length > 1 &&\n (!selectedAllEqualsSelectedNothing || (selectedAllEqualsSelectedNothing && !allOptionsSelected))\n ) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ numberOfSelectedLeaves }}\n </kbq-badge>\n }\n </button>\n\n <kbq-tree-selection [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeSelectAll\"\n kbqTreeNodePadding\n [class.kbq-selected]=\"allOptionsSelected\"\n [selectable]=\"false\"\n (click)=\"toggleSelectAllNode()\"\n >\n <kbq-pseudo-checkbox [state]=\"selectAllCheckboxState\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option *kbqTreeNodeDef=\"let node\" kbqTreeNodePadding [checkboxThirdState]=\"true\">\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n\n <kbq-tree-option\n *kbqTreeNodeDef=\"let node; when: isNodeHasChild\"\n kbqTreeNodePadding\n [checkboxThirdState]=\"true\"\n >\n <kbq-tree-node-toggle [node]=\"node\" />\n <span [innerHTML]=\"treeControl.getViewValue(node) | mcHighlight: treeControl.filterValue.value\"></span>\n </kbq-tree-option>\n </kbq-tree-selection>\n</kbq-tree-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multi-tree-select .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multi-tree-select .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe__multi-tree-select .kbq-tree-select .kbq-select__trigger{height:unset}.kbq-pipe-multi-tree-select__panel .kbq-select__content{max-height:404px}\n"] }]
|
|
227
247
|
}], ctorParameters: () => [], propDecorators: { select: [{
|
|
228
248
|
type: ViewChild,
|
|
229
249
|
args: [KbqTreeSelect]
|
|
@@ -231,4 +251,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
231
251
|
type: ViewChild,
|
|
232
252
|
args: [KbqTreeSelection]
|
|
233
253
|
}] } });
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1tdWx0aS10cmVlLXNlbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsdGVyLWJhci9waXBlcy9waXBlLW11bHRpLXRyZWUtc2VsZWN0LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWx0ZXItYmFyL3BpcGVzL3BpcGUtbXVsdGktdHJlZS1zZWxlY3QuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQ0gsZUFBZSxFQUNmLHFCQUFxQixFQUNy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QWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixJQUFJO3dCQUNKLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCx1QkFBdUI7cUJBQzFCO3dEQWdCeUIsTUFBTTtzQkFBL0IsU0FBUzt1QkFBQyxhQUFhO2dCQUdLLElBQUk7c0JBQWhDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLYnFCYWRnZU1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBLYnFCdXR0b25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEticUhpZ2hsaWdodE1vZHVsZSwgS2JxUHNldWRvQ2hlY2tib3hNb2R1bGUsIEticVBzZXVkb0NoZWNrYm94U3RhdGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFEaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RpdmlkZXInO1xuaW1wb3J0IHsgS2JxRm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgS2JxSWNvbiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEticUlucHV0TW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2lucHV0JztcbmltcG9ydCB7IEticVRpdGxlTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RpdGxlJztcbmltcG9ydCB7XG4gICAgRmxhdFRyZWVDb250cm9sLFxuICAgIEticVRyZWVGbGF0RGF0YVNvdXJjZSxcbiAgICBLYnFUcmVlRmxhdHRlbmVyLFxuICAgIEticVRyZWVNb2R1bGUsXG4gICAga2JxVHJlZVNlbGVjdEFsbFZhbHVlLFxuICAgIEticVRyZWVTZWxlY3Rpb25cbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RyZWUnO1xuaW1wb3J0IHsgS2JxVHJlZVNlbGVjdCwgS2JxVHJlZVNlbGVjdE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90cmVlLXNlbGVjdCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLYnFQaXBlVGVtcGxhdGUsIEticVNlbGVjdFZhbHVlLCBLYnFUcmVlU2VsZWN0RmxhdE5vZGUsIEticVRyZWVTZWxlY3ROb2RlIH0gZnJvbSAnLi4vZmlsdGVyLWJhci50eXBlcyc7XG5pbXBvcnQgeyBnZXRJZCwgS2JxQmFzZVBpcGUsIEticVBpcGVNaW5XaWR0aCB9IGZyb20gJy4vYmFzZS1waXBlJztcbmltcG9ydCB7IEticVBpcGVCdXR0b24gfSBmcm9tICcuL3BpcGUtYnV0dG9uJztcbmltcG9ydCB7IEticVBpcGVTdGF0ZSB9IGZyb20gJy4vcGlwZS1zdGF0ZSc7XG5pbXBvcnQgeyBLYnFQaXBlVGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuL3BpcGUtdGl0bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLXBpcGUtbXVsdGktdHJlZS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAncGlwZS1tdWx0aS10cmVlLXNlbGVjdC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnYmFzZS1waXBlLnNjc3MnLCAncGlwZS1tdWx0aS10cmVlLXNlbGVjdC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS2JxQmFzZVBpcGUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogdGhpc1xuICAgICAgICB9XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEticUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgS2JxRGl2aWRlck1vZHVsZSxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgS2JxUGlwZVN0YXRlLFxuICAgICAgICBLYnFQaXBlQnV0dG9uLFxuICAgICAgICBLYnFUaXRsZU1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBLYnFQaXBlTWluV2lkdGgsXG4gICAgICAgIEticUZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgS2JxSWNvbixcbiAgICAgICAgS2JxSW5wdXRNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEticUhpZ2hsaWdodE1vZHVsZSxcbiAgICAgICAgS2JxVHJlZU1vZHVsZSxcbiAgICAgICAgS2JxVHJlZVNlbGVjdE1vZHVsZSxcbiAgICAgICAgTmdJZixcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIEticUJhZGdlTW9kdWxlLFxuICAgICAgICBLYnFQc2V1ZG9DaGVja2JveE1vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgS2JxUGlwZU11bHRpVHJlZVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEticUJhc2VQaXBlPEticVNlbGVjdFZhbHVlW10+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogY29udHJvbCBmb3Igc2VhcmNoIG9wdGlvbnMgKi9cbiAgICBzZWFyY2hDb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gICAgLyoqIGZpbHRlcmVkIGJ5IHNlYXJjaCBvcHRpb25zICovXG4gICAgZmlsdGVyZWRPcHRpb25zOiBPYnNlcnZhYmxlPGFueVtdPjtcblxuICAgIHRyZWVDb250cm9sOiBGbGF0VHJlZUNvbnRyb2w8S2JxVHJlZVNlbGVjdEZsYXROb2RlPjtcbiAgICB0cmVlRmxhdHRlbmVyOiBLYnFUcmVlRmxhdHRlbmVyPEticVRyZWVTZWxlY3ROb2RlLCBLYnFUcmVlU2VsZWN0RmxhdE5vZGU+O1xuXG4gICAgZGF0YVNvdXJjZTogS2JxVHJlZUZsYXREYXRhU291cmNlPEticVRyZWVTZWxlY3ROb2RlLCBLYnFUcmVlU2VsZWN0RmxhdE5vZGU+O1xuXG4gICAgdGVtcGxhdGU6IGFueTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgQFZpZXdDaGlsZChLYnFUcmVlU2VsZWN0KSBzZWxlY3Q6IEticVRyZWVTZWxlY3Q7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIEBWaWV3Q2hpbGQoS2JxVHJlZVNlbGVjdGlvbikgdHJlZTogS2JxVHJlZVNlbGVjdGlvbjtcblxuICAgIC8qKiBzZWxlY3RlZCB2YWx1ZSAqL1xuICAgIGdldCBzZWxlY3RlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS52YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBwaXBlIGlzIGVtcHR5LiAqL1xuICAgIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgc3VwZXIuaXNFbXB0eSB8fCAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEudmFsdWUpICYmIHRoaXMuZGF0YS52YWx1ZS5sZW5ndGggPT09IDApIHx8IHRoaXMuYWxsT3B0aW9uc1NlbGVjdGVkXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdEFsbENoZWNrYm94U3RhdGUoKTogS2JxUHNldWRvQ2hlY2tib3hTdGF0ZSB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3QpIHJldHVybiAndW5jaGVja2VkJztcblxuICAgICAgICBjb25zdCBhcnJheU9mT3B0aW9ucyA9IHRoaXMuc2VsZWN0Lm9wdGlvbnMudG9BcnJheSgpLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgIT09IGticVRyZWVTZWxlY3RBbGxWYWx1ZSk7XG5cbiAgICAgICAgaWYgKGFycmF5T2ZPcHRpb25zLmV2ZXJ5KChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnY2hlY2tlZCc7XG4gICAgICAgIH0gZWxzZSBpZiAoYXJyYXlPZk9wdGlvbnMuZXZlcnkoKG9wdGlvbikgPT4gIW9wdGlvbi5zZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiAndW5jaGVja2VkJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnaW5kZXRlcm1pbmF0ZSc7XG4gICAgfVxuXG4gICAgZ2V0IG51bWJlck9mU2VsZWN0ZWRMZWF2ZXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0LnNlbGVjdGVkLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB2YWx1ZSAhPT0ga2JxVHJlZVNlbGVjdEFsbFZhbHVlKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqIHRydWUgaWYgYWxsIG9wdGlvbnMgc2VsZWN0ZWQgKi9cbiAgICBnZXQgYWxsT3B0aW9uc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkYXRhTm9kZXNMZW5ndGggPSB0aGlzLnRyZWVDb250cm9sPy5kYXRhTm9kZXM/Lmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGF0YU5vZGVzRm9yU2VsZWN0ID0gdGhpcy5kYXRhLnNlbGVjdEFsbCA/IGRhdGFOb2Rlc0xlbmd0aCAtIDEgOiBkYXRhTm9kZXNMZW5ndGg7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0Py50cmlnZ2VyVmFsdWVzPy5sZW5ndGggPT09IGRhdGFOb2Rlc0ZvclNlbGVjdDtcbiAgICB9XG5cbiAgICAvKiogdHJ1ZSBpZiBhbGwgdmlzaWJsZSBvcHRpb25zIHNlbGVjdGVkICovXG4gICAgZ2V0IGFsbFZpc2libGVPcHRpb25zU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyZWUucmVuZGVyZWRPcHRpb25zXG4gICAgICAgICAgICAuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSAhPT0ga2JxVHJlZVNlbGVjdEFsbFZhbHVlKVxuICAgICAgICAgICAgLmV2ZXJ5KChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy50cmVlRmxhdHRlbmVyID0gbmV3IEticVRyZWVGbGF0dGVuZXIodGhpcy50cmFuc2Zvcm1lciwgdGhpcy5nZXRMZXZlbCwgdGhpcy5pc0V4cGFuZGFibGUsIHRoaXMuZ2V0Q2hpbGRyZW4pO1xuXG4gICAgICAgIHRoaXMudHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPEticVRyZWVTZWxlY3RGbGF0Tm9kZT4oXG4gICAgICAgICAgICB0aGlzLmdldExldmVsLFxuICAgICAgICAgICAgdGhpcy5pc0V4cGFuZGFibGUsXG4gICAgICAgICAgICB0aGlzLmdldFZhbHVlLFxuICAgICAgICAgICAgdGhpcy5nZXRWaWV3VmFsdWVcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgS2JxVHJlZUZsYXREYXRhU291cmNlKHRoaXMudHJlZUNvbnRyb2wsIHRoaXMudHJlZUZsYXR0ZW5lcik7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJCYXI/LmludGVybmFsVGVtcGxhdGVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUodGhpcy51cGRhdGVUZW1wbGF0ZXMpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMudHJlZUNvbnRyb2wuZmlsdGVyTm9kZXModmFsdWUpKTtcbiAgICB9XG5cbiAgICBpc05vZGVIYXNDaGlsZChfOiBudW1iZXIsIG5vZGVEYXRhKSB7XG4gICAgICAgIHJldHVybiBub2RlRGF0YS5leHBhbmRhYmxlO1xuICAgIH1cblxuICAgIGlzTm9kZVNlbGVjdEFsbChfOiBudW1iZXIsIG5vZGVEYXRhKSB7XG4gICAgICAgIHJldHVybiBub2RlRGF0YS52YWx1ZSA9PT0ga2JxVHJlZVNlbGVjdEFsbFZhbHVlO1xuICAgIH1cblxuICAgIG9uU2VsZWN0KHsgdmFsdWU6IG9wdGlvbiB9KSB7XG4gICAgICAgIGlmICghb3B0aW9uKSByZXR1cm47XG5cbiAgICAgICAgaWYgKG9wdGlvbi5pc0V4cGFuZGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZS5zZXRTdGF0ZUNoaWxkcmVuKG9wdGlvbiwgIW9wdGlvbi5zZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvZ2dsZVBhcmVudHMob3B0aW9uLmRhdGEucGFyZW50KTtcblxuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSB0aGlzLnNlbGVjdC5zZWxlY3RlZFZhbHVlcztcbiAgICAgICAgdGhpcy5maWx0ZXJCYXI/Lm9uQ2hhbmdlUGlwZS5lbWl0KHRoaXMuZGF0YSk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG5cbiAgICBzZWFyY2hLZXlkb3duSGFuZGxlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5zZWxlY3RBbGwgJiYgdGhpcy50cmVlLmtleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdEFsbE5vZGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZVNlbGVjdEFsbE5vZGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdC5zZWFyY2gubmdDb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJlZE9wdGlvbnMgPSB0aGlzLnRyZWUucmVuZGVyZWRPcHRpb25zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB2YWx1ZSAhPT0ga2JxVHJlZVNlbGVjdEFsbFZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYWxsVmlzaWJsZU9wdGlvbnNTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHJlbmRlcmVkT3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IG9wdGlvbi5zZXRTZWxlY3RlZChmYWxzZSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZW5kZXJlZE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uc2V0U2VsZWN0ZWQodHJ1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsT3B0aW9uc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIC4uLmRhdGFOb2Rlc0ZvclNlbGVjdF0gPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2RlcztcblxuICAgICAgICAgICAgICAgIC8vIEB0b2RvIERTLTM4MjdcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWUuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KC4uLihkYXRhTm9kZXNGb3JTZWxlY3QgYXMgYW55KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSBbLi4udGhpcy5zZWxlY3Quc2VsZWN0ZWRWYWx1ZXNdO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyQmFyPy5vbkNoYW5nZVBpcGUuZW1pdCh0aGlzLmRhdGEpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIHVwZGF0ZXMgdmFsdWVzIGZvciBzZWxlY3Rpb24gYW5kIHZhbHVlIHRlbXBsYXRlICovXG4gICAgb3ZlcnJpZGUgdXBkYXRlVGVtcGxhdGVzID0gKHRlbXBsYXRlczogS2JxUGlwZVRlbXBsYXRlW10gfCBudWxsKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gdGVtcGxhdGVzPy5maW5kKCh0ZW1wbGF0ZSkgPT4gZ2V0SWQodGVtcGxhdGUpID09PSBnZXRJZCh0aGlzLmRhdGEpKTtcblxuICAgICAgICBpZiAodGVtcGxhdGU/LnZhbHVlcykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXMgPSB0ZW1wbGF0ZS52YWx1ZXM7XG4gICAgICAgICAgICB0aGlzLnZhbHVlVGVtcGxhdGUgPSB0ZW1wbGF0ZS52YWx1ZVRlbXBsYXRlO1xuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBbLi4uKHRlbXBsYXRlLnZhbHVlcyBhcyBLYnFUcmVlU2VsZWN0Tm9kZVtdKV07XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGEuc2VsZWN0QWxsKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVzLnVuc2hpZnQoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmxvY2FsZURhdGEucGlwZS5zZWxlY3RBbGwsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBrYnFUcmVlU2VsZWN0QWxsVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBudWxsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdmFsdWVzO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKiBvcGVucyBzZWxlY3QgKi9cbiAgICBvdmVycmlkZSBvcGVuKCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VsZWN0Lm9wZW4oKSk7XG4gICAgfVxuXG4gICAgb25PcGVuKCkge1xuICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZEFsbCgpO1xuICAgIH1cblxuICAgIG9uQ2xvc2UoKSB7XG4gICAgICAgIGlmICh0aGlzLmFsbE9wdGlvbnNTZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVTZWxlY3RBbGxOb2RlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHRvZ2dsZVBhcmVudHMocGFyZW50KSB7XG4gICAgICAgIGlmICghcGFyZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZXNjZW5kYW50cyA9IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMocGFyZW50KTtcbiAgICAgICAgY29uc3QgaXNQYXJlbnRTZWxlY3RlZCA9IHRoaXMuc2VsZWN0LnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmluY2x1ZGVzKHBhcmVudCk7XG5cbiAgICAgICAgaWYgKCFpc1BhcmVudFNlbGVjdGVkICYmIGRlc2NlbmRhbnRzLmV2ZXJ5KChkOiBhbnkpID0+IHRoaXMuc2VsZWN0LnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmluY2x1ZGVzKGQpKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Quc2VsZWN0aW9uTW9kZWwuc2VsZWN0KHBhcmVudCk7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVBhcmVudHMocGFyZW50LnBhcmVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNQYXJlbnRTZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Quc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3QocGFyZW50KTtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlUGFyZW50cyhwYXJlbnQucGFyZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdHJhbnNmb3JtZXIgPSAobm9kZTogS2JxVHJlZVNlbGVjdE5vZGUsIGxldmVsOiBudW1iZXIsIHBhcmVudDogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGZsYXROb2RlID0gbmV3IEticVRyZWVTZWxlY3RGbGF0Tm9kZSgpO1xuXG4gICAgICAgIGZsYXROb2RlLm5hbWUgPSBub2RlLm5hbWU7XG4gICAgICAgIGZsYXROb2RlLnZhbHVlID0gbm9kZS52YWx1ZTtcbiAgICAgICAgZmxhdE5vZGUucGFyZW50ID0gcGFyZW50O1xuICAgICAgICBmbGF0Tm9kZS5sZXZlbCA9IGxldmVsO1xuICAgICAgICBmbGF0Tm9kZS5leHBhbmRhYmxlID0gISFub2RlLmNoaWxkcmVuO1xuXG4gICAgICAgIHJldHVybiBmbGF0Tm9kZTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnZXRMZXZlbCA9IChub2RlOiBLYnFUcmVlU2VsZWN0RmxhdE5vZGUpID0+IHtcbiAgICAgICAgcmV0dXJuIG5vZGUubGV2ZWw7XG4gICAgfTtcblxuICAgIHByaXZhdGUgaXNFeHBhbmRhYmxlID0gKG5vZGU6IEticVRyZWVTZWxlY3RGbGF0Tm9kZSkgPT4ge1xuICAgICAgICByZXR1cm4gbm9kZS5leHBhbmRhYmxlO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGdldENoaWxkcmVuID0gKG5vZGU6IEticVRyZWVTZWxlY3ROb2RlKTogS2JxVHJlZVNlbGVjdE5vZGVbXSB8IG51bGwgPT4ge1xuICAgICAgICByZXR1cm4gbm9kZS5jaGlsZHJlbjtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnZXRWYWx1ZSA9IChub2RlOiBLYnFUcmVlU2VsZWN0RmxhdE5vZGUpOiB1bmtub3duID0+IHtcbiAgICAgICAgcmV0dXJuIG5vZGUudmFsdWU7XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0Vmlld1ZhbHVlID0gKG5vZGU6IEticVRyZWVTZWxlY3RGbGF0Tm9kZSk6IHN0cmluZyA9PiB7XG4gICAgICAgIHJldHVybiBgJHtub2RlLm5hbWV9YDtcbiAgICB9O1xufVxuIiwiPGticS10cmVlLXNlbGVjdFxuICAgICNzZWxlY3RcbiAgICBbYXV0b1NlbGVjdF09XCJmYWxzZVwiXG4gICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWRcIlxuICAgIFtrYnFQaXBlVGl0bGVdPVwicGlwZVRvb2x0aXBcIlxuICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICBbbmdDbGFzc109XCJ7ICdrYnEtYWN0aXZlJzogc2VsZWN0LnBhbmVsT3BlbiB9XCJcbiAgICBbbmdNb2RlbF09XCJzZWxlY3RlZFwiXG4gICAgW3BhbmVsQ2xhc3NdPVwiJ2ticS1waXBlLW11bHRpLXRyZWUtc2VsZWN0X19wYW5lbCdcIlxuICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgKGNsb3NlZCk9XCJvbkNsb3NlKClcIlxuICAgIChvcGVuZWQpPVwib25PcGVuKClcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50KVwiXG4+XG4gICAgPCEtLSBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3RlbXBsYXRlL3ByZWZlci1jb250cm9sLWZsb3cgLS0+XG4gICAgPGticS1mb3JtLWZpZWxkICpuZ0lmPVwiZGF0YS5zZWFyY2hcIiBrYnFGb3JtRmllbGRXaXRob3V0Qm9yZGVycyBrYnFTZWxlY3RTZWFyY2g+XG4gICAgICAgIDxpIGticS1pY29uPVwia2JxLW1hZ25pZnlpbmctZ2xhc3NfMTZcIiBrYnFQcmVmaXg+PC9pPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICBrYnFJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBsb2NhbGVEYXRhLnNlYXJjaC5wbGFjZWhvbGRlciB9fVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbFwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzZWFyY2hLZXlkb3duSGFuZGxlcigpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGticS1jbGVhbmVyIC8+XG4gICAgPC9rYnEtZm9ybS1maWVsZD5cblxuICAgIDxkaXYga2JxLXNlbGVjdC1zZWFyY2gtZW1wdHktcmVzdWx0Pnt7IGxvY2FsZURhdGEucGlwZS5lbXB0eVNlYXJjaFJlc3VsdCB9fTwvZGl2PlxuXG4gICAgPGticS1jbGVhbmVyICNrYnFTZWxlY3RDbGVhbmVyIC8+XG5cbiAgICA8YnV0dG9uXG4gICAgICAgIGticS1idXR0b25cbiAgICAgICAga2JxLXNlbGVjdC1tYXRjaGVyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkYXRhLmRpc2FibGVkXCJcbiAgICAgICAgW2ticVBpcGVTdGF0ZV09XCJkYXRhXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAna2JxLWFjdGl2ZSc6IHNlbGVjdC5wYW5lbE9wZW4gfVwiXG4gICAgPlxuICAgICAgICA8c3BhbiAja2JxVGl0bGVUZXh0IGticVBpcGVNaW5XaWR0aCBjbGFzcz1cImticS1waXBlX19uYW1lXCI+e3sgZGF0YS5uYW1lIH19PC9zcGFuPlxuXG4gICAgICAgIEBpZiAoc2VsZWN0LnNlbGVjdGVkPy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIDxzcGFuICNrYnFUaXRsZVRleHQgY2xhc3M9XCJrYnEtcGlwZV9fdmFsdWVcIiBbY2xhc3Mua2JxLXBpcGVfX3ZhbHVlX2VtcHR5XT1cIiFzZWxlY3QudHJpZ2dlclZhbHVlXCI+XG4gICAgICAgICAgICAgICAge3sgc2VsZWN0LnNlbGVjdGVkWzBdLm5hbWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfSBAZWxzZSBpZiAoc2VsZWN0LnNlbGVjdGVkPy5sZW5ndGggPiAxICYmICFhbGxPcHRpb25zU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIDxrYnEtYmFkZ2UgW2JhZGdlQ29sb3JdPVwiJ2NvbnRyYXN0J1wiIFtjb21wYWN0XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICB7eyBudW1iZXJPZlNlbGVjdGVkTGVhdmVzIH19XG4gICAgICAgICAgICA8L2ticS1iYWRnZT5cbiAgICAgICAgfVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGticS10cmVlLXNlbGVjdGlvbiBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCI+XG4gICAgICAgIDxrYnEtdHJlZS1vcHRpb25cbiAgICAgICAgICAgICprYnFUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBpc05vZGVTZWxlY3RBbGxcIlxuICAgICAgICAgICAga2JxVHJlZU5vZGVQYWRkaW5nXG4gICAgICAgICAgICBbY2xhc3Mua2JxLXNlbGVjdGVkXT1cImFsbE9wdGlvbnNTZWxlY3RlZFwiXG4gICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2VsZWN0QWxsTm9kZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGticS1wc2V1ZG8tY2hlY2tib3ggW3N0YXRlXT1cInNlbGVjdEFsbENoZWNrYm94U3RhdGVcIiAvPlxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJ0cmVlQ29udHJvbC5nZXRWaWV3VmFsdWUobm9kZSkgfCBtY0hpZ2hsaWdodDogdHJlZUNvbnRyb2wuZmlsdGVyVmFsdWUudmFsdWVcIj48L3NwYW4+XG4gICAgICAgIDwva2JxLXRyZWUtb3B0aW9uPlxuXG4gICAgICAgIDxrYnEtdHJlZS1vcHRpb24gKmticVRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIiBrYnFUcmVlTm9kZVBhZGRpbmcgW2NoZWNrYm94VGhpcmRTdGF0ZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cInRyZWVDb250cm9sLmdldFZpZXdWYWx1ZShub2RlKSB8IG1jSGlnaGxpZ2h0OiB0cmVlQ29udHJvbC5maWx0ZXJWYWx1ZS52YWx1ZVwiPjwvc3Bhbj5cbiAgICAgICAgPC9rYnEtdHJlZS1vcHRpb24+XG5cbiAgICAgICAgPGticS10cmVlLW9wdGlvblxuICAgICAgICAgICAgKmticVRyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IGlzTm9kZUhhc0NoaWxkXCJcbiAgICAgICAgICAgIGticVRyZWVOb2RlUGFkZGluZ1xuICAgICAgICAgICAgW2NoZWNrYm94VGhpcmRTdGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGticS10cmVlLW5vZGUtdG9nZ2xlIFtub2RlXT1cIm5vZGVcIiAvPlxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJ0cmVlQ29udHJvbC5nZXRWaWV3VmFsdWUobm9kZSkgfCBtY0hpZ2hsaWdodDogdHJlZUNvbnRyb2wuZmlsdGVyVmFsdWUudmFsdWVcIj48L3NwYW4+XG4gICAgICAgIDwva2JxLXRyZWUtb3B0aW9uPlxuICAgIDwva2JxLXRyZWUtc2VsZWN0aW9uPlxuPC9rYnEtdHJlZS1zZWxlY3Q+XG5cbkBpZiAoc2hvd1JlbW92ZUJ1dHRvbikge1xuICAgIDxrYnEtcGlwZS1idXR0b24gLz5cbn1cblxuPG5nLXRlbXBsYXRlICNwaXBlVG9vbHRpcD5cbiAgICA8ZGl2IGNsYXNzPVwia2JxLXBpcGUtdG9vbHRpcF9fbmFtZSBrYnEtdGV4dC1jb21wYWN0XCI+e3sgZGF0YS5uYW1lIH19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImticS1waXBlLXRvb2x0aXBfX3ZhbHVlIGticS10ZXh0LWNvbXBhY3RcIj57eyBzZWxlY3QudHJpZ2dlclZhbHVlIH19PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1tdWx0aS10cmVlLXNlbGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsdGVyLWJhci9waXBlcy9waXBlLW11bHRpLXRyZWUtc2VsZWN0LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWx0ZXItYmFyL3BpcGVzL3BpcGUtbXVsdGktdHJlZS1zZWxlY3QuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBMEIsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQ0gsZUFBZSxFQUNmLHFCQUFxQixFQUNy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LEVBQUUsSUFBSTthQUNwQjtTQUNKLGtFQXFDVSxhQUFhLHVFQUdiLGdCQUFnQix1RUNoRi9CLHUvR0EyRkEsbzhKRGpEUSxlQUFlLCtOQUNmLGdCQUFnQiwrQkFDaEIsT0FBTyxvRkFDUCxZQUFZLHFGQUNaLGFBQWEsaUZBQ2IsY0FBYywrQkFDZCxxQkFBcUIsaUhBQ3JCLGVBQWUsNkRBQ2Ysa0JBQWtCLDYzQkFDbEIsT0FBTyxrR0FDUCxjQUFjLGdQQUNkLG1CQUFtQix5a0JBQ25CLGtCQUFrQixnR0FDbEIsYUFBYSx5NUJBQ2IsbUJBQW1CLHUwQkFDbkIsSUFBSSw0RkFDSixXQUFXLHNQQUNYLGNBQWMsdU5BQ2QsdUJBQXVCOzs0RkFHbEIsK0JBQStCO2tCQW5DM0MsU0FBUztpQ0FDTSxJQUFJLFlBQ04sNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixXQUFXLEVBQUUsSUFBSTt5QkFDcEI7cUJBQ0osV0FDUTt3QkFDTCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixJQUFJO3dCQUNKLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCx1QkFBdUI7cUJBQzFCO3dEQWdCeUIsTUFBTTtzQkFBL0IsU0FBUzt1QkFBQyxhQUFhO2dCQUdLLElBQUk7c0JBQWhDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLYnFCYWRnZU1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBLYnFCdXR0b25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEticUhpZ2hsaWdodE1vZHVsZSwgS2JxUHNldWRvQ2hlY2tib3hNb2R1bGUsIEticVBzZXVkb0NoZWNrYm94U3RhdGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFEaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RpdmlkZXInO1xuaW1wb3J0IHsgS2JxRm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgS2JxSWNvbiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEticUlucHV0TW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2lucHV0JztcbmltcG9ydCB7IEticVRpdGxlTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RpdGxlJztcbmltcG9ydCB7XG4gICAgRmxhdFRyZWVDb250cm9sLFxuICAgIEticVRyZWVGbGF0RGF0YVNvdXJjZSxcbiAgICBLYnFUcmVlRmxhdHRlbmVyLFxuICAgIEticVRyZWVNb2R1bGUsXG4gICAga2JxVHJlZVNlbGVjdEFsbFZhbHVlLFxuICAgIEticVRyZWVTZWxlY3Rpb25cbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RyZWUnO1xuaW1wb3J0IHsgS2JxVHJlZVNlbGVjdCwgS2JxVHJlZVNlbGVjdE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90cmVlLXNlbGVjdCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLYnFQaXBlVGVtcGxhdGUsIEticVNlbGVjdFZhbHVlLCBLYnFUcmVlU2VsZWN0RmxhdE5vZGUsIEticVRyZWVTZWxlY3ROb2RlIH0gZnJvbSAnLi4vZmlsdGVyLWJhci50eXBlcyc7XG5pbXBvcnQgeyBnZXRJZCwgS2JxQmFzZVBpcGUsIEticVBpcGVNaW5XaWR0aCB9IGZyb20gJy4vYmFzZS1waXBlJztcbmltcG9ydCB7IEticVBpcGVCdXR0b24gfSBmcm9tICcuL3BpcGUtYnV0dG9uJztcbmltcG9ydCB7IEticVBpcGVTdGF0ZSB9IGZyb20gJy4vcGlwZS1zdGF0ZSc7XG5pbXBvcnQgeyBLYnFQaXBlVGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuL3BpcGUtdGl0bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLXBpcGUtbXVsdGktdHJlZS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAncGlwZS1tdWx0aS10cmVlLXNlbGVjdC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnYmFzZS1waXBlLnNjc3MnLCAncGlwZS1tdWx0aS10cmVlLXNlbGVjdC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS2JxQmFzZVBpcGUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogdGhpc1xuICAgICAgICB9XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEticUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgS2JxRGl2aWRlck1vZHVsZSxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgS2JxUGlwZVN0YXRlLFxuICAgICAgICBLYnFQaXBlQnV0dG9uLFxuICAgICAgICBLYnFUaXRsZU1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBLYnFQaXBlTWluV2lkdGgsXG4gICAgICAgIEticUZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgS2JxSWNvbixcbiAgICAgICAgS2JxSW5wdXRNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEticUhpZ2hsaWdodE1vZHVsZSxcbiAgICAgICAgS2JxVHJlZU1vZHVsZSxcbiAgICAgICAgS2JxVHJlZVNlbGVjdE1vZHVsZSxcbiAgICAgICAgTmdJZixcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIEticUJhZGdlTW9kdWxlLFxuICAgICAgICBLYnFQc2V1ZG9DaGVja2JveE1vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgS2JxUGlwZU11bHRpVHJlZVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEticUJhc2VQaXBlPEticVNlbGVjdFZhbHVlW10+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogY29udHJvbCBmb3Igc2VhcmNoIG9wdGlvbnMgKi9cbiAgICBzZWFyY2hDb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gICAgLyoqIGZpbHRlcmVkIGJ5IHNlYXJjaCBvcHRpb25zICovXG4gICAgZmlsdGVyZWRPcHRpb25zOiBPYnNlcnZhYmxlPGFueVtdPjtcblxuICAgIHRyZWVDb250cm9sOiBGbGF0VHJlZUNvbnRyb2w8S2JxVHJlZVNlbGVjdEZsYXROb2RlPjtcbiAgICB0cmVlRmxhdHRlbmVyOiBLYnFUcmVlRmxhdHRlbmVyPEticVRyZWVTZWxlY3ROb2RlLCBLYnFUcmVlU2VsZWN0RmxhdE5vZGU+O1xuXG4gICAgZGF0YVNvdXJjZTogS2JxVHJlZUZsYXREYXRhU291cmNlPEticVRyZWVTZWxlY3ROb2RlLCBLYnFUcmVlU2VsZWN0RmxhdE5vZGU+O1xuXG4gICAgdGVtcGxhdGU6IGFueTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgQFZpZXdDaGlsZChLYnFUcmVlU2VsZWN0KSBzZWxlY3Q6IEticVRyZWVTZWxlY3Q7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIEBWaWV3Q2hpbGQoS2JxVHJlZVNlbGVjdGlvbikgdHJlZTogS2JxVHJlZVNlbGVjdGlvbjtcblxuICAgIC8qKiBzZWxlY3RlZCB2YWx1ZSAqL1xuICAgIGdldCBzZWxlY3RlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS52YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBwaXBlIGlzIGVtcHR5LiAqL1xuICAgIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgc3VwZXIuaXNFbXB0eSB8fFxuICAgICAgICAgICAgKEFycmF5LmlzQXJyYXkodGhpcy5kYXRhLnZhbHVlKSAmJiAhdGhpcy5kYXRhLnZhbHVlLmxlbmd0aCkgfHxcbiAgICAgICAgICAgICh0aGlzLnNlbGVjdGVkQWxsRXF1YWxzU2VsZWN0ZWROb3RoaW5nICYmIHRoaXMuYWxsT3B0aW9uc1NlbGVjdGVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBzZWxlY3RBbGxDaGVja2JveFN0YXRlKCk6IEticVBzZXVkb0NoZWNrYm94U3RhdGUge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0KSByZXR1cm4gJ3VuY2hlY2tlZCc7XG5cbiAgICAgICAgY29uc3QgYXJyYXlPZk9wdGlvbnMgPSB0aGlzLnNlbGVjdC5vcHRpb25zLnRvQXJyYXkoKS5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlICE9PSBrYnFUcmVlU2VsZWN0QWxsVmFsdWUpO1xuXG4gICAgICAgIGlmIChhcnJheU9mT3B0aW9ucy5ldmVyeSgob3B0aW9uKSA9PiBvcHRpb24uc2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2NoZWNrZWQnO1xuICAgICAgICB9IGVsc2UgaWYgKGFycmF5T2ZPcHRpb25zLmV2ZXJ5KChvcHRpb24pID0+ICFvcHRpb24uc2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3VuY2hlY2tlZCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJ2luZGV0ZXJtaW5hdGUnO1xuICAgIH1cblxuICAgIGdldCBudW1iZXJPZlNlbGVjdGVkTGVhdmVzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdC5zZWxlY3RlZC5maWx0ZXIoKHsgdmFsdWUgfSkgPT4gdmFsdWUgIT09IGticVRyZWVTZWxlY3RBbGxWYWx1ZSkubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKiB0cnVlIGlmIGFsbCBvcHRpb25zIHNlbGVjdGVkICovXG4gICAgZ2V0IGFsbE9wdGlvbnNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZGF0YU5vZGVzTGVuZ3RoID0gdGhpcy50cmVlQ29udHJvbD8uZGF0YU5vZGVzPy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGRhdGFOb2Rlc0ZvclNlbGVjdCA9IHRoaXMuZGF0YS5zZWxlY3RBbGwgPyBkYXRhTm9kZXNMZW5ndGggLSAxIDogZGF0YU5vZGVzTGVuZ3RoO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdD8udHJpZ2dlclZhbHVlcz8ubGVuZ3RoID09PSBkYXRhTm9kZXNGb3JTZWxlY3Q7XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdGVkQWxsRXF1YWxzU2VsZWN0ZWROb3RoaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLnNlbGVjdGVkQWxsRXF1YWxzU2VsZWN0ZWROb3RoaW5nID8/IHRoaXMuZmlsdGVyQmFyIS5zZWxlY3RlZEFsbEVxdWFsc1NlbGVjdGVkTm90aGluZztcbiAgICB9XG5cbiAgICAvKiogdHJ1ZSBpZiBhbGwgdmlzaWJsZSBvcHRpb25zIHNlbGVjdGVkICovXG4gICAgZ2V0IGFsbFZpc2libGVPcHRpb25zU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyZWUucmVuZGVyZWRPcHRpb25zXG4gICAgICAgICAgICAuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSAhPT0ga2JxVHJlZVNlbGVjdEFsbFZhbHVlKVxuICAgICAgICAgICAgLmV2ZXJ5KChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy50cmVlRmxhdHRlbmVyID0gbmV3IEticVRyZWVGbGF0dGVuZXIodGhpcy50cmFuc2Zvcm1lciwgdGhpcy5nZXRMZXZlbCwgdGhpcy5pc0V4cGFuZGFibGUsIHRoaXMuZ2V0Q2hpbGRyZW4pO1xuXG4gICAgICAgIHRoaXMudHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPEticVRyZWVTZWxlY3RGbGF0Tm9kZT4oXG4gICAgICAgICAgICB0aGlzLmdldExldmVsLFxuICAgICAgICAgICAgdGhpcy5pc0V4cGFuZGFibGUsXG4gICAgICAgICAgICB0aGlzLmdldFZhbHVlLFxuICAgICAgICAgICAgdGhpcy5nZXRWaWV3VmFsdWVcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgS2JxVHJlZUZsYXREYXRhU291cmNlKHRoaXMudHJlZUNvbnRyb2wsIHRoaXMudHJlZUZsYXR0ZW5lcik7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJCYXI/LmludGVybmFsVGVtcGxhdGVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUodGhpcy51cGRhdGVUZW1wbGF0ZXMpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMudHJlZUNvbnRyb2wuZmlsdGVyTm9kZXModmFsdWUpKTtcbiAgICB9XG5cbiAgICBpc05vZGVIYXNDaGlsZChfOiBudW1iZXIsIG5vZGVEYXRhKSB7XG4gICAgICAgIHJldHVybiBub2RlRGF0YS5leHBhbmRhYmxlO1xuICAgIH1cblxuICAgIGlzTm9kZVNlbGVjdEFsbChfOiBudW1iZXIsIG5vZGVEYXRhKSB7XG4gICAgICAgIHJldHVybiBub2RlRGF0YS52YWx1ZSA9PT0ga2JxVHJlZVNlbGVjdEFsbFZhbHVlO1xuICAgIH1cblxuICAgIG9uU2VsZWN0KHsgdmFsdWU6IG9wdGlvbiB9KSB7XG4gICAgICAgIGlmICghb3B0aW9uKSByZXR1cm47XG5cbiAgICAgICAgaWYgKG9wdGlvbi5pc0V4cGFuZGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZS5zZXRTdGF0ZUNoaWxkcmVuKG9wdGlvbiwgIW9wdGlvbi5zZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvZ2dsZVBhcmVudHMob3B0aW9uLmRhdGEucGFyZW50KTtcblxuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSB0aGlzLnNlbGVjdC5zZWxlY3RlZFZhbHVlcztcblxuICAgICAgICB0aGlzLmVtaXRDaGFuZ2VQaXBlRXZlbnQoKTtcblxuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgc2VhcmNoS2V5ZG93bkhhbmRsZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEuc2VsZWN0QWxsICYmIHRoaXMudHJlZS5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVTZWxlY3RBbGxOb2RlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b2dnbGVTZWxlY3RBbGxOb2RlKGVtaXRFdmVudDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0LnNlYXJjaD8ubmdDb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJlZE9wdGlvbnMgPSB0aGlzLnRyZWUucmVuZGVyZWRPcHRpb25zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB2YWx1ZSAhPT0ga2JxVHJlZVNlbGVjdEFsbFZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYWxsVmlzaWJsZU9wdGlvbnNTZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHJlbmRlcmVkT3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IG9wdGlvbi5zZXRTZWxlY3RlZChmYWxzZSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZW5kZXJlZE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uc2V0U2VsZWN0ZWQodHJ1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsT3B0aW9uc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIC4uLmRhdGFOb2Rlc0ZvclNlbGVjdF0gPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2RlcztcblxuICAgICAgICAgICAgICAgIC8vIEB0b2RvIERTLTM4MjdcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWUuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KC4uLihkYXRhTm9kZXNGb3JTZWxlY3QgYXMgYW55KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSBbLi4udGhpcy5zZWxlY3Quc2VsZWN0ZWRWYWx1ZXNdO1xuXG4gICAgICAgIGlmIChlbWl0RXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZVBpcGVFdmVudCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiB1cGRhdGVzIHZhbHVlcyBmb3Igc2VsZWN0aW9uIGFuZCB2YWx1ZSB0ZW1wbGF0ZSAqL1xuICAgIG92ZXJyaWRlIHVwZGF0ZVRlbXBsYXRlcyA9ICh0ZW1wbGF0ZXM6IEticVBpcGVUZW1wbGF0ZVtdIHwgbnVsbCkgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IHRlbXBsYXRlcz8uZmluZCgodGVtcGxhdGUpID0+IGdldElkKHRlbXBsYXRlKSA9PT0gZ2V0SWQodGhpcy5kYXRhKSk7XG5cbiAgICAgICAgaWYgKHRlbXBsYXRlPy52YWx1ZXMpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVzID0gdGVtcGxhdGUudmFsdWVzO1xuICAgICAgICAgICAgdGhpcy52YWx1ZVRlbXBsYXRlID0gdGVtcGxhdGUudmFsdWVUZW1wbGF0ZTtcblxuICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gWy4uLih0ZW1wbGF0ZS52YWx1ZXMgYXMgS2JxVHJlZVNlbGVjdE5vZGVbXSldO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhLnNlbGVjdEFsbCkge1xuICAgICAgICAgICAgICAgIHZhbHVlcy51bnNoaWZ0KHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5sb2NhbGVEYXRhLnBpcGUuc2VsZWN0QWxsLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZToga2JxVHJlZVNlbGVjdEFsbFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogbnVsbFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHZhbHVlcztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKiogb3BlbnMgc2VsZWN0ICovXG4gICAgb3ZlcnJpZGUgb3BlbigpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbGVjdC5vcGVuKCkpO1xuICAgIH1cblxuICAgIG9uT3BlbigpIHtcbiAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmRBbGwoKTtcbiAgICB9XG5cbiAgICBvbkNsb3NlKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEFsbEVxdWFsc1NlbGVjdGVkTm90aGluZyAmJiB0aGlzLmFsbE9wdGlvbnNTZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVTZWxlY3RBbGxOb2RlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBoYW5kbGVyIGZvciBzZWxlY3QgYWxsIG9wdGlvbnMgaW4gc2VsZWN0ICovXG4gICAgc2VsZWN0QWxsSGFuZGxlciA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIHRoaXMudG9nZ2xlU2VsZWN0QWxsTm9kZSgpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGVtaXRDaGFuZ2VQaXBlRXZlbnQoKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQWxsRXF1YWxzU2VsZWN0ZWROb3RoaW5nICYmIHRoaXMuYWxsT3B0aW9uc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckJhcj8ub25DaGFuZ2VQaXBlLmVtaXQoeyAuLi50aGlzLmRhdGEsIHZhbHVlOiBbXSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyQmFyPy5vbkNoYW5nZVBpcGUuZW1pdCh0aGlzLmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0b2dnbGVQYXJlbnRzKHBhcmVudCkge1xuICAgICAgICBpZiAoIXBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKHBhcmVudCk7XG4gICAgICAgIGNvbnN0IGlzUGFyZW50U2VsZWN0ZWQgPSB0aGlzLnNlbGVjdC5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5pbmNsdWRlcyhwYXJlbnQpO1xuXG4gICAgICAgIGlmICghaXNQYXJlbnRTZWxlY3RlZCAmJiBkZXNjZW5kYW50cy5ldmVyeSgoZDogYW55KSA9PiB0aGlzLnNlbGVjdC5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5pbmNsdWRlcyhkKSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0LnNlbGVjdGlvbk1vZGVsLnNlbGVjdChwYXJlbnQpO1xuICAgICAgICAgICAgdGhpcy50b2dnbGVQYXJlbnRzKHBhcmVudC5wYXJlbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzUGFyZW50U2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0LnNlbGVjdGlvbk1vZGVsLmRlc2VsZWN0KHBhcmVudCk7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZVBhcmVudHMocGFyZW50LnBhcmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybWVyID0gKG5vZGU6IEticVRyZWVTZWxlY3ROb2RlLCBsZXZlbDogbnVtYmVyLCBwYXJlbnQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBmbGF0Tm9kZSA9IG5ldyBLYnFUcmVlU2VsZWN0RmxhdE5vZGUoKTtcblxuICAgICAgICBmbGF0Tm9kZS5uYW1lID0gbm9kZS5uYW1lO1xuICAgICAgICBmbGF0Tm9kZS52YWx1ZSA9IG5vZGUudmFsdWU7XG4gICAgICAgIGZsYXROb2RlLnBhcmVudCA9IHBhcmVudDtcbiAgICAgICAgZmxhdE5vZGUubGV2ZWwgPSBsZXZlbDtcbiAgICAgICAgZmxhdE5vZGUuZXhwYW5kYWJsZSA9ICEhbm9kZS5jaGlsZHJlbjtcblxuICAgICAgICByZXR1cm4gZmxhdE5vZGU7XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0TGV2ZWwgPSAobm9kZTogS2JxVHJlZVNlbGVjdEZsYXROb2RlKSA9PiB7XG4gICAgICAgIHJldHVybiBub2RlLmxldmVsO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGlzRXhwYW5kYWJsZSA9IChub2RlOiBLYnFUcmVlU2VsZWN0RmxhdE5vZGUpID0+IHtcbiAgICAgICAgcmV0dXJuIG5vZGUuZXhwYW5kYWJsZTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnZXRDaGlsZHJlbiA9IChub2RlOiBLYnFUcmVlU2VsZWN0Tm9kZSk6IEticVRyZWVTZWxlY3ROb2RlW10gfCBudWxsID0+IHtcbiAgICAgICAgcmV0dXJuIG5vZGUuY2hpbGRyZW47XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0VmFsdWUgPSAobm9kZTogS2JxVHJlZVNlbGVjdEZsYXROb2RlKTogdW5rbm93biA9PiB7XG4gICAgICAgIHJldHVybiBub2RlLnZhbHVlO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGdldFZpZXdWYWx1ZSA9IChub2RlOiBLYnFUcmVlU2VsZWN0RmxhdE5vZGUpOiBzdHJpbmcgPT4ge1xuICAgICAgICByZXR1cm4gYCR7bm9kZS5uYW1lfWA7XG4gICAgfTtcbn1cbiIsIjxrYnEtdHJlZS1zZWxlY3RcbiAgICAjc2VsZWN0XG4gICAgW2F1dG9TZWxlY3RdPVwiZmFsc2VcIlxuICAgIFtkaXNhYmxlZF09XCJkYXRhLmRpc2FibGVkXCJcbiAgICBba2JxUGlwZVRpdGxlXT1cInBpcGVUb29sdGlwXCJcbiAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgW25nQ2xhc3NdPVwieyAna2JxLWFjdGl2ZSc6IHNlbGVjdC5wYW5lbE9wZW4gfVwiXG4gICAgW25nTW9kZWxdPVwic2VsZWN0ZWRcIlxuICAgIFtwYW5lbENsYXNzXT1cIidrYnEtcGlwZS1tdWx0aS10cmVlLXNlbGVjdF9fcGFuZWwnXCJcbiAgICBbc2VsZWN0QWxsSGFuZGxlcl09XCJzZWxlY3RBbGxIYW5kbGVyXCJcbiAgICBbdGFiSW5kZXhdPVwiLTFcIlxuICAgIChjbG9zZWQpPVwib25DbG9zZSgpXCJcbiAgICAob3BlbmVkKT1cIm9uT3BlbigpXCJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0KCRldmVudClcIlxuPlxuICAgIDwhLS0gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC90ZW1wbGF0ZS9wcmVmZXItY29udHJvbC1mbG93IC0tPlxuICAgIDxrYnEtZm9ybS1maWVsZCAqbmdJZj1cImRhdGEuc2VhcmNoXCIga2JxRm9ybUZpZWxkV2l0aG91dEJvcmRlcnMga2JxU2VsZWN0U2VhcmNoPlxuICAgICAgICA8aSBrYnEtaWNvbj1cImticS1tYWduaWZ5aW5nLWdsYXNzXzE2XCIga2JxUHJlZml4PjwvaT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAga2JxSW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgbG9jYWxlRGF0YS5zZWFyY2gucGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaENvbnRyb2xcIlxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VhcmNoS2V5ZG93bkhhbmRsZXIoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxrYnEtY2xlYW5lciAvPlxuICAgIDwva2JxLWZvcm0tZmllbGQ+XG5cbiAgICA8ZGl2IGticS1zZWxlY3Qtc2VhcmNoLWVtcHR5LXJlc3VsdD57eyBsb2NhbGVEYXRhLnBpcGUuZW1wdHlTZWFyY2hSZXN1bHQgfX08L2Rpdj5cblxuICAgIDxrYnEtY2xlYW5lciAja2JxU2VsZWN0Q2xlYW5lciAvPlxuXG4gICAgPGJ1dHRvblxuICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgIGticS1zZWxlY3QtbWF0Y2hlclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGF0YS5kaXNhYmxlZFwiXG4gICAgICAgIFtrYnFQaXBlU3RhdGVdPVwiZGF0YVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ticS1hY3RpdmUnOiBzZWxlY3QucGFuZWxPcGVuIH1cIlxuICAgID5cbiAgICAgICAgPHNwYW4gI2ticVRpdGxlVGV4dCBrYnFQaXBlTWluV2lkdGggY2xhc3M9XCJrYnEtcGlwZV9fbmFtZVwiPnt7IGRhdGEubmFtZSB9fTwvc3Bhbj5cblxuICAgICAgICBAaWYgKHNlbGVjdC5zZWxlY3RlZD8ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICA8c3BhbiAja2JxVGl0bGVUZXh0IGNsYXNzPVwia2JxLXBpcGVfX3ZhbHVlXCIgW2NsYXNzLmticS1waXBlX192YWx1ZV9lbXB0eV09XCIhc2VsZWN0LnRyaWdnZXJWYWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHNlbGVjdC5zZWxlY3RlZFswXS5uYW1lIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH0gQGVsc2UgaWYgKFxuICAgICAgICAgICAgc2VsZWN0LnNlbGVjdGVkPy5sZW5ndGggPiAxICYmXG4gICAgICAgICAgICAoIXNlbGVjdGVkQWxsRXF1YWxzU2VsZWN0ZWROb3RoaW5nIHx8IChzZWxlY3RlZEFsbEVxdWFsc1NlbGVjdGVkTm90aGluZyAmJiAhYWxsT3B0aW9uc1NlbGVjdGVkKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICA8a2JxLWJhZGdlIFtiYWRnZUNvbG9yXT1cIidjb250cmFzdCdcIiBbY29tcGFjdF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge3sgbnVtYmVyT2ZTZWxlY3RlZExlYXZlcyB9fVxuICAgICAgICAgICAgPC9rYnEtYmFkZ2U+XG4gICAgICAgIH1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxrYnEtdHJlZS1zZWxlY3Rpb24gW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIFt0cmVlQ29udHJvbF09XCJ0cmVlQ29udHJvbFwiPlxuICAgICAgICA8a2JxLXRyZWUtb3B0aW9uXG4gICAgICAgICAgICAqa2JxVHJlZU5vZGVEZWY9XCJsZXQgbm9kZTsgd2hlbjogaXNOb2RlU2VsZWN0QWxsXCJcbiAgICAgICAgICAgIGticVRyZWVOb2RlUGFkZGluZ1xuICAgICAgICAgICAgW2NsYXNzLmticS1zZWxlY3RlZF09XCJhbGxPcHRpb25zU2VsZWN0ZWRcIlxuICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNlbGVjdEFsbE5vZGUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxrYnEtcHNldWRvLWNoZWNrYm94IFtzdGF0ZV09XCJzZWxlY3RBbGxDaGVja2JveFN0YXRlXCIgLz5cbiAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwidHJlZUNvbnRyb2wuZ2V0Vmlld1ZhbHVlKG5vZGUpIHwgbWNIaWdobGlnaHQ6IHRyZWVDb250cm9sLmZpbHRlclZhbHVlLnZhbHVlXCI+PC9zcGFuPlxuICAgICAgICA8L2ticS10cmVlLW9wdGlvbj5cblxuICAgICAgICA8a2JxLXRyZWUtb3B0aW9uICprYnFUcmVlTm9kZURlZj1cImxldCBub2RlXCIga2JxVHJlZU5vZGVQYWRkaW5nIFtjaGVja2JveFRoaXJkU3RhdGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJ0cmVlQ29udHJvbC5nZXRWaWV3VmFsdWUobm9kZSkgfCBtY0hpZ2hsaWdodDogdHJlZUNvbnRyb2wuZmlsdGVyVmFsdWUudmFsdWVcIj48L3NwYW4+XG4gICAgICAgIDwva2JxLXRyZWUtb3B0aW9uPlxuXG4gICAgICAgIDxrYnEtdHJlZS1vcHRpb25cbiAgICAgICAgICAgICprYnFUcmVlTm9kZURlZj1cImxldCBub2RlOyB3aGVuOiBpc05vZGVIYXNDaGlsZFwiXG4gICAgICAgICAgICBrYnFUcmVlTm9kZVBhZGRpbmdcbiAgICAgICAgICAgIFtjaGVja2JveFRoaXJkU3RhdGVdPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxrYnEtdHJlZS1ub2RlLXRvZ2dsZSBbbm9kZV09XCJub2RlXCIgLz5cbiAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwidHJlZUNvbnRyb2wuZ2V0Vmlld1ZhbHVlKG5vZGUpIHwgbWNIaWdobGlnaHQ6IHRyZWVDb250cm9sLmZpbHRlclZhbHVlLnZhbHVlXCI+PC9zcGFuPlxuICAgICAgICA8L2ticS10cmVlLW9wdGlvbj5cbiAgICA8L2ticS10cmVlLXNlbGVjdGlvbj5cbjwva2JxLXRyZWUtc2VsZWN0PlxuXG5AaWYgKHNob3dSZW1vdmVCdXR0b24pIHtcbiAgICA8a2JxLXBpcGUtYnV0dG9uIC8+XG59XG5cbjxuZy10ZW1wbGF0ZSAjcGlwZVRvb2x0aXA+XG4gICAgPGRpdiBjbGFzcz1cImticS1waXBlLXRvb2x0aXBfX25hbWUga2JxLXRleHQtY29tcGFjdFwiPnt7IGRhdGEubmFtZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJrYnEtcGlwZS10b29sdGlwX192YWx1ZSBrYnEtdGV4dC1jb21wYWN0XCI+e3sgc2VsZWN0LnRyaWdnZXJWYWx1ZSB9fTwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -69,7 +69,7 @@ export class KbqPipeSelectComponent extends KbqBasePipe {
|
|
|
69
69
|
provide: KbqBasePipe,
|
|
70
70
|
useExisting: this
|
|
71
71
|
}
|
|
72
|
-
], viewQueries: [{ propertyName: "select", first: true, predicate: KbqSelect, descendants: true }], usesInheritance: true, ngImport: i0, template: "<kbq-select\n #select\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-select__panel'\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span\n #kbqTitleText\n kbqPipeMinWidth\n class=\"kbq-pipe__value\"\n [class.kbq-pipe__value_empty]=\"!select.triggerValue\"\n >\n {{ select.triggerValue }}\n </span>\n </button>\n\n @if (data.search) {\n <kbq-form-field kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n kbqInput\n placeholder=\"{{ localeData.search.placeholder }}\"\n type=\"text\"\n [formControl]=\"searchControl\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe-select__panel .kbq-select__content{max-height:404px}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqSelectModule }, { kind: "component", type: i2.KbqSelect, selector: "kbq-select", inputs: ["hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "panelWidth", "panelMinWidth", "value", "id", "tabIndex", "disabled", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i2.KbqOptionTooltip, selector: "kbq-option" }, { kind: "component", type: i3.KbqOption, selector: "kbq-option", inputs: ["value", "selectable", "userSelect", "showCheckbox", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "directive", type: i3.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i3.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]" }, { kind: "directive", type: i3.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", exportAs: ["kbqFormFieldWithoutBorders"] }, { kind: "directive", type: i4.KbqPrefix, selector: "[kbqPrefix]" }, { kind: "component", type: i4.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "directive", type: i4.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i4.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i5.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
72
|
+
], viewQueries: [{ propertyName: "select", first: true, predicate: KbqSelect, descendants: true }], usesInheritance: true, ngImport: i0, template: "<kbq-select\n #select\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-select__panel'\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText kbqPipeMinWidth class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span\n #kbqTitleText\n kbqPipeMinWidth\n class=\"kbq-pipe__value\"\n [class.kbq-pipe__value_empty]=\"!select.triggerValue\"\n >\n {{ select.triggerValue }}\n </span>\n </button>\n\n @if (data.search) {\n <kbq-form-field kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n kbqInput\n placeholder=\"{{ localeData.search.placeholder }}\"\n type=\"text\"\n [formControl]=\"searchControl\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe-select__panel .kbq-select__content{max-height:404px}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqSelectModule }, { kind: "component", type: i2.KbqSelect, selector: "kbq-select", inputs: ["hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "selectAllHandler", "panelWidth", "panelMinWidth", "value", "id", "tabIndex", "disabled", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i2.KbqOptionTooltip, selector: "kbq-option" }, { kind: "component", type: i3.KbqOption, selector: "kbq-option", inputs: ["value", "selectable", "userSelect", "showCheckbox", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "directive", type: i3.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i3.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]" }, { kind: "directive", type: i3.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: KbqPipeMinWidth, selector: "[kbqPipeMinWidth]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", exportAs: ["kbqFormFieldWithoutBorders"] }, { kind: "directive", type: i4.KbqPrefix, selector: "[kbqPrefix]" }, { kind: "component", type: i4.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "directive", type: i4.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i4.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i5.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
73
73
|
}
|
|
74
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqPipeSelectComponent, decorators: [{
|
|
75
75
|
type: Component,
|
|
@@ -99,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
99
99
|
type: ViewChild,
|
|
100
100
|
args: [KbqSelect]
|
|
101
101
|
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1zZWxlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ZpbHRlci1iYXIvcGlwZXMvcGlwZS1zZWxlY3QudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ZpbHRlci1iYXIvcGlwZXMvcGlwZS1zZWxlY3QuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFdBQVcs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R0FDUCxjQUFjLGdQQUNkLG1CQUFtQixxa0JBQ25CLFNBQVM7OzRGQUdKLHNCQUFzQjtrQkEvQmxDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixXQUFXLEVBQUUsSUFBSTt5QkFDcEI7cUJBQ0osV0FDUTt3QkFDTCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsU0FBUztxQkFDWjs4QkFTcUIsTUFBTTtzQkFBM0IsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS2JxQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBLYnFEaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RpdmlkZXInO1xuaW1wb3J0IHsgS2JxRm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgS2JxSWNvbiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEticUlucHV0TW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2lucHV0JztcbmltcG9ydCB7IEticVNlbGVjdCwgS2JxU2VsZWN0TW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3NlbGVjdCc7XG5pbXBvcnQgeyBLYnFUaXRsZU1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90aXRsZSc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEticVNlbGVjdFZhbHVlIH0gZnJvbSAnLi4vZmlsdGVyLWJhci50eXBlcyc7XG5pbXBvcnQgeyBLYnFCYXNlUGlwZSwgS2JxUGlwZU1pbldpZHRoIH0gZnJvbSAnLi9iYXNlLXBpcGUnO1xuaW1wb3J0IHsgS2JxUGlwZUJ1dHRvbiB9IGZyb20gJy4vcGlwZS1idXR0b24nO1xuaW1wb3J0IHsgS2JxUGlwZVN0YXRlIH0gZnJvbSAnLi9waXBlLXN0YXRlJztcbmltcG9ydCB7IEticVBpcGVUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4vcGlwZS10aXRsZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdrYnEtcGlwZS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAncGlwZS1zZWxlY3QuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2Jhc2UtcGlwZS5zY3NzJywgJ3BpcGUtc2VsZWN0LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBLYnFCYXNlUGlwZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiB0aGlzXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgS2JxQnV0dG9uTW9kdWxlLFxuICAgICAgICBLYnFEaXZpZGVyTW9kdWxlLFxuICAgICAgICBLYnFTZWxlY3RNb2R1bGUsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIEticVBpcGVTdGF0ZSxcbiAgICAgICAgS2JxUGlwZUJ1dHRvbixcbiAgICAgICAgS2JxVGl0bGVNb2R1bGUsXG4gICAgICAgIEticVBpcGVUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgS2JxUGlwZU1pbldpZHRoLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBLYnFGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIEticUljb24sXG4gICAgICAgIEticUlucHV0TW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBBc3luY1BpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEticVBpcGVTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBLYnFCYXNlUGlwZTxLYnFTZWxlY3RWYWx1ZT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICAgIC8qKiBjb250cm9sIGZvciBzZWFyY2ggb3B0aW9ucyAqL1xuICAgIHNlYXJjaENvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgICAvKiogZmlsdGVyZWQgYnkgc2VhcmNoIG9wdGlvbnMgKi9cbiAgICBmaWx0ZXJlZE9wdGlvbnM6IE9ic2VydmFibGU8YW55W10+O1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBAVmlld0NoaWxkKEticVNlbGVjdCkgc2VsZWN0OiBLYnFTZWxlY3Q7XG5cbiAgICAvKiogc2VsZWN0ZWQgdmFsdWUgKi9cbiAgICBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcGlwZSBpcyBlbXB0eS4gKi9cbiAgICBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmRhdGEudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBtZXJnZShcbiAgICAgICAgICAgIG9mKHRoaXMudmFsdWVzKSxcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShtYXAoKHZhbHVlKSA9PiB0aGlzLmdldEZpbHRlcmVkT3B0aW9ucyh2YWx1ZSkpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgICAgICB0aGlzLnNlbGVjdC5jbG9zZWRTdHJlYW1cbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmZpbHRlckJhcj8ub25DbG9zZVBpcGUubmV4dCh0aGlzLmRhdGEpKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdChpdGVtOiBLYnFTZWxlY3RWYWx1ZSkge1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSBpdGVtO1xuICAgICAgICB0aGlzLmZpbHRlckJhcj8ub25DaGFuZ2VQaXBlLmVtaXQodGhpcy5kYXRhKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBDb21wYXJhdG9yIG9mIHNlbGVjdGVkIG9wdGlvbnMgKi9cbiAgICBjb21wYXJlQnlWYWx1ZSA9IChvMTogYW55LCBvMjogYW55KTogYm9vbGVhbiA9PiBvMSAmJiBvMiAmJiBvMS5pZCA9PT0gbzIuaWQ7XG5cbiAgICAvKiogb3BlbnMgc2VsZWN0ICovXG4gICAgb3ZlcnJpZGUgb3BlbigpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Qub3BlbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsdGVyZWRPcHRpb25zKHZhbHVlOiBzdHJpbmcpOiBLYnFTZWxlY3RWYWx1ZVtdIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICA/IHRoaXMudmFsdWVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSkpXG4gICAgICAgICAgICA6IHRoaXMudmFsdWVzO1xuICAgIH1cbn1cbiIsIjxrYnEtc2VsZWN0XG4gICAgI3NlbGVjdFxuICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlQnlWYWx1ZVwiXG4gICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWRcIlxuICAgIFtrYnFQaXBlVGl0bGVdPVwicGlwZVRvb2x0aXBcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2ticS1hY3RpdmUnOiBzZWxlY3QucGFuZWxPcGVuIH1cIlxuICAgIFtwYW5lbENsYXNzXT1cIidrYnEtcGlwZS1zZWxlY3RfX3BhbmVsJ1wiXG4gICAgW3RhYkluZGV4XT1cIi0xXCJcbiAgICBbdmFsdWVdPVwic2VsZWN0ZWRcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50LnZhbHVlKVwiXG4+XG4gICAgPGJ1dHRvblxuICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgIGticS1zZWxlY3QtbWF0Y2hlclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGF0YS5kaXNhYmxlZFwiXG4gICAgICAgIFtrYnFQaXBlU3RhdGVdPVwiZGF0YVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ticS1hY3RpdmUnOiBzZWxlY3QucGFuZWxPcGVuIH1cIlxuICAgID5cbiAgICAgICAgPHNwYW4gI2ticVRpdGxlVGV4dCBrYnFQaXBlTWluV2lkdGggY2xhc3M9XCJrYnEtcGlwZV9fbmFtZVwiPnt7IGRhdGEubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICNrYnFUaXRsZVRleHRcbiAgICAgICAgICAgIGticVBpcGVNaW5XaWR0aFxuICAgICAgICAgICAgY2xhc3M9XCJrYnEtcGlwZV9fdmFsdWVcIlxuICAgICAgICAgICAgW2NsYXNzLmticS1waXBlX192YWx1ZV9lbXB0eV09XCIhc2VsZWN0LnRyaWdnZXJWYWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlbGVjdC50cmlnZ2VyVmFsdWUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgQGlmIChkYXRhLnNlYXJjaCkge1xuICAgICAgICA8a2JxLWZvcm0tZmllbGQga2JxRm9ybUZpZWxkV2l0aG91dEJvcmRlcnMga2JxU2VsZWN0U2VhcmNoPlxuICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtbWFnbmlmeWluZy1nbGFzc18xNlwiIGticVByZWZpeD48L2k+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBrYnFJbnB1dFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgbG9jYWxlRGF0YS5zZWFyY2gucGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGticS1jbGVhbmVyIC8+XG4gICAgICAgIDwva2JxLWZvcm0tZmllbGQ+XG4gICAgfVxuXG4gICAgPGRpdiBrYnEtc2VsZWN0LXNlYXJjaC1lbXB0eS1yZXN1bHQ+e3sgbG9jYWxlRGF0YS5waXBlLmVtcHR5U2VhcmNoUmVzdWx0IH19PC9kaXY+XG5cbiAgICBAZm9yIChpdGVtIG9mIGZpbHRlcmVkT3B0aW9ucyB8IGFzeW5jOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIDxrYnEtb3B0aW9uIFt2YWx1ZV09XCJpdGVtXCI+XG4gICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYodmFsdWVUZW1wbGF0ZSkpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkodmFsdWVUZW1wbGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQsIG9wdGlvbjogaXRlbSB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwva2JxLW9wdGlvbj5cbiAgICB9XG48L2ticS1zZWxlY3Q+XG5cbkBpZiAoc2hvd1JlbW92ZUJ1dHRvbikge1xuICAgIDxrYnEtcGlwZS1idXR0b24gLz5cbn1cblxuPG5nLXRlbXBsYXRlICNwaXBlVG9vbHRpcD5cbiAgICA8ZGl2IGNsYXNzPVwia2JxLXBpcGUtdG9vbHRpcF9fbmFtZSBrYnEtdGV4dC1jb21wYWN0XCI+e3sgZGF0YS5uYW1lIH19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImticS1waXBlLXRvb2x0aXBfX3ZhbHVlIGticS10ZXh0LWNvbXBhY3RcIj57eyBzZWxlY3QudHJpZ2dlclZhbHVlIH19PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1zZWxlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ZpbHRlci1iYXIvcGlwZXMvcGlwZS1zZWxlY3QudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ZpbHRlci1iYXIvcGlwZXMvcGlwZS1zZWxlY3QuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFdBQVcs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R0FDUCxjQUFjLGdQQUNkLG1CQUFtQixxa0JBQ25CLFNBQVM7OzRGQUdKLHNCQUFzQjtrQkEvQmxDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixXQUFXLEVBQUUsSUFBSTt5QkFDcEI7cUJBQ0osV0FDUTt3QkFDTCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixjQUFjO3dCQUNkLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsU0FBUztxQkFDWjs4QkFTcUIsTUFBTTtzQkFBM0IsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS2JxQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBLYnFEaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RpdmlkZXInO1xuaW1wb3J0IHsgS2JxRm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgS2JxSWNvbiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEticUlucHV0TW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2lucHV0JztcbmltcG9ydCB7IEticVNlbGVjdCwgS2JxU2VsZWN0TW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3NlbGVjdCc7XG5pbXBvcnQgeyBLYnFUaXRsZU1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90aXRsZSc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEticVNlbGVjdFZhbHVlIH0gZnJvbSAnLi4vZmlsdGVyLWJhci50eXBlcyc7XG5pbXBvcnQgeyBLYnFCYXNlUGlwZSwgS2JxUGlwZU1pbldpZHRoIH0gZnJvbSAnLi9iYXNlLXBpcGUnO1xuaW1wb3J0IHsgS2JxUGlwZUJ1dHRvbiB9IGZyb20gJy4vcGlwZS1idXR0b24nO1xuaW1wb3J0IHsgS2JxUGlwZVN0YXRlIH0gZnJvbSAnLi9waXBlLXN0YXRlJztcbmltcG9ydCB7IEticVBpcGVUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4vcGlwZS10aXRsZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdrYnEtcGlwZS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAncGlwZS1zZWxlY3QuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2Jhc2UtcGlwZS5zY3NzJywgJ3BpcGUtc2VsZWN0LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBLYnFCYXNlUGlwZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiB0aGlzXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgS2JxQnV0dG9uTW9kdWxlLFxuICAgICAgICBLYnFEaXZpZGVyTW9kdWxlLFxuICAgICAgICBLYnFTZWxlY3RNb2R1bGUsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIEticVBpcGVTdGF0ZSxcbiAgICAgICAgS2JxUGlwZUJ1dHRvbixcbiAgICAgICAgS2JxVGl0bGVNb2R1bGUsXG4gICAgICAgIEticVBpcGVUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgS2JxUGlwZU1pbldpZHRoLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBLYnFGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIEticUljb24sXG4gICAgICAgIEticUlucHV0TW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBBc3luY1BpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEticVBpcGVTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBLYnFCYXNlUGlwZTxLYnFTZWxlY3RWYWx1ZT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICAgIC8qKiBjb250cm9sIGZvciBzZWFyY2ggb3B0aW9ucyAqL1xuICAgIHNlYXJjaENvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgICAvKiogZmlsdGVyZWQgYnkgc2VhcmNoIG9wdGlvbnMgKi9cbiAgICBmaWx0ZXJlZE9wdGlvbnM6IE9ic2VydmFibGU8YW55W10+O1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBAVmlld0NoaWxkKEticVNlbGVjdCkgc2VsZWN0OiBLYnFTZWxlY3Q7XG5cbiAgICAvKiogc2VsZWN0ZWQgdmFsdWUgKi9cbiAgICBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcGlwZSBpcyBlbXB0eS4gKi9cbiAgICBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmRhdGEudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBtZXJnZShcbiAgICAgICAgICAgIG9mKHRoaXMudmFsdWVzKSxcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShtYXAoKHZhbHVlKSA9PiB0aGlzLmdldEZpbHRlcmVkT3B0aW9ucyh2YWx1ZSkpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgICAgICB0aGlzLnNlbGVjdC5jbG9zZWRTdHJlYW1cbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmZpbHRlckJhcj8ub25DbG9zZVBpcGUubmV4dCh0aGlzLmRhdGEpKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdChpdGVtOiBLYnFTZWxlY3RWYWx1ZSkge1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSBpdGVtO1xuICAgICAgICB0aGlzLmZpbHRlckJhcj8ub25DaGFuZ2VQaXBlLmVtaXQodGhpcy5kYXRhKTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBDb21wYXJhdG9yIG9mIHNlbGVjdGVkIG9wdGlvbnMgKi9cbiAgICBjb21wYXJlQnlWYWx1ZSA9IChvMTogYW55LCBvMjogYW55KTogYm9vbGVhbiA9PiBvMSAmJiBvMiAmJiBvMS5pZCA9PT0gbzIuaWQ7XG5cbiAgICAvKiogb3BlbnMgc2VsZWN0ICovXG4gICAgb3ZlcnJpZGUgb3BlbigpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Qub3BlbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsdGVyZWRPcHRpb25zKHZhbHVlOiBzdHJpbmcpOiBLYnFTZWxlY3RWYWx1ZVtdIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICA/IHRoaXMudmFsdWVzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSkpXG4gICAgICAgICAgICA6IHRoaXMudmFsdWVzO1xuICAgIH1cbn1cbiIsIjxrYnEtc2VsZWN0XG4gICAgI3NlbGVjdFxuICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlQnlWYWx1ZVwiXG4gICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWRcIlxuICAgIFtrYnFQaXBlVGl0bGVdPVwicGlwZVRvb2x0aXBcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2ticS1hY3RpdmUnOiBzZWxlY3QucGFuZWxPcGVuIH1cIlxuICAgIFtwYW5lbENsYXNzXT1cIidrYnEtcGlwZS1zZWxlY3RfX3BhbmVsJ1wiXG4gICAgW3RhYkluZGV4XT1cIi0xXCJcbiAgICBbdmFsdWVdPVwic2VsZWN0ZWRcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50LnZhbHVlKVwiXG4+XG4gICAgPGJ1dHRvblxuICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgIGticS1zZWxlY3QtbWF0Y2hlclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGF0YS5kaXNhYmxlZFwiXG4gICAgICAgIFtrYnFQaXBlU3RhdGVdPVwiZGF0YVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ticS1hY3RpdmUnOiBzZWxlY3QucGFuZWxPcGVuIH1cIlxuICAgID5cbiAgICAgICAgPHNwYW4gI2ticVRpdGxlVGV4dCBrYnFQaXBlTWluV2lkdGggY2xhc3M9XCJrYnEtcGlwZV9fbmFtZVwiPnt7IGRhdGEubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICNrYnFUaXRsZVRleHRcbiAgICAgICAgICAgIGticVBpcGVNaW5XaWR0aFxuICAgICAgICAgICAgY2xhc3M9XCJrYnEtcGlwZV9fdmFsdWVcIlxuICAgICAgICAgICAgW2NsYXNzLmticS1waXBlX192YWx1ZV9lbXB0eV09XCIhc2VsZWN0LnRyaWdnZXJWYWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlbGVjdC50cmlnZ2VyVmFsdWUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgQGlmIChkYXRhLnNlYXJjaCkge1xuICAgICAgICA8a2JxLWZvcm0tZmllbGQga2JxRm9ybUZpZWxkV2l0aG91dEJvcmRlcnMga2JxU2VsZWN0U2VhcmNoPlxuICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtbWFnbmlmeWluZy1nbGFzc18xNlwiIGticVByZWZpeD48L2k+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBrYnFJbnB1dFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgbG9jYWxlRGF0YS5zZWFyY2gucGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGticS1jbGVhbmVyIC8+XG4gICAgICAgIDwva2JxLWZvcm0tZmllbGQ+XG4gICAgfVxuXG4gICAgPGRpdiBrYnEtc2VsZWN0LXNlYXJjaC1lbXB0eS1yZXN1bHQ+e3sgbG9jYWxlRGF0YS5waXBlLmVtcHR5U2VhcmNoUmVzdWx0IH19PC9kaXY+XG5cbiAgICBAZm9yIChpdGVtIG9mIGZpbHRlcmVkT3B0aW9ucyB8IGFzeW5jOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIDxrYnEtb3B0aW9uIFt2YWx1ZV09XCJpdGVtXCI+XG4gICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYodmFsdWVUZW1wbGF0ZSkpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkodmFsdWVUZW1wbGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQsIG9wdGlvbjogaXRlbSB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICB9XG4gICAgICAgIDwva2JxLW9wdGlvbj5cbiAgICB9XG48L2ticS1zZWxlY3Q+XG5cbkBpZiAoc2hvd1JlbW92ZUJ1dHRvbikge1xuICAgIDxrYnEtcGlwZS1idXR0b24gLz5cbn1cblxuPG5nLXRlbXBsYXRlICNwaXBlVG9vbHRpcD5cbiAgICA8ZGl2IGNsYXNzPVwia2JxLXBpcGUtdG9vbHRpcF9fbmFtZSBrYnEtdGV4dC1jb21wYWN0XCI+e3sgZGF0YS5uYW1lIH19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImticS1waXBlLXRvb2x0aXBfX3ZhbHVlIGticS10ZXh0LWNvbXBhY3RcIj57eyBzZWxlY3QudHJpZ2dlclZhbHVlIH19PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|