@design-system-rte/angular 1.4.0 → 1.4.1-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/badge/badge.component.mjs +7 -3
- package/esm2022/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +1 -1
- package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2022/lib/components/chip/chip.component.mjs +4 -3
- package/esm2022/lib/components/dropdown/dropdown-item/dropdown-item.component.mjs +4 -3
- package/esm2022/lib/components/dropdown/dropdown.directive.mjs +8 -3
- package/esm2022/lib/components/icon/icon-map.mjs +117 -112
- package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +1 -1
- package/esm2022/lib/components/select/select-footer.directive.mjs +17 -0
- package/esm2022/lib/components/select/select-header.directive.mjs +17 -0
- package/esm2022/lib/components/select/select.component.mjs +177 -39
- package/esm2022/lib/components/side-nav/nav-item/nav-item.component.mjs +2 -2
- package/esm2022/lib/components/side-nav/nav-menu/nav-menu.component.mjs +2 -2
- package/esm2022/lib/components/split-button/split-button.component.mjs +2 -2
- package/esm2022/lib/components/tab/tab-item/tab-item.component.mjs +1 -1
- package/esm2022/lib/components/tab/tab.component.mjs +2 -2
- package/fesm2022/design-system-rte-angular.mjs +341 -164
- package/fesm2022/design-system-rte-angular.mjs.map +1 -1
- package/lib/components/assistive-text/assistive-text.component.d.ts +1 -1
- package/lib/components/badge/badge.component.d.ts +3 -1
- package/lib/components/badge/badge.directive.d.ts +1 -1
- package/lib/components/chip/chip.component.d.ts +2 -1
- package/lib/components/dropdown/dropdown.directive.d.ts +10 -1
- package/lib/components/icon/icon-map.d.ts +5 -0
- package/lib/components/icon-button/icon-button.component.d.ts +2 -2
- package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +1 -1
- package/lib/components/segmented-control/segmented-control.component.d.ts +1 -1
- package/lib/components/select/select-footer.directive.d.ts +7 -0
- package/lib/components/select/select-header.directive.d.ts +7 -0
- package/lib/components/select/select.component.d.ts +35 -16
- package/lib/components/split-button/split-button.component.d.ts +2 -2
- package/lib/components/tag/tag.component.d.ts +2 -2
- package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +3 -3
- package/package.json +2 -2
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import { CommonModule } from "@angular/common";
|
|
2
|
-
import { Component, input, computed, output, signal, viewChild, ChangeDetectionStrategy, } from "@angular/core";
|
|
2
|
+
import { Component, input, computed, output, signal, viewChild, ChangeDetectionStrategy, contentChild, } from "@angular/core";
|
|
3
3
|
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
4
4
|
import { REQUIREMENT_INDICATOR_VALUE } from "@design-system-rte/core/components/required-indicator/required-indicator.constant";
|
|
5
|
-
import { SELECT_DROPDOWN_OFFSET, THRESHOLD_BOTTOM_POSITION,
|
|
5
|
+
import { SELECT_DROPDOWN_OFFSET, THRESHOLD_BOTTOM_POSITION, } from "@design-system-rte/core/components/select/select.constants";
|
|
6
|
+
import { getSelectedOption } from "@design-system-rte/core/components/select/select.utils";
|
|
6
7
|
import { ENTER_KEY, SPACE_KEY } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
|
|
7
8
|
import { AssistiveTextComponent } from "../assistive-text/assistive-text.component";
|
|
9
|
+
import { BadgeComponent } from "../badge/badge.component";
|
|
10
|
+
import { ChipComponent } from "../chip/chip.component";
|
|
8
11
|
import { DropdownModule } from "../dropdown";
|
|
9
12
|
import { IconComponent } from "../icon/icon.component";
|
|
10
13
|
import { IconButtonComponent } from "../icon-button/icon-button.component";
|
|
14
|
+
import { SelectFooterDirective } from "./select-footer.directive";
|
|
15
|
+
import { SelectHeaderDirective } from "./select-header.directive";
|
|
11
16
|
import * as i0 from "@angular/core";
|
|
12
17
|
import * as i1 from "@angular/common";
|
|
13
18
|
import * as i2 from "../dropdown/dropdown.directive";
|
|
14
19
|
import * as i3 from "../dropdown/dropdown-trigger/dropdown-trigger.directive";
|
|
15
20
|
import * as i4 from "../dropdown/dropdown-menu/dropdown-menu.component";
|
|
21
|
+
import * as i5 from "../dropdown/dropdown-menu/dropdown-menu-header.directive";
|
|
22
|
+
import * as i6 from "../dropdown/dropdown-menu/dropdown-menu-footer.directive";
|
|
16
23
|
export class SelectComponent {
|
|
17
24
|
constructor() {
|
|
18
25
|
this.id = input();
|
|
@@ -28,17 +35,32 @@ export class SelectComponent {
|
|
|
28
35
|
this.showLabelRequirement = input(false);
|
|
29
36
|
this.disabled = input(false);
|
|
30
37
|
this.readOnly = input(false);
|
|
31
|
-
this.value = input();
|
|
32
38
|
this.options = input([]);
|
|
33
39
|
this.isError = input(false);
|
|
34
40
|
this.showAssistiveIcon = input(false);
|
|
35
41
|
this.showResetButton = input(false);
|
|
36
|
-
this.
|
|
42
|
+
this.multiple = input(false);
|
|
43
|
+
this.value = input();
|
|
44
|
+
this.withSelectAll = input(false);
|
|
45
|
+
this.optionToDisplay = input("first-selected");
|
|
37
46
|
this.selectRef = viewChild("selectRef");
|
|
38
47
|
this.buttonsContainerRef = viewChild("buttonsContainerRef");
|
|
39
48
|
this.selectDropdownOffset = SELECT_DROPDOWN_OFFSET;
|
|
40
|
-
this.
|
|
41
|
-
|
|
49
|
+
this.headerDirective = contentChild(SelectHeaderDirective);
|
|
50
|
+
this.footerDirective = contentChild(SelectFooterDirective);
|
|
51
|
+
this.headerTemplate = input(undefined);
|
|
52
|
+
this.footerTemplate = input(undefined);
|
|
53
|
+
this.headerContentRef = viewChild("headerContent");
|
|
54
|
+
this.footerContentRef = viewChild("footerContent");
|
|
55
|
+
this.hasHeaderContent = computed(() => {
|
|
56
|
+
const hasTemplate = this.headerDirective()?.templateRef || !!this.headerTemplate();
|
|
57
|
+
const hasProjectedContent = !!this.headerContentRef()?.nativeElement?.children.length;
|
|
58
|
+
return hasTemplate || hasProjectedContent;
|
|
59
|
+
});
|
|
60
|
+
this.hasFooterContent = computed(() => {
|
|
61
|
+
const hasTemplate = this.footerDirective()?.templateRef || !!this.footerTemplate();
|
|
62
|
+
const hasProjectedContent = !!this.footerContentRef()?.nativeElement?.children.length;
|
|
63
|
+
return hasTemplate || hasProjectedContent;
|
|
42
64
|
});
|
|
43
65
|
this.clearButton = computed(() => {
|
|
44
66
|
return this.buttonsContainerRef()?.nativeElement.querySelector(".rte-icon-button.clear-button");
|
|
@@ -52,6 +74,11 @@ export class SelectComponent {
|
|
|
52
74
|
}
|
|
53
75
|
return "bottom";
|
|
54
76
|
});
|
|
77
|
+
this.optionsFormatted = signal(this.options().map(({ value, label }) => ({
|
|
78
|
+
id: value,
|
|
79
|
+
label: label,
|
|
80
|
+
selected: this.isSelected(value),
|
|
81
|
+
})));
|
|
55
82
|
this.internalValue = signal(this.value());
|
|
56
83
|
this.requirementIndicatorValue = computed(() => this.required()
|
|
57
84
|
? this.showLabelRequirement()
|
|
@@ -59,20 +86,8 @@ export class SelectComponent {
|
|
|
59
86
|
: REQUIREMENT_INDICATOR_VALUE.requiredIcon
|
|
60
87
|
: REQUIREMENT_INDICATOR_VALUE.optional);
|
|
61
88
|
this.valueChange = output();
|
|
62
|
-
this.
|
|
63
|
-
|
|
64
|
-
});
|
|
65
|
-
this.isAssistiveTextLinkVisible = computed(() => {
|
|
66
|
-
return this.assistiveTextAppearance() === "link" && this.assistiveTextLink() !== undefined;
|
|
67
|
-
});
|
|
68
|
-
this.formattedOptions = computed(() => {
|
|
69
|
-
return this.options().map(({ value, label }) => ({
|
|
70
|
-
id: value,
|
|
71
|
-
label: label,
|
|
72
|
-
selected: value === this.internalValue(),
|
|
73
|
-
}));
|
|
74
|
-
});
|
|
75
|
-
this.shouldDisplayClearButton = computed(() => this.showResetButton() && !!this.internalValue() && !this.disabled());
|
|
89
|
+
this.currentDisplayedOption = signal(getSelectedOption(this.optionToDisplay() || "first-selected", this.options(), this.internalValue()));
|
|
90
|
+
this.shouldDisplayClearButton = signal(false);
|
|
76
91
|
this.shouldDisplayErrorIcon = computed(() => this.isError() && !this.disabled() && !this.readOnly());
|
|
77
92
|
this.isActive = signal(false);
|
|
78
93
|
this.selectWidth = computed(() => {
|
|
@@ -83,6 +98,13 @@ export class SelectComponent {
|
|
|
83
98
|
return null;
|
|
84
99
|
});
|
|
85
100
|
}
|
|
101
|
+
ngAfterViewInit() {
|
|
102
|
+
this.regenerateOptionsFormatted();
|
|
103
|
+
this.computeShouldDisplayClearButton();
|
|
104
|
+
}
|
|
105
|
+
areAllOptionsSelected() {
|
|
106
|
+
return this.multiple() && this.options().every((option) => this.internalValue()?.includes(option.value));
|
|
107
|
+
}
|
|
86
108
|
handleOnClickTrigger() {
|
|
87
109
|
if (this.readOnly() || this.disabled()) {
|
|
88
110
|
return;
|
|
@@ -97,7 +119,7 @@ export class SelectComponent {
|
|
|
97
119
|
const clearButton = this.buttonsContainerRef()?.nativeElement.children[0].children[0];
|
|
98
120
|
const isClearButtonFocused = document.activeElement === clearButton;
|
|
99
121
|
if (isClearButtonFocused && (event.key === SPACE_KEY || event.key === ENTER_KEY)) {
|
|
100
|
-
this.clearSelection(
|
|
122
|
+
this.clearSelection();
|
|
101
123
|
return;
|
|
102
124
|
}
|
|
103
125
|
}
|
|
@@ -105,24 +127,53 @@ export class SelectComponent {
|
|
|
105
127
|
this.toggleDropdown();
|
|
106
128
|
}
|
|
107
129
|
}
|
|
130
|
+
handleOnCloseChip(event, value) {
|
|
131
|
+
event.stopPropagation();
|
|
132
|
+
if (this.readOnly() || this.disabled()) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (this.multiple() && value) {
|
|
136
|
+
const currentValue = this.internalValue();
|
|
137
|
+
if (currentValue && Array.isArray(currentValue)) {
|
|
138
|
+
const valueIndex = currentValue.indexOf(value);
|
|
139
|
+
if (valueIndex > -1) {
|
|
140
|
+
currentValue.splice(valueIndex, 1);
|
|
141
|
+
this.internalValue.set(currentValue);
|
|
142
|
+
this.regenerateOptionsFormatted();
|
|
143
|
+
this.valueChange.emit(value);
|
|
144
|
+
this.currentDisplayedOption.set(getSelectedOption(this.optionToDisplay() || "first-selected", this.options(), this.internalValue()));
|
|
145
|
+
this.computeShouldDisplayClearButton();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
108
150
|
handleOnClickClearButton(event) {
|
|
109
151
|
if (this.readOnly() || this.disabled()) {
|
|
110
152
|
return;
|
|
111
153
|
}
|
|
112
|
-
event.
|
|
113
|
-
this.clearSelection(
|
|
154
|
+
event.stopPropagation();
|
|
155
|
+
this.clearSelection();
|
|
114
156
|
}
|
|
115
|
-
handleOnClickItem(
|
|
157
|
+
handleOnClickItem(value) {
|
|
116
158
|
if (this.readOnly() || this.disabled()) {
|
|
117
159
|
return;
|
|
118
160
|
}
|
|
119
|
-
this.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
161
|
+
if (this.multiple()) {
|
|
162
|
+
if (value === "select-all") {
|
|
163
|
+
this.clickedSelectAll();
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
this.clickedSelectItemMultiple(value);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
this.internalValue.set(value);
|
|
171
|
+
this.isActive.set(!this.isActive());
|
|
172
|
+
}
|
|
173
|
+
this.regenerateOptionsFormatted();
|
|
174
|
+
this.valueChange.emit(value);
|
|
175
|
+
this.currentDisplayedOption.set(getSelectedOption(this.optionToDisplay() || "first-selected", this.options(), this.internalValue()));
|
|
176
|
+
this.computeShouldDisplayClearButton();
|
|
126
177
|
this.selectRef()?.nativeElement.focus();
|
|
127
178
|
}
|
|
128
179
|
handleOnClosingDropdown() {
|
|
@@ -140,29 +191,116 @@ export class SelectComponent {
|
|
|
140
191
|
this.selectRef()?.nativeElement.dispatchEvent(new Event("closeDropdown"));
|
|
141
192
|
}
|
|
142
193
|
}
|
|
143
|
-
clearSelection(
|
|
144
|
-
this.
|
|
194
|
+
clearSelection() {
|
|
195
|
+
if (!this.multiple()) {
|
|
196
|
+
this.internalValue.set("");
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
this.internalValue.set([]);
|
|
200
|
+
}
|
|
145
201
|
this.isActive.set(false);
|
|
146
|
-
this.valueChange.emit(
|
|
202
|
+
this.valueChange.emit("select-all");
|
|
147
203
|
this.selectRef()?.nativeElement.dispatchEvent(new Event("clearContent"));
|
|
204
|
+
this.regenerateOptionsFormatted();
|
|
205
|
+
this.currentDisplayedOption.set(getSelectedOption(this.optionToDisplay() || "first-selected", this.options(), this.internalValue()));
|
|
206
|
+
this.computeShouldDisplayClearButton();
|
|
207
|
+
}
|
|
208
|
+
regenerateOptionsFormatted() {
|
|
209
|
+
if (this.withSelectAll()) {
|
|
210
|
+
this.optionsFormatted.set([
|
|
211
|
+
{
|
|
212
|
+
id: "select-all",
|
|
213
|
+
label: "Sélectionner tout",
|
|
214
|
+
selected: this.areAllOptionsSelected(),
|
|
215
|
+
hasCheckbox: true,
|
|
216
|
+
hasSeparator: true,
|
|
217
|
+
isIndeterminate: this.options().some((option) => this.isSelected(option.value)) && !this.areAllOptionsSelected(),
|
|
218
|
+
},
|
|
219
|
+
...this.options().map((option) => this.mapOptionToDropdownItemConfig(option)),
|
|
220
|
+
]);
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
this.optionsFormatted.set(this.options().map((option) => ({ ...this.mapOptionToDropdownItemConfig(option), hasSeparator: false })));
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
isSelected(value) {
|
|
227
|
+
if (this.multiple()) {
|
|
228
|
+
const currentValue = this.internalValue();
|
|
229
|
+
if (currentValue) {
|
|
230
|
+
return currentValue.includes(value);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return this.internalValue() === value;
|
|
234
|
+
}
|
|
235
|
+
computeShouldDisplayClearButton() {
|
|
236
|
+
const shouldDisplay = this.showResetButton() &&
|
|
237
|
+
(this.multiple()
|
|
238
|
+
? Array.isArray(this.internalValue()) && this.internalValue().length > 0
|
|
239
|
+
: !!this.internalValue()) &&
|
|
240
|
+
!this.disabled();
|
|
241
|
+
this.shouldDisplayClearButton.set(shouldDisplay);
|
|
242
|
+
}
|
|
243
|
+
clickedSelectAll() {
|
|
244
|
+
if (this.areAllOptionsSelected()) {
|
|
245
|
+
this.internalValue.set([]);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
this.internalValue.set(this.options().map((option) => option.value));
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
clickedSelectItemMultiple(value) {
|
|
252
|
+
const currentValue = this.internalValue();
|
|
253
|
+
if (currentValue === undefined) {
|
|
254
|
+
this.internalValue.set([value]);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
if (Array.isArray(currentValue)) {
|
|
258
|
+
const valuesArray = currentValue;
|
|
259
|
+
const valueIndex = valuesArray.indexOf(value);
|
|
260
|
+
if (valueIndex > -1) {
|
|
261
|
+
valuesArray.splice(valueIndex, 1);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
valuesArray.push(value);
|
|
265
|
+
}
|
|
266
|
+
this.internalValue.set(valuesArray);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
mapOptionToDropdownItemConfig(option) {
|
|
271
|
+
const { value, label } = option;
|
|
272
|
+
return {
|
|
273
|
+
id: value,
|
|
274
|
+
label: label,
|
|
275
|
+
selected: this.isSelected(value),
|
|
276
|
+
hasCheckbox: this.multiple(),
|
|
277
|
+
};
|
|
148
278
|
}
|
|
149
279
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
150
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
280
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SelectComponent, isStandalone: true, selector: "rte-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelId: { classPropertyName: "labelId", publicName: "labelId", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, assistiveTextLabel: { classPropertyName: "assistiveTextLabel", publicName: "assistiveTextLabel", isSignal: true, isRequired: false, transformFunction: null }, assistiveTextAppearance: { classPropertyName: "assistiveTextAppearance", publicName: "assistiveTextAppearance", isSignal: true, isRequired: false, transformFunction: null }, assistiveTextLink: { classPropertyName: "assistiveTextLink", publicName: "assistiveTextLink", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, showLabelRequirement: { classPropertyName: "showLabelRequirement", publicName: "showLabelRequirement", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, isError: { classPropertyName: "isError", publicName: "isError", isSignal: true, isRequired: false, transformFunction: null }, showAssistiveIcon: { classPropertyName: "showAssistiveIcon", publicName: "showAssistiveIcon", isSignal: true, isRequired: false, transformFunction: null }, showResetButton: { classPropertyName: "showResetButton", publicName: "showResetButton", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, withSelectAll: { classPropertyName: "withSelectAll", publicName: "withSelectAll", isSignal: true, isRequired: false, transformFunction: null }, optionToDisplay: { classPropertyName: "optionToDisplay", publicName: "optionToDisplay", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, providers: [
|
|
151
281
|
{
|
|
152
282
|
provide: NG_VALUE_ACCESSOR,
|
|
153
283
|
useExisting: SelectComponent,
|
|
154
284
|
multi: true,
|
|
155
285
|
},
|
|
156
|
-
], viewQueries: [{ propertyName: "selectRef", first: true, predicate: ["selectRef"], descendants: true, isSignal: true }, { propertyName: "buttonsContainerRef", first: true, predicate: ["buttonsContainerRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"rte-select-container\" [attr.data-label-position]=\"labelPosition()\">\n <label\n *ngIf=\"label() && labelPosition() === 'side'\"\n class=\"rte-select-label\"\n [attr.data-label-position]=\"labelPosition()\"\n [attr.id]=\"labelId()\"\n [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n\n <div class=\"rte-select-header\" [attr.data-label-position]=\"labelPosition()\">\n <label *ngIf=\"label() && labelPosition() === 'top'\" class=\"rte-select-label\" [attr.id]=\"labelId()\" [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n </div>\n <div\n rteDropdown\n [rteDropdownId]=\"'dropdown_select_' + id()\"\n [rteDropdownPosition]=\"dropdownPosition()\"\n [rteDropdownOffset]=\"selectDropdownOffset\"\n [rteDropdownWidth]=\"selectWidth()\"\n (menuEvent)=\"handleOnClickItem($event.id)\"\n (clickedOutside)=\"handleOnClickOutside()\"\n (closedDropdown)=\"handleOnClosingDropdown()\"\n >\n <div\n #selectRef\n rteDropdownTrigger\n class=\"rte-select-wrapper\"\n [attr.tabIndex]=\"disabled() || readOnly() ? -1 : 0\"\n [attr.role]=\"'combobox'\"\n [attr.data-error]=\"isError()\"\n [attr.data-disabled]=\"disabled()\"\n [attr.data-read-only]=\"readOnly()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-readonly]=\"readOnly()\"\n [attr.aria-labelledby]=\"labelId()\"\n [attr.aria-expanded]=\"isActive()\"\n [attr.data-active]=\"isActive()\"\n [ngStyle]=\"{ width: computedWidth() }\"\n (dropdownTriggered)=\"handleOnClickTrigger()\"\n (dropdownKeyDown)=\"handleOnKeyDownTrigger($event)\"\n >\n <div class=\"rte-select-content\">\n <rte-icon *ngIf=\"shouldDisplayErrorIcon()\" name=\"error\" class=\"error-icon\" />\n <div class=\"rte-select-value\">\n <span>{{ currentOptionLabel() }}</span>\n </div>\n <div #buttonsContainerRef class=\"rte-select-right-icons\">\n <rte-icon-button\n *ngIf=\"shouldDisplayClearButton()\"\n name=\"cancel\"\n variant=\"neutral\"\n class=\"rte-select-icon-button clear-icon\"\n [disabled]=\"disabled()\"\n (clickEvent)=\"handleOnClickClearButton($event)\"\n />\n <rte-icon\n class=\"trigger-icon trigger-icon-{{ isActive() ? 'up' : 'down' }}\"\n variant=\"neutral\"\n [name]=\"isActive() ? 'arrow-chevron-up' : 'arrow-chevron-down'\"\n />\n </div>\n </div>\n </div>\n <rte-dropdown-menu [items]=\"formattedOptions()\" />\n <rte-assistive-text\n *ngIf=\"assistiveTextLabel()\"\n [label]=\"assistiveTextLabel()\"\n [appearance]=\"isError() ? 'error' : assistiveTextAppearance()!\"\n [showIcon]=\"showAssistiveIcon()\"\n [href]=\"assistiveTextLink()\"\n [width]=\"width()\"\n />\n </div>\n</div>\n", styles: [".rte-select-container{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;flex-direction:column}.rte-select-container[data-label-position=side]{flex-direction:row;align-self:start}.rte-select-container[data-label-position=side] .rte-select-header{display:flex;flex-direction:column}.rte-select-container[data-label-position=side] .rte-select-label{height:32px;padding:0 8px}.rte-select-container .rte-select-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:2px 8px;color:var(--content-secondary);justify-content:space-between;white-space:normal;overflow-wrap:normal;word-break:normal}.rte-select-container .rte-select-label .requirement-indicator{margin-left:2px}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;color:var(--content-tertiary)}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement:not(.required){font-style:italic}.rte-select-container .rte-select-label .requirement-indicator:not(.show-label-requirement).required{color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%);display:flex;min-width:112px;min-height:32px;max-height:32px;align-items:center;align-self:stretch;border-radius:4px;border:1px solid var(--border-secondary);box-sizing:border-box}.rte-select-container .rte-select-wrapper .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper:hover{border-color:var(--border-primary);cursor:pointer}.rte-select-container .rte-select-wrapper:focus-visible,.rte-select-container .rte-select-wrapper[data-active=true]{border-color:var(--border-brand-default);outline:1px solid var(--border-brand-default)}.rte-select-container .rte-select-wrapper[data-error=true]{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]{color:var(--content-disabled);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]{color:var(--content-tertiary);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]:hover{cursor:default;border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true] .rte-select-content .rte-select-value{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper[data-error=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true]:focus-visible{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true] .rte-select-content .rte-select-value{color:var(--content-secondary)}.rte-select-container .rte-select-wrapper[data-disabled=true]{color:var(--content-disabled);background-color:var(--background-disabled);border-color:var(--border-disabled)}.rte-select-container .rte-select-wrapper[data-disabled=true]:hover{cursor:not-allowed}.rte-select-container .rte-select-wrapper[data-disabled=true] .trigger-icon,.rte-select-container .rte-select-wrapper[data-disabled=true] .rte-select-content .rte-select-value{color:var(--content-disabled)}.rte-select-container .rte-select-wrapper[data-read-only=true]{color:var(--content-tertiary);background-color:var(--background-disabled);border-color:var(--border-tertiary)}.rte-select-container .rte-select-wrapper[data-read-only=true]:hover{cursor:default}.rte-select-container .rte-select-wrapper[data-read-only=true] .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content{display:flex;min-width:96px;padding:4px 8px;align-items:center;flex:1 0 0}.rte-select-container .rte-select-wrapper .rte-select-content .error-icon{padding:0;color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:0 8px;align-items:center;flex:1 0 0;text-overflow:ellipsis;overflow:hidden;color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value span{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons{display:flex;align-items:center;gap:8px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button{padding:0;height:20px;width:20px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:2px;outline-offset:3px}.rte-select-container .assistive-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;display:flex;align-items:center;gap:4px;padding:4px 8px;color:var(--content-secondary)}.rte-select-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.rte-select-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.rte-select-container .assistive-text.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.rte-select-container .assistive-text.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i2.DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth"], outputs: ["menuEvent", "clickedOutside", "closedDropdown"] }, { kind: "directive", type: i3.DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: i4.DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: AssistiveTextComponent, selector: "rte-assistive-text", inputs: ["label", "appearance", "showIcon", "href", "width"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
286
|
+
], queries: [{ propertyName: "headerDirective", first: true, predicate: SelectHeaderDirective, descendants: true, isSignal: true }, { propertyName: "footerDirective", first: true, predicate: SelectFooterDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "selectRef", first: true, predicate: ["selectRef"], descendants: true, isSignal: true }, { propertyName: "buttonsContainerRef", first: true, predicate: ["buttonsContainerRef"], descendants: true, isSignal: true }, { propertyName: "headerContentRef", first: true, predicate: ["headerContent"], descendants: true, isSignal: true }, { propertyName: "footerContentRef", first: true, predicate: ["footerContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"rte-select-container\" [attr.data-label-position]=\"labelPosition()\">\n <label\n *ngIf=\"label() && labelPosition() === 'side'\"\n class=\"rte-select-label\"\n [attr.data-label-position]=\"labelPosition()\"\n [attr.id]=\"labelId()\"\n [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n\n <div class=\"rte-select-header\" [attr.data-label-position]=\"labelPosition()\">\n <label *ngIf=\"label() && labelPosition() === 'top'\" class=\"rte-select-label\" [attr.id]=\"labelId()\" [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n </div>\n <div\n rteDropdown\n [rteDropdownId]=\"'dropdown_select_' + id()\"\n [rteDropdownPosition]=\"dropdownPosition()\"\n [rteDropdownOffset]=\"selectDropdownOffset\"\n [rteDropdownWidth]=\"selectWidth()\"\n [rteCloseOnItemClick]=\"multiple() ? false : true\"\n (menuEvent)=\"handleOnClickItem($event.id)\"\n (menuChangeEvent)=\"handleOnClickItem($event.id)\"\n (clickedOutside)=\"handleOnClickOutside()\"\n (closedDropdown)=\"handleOnClosingDropdown()\"\n >\n <div\n #selectRef\n rteDropdownTrigger\n class=\"rte-select-wrapper\"\n [attr.tabIndex]=\"disabled() || readOnly() ? -1 : 0\"\n [attr.role]=\"'combobox'\"\n [attr.data-error]=\"isError()\"\n [attr.data-disabled]=\"disabled()\"\n [attr.data-read-only]=\"readOnly()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-readonly]=\"readOnly()\"\n [attr.aria-labelledby]=\"labelId()\"\n [attr.aria-expanded]=\"isActive()\"\n [attr.data-active]=\"isActive()\"\n (dropdownTriggered)=\"handleOnClickTrigger()\"\n (dropdownKeyDown)=\"handleOnKeyDownTrigger($event)\"\n >\n <div class=\"rte-select-content\">\n <rte-icon *ngIf=\"shouldDisplayErrorIcon()\" name=\"error\" class=\"error-icon\" />\n\n <div class=\"rte-select-value\">\n @if (this.multiple() && currentDisplayedOption()) {\n <div class=\"rte-select-multiple-values\">\n <rte-chip\n type=\"input\"\n [label]=\"currentDisplayedOption()!.label\"\n (close)=\"handleOnCloseChip($event, currentDisplayedOption()!.value)\"\n />\n <rte-badge\n *ngIf=\"internalValue()!.length > 1\"\n content=\"number\"\n badgeType=\"brand\"\n size=\"m\"\n [count]=\"internalValue()!.length - 1\"\n [withPlusSign]=\"true\"\n [simpleBadge]=\"true\"\n />\n </div>\n } @else {\n <span>{{ currentDisplayedOption()?.label }}</span>\n }\n </div>\n <div #buttonsContainerRef class=\"rte-select-right-icons\">\n <rte-icon-button\n *ngIf=\"shouldDisplayClearButton()\"\n name=\"cancel\"\n variant=\"neutral\"\n class=\"rte-select-icon-button clear-icon\"\n [disabled]=\"disabled()\"\n (clickEvent)=\"handleOnClickClearButton($event)\"\n />\n <rte-icon\n class=\"trigger-icon trigger-icon-{{ isActive() ? 'up' : 'down' }}\"\n variant=\"neutral\"\n [name]=\"isActive() ? 'arrow-chevron-up' : 'arrow-chevron-down'\"\n />\n </div>\n </div>\n </div>\n <rte-dropdown-menu [items]=\"optionsFormatted()\">\n @if (hasHeaderContent()) {\n <ng-template rteDropdownMenuHeader>\n <div #headerContent>\n @if (headerTemplate() || headerDirective()?.templateRef) {\n <ng-container\n [ngTemplateOutlet]=\"(headerTemplate() || headerDirective()?.templateRef) ?? null\"\n ></ng-container>\n } @else {\n <div #headerContent>\n <ng-content select=\"[select-header]\"></ng-content>\n </div>\n }\n </div>\n </ng-template>\n }\n @if (hasFooterContent()) {\n <ng-template rteDropdownMenuFooter>\n <div #footerContent>\n @if (footerTemplate() || footerDirective()?.templateRef) {\n <ng-container\n [ngTemplateOutlet]=\"(footerTemplate() || footerDirective()?.templateRef) ?? null\"\n ></ng-container>\n } @else {\n <div #footerContent>\n <ng-content select=\"[select-footer]\"></ng-content>\n </div>\n }\n </div>\n </ng-template>\n }\n </rte-dropdown-menu>\n <rte-assistive-text\n *ngIf=\"assistiveTextLabel()\"\n [label]=\"assistiveTextLabel()\"\n [appearance]=\"isError() ? 'error' : assistiveTextAppearance()!\"\n [showIcon]=\"showAssistiveIcon()\"\n [href]=\"assistiveTextLink()\"\n />\n </div>\n</div>\n", styles: [".rte-select-container{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;flex-direction:column}.rte-select-container[data-label-position=side]{flex-direction:row;align-self:start}.rte-select-container[data-label-position=side] .rte-select-header{display:flex;flex-direction:column}.rte-select-container[data-label-position=side] .rte-select-label{height:32px;padding:0 8px}.rte-select-container .rte-select-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:2px 8px;color:var(--content-secondary);white-space:normal;overflow-wrap:normal;word-break:normal;align-items:center}.rte-select-container .rte-select-label .requirement-indicator{margin-left:2px}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;color:var(--content-tertiary)}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement:not(.required){font-style:italic}.rte-select-container .rte-select-label .requirement-indicator:not(.show-label-requirement).required{color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%);display:flex;min-width:112px;min-height:32px;max-height:32px;align-items:center;align-self:stretch;border-radius:4px;border:1px solid var(--border-secondary);box-sizing:border-box}.rte-select-container .rte-select-wrapper .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper:hover{border-color:var(--border-primary);cursor:pointer}.rte-select-container .rte-select-wrapper:focus-visible,.rte-select-container .rte-select-wrapper[data-active=true]{border-color:var(--border-brand-default);outline:1px solid var(--border-brand-default)}.rte-select-container .rte-select-wrapper[data-error=true]{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]{color:var(--content-disabled);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]{color:var(--content-tertiary);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]:hover{cursor:default;border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true] .rte-select-content .rte-select-value{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper[data-error=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true]:focus-visible{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true] .rte-select-content .rte-select-value{color:var(--content-secondary)}.rte-select-container .rte-select-wrapper[data-disabled=true]{color:var(--content-disabled);background-color:var(--background-disabled);border-color:var(--border-disabled)}.rte-select-container .rte-select-wrapper[data-disabled=true]:hover{cursor:not-allowed}.rte-select-container .rte-select-wrapper[data-disabled=true] .trigger-icon,.rte-select-container .rte-select-wrapper[data-disabled=true] .rte-select-content .rte-select-value{color:var(--content-disabled)}.rte-select-container .rte-select-wrapper[data-read-only=true]{color:var(--content-tertiary);background-color:var(--background-disabled);border-color:var(--border-tertiary)}.rte-select-container .rte-select-wrapper[data-read-only=true]:hover{cursor:default}.rte-select-container .rte-select-wrapper[data-read-only=true] .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content{display:flex;min-width:96px;padding:4px 8px;align-items:center;flex:1 0 0}.rte-select-container .rte-select-wrapper .rte-select-content .error-icon{padding:0;color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:0 8px;align-items:center;flex:1 0 0;text-overflow:ellipsis;overflow:hidden;color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value span{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value .rte-select-multiple-values,.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons{display:flex;align-items:center;gap:8px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button{padding:0;height:20px;width:20px;color:var(--content-secondary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:hover{color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:active{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:2px;outline-offset:3px}.rte-select-container .assistive-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;display:flex;align-items:center;gap:4px;padding:4px 8px;color:var(--content-secondary)}.rte-select-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.rte-select-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.rte-select-container .assistive-text.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.rte-select-container .assistive-text.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i2.DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth", "rteCloseOnItemClick"], outputs: ["menuEvent", "clickedOutside", "closedDropdown", "menuChangeEvent"] }, { kind: "directive", type: i3.DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: i4.DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }, { kind: "directive", type: i5.DropdownMenuHeaderDirective, selector: "[rteDropdownMenuHeader]" }, { kind: "directive", type: i6.DropdownMenuFooterDirective, selector: "[rteDropdownMenuFooter]" }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: AssistiveTextComponent, selector: "rte-assistive-text", inputs: ["label", "appearance", "showIcon", "href", "width"] }, { kind: "component", type: ChipComponent, selector: "rte-chip", inputs: ["id", "label", "selected", "disabled", "type", "compactSpacing"], outputs: ["click", "close"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
157
287
|
}
|
|
158
288
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectComponent, decorators: [{
|
|
159
289
|
type: Component,
|
|
160
|
-
args: [{ selector: "rte-select", imports: [
|
|
290
|
+
args: [{ selector: "rte-select", imports: [
|
|
291
|
+
CommonModule,
|
|
292
|
+
IconComponent,
|
|
293
|
+
DropdownModule,
|
|
294
|
+
IconButtonComponent,
|
|
295
|
+
AssistiveTextComponent,
|
|
296
|
+
ChipComponent,
|
|
297
|
+
BadgeComponent,
|
|
298
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
161
299
|
{
|
|
162
300
|
provide: NG_VALUE_ACCESSOR,
|
|
163
301
|
useExisting: SelectComponent,
|
|
164
302
|
multi: true,
|
|
165
303
|
},
|
|
166
|
-
], template: "<div class=\"rte-select-container\" [attr.data-label-position]=\"labelPosition()\">\n <label\n *ngIf=\"label() && labelPosition() === 'side'\"\n class=\"rte-select-label\"\n [attr.data-label-position]=\"labelPosition()\"\n [attr.id]=\"labelId()\"\n [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n\n <div class=\"rte-select-header\" [attr.data-label-position]=\"labelPosition()\">\n <label *ngIf=\"label() && labelPosition() === 'top'\" class=\"rte-select-label\" [attr.id]=\"labelId()\" [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n </div>\n <div\n rteDropdown\n [rteDropdownId]=\"'dropdown_select_' + id()\"\n [rteDropdownPosition]=\"dropdownPosition()\"\n [rteDropdownOffset]=\"selectDropdownOffset\"\n [rteDropdownWidth]=\"selectWidth()\"\n (menuEvent)=\"handleOnClickItem($event.id)\"\n (clickedOutside)=\"handleOnClickOutside()\"\n (closedDropdown)=\"handleOnClosingDropdown()\"\n >\n <div\n #selectRef\n rteDropdownTrigger\n class=\"rte-select-wrapper\"\n [attr.tabIndex]=\"disabled() || readOnly() ? -1 : 0\"\n [attr.role]=\"'combobox'\"\n [attr.data-error]=\"isError()\"\n [attr.data-disabled]=\"disabled()\"\n [attr.data-read-only]=\"readOnly()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-readonly]=\"readOnly()\"\n [attr.aria-labelledby]=\"labelId()\"\n [attr.aria-expanded]=\"isActive()\"\n [attr.data-active]=\"isActive()\"\n [ngStyle]=\"{ width: computedWidth() }\"\n (dropdownTriggered)=\"handleOnClickTrigger()\"\n (dropdownKeyDown)=\"handleOnKeyDownTrigger($event)\"\n >\n <div class=\"rte-select-content\">\n <rte-icon *ngIf=\"shouldDisplayErrorIcon()\" name=\"error\" class=\"error-icon\" />\n <div class=\"rte-select-value\">\n <span>{{ currentOptionLabel() }}</span>\n </div>\n <div #buttonsContainerRef class=\"rte-select-right-icons\">\n <rte-icon-button\n *ngIf=\"shouldDisplayClearButton()\"\n name=\"cancel\"\n variant=\"neutral\"\n class=\"rte-select-icon-button clear-icon\"\n [disabled]=\"disabled()\"\n (clickEvent)=\"handleOnClickClearButton($event)\"\n />\n <rte-icon\n class=\"trigger-icon trigger-icon-{{ isActive() ? 'up' : 'down' }}\"\n variant=\"neutral\"\n [name]=\"isActive() ? 'arrow-chevron-up' : 'arrow-chevron-down'\"\n />\n </div>\n </div>\n </div>\n <rte-dropdown-menu [items]=\"formattedOptions()\" />\n <rte-assistive-text\n *ngIf=\"assistiveTextLabel()\"\n [label]=\"assistiveTextLabel()\"\n [appearance]=\"isError() ? 'error' : assistiveTextAppearance()!\"\n [showIcon]=\"showAssistiveIcon()\"\n [href]=\"assistiveTextLink()\"\n [width]=\"width()\"\n />\n </div>\n</div>\n", styles: [".rte-select-container{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;flex-direction:column}.rte-select-container[data-label-position=side]{flex-direction:row;align-self:start}.rte-select-container[data-label-position=side] .rte-select-header{display:flex;flex-direction:column}.rte-select-container[data-label-position=side] .rte-select-label{height:32px;padding:0 8px}.rte-select-container .rte-select-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:2px 8px;color:var(--content-secondary);justify-content:space-between;white-space:normal;overflow-wrap:normal;word-break:normal}.rte-select-container .rte-select-label .requirement-indicator{margin-left:2px}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;color:var(--content-tertiary)}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement:not(.required){font-style:italic}.rte-select-container .rte-select-label .requirement-indicator:not(.show-label-requirement).required{color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%);display:flex;min-width:112px;min-height:32px;max-height:32px;align-items:center;align-self:stretch;border-radius:4px;border:1px solid var(--border-secondary);box-sizing:border-box}.rte-select-container .rte-select-wrapper .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper:hover{border-color:var(--border-primary);cursor:pointer}.rte-select-container .rte-select-wrapper:focus-visible,.rte-select-container .rte-select-wrapper[data-active=true]{border-color:var(--border-brand-default);outline:1px solid var(--border-brand-default)}.rte-select-container .rte-select-wrapper[data-error=true]{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]{color:var(--content-disabled);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]{color:var(--content-tertiary);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]:hover{cursor:default;border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true] .rte-select-content .rte-select-value{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper[data-error=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true]:focus-visible{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true] .rte-select-content .rte-select-value{color:var(--content-secondary)}.rte-select-container .rte-select-wrapper[data-disabled=true]{color:var(--content-disabled);background-color:var(--background-disabled);border-color:var(--border-disabled)}.rte-select-container .rte-select-wrapper[data-disabled=true]:hover{cursor:not-allowed}.rte-select-container .rte-select-wrapper[data-disabled=true] .trigger-icon,.rte-select-container .rte-select-wrapper[data-disabled=true] .rte-select-content .rte-select-value{color:var(--content-disabled)}.rte-select-container .rte-select-wrapper[data-read-only=true]{color:var(--content-tertiary);background-color:var(--background-disabled);border-color:var(--border-tertiary)}.rte-select-container .rte-select-wrapper[data-read-only=true]:hover{cursor:default}.rte-select-container .rte-select-wrapper[data-read-only=true] .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content{display:flex;min-width:96px;padding:4px 8px;align-items:center;flex:1 0 0}.rte-select-container .rte-select-wrapper .rte-select-content .error-icon{padding:0;color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:0 8px;align-items:center;flex:1 0 0;text-overflow:ellipsis;overflow:hidden;color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value span{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons{display:flex;align-items:center;gap:8px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button{padding:0;height:20px;width:20px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:2px;outline-offset:3px}.rte-select-container .assistive-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;display:flex;align-items:center;gap:4px;padding:4px 8px;color:var(--content-secondary)}.rte-select-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.rte-select-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.rte-select-container .assistive-text.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.rte-select-container .assistive-text.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}\n"] }]
|
|
304
|
+
], template: "<div class=\"rte-select-container\" [attr.data-label-position]=\"labelPosition()\">\n <label\n *ngIf=\"label() && labelPosition() === 'side'\"\n class=\"rte-select-label\"\n [attr.data-label-position]=\"labelPosition()\"\n [attr.id]=\"labelId()\"\n [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n\n <div class=\"rte-select-header\" [attr.data-label-position]=\"labelPosition()\">\n <label *ngIf=\"label() && labelPosition() === 'top'\" class=\"rte-select-label\" [attr.id]=\"labelId()\" [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n </div>\n <div\n rteDropdown\n [rteDropdownId]=\"'dropdown_select_' + id()\"\n [rteDropdownPosition]=\"dropdownPosition()\"\n [rteDropdownOffset]=\"selectDropdownOffset\"\n [rteDropdownWidth]=\"selectWidth()\"\n [rteCloseOnItemClick]=\"multiple() ? false : true\"\n (menuEvent)=\"handleOnClickItem($event.id)\"\n (menuChangeEvent)=\"handleOnClickItem($event.id)\"\n (clickedOutside)=\"handleOnClickOutside()\"\n (closedDropdown)=\"handleOnClosingDropdown()\"\n >\n <div\n #selectRef\n rteDropdownTrigger\n class=\"rte-select-wrapper\"\n [attr.tabIndex]=\"disabled() || readOnly() ? -1 : 0\"\n [attr.role]=\"'combobox'\"\n [attr.data-error]=\"isError()\"\n [attr.data-disabled]=\"disabled()\"\n [attr.data-read-only]=\"readOnly()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-readonly]=\"readOnly()\"\n [attr.aria-labelledby]=\"labelId()\"\n [attr.aria-expanded]=\"isActive()\"\n [attr.data-active]=\"isActive()\"\n (dropdownTriggered)=\"handleOnClickTrigger()\"\n (dropdownKeyDown)=\"handleOnKeyDownTrigger($event)\"\n >\n <div class=\"rte-select-content\">\n <rte-icon *ngIf=\"shouldDisplayErrorIcon()\" name=\"error\" class=\"error-icon\" />\n\n <div class=\"rte-select-value\">\n @if (this.multiple() && currentDisplayedOption()) {\n <div class=\"rte-select-multiple-values\">\n <rte-chip\n type=\"input\"\n [label]=\"currentDisplayedOption()!.label\"\n (close)=\"handleOnCloseChip($event, currentDisplayedOption()!.value)\"\n />\n <rte-badge\n *ngIf=\"internalValue()!.length > 1\"\n content=\"number\"\n badgeType=\"brand\"\n size=\"m\"\n [count]=\"internalValue()!.length - 1\"\n [withPlusSign]=\"true\"\n [simpleBadge]=\"true\"\n />\n </div>\n } @else {\n <span>{{ currentDisplayedOption()?.label }}</span>\n }\n </div>\n <div #buttonsContainerRef class=\"rte-select-right-icons\">\n <rte-icon-button\n *ngIf=\"shouldDisplayClearButton()\"\n name=\"cancel\"\n variant=\"neutral\"\n class=\"rte-select-icon-button clear-icon\"\n [disabled]=\"disabled()\"\n (clickEvent)=\"handleOnClickClearButton($event)\"\n />\n <rte-icon\n class=\"trigger-icon trigger-icon-{{ isActive() ? 'up' : 'down' }}\"\n variant=\"neutral\"\n [name]=\"isActive() ? 'arrow-chevron-up' : 'arrow-chevron-down'\"\n />\n </div>\n </div>\n </div>\n <rte-dropdown-menu [items]=\"optionsFormatted()\">\n @if (hasHeaderContent()) {\n <ng-template rteDropdownMenuHeader>\n <div #headerContent>\n @if (headerTemplate() || headerDirective()?.templateRef) {\n <ng-container\n [ngTemplateOutlet]=\"(headerTemplate() || headerDirective()?.templateRef) ?? null\"\n ></ng-container>\n } @else {\n <div #headerContent>\n <ng-content select=\"[select-header]\"></ng-content>\n </div>\n }\n </div>\n </ng-template>\n }\n @if (hasFooterContent()) {\n <ng-template rteDropdownMenuFooter>\n <div #footerContent>\n @if (footerTemplate() || footerDirective()?.templateRef) {\n <ng-container\n [ngTemplateOutlet]=\"(footerTemplate() || footerDirective()?.templateRef) ?? null\"\n ></ng-container>\n } @else {\n <div #footerContent>\n <ng-content select=\"[select-footer]\"></ng-content>\n </div>\n }\n </div>\n </ng-template>\n }\n </rte-dropdown-menu>\n <rte-assistive-text\n *ngIf=\"assistiveTextLabel()\"\n [label]=\"assistiveTextLabel()\"\n [appearance]=\"isError() ? 'error' : assistiveTextAppearance()!\"\n [showIcon]=\"showAssistiveIcon()\"\n [href]=\"assistiveTextLink()\"\n />\n </div>\n</div>\n", styles: [".rte-select-container{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;flex-direction:column}.rte-select-container[data-label-position=side]{flex-direction:row;align-self:start}.rte-select-container[data-label-position=side] .rte-select-header{display:flex;flex-direction:column}.rte-select-container[data-label-position=side] .rte-select-label{height:32px;padding:0 8px}.rte-select-container .rte-select-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:2px 8px;color:var(--content-secondary);white-space:normal;overflow-wrap:normal;word-break:normal;align-items:center}.rte-select-container .rte-select-label .requirement-indicator{margin-left:2px}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;color:var(--content-tertiary)}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement:not(.required){font-style:italic}.rte-select-container .rte-select-label .requirement-indicator:not(.show-label-requirement).required{color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%);display:flex;min-width:112px;min-height:32px;max-height:32px;align-items:center;align-self:stretch;border-radius:4px;border:1px solid var(--border-secondary);box-sizing:border-box}.rte-select-container .rte-select-wrapper .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper:hover{border-color:var(--border-primary);cursor:pointer}.rte-select-container .rte-select-wrapper:focus-visible,.rte-select-container .rte-select-wrapper[data-active=true]{border-color:var(--border-brand-default);outline:1px solid var(--border-brand-default)}.rte-select-container .rte-select-wrapper[data-error=true]{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]{color:var(--content-disabled);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]{color:var(--content-tertiary);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]:hover{cursor:default;border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true] .rte-select-content .rte-select-value{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper[data-error=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true]:focus-visible{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true] .rte-select-content .rte-select-value{color:var(--content-secondary)}.rte-select-container .rte-select-wrapper[data-disabled=true]{color:var(--content-disabled);background-color:var(--background-disabled);border-color:var(--border-disabled)}.rte-select-container .rte-select-wrapper[data-disabled=true]:hover{cursor:not-allowed}.rte-select-container .rte-select-wrapper[data-disabled=true] .trigger-icon,.rte-select-container .rte-select-wrapper[data-disabled=true] .rte-select-content .rte-select-value{color:var(--content-disabled)}.rte-select-container .rte-select-wrapper[data-read-only=true]{color:var(--content-tertiary);background-color:var(--background-disabled);border-color:var(--border-tertiary)}.rte-select-container .rte-select-wrapper[data-read-only=true]:hover{cursor:default}.rte-select-container .rte-select-wrapper[data-read-only=true] .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content{display:flex;min-width:96px;padding:4px 8px;align-items:center;flex:1 0 0}.rte-select-container .rte-select-wrapper .rte-select-content .error-icon{padding:0;color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:0 8px;align-items:center;flex:1 0 0;text-overflow:ellipsis;overflow:hidden;color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value span{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value .rte-select-multiple-values,.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons{display:flex;align-items:center;gap:8px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button{padding:0;height:20px;width:20px;color:var(--content-secondary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:hover{color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:active{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:2px;outline-offset:3px}.rte-select-container .assistive-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;display:flex;align-items:center;gap:4px;padding:4px 8px;color:var(--content-secondary)}.rte-select-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.rte-select-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.rte-select-container .assistive-text.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.rte-select-container .assistive-text.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}\n"] }]
|
|
167
305
|
}] });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUVULHVCQUF1QixHQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtRkFBbUYsQ0FBQztBQUNoSSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QixnQkFBZ0IsR0FDakIsTUFBTSw0REFBNEQsQ0FBQztBQUVwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRXJHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7QUFpQjNFLE1BQU0sT0FBTyxlQUFlO0lBZjVCO1FBZ0JXLE9BQUUsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNyQixTQUFJLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFD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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgaW5wdXQsXG4gIGNvbXB1dGVkLFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBSRVFVSVJFTUVOVF9JTkRJQ0FUT1JfVkFMVUUgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9yZXF1aXJlZC1pbmRpY2F0b3IvcmVxdWlyZWQtaW5kaWNhdG9yLmNvbnN0YW50XCI7XG5pbXBvcnQge1xuICBTRUxFQ1RfRFJPUERPV05fT0ZGU0VULFxuICBUSFJFU0hPTERfQk9UVE9NX1BPU0lUSU9OLFxuICBNSU5fU0VMRUNUX1dJRFRILFxufSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbnN0YW50c1wiO1xuaW1wb3J0IHsgU2VsZWN0UHJvcHMgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRU5URVJfS0VZLCBTUEFDRV9LRVkgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2tleWJvYXJkL2tleWJvYXJkLmNvbnN0YW50c1wiO1xuXG5pbXBvcnQgeyBBc3Npc3RpdmVUZXh0Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Fzc2lzdGl2ZS10ZXh0L2Fzc2lzdGl2ZS10ZXh0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tIFwiLi4vZHJvcGRvd25cIjtcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi9pY29uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInJ0ZS1zZWxlY3RcIixcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudCwgRHJvcGRvd25Nb2R1bGUsIEljb25CdXR0b25Db21wb25lbnQsIEFzc2lzdGl2ZVRleHRDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogXCIuL3NlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybDogXCIuL3NlbGVjdC5jb21wb25lbnQuc2Nzc1wiLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogU2VsZWN0Q29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaWQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IG5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGFyaWFMYWJlbGxlZGJ5ID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBsYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgbGFiZWxJZCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgbGFiZWxQb3NpdGlvbiA9IGlucHV0PFNlbGVjdFByb3BzW1wibGFiZWxQb3NpdGlvblwiXT4oXCJ0b3BcIik7XG4gIHJlYWRvbmx5IGFzc2lzdGl2ZVRleHRMYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgYXNzaXN0aXZlVGV4dEFwcGVhcmFuY2UgPSBpbnB1dDxTZWxlY3RQcm9wc1tcImFzc2lzdGl2ZUFwcGVhcmFuY2VcIl0+KFwiZGVzY3JpcHRpb25cIik7XG4gIHJlYWRvbmx5IGFzc2lzdGl2ZVRleHRMaW5rID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSByZXF1aXJlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd0xhYmVsUmVxdWlyZW1lbnQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSByZWFkT25seSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgdmFsdWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IG9wdGlvbnMgPSBpbnB1dDxTZWxlY3RQcm9wc1tcIm9wdGlvbnNcIl0+KFtdKTtcbiAgcmVhZG9ubHkgaXNFcnJvciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd0Fzc2lzdGl2ZUljb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNob3dSZXNldEJ1dHRvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgd2lkdGggPSBpbnB1dDxudW1iZXI+KE1JTl9TRUxFQ1RfV0lEVEgpO1xuXG4gIHJlYWRvbmx5IHNlbGVjdFJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oXCJzZWxlY3RSZWZcIik7XG4gIHJlYWRvbmx5IGJ1dHRvbnNDb250YWluZXJSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KFwiYnV0dG9uc0NvbnRhaW5lclJlZlwiKTtcblxuICByZWFkb25seSBzZWxlY3REcm9wZG93bk9mZnNldCA9IFNFTEVDVF9EUk9QRE9XTl9PRkZTRVQ7XG5cbiAgcmVhZG9ubHkgY29tcHV0ZWRXaWR0aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gYCR7dGhpcy53aWR0aCgpfXB4YDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY2xlYXJCdXR0b24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYnV0dG9uc0NvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBcIi5ydGUtaWNvbi1idXR0b24uY2xlYXItYnV0dG9uXCIsXG4gICAgKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGRyb3Bkb3duUG9zaXRpb24gPSBjb21wdXRlZDxcImJvdHRvbVwiIHwgXCJ0b3BcIj4oKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdEVsZW1lbnQgPSB0aGlzLnNlbGVjdFJlZigpPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChzZWxlY3RFbGVtZW50KSB7XG4gICAgICBjb25zdCByZWN0ID0gc2VsZWN0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHNwYWNlQmVsb3cgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0LmJvdHRvbTtcbiAgICAgIHJldHVybiBzcGFjZUJlbG93ID49IFRIUkVTSE9MRF9CT1RUT01fUE9TSVRJT04gPyBcImJvdHRvbVwiIDogXCJ0b3BcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwiYm90dG9tXCI7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGludGVybmFsVmFsdWUgPSBzaWduYWwodGhpcy52YWx1ZSgpKTtcblxuICByZWFkb25seSByZXF1aXJlbWVudEluZGljYXRvclZhbHVlID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLnJlcXVpcmVkKClcbiAgICAgID8gdGhpcy5zaG93TGFiZWxSZXF1aXJlbWVudCgpXG4gICAgICAgID8gUkVRVUlSRU1FTlRfSU5ESUNBVE9SX1ZBTFVFLnJlcXVpcmVkXG4gICAgICAgIDogUkVRVUlSRU1FTlRfSU5ESUNBVE9SX1ZBTFVFLnJlcXVpcmVkSWNvblxuICAgICAgOiBSRVFVSVJFTUVOVF9JTkRJQ0FUT1JfVkFMVUUub3B0aW9uYWwsXG4gICk7XG5cbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBvdXRwdXQ8RXZlbnQ+KCk7XG5cbiAgcmVhZG9ubHkgY3VycmVudE9wdGlvbkxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMoKS5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5pbnRlcm5hbFZhbHVlKCkpPy5sYWJlbDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaXNBc3Npc3RpdmVUZXh0TGlua1Zpc2libGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYXNzaXN0aXZlVGV4dEFwcGVhcmFuY2UoKSA9PT0gXCJsaW5rXCIgJiYgdGhpcy5hc3Npc3RpdmVUZXh0TGluaygpICE9PSB1bmRlZmluZWQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGZvcm1hdHRlZE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucygpLm1hcCgoeyB2YWx1ZSwgbGFiZWwgfSkgPT4gKHtcbiAgICAgIGlkOiB2YWx1ZSxcbiAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgIHNlbGVjdGVkOiB2YWx1ZSA9PT0gdGhpcy5pbnRlcm5hbFZhbHVlKCksXG4gICAgfSkpO1xuICB9KTtcblxuICByZWFkb25seSBzaG91bGREaXNwbGF5Q2xlYXJCdXR0b24gPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLnNob3dSZXNldEJ1dHRvbigpICYmICEhdGhpcy5pbnRlcm5hbFZhbHVlKCkgJiYgIXRoaXMuZGlzYWJsZWQoKSxcbiAgKTtcblxuICByZWFkb25seSBzaG91bGREaXNwbGF5RXJyb3JJY29uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pc0Vycm9yKCkgJiYgIXRoaXMuZGlzYWJsZWQoKSAmJiAhdGhpcy5yZWFkT25seSgpKTtcblxuICByZWFkb25seSBpc0FjdGl2ZSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0V2lkdGggPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuc2VsZWN0UmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKG5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBuYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfSk7XG5cbiAgaGFuZGxlT25DbGlja1RyaWdnZXIoKSB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkoKSB8fCB0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50b2dnbGVEcm9wZG93bigpO1xuICB9XG5cbiAgaGFuZGxlT25LZXlEb3duVHJpZ2dlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLnJlYWRPbmx5KCkgfHwgdGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3VsZERpc3BsYXlDbGVhckJ1dHRvbigpKSB7XG4gICAgICBjb25zdCBjbGVhckJ1dHRvbiA9IHRoaXMuYnV0dG9uc0NvbnRhaW5lclJlZigpPy5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdO1xuICAgICAgY29uc3QgaXNDbGVhckJ1dHRvbkZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBjbGVhckJ1dHRvbjtcbiAgICAgIGlmIChpc0NsZWFyQnV0dG9uRm9jdXNlZCAmJiAoZXZlbnQua2V5ID09PSBTUEFDRV9LRVkgfHwgZXZlbnQua2V5ID09PSBFTlRFUl9LRVkpKSB7XG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oZXZlbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gU1BBQ0VfS0VZIHx8IGV2ZW50LmtleSA9PT0gRU5URVJfS0VZKSB7XG4gICAgICB0aGlzLnRvZ2dsZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT25DbGlja0NsZWFyQnV0dG9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlYWRPbmx5KCkgfHwgdGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5jbGVhclNlbGVjdGlvbihldmVudCk7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrSXRlbShpZDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkoKSB8fCB0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnRlcm5hbFZhbHVlLnNldChpZCk7XG4gICAgY29uc3QgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQ8eyB0YXJnZXQ6IHsgdmFsdWU6IHN0cmluZyB9IH0+KFwiY2hhbmdlXCIsIHtcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBkZXRhaWw6IHsgdGFyZ2V0OiB7IHZhbHVlOiBpZCB9IH0sXG4gICAgfSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICB0aGlzLmlzQWN0aXZlLnNldCghdGhpcy5pc0FjdGl2ZSgpKTtcbiAgICB0aGlzLnNlbGVjdFJlZigpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBoYW5kbGVPbkNsb3NpbmdEcm9wZG93bigpIHtcbiAgICB0aGlzLmlzQWN0aXZlLnNldChmYWxzZSk7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrT3V0c2lkZSgpIHtcbiAgICB0aGlzLmlzQWN0aXZlLnNldChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZURyb3Bkb3duKCkge1xuICAgIHRoaXMuaXNBY3RpdmUuc2V0KCF0aGlzLmlzQWN0aXZlKCkpO1xuICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0UmVmKCk/Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJvcGVuRHJvcGRvd25cIikpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdFJlZigpPy5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwiY2xvc2VEcm9wZG93blwiKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclNlbGVjdGlvbihldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmludGVybmFsVmFsdWUuc2V0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5pc0FjdGl2ZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgdGhpcy5zZWxlY3RSZWYoKT8ubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImNsZWFyQ29udGVudFwiKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJydGUtc2VsZWN0LWNvbnRhaW5lclwiIFthdHRyLmRhdGEtbGFiZWwtcG9zaXRpb25dPVwibGFiZWxQb3NpdGlvbigpXCI+XG4gIDxsYWJlbFxuICAgICpuZ0lmPVwibGFiZWwoKSAmJiBsYWJlbFBvc2l0aW9uKCkgPT09ICdzaWRlJ1wiXG4gICAgY2xhc3M9XCJydGUtc2VsZWN0LWxhYmVsXCJcbiAgICBbYXR0ci5kYXRhLWxhYmVsLXBvc2l0aW9uXT1cImxhYmVsUG9zaXRpb24oKVwiXG4gICAgW2F0dHIuaWRdPVwibGFiZWxJZCgpXCJcbiAgICBbYXR0ci5mb3JdPVwiaWQoKVwiXG4gICAgPnt7IGxhYmVsKClcbiAgICB9fTxzcGFuXG4gICAgICAqbmdJZj1cInJlcXVpcmVkKCkgfHwgc2hvd0xhYmVsUmVxdWlyZW1lbnQoKVwiXG4gICAgICBjbGFzcz1cInJlcXVpcmVtZW50LWluZGljYXRvclwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICByZXF1aXJlZDogcmVxdWlyZWQoKSxcbiAgICAgICAgJ3Nob3ctbGFiZWwtcmVxdWlyZW1lbnQnOiBzaG93TGFiZWxSZXF1aXJlbWVudCgpLFxuICAgICAgfVwiXG4gICAgICA+e3sgcmVxdWlyZW1lbnRJbmRpY2F0b3JWYWx1ZSgpIH19PC9zcGFuXG4gICAgPjwvbGFiZWxcbiAgPlxuXG4gIDxkaXYgY2xhc3M9XCJydGUtc2VsZWN0LWhlYWRlclwiIFthdHRyLmRhdGEtbGFiZWwtcG9zaXRpb25dPVwibGFiZWxQb3NpdGlvbigpXCI+XG4gICAgPGxhYmVsICpuZ0lmPVwibGFiZWwoKSAmJiBsYWJlbFBvc2l0aW9uKCkgPT09ICd0b3AnXCIgY2xhc3M9XCJydGUtc2VsZWN0LWxhYmVsXCIgW2F0dHIuaWRdPVwibGFiZWxJZCgpXCIgW2F0dHIuZm9yXT1cImlkKClcIlxuICAgICAgPnt7IGxhYmVsKClcbiAgICAgIH19PHNwYW5cbiAgICAgICAgKm5nSWY9XCJyZXF1aXJlZCgpIHx8IHNob3dMYWJlbFJlcXVpcmVtZW50KClcIlxuICAgICAgICBjbGFzcz1cInJlcXVpcmVtZW50LWluZGljYXRvclwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICByZXF1aXJlZDogcmVxdWlyZWQoKSxcbiAgICAgICAgICAnc2hvdy1sYWJlbC1yZXF1aXJlbWVudCc6IHNob3dMYWJlbFJlcXVpcmVtZW50KCksXG4gICAgICAgIH1cIlxuICAgICAgICA+e3sgcmVxdWlyZW1lbnRJbmRpY2F0b3JWYWx1ZSgpIH19PC9zcGFuXG4gICAgICA+PC9sYWJlbFxuICAgID5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBydGVEcm9wZG93blxuICAgIFtydGVEcm9wZG93bklkXT1cIidkcm9wZG93bl9zZWxlY3RfJyArIGlkKClcIlxuICAgIFtydGVEcm9wZG93blBvc2l0aW9uXT1cImRyb3Bkb3duUG9zaXRpb24oKVwiXG4gICAgW3J0ZURyb3Bkb3duT2Zmc2V0XT1cInNlbGVjdERyb3Bkb3duT2Zmc2V0XCJcbiAgICBbcnRlRHJvcGRvd25XaWR0aF09XCJzZWxlY3RXaWR0aCgpXCJcbiAgICAobWVudUV2ZW50KT1cImhhbmRsZU9uQ2xpY2tJdGVtKCRldmVudC5pZClcIlxuICAgIChjbGlja2VkT3V0c2lkZSk9XCJoYW5kbGVPbkNsaWNrT3V0c2lkZSgpXCJcbiAgICAoY2xvc2VkRHJvcGRvd24pPVwiaGFuZGxlT25DbG9zaW5nRHJvcGRvd24oKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICAjc2VsZWN0UmVmXG4gICAgICBydGVEcm9wZG93blRyaWdnZXJcbiAgICAgIGNsYXNzPVwicnRlLXNlbGVjdC13cmFwcGVyXCJcbiAgICAgIFthdHRyLnRhYkluZGV4XT1cImRpc2FibGVkKCkgfHwgcmVhZE9ubHkoKSA/IC0xIDogMFwiXG4gICAgICBbYXR0ci5yb2xlXT1cIidjb21ib2JveCdcIlxuICAgICAgW2F0dHIuZGF0YS1lcnJvcl09XCJpc0Vycm9yKClcIlxuICAgICAgW2F0dHIuZGF0YS1kaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIFthdHRyLmRhdGEtcmVhZC1vbmx5XT1cInJlYWRPbmx5KClcIlxuICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIFthdHRyLmFyaWEtcmVhZG9ubHldPVwicmVhZE9ubHkoKVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxJZCgpXCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNBY3RpdmUoKVwiXG4gICAgICBbYXR0ci5kYXRhLWFjdGl2ZV09XCJpc0FjdGl2ZSgpXCJcbiAgICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbXB1dGVkV2lkdGgoKSB9XCJcbiAgICAgIChkcm9wZG93blRyaWdnZXJlZCk9XCJoYW5kbGVPbkNsaWNrVHJpZ2dlcigpXCJcbiAgICAgIChkcm9wZG93bktleURvd24pPVwiaGFuZGxlT25LZXlEb3duVHJpZ2dlcigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwicnRlLXNlbGVjdC1jb250ZW50XCI+XG4gICAgICAgIDxydGUtaWNvbiAqbmdJZj1cInNob3VsZERpc3BsYXlFcnJvckljb24oKVwiIG5hbWU9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3ItaWNvblwiIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJydGUtc2VsZWN0LXZhbHVlXCI+XG4gICAgICAgICAgPHNwYW4+e3sgY3VycmVudE9wdGlvbkxhYmVsKCkgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICNidXR0b25zQ29udGFpbmVyUmVmIGNsYXNzPVwicnRlLXNlbGVjdC1yaWdodC1pY29uc1wiPlxuICAgICAgICAgIDxydGUtaWNvbi1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwic2hvdWxkRGlzcGxheUNsZWFyQnV0dG9uKClcIlxuICAgICAgICAgICAgbmFtZT1cImNhbmNlbFwiXG4gICAgICAgICAgICB2YXJpYW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICBjbGFzcz1cInJ0ZS1zZWxlY3QtaWNvbi1idXR0b24gY2xlYXItaWNvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAoY2xpY2tFdmVudCk9XCJoYW5kbGVPbkNsaWNrQ2xlYXJCdXR0b24oJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8cnRlLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwidHJpZ2dlci1pY29uIHRyaWdnZXItaWNvbi17eyBpc0FjdGl2ZSgpID8gJ3VwJyA6ICdkb3duJyB9fVwiXG4gICAgICAgICAgICB2YXJpYW50PVwibmV1dHJhbFwiXG4gICAgICAgICAgICBbbmFtZV09XCJpc0FjdGl2ZSgpID8gJ2Fycm93LWNoZXZyb24tdXAnIDogJ2Fycm93LWNoZXZyb24tZG93bidcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHJ0ZS1kcm9wZG93bi1tZW51IFtpdGVtc109XCJmb3JtYXR0ZWRPcHRpb25zKClcIiAvPlxuICAgIDxydGUtYXNzaXN0aXZlLXRleHRcbiAgICAgICpuZ0lmPVwiYXNzaXN0aXZlVGV4dExhYmVsKClcIlxuICAgICAgW2xhYmVsXT1cImFzc2lzdGl2ZVRleHRMYWJlbCgpXCJcbiAgICAgIFthcHBlYXJhbmNlXT1cImlzRXJyb3IoKSA/ICdlcnJvcicgOiBhc3Npc3RpdmVUZXh0QXBwZWFyYW5jZSgpIVwiXG4gICAgICBbc2hvd0ljb25dPVwic2hvd0Fzc2lzdGl2ZUljb24oKVwiXG4gICAgICBbaHJlZl09XCJhc3Npc3RpdmVUZXh0TGluaygpXCJcbiAgICAgIFt3aWR0aF09XCJ3aWR0aCgpXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUVULHVCQUF1QixFQUV2QixZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDaEksT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix5QkFBeUIsR0FDMUIsTUFBTSw0REFBNEQsQ0FBQztBQUVwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRXJHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFF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QixrR0FDckIscUJBQXFCLDZoQkN2Ri9ELDgyS0FtSkEsMjBORDdHSSxZQUFZLHdZQUNaLGFBQWEsZ0hBQ2IsY0FBYyx5bENBQ2QsbUJBQW1CLG9SQUNuQixzQkFBc0IsNkhBQ3RCLGFBQWEsNkpBQ2IsY0FBYzs7NEZBY0wsZUFBZTtrQkF2QjNCLFNBQVM7K0JBQ0UsWUFBWSxXQUNiO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixhQUFhO3dCQUNiLGNBQWM7cUJBQ2YsY0FDVyxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxpQkFBaUI7NEJBQzVCLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgY29tcHV0ZWQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBBZnRlclZpZXdJbml0LFxuICBjb250ZW50Q2hpbGQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFJFUVVJUkVNRU5UX0lORElDQVRPUl9WQUxVRSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3JlcXVpcmVkLWluZGljYXRvci9yZXF1aXJlZC1pbmRpY2F0b3IuY29uc3RhbnRcIjtcbmltcG9ydCB7XG4gIFNFTEVDVF9EUk9QRE9XTl9PRkZTRVQsXG4gIFRIUkVTSE9MRF9CT1RUT01fUE9TSVRJT04sXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBTZWxlY3RQcm9wcyB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBnZXRTZWxlY3RlZE9wdGlvbiB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QudXRpbHNcIjtcbmltcG9ydCB7IEVOVEVSX0tFWSwgU1BBQ0VfS0VZIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbnN0YW50cy9rZXlib2FyZC9rZXlib2FyZC5jb25zdGFudHNcIjtcblxuaW1wb3J0IHsgQXNzaXN0aXZlVGV4dENvbXBvbmVudCB9IGZyb20gXCIuLi9hc3Npc3RpdmUtdGV4dC9hc3Npc3RpdmUtdGV4dC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2JhZGdlL2JhZGdlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ2hpcENvbXBvbmVudCB9IGZyb20gXCIuLi9jaGlwL2NoaXAuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gXCIuLi9kcm9wZG93blwiO1xuaW1wb3J0IHsgRHJvcGRvd25JdGVtQ29uZmlnIH0gZnJvbSBcIi4uL2Ryb3Bkb3duL2Ryb3Bkb3duLWl0ZW0vZHJvcGRvd24taXRlbS5jb21wb25lbnRcIjtcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi9pY29uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgU2VsZWN0Rm9vdGVyRGlyZWN0aXZlIH0gZnJvbSBcIi4vc2VsZWN0LWZvb3Rlci5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IFNlbGVjdEhlYWRlckRpcmVjdGl2ZSB9IGZyb20gXCIuL3NlbGVjdC1oZWFkZXIuZGlyZWN0aXZlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJydGUtc2VsZWN0XCIsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxuICAgIEFzc2lzdGl2ZVRleHRDb21wb25lbnQsXG4gICAgQ2hpcENvbXBvbmVudCxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zZWxlY3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi9zZWxlY3QuY29tcG9uZW50LnNjc3NcIixcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNlbGVjdENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgbmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgYXJpYUxhYmVsbGVkYnkgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBsYWJlbElkID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBsYWJlbFBvc2l0aW9uID0gaW5wdXQ8U2VsZWN0UHJvcHNbXCJsYWJlbFBvc2l0aW9uXCJdPihcInRvcFwiKTtcbiAgcmVhZG9ubHkgYXNzaXN0aXZlVGV4dExhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBhc3Npc3RpdmVUZXh0QXBwZWFyYW5jZSA9IGlucHV0PFNlbGVjdFByb3BzW1wiYXNzaXN0aXZlQXBwZWFyYW5jZVwiXT4oXCJkZXNjcmlwdGlvblwiKTtcbiAgcmVhZG9ubHkgYXNzaXN0aXZlVGV4dExpbmsgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHJlcXVpcmVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93TGFiZWxSZXF1aXJlbWVudCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJlYWRPbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBvcHRpb25zID0gaW5wdXQ8U2VsZWN0UHJvcHNbXCJvcHRpb25zXCJdPihbXSk7XG4gIHJlYWRvbmx5IGlzRXJyb3IgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNob3dBc3Npc3RpdmVJY29uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93UmVzZXRCdXR0b24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IG11bHRpcGxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB2YWx1ZSA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPigpO1xuICByZWFkb25seSB3aXRoU2VsZWN0QWxsID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBvcHRpb25Ub0Rpc3BsYXkgPSBpbnB1dDxTZWxlY3RQcm9wc1tcIm9wdGlvblRvRGlzcGxheVwiXT4oXCJmaXJzdC1zZWxlY3RlZFwiKTtcblxuICByZWFkb25seSBzZWxlY3RSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KFwic2VsZWN0UmVmXCIpO1xuICByZWFkb25seSBidXR0b25zQ29udGFpbmVyUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihcImJ1dHRvbnNDb250YWluZXJSZWZcIik7XG5cbiAgcmVhZG9ubHkgc2VsZWN0RHJvcGRvd25PZmZzZXQgPSBTRUxFQ1RfRFJPUERPV05fT0ZGU0VUO1xuXG4gIHJlYWRvbmx5IGhlYWRlckRpcmVjdGl2ZSA9IGNvbnRlbnRDaGlsZChTZWxlY3RIZWFkZXJEaXJlY3RpdmUpO1xuICByZWFkb25seSBmb290ZXJEaXJlY3RpdmUgPSBjb250ZW50Q2hpbGQoU2VsZWN0Rm9vdGVyRGlyZWN0aXZlKTtcblxuICByZWFkb25seSBoZWFkZXJUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZm9vdGVyVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgaGVhZGVyQ29udGVudFJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oXCJoZWFkZXJDb250ZW50XCIpO1xuICByZWFkb25seSBmb290ZXJDb250ZW50UmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihcImZvb3RlckNvbnRlbnRcIik7XG5cbiAgcmVhZG9ubHkgaGFzSGVhZGVyQ29udGVudCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBoYXNUZW1wbGF0ZSA9IHRoaXMuaGVhZGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmIHx8ICEhdGhpcy5oZWFkZXJUZW1wbGF0ZSgpO1xuICAgIGNvbnN0IGhhc1Byb2plY3RlZENvbnRlbnQgPSAhIXRoaXMuaGVhZGVyQ29udGVudFJlZigpPy5uYXRpdmVFbGVtZW50Py5jaGlsZHJlbi5sZW5ndGg7XG4gICAgcmV0dXJuIGhhc1RlbXBsYXRlIHx8IGhhc1Byb2plY3RlZENvbnRlbnQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGhhc0Zvb3RlckNvbnRlbnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaGFzVGVtcGxhdGUgPSB0aGlzLmZvb3RlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZiB8fCAhIXRoaXMuZm9vdGVyVGVtcGxhdGUoKTtcbiAgICBjb25zdCBoYXNQcm9qZWN0ZWRDb250ZW50ID0gISF0aGlzLmZvb3RlckNvbnRlbnRSZWYoKT8ubmF0aXZlRWxlbWVudD8uY2hpbGRyZW4ubGVuZ3RoO1xuICAgIHJldHVybiBoYXNUZW1wbGF0ZSB8fCBoYXNQcm9qZWN0ZWRDb250ZW50O1xuICB9KTtcblxuICByZWFkb25seSBjbGVhckJ1dHRvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5idXR0b25zQ29udGFpbmVyUmVmKCk/Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgIFwiLnJ0ZS1pY29uLWJ1dHRvbi5jbGVhci1idXR0b25cIixcbiAgICApIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZHJvcGRvd25Qb3NpdGlvbiA9IGNvbXB1dGVkPFwiYm90dG9tXCIgfCBcInRvcFwiPigoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0RWxlbWVudCA9IHRoaXMuc2VsZWN0UmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHNlbGVjdEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IHJlY3QgPSBzZWxlY3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3Qgc3BhY2VCZWxvdyA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHJlY3QuYm90dG9tO1xuICAgICAgcmV0dXJuIHNwYWNlQmVsb3cgPj0gVEhSRVNIT0xEX0JPVFRPTV9QT1NJVElPTiA/IFwiYm90dG9tXCIgOiBcInRvcFwiO1xuICAgIH1cbiAgICByZXR1cm4gXCJib3R0b21cIjtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgb3B0aW9uc0Zvcm1hdHRlZCA9IHNpZ25hbDxEcm9wZG93bkl0ZW1Db25maWdbXT4oXG4gICAgdGhpcy5vcHRpb25zKCkubWFwKCh7IHZhbHVlLCBsYWJlbCB9KSA9PiAoe1xuICAgICAgaWQ6IHZhbHVlLFxuICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgc2VsZWN0ZWQ6IHRoaXMuaXNTZWxlY3RlZCh2YWx1ZSksXG4gICAgfSkpLFxuICApO1xuXG4gIHJlYWRvbmx5IGludGVybmFsVmFsdWUgPSBzaWduYWwodGhpcy52YWx1ZSgpKTtcblxuICByZWFkb25seSByZXF1aXJlbWVudEluZGljYXRvclZhbHVlID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLnJlcXVpcmVkKClcbiAgICAgID8gdGhpcy5zaG93TGFiZWxSZXF1aXJlbWVudCgpXG4gICAgICAgID8gUkVRVUlSRU1FTlRfSU5ESUNBVE9SX1ZBTFVFLnJlcXVpcmVkXG4gICAgICAgIDogUkVRVUlSRU1FTlRfSU5ESUNBVE9SX1ZBTFVFLnJlcXVpcmVkSWNvblxuICAgICAgOiBSRVFVSVJFTUVOVF9JTkRJQ0FUT1JfVkFMVUUub3B0aW9uYWwsXG4gICk7XG5cbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBvdXRwdXQ8c3RyaW5nPigpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnREaXNwbGF5ZWRPcHRpb24gPSBzaWduYWwoXG4gICAgZ2V0U2VsZWN0ZWRPcHRpb24odGhpcy5vcHRpb25Ub0Rpc3BsYXkoKSB8fCBcImZpcnN0LXNlbGVjdGVkXCIsIHRoaXMub3B0aW9ucygpLCB0aGlzLmludGVybmFsVmFsdWUoKSEpLFxuICApO1xuXG4gIHJlYWRvbmx5IHNob3VsZERpc3BsYXlDbGVhckJ1dHRvbiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgc2hvdWxkRGlzcGxheUVycm9ySWNvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXNFcnJvcigpICYmICF0aGlzLmRpc2FibGVkKCkgJiYgIXRoaXMucmVhZE9ubHkoKSk7XG5cbiAgcmVhZG9ubHkgaXNBY3RpdmUgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHNlbGVjdFdpZHRoID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLnNlbGVjdFJlZigpPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChuYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm4gbmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH0pO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnJlZ2VuZXJhdGVPcHRpb25zRm9ybWF0dGVkKCk7XG4gICAgdGhpcy5jb21wdXRlU2hvdWxkRGlzcGxheUNsZWFyQnV0dG9uKCk7XG4gIH1cblxuICBhcmVBbGxPcHRpb25zU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUoKSAmJiB0aGlzLm9wdGlvbnMoKS5ldmVyeSgob3B0aW9uKSA9PiB0aGlzLmludGVybmFsVmFsdWUoKT8uaW5jbHVkZXMob3B0aW9uLnZhbHVlKSk7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrVHJpZ2dlcigpIHtcbiAgICBpZiAodGhpcy5yZWFkT25seSgpIHx8IHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZURyb3Bkb3duKCk7XG4gIH1cblxuICBoYW5kbGVPbktleURvd25UcmlnZ2VyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkoKSB8fCB0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvdWxkRGlzcGxheUNsZWFyQnV0dG9uKCkpIHtcbiAgICAgIGNvbnN0IGNsZWFyQnV0dG9uID0gdGhpcy5idXR0b25zQ29udGFpbmVyUmVmKCk/Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF07XG4gICAgICBjb25zdCBpc0NsZWFyQnV0dG9uRm9jdXNlZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGNsZWFyQnV0dG9uO1xuICAgICAgaWYgKGlzQ2xlYXJCdXR0b25Gb2N1c2VkICYmIChldmVudC5rZXkgPT09IFNQQUNFX0tFWSB8fCBldmVudC5rZXkgPT09IEVOVEVSX0tFWSkpIHtcbiAgICAgICAgdGhpcy5jbGVhclNlbGVjdGlvbigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gU1BBQ0VfS0VZIHx8IGV2ZW50LmtleSA9PT0gRU5URVJfS0VZKSB7XG4gICAgICB0aGlzLnRvZ2dsZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT25DbG9zZUNoaXAoZXZlbnQ6IEV2ZW50LCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkoKSB8fCB0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSgpICYmIHZhbHVlKSB7XG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLmludGVybmFsVmFsdWUoKTtcbiAgICAgIGlmIChjdXJyZW50VmFsdWUgJiYgQXJyYXkuaXNBcnJheShjdXJyZW50VmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlSW5kZXggPSBjdXJyZW50VmFsdWUuaW5kZXhPZih2YWx1ZSk7XG4gICAgICAgIGlmICh2YWx1ZUluZGV4ID4gLTEpIHtcbiAgICAgICAgICBjdXJyZW50VmFsdWUuc3BsaWNlKHZhbHVlSW5kZXgsIDEpO1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZS5zZXQoY3VycmVudFZhbHVlKTtcbiAgICAgICAgICB0aGlzLnJlZ2VuZXJhdGVPcHRpb25zRm9ybWF0dGVkKCk7XG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnREaXNwbGF5ZWRPcHRpb24uc2V0KFxuICAgICAgICAgICAgZ2V0U2VsZWN0ZWRPcHRpb24odGhpcy5vcHRpb25Ub0Rpc3BsYXkoKSB8fCBcImZpcnN0LXNlbGVjdGVkXCIsIHRoaXMub3B0aW9ucygpLCB0aGlzLmludGVybmFsVmFsdWUoKSEpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5jb21wdXRlU2hvdWxkRGlzcGxheUNsZWFyQnV0dG9uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrQ2xlYXJCdXR0b24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkoKSB8fCB0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbGVhclNlbGVjdGlvbigpO1xuICB9XG5cbiAgaGFuZGxlT25DbGlja0l0ZW0odmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnJlYWRPbmx5KCkgfHwgdGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUoKSkge1xuICAgICAgaWYgKHZhbHVlID09PSBcInNlbGVjdC1hbGxcIikge1xuICAgICAgICB0aGlzLmNsaWNrZWRTZWxlY3RBbGwoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2xpY2tlZFNlbGVjdEl0ZW1NdWx0aXBsZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZS5zZXQodmFsdWUpO1xuICAgICAgdGhpcy5pc0FjdGl2ZS5zZXQoIXRoaXMuaXNBY3RpdmUoKSk7XG4gICAgfVxuICAgIHRoaXMucmVnZW5lcmF0ZU9wdGlvbnNGb3JtYXR0ZWQoKTtcblxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5jdXJyZW50RGlzcGxheWVkT3B0aW9uLnNldChcbiAgICAgIGdldFNlbGVjdGVkT3B0aW9uKHRoaXMub3B0aW9uVG9EaXNwbGF5KCkgfHwgXCJmaXJzdC1zZWxlY3RlZFwiLCB0aGlzLm9wdGlvbnMoKSwgdGhpcy5pbnRlcm5hbFZhbHVlKCkhKSxcbiAgICApO1xuICAgIHRoaXMuY29tcHV0ZVNob3VsZERpc3BsYXlDbGVhckJ1dHRvbigpO1xuICAgIHRoaXMuc2VsZWN0UmVmKCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGhhbmRsZU9uQ2xvc2luZ0Ryb3Bkb3duKCkge1xuICAgIHRoaXMuaXNBY3RpdmUuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIGhhbmRsZU9uQ2xpY2tPdXRzaWRlKCkge1xuICAgIHRoaXMuaXNBY3RpdmUuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5pc0FjdGl2ZS5zZXQoIXRoaXMuaXNBY3RpdmUoKSk7XG4gICAgaWYgKHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgdGhpcy5zZWxlY3RSZWYoKT8ubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcIm9wZW5Ecm9wZG93blwiKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0UmVmKCk/Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJjbG9zZURyb3Bkb3duXCIpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsZWFyU2VsZWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICB0aGlzLmludGVybmFsVmFsdWUuc2V0KFwiXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmludGVybmFsVmFsdWUuc2V0KFtdKTtcbiAgICB9XG4gICAgdGhpcy5pc0FjdGl2ZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChcInNlbGVjdC1hbGxcIik7XG4gICAgdGhpcy5zZWxlY3RSZWYoKT8ubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcImNsZWFyQ29udGVudFwiKSk7XG4gICAgdGhpcy5yZWdlbmVyYXRlT3B0aW9uc0Zvcm1hdHRlZCgpO1xuICAgIHRoaXMuY3VycmVudERpc3BsYXllZE9wdGlvbi5zZXQoXG4gICAgICBnZXRTZWxlY3RlZE9wdGlvbih0aGlzLm9wdGlvblRvRGlzcGxheSgpIHx8IFwiZmlyc3Qtc2VsZWN0ZWRcIiwgdGhpcy5vcHRpb25zKCksIHRoaXMuaW50ZXJuYWxWYWx1ZSgpISksXG4gICAgKTtcbiAgICB0aGlzLmNvbXB1dGVTaG91bGREaXNwbGF5Q2xlYXJCdXR0b24oKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnZW5lcmF0ZU9wdGlvbnNGb3JtYXR0ZWQoKSB7XG4gICAgaWYgKHRoaXMud2l0aFNlbGVjdEFsbCgpKSB7XG4gICAgICB0aGlzLm9wdGlvbnNGb3JtYXR0ZWQuc2V0KFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiBcInNlbGVjdC1hbGxcIixcbiAgICAgICAgICBsYWJlbDogXCJTw6lsZWN0aW9ubmVyIHRvdXRcIixcbiAgICAgICAgICBzZWxlY3RlZDogdGhpcy5hcmVBbGxPcHRpb25zU2VsZWN0ZWQoKSxcbiAgICAgICAgICBoYXNDaGVja2JveDogdHJ1ZSxcbiAgICAgICAgICBoYXNTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgaXNJbmRldGVybWluYXRlOlxuICAgICAgICAgICAgdGhpcy5vcHRpb25zKCkuc29tZSgob3B0aW9uKSA9PiB0aGlzLmlzU2VsZWN0ZWQob3B0aW9uLnZhbHVlKSkgJiYgIXRoaXMuYXJlQWxsT3B0aW9uc1NlbGVjdGVkKCksXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucygpLm1hcCgob3B0aW9uKSA9PiB0aGlzLm1hcE9wdGlvblRvRHJvcGRvd25JdGVtQ29uZmlnKG9wdGlvbikpLFxuICAgICAgXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3B0aW9uc0Zvcm1hdHRlZC5zZXQoXG4gICAgICAgIHRoaXMub3B0aW9ucygpLm1hcCgob3B0aW9uKSA9PiAoeyAuLi50aGlzLm1hcE9wdGlvblRvRHJvcGRvd25JdGVtQ29uZmlnKG9wdGlvbiksIGhhc1NlcGFyYXRvcjogZmFsc2UgfSkpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzU2VsZWN0ZWQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuaW50ZXJuYWxWYWx1ZSgpO1xuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlLmluY2x1ZGVzKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxWYWx1ZSgpID09PSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZVNob3VsZERpc3BsYXlDbGVhckJ1dHRvbigpIHtcbiAgICBjb25zdCBzaG91bGREaXNwbGF5ID1cbiAgICAgIHRoaXMuc2hvd1Jlc2V0QnV0dG9uKCkgJiZcbiAgICAgICh0aGlzLm11bHRpcGxlKClcbiAgICAgICAgPyBBcnJheS5pc0FycmF5KHRoaXMuaW50ZXJuYWxWYWx1ZSgpKSAmJiB0aGlzLmludGVybmFsVmFsdWUoKSEubGVuZ3RoID4gMFxuICAgICAgICA6ICEhdGhpcy5pbnRlcm5hbFZhbHVlKCkpICYmXG4gICAgICAhdGhpcy5kaXNhYmxlZCgpO1xuICAgIHRoaXMuc2hvdWxkRGlzcGxheUNsZWFyQnV0dG9uLnNldChzaG91bGREaXNwbGF5KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xpY2tlZFNlbGVjdEFsbCgpIHtcbiAgICBpZiAodGhpcy5hcmVBbGxPcHRpb25zU2VsZWN0ZWQoKSkge1xuICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlLnNldChbXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZS5zZXQodGhpcy5vcHRpb25zKCkubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xpY2tlZFNlbGVjdEl0ZW1NdWx0aXBsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5pbnRlcm5hbFZhbHVlKCk7XG4gICAgaWYgKGN1cnJlbnRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmludGVybmFsVmFsdWUuc2V0KFt2YWx1ZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50VmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlc0FycmF5ID0gY3VycmVudFZhbHVlO1xuICAgICAgICBjb25zdCB2YWx1ZUluZGV4ID0gdmFsdWVzQXJyYXkuaW5kZXhPZih2YWx1ZSk7XG4gICAgICAgIGlmICh2YWx1ZUluZGV4ID4gLTEpIHtcbiAgICAgICAgICB2YWx1ZXNBcnJheS5zcGxpY2UodmFsdWVJbmRleCwgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWVzQXJyYXkucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlLnNldCh2YWx1ZXNBcnJheSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtYXBPcHRpb25Ub0Ryb3Bkb3duSXRlbUNvbmZpZyhvcHRpb246IHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9KTogRHJvcGRvd25JdGVtQ29uZmlnIHtcbiAgICBjb25zdCB7IHZhbHVlLCBsYWJlbCB9ID0gb3B0aW9uO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdmFsdWUsXG4gICAgICBsYWJlbDogbGFiZWwsXG4gICAgICBzZWxlY3RlZDogdGhpcy5pc1NlbGVjdGVkKHZhbHVlKSxcbiAgICAgIGhhc0NoZWNrYm94OiB0aGlzLm11bHRpcGxlKCksXG4gICAgfTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJ0ZS1zZWxlY3QtY29udGFpbmVyXCIgW2F0dHIuZGF0YS1sYWJlbC1wb3NpdGlvbl09XCJsYWJlbFBvc2l0aW9uKClcIj5cbiAgPGxhYmVsXG4gICAgKm5nSWY9XCJsYWJlbCgpICYmIGxhYmVsUG9zaXRpb24oKSA9PT0gJ3NpZGUnXCJcbiAgICBjbGFzcz1cInJ0ZS1zZWxlY3QtbGFiZWxcIlxuICAgIFthdHRyLmRhdGEtbGFiZWwtcG9zaXRpb25dPVwibGFiZWxQb3NpdGlvbigpXCJcbiAgICBbYXR0ci5pZF09XCJsYWJlbElkKClcIlxuICAgIFthdHRyLmZvcl09XCJpZCgpXCJcbiAgICA+e3sgbGFiZWwoKVxuICAgIH19PHNwYW5cbiAgICAgICpuZ0lmPVwicmVxdWlyZWQoKSB8fCBzaG93TGFiZWxSZXF1aXJlbWVudCgpXCJcbiAgICAgIGNsYXNzPVwicmVxdWlyZW1lbnQtaW5kaWNhdG9yXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZCgpLFxuICAgICAgICAnc2hvdy1sYWJlbC1yZXF1aXJlbWVudCc6IHNob3dMYWJlbFJlcXVpcmVtZW50KCksXG4gICAgICB9XCJcbiAgICAgID57eyByZXF1aXJlbWVudEluZGljYXRvclZhbHVlKCkgfX08L3NwYW5cbiAgICA+PC9sYWJlbFxuICA+XG5cbiAgPGRpdiBjbGFzcz1cInJ0ZS1zZWxlY3QtaGVhZGVyXCIgW2F0dHIuZGF0YS1sYWJlbC1wb3NpdGlvbl09XCJsYWJlbFBvc2l0aW9uKClcIj5cbiAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbCgpICYmIGxhYmVsUG9zaXRpb24oKSA9PT0gJ3RvcCdcIiBjbGFzcz1cInJ0ZS1zZWxlY3QtbGFiZWxcIiBbYXR0ci5pZF09XCJsYWJlbElkKClcIiBbYXR0ci5mb3JdPVwiaWQoKVwiXG4gICAgICA+e3sgbGFiZWwoKVxuICAgICAgfX08c3BhblxuICAgICAgICAqbmdJZj1cInJlcXVpcmVkKCkgfHwgc2hvd0xhYmVsUmVxdWlyZW1lbnQoKVwiXG4gICAgICAgIGNsYXNzPVwicmVxdWlyZW1lbnQtaW5kaWNhdG9yXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgIHJlcXVpcmVkOiByZXF1aXJlZCgpLFxuICAgICAgICAgICdzaG93LWxhYmVsLXJlcXVpcmVtZW50Jzogc2hvd0xhYmVsUmVxdWlyZW1lbnQoKSxcbiAgICAgICAgfVwiXG4gICAgICAgID57eyByZXF1aXJlbWVudEluZGljYXRvclZhbHVlKCkgfX08L3NwYW5cbiAgICAgID48L2xhYmVsXG4gICAgPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIHJ0ZURyb3Bkb3duXG4gICAgW3J0ZURyb3Bkb3duSWRdPVwiJ2Ryb3Bkb3duX3NlbGVjdF8nICsgaWQoKVwiXG4gICAgW3J0ZURyb3Bkb3duUG9zaXRpb25dPVwiZHJvcGRvd25Qb3NpdGlvbigpXCJcbiAgICBbcnRlRHJvcGRvd25PZmZzZXRdPVwic2VsZWN0RHJvcGRvd25PZmZzZXRcIlxuICAgIFtydGVEcm9wZG93bldpZHRoXT1cInNlbGVjdFdpZHRoKClcIlxuICAgIFtydGVDbG9zZU9uSXRlbUNsaWNrXT1cIm11bHRpcGxlKCkgPyBmYWxzZSA6IHRydWVcIlxuICAgIChtZW51RXZlbnQpPVwiaGFuZGxlT25DbGlja0l0ZW0oJGV2ZW50LmlkKVwiXG4gICAgKG1lbnVDaGFuZ2VFdmVudCk9XCJoYW5kbGVPbkNsaWNrSXRlbSgkZXZlbnQuaWQpXCJcbiAgICAoY2xpY2tlZE91dHNpZGUpPVwiaGFuZGxlT25DbGlja091dHNpZGUoKVwiXG4gICAgKGNsb3NlZERyb3Bkb3duKT1cImhhbmRsZU9uQ2xvc2luZ0Ryb3Bkb3duKClcIlxuICA+XG4gICAgPGRpdlxuICAgICAgI3NlbGVjdFJlZlxuICAgICAgcnRlRHJvcGRvd25UcmlnZ2VyXG4gICAgICBjbGFzcz1cInJ0ZS1zZWxlY3Qtd3JhcHBlclwiXG4gICAgICBbYXR0ci50YWJJbmRleF09XCJkaXNhYmxlZCgpIHx8IHJlYWRPbmx5KCkgPyAtMSA6IDBcIlxuICAgICAgW2F0dHIucm9sZV09XCInY29tYm9ib3gnXCJcbiAgICAgIFthdHRyLmRhdGEtZXJyb3JdPVwiaXNFcnJvcigpXCJcbiAgICAgIFthdHRyLmRhdGEtZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICBbYXR0ci5kYXRhLXJlYWQtb25seV09XCJyZWFkT25seSgpXCJcbiAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cInJlYWRPbmx5KClcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsSWQoKVwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzQWN0aXZlKClcIlxuICAgICAgW2F0dHIuZGF0YS1hY3RpdmVdPVwiaXNBY3RpdmUoKVwiXG4gICAgICAoZHJvcGRvd25UcmlnZ2VyZWQpPVwiaGFuZGxlT25DbGlja1RyaWdnZXIoKVwiXG4gICAgICAoZHJvcGRvd25LZXlEb3duKT1cImhhbmRsZU9uS2V5RG93blRyaWdnZXIoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInJ0ZS1zZWxlY3QtY29udGVudFwiPlxuICAgICAgICA8cnRlLWljb24gKm5nSWY9XCJzaG91bGREaXNwbGF5RXJyb3JJY29uKClcIiBuYW1lPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLWljb25cIiAvPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJydGUtc2VsZWN0LXZhbHVlXCI+XG4gICAgICAgICAgQGlmICh0aGlzLm11bHRpcGxlKCkgJiYgY3VycmVudERpc3BsYXllZE9wdGlvbigpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicnRlLXNlbGVjdC1tdWx0aXBsZS12YWx1ZXNcIj5cbiAgICAgICAgICAgICAgPHJ0ZS1jaGlwXG4gICAgICAgICAgICAgICAgdHlwZT1cImlucHV0XCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY3VycmVudERpc3BsYXllZE9wdGlvbigpIS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgKGNsb3NlKT1cImhhbmRsZU9uQ2xvc2VDaGlwKCRldmVudCwgY3VycmVudERpc3BsYXllZE9wdGlvbigpIS52YWx1ZSlcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cnRlLWJhZGdlXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpbnRlcm5hbFZhbHVlKCkhLmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICAgIGNvbnRlbnQ9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgIGJhZGdlVHlwZT1cImJyYW5kXCJcbiAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgW2NvdW50XT1cImludGVybmFsVmFsdWUoKSEubGVuZ3RoIC0gMVwiXG4gICAgICAgICAgICAgICAgW3dpdGhQbHVzU2lnbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbc2ltcGxlQmFkZ2VdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuPnt7IGN1cnJlbnREaXNwbGF5ZWRPcHRpb24oKT8ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAjYnV0dG9uc0NvbnRhaW5lclJlZiBjbGFzcz1cInJ0ZS1zZWxlY3QtcmlnaHQtaWNvbnNcIj5cbiAgICAgICAgICA8cnRlLWljb24tYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInNob3VsZERpc3BsYXlDbGVhckJ1dHRvbigpXCJcbiAgICAgICAgICAgIG5hbWU9XCJjYW5jZWxcIlxuICAgICAgICAgICAgdmFyaWFudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgY2xhc3M9XCJydGUtc2VsZWN0LWljb24tYnV0dG9uIGNsZWFyLWljb25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgICAgKGNsaWNrRXZlbnQpPVwiaGFuZGxlT25DbGlja0NsZWFyQnV0dG9uKCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHJ0ZS1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInRyaWdnZXItaWNvbiB0cmlnZ2VyLWljb24te3sgaXNBY3RpdmUoKSA/ICd1cCcgOiAnZG93bicgfX1cIlxuICAgICAgICAgICAgdmFyaWFudD1cIm5ldXRyYWxcIlxuICAgICAgICAgICAgW25hbWVdPVwiaXNBY3RpdmUoKSA/ICdhcnJvdy1jaGV2cm9uLXVwJyA6ICdhcnJvdy1jaGV2cm9uLWRvd24nXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxydGUtZHJvcGRvd24tbWVudSBbaXRlbXNdPVwib3B0aW9uc0Zvcm1hdHRlZCgpXCI+XG4gICAgICBAaWYgKGhhc0hlYWRlckNvbnRlbnQoKSkge1xuICAgICAgICA8bmctdGVtcGxhdGUgcnRlRHJvcGRvd25NZW51SGVhZGVyPlxuICAgICAgICAgIDxkaXYgI2hlYWRlckNvbnRlbnQ+XG4gICAgICAgICAgICBAaWYgKGhlYWRlclRlbXBsYXRlKCkgfHwgaGVhZGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCIoaGVhZGVyVGVtcGxhdGUoKSB8fCBoZWFkZXJEaXJlY3RpdmUoKT8udGVtcGxhdGVSZWYpID8/IG51bGxcIlxuICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGRpdiAjaGVhZGVyQ29udGVudD5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2VsZWN0LWhlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgfVxuICAgICAgQGlmIChoYXNGb290ZXJDb250ZW50KCkpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIHJ0ZURyb3Bkb3duTWVudUZvb3Rlcj5cbiAgICAgICAgICA8ZGl2ICNmb290ZXJDb250ZW50PlxuICAgICAgICAgICAgQGlmIChmb290ZXJUZW1wbGF0ZSgpIHx8IGZvb3RlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiKGZvb3RlclRlbXBsYXRlKCkgfHwgZm9vdGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmKSA/PyBudWxsXCJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxkaXYgI2Zvb3RlckNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NlbGVjdC1mb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIH1cbiAgICA8L3J0ZS1kcm9wZG93bi1tZW51PlxuICAgIDxydGUtYXNzaXN0aXZlLXRleHRcbiAgICAgICpuZ0lmPVwiYXNzaXN0aXZlVGV4dExhYmVsKClcIlxuICAgICAgW2xhYmVsXT1cImFzc2lzdGl2ZVRleHRMYWJlbCgpXCJcbiAgICAgIFthcHBlYXJhbmNlXT1cImlzRXJyb3IoKSA/ICdlcnJvcicgOiBhc3Npc3RpdmVUZXh0QXBwZWFyYW5jZSgpIVwiXG4gICAgICBbc2hvd0ljb25dPVwic2hvd0Fzc2lzdGl2ZUljb24oKVwiXG4gICAgICBbaHJlZl09XCJhc3Npc3RpdmVUZXh0TGluaygpXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|