mis-crystal-design-system 18.0.24 → 18.1.0-signal-test
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/action-list/action-list.component.d.ts +17 -15
- package/async-search-dropdown/async-dropdown.component.d.ts +43 -61
- package/button/button.component.d.ts +35 -13
- package/button/button.directive.d.ts +10 -8
- package/checkbox/checkbox.component.d.ts +15 -12
- package/chip/chip.component.d.ts +9 -11
- package/datepicker_v2/models/dp-config.model.d.ts +1 -0
- package/datepicker_v2/tz-datepicker.directive.d.ts +15 -18
- package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +42 -21
- package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +12 -14
- package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +46 -23
- package/drawer/drawer-body/drawer-body.component.d.ts +2 -2
- package/dropdown/calculate-container-height.directive.d.ts +7 -8
- package/dropdown/dropdown.component.d.ts +41 -49
- package/dynamic-form/dynamic-form.component.d.ts +20 -16
- package/esm2022/action-list/action-list.component.mjs +112 -89
- package/esm2022/async-search-dropdown/async-dropdown.component.mjs +256 -326
- package/esm2022/button/button.component.mjs +55 -48
- package/esm2022/button/button.directive.mjs +36 -40
- package/esm2022/checkbox/checkbox.component.mjs +75 -70
- package/esm2022/chip/chip.component.mjs +20 -33
- package/esm2022/datepicker_v2/models/dp-config.model.mjs +1 -1
- package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +42 -71
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +202 -172
- package/esm2022/datepicker_v2/utils/index.mjs +2 -1
- package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +26 -51
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +282 -235
- package/esm2022/drawer/drawer-body/drawer-body.component.mjs +8 -7
- package/esm2022/dropdown/calculate-container-height.directive.mjs +25 -22
- package/esm2022/dropdown/dropdown.component.mjs +162 -186
- package/esm2022/dynamic-form/dynamic-form.component.mjs +118 -72
- package/esm2022/fab/fab.component.mjs +29 -33
- package/esm2022/filter/filter-panel/filter-panel.component.mjs +60 -58
- package/esm2022/input/directives/input/input.directive.mjs +22 -26
- package/esm2022/input/mis-input.component.mjs +41 -45
- package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +40 -50
- package/esm2022/loader/loader.component.mjs +8 -11
- package/esm2022/mobile-filter/mobile-filter.component.mjs +61 -61
- package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +11 -9
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +235 -281
- package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +250 -287
- package/esm2022/phone-input/phone-input.component.mjs +21 -43
- package/esm2022/radio-button/radio-button.component.mjs +15 -27
- package/esm2022/ske-loader/ske-loader.component.mjs +15 -29
- package/esm2022/slider/slider.component.mjs +23 -33
- package/esm2022/slider/slider.module.mjs +4 -11
- package/esm2022/snackbar/snackbar/snackbar.component.mjs +21 -15
- package/esm2022/snackbar/snackbar.service.mjs +3 -2
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +230 -343
- package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +77 -105
- package/esm2022/star-rating/star-rating.component.mjs +57 -71
- package/esm2022/switch/switch.component.mjs +34 -36
- package/esm2022/table/actions-cell/actions-cell.component.mjs +55 -54
- package/esm2022/table/custom-table-cell.directive.mjs +22 -18
- package/esm2022/table/filter/filter.component.mjs +60 -42
- package/esm2022/table/sort-icons.directive.mjs +16 -8
- package/esm2022/table/sub-table/sub-table.component.mjs +41 -44
- package/esm2022/table/table.component.mjs +181 -165
- package/esm2022/timepicker/timepicker.component.mjs +244 -159
- package/esm2022/timepicker/timepicker.directive.mjs +3 -2
- package/esm2022/timerangepicker/timerangepicker.component.mjs +200 -159
- package/esm2022/toast/toast.component.mjs +6 -7
- package/esm2022/toast/toast.data.service.mjs +15 -9
- package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +12 -12
- package/esm2022/tooltip/tooltip.directive.mjs +4 -4
- package/esm2022/virtual-scroll/virtual-scroll.component.mjs +57 -59
- package/fab/fab.component.d.ts +12 -8
- package/fesm2022/mis-crystal-design-system-action-list.mjs +111 -88
- package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +253 -324
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-button.mjs +88 -85
- package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-checkbox.mjs +74 -69
- package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-chip.mjs +19 -32
- package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +242 -240
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +305 -283
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-drawer.mjs +7 -6
- package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dropdown.mjs +183 -204
- package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +118 -72
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-fab.mjs +28 -32
- package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-filter.mjs +59 -57
- package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs +39 -49
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs +62 -71
- package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-loader.mjs +7 -10
- package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +60 -60
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-modal.mjs +10 -8
- package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +233 -279
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +249 -286
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-phone-input.mjs +20 -42
- package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-radio-button.mjs +14 -26
- package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs +14 -28
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs +25 -42
- package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-snackbar.mjs +22 -15
- package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +304 -445
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-star-rating.mjs +56 -70
- package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-switch.mjs +33 -35
- package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +365 -321
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timepicker.mjs +245 -159
- package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +199 -158
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-toast.mjs +18 -13
- package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-tooltip.mjs +14 -14
- package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +57 -59
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
- package/filter/filter-panel/filter-panel.component.d.ts +14 -14
- package/input/directives/input/input.directive.d.ts +6 -10
- package/input/mis-input.component.d.ts +12 -13
- package/input-stepper/input-stepper/input-stepper.component.d.ts +8 -7
- package/loader/loader.component.d.ts +3 -6
- package/mobile-filter/mobile-filter.component.d.ts +15 -15
- package/modal/module-wrapper/module-wrapper.component.d.ts +2 -3
- package/multi-select-dropdown/multi-select-dropdown.component.d.ts +89 -51
- package/nested-multi-select-dropdown/nested-multi-select-dropdown.component.d.ts +99 -56
- package/package.json +17 -17
- package/phone-input/phone-input.component.d.ts +16 -18
- package/radio-button/radio-button.component.d.ts +9 -11
- package/ske-loader/ske-loader.component.d.ts +8 -11
- package/slider/slider.component.d.ts +8 -11
- package/slider/slider.module.d.ts +1 -2
- package/snackbar/snackbar/snackbar.component.d.ts +3 -3
- package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +35 -35
- package/specificdatepicker/tz-specificdatepicker.directive.d.ts +24 -28
- package/star-rating/star-rating.component.d.ts +18 -18
- package/switch/switch.component.d.ts +8 -10
- package/table/actions-cell/actions-cell.component.d.ts +14 -14
- package/table/custom-table-cell.directive.d.ts +3 -3
- package/table/filter/filter.component.d.ts +9 -9
- package/table/sub-table/sub-table.component.d.ts +5 -5
- package/table/table.component.d.ts +38 -35
- package/timepicker/timepicker.component.d.ts +29 -28
- package/timerangepicker/timerangepicker.component.d.ts +36 -33
- package/toast/toast.data.service.d.ts +1 -1
- package/tooltip/tooltip-container/tooltip.component.d.ts +4 -4
- package/virtual-scroll/virtual-scroll.component.d.ts +8 -9
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ConnectionPositionPair, OverlayConfig } from "@angular/cdk/overlay";
|
|
2
2
|
import { TemplatePortal } from "@angular/cdk/portal";
|
|
3
|
-
import { Component,
|
|
3
|
+
import { Component, ViewChild, input, output, signal, effect } from "@angular/core";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/cdk/overlay";
|
|
6
6
|
import * as i2 from "@angular/common";
|
|
@@ -18,9 +18,10 @@ function ActionListComponent_p_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
18
18
|
i0.ɵɵtext(1);
|
|
19
19
|
i0.ɵɵelementEnd();
|
|
20
20
|
} if (rf & 2) {
|
|
21
|
+
let tmp_5_0;
|
|
21
22
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
22
23
|
i0.ɵɵadvance();
|
|
23
|
-
i0.ɵɵtextInterpolate1("+", (ctx_r1.selectedItems == null ? null :
|
|
24
|
+
i0.ɵɵtextInterpolate1("+", ((tmp_5_0 = ctx_r1.selectedItems()) == null ? null : tmp_5_0.length) - 1, "");
|
|
24
25
|
} }
|
|
25
26
|
function ActionListComponent_ng_template_9_div_2_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
26
27
|
i0.ɵɵelementStart(0, "div", 20);
|
|
@@ -57,7 +58,7 @@ function ActionListComponent_ng_template_9_div_3_Template(rf, ctx) { if (rf & 1)
|
|
|
57
58
|
} if (rf & 2) {
|
|
58
59
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
59
60
|
i0.ɵɵadvance();
|
|
60
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.noDataMessage || "No results", " ");
|
|
61
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.noDataMessage() || "No results", " ");
|
|
61
62
|
} }
|
|
62
63
|
function ActionListComponent_ng_template_9_Template(rf, ctx) { if (rf & 1) {
|
|
63
64
|
i0.ɵɵelementStart(0, "div", 13)(1, "div", 14);
|
|
@@ -65,11 +66,11 @@ function ActionListComponent_ng_template_9_Template(rf, ctx) { if (rf & 1) {
|
|
|
65
66
|
i0.ɵɵelementEnd()();
|
|
66
67
|
} if (rf & 2) {
|
|
67
68
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
68
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(3, _c3, ctx_r1.dropdownListHeight, ctx_r1.dropdownListWidth));
|
|
69
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(3, _c3, ctx_r1.dropdownListHeight(), ctx_r1.dropdownListWidth()));
|
|
69
70
|
i0.ɵɵadvance(2);
|
|
70
|
-
i0.ɵɵproperty("ngForOf", ctx_r1.
|
|
71
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.internalData());
|
|
71
72
|
i0.ɵɵadvance();
|
|
72
|
-
i0.ɵɵproperty("ngIf", ctx_r1.
|
|
73
|
+
i0.ɵɵproperty("ngIf", ctx_r1.internalData().length === 0);
|
|
73
74
|
} }
|
|
74
75
|
function ActionListComponent_ng_template_11_div_2_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
75
76
|
i0.ɵɵelementStart(0, "div", 26);
|
|
@@ -139,7 +140,7 @@ function ActionListComponent_ng_template_11_div_3_Template(rf, ctx) { if (rf & 1
|
|
|
139
140
|
} if (rf & 2) {
|
|
140
141
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
141
142
|
i0.ɵɵadvance();
|
|
142
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.noDataMessage || "No results", " ");
|
|
143
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.noDataMessage() || "No results", " ");
|
|
143
144
|
} }
|
|
144
145
|
function ActionListComponent_ng_template_11_Template(rf, ctx) { if (rf & 1) {
|
|
145
146
|
i0.ɵɵelementStart(0, "div", 13)(1, "div", 14);
|
|
@@ -147,11 +148,11 @@ function ActionListComponent_ng_template_11_Template(rf, ctx) { if (rf & 1) {
|
|
|
147
148
|
i0.ɵɵelementEnd()();
|
|
148
149
|
} if (rf & 2) {
|
|
149
150
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
150
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(3, _c3, ctx_r1.dropdownListHeight, ctx_r1.dropdownListWidth));
|
|
151
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(3, _c3, ctx_r1.dropdownListHeight(), ctx_r1.dropdownListWidth()));
|
|
151
152
|
i0.ɵɵadvance(2);
|
|
152
|
-
i0.ɵɵproperty("ngForOf", ctx_r1.subItems);
|
|
153
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.subItems());
|
|
153
154
|
i0.ɵɵadvance();
|
|
154
|
-
i0.ɵɵproperty("ngIf", ctx_r1.
|
|
155
|
+
i0.ɵɵproperty("ngIf", ctx_r1.internalData().length === 0);
|
|
155
156
|
} }
|
|
156
157
|
function ActionListComponent_ng_template_13_Template(rf, ctx) { if (rf & 1) {
|
|
157
158
|
i0.ɵɵnamespaceSVG();
|
|
@@ -164,35 +165,64 @@ export class ActionListComponent {
|
|
|
164
165
|
this.eRef = eRef;
|
|
165
166
|
this.overlay = overlay;
|
|
166
167
|
this.viewContainerRef = viewContainerRef;
|
|
167
|
-
|
|
168
|
-
this.
|
|
169
|
-
this.
|
|
170
|
-
this.
|
|
171
|
-
this.
|
|
172
|
-
this.
|
|
173
|
-
this.
|
|
174
|
-
this.
|
|
175
|
-
this.
|
|
176
|
-
this.
|
|
177
|
-
|
|
178
|
-
this.
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
this.
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
168
|
+
// Signal-based inputs
|
|
169
|
+
this.data = input([]);
|
|
170
|
+
this.height = input("");
|
|
171
|
+
this.width = input("");
|
|
172
|
+
this.label = input("Select");
|
|
173
|
+
this.dropdownListHeight = input("");
|
|
174
|
+
this.dropdownListWidth = input("");
|
|
175
|
+
this.dropdownListPosition = input("Left");
|
|
176
|
+
this.searchEnabled = input(true);
|
|
177
|
+
this.noDataMessage = input("No Data");
|
|
178
|
+
// Signal-based output
|
|
179
|
+
this.onChange = output();
|
|
180
|
+
// Internal state signals
|
|
181
|
+
this.isOpen = signal(false);
|
|
182
|
+
this.subItems = signal([]);
|
|
183
|
+
this.selectedItems = signal([]);
|
|
184
|
+
// Internal writable signals for data that can be modified
|
|
185
|
+
this.internalData = signal([]);
|
|
186
|
+
this.internalLabel = signal("Select");
|
|
187
|
+
// Effect to sync input data with internal data
|
|
188
|
+
effect(() => {
|
|
189
|
+
const inputData = this.data();
|
|
190
|
+
this.internalData.set(inputData);
|
|
191
|
+
}, { allowSignalWrites: true });
|
|
192
|
+
// Effect to sync input label with internal label
|
|
193
|
+
effect(() => {
|
|
194
|
+
const inputLabel = this.label();
|
|
195
|
+
this.internalLabel.set(inputLabel);
|
|
196
|
+
}, { allowSignalWrites: true });
|
|
197
|
+
// Effect to update selectedItems when data changes
|
|
198
|
+
effect(() => {
|
|
199
|
+
const dataValue = this.internalData();
|
|
200
|
+
const selectedItems = [];
|
|
201
|
+
dataValue?.forEach(q => q?.children?.forEach(w => {
|
|
202
|
+
if (w.checked)
|
|
203
|
+
selectedItems.push(w);
|
|
204
|
+
}));
|
|
205
|
+
this.selectedItems.set(selectedItems);
|
|
206
|
+
}, { allowSignalWrites: true });
|
|
207
|
+
// Effect to update label when selectedItems changes
|
|
208
|
+
effect(() => {
|
|
209
|
+
const selectedItems = this.selectedItems();
|
|
210
|
+
if (selectedItems.length > 0) {
|
|
211
|
+
this.internalLabel.set(selectedItems[0].label);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
this.internalLabel.set(this.label());
|
|
215
|
+
}
|
|
216
|
+
}, { allowSignalWrites: true });
|
|
189
217
|
}
|
|
218
|
+
ngOnInit() { }
|
|
190
219
|
filterByValue(array, string) {
|
|
191
220
|
return array.filter(o => o.label.toLowerCase().includes(string.toLowerCase()));
|
|
192
221
|
}
|
|
193
222
|
toggleDropdown() {
|
|
194
|
-
|
|
195
|
-
|
|
223
|
+
const currentIsOpen = this.isOpen();
|
|
224
|
+
this.isOpen.set(!currentIsOpen);
|
|
225
|
+
if (!currentIsOpen)
|
|
196
226
|
this.openDropdown(this.popupContainer, this.selectElement.nativeElement, false);
|
|
197
227
|
else
|
|
198
228
|
this.onCancel();
|
|
@@ -207,8 +237,8 @@ export class ActionListComponent {
|
|
|
207
237
|
new ConnectionPositionPair({ originX: "end", originY: "top" }, { overlayX: "end", overlayY: "bottom" }, 0, -4)
|
|
208
238
|
];
|
|
209
239
|
const positions = [
|
|
210
|
-
...(this.dropdownListPosition === "Right" ? positionsBottom.reverse() : positionsBottom),
|
|
211
|
-
...(this.dropdownListPosition === "Right" ? positionsTop.reverse() : positionsTop)
|
|
240
|
+
...(this.dropdownListPosition() === "Right" ? positionsBottom.reverse() : positionsBottom),
|
|
241
|
+
...(this.dropdownListPosition() === "Right" ? positionsTop.reverse() : positionsTop)
|
|
212
242
|
];
|
|
213
243
|
const positionStrategy = this.overlay
|
|
214
244
|
.position()
|
|
@@ -224,10 +254,12 @@ export class ActionListComponent {
|
|
|
224
254
|
});
|
|
225
255
|
if (openRight) {
|
|
226
256
|
this.subOverlayRef = this.overlay.create(configs);
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
if (
|
|
230
|
-
this.subOverlayRef.updateSize({
|
|
257
|
+
const dropdownWidth = this.dropdownListWidth();
|
|
258
|
+
const dropdownHeight = this.dropdownListHeight();
|
|
259
|
+
if (dropdownWidth)
|
|
260
|
+
this.subOverlayRef.updateSize({ width: dropdownWidth });
|
|
261
|
+
if (dropdownHeight)
|
|
262
|
+
this.subOverlayRef.updateSize({ height: dropdownHeight });
|
|
231
263
|
this.subOverlayRef.attach(new TemplatePortal(template, this.viewContainerRef));
|
|
232
264
|
this.subOverlayRef.backdropClick().subscribe(() => {
|
|
233
265
|
this.onCancel();
|
|
@@ -235,58 +267,68 @@ export class ActionListComponent {
|
|
|
235
267
|
return;
|
|
236
268
|
}
|
|
237
269
|
this.overlayRef = this.overlay.create(configs);
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
if (
|
|
241
|
-
this.overlayRef.updateSize({
|
|
270
|
+
const dropdownWidth = this.dropdownListWidth();
|
|
271
|
+
const dropdownHeight = this.dropdownListHeight();
|
|
272
|
+
if (dropdownWidth)
|
|
273
|
+
this.overlayRef.updateSize({ width: dropdownWidth });
|
|
274
|
+
if (dropdownHeight)
|
|
275
|
+
this.overlayRef.updateSize({ height: dropdownHeight });
|
|
242
276
|
this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));
|
|
243
277
|
this.overlayRef.backdropClick().subscribe(() => {
|
|
244
278
|
this.onCancel();
|
|
245
279
|
});
|
|
246
280
|
}
|
|
247
281
|
selectItem(item) {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
282
|
+
const currentData = this.internalData();
|
|
283
|
+
const currentSelectedItems = this.selectedItems();
|
|
284
|
+
if (currentData.some(q => q.children?.some(w => w.value === item.value && w.checked))) {
|
|
285
|
+
if (item.type === "MULTIPLE") {
|
|
286
|
+
this.selectedItems.set(currentSelectedItems.filter(q => q.value !== item.value));
|
|
287
|
+
}
|
|
288
|
+
const updatedData = currentData.map(q => ({
|
|
252
289
|
...q,
|
|
253
290
|
children: q?.children?.map(e => ({
|
|
254
291
|
...e,
|
|
255
292
|
checked: e.checked && e.value !== item.value
|
|
256
293
|
}))
|
|
257
294
|
}));
|
|
295
|
+
this.internalData.set(updatedData);
|
|
258
296
|
}
|
|
259
297
|
else {
|
|
260
|
-
|
|
298
|
+
const updatedData = currentData.map(q => ({
|
|
261
299
|
...q,
|
|
262
300
|
children: q?.children?.map(e => ({
|
|
263
301
|
...e,
|
|
264
302
|
checked: (e.type === "MULTIPLE" && (e.checked || e.value === item.value)) || (e.type === "SINGLE" && e.value === item.value)
|
|
265
303
|
}))
|
|
266
304
|
}));
|
|
267
|
-
|
|
268
|
-
|
|
305
|
+
this.internalData.set(updatedData);
|
|
306
|
+
if (item.type === "MULTIPLE") {
|
|
307
|
+
this.selectedItems.set([...currentSelectedItems, { ...item, checked: true }]);
|
|
308
|
+
}
|
|
269
309
|
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
this.subItems
|
|
273
|
-
this.onChange.emit(this.
|
|
310
|
+
// Label will be automatically updated by the effect when selectedItems changes
|
|
311
|
+
const newSubItems = this.internalData().find(q => q.children?.some(w => w.value === item.value))?.children || [];
|
|
312
|
+
this.subItems.set(newSubItems);
|
|
313
|
+
this.onChange.emit(this.internalData());
|
|
274
314
|
if (item.type === "SINGLE")
|
|
275
315
|
this.toggleDropdown();
|
|
276
316
|
}
|
|
277
317
|
onHover(item, isHovered, element) {
|
|
278
318
|
if (isHovered) {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
319
|
+
const currentSubItems = this.subItems();
|
|
320
|
+
currentSubItems.length > 0 && this.subOverlayRef?.detach();
|
|
321
|
+
const newSubItems = this.internalData().find(q => q?.children?.some(w => w?.parentValue === item?.value))?.children || [];
|
|
322
|
+
this.subItems.set(newSubItems);
|
|
323
|
+
newSubItems.length > 0 && this.openDropdown(this.subPopupContainer, element?.nativeElement || element, true);
|
|
282
324
|
}
|
|
283
325
|
else {
|
|
284
|
-
this.subItems
|
|
326
|
+
this.subItems.set([]);
|
|
285
327
|
this.subOverlayRef?.detach();
|
|
286
328
|
}
|
|
287
329
|
}
|
|
288
330
|
onCancel() {
|
|
289
|
-
this.isOpen
|
|
331
|
+
this.isOpen.set(false);
|
|
290
332
|
this.overlayRef?.detach();
|
|
291
333
|
this.subOverlayRef?.detach();
|
|
292
334
|
}
|
|
@@ -300,7 +342,7 @@ export class ActionListComponent {
|
|
|
300
342
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectElement = _t.first);
|
|
301
343
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.popupContainer = _t.first);
|
|
302
344
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.subPopupContainer = _t.first);
|
|
303
|
-
} }, inputs: { data: "data", height: "height", width: "width", label: "label", dropdownListHeight: "dropdownListHeight", dropdownListWidth: "dropdownListWidth", dropdownListPosition: "dropdownListPosition", searchEnabled: "searchEnabled", noDataMessage: "noDataMessage" }, outputs: { onChange: "onChange" }, decls: 15, vars: 12, consts: [["select", ""], ["popupContainer", ""], ["subPopupContainer", ""], ["tickIcon", ""], ["singleItem", ""], [1, "main-container", 3, "ngStyle"], ["tabindex", "0", 1, "dropdown", 3, "keyup.enter", "click", "ngStyle"], [1, "label"], [1, "text"], ["class", "count", 4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "handle", 3, "ngStyle"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z", "fill", "#181F33"], [1, "count"], [1, "popup-container", 3, "ngStyle"], [1, "items"], ["class", "item", "tabindex", "0", 3, "ngClass", "mouseenter", 4, "ngFor", "ngForOf"], ["class", "noData", 4, "ngIf"], ["tabindex", "0", 1, "item", 3, "mouseenter", "ngClass"], [1, "label", 3, "ngStyle"], ["class", "icon-container", 4, "ngIf"], [1, "icon-container"], ["alt", "no img", 1, "icon", 3, "src"], [1, "noData"], ["class", "item", "tabindex", "0", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], ["tabindex", "0", 1, "item", 3, "click", "ngClass"], ["class", "checkbox-container", 4, "ngIf"], [1, "checkbox-container"], [3, "disabled", "checked"], ["class", "icon", "alt", "no img", 3, "src", 4, "ngIf"], [4, "ngIf"], [4, "ngTemplateOutlet"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M7.47697 14.8237L3.49922 10.5519C3.2776 10.3169 3.2776 9.93437 3.49922 9.69684L4.30273 8.84298C4.52434 8.60795 4.88462 8.60795 5.10623 8.84298L7.87929 11.8334L14.0607 5.17627C14.2823 4.94124 14.6426 4.94124 14.8642 5.17627L15.6677 6.03138C15.8894 6.26641 15.8894 6.65021 15.6677 6.88399L8.28048 14.8237C8.05886 15.0588 7.69859 15.0588 7.47697 14.8237Z", "fill", "#181F33"]], template: function ActionListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
345
|
+
} }, inputs: { data: [1, "data"], height: [1, "height"], width: [1, "width"], label: [1, "label"], dropdownListHeight: [1, "dropdownListHeight"], dropdownListWidth: [1, "dropdownListWidth"], dropdownListPosition: [1, "dropdownListPosition"], searchEnabled: [1, "searchEnabled"], noDataMessage: [1, "noDataMessage"] }, outputs: { onChange: "onChange" }, decls: 15, vars: 12, consts: [["select", ""], ["popupContainer", ""], ["subPopupContainer", ""], ["tickIcon", ""], ["singleItem", ""], [1, "main-container", 3, "ngStyle"], ["tabindex", "0", 1, "dropdown", 3, "keyup.enter", "click", "ngStyle"], [1, "label"], [1, "text"], ["class", "count", 4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "handle", 3, "ngStyle"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z", "fill", "#181F33"], [1, "count"], [1, "popup-container", 3, "ngStyle"], [1, "items"], ["class", "item", "tabindex", "0", 3, "ngClass", "mouseenter", 4, "ngFor", "ngForOf"], ["class", "noData", 4, "ngIf"], ["tabindex", "0", 1, "item", 3, "mouseenter", "ngClass"], [1, "label", 3, "ngStyle"], ["class", "icon-container", 4, "ngIf"], [1, "icon-container"], ["alt", "no img", 1, "icon", 3, "src"], [1, "noData"], ["class", "item", "tabindex", "0", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], ["tabindex", "0", 1, "item", 3, "click", "ngClass"], ["class", "checkbox-container", 4, "ngIf"], [1, "checkbox-container"], [3, "disabled", "checked"], ["class", "icon", "alt", "no img", 3, "src", 4, "ngIf"], [4, "ngIf"], [4, "ngTemplateOutlet"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M7.47697 14.8237L3.49922 10.5519C3.2776 10.3169 3.2776 9.93437 3.49922 9.69684L4.30273 8.84298C4.52434 8.60795 4.88462 8.60795 5.10623 8.84298L7.87929 11.8334L14.0607 5.17627C14.2823 4.94124 14.6426 4.94124 14.8642 5.17627L15.6677 6.03138C15.8894 6.26641 15.8894 6.65021 15.6677 6.88399L8.28048 14.8237C8.05886 15.0588 7.69859 15.0588 7.47697 14.8237Z", "fill", "#181F33"]], template: function ActionListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
304
346
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
305
347
|
i0.ɵɵelementStart(0, "div", 5)(1, "div", 6, 0);
|
|
306
348
|
i0.ɵɵlistener("keyup.enter", function ActionListComponent_Template_div_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleDropdown()); })("click", function ActionListComponent_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleDropdown()); });
|
|
@@ -315,41 +357,22 @@ export class ActionListComponent {
|
|
|
315
357
|
i0.ɵɵelementEnd()()();
|
|
316
358
|
i0.ɵɵtemplate(9, ActionListComponent_ng_template_9_Template, 4, 6, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(11, ActionListComponent_ng_template_11_Template, 4, 6, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(13, ActionListComponent_ng_template_13_Template, 2, 0, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
|
|
317
359
|
} if (rf & 2) {
|
|
318
|
-
|
|
360
|
+
let tmp_7_0;
|
|
361
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(5, _c3, ctx.height().length > 0 ? ctx.height() : "", ctx.width().length > 0 ? ctx.width() : ""));
|
|
319
362
|
i0.ɵɵadvance();
|
|
320
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(8, _c4, ctx.isOpen ? "#E6EBF7" : ""));
|
|
363
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(8, _c4, ctx.isOpen() ? "#E6EBF7" : ""));
|
|
321
364
|
i0.ɵɵadvance(4);
|
|
322
|
-
i0.ɵɵtextInterpolate1(" ", ctx.
|
|
365
|
+
i0.ɵɵtextInterpolate1(" ", ctx.internalLabel(), " ");
|
|
323
366
|
i0.ɵɵadvance();
|
|
324
|
-
i0.ɵɵproperty("ngIf", (ctx.selectedItems == null ? null :
|
|
367
|
+
i0.ɵɵproperty("ngIf", ((tmp_7_0 = ctx.selectedItems()) == null ? null : tmp_7_0.length) > 1);
|
|
325
368
|
i0.ɵɵadvance();
|
|
326
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(10, _c5, ctx.isOpen ? "rotate(180deg)" : "rotate(0deg)"));
|
|
369
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(10, _c5, ctx.isOpen() ? "rotate(180deg)" : "rotate(0deg)"));
|
|
327
370
|
} }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, i3.CheckboxComponent], styles: [".main-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;height:32px;width:256px;font-family:Lato,sans-serif!important}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:inherit;border:1px solid #e0e0e0;border-radius:6px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;box-sizing:border-box;padding:4px 12px}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]:hover, .main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]:focus-visible{background-color:#f5f7fc;outline:none}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);font-style:normal;font-weight:400;font-size:16px;line-height:20px;letter-spacing:.2px;color:#181f33}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{margin:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-style:normal;font-weight:400;font-size:16px;line-height:20px;letter-spacing:.2px;color:#181f33}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{width:24px;height:24px;background-color:#e0e0e0;border-radius:50%;padding:2px 4px;margin:0 0 0 8px;font-style:normal;font-weight:400;box-sizing:border-box;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px;color:#181f33}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .handle[_ngcontent-%COMP%]{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.popup-container[_ngcontent-%COMP%]{width:100%;max-height:340px;padding-bottom:0;border:1px solid #e0e0e0;border-radius:8px;background-color:#fff;box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden;justify-content:space-between}.popup-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:0;height:0}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%]{position:relative;box-sizing:border-box;padding:8px}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .search-icon[_ngcontent-%COMP%]{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%]{height:40px;width:100%;padding:12px;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:8px;outline:none;caret-color:#0937b2;font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:#181f33}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .cancel-icon[_ngcontent-%COMP%]{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]{padding:8px 0 8px 8px;overflow-y:scroll}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]::-webkit-scrollbar{width:5px;height:0}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:10px}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .noData[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;font-style:normal;font-weight:400;font-size:16px;line-height:20px;letter-spacing:.2px;color:#181f33}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;height:auto;letter-spacing:.2px;color:#181f33}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:hover, .popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:focus-visible{background-color:#f5f7fc;outline:none}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{width:100%;line-height:20px;font-size:16px;font-style:normal;font-weight:400;text-overflow:ellipsis;overflow:hidden}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{width:10%;display:flex;justify-content:flex-end}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:20px;height:20px}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item-disabled[_ngcontent-%COMP%]{cursor:not-allowed}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item-disabled[_ngcontent-%COMP%]:hover, .popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item-disabled[_ngcontent-%COMP%]:focus-visible{background-color:transparent;outline:none}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item-disabled[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:#929dab;-webkit-user-select:none;user-select:none}"] }); }
|
|
328
371
|
}
|
|
329
372
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionListComponent, [{
|
|
330
373
|
type: Component,
|
|
331
|
-
args: [{ selector: "mis-action-list", template: "<div\n class=\"main-container\"\n [ngStyle]=\"{\n height: height.length > 0 ? height : '',\n width: width.length > 0 ? width : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"{ background: isOpen ? '#E6EBF7' : '' }\"\n >\n <div class=\"label\">\n <p class=\"text\">\n {{
|
|
332
|
-
}], () => [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }], {
|
|
333
|
-
type: Input
|
|
334
|
-
}], height: [{
|
|
335
|
-
type: Input
|
|
336
|
-
}], width: [{
|
|
337
|
-
type: Input
|
|
338
|
-
}], label: [{
|
|
339
|
-
type: Input
|
|
340
|
-
}], dropdownListHeight: [{
|
|
341
|
-
type: Input
|
|
342
|
-
}], dropdownListWidth: [{
|
|
343
|
-
type: Input
|
|
344
|
-
}], dropdownListPosition: [{
|
|
345
|
-
type: Input
|
|
346
|
-
}], searchEnabled: [{
|
|
347
|
-
type: Input
|
|
348
|
-
}], noDataMessage: [{
|
|
349
|
-
type: Input
|
|
350
|
-
}], onChange: [{
|
|
351
|
-
type: Output
|
|
352
|
-
}], selectElement: [{
|
|
374
|
+
args: [{ selector: "mis-action-list", template: "<div\n class=\"main-container\"\n [ngStyle]=\"{\n height: height().length > 0 ? height() : '',\n width: width().length > 0 ? width() : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"{ background: isOpen() ? '#E6EBF7' : '' }\"\n >\n <div class=\"label\">\n <p class=\"text\">\n {{ internalLabel() }}\n </p>\n <p *ngIf=\"selectedItems()?.length > 1\" class=\"count\">+{{ selectedItems()?.length - 1 }}</p>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ transform: isOpen() ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n</div>\n\n<ng-template #popupContainer>\n <div\n class=\"popup-container\"\n [ngStyle]=\"{\n height: dropdownListHeight(),\n width: dropdownListWidth()\n }\"\n >\n <div class=\"items\">\n <div\n #singleItem\n class=\"item\"\n tabindex=\"0\"\n [ngClass]=\"{ 'item-disabled': item?.disabled }\"\n (mouseenter)=\"onHover(item, true, singleItem)\"\n *ngFor=\"let item of internalData()\"\n >\n <div class=\"label\" [ngStyle]=\"{ width: item?.icon ? '90%' : '100%' }\">\n <span>{{ item?.label }}</span>\n </div>\n <div class=\"icon-container\" *ngIf=\"item?.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"internalData().length === 0\">\n {{ noDataMessage() || \"No results\" }}\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #subPopupContainer>\n <div\n class=\"popup-container\"\n [ngStyle]=\"{\n height: dropdownListHeight(),\n width: dropdownListWidth()\n }\"\n >\n <div class=\"items\">\n <div\n class=\"item\"\n tabindex=\"0\"\n [ngClass]=\"{ 'item-disabled': item.disabled }\"\n (click)=\"!item.disabled && selectItem(item)\"\n *ngFor=\"let item of subItems()\"\n >\n <div class=\"checkbox-container\" *ngIf=\"item.type === 'MULTIPLE'\">\n <mis-checkbox [disabled]=\"item.disabled\" [checked]=\"item.checked\"></mis-checkbox>\n </div>\n <div class=\"label\" [ngStyle]=\"{ width: item.icon ? '90%' : '100%' }\">\n <span>{{ item.label }}</span>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon || item.checked\">\n <img *ngIf=\"!item.checked\" class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n <ng-container *ngIf=\"item.type === 'SINGLE' && item.checked\">\n <ng-container *ngTemplateOutlet=\"tickIcon\"></ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"internalData().length === 0\">\n {{ noDataMessage() || \"No results\" }}\n </div>\n </div>\n </div>\n</ng-template>\n<ng-template #tickIcon>\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.47697 14.8237L3.49922 10.5519C3.2776 10.3169 3.2776 9.93437 3.49922 9.69684L4.30273 8.84298C4.52434 8.60795 4.88462 8.60795 5.10623 8.84298L7.87929 11.8334L14.0607 5.17627C14.2823 4.94124 14.6426 4.94124 14.8642 5.17627L15.6677 6.03138C15.8894 6.26641 15.8894 6.65021 15.6677 6.88399L8.28048 14.8237C8.05886 15.0588 7.69859 15.0588 7.47697 14.8237Z\"\n fill=\"#181F33\"\n />\n </svg>\n</ng-template>\n", styles: [".main-container{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;height:32px;width:256px;font-family:Lato,sans-serif!important}.main-container .dropdown{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:inherit;border:1px solid #e0e0e0;border-radius:6px;background-color:#fff;cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;box-sizing:border-box;padding:4px 12px}.main-container .dropdown:hover,.main-container .dropdown:focus-visible{background-color:#f5f7fc;outline:none}.main-container .dropdown .label{box-sizing:border-box;display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);font-style:normal;font-weight:400;font-size:16px;line-height:20px;letter-spacing:.2px;color:#181f33}.main-container .dropdown .label .text{margin:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-style:normal;font-weight:400;font-size:16px;line-height:20px;letter-spacing:.2px;color:#181f33}.main-container .dropdown .label .count{width:24px;height:24px;background-color:#e0e0e0;border-radius:50%;padding:2px 4px;margin:0 0 0 8px;font-style:normal;font-weight:400;box-sizing:border-box;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px;color:#181f33}.main-container .dropdown .handle{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.popup-container{width:100%;max-height:340px;padding-bottom:0;border:1px solid #e0e0e0;border-radius:8px;background-color:#fff;box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden;justify-content:space-between}.popup-container::-webkit-scrollbar{width:0;height:0}.popup-container .search-container{position:relative;box-sizing:border-box;padding:8px}.popup-container .search-container .search-icon{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container .search-container .search-input{height:40px;width:100%;padding:12px;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:8px;outline:none;caret-color:#0937b2;font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:#181f33}.popup-container .search-container .cancel-icon{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container .items{padding:8px 0 8px 8px;overflow-y:scroll}.popup-container .items::-webkit-scrollbar{width:5px;height:0}.popup-container .items::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:10px}.popup-container .items .noData{display:flex;justify-content:center;align-items:center;font-style:normal;font-weight:400;font-size:16px;line-height:20px;letter-spacing:.2px;color:#181f33}.popup-container .items .item{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;height:auto;letter-spacing:.2px;color:#181f33}.popup-container .items .item:hover,.popup-container .items .item:focus-visible{background-color:#f5f7fc;outline:none}.popup-container .items .item .label{width:100%;line-height:20px;font-size:16px;font-style:normal;font-weight:400;text-overflow:ellipsis;overflow:hidden}.popup-container .items .item .icon-container{width:10%;display:flex;justify-content:flex-end}.popup-container .items .item .icon-container .icon{width:20px;height:20px}.popup-container .items .item-disabled{cursor:not-allowed}.popup-container .items .item-disabled:hover,.popup-container .items .item-disabled:focus-visible{background-color:transparent;outline:none}.popup-container .items .item-disabled .label{color:#929dab;-webkit-user-select:none;user-select:none}\n"] }]
|
|
375
|
+
}], () => [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }], { selectElement: [{
|
|
353
376
|
type: ViewChild,
|
|
354
377
|
args: ["select", { static: false }]
|
|
355
378
|
}], popupContainer: [{
|
|
@@ -360,4 +383,4 @@ export class ActionListComponent {
|
|
|
360
383
|
args: ["subPopupContainer", { static: false }]
|
|
361
384
|
}] }); })();
|
|
362
385
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionListComponent, { className: "ActionListComponent" }); })();
|
|
363
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvYWN0aW9uLWxpc3QvYWN0aW9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvYWN0aW9uLWxpc3QvYWN0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lDaUIvSCw2QkFBbUQ7SUFBQSxZQUFnQztJQUFBLGlCQUFJOzs7SUFBcEMsY0FBZ0M7SUFBaEMsdUdBQWdDOzs7SUF5Q2pGLCtCQUErQztJQUM3QywwQkFBbUQ7SUFDckQsaUJBQU07OztJQURjLGNBQWlCO0lBQWpCLG9EQUFpQjs7OztJQVp2QyxrQ0FPQztJQUZDLHdRQUFjLHdCQUFjLElBQUksZ0JBQWEsS0FBQztJQUk1QyxBQURGLCtCQUFzRSxXQUM5RDtJQUFBLFlBQWlCO0lBQ3pCLEFBRHlCLGlCQUFPLEVBQzFCO0lBQ04seUZBQStDO0lBR2pELGlCQUFNOzs7SUFWSiwrRkFBK0M7SUFJNUIsZUFBa0Q7SUFBbEQsOEdBQWtEO0lBQzdELGVBQWlCO0lBQWpCLDREQUFpQjtJQUVJLGNBQWdCO0lBQWhCLDREQUFnQjs7O0lBSS9DLCtCQUE4QztJQUM1QyxZQUNGO0lBQUEsaUJBQU07OztJQURKLGNBQ0Y7SUFERSxxRUFDRjs7O0lBbEJGLEFBUEYsK0JBTUMsY0FDb0I7SUFnQmpCLEFBZkEsbUZBT0Msc0VBUTZD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Q29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyLCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy1hY3Rpb24tbGlzdFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2FjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9hY3Rpb24tbGlzdC5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25MaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaXNPcGVuID0gZmFsc2U7XG5cbiAgc3ViSXRlbXM6IEFjdGlvbkl0ZW1bXSA9IFtdO1xuXG4gIEBJbnB1dCgpIGRhdGE6IEFjdGlvbkl0ZW1zW10gPSBbXTtcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9IFwiU2VsZWN0XCI7XG5cbiAgQElucHV0KCkgZHJvcGRvd25MaXN0SGVpZ2h0OiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBkcm9wZG93bkxpc3RXaWR0aDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgZHJvcGRvd25MaXN0UG9zaXRpb246IFwiTGVmdFwiIHwgXCJSaWdodFwiID0gXCJMZWZ0XCI7XG5cbiAgQElucHV0KCkgc2VhcmNoRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIG5vRGF0YU1lc3NhZ2U6IHN0cmluZyA9IFwiTm8gRGF0YVwiO1xuICBzZWxlY3RlZEl0ZW1zOiBBY3Rpb25JdGVtW10gPSBbXTtcblxuICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoXCJzZWxlY3RcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHNlbGVjdEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoXCJwb3B1cENvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcG9wdXBDb250YWluZXI6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKFwic3ViUG9wdXBDb250YWluZXJcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHN1YlBvcHVwQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICBwcml2YXRlIHN1Yk92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc29sZS5sb2coXCJ0aGlzLmRhdFwiLCB0aGlzLmRhdGEpO1xuICAgIFxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIHRoaXMuZGF0YT8uZm9yRWFjaChxID0+XG4gICAgICBxPy5jaGlsZHJlbi5mb3JFYWNoKHcgPT4ge1xuICAgICAgICBpZiAody5jaGVja2VkKSB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaCh3KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmxhYmVsID0gdGhpcy5zZWxlY3RlZEl0ZW1zWzBdPy5sYWJlbCB8fCB0aGlzLmxhYmVsO1xuICB9XG5cbiAgZmlsdGVyQnlWYWx1ZShhcnJheTogQWN0aW9uSXRlbVtdLCBzdHJpbmc6IHN0cmluZykge1xuICAgIHJldHVybiBhcnJheS5maWx0ZXIobyA9PiBvLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc3RyaW5nLnRvTG93ZXJDYXNlKCkpKTtcbiAgfVxuICB0b2dnbGVEcm9wZG93bigpIHtcbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcbiAgICBpZiAodGhpcy5pc09wZW4pIHRoaXMub3BlbkRyb3Bkb3duKHRoaXMucG9wdXBDb250YWluZXIsIHRoaXMuc2VsZWN0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBmYWxzZSk7XG4gICAgZWxzZSB0aGlzLm9uQ2FuY2VsKCk7XG4gIH1cbiAgcHJpdmF0ZSBvcGVuRHJvcGRvd24odGVtcGxhdGU6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+LCBvcmlnaW46IEhUTUxFbGVtZW50LCBvcGVuUmlnaHQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBwb3NpdGlvbnNCb3R0b20gPSBbXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwic3RhcnRcIiwgb3JpZ2luWTogXCJib3R0b21cIiB9LCB7IG92ZXJsYXlYOiBcInN0YXJ0XCIsIG92ZXJsYXlZOiBcInRvcFwiIH0sIDAsIDQpLFxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcImVuZFwiLCBvcmlnaW5ZOiBcImJvdHRvbVwiIH0sIHsgb3ZlcmxheVg6IFwiZW5kXCIsIG92ZXJsYXlZOiBcInRvcFwiIH0sIDAsIDQpXG4gICAgXTtcbiAgICBjb25zdCBwb3NpdGlvbnNUb3AgPSBbXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwic3RhcnRcIiwgb3JpZ2luWTogXCJ0b3BcIiB9LCB7IG92ZXJsYXlYOiBcInN0YXJ0XCIsIG92ZXJsYXlZOiBcImJvdHRvbVwiIH0sIDAsIC00KSxcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJlbmRcIiwgb3JpZ2luWTogXCJ0b3BcIiB9LCB7IG92ZXJsYXlYOiBcImVuZFwiLCBvdmVybGF5WTogXCJib3R0b21cIiB9LCAwLCAtNClcbiAgICBdO1xuICAgIGNvbnN0IHBvc2l0aW9ucyA9IFtcbiAgICAgIC4uLih0aGlzLmRyb3Bkb3duTGlzdFBvc2l0aW9uID09PSBcIlJpZ2h0XCIgPyBwb3NpdGlvbnNCb3R0b20ucmV2ZXJzZSgpIDogcG9zaXRpb25zQm90dG9tKSxcbiAgICAgIC4uLih0aGlzLmRyb3Bkb3duTGlzdFBvc2l0aW9uID09PSBcIlJpZ2h0XCIgPyBwb3NpdGlvbnNUb3AucmV2ZXJzZSgpIDogcG9zaXRpb25zVG9wKVxuICAgIF07XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKG9yaWdpbilcbiAgICAgIC53aXRoUG9zaXRpb25zKFxuICAgICAgICBvcGVuUmlnaHQgPyBbbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcImVuZFwiLCBvcmlnaW5ZOiBcInRvcFwiIH0sIHsgb3ZlcmxheVg6IFwic3RhcnRcIiwgb3ZlcmxheVk6IFwidG9wXCIgfSwgOCldIDogcG9zaXRpb25zXG4gICAgICApXG4gICAgICAud2l0aFB1c2godHJ1ZSk7XG4gICAgY29uc3QgY29uZmlncyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiAhb3BlblJpZ2h0LFxuICAgICAgYmFja2Ryb3BDbGFzczogXCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICB3aWR0aDogb3JpZ2luLmNsaWVudFdpZHRoIHx8IDE0MFxuICAgIH0pO1xuICAgIGlmIChvcGVuUmlnaHQpIHtcbiAgICAgIHRoaXMuc3ViT3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlncyk7XG4gICAgICBpZiAodGhpcy5kcm9wZG93bkxpc3RXaWR0aCkgdGhpcy5zdWJPdmVybGF5UmVmLnVwZGF0ZVNpemUoeyB3aWR0aDogdGhpcy5kcm9wZG93bkxpc3RXaWR0aCB9KTtcbiAgICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdEhlaWdodCkgdGhpcy5zdWJPdmVybGF5UmVmLnVwZGF0ZVNpemUoeyBoZWlnaHQ6IHRoaXMuZHJvcGRvd25MaXN0SGVpZ2h0IH0pO1xuICAgICAgdGhpcy5zdWJPdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgdGhpcy5zdWJPdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9uQ2FuY2VsKCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWdzKTtcbiAgICBpZiAodGhpcy5kcm9wZG93bkxpc3RXaWR0aCkgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVNpemUoeyB3aWR0aDogdGhpcy5kcm9wZG93bkxpc3RXaWR0aCB9KTtcbiAgICBpZiAodGhpcy5kcm9wZG93bkxpc3RIZWlnaHQpIHRoaXMub3ZlcmxheVJlZi51cGRhdGVTaXplKHsgaGVpZ2h0OiB0aGlzLmRyb3Bkb3duTGlzdEhlaWdodCB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIH0pO1xuICB9XG4gIHNlbGVjdEl0ZW0oaXRlbTogQWN0aW9uSXRlbSkge1xuICAgIGlmICh0aGlzLmRhdGEuc29tZShxID0+IHEuY2hpbGRyZW4uc29tZSh3ID0+IHcudmFsdWUgPT09IGl0ZW0udmFsdWUgJiYgdy5jaGVja2VkKSkpIHtcbiAgICAgIGlmIChpdGVtLnR5cGUgPT09IFwiTVVMVElQTEVcIikgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcihxID0+IHEudmFsdWUgIT09IGl0ZW0udmFsdWUpO1xuICAgICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhLm1hcChxID0+ICh7XG4gICAgICAgIC4uLnEsXG4gICAgICAgIGNoaWxkcmVuOiBxPy5jaGlsZHJlbj8ubWFwKGUgPT4gKHtcbiAgICAgICAgICAuLi5lLFxuICAgICAgICAgIGNoZWNrZWQ6IGUuY2hlY2tlZCAmJiBlLnZhbHVlICE9PSBpdGVtLnZhbHVlXG4gICAgICAgIH0pKVxuICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEubWFwKHEgPT4gKHtcbiAgICAgICAgLi4ucSxcbiAgICAgICAgY2hpbGRyZW46IHE/LmNoaWxkcmVuPy5tYXAoZSA9PiAoe1xuICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgY2hlY2tlZDogKGUudHlwZSA9PT0gXCJNVUxUSVBMRVwiICYmIChlLmNoZWNrZWQgfHwgZS52YWx1ZSA9PT0gaXRlbS52YWx1ZSkpIHx8IChlLnR5cGUgPT09IFwiU0lOR0xFXCIgJiYgZS52YWx1ZSA9PT0gaXRlbS52YWx1ZSlcbiAgICAgICAgfSkpXG4gICAgICB9KSk7XG4gICAgICBpZiAoaXRlbS50eXBlID09PSBcIk1VTFRJUExFXCIpIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKHsgLi4uaXRlbSwgY2hlY2tlZDogdHJ1ZSB9KTtcbiAgICB9XG4gICAgdGhpcy5sYWJlbCA9XG4gICAgICBpdGVtLnR5cGUgPT09IFwiTVVMVElQTEVcIiA/ICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCA/IHRoaXMuc2VsZWN0ZWRJdGVtc1swXT8ubGFiZWwgOiBcIlNlbGVjdFwiKSA6IGl0ZW0uY2hlY2tlZCA/IFwiU2VsZWN0XCIgOiBpdGVtLmxhYmVsO1xuICAgIHRoaXMuc3ViSXRlbXMgPSB0aGlzLmRhdGEuZmluZChxID0+IHEuY2hpbGRyZW4/LnNvbWUodyA9PiB3LnZhbHVlID09PSBpdGVtLnZhbHVlKSk/LmNoaWxkcmVuIHx8IFtdO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmRhdGEpO1xuICAgIGlmIChpdGVtLnR5cGUgPT09IFwiU0lOR0xFXCIpIHRoaXMudG9nZ2xlRHJvcGRvd24oKTtcbiAgfVxuICBvbkhvdmVyKGl0ZW06IEFjdGlvbkl0ZW0sIGlzSG92ZXJlZCwgZWxlbWVudD86IGFueSkge1xuICAgIGlmIChpc0hvdmVyZWQpIHtcbiAgICAgIHRoaXMuc3ViSXRlbXMubGVuZ3RoID4gMCAmJiB0aGlzLnN1Yk92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgICAgdGhpcy5zdWJJdGVtcyA9IHRoaXMuZGF0YS5maW5kKHEgPT4gcT8uY2hpbGRyZW4/LnNvbWUodyA9PiB3Py5wYXJlbnRWYWx1ZSA9PT0gaXRlbT8udmFsdWUpKT8uY2hpbGRyZW4gfHwgW107XG4gICAgICB0aGlzLnN1Ykl0ZW1zLmxlbmd0aCA+IDAgJiYgdGhpcy5vcGVuRHJvcGRvd24odGhpcy5zdWJQb3B1cENvbnRhaW5lciwgZWxlbWVudD8ubmF0aXZlRWxlbWVudCB8fCBlbGVtZW50LCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJJdGVtcyA9IFtdO1xuICAgICAgdGhpcy5zdWJPdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB9XG4gIH1cbiAgb25DYW5jZWwoKSB7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMuc3ViT3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25JdGVtcyB7XG4gIGxhYmVsOiBBY3Rpb25JdGVtTGFiZWwgfCBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBBY3Rpb25JdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uSXRlbUxhYmVsIHtcbiAgcHJpbWFyeVRleHQgPzogc3RyaW5nO1xuICBzZWNvbmRhcnlUZXh0ID86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25JdGVtIHtcbiAgdHlwZTogXCJTSU5HTEVcIiB8IFwiTVVMVElQTEVcIjtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgcGFyZW50VmFsdWU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgY2hlY2tlZDogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuIiwiPGRpdlxuICBjbGFzcz1cIm1haW4tY29udGFpbmVyXCJcbiAgW25nU3R5bGVdPVwie1xuICAgIGhlaWdodDogaGVpZ2h0Lmxlbmd0aCA+IDAgPyBoZWlnaHQgOiAnJyxcbiAgICB3aWR0aDogd2lkdGgubGVuZ3RoID4gMCA/IHdpZHRoIDogJydcbiAgfVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICAjc2VsZWN0XG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICAoa2V5dXAuZW50ZXIpPVwidG9nZ2xlRHJvcGRvd24oKVwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogaXNPcGVuID8gJyNFNkVCRjcnIDogJycgfVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dFwiPlxuICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgPC9wPlxuICAgICAgPHAgKm5nSWY9XCJzZWxlY3RlZEl0ZW1zPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudFwiPit7eyBzZWxlY3RlZEl0ZW1zPy5sZW5ndGggLSAxIH19PC9wPlxuICAgIDwvZGl2PlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwiaGFuZGxlXCJcbiAgICAgIFtuZ1N0eWxlXT1cInsgdHJhbnNmb3JtOiBpc09wZW4gPyAncm90YXRlKDE4MGRlZyknIDogJ3JvdGF0ZSgwZGVnKScgfVwiXG4gICAgICB3aWR0aD1cIjIwXCJcbiAgICAgIGhlaWdodD1cIjIwXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEzLjgyNSA3LjE1ODQ1TDEwIDEwLjk3NTFMNi4xNzUgNy4xNTg0NUw1IDguMzMzNDVMMTAgMTMuMzMzNEwxNSA4LjMzMzQ1TDEzLjgyNSA3LjE1ODQ1WlwiXG4gICAgICAgIGZpbGw9XCIjMTgxRjMzXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjcG9wdXBDb250YWluZXI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgaGVpZ2h0OiBkcm9wZG93bkxpc3RIZWlnaHQsXG4gICAgICB3aWR0aDogZHJvcGRvd25MaXN0V2lkdGhcbiAgICB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJpdGVtc1wiPlxuICAgICAgPGRpdlxuICAgICAgICAjc2luZ2xlSXRlbVxuICAgICAgICBjbGFzcz1cIml0ZW1cIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpdGVtLWRpc2FibGVkJzogaXRlbT8uZGlzYWJsZWQgfVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm9uSG92ZXIoaXRlbSwgdHJ1ZSwgc2luZ2xlSXRlbSlcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgW25nU3R5bGVdPVwieyB3aWR0aDogaXRlbT8uaWNvbiA/ICc5MCUnIDogJzEwMCUnIH1cIj5cbiAgICAgICAgICA8c3Bhbj57eyBpdGVtPy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiICpuZ0lmPVwiaXRlbT8uaWNvblwiPlxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJpY29uXCIgW3NyY109XCJpdGVtLmljb25cIiBhbHQ9XCJubyBpbWdcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm5vRGF0YVwiICpuZ0lmPVwiZGF0YS5sZW5ndGggPT09IDBcIj5cbiAgICAgICAge3sgbm9EYXRhTWVzc2FnZSB8fCBcIk5vIHJlc3VsdHNcIiB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzdWJQb3B1cENvbnRhaW5lcj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicG9wdXAtY29udGFpbmVyXCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICBoZWlnaHQ6IGRyb3Bkb3duTGlzdEhlaWdodCxcbiAgICAgIHdpZHRoOiBkcm9wZG93bkxpc3RXaWR0aFxuICAgIH1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIml0ZW1zXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaXRlbVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2l0ZW0tZGlzYWJsZWQnOiBpdGVtLmRpc2FibGVkIH1cIlxuICAgICAgICAoY2xpY2spPVwiIWl0ZW0uZGlzYWJsZWQgJiYgc2VsZWN0SXRlbShpdGVtKVwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1Ykl0ZW1zXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWNvbnRhaW5lclwiICpuZ0lmPVwiaXRlbS50eXBlID09PSAnTVVMVElQTEUnXCI+XG4gICAgICAgICAgPG1pcy1jaGVja2JveCBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiIFtjaGVja2VkXT1cIml0ZW0uY2hlY2tlZFwiPjwvbWlzLWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgW25nU3R5bGVdPVwieyB3aWR0aDogaXRlbS5pY29uID8gJzkwJScgOiAnMTAwJScgfVwiPlxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIiAqbmdJZj1cIml0ZW0uaWNvbiB8fCBpdGVtLmNoZWNrZWRcIj5cbiAgICAgICAgICA8aW1nICpuZ0lmPVwiIWl0ZW0uY2hlY2tlZFwiIGNsYXNzPVwiaWNvblwiIFtzcmNdPVwiaXRlbS5pY29uXCIgYWx0PVwibm8gaW1nXCIgLz5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnU0lOR0xFJyAmJiBpdGVtLmNoZWNrZWRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aWNrSWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm5vRGF0YVwiICpuZ0lmPVwiZGF0YS5sZW5ndGggPT09IDBcIj5cbiAgICAgICAge3sgbm9EYXRhTWVzc2FnZSB8fCBcIk5vIHJlc3VsdHNcIiB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdGlja0ljb24+XG4gIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgZD1cIk03LjQ3Njk3IDE0LjgyMzdMMy40OTkyMiAxMC41NTE5QzMuMjc3NiAxMC4zMTY5IDMuMjc3NiA5LjkzNDM3IDMuNDk5MjIgOS42OTY4NEw0LjMwMjczIDguODQyOThDNC41MjQzNCA4LjYwNzk1IDQuODg0NjIgOC42MDc5NSA1LjEwNjIzIDguODQyOThMNy44NzkyOSAxMS44MzM0TDE0LjA2MDcgNS4xNzYyN0MxNC4yODIzIDQuOTQxMjQgMTQuNjQyNiA0Ljk0MTI0IDE0Ljg2NDIgNS4xNzYyN0wxNS42Njc3IDYuMDMxMzhDMTUuODg5NCA2LjI2NjQxIDE1Ljg4OTQgNi42NTAyMSAxNS42Njc3IDYuODgzOTlMOC4yODA0OCAxNC44MjM3QzguMDU4ODYgMTUuMDU4OCA3LjY5ODU5IDE1LjA1ODggNy40NzY5NyAxNC44MjM3WlwiXG4gICAgICBmaWxsPVwiIzE4MUYzM1wiXG4gICAgLz5cbiAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
386
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvYWN0aW9uLWxpc3QvYWN0aW9uLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvYWN0aW9uLWxpc3QvYWN0aW9uLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFtQyxTQUFTLEVBQW9CLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFZLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7SUNpQjNJLDZCQUFxRDtJQUFBLFlBQWtDO0lBQUEsaUJBQUk7Ozs7SUFBdEMsY0FBa0M7SUFBbEMsd0dBQWtDOzs7SUF5Q3JGLCtCQUErQztJQUM3QywwQkFBbUQ7SUFDckQsaUJBQU07OztJQURjLGNBQWlCO0lBQWpCLG9EQUFpQjs7OztJQVp2QyxrQ0FPQztJQUZDLHdRQUFjLHdCQUFjLElBQUksZ0JBQWEsS0FBQztJQUk1QyxBQURGLCtCQUFzRSxXQUM5RDtJQUFBLFlBQWlCO0lBQ3pCLEFBRHlCLGlCQUFPLEVBQzFCO0lBQ04seUZBQStDO0lBR2pELGlCQUFNOzs7SUFWSiwrRkFBK0M7SUFJNUIsZUFBa0Q7SUFBbEQsOEdBQWtEO0lBQzdELGVBQWlCO0lBQWpCLDREQUFpQjtJQUVJLGNBQWdCO0lBQWhCLDREQUFnQjs7O0lBSS9DLCtCQUF3RDtJQUN0RCxZQUNGO0lBQUEsaUJBQU07OztJQURKLGNBQ0Y7SUFERSx1RUFDRjs7O0lBbEJGLEFBUEYsK0JBTUMsY0FDb0I7SUFnQmpCLEFBZkEs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QVM7MkJBQ0UsaUJBQWlCO2dHQTRCYSxhQUFhO2tCQUFwRCxTQUFTO21CQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDVSxjQUFjO2tCQUE3RCxTQUFTO21CQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNLLGlCQUFpQjtrQkFBbkUsU0FBUzttQkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7O2tGQTFCdEMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGlvblBvc2l0aW9uUGFpciwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtYWN0aW9uLWxpc3RcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9hY3Rpb24tbGlzdC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vYWN0aW9uLWxpc3QuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIFNpZ25hbC1iYXNlZCBpbnB1dHNcbiAgZGF0YSA9IGlucHV0PEFjdGlvbkl0ZW1zW10+KFtdKTtcbiAgaGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPihcIlwiKTtcbiAgd2lkdGggPSBpbnB1dDxzdHJpbmc+KFwiXCIpO1xuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oXCJTZWxlY3RcIik7XG4gIGRyb3Bkb3duTGlzdEhlaWdodCA9IGlucHV0PHN0cmluZz4oXCJcIik7XG4gIGRyb3Bkb3duTGlzdFdpZHRoID0gaW5wdXQ8c3RyaW5nPihcIlwiKTtcbiAgZHJvcGRvd25MaXN0UG9zaXRpb24gPSBpbnB1dDxcIkxlZnRcIiB8IFwiUmlnaHRcIj4oXCJMZWZ0XCIpO1xuICBzZWFyY2hFbmFibGVkID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIG5vRGF0YU1lc3NhZ2UgPSBpbnB1dDxzdHJpbmc+KFwiTm8gRGF0YVwiKTtcblxuICAvLyBTaWduYWwtYmFzZWQgb3V0cHV0XG4gIG9uQ2hhbmdlID0gb3V0cHV0PGFueT4oKTtcblxuICAvLyBJbnRlcm5hbCBzdGF0ZSBzaWduYWxzXG4gIGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHN1Ykl0ZW1zID0gc2lnbmFsPEFjdGlvbkl0ZW1bXT4oW10pO1xuICBzZWxlY3RlZEl0ZW1zID0gc2lnbmFsPEFjdGlvbkl0ZW1bXT4oW10pO1xuICBcbiAgLy8gSW50ZXJuYWwgd3JpdGFibGUgc2lnbmFscyBmb3IgZGF0YSB0aGF0IGNhbiBiZSBtb2RpZmllZFxuICBpbnRlcm5hbERhdGEgPSBzaWduYWw8QWN0aW9uSXRlbXNbXT4oW10pO1xuICBpbnRlcm5hbExhYmVsID0gc2lnbmFsPHN0cmluZz4oXCJTZWxlY3RcIik7XG5cbiAgQFZpZXdDaGlsZChcInNlbGVjdFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgc2VsZWN0RWxlbWVudDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZChcInBvcHVwQ29udGFpbmVyXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBwb3B1cENvbnRhaW5lcjogVGVtcGxhdGVSZWY8RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoXCJzdWJQb3B1cENvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgc3ViUG9wdXBDb250YWluZXI6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgc3ViT3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgLy8gRWZmZWN0IHRvIHN5bmMgaW5wdXQgZGF0YSB3aXRoIGludGVybmFsIGRhdGFcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXREYXRhID0gdGhpcy5kYXRhKCk7XG4gICAgICB0aGlzLmludGVybmFsRGF0YS5zZXQoaW5wdXREYXRhKTtcbiAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICAgIFxuICAgIC8vIEVmZmVjdCB0byBzeW5jIGlucHV0IGxhYmVsIHdpdGggaW50ZXJuYWwgbGFiZWxcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXRMYWJlbCA9IHRoaXMubGFiZWwoKTtcbiAgICAgIHRoaXMuaW50ZXJuYWxMYWJlbC5zZXQoaW5wdXRMYWJlbCk7XG4gICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcbiAgICBcbiAgICAvLyBFZmZlY3QgdG8gdXBkYXRlIHNlbGVjdGVkSXRlbXMgd2hlbiBkYXRhIGNoYW5nZXNcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YVZhbHVlID0gdGhpcy5pbnRlcm5hbERhdGEoKTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXM6IEFjdGlvbkl0ZW1bXSA9IFtdO1xuICAgICAgXG4gICAgICBkYXRhVmFsdWU/LmZvckVhY2gocSA9PlxuICAgICAgICBxPy5jaGlsZHJlbj8uZm9yRWFjaCh3ID0+IHtcbiAgICAgICAgICBpZiAody5jaGVja2VkKSBzZWxlY3RlZEl0ZW1zLnB1c2godyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KHNlbGVjdGVkSXRlbXMpO1xuICAgIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG4gICAgXG4gICAgLy8gRWZmZWN0IHRvIHVwZGF0ZSBsYWJlbCB3aGVuIHNlbGVjdGVkSXRlbXMgY2hhbmdlc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zKCk7XG4gICAgICBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxMYWJlbC5zZXQoc2VsZWN0ZWRJdGVtc1swXS5sYWJlbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFsTGFiZWwuc2V0KHRoaXMubGFiZWwoKSk7XG4gICAgICB9XG4gICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge31cblxuICBmaWx0ZXJCeVZhbHVlKGFycmF5OiBBY3Rpb25JdGVtW10sIHN0cmluZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGFycmF5LmZpbHRlcihvID0+IG8ubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzdHJpbmcudG9Mb3dlckNhc2UoKSkpO1xuICB9XG4gIHRvZ2dsZURyb3Bkb3duKCkge1xuICAgIGNvbnN0IGN1cnJlbnRJc09wZW4gPSB0aGlzLmlzT3BlbigpO1xuICAgIHRoaXMuaXNPcGVuLnNldCghY3VycmVudElzT3Blbik7XG4gICAgaWYgKCFjdXJyZW50SXNPcGVuKSB0aGlzLm9wZW5Ecm9wZG93bih0aGlzLnBvcHVwQ29udGFpbmVyLCB0aGlzLnNlbGVjdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgZmFsc2UpO1xuICAgIGVsc2UgdGhpcy5vbkNhbmNlbCgpO1xuICB9XG4gIHByaXZhdGUgb3BlbkRyb3Bkb3duKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxFbGVtZW50Piwgb3JpZ2luOiBIVE1MRWxlbWVudCwgb3BlblJpZ2h0OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgcG9zaXRpb25zQm90dG9tID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwiYm90dG9tXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KSxcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJlbmRcIiwgb3JpZ2luWTogXCJib3R0b21cIiB9LCB7IG92ZXJsYXlYOiBcImVuZFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KVxuICAgIF07XG4gICAgY29uc3QgcG9zaXRpb25zVG9wID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJib3R0b21cIiB9LCAwLCAtNCksXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwiZW5kXCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJlbmRcIiwgb3ZlcmxheVk6IFwiYm90dG9tXCIgfSwgMCwgLTQpXG4gICAgXTtcbiAgICBjb25zdCBwb3NpdGlvbnMgPSBbXG4gICAgICAuLi4odGhpcy5kcm9wZG93bkxpc3RQb3NpdGlvbigpID09PSBcIlJpZ2h0XCIgPyBwb3NpdGlvbnNCb3R0b20ucmV2ZXJzZSgpIDogcG9zaXRpb25zQm90dG9tKSxcbiAgICAgIC4uLih0aGlzLmRyb3Bkb3duTGlzdFBvc2l0aW9uKCkgPT09IFwiUmlnaHRcIiA/IHBvc2l0aW9uc1RvcC5yZXZlcnNlKCkgOiBwb3NpdGlvbnNUb3ApXG4gICAgXTtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8ob3JpZ2luKVxuICAgICAgLndpdGhQb3NpdGlvbnMoXG4gICAgICAgIG9wZW5SaWdodCA/IFtuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwiZW5kXCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCA4KV0gOiBwb3NpdGlvbnNcbiAgICAgIClcbiAgICAgIC53aXRoUHVzaCh0cnVlKTtcbiAgICBjb25zdCBjb25maWdzID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6ICFvcGVuUmlnaHQsXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCIsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHdpZHRoOiBvcmlnaW4uY2xpZW50V2lkdGggfHwgMTQwXG4gICAgfSk7XG4gICAgaWYgKG9wZW5SaWdodCkge1xuICAgICAgdGhpcy5zdWJPdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWdzKTtcbiAgICAgIGNvbnN0IGRyb3Bkb3duV2lkdGggPSB0aGlzLmRyb3Bkb3duTGlzdFdpZHRoKCk7XG4gICAgICBjb25zdCBkcm9wZG93bkhlaWdodCA9IHRoaXMuZHJvcGRvd25MaXN0SGVpZ2h0KCk7XG4gICAgICBpZiAoZHJvcGRvd25XaWR0aCkgdGhpcy5zdWJPdmVybGF5UmVmLnVwZGF0ZVNpemUoeyB3aWR0aDogZHJvcGRvd25XaWR0aCB9KTtcbiAgICAgIGlmIChkcm9wZG93bkhlaWdodCkgdGhpcy5zdWJPdmVybGF5UmVmLnVwZGF0ZVNpemUoeyBoZWlnaHQ6IGRyb3Bkb3duSGVpZ2h0IH0pO1xuICAgICAgdGhpcy5zdWJPdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgdGhpcy5zdWJPdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9uQ2FuY2VsKCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWdzKTtcbiAgICBjb25zdCBkcm9wZG93bldpZHRoID0gdGhpcy5kcm9wZG93bkxpc3RXaWR0aCgpO1xuICAgIGNvbnN0IGRyb3Bkb3duSGVpZ2h0ID0gdGhpcy5kcm9wZG93bkxpc3RIZWlnaHQoKTtcbiAgICBpZiAoZHJvcGRvd25XaWR0aCkgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVNpemUoeyB3aWR0aDogZHJvcGRvd25XaWR0aCB9KTtcbiAgICBpZiAoZHJvcGRvd25IZWlnaHQpIHRoaXMub3ZlcmxheVJlZi51cGRhdGVTaXplKHsgaGVpZ2h0OiBkcm9wZG93bkhlaWdodCB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIH0pO1xuICB9XG4gIHNlbGVjdEl0ZW0oaXRlbTogQWN0aW9uSXRlbSkge1xuICAgIGNvbnN0IGN1cnJlbnREYXRhID0gdGhpcy5pbnRlcm5hbERhdGEoKTtcbiAgICBjb25zdCBjdXJyZW50U2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpO1xuICAgIFxuICAgIGlmIChjdXJyZW50RGF0YS5zb21lKHEgPT4gcS5jaGlsZHJlbj8uc29tZSh3ID0+IHcudmFsdWUgPT09IGl0ZW0udmFsdWUgJiYgdy5jaGVja2VkKSkpIHtcbiAgICAgIGlmIChpdGVtLnR5cGUgPT09IFwiTVVMVElQTEVcIikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KGN1cnJlbnRTZWxlY3RlZEl0ZW1zLmZpbHRlcihxID0+IHEudmFsdWUgIT09IGl0ZW0udmFsdWUpKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gY3VycmVudERhdGEubWFwKHEgPT4gKHtcbiAgICAgICAgLi4ucSxcbiAgICAgICAgY2hpbGRyZW46IHE/LmNoaWxkcmVuPy5tYXAoZSA9PiAoe1xuICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgY2hlY2tlZDogZS5jaGVja2VkICYmIGUudmFsdWUgIT09IGl0ZW0udmFsdWVcbiAgICAgICAgfSkpXG4gICAgICB9KSk7XG4gICAgICB0aGlzLmludGVybmFsRGF0YS5zZXQodXBkYXRlZERhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IGN1cnJlbnREYXRhLm1hcChxID0+ICh7XG4gICAgICAgIC4uLnEsXG4gICAgICAgIGNoaWxkcmVuOiBxPy5jaGlsZHJlbj8ubWFwKGUgPT4gKHtcbiAgICAgICAgICAuLi5lLFxuICAgICAgICAgIGNoZWNrZWQ6IChlLnR5cGUgPT09IFwiTVVMVElQTEVcIiAmJiAoZS5jaGVja2VkIHx8IGUudmFsdWUgPT09IGl0ZW0udmFsdWUpKSB8fCAoZS50eXBlID09PSBcIlNJTkdMRVwiICYmIGUudmFsdWUgPT09IGl0ZW0udmFsdWUpXG4gICAgICAgIH0pKVxuICAgICAgfSkpO1xuICAgICAgdGhpcy5pbnRlcm5hbERhdGEuc2V0KHVwZGF0ZWREYXRhKTtcbiAgICAgIGlmIChpdGVtLnR5cGUgPT09IFwiTVVMVElQTEVcIikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFsuLi5jdXJyZW50U2VsZWN0ZWRJdGVtcywgeyAuLi5pdGVtLCBjaGVja2VkOiB0cnVlIH1dKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gTGFiZWwgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgYnkgdGhlIGVmZmVjdCB3aGVuIHNlbGVjdGVkSXRlbXMgY2hhbmdlc1xuICAgIFxuICAgIGNvbnN0IG5ld1N1Ykl0ZW1zID0gdGhpcy5pbnRlcm5hbERhdGEoKS5maW5kKHEgPT4gcS5jaGlsZHJlbj8uc29tZSh3ID0+IHcudmFsdWUgPT09IGl0ZW0udmFsdWUpKT8uY2hpbGRyZW4gfHwgW107XG4gICAgdGhpcy5zdWJJdGVtcy5zZXQobmV3U3ViSXRlbXMpO1xuICAgIFxuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLmludGVybmFsRGF0YSgpKTtcbiAgICBpZiAoaXRlbS50eXBlID09PSBcIlNJTkdMRVwiKSB0aGlzLnRvZ2dsZURyb3Bkb3duKCk7XG4gIH1cbiAgb25Ib3ZlcihpdGVtOiBBY3Rpb25JdGVtLCBpc0hvdmVyZWQsIGVsZW1lbnQ/OiBhbnkpIHtcbiAgICBpZiAoaXNIb3ZlcmVkKSB7XG4gICAgICBjb25zdCBjdXJyZW50U3ViSXRlbXMgPSB0aGlzLnN1Ykl0ZW1zKCk7XG4gICAgICBjdXJyZW50U3ViSXRlbXMubGVuZ3RoID4gMCAmJiB0aGlzLnN1Yk92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgICAgY29uc3QgbmV3U3ViSXRlbXMgPSB0aGlzLmludGVybmFsRGF0YSgpLmZpbmQocSA9PiBxPy5jaGlsZHJlbj8uc29tZSh3ID0+IHc/LnBhcmVudFZhbHVlID09PSBpdGVtPy52YWx1ZSkpPy5jaGlsZHJlbiB8fCBbXTtcbiAgICAgIHRoaXMuc3ViSXRlbXMuc2V0KG5ld1N1Ykl0ZW1zKTtcbiAgICAgIG5ld1N1Ykl0ZW1zLmxlbmd0aCA+IDAgJiYgdGhpcy5vcGVuRHJvcGRvd24odGhpcy5zdWJQb3B1cENvbnRhaW5lciwgZWxlbWVudD8ubmF0aXZlRWxlbWVudCB8fCBlbGVtZW50LCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJJdGVtcy5zZXQoW10pO1xuICAgICAgdGhpcy5zdWJPdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB9XG4gIH1cbiAgb25DYW5jZWwoKSB7XG4gICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMuc3ViT3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25JdGVtcyB7XG4gIGxhYmVsOiBBY3Rpb25JdGVtTGFiZWwgfCBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBBY3Rpb25JdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uSXRlbUxhYmVsIHtcbiAgcHJpbWFyeVRleHQgPzogc3RyaW5nO1xuICBzZWNvbmRhcnlUZXh0ID86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25JdGVtIHtcbiAgdHlwZTogXCJTSU5HTEVcIiB8IFwiTVVMVElQTEVcIjtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgcGFyZW50VmFsdWU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgY2hlY2tlZDogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuIiwiPGRpdlxuICBjbGFzcz1cIm1haW4tY29udGFpbmVyXCJcbiAgW25nU3R5bGVdPVwie1xuICAgIGhlaWdodDogaGVpZ2h0KCkubGVuZ3RoID4gMCA/IGhlaWdodCgpIDogJycsXG4gICAgd2lkdGg6IHdpZHRoKCkubGVuZ3RoID4gMCA/IHdpZHRoKCkgOiAnJ1xuICB9XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZHJvcGRvd25cIlxuICAgICNzZWxlY3RcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIChrZXl1cC5lbnRlcik9XCJ0b2dnbGVEcm9wZG93bigpXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiXG4gICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBpc09wZW4oKSA/ICcjRTZFQkY3JyA6ICcnIH1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHRcIj5cbiAgICAgICAge3sgaW50ZXJuYWxMYWJlbCgpIH19XG4gICAgICA8L3A+XG4gICAgICA8cCAqbmdJZj1cInNlbGVjdGVkSXRlbXMoKT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY291bnRcIj4re3sgc2VsZWN0ZWRJdGVtcygpPy5sZW5ndGggLSAxIH19PC9wPlxuICAgIDwvZGl2PlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwiaGFuZGxlXCJcbiAgICAgIFtuZ1N0eWxlXT1cInsgdHJhbnNmb3JtOiBpc09wZW4oKSA/ICdyb3RhdGUoMTgwZGVnKScgOiAncm90YXRlKDBkZWcpJyB9XCJcbiAgICAgIHdpZHRoPVwiMjBcIlxuICAgICAgaGVpZ2h0PVwiMjBcIlxuICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMTMuODI1IDcuMTU4NDVMMTAgMTAuOTc1MUw2LjE3NSA3LjE1ODQ1TDUgOC4zMzM0NUwxMCAxMy4zMzM0TDE1IDguMzMzNDVMMTMuODI1IDcuMTU4NDVaXCJcbiAgICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwb3B1cENvbnRhaW5lcj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicG9wdXAtY29udGFpbmVyXCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICBoZWlnaHQ6IGRyb3Bkb3duTGlzdEhlaWdodCgpLFxuICAgICAgd2lkdGg6IGRyb3Bkb3duTGlzdFdpZHRoKClcbiAgICB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJpdGVtc1wiPlxuICAgICAgPGRpdlxuICAgICAgICAjc2luZ2xlSXRlbVxuICAgICAgICBjbGFzcz1cIml0ZW1cIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpdGVtLWRpc2FibGVkJzogaXRlbT8uZGlzYWJsZWQgfVwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm9uSG92ZXIoaXRlbSwgdHJ1ZSwgc2luZ2xlSXRlbSlcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbnRlcm5hbERhdGEoKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGl0ZW0/Lmljb24gPyAnOTAlJyA6ICcxMDAlJyB9XCI+XG4gICAgICAgICAgPHNwYW4+e3sgaXRlbT8ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIiAqbmdJZj1cIml0ZW0/Lmljb25cIj5cbiAgICAgICAgICA8aW1nIGNsYXNzPVwiaWNvblwiIFtzcmNdPVwiaXRlbS5pY29uXCIgYWx0PVwibm8gaW1nXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJub0RhdGFcIiAqbmdJZj1cImludGVybmFsRGF0YSgpLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICB7eyBub0RhdGFNZXNzYWdlKCkgfHwgXCJObyByZXN1bHRzXCIgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3ViUG9wdXBDb250YWluZXI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgaGVpZ2h0OiBkcm9wZG93bkxpc3RIZWlnaHQoKSxcbiAgICAgIHdpZHRoOiBkcm9wZG93bkxpc3RXaWR0aCgpXG4gICAgfVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbXNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJpdGVtXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaXRlbS1kaXNhYmxlZCc6IGl0ZW0uZGlzYWJsZWQgfVwiXG4gICAgICAgIChjbGljayk9XCIhaXRlbS5kaXNhYmxlZCAmJiBzZWxlY3RJdGVtKGl0ZW0pXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3ViSXRlbXMoKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1jb250YWluZXJcIiAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ01VTFRJUExFJ1wiPlxuICAgICAgICAgIDxtaXMtY2hlY2tib3ggW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIiBbY2hlY2tlZF09XCJpdGVtLmNoZWNrZWRcIj48L21pcy1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGl0ZW0uaWNvbiA/ICc5MCUnIDogJzEwMCUnIH1cIj5cbiAgICAgICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCIgKm5nSWY9XCJpdGVtLmljb24gfHwgaXRlbS5jaGVja2VkXCI+XG4gICAgICAgICAgPGltZyAqbmdJZj1cIiFpdGVtLmNoZWNrZWRcIiBjbGFzcz1cImljb25cIiBbc3JjXT1cIml0ZW0uaWNvblwiIGFsdD1cIm5vIGltZ1wiIC8+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ1NJTkdMRScgJiYgaXRlbS5jaGVja2VkXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGlja0ljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJub0RhdGFcIiAqbmdJZj1cImludGVybmFsRGF0YSgpLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICB7eyBub0RhdGFNZXNzYWdlKCkgfHwgXCJObyByZXN1bHRzXCIgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RpY2tJY29uPlxuICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgIGQ9XCJNNy40NzY5NyAxNC44MjM3TDMuNDk5MjIgMTAuNTUxOUMzLjI3NzYgMTAuMzE2OSAzLjI3NzYgOS45MzQzNyAzLjQ5OTIyIDkuNjk2ODRMNC4zMDI3MyA4Ljg0Mjk4QzQuNTI0MzQgOC42MDc5NSA0Ljg4NDYyIDguNjA3OTUgNS4xMDYyMyA4Ljg0Mjk4TDcuODc5MjkgMTEuODMzNEwxNC4wNjA3IDUuMTc2MjdDMTQuMjgyMyA0Ljk0MTI0IDE0LjY0MjYgNC45NDEyNCAxNC44NjQyIDUuMTc2MjdMMTUuNjY3NyA2LjAzMTM4QzE1Ljg4OTQgNi4yNjY0MSAxNS44ODk0IDYuNjUwMjEgMTUuNjY3NyA2Ljg4Mzk5TDguMjgwNDggMTQuODIzN0M4LjA1ODg2IDE1LjA1ODggNy42OTg1OSAxNS4wNTg4IDcuNDc2OTcgMTQuODIzN1pcIlxuICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgIC8+XG4gIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|