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,56 +1,54 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, EventEmitter, Output, input, effect } from "@angular/core";
|
|
2
2
|
import { UntypedFormControl } from "@angular/forms";
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/
|
|
5
|
-
import * as i2 from "@angular/forms";
|
|
6
|
-
const _c0 = a0 => ({ "toggle-switch-mobile": a0 });
|
|
7
|
-
const _c1 = a0 => ({ "cursor": a0 });
|
|
4
|
+
import * as i1 from "@angular/forms";
|
|
8
5
|
export class SwitchComponent {
|
|
9
|
-
set checked(value) {
|
|
10
|
-
this.control.setValue(value);
|
|
11
|
-
}
|
|
12
|
-
set disabled(value) {
|
|
13
|
-
if (value)
|
|
14
|
-
this.control.disable();
|
|
15
|
-
else
|
|
16
|
-
this.control.enable();
|
|
17
|
-
}
|
|
18
6
|
constructor() {
|
|
19
|
-
this.mobileView = false;
|
|
20
|
-
this.
|
|
21
|
-
|
|
7
|
+
this.mobileView = input(false);
|
|
8
|
+
this.checked = input(false);
|
|
9
|
+
this.disabled = input(false);
|
|
10
|
+
this.control = input(new UntypedFormControl(false));
|
|
22
11
|
this.valueChanged = new EventEmitter();
|
|
12
|
+
// keep control in sync with checked
|
|
13
|
+
effect(() => {
|
|
14
|
+
const ctrl = this.control();
|
|
15
|
+
const val = !!this.checked();
|
|
16
|
+
if (val) {
|
|
17
|
+
ctrl.setValue(val, { emitEvent: false });
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
// keep control in sync with disabled
|
|
21
|
+
effect(() => {
|
|
22
|
+
const ctrl = this.control();
|
|
23
|
+
const dis = !!this.disabled();
|
|
24
|
+
if (dis || ctrl.disabled)
|
|
25
|
+
ctrl.disable({ emitEvent: false });
|
|
26
|
+
else
|
|
27
|
+
ctrl.enable({ emitEvent: false });
|
|
28
|
+
});
|
|
23
29
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
this.valueChanged.emit(this.control.value);
|
|
30
|
+
onChange() {
|
|
31
|
+
this.valueChanged.emit(this.control().value);
|
|
27
32
|
}
|
|
28
33
|
static { this.ɵfac = function SwitchComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SwitchComponent)(); }; }
|
|
29
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SwitchComponent, selectors: [["mis-switch"]], inputs: { mobileView: "mobileView", checked: "checked", disabled: "disabled", control: "control" }, outputs: { valueChanged: "valueChanged" }, decls: 3, vars:
|
|
34
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SwitchComponent, selectors: [["mis-switch"]], inputs: { mobileView: [1, "mobileView"], checked: [1, "checked"], disabled: [1, "disabled"], control: [1, "control"] }, outputs: { valueChanged: "valueChanged" }, decls: 3, vars: 5, consts: [[1, "toggle-switch"], ["type", "checkbox", 3, "change", "formControl"], [1, "slider"]], template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {
|
|
30
35
|
i0.ɵɵelementStart(0, "label", 0)(1, "input", 1);
|
|
31
|
-
i0.ɵɵlistener("change", function SwitchComponent_Template_input_change_1_listener(
|
|
36
|
+
i0.ɵɵlistener("change", function SwitchComponent_Template_input_change_1_listener() { return ctx.onChange(); });
|
|
32
37
|
i0.ɵɵelementEnd();
|
|
33
38
|
i0.ɵɵelement(2, "span", 2);
|
|
34
39
|
i0.ɵɵelementEnd();
|
|
35
40
|
} if (rf & 2) {
|
|
36
|
-
i0.ɵɵ
|
|
41
|
+
i0.ɵɵstyleProp("cursor", ctx.disabled() || ctx.control().disabled ? "not-allowed" : "pointer");
|
|
42
|
+
i0.ɵɵclassProp("toggle-switch-mobile", ctx.mobileView());
|
|
37
43
|
i0.ɵɵadvance();
|
|
38
|
-
i0.ɵɵproperty("formControl", ctx.control);
|
|
39
|
-
} }, dependencies: [i1.
|
|
44
|
+
i0.ɵɵproperty("formControl", ctx.control());
|
|
45
|
+
} }, dependencies: [i1.CheckboxControlValueAccessor, i1.NgControlStatus, i1.FormControlDirective], styles: [".toggle-switch[_ngcontent-%COMP%]{height:28px;width:51px;display:inline-block;position:relative}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{display:none}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]{background-color:#0937b2}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]:after{-webkit-transform:translateX(23px);-ms-transform:translateX(23px);transform:translate(23px)}.toggle-switch[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]{position:absolute;inset:0;background-color:#e0e0e0;transition:.25s;border-radius:14px}.toggle-switch[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]:after{position:absolute;content:\"\";height:24px;width:24px;background-color:#fff;border-radius:12px;left:2px;bottom:2px;transition:.25s}.toggle-switch-mobile[_ngcontent-%COMP%]{height:14px;width:34px;display:inline-block;position:relative}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{display:none}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]{background-color:#e0e0e0}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:disabled + .slider[_ngcontent-%COMP%]{background-color:#f5f5f5!important}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]:after{background-color:#0937b2;-webkit-transform:translateX(34px);-ms-transform:translateX(34px);transform:translate(34px)}.toggle-switch-mobile[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked:disabled + .slider[_ngcontent-%COMP%]:after{background-color:#929dab}.toggle-switch-mobile[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]{position:absolute;inset:0;background-color:#e0e0e0;transition:.25s;border-radius:14px}.toggle-switch-mobile[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]:after{position:absolute;content:\"\";height:20px;width:20px;background-color:#fff;box-shadow:0 0 6px -2px #929dab;border-radius:12px;top:-3px;left:-10px;transition:.25s}"] }); }
|
|
40
46
|
}
|
|
41
47
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SwitchComponent, [{
|
|
42
48
|
type: Component,
|
|
43
|
-
args: [{ selector: "mis-switch", template: "<label class=\"toggle-switch\" [
|
|
44
|
-
}], () => [], {
|
|
45
|
-
type: Input
|
|
46
|
-
}], checked: [{
|
|
47
|
-
type: Input
|
|
48
|
-
}], disabled: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], control: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}], valueChanged: [{
|
|
49
|
+
args: [{ selector: "mis-switch", template: "<label class=\"toggle-switch\" [class.toggle-switch-mobile]=\"mobileView()\" [style.cursor]=\"disabled() || control().disabled ? 'not-allowed' : 'pointer'\">\n <input type=\"checkbox\" [formControl]=\"control()\" (change)=\"onChange()\" />\n <span class=\"slider\"></span>\n</label>\n", styles: [".toggle-switch{height:28px;width:51px;display:inline-block;position:relative}.toggle-switch input{display:none}.toggle-switch input:checked+.slider{background-color:#0937b2}.toggle-switch input:checked+.slider:after{-webkit-transform:translateX(23px);-ms-transform:translateX(23px);transform:translate(23px)}.toggle-switch .slider{position:absolute;inset:0;background-color:#e0e0e0;transition:.25s;border-radius:14px}.toggle-switch .slider:after{position:absolute;content:\"\";height:24px;width:24px;background-color:#fff;border-radius:12px;left:2px;bottom:2px;transition:.25s}.toggle-switch-mobile{height:14px;width:34px;display:inline-block;position:relative}.toggle-switch-mobile input{display:none}.toggle-switch-mobile input:checked+.slider{background-color:#e0e0e0}.toggle-switch-mobile input:disabled+.slider{background-color:#f5f5f5!important}.toggle-switch-mobile input:checked+.slider:after{background-color:#0937b2;-webkit-transform:translateX(34px);-ms-transform:translateX(34px);transform:translate(34px)}.toggle-switch-mobile input:checked:disabled+.slider:after{background-color:#929dab}.toggle-switch-mobile .slider{position:absolute;inset:0;background-color:#e0e0e0;transition:.25s;border-radius:14px}.toggle-switch-mobile .slider:after{position:absolute;content:\"\";height:20px;width:20px;background-color:#fff;box-shadow:0 0 6px -2px #929dab;border-radius:12px;top:-3px;left:-10px;transition:.25s}\n"] }]
|
|
50
|
+
}], () => [], { valueChanged: [{
|
|
53
51
|
type: Output
|
|
54
52
|
}] }); })();
|
|
55
53
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SwitchComponent, { className: "SwitchComponent" }); })();
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQW1CLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU9yRSxNQUFNLE9BQU8sZUFBZTtJQVExQjtRQVBBLGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkMsWUFBTyxHQUFNLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuQyxhQUFRLEdBQUssS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ25DLFlBQU8sR0FBRyxLQUFLLENBQWtCLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV0RCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHbkQsb0NBQW9DO1FBQ3BDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgscUNBQXFDO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUTtnQkFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7O2dCQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO2dIQTdCVSxlQUFlO29FQUFmLGVBQWU7WUNQMUIsQUFERixnQ0FBdUosZUFDNUU7WUFBeEIsNkZBQVUsY0FBVSxJQUFDO1lBQXRFLGlCQUF5RTtZQUN6RSwwQkFBNEI7WUFDOUIsaUJBQVE7O1lBSGlFLDhGQUE2RTtZQUF6SCx3REFBMkM7WUFDL0MsY0FBeUI7WUFBekIsMkNBQXlCOzs7aUZET3JDLGVBQWU7Y0FMM0IsU0FBUzsyQkFDRSxZQUFZO29CQVVaLFlBQVk7a0JBQXJCLE1BQU07O2tGQU5JLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBpbnB1dCwgZWZmZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtc3dpdGNoXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc3dpdGNoLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9zd2l0Y2guY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29tcG9uZW50IHtcbiAgbW9iaWxlVmlldyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgY2hlY2tlZCAgICA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGlzYWJsZWQgICA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgY29udHJvbCA9IGlucHV0PEFic3RyYWN0Q29udHJvbD4obmV3IFVudHlwZWRGb3JtQ29udHJvbChmYWxzZSkpO1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8ga2VlcCBjb250cm9sIGluIHN5bmMgd2l0aCBjaGVja2VkXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGN0cmwgPSB0aGlzLmNvbnRyb2woKTtcbiAgICAgIGNvbnN0IHZhbCA9ICEhdGhpcy5jaGVja2VkKCk7XG4gICAgICBpZiAodmFsKSB7XG4gICAgICAgIGN0cmwuc2V0VmFsdWUodmFsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBrZWVwIGNvbnRyb2wgaW4gc3luYyB3aXRoIGRpc2FibGVkXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGN0cmwgPSB0aGlzLmNvbnRyb2woKTtcbiAgICAgIGNvbnN0IGRpcyA9ICEhdGhpcy5kaXNhYmxlZCgpO1xuICAgICAgaWYgKGRpcyB8fCBjdHJsLmRpc2FibGVkKSBjdHJsLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgZWxzZSBjdHJsLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSk7XG4gIH1cblxuICBvbkNoYW5nZSgpOiB2b2lke1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodGhpcy5jb250cm9sKCkudmFsdWUpO1xuICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJ0b2dnbGUtc3dpdGNoXCIgW2NsYXNzLnRvZ2dsZS1zd2l0Y2gtbW9iaWxlXT1cIm1vYmlsZVZpZXcoKVwiIFtzdHlsZS5jdXJzb3JdPVwiZGlzYWJsZWQoKSB8fCBjb250cm9sKCkuZGlzYWJsZWQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInXCI+XG4gIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbCgpXCIgKGNoYW5nZSk9XCJvbkNoYW5nZSgpXCIgLz5cbiAgPHNwYW4gY2xhc3M9XCJzbGlkZXJcIj48L3NwYW4+XG48L2xhYmVsPlxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, HostListener, ViewChild, input, output, signal } from "@angular/core";
|
|
2
2
|
import { ConnectionPositionPair, OverlayConfig } from "@angular/cdk/overlay";
|
|
3
3
|
import { TemplatePortal } from "@angular/cdk/portal";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -28,7 +28,7 @@ function ActionsCellComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
28
28
|
} if (rf & 2) {
|
|
29
29
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
30
30
|
i0.ɵɵadvance();
|
|
31
|
-
i0.ɵɵproperty("ngForOf", ctx_r2.actionItems)("ngForTrackBy", ctx_r2.trackByAction);
|
|
31
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.actionItems())("ngForTrackBy", ctx_r2.trackByAction);
|
|
32
32
|
} }
|
|
33
33
|
function ActionsCellComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
34
34
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
@@ -47,7 +47,7 @@ function ActionsCellComponent_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
47
47
|
} if (rf & 2) {
|
|
48
48
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
49
49
|
i0.ɵɵadvance();
|
|
50
|
-
i0.ɵɵproperty("checked", ctx_r2.currentState)("disabled", ctx_r2.disable ? ctx_r2.disable(ctx_r2.
|
|
50
|
+
i0.ɵɵproperty("checked", ctx_r2.currentState())("disabled", ctx_r2.disable() ? ctx_r2.disable()(ctx_r2.data()) : false);
|
|
51
51
|
} }
|
|
52
52
|
function ActionsCellComponent_div_4__svg_svg_2_Template(rf, ctx) { if (rf & 1) {
|
|
53
53
|
i0.ɵɵnamespaceSVG();
|
|
@@ -70,11 +70,11 @@ function ActionsCellComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
70
70
|
} if (rf & 2) {
|
|
71
71
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
72
72
|
i0.ɵɵadvance();
|
|
73
|
-
i0.ɵɵproperty("title", ctx_r2.currentState ? "Expand" : "Collapse");
|
|
73
|
+
i0.ɵɵproperty("title", ctx_r2.currentState() ? "Expand" : "Collapse");
|
|
74
74
|
i0.ɵɵadvance();
|
|
75
|
-
i0.ɵɵproperty("ngIf", ctx_r2.currentState);
|
|
75
|
+
i0.ɵɵproperty("ngIf", ctx_r2.currentState());
|
|
76
76
|
i0.ɵɵadvance();
|
|
77
|
-
i0.ɵɵproperty("ngIf", !ctx_r2.currentState);
|
|
77
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.currentState());
|
|
78
78
|
} }
|
|
79
79
|
function ActionsCellComponent_ng_template_5_div_1_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
80
80
|
i0.ɵɵelementStart(0, "span", 36);
|
|
@@ -183,40 +183,45 @@ function ActionsCellComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
|
|
|
183
183
|
} if (rf & 2) {
|
|
184
184
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
185
185
|
i0.ɵɵadvance();
|
|
186
|
-
i0.ɵɵproperty("ngForOf", ctx_r2.actionItems);
|
|
186
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.actionItems());
|
|
187
187
|
} }
|
|
188
188
|
export class ActionsCellComponent {
|
|
189
189
|
constructor(overlay, viewContainerRef) {
|
|
190
190
|
this.overlay = overlay;
|
|
191
191
|
this.viewContainerRef = viewContainerRef;
|
|
192
|
-
this.
|
|
193
|
-
this.
|
|
194
|
-
this.
|
|
195
|
-
this.
|
|
196
|
-
this.
|
|
197
|
-
this.
|
|
198
|
-
this.
|
|
192
|
+
this.cellData = input();
|
|
193
|
+
this.config = input();
|
|
194
|
+
this.actionClick = output();
|
|
195
|
+
this.isDropdownOpen = signal(false);
|
|
196
|
+
this.actionItems = signal([]);
|
|
197
|
+
this.actionType = signal("inline");
|
|
198
|
+
this.action = signal(undefined);
|
|
199
|
+
this.data = signal(undefined);
|
|
200
|
+
this.disable = signal(undefined);
|
|
201
|
+
this.currentState = signal(false);
|
|
202
|
+
this._style = signal({});
|
|
203
|
+
this.containerStyle = signal({});
|
|
199
204
|
this.overlayRef = null;
|
|
200
205
|
}
|
|
201
206
|
ngOnInit() {
|
|
202
|
-
if (this.config) {
|
|
203
|
-
this.actionItems
|
|
204
|
-
this.actionType
|
|
205
|
-
this._style
|
|
206
|
-
this.action
|
|
207
|
-
this.disable
|
|
207
|
+
if (this.config()) {
|
|
208
|
+
this.actionItems.set(this.config().actionItems);
|
|
209
|
+
this.actionType.set(this.config().actionType);
|
|
210
|
+
this._style.set(this.config().style);
|
|
211
|
+
this.action.set(this.config().action);
|
|
212
|
+
this.disable.set(this.config().disable);
|
|
208
213
|
this.processStyle();
|
|
209
214
|
}
|
|
210
|
-
if (this.cellData !== null) {
|
|
215
|
+
if (this.cellData() !== null) {
|
|
211
216
|
const defaultStates = {
|
|
212
217
|
'checkbox': false,
|
|
213
218
|
'row-collapse': true,
|
|
214
219
|
};
|
|
215
|
-
if (this.actionType in defaultStates) {
|
|
216
|
-
this.currentState
|
|
220
|
+
if (this.actionType() in defaultStates) {
|
|
221
|
+
this.currentState.set(typeof this.cellData() === 'boolean' ? this.cellData() : defaultStates[this.actionType()]);
|
|
217
222
|
}
|
|
218
223
|
else {
|
|
219
|
-
this.data
|
|
224
|
+
this.data.set(this.cellData());
|
|
220
225
|
}
|
|
221
226
|
}
|
|
222
227
|
}
|
|
@@ -225,8 +230,8 @@ export class ActionsCellComponent {
|
|
|
225
230
|
}
|
|
226
231
|
processStyle() {
|
|
227
232
|
// Remove width from style to avoid conflicts with table column width
|
|
228
|
-
const { width, ...restStyle } = this._style;
|
|
229
|
-
this.containerStyle
|
|
233
|
+
const { width, ...restStyle } = this._style();
|
|
234
|
+
this.containerStyle.set(restStyle);
|
|
230
235
|
}
|
|
231
236
|
onActionClick(item, event) {
|
|
232
237
|
event.stopPropagation();
|
|
@@ -235,7 +240,7 @@ export class ActionsCellComponent {
|
|
|
235
240
|
return;
|
|
236
241
|
// Execute action only if permitted
|
|
237
242
|
if (item.action) {
|
|
238
|
-
item.action(this.data);
|
|
243
|
+
item.action(this.data());
|
|
239
244
|
}
|
|
240
245
|
this.actionClick.emit({ item });
|
|
241
246
|
}
|
|
@@ -248,13 +253,13 @@ export class ActionsCellComponent {
|
|
|
248
253
|
return iconPath.toLowerCase().includes(".svg") || iconPath.toLowerCase().includes("assets/icons/");
|
|
249
254
|
}
|
|
250
255
|
onDocumentClick() {
|
|
251
|
-
if (this.isDropdownOpen) {
|
|
256
|
+
if (this.isDropdownOpen()) {
|
|
252
257
|
this.closeDropdown();
|
|
253
258
|
}
|
|
254
259
|
}
|
|
255
260
|
toggleDropdown(event) {
|
|
256
261
|
event.stopPropagation();
|
|
257
|
-
if (this.isDropdownOpen) {
|
|
262
|
+
if (this.isDropdownOpen()) {
|
|
258
263
|
this.closeDropdown();
|
|
259
264
|
}
|
|
260
265
|
else {
|
|
@@ -265,7 +270,7 @@ export class ActionsCellComponent {
|
|
|
265
270
|
if (!this.dropdownTrigger || !this.dropdownMenu)
|
|
266
271
|
return;
|
|
267
272
|
// Close all submenus when opening main menu
|
|
268
|
-
this.actionItems.forEach((item) => (item.showSubmenu = false));
|
|
273
|
+
this.actionItems().forEach((item) => (item.showSubmenu = false));
|
|
269
274
|
const positions = this.getDropdownPositions();
|
|
270
275
|
const overlayConfig = new OverlayConfig({
|
|
271
276
|
hasBackdrop: true,
|
|
@@ -283,14 +288,14 @@ export class ActionsCellComponent {
|
|
|
283
288
|
this.overlayRef.backdropClick().subscribe(() => {
|
|
284
289
|
this.closeDropdown();
|
|
285
290
|
});
|
|
286
|
-
this.isDropdownOpen
|
|
291
|
+
this.isDropdownOpen.set(true);
|
|
287
292
|
}
|
|
288
293
|
closeDropdown() {
|
|
289
294
|
if (this.overlayRef) {
|
|
290
295
|
this.overlayRef.dispose();
|
|
291
296
|
this.overlayRef = null;
|
|
292
297
|
}
|
|
293
|
-
this.isDropdownOpen
|
|
298
|
+
this.isDropdownOpen.set(false);
|
|
294
299
|
}
|
|
295
300
|
getDropdownPositions() {
|
|
296
301
|
// Use CDK Overlay's flexible positioning - it will automatically choose the best position
|
|
@@ -313,7 +318,7 @@ export class ActionsCellComponent {
|
|
|
313
318
|
// Toggle submenu
|
|
314
319
|
item.showSubmenu = !item.showSubmenu;
|
|
315
320
|
// Optionally close other submenus
|
|
316
|
-
this.actionItems.forEach((i) => {
|
|
321
|
+
this.actionItems().forEach((i) => {
|
|
317
322
|
if (i !== item)
|
|
318
323
|
i.showSubmenu = false;
|
|
319
324
|
});
|
|
@@ -321,21 +326,23 @@ export class ActionsCellComponent {
|
|
|
321
326
|
else {
|
|
322
327
|
// Handle action
|
|
323
328
|
if (item.action)
|
|
324
|
-
item.action(this.data);
|
|
325
|
-
this.actionClick.emit({ item, data: this.data });
|
|
329
|
+
item.action(this.data());
|
|
330
|
+
this.actionClick.emit({ item, data: this.data() });
|
|
326
331
|
this.closeDropdown(); // Only close if action was executed
|
|
327
332
|
}
|
|
328
333
|
}
|
|
329
334
|
onClick(event) {
|
|
330
|
-
|
|
335
|
+
// Handle checkbox value - event might be {value: true} or just true
|
|
336
|
+
const newValue = event && typeof event === 'object' ? event.value : event;
|
|
337
|
+
this.currentState.set(newValue);
|
|
331
338
|
this.actionClick.emit({
|
|
332
|
-
actionType: this.actionType,
|
|
333
|
-
value:
|
|
339
|
+
actionType: this.actionType(),
|
|
340
|
+
value: newValue
|
|
334
341
|
});
|
|
335
342
|
}
|
|
336
343
|
isDisabled(item) {
|
|
337
344
|
if (typeof item.disable === "function") {
|
|
338
|
-
return item.disable(this.data);
|
|
345
|
+
return item.disable(this.data());
|
|
339
346
|
}
|
|
340
347
|
return false;
|
|
341
348
|
}
|
|
@@ -349,33 +356,27 @@ export class ActionsCellComponent {
|
|
|
349
356
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownTrigger = _t.first);
|
|
350
357
|
} }, hostBindings: function ActionsCellComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
351
358
|
i0.ɵɵlistener("click", function ActionsCellComponent_click_HostBindingHandler() { return ctx.onDocumentClick(); }, false, i0.ɵɵresolveDocument);
|
|
352
|
-
} }, inputs: { cellData: "cellData", config: "config" }, outputs: { actionClick: "actionClick" }, decls: 7, vars: 5, consts: [["dropdownMenu", ""], ["dropdownTrigger", ""], ["noChildren", ""], [1, "actions-cell-container", 3, "ngStyle"], ["class", "inline-actions", 4, "ngIf"], ["class", "dropdown-actions", 4, "ngIf"], ["class", "checkbox-actions", 4, "ngIf"], ["class", "collapse-toggle-action", 4, "ngIf"], [1, "inline-actions"], ["class", "action-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "click", "ngClass"], [1, "action-icon-svg", 3, "src", "alt"], [1, "dropdown-actions"], ["title", "More actions", 1, "dropdown-trigger", 3, "click"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none"], ["cx", "10", "cy", "4", "r", "2", "fill", "#333"], ["cx", "10", "cy", "10", "r", "2", "fill", "#333"], ["cx", "10", "cy", "16", "r", "2", "fill", "#333"], [1, "checkbox-actions"], [3, "valueChange", "checked", "disabled"], [1, "collapse-toggle-action"], [1, "collapse-icon", 3, "click", "title"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", 4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 24 24"], ["d", "M7 10l5 5 5-5", "stroke", "#0D1321", "stroke-width", "2", "fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], ["d", "M7 14l5-5 5 5", "stroke", "#0D1321", "stroke-width", "2", "fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], [1, "dropdown-menu-overlay"], ["class", "dropdown-menu-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "dropdown-menu-item", 3, "click", "ngClass"], [4, "ngIf", "ngIfElse"], ["class", "dropdown-icon", 4, "ngIf"], [1, "dropdown-label"], [1, "submenu-arrow"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none"], ["d", "M9 6L15 12L9 18", "stroke", "#0D1321", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round"], ["class", "dropdown-submenu", 4, "ngIf"], [1, "dropdown-icon"], [3, "src"], [1, "dropdown-submenu"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
|
|
359
|
+
} }, inputs: { cellData: [1, "cellData"], config: [1, "config"] }, outputs: { actionClick: "actionClick" }, decls: 7, vars: 5, consts: [["dropdownMenu", ""], ["dropdownTrigger", ""], ["noChildren", ""], [1, "actions-cell-container", 3, "ngStyle"], ["class", "inline-actions", 4, "ngIf"], ["class", "dropdown-actions", 4, "ngIf"], ["class", "checkbox-actions", 4, "ngIf"], ["class", "collapse-toggle-action", 4, "ngIf"], [1, "inline-actions"], ["class", "action-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "click", "ngClass"], [1, "action-icon-svg", 3, "src", "alt"], [1, "dropdown-actions"], ["title", "More actions", 1, "dropdown-trigger", 3, "click"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none"], ["cx", "10", "cy", "4", "r", "2", "fill", "#333"], ["cx", "10", "cy", "10", "r", "2", "fill", "#333"], ["cx", "10", "cy", "16", "r", "2", "fill", "#333"], [1, "checkbox-actions"], [3, "valueChange", "checked", "disabled"], [1, "collapse-toggle-action"], [1, "collapse-icon", 3, "click", "title"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", 4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 24 24"], ["d", "M7 10l5 5 5-5", "stroke", "#0D1321", "stroke-width", "2", "fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], ["d", "M7 14l5-5 5 5", "stroke", "#0D1321", "stroke-width", "2", "fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], [1, "dropdown-menu-overlay"], ["class", "dropdown-menu-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "dropdown-menu-item", 3, "click", "ngClass"], [4, "ngIf", "ngIfElse"], ["class", "dropdown-icon", 4, "ngIf"], [1, "dropdown-label"], [1, "submenu-arrow"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none"], ["d", "M9 6L15 12L9 18", "stroke", "#0D1321", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round"], ["class", "dropdown-submenu", 4, "ngIf"], [1, "dropdown-icon"], [3, "src"], [1, "dropdown-submenu"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
|
|
353
360
|
i0.ɵɵelementStart(0, "div", 3);
|
|
354
361
|
i0.ɵɵtemplate(1, ActionsCellComponent_div_1_Template, 2, 2, "div", 4)(2, ActionsCellComponent_div_2_Template, 7, 0, "div", 5)(3, ActionsCellComponent_div_3_Template, 2, 2, "div", 6);
|
|
355
362
|
i0.ɵɵelementEnd();
|
|
356
363
|
i0.ɵɵtemplate(4, ActionsCellComponent_div_4_Template, 4, 3, "div", 7)(5, ActionsCellComponent_ng_template_5_Template, 2, 1, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
357
364
|
} if (rf & 2) {
|
|
358
|
-
i0.ɵɵproperty("ngStyle", ctx.containerStyle);
|
|
365
|
+
i0.ɵɵproperty("ngStyle", ctx.containerStyle());
|
|
359
366
|
i0.ɵɵadvance();
|
|
360
|
-
i0.ɵɵproperty("ngIf", ctx.actionType === "inline");
|
|
367
|
+
i0.ɵɵproperty("ngIf", ctx.actionType() === "inline");
|
|
361
368
|
i0.ɵɵadvance();
|
|
362
|
-
i0.ɵɵproperty("ngIf", ctx.actionType === "dropdown");
|
|
369
|
+
i0.ɵɵproperty("ngIf", ctx.actionType() === "dropdown");
|
|
363
370
|
i0.ɵɵadvance();
|
|
364
|
-
i0.ɵɵproperty("ngIf", ctx.actionType === "checkbox");
|
|
371
|
+
i0.ɵɵproperty("ngIf", ctx.actionType() === "checkbox");
|
|
365
372
|
i0.ɵɵadvance();
|
|
366
|
-
i0.ɵɵproperty("ngIf", ctx.actionType === "row-collapse");
|
|
373
|
+
i0.ɵɵproperty("ngIf", ctx.actionType() === "row-collapse");
|
|
367
374
|
} }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgStyle, i3.CheckboxComponent], styles: [".actions-cell-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item[_ngcontent-%COMP%]:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item[_ngcontent-%COMP%]:active:not(.disabled){transform:scale(.95)}.action-item.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.action-item.disabled[_ngcontent-%COMP%]:hover{background-color:transparent;transform:none}.action-icon[_ngcontent-%COMP%]{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg[_ngcontent-%COMP%]{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg[_ngcontent-%COMP%]:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-actions[_ngcontent-%COMP%]{position:relative}.dropdown-menu-overlay[_ngcontent-%COMP%]{width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1000}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#aaa;cursor:not-allowed}.dropdown-menu-item[_ngcontent-%COMP%]:hover:not(.disabled), .dropdown-menu-item.has-submenu[_ngcontent-%COMP%]:hover{background:#f5f5f5}.dropdown-menu-item[_ngcontent-%COMP%]{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item[_ngcontent-%COMP%] .dropdown-label[_ngcontent-%COMP%]{flex:1;margin-left:8px}.dropdown-menu-item[_ngcontent-%COMP%] .submenu-arrow[_ngcontent-%COMP%]{margin-left:auto;width:16px;height:16px}.dropdown-submenu[_ngcontent-%COMP%]{position:absolute;top:0;min-width:132px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu[_ngcontent-%COMP%]{left:100%;margin-left:4px}.submenu-arrow[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#181f33;filter:grayscale(100%) opacity(.3);cursor:not-allowed}.checkbox-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.collapse-icon[_ngcontent-%COMP%]{cursor:pointer}"] }); }
|
|
368
375
|
}
|
|
369
376
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionsCellComponent, [{
|
|
370
377
|
type: Component,
|
|
371
|
-
args: [{ selector: "mis-actions-cell", template: "<div class=\"actions-cell-container\" [ngStyle]=\"containerStyle\">\n <!-- Inline Actions -->\n <div *ngIf=\"actionType === 'inline'\" class=\"inline-actions\">\n <div\n *ngFor=\"let item of actionItems; trackBy: trackByAction\"\n class=\"action-item\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n (click)=\"onActionClick(item, $event)\"\n >\n <img [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType === 'dropdown'\" class=\"dropdown-actions\">\n <div #dropdownTrigger class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"4\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"10\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"16\" r=\"2\" fill=\"#333\" />\n </svg>\n </div>\n </div>\n\n <!-- Checkbox Actions -->\n <div *ngIf=\"actionType === 'checkbox'\" class=\"checkbox-actions\">\n <mis-checkbox [checked]=\"currentState\" (valueChange)=\"onClick($event)\" [disabled]=\"disable ? disable(
|
|
372
|
-
}], () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }], {
|
|
373
|
-
type: Input
|
|
374
|
-
}], config: [{
|
|
375
|
-
type: Input
|
|
376
|
-
}], actionClick: [{
|
|
377
|
-
type: Output
|
|
378
|
-
}], dropdownMenu: [{
|
|
378
|
+
args: [{ selector: "mis-actions-cell", template: "<div class=\"actions-cell-container\" [ngStyle]=\"containerStyle()\">\n <!-- Inline Actions -->\n <div *ngIf=\"actionType() === 'inline'\" class=\"inline-actions\">\n <div\n *ngFor=\"let item of actionItems(); trackBy: trackByAction\"\n class=\"action-item\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n (click)=\"onActionClick(item, $event)\"\n >\n <img [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType() === 'dropdown'\" class=\"dropdown-actions\">\n <div #dropdownTrigger class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"4\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"10\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"16\" r=\"2\" fill=\"#333\" />\n </svg>\n </div>\n </div>\n\n <!-- Checkbox Actions -->\n <div *ngIf=\"actionType() === 'checkbox'\" class=\"checkbox-actions\">\n <mis-checkbox [checked]=\"currentState()\" (valueChange)=\"onClick($event)\" [disabled]=\"disable() ? disable()(data()) : false\"> </mis-checkbox>\n </div>\n</div>\n\n<!-- Collapse / Expand Actions -->\n<div *ngIf=\"actionType() === 'row-collapse'\" class=\"collapse-toggle-action\">\n <div class=\"collapse-icon\" (click)=\"onClick($event)\" [title]=\"currentState() ? 'Expand' : 'Collapse'\">\n <svg *ngIf=\"currentState()\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M7 10l5 5 5-5\" stroke=\"#0D1321\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <svg *ngIf=\"!currentState()\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M7 14l5-5 5 5\" stroke=\"#0D1321\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </div>\n</div>\n\n<!-- CDK Overlay Template for Dropdown Menu -->\n<ng-template #dropdownMenu>\n <div class=\"dropdown-menu-overlay\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let item of actionItems()\"\n (click)=\"onDropdownItemClick(item, $event)\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n >\n <ng-container *ngIf=\"item.children?.length; else noChildren\">\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n <span class=\"submenu-arrow\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"#0D1321\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n\n <!-- DYNAMIC SUBMENU -->\n <div class=\"dropdown-submenu\" *ngIf=\"item.showSubmenu\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let child of item.children\"\n [ngClass]=\"{ disabled: isDisabled(child) }\"\n (click)=\"onDropdownItemClick(child, $event)\"\n >\n <span class=\"dropdown-icon\" *ngIf=\"child.icon\">\n <img [src]=\"child.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ child.label }}</span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noChildren>\n <span class=\"dropdown-icon\" *ngIf=\"item.icon\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n </ng-template>\n </div>\n </div>\n</ng-template>\n", styles: [".actions-cell-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item:active:not(.disabled){transform:scale(.95)}.action-item.disabled{opacity:.5;cursor:not-allowed}.action-item.disabled:hover{background-color:transparent;transform:none}.action-icon{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-actions{position:relative}.dropdown-menu-overlay{width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1000}.dropdown-menu-item.disabled{color:#aaa;cursor:not-allowed}.dropdown-menu-item:hover:not(.disabled),.dropdown-menu-item.has-submenu:hover{background:#f5f5f5}.dropdown-menu-item{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item .dropdown-label{flex:1;margin-left:8px}.dropdown-menu-item .submenu-arrow{margin-left:auto;width:16px;height:16px}.dropdown-submenu{position:absolute;top:0;min-width:132px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu{left:100%;margin-left:4px}.submenu-arrow{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled{color:#181f33;filter:grayscale(100%) opacity(.3);cursor:not-allowed}.checkbox-actions{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.collapse-icon{cursor:pointer}\n"] }]
|
|
379
|
+
}], () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }], { dropdownMenu: [{
|
|
379
380
|
type: ViewChild,
|
|
380
381
|
args: ['dropdownMenu', { static: false }]
|
|
381
382
|
}], dropdownTrigger: [{
|
|
@@ -386,4 +387,4 @@ export class ActionsCellComponent {
|
|
|
386
387
|
args: ["document:click"]
|
|
387
388
|
}] }); })();
|
|
388
389
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionsCellComponent, { className: "ActionsCellComponent" }); })();
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL2FjdGlvbnMtY2VsbC9hY3Rpb25zLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvYWN0aW9ucy1jZWxsL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBYyxTQUFTLEVBQTBFLE1BQU0sZUFBZSxDQUFDO0FBQzVMLE9BQU8sRUFBRSxzQkFBc0IsRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7SUNDakQsK0JBS0M7SUFEQyxvTkFBUyxxQ0FBMkIsS0FBQztJQUVyQywwQkFBb0U7SUFDdEUsaUJBQU07Ozs7SUFKSixnRkFBMEM7SUFHckMsY0FBaUI7SUFBQyxBQUFsQixvREFBaUIsc0JBQW1COzs7SUFQN0MsOEJBQTREO0lBQzFELDJFQUtDO0lBR0gsaUJBQU07OztJQVBlLGNBQWdCO0lBQUEsQUFBaEIsNENBQWdCLHNDQUFzQjs7OztJQVd6RCxBQURGLCtCQUFnRSxpQkFDdUM7SUFBdEQsbUxBQVMsNkJBQXNCLEtBQUM7O0lBQzdFLCtCQUE0RDtJQUcxRCxBQURBLEFBREEsNkJBQTJDLGlCQUNDLGlCQUNBO0lBR2xELEFBREUsQUFERSxpQkFBTSxFQUNGLEVBQ0Y7Ozs7SUFJSixBQURGLCtCQUFnRSx1QkFDOEQ7SUFBckYsd01BQWUsc0JBQWUsS0FBQztJQUN4RSxBQUQrSCxpQkFBZSxFQUN4STs7O0lBRFUsY0FBd0I7SUFBaUMsQUFBekQsNkNBQXdCLDBF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QUE3QixrREFBNkI7WUFZN0IsY0FBK0I7WUFBL0Isb0RBQStCO1lBVy9CLGNBQStCO1lBQS9CLG9EQUErQjtZQU1qQyxjQUFtQztZQUFuQyx3REFBbUM7OztpRkRyQjVCLG9CQUFvQjtjQUxoQyxTQUFTOzJCQUNFLGtCQUFrQjt1RUFLbkIsUUFBUTtrQkFBaEIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUVJLFdBQVc7a0JBQXBCLE1BQU07WUFFdUMsWUFBWTtrQkFBekQsU0FBUzttQkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ0ssZUFBZTtrQkFBL0QsU0FBUzttQkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUEyRS9DLGVBQWU7a0JBRGQsWUFBWTttQkFBQyxnQkFBZ0I7O2tGQWpGbkIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBPbkRlc3Ryb3ksIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29ubmVjdGlvblBvc2l0aW9uUGFpciwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgQWN0aW9uSXRlbSB9IGZyb20gXCIuLi90YWJsZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy1hY3Rpb25zLWNlbGxcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9hY3Rpb25zLWNlbGwuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi9hY3Rpb25zLWNlbGwuY29tcG9uZW50LmNzc1wiXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbnNDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBjZWxsRGF0YTtcbiAgQElucHV0KCkgY29uZmlnO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpdGVtPzogQWN0aW9uSXRlbTsgZGF0YT86IGFueSwgYWN0aW9uVHlwZT86IHN0cmluZywgdmFsdWU/OiBhbnkgfT4oKTtcblxuICBAVmlld0NoaWxkKCdkcm9wZG93bk1lbnUnLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJvcGRvd25NZW51OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdkcm9wZG93blRyaWdnZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJvcGRvd25UcmlnZ2VyOiBFbGVtZW50UmVmO1xuXG4gIGlzRHJvcGRvd25PcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIGFjdGlvbkl0ZW1zOiBBY3Rpb25JdGVtW10gPSBbXTtcbiAgYWN0aW9uVHlwZTogXCJpbmxpbmVcIiB8IFwiZHJvcGRvd25cIiB8IFwiY2hlY2tib3hcIiB8IFwicm93LWNvbGxhcHNlXCIgPSBcImlubGluZVwiO1xuICBhY3Rpb24/OiAoZGF0YTogYW55KSA9PiB2b2lkO1xuICBkYXRhOiBhbnk7XG4gIGRpc2FibGU6IChkYXRhOiBhbnkpID0+IGJvb2xlYW47XG4gIGN1cnJlbnRTdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9zdHlsZTogYW55ID0ge307XG4gIGNvbnRhaW5lclN0eWxlOiBhbnkgPSB7fTtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnKSB7XG4gICAgICB0aGlzLmFjdGlvbkl0ZW1zID0gdGhpcy5jb25maWcuYWN0aW9uSXRlbXM7XG4gICAgICB0aGlzLmFjdGlvblR5cGUgPSB0aGlzLmNvbmZpZy5hY3Rpb25UeXBlO1xuICAgICAgdGhpcy5fc3R5bGUgPSB0aGlzLmNvbmZpZy5zdHlsZTtcbiAgICAgIHRoaXMuYWN0aW9uID0gdGhpcy5jb25maWcuYWN0aW9uO1xuICAgICAgdGhpcy5kaXNhYmxlID0gdGhpcy5jb25maWcuZGlzYWJsZTtcbiAgICAgIHRoaXMucHJvY2Vzc1N0eWxlKCk7XG4gICAgfVxuICBcbiAgICBpZiAodGhpcy5jZWxsRGF0YSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZGVmYXVsdFN0YXRlczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7XG4gICAgICAgICdjaGVja2JveCc6IGZhbHNlLFxuICAgICAgICAncm93LWNvbGxhcHNlJzogdHJ1ZSxcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5hY3Rpb25UeXBlIGluIGRlZmF1bHRTdGF0ZXMpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U3RhdGUgPSB0eXBlb2YgdGhpcy5jZWxsRGF0YSA9PT0gJ2Jvb2xlYW4nID8gdGhpcy5jZWxsRGF0YSA6IGRlZmF1bHRTdGF0ZXNbdGhpcy5hY3Rpb25UeXBlXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuY2VsbERhdGE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NTdHlsZSgpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgd2lkdGggZnJvbSBzdHlsZSB0byBhdm9pZCBjb25mbGljdHMgd2l0aCB0YWJsZSBjb2x1bW4gd2lkdGhcbiAgICBjb25zdCB7IHdpZHRoLCAuLi5yZXN0U3R5bGUgfSA9IHRoaXMuX3N0eWxlO1xuICAgIHRoaXMuY29udGFpbmVyU3R5bGUgPSByZXN0U3R5bGU7XG4gIH1cblxuICBvbkFjdGlvbkNsaWNrKGl0ZW06IEFjdGlvbkl0ZW0sIGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgLy8gQ2hlY2sgcGVybWlzc2lvbnMgYmVmb3JlIGV4ZWN1dGluZyBhY3Rpb25cbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKGl0ZW0pKSByZXR1cm47XG5cbiAgICAvLyBFeGVjdXRlIGFjdGlvbiBvbmx5IGlmIHBlcm1pdHRlZFxuICAgIGlmIChpdGVtLmFjdGlvbikge1xuICAgICAgaXRlbS5hY3Rpb24odGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoeyBpdGVtIH0pO1xuICB9XG5cbiAgdHJhY2tCeUFjdGlvbihpbmRleDogbnVtYmVyLCBpdGVtOiBBY3Rpb25JdGVtKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuXG4gIGlzU3ZnRmlsZShpY29uUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpY29uUGF0aCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBpY29uUGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiLnN2Z1wiKSB8fCBpY29uUGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiYXNzZXRzL2ljb25zL1wiKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiKVxuICBvbkRvY3VtZW50Q2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXNEcm9wZG93bk9wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZURyb3Bkb3duKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIFxuICAgIGlmICh0aGlzLmlzRHJvcGRvd25PcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW5Ecm9wZG93bigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJvcGRvd25UcmlnZ2VyIHx8ICF0aGlzLmRyb3Bkb3duTWVudSkgcmV0dXJuO1xuXG4gICAgLy8gQ2xvc2UgYWxsIHN1Ym1lbnVzIHdoZW4gb3BlbmluZyBtYWluIG1lbnVcbiAgICB0aGlzLmFjdGlvbkl0ZW1zLmZvckVhY2goKGl0ZW06IGFueSkgPT4gKGl0ZW0uc2hvd1N1Ym1lbnUgPSBmYWxzZSkpO1xuXG4gICAgY29uc3QgcG9zaXRpb25zID0gdGhpcy5nZXREcm9wZG93blBvc2l0aW9ucygpO1xuICAgIFxuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5kcm9wZG93blRyaWdnZXIpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKHBvc2l0aW9ucylcbiAgICAgICAgLndpdGhQdXNoKHRydWUpLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICAgIH0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5kcm9wZG93bk1lbnUsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmlzRHJvcGRvd25PcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcm9wZG93blBvc2l0aW9ucygpOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10ge1xuICAgIC8vIFVzZSBDREsgT3ZlcmxheSdzIGZsZXhpYmxlIHBvc2l0aW9uaW5nIC0gaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGNob29zZSB0aGUgYmVzdCBwb3NpdGlvblxuICAgIHJldHVybiBbXG4gICAgICAvLyBQcmltYXJ5IHBvc2l0aW9uOiBiZWxvdyBhbmQgYWxpZ25lZCB0byBlbmQgKHJpZ2h0KVxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXG4gICAgICAgIHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdib3R0b20nIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICAgICAgMCwgNFxuICAgICAgKSxcbiAgICAgIC8vIEZhbGxiYWNrIHBvc2l0aW9uOiBhYm92ZSBhbmQgYWxpZ25lZCB0byBlbmQgKHJpZ2h0KVxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXG4gICAgICAgIHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICd0b3AnIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2JvdHRvbScgfSxcbiAgICAgICAgMCwgLTRcbiAgICAgICksXG4gICAgICAvLyBGYWxsYmFjayBwb3NpdGlvbjogYmVsb3cgYW5kIGFsaWduZWQgdG8gc3RhcnQgKGxlZnQpXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcihcbiAgICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJyB9LFxuICAgICAgICB7IG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICAgICAgMCwgNFxuICAgICAgKSxcbiAgICAgIC8vIEZhbGxiYWNrIHBvc2l0aW9uOiBhYm92ZSBhbmQgYWxpZ25lZCB0byBzdGFydCAobGVmdClcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKFxuICAgICAgICB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJyB9LFxuICAgICAgICAwLCAtNFxuICAgICAgKVxuICAgIF07XG4gIH1cblxuICBvbkRyb3Bkb3duSXRlbUNsaWNrKGl0ZW06IGFueSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKGl0ZW0pKSByZXR1cm47XG5cbiAgICBpZiAoaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgLy8gVG9nZ2xlIHN1Ym1lbnVcbiAgICAgIGl0ZW0uc2hvd1N1Ym1lbnUgPSAhaXRlbS5zaG93U3VibWVudTtcbiAgICAgIC8vIE9wdGlvbmFsbHkgY2xvc2Ugb3RoZXIgc3VibWVudXNcbiAgICAgIHRoaXMuYWN0aW9uSXRlbXMuZm9yRWFjaCgoaTogYW55KSA9PiB7XG4gICAgICAgIGlmIChpICE9PSBpdGVtKSBpLnNob3dTdWJtZW51ID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSGFuZGxlIGFjdGlvblxuICAgICAgaWYgKGl0ZW0uYWN0aW9uKSBpdGVtLmFjdGlvbih0aGlzLmRhdGEpO1xuICAgICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KHsgaXRlbSwgZGF0YTogdGhpcy5kYXRhIH0pO1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7IC8vIE9ubHkgY2xvc2UgaWYgYWN0aW9uIHdhcyBleGVjdXRlZFxuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWR7XG4gICAgdGhpcy5jdXJyZW50U3RhdGUgPSAhdGhpcy5jdXJyZW50U3RhdGU7XG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KHsgXG4gICAgICBhY3Rpb25UeXBlOiB0aGlzLmFjdGlvblR5cGUsXG4gICAgICB2YWx1ZTogdGhpcy5jdXJyZW50U3RhdGVcbiAgICB9KTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQoaXRlbTogQWN0aW9uSXRlbSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgaXRlbS5kaXNhYmxlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiBpdGVtLmRpc2FibGUodGhpcy5kYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIFxufVxuIiwiPGRpdiBjbGFzcz1cImFjdGlvbnMtY2VsbC1jb250YWluZXJcIiBbbmdTdHlsZV09XCJjb250YWluZXJTdHlsZVwiPlxuICA8IS0tIElubGluZSBBY3Rpb25zIC0tPlxuICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2lubGluZSdcIiBjbGFzcz1cImlubGluZS1hY3Rpb25zXCI+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aW9uSXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlBY3Rpb25cIlxuICAgICAgY2xhc3M9XCJhY3Rpb24taXRlbVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0pIH1cIlxuICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2soaXRlbSwgJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaWNvblwiIFthbHRdPVwiaXRlbS5sYWJlbFwiIGNsYXNzPVwiYWN0aW9uLWljb24tc3ZnXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBEcm9wZG93biBBY3Rpb25zIC0tPlxuICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiIGNsYXNzPVwiZHJvcGRvd24tYWN0aW9uc1wiPlxuICAgIDxkaXYgI2Ryb3Bkb3duVHJpZ2dlciBjbGFzcz1cImRyb3Bkb3duLXRyaWdnZXJcIiAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oJGV2ZW50KVwiIHRpdGxlPVwiTW9yZSBhY3Rpb25zXCI+XG4gICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICA8Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjRcIiByPVwiMlwiIGZpbGw9XCIjMzMzXCIgLz5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIxMFwiIHI9XCIyXCIgZmlsbD1cIiMzMzNcIiAvPlxuICAgICAgICA8Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjE2XCIgcj1cIjJcIiBmaWxsPVwiIzMzM1wiIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBDaGVja2JveCBBY3Rpb25zIC0tPlxuICA8ZGl2ICpuZ0lmPVwiYWN0aW9uVHlwZSA9PT0gJ2NoZWNrYm94J1wiIGNsYXNzPVwiY2hlY2tib3gtYWN0aW9uc1wiPlxuICAgIDxtaXMtY2hlY2tib3ggW2NoZWNrZWRdPVwiY3VycmVudFN0YXRlXCIgKHZhbHVlQ2hhbmdlKT1cIm9uQ2xpY2soJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlID8gZGlzYWJsZShjdXJyZW50U3RhdGUpIDogZmFsc2VcIj4gPC9taXMtY2hlY2tib3g+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gQ29sbGFwc2UgLyBFeHBhbmQgQWN0aW9ucyAtLT5cbjxkaXYgKm5nSWY9XCJhY3Rpb25UeXBlID09PSAncm93LWNvbGxhcHNlJ1wiIGNsYXNzPVwiY29sbGFwc2UtdG9nZ2xlLWFjdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwiY29sbGFwc2UtaWNvblwiIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIiBbdGl0bGVdPVwiY3VycmVudFN0YXRlID8gJ0V4cGFuZCcgOiAnQ29sbGFwc2UnXCI+XG4gICAgPHN2ZyAqbmdJZj1cImN1cnJlbnRTdGF0ZVwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNyAxMGw1IDUgNS01XCIgc3Ryb2tlPVwiIzBEMTMyMVwiIHN0cm9rZS13aWR0aD1cIjJcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgPC9zdmc+XG4gICAgPHN2ZyAqbmdJZj1cIiFjdXJyZW50U3RhdGVcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICA8cGF0aCBkPVwiTTcgMTRsNS01IDUgNVwiIHN0cm9rZT1cIiMwRDEzMjFcIiBzdHJva2Utd2lkdGg9XCIyXCIgZmlsbD1cIm5vbmVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgIDwvc3ZnPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIENESyBPdmVybGF5IFRlbXBsYXRlIGZvciBEcm9wZG93biBNZW51IC0tPlxuPG5nLXRlbXBsYXRlICNkcm9wZG93bk1lbnU+XG4gIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51LW92ZXJsYXlcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUtaXRlbVwiXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhY3Rpb25JdGVtc1wiXG4gICAgICAoY2xpY2spPVwib25Ecm9wZG93bkl0ZW1DbGljayhpdGVtLCAkZXZlbnQpXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoaXRlbSkgfVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uY2hpbGRyZW4/Lmxlbmd0aDsgZWxzZSBub0NoaWxkcmVuXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24taWNvblwiICpuZ0lmPVwiaXRlbS5pY29uXCI+XG4gICAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaWNvblwiIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3VibWVudS1hcnJvd1wiPlxuICAgICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTkgNkwxNSAxMkw5IDE4XCIgc3Ryb2tlPVwiIzBEMTMyMVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPCEtLSBEWU5BTUlDIFNVQk1FTlUgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1zdWJtZW51XCIgKm5nSWY9XCJpdGVtLnNob3dTdWJtZW51XCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51LWl0ZW1cIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW5cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogaXNEaXNhYmxlZChjaGlsZCkgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Ecm9wZG93bkl0ZW1DbGljayhjaGlsZCwgJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1pY29uXCIgKm5nSWY9XCJjaGlsZC5pY29uXCI+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJjaGlsZC5pY29uXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj57eyBjaGlsZC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNub0NoaWxkcmVuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvblwiPlxuICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLmljb25cIiAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
390
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL2FjdGlvbnMtY2VsbC9hY3Rpb25zLWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvYWN0aW9ucy1jZWxsL2FjdGlvbnMtY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFlBQVksRUFBYyxTQUFTLEVBQTRDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxzQkFBc0IsRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7SUNDakQsK0JBS0M7SUFEQyxvTkFBUyxxQ0FBMkIsS0FBQztJQUVyQywwQkFBb0U7SUFDdEUsaUJBQU07Ozs7SUFKSixnRkFBMEM7SUFHckMsY0FBaUI7SUFBQyxBQUFsQixvREFBaUIsc0JBQW1COzs7SUFQN0MsOEJBQThEO0lBQzVELDJFQUtDO0lBR0gsaUJBQU07OztJQVBlLGNBQWtCO0lBQUEsQUFBbEIsOENBQWtCLHNDQUFzQjs7OztJQVczRCxBQURGLCtCQUFrRSxpQkFDcUM7SUFBdEQsbUxBQVMsNkJBQXNCLEtBQUM7O0lBQzdFLCtCQUE0RDtJQUcxRCxBQURBLEFBREEsNkJBQTJDLGlCQUNDLGlCQUNBO0lBR2xELEFBREUsQUFERSxpQkFBTSxFQUNGLEVBQ0Y7Ozs7SUFJSixBQURGLCtCQUFrRSx1QkFDNEQ7SUFBbkYsd01BQWUsc0JBQWUsS0FBQztJQUMxRSxBQUQrSCxpQkFBZSxFQUN4STs7O0lBRFUsY0FBMEI7SUFBaUMsQUFBM0QsK0NBQTBCLHdFQUFtRjs7OztJQU8zSCwrQkFBdUU7SUFDckUsMkJBQXVIO0lBQ3pILGlCQUFNOzs7O0lBQ04sK0JBQXdFO0lBQ3RFLDJCQUF1SDtJQUN6SCxpQkFBTTs7OztJQU5SLEFBREYsK0JBQTRFLGNBQzRCO0lBQTNFLG1MQUFTLHNCQUFlLEtBQUM7SUFJbEQsQUFIQSxpRkFBdUUsb0VBR0M7SUFJNUUsQUFERSxpQkFBTSxFQUNGOzs7SUFSaUQsY0FBZ0Q7SUFBaEQscUVBQWdEO0lBQzdGLGNBQW9CO0lBQXBCLDRDQUFvQjtJQUdwQixjQUFxQjtJQUFyQiw2Q0FBcUI7OztJQWdCdkIsZ0NBQThDO0lBQzVDLDBCQUF5QjtJQUMzQixpQkFBTzs7O0lBREEsY0FBaUI7SUFBakIsb0RBQWlCOzs7SUFpQnBCLGdDQUErQztJQUM3QywwQkFBMEI7SUFDNUIsaUJBQU87OztJQURBLGNBQWtCO0lBQWxCLHNEQUFrQjs7OztJQVAzQiwrQkFLQztJQURDLHlQQUFTLDZDQUFrQyxLQUFDO0lBRTVDLHVIQUErQztJQUcvQyxnQ0FBNkI7SUFBQSxZQUFpQjtJQUNoRCxBQURnRCxpQkFBTyxFQUNqRDs7OztJQVBKLGtGQUEyQztJQUdkLGNBQWdCO0lBQWhCLHFDQUFnQjtJQUdoQixlQUFpQjtJQUFqQixxQ0FBaUI7OztJQVZsRCwrQkFBdUQ7SUFDckQsK0dBS0M7SUFNSCxpQkFBTTs7O0lBVGdCLGNBQWdCO0lBQWhCLDBDQUFnQjs7O0lBZnhDLDZCQUE2RDtJQUMzRCwyR0FBOEM7SUFHOUMsZ0NBQTZCO0lBQUEsWUFBZ0I7SUFBQSxpQkFBTztJQUNwRCxnQ0FBNEI7O0lBQzFCLCtCQUE0RDtJQUMxRCwyQkFBNkc7SUFFakgsQUFERSxpQkFBTSxFQUNEO0lBR1AseUdBQXVEOzs7O0lBWDFCLGNBQWU7SUFBZixtQ0FBZTtJQUdmLGVBQWdCO0lBQWhCLG1DQUFnQjtJQVFkLGVBQXNCO0lBQXRCLDBDQUFzQjs7O0lBZ0JyRCxnQ0FBOEM7SUFDNUMsMEJBQXlCO0lBQzNCLGlCQUFPOzs7SUFEQSxjQUFpQjtJQUFqQixvREFBaUI7OztJQUR4QiwwR0FBOEM7SUFHOUMsZ0NBQTZCO0lBQUEsWUFBZ0I7SUFBQSxpQkFBTzs7O0lBSHZCLG1DQUFlO0lBR2YsZUFBZ0I7SUFBaEIsbUNBQWdCOzs7O0lBckNqRCwrQkFLQztJQUZDLDROQUFTLDJDQUFpQyxLQUFDO0lBOEIzQyxBQTNCQSw0R0FBNkQsNkhBMkJwQztJQU0zQixpQkFBTTs7Ozs7SUFuQ0osZ0ZBQTBDO0lBRTNCLGNBQTZCO0lBQUEsQUFBN0IsZ0ZBQTZCLDRCQUFlOzs7SUFQL0QsK0JBQW1DO0lBQ2pDLG9GQUtDO0lBbUNILGlCQUFNOzs7SUF0Q2UsY0FBZ0I7SUFBaEIsOENBQWdCOztBRHJDdkMsTUFBTSxPQUFPLG9CQUFvQjtJQW9CL0IsWUFDVSxPQUFnQixFQUNoQixnQkFBa0M7UUFEbEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckI1QyxhQUFRLEdBQUcsS0FBSyxFQUFPLENBQUM7UUFDeEIsV0FBTSxHQUFHLEtBQUssRUFBTyxDQUFDO1FBRXRCLGdCQUFXLEdBQUcsTUFBTSxFQUF1RSxDQUFDO1FBSzVGLG1CQUFjLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsTUFBTSxDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLGVBQVUsR0FBRyxNQUFNLENBQXNELFFBQVEsQ0FBQyxDQUFDO1FBQ25GLFdBQU0sR0FBRyxNQUFNLENBQW9DLFNBQVMsQ0FBQyxDQUFDO1FBQzlELFNBQUksR0FBRyxNQUFNLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDOUIsWUFBTyxHQUFHLE1BQU0sQ0FBdUMsU0FBUyxDQUFDLENBQUM7UUFDbEUsaUJBQVksR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDOUIsV0FBTSxHQUFHLE1BQU0sQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUNqQyxtQkFBYyxHQUFHLE1BQU0sQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUN6QixlQUFVLEdBQXNCLElBQUksQ0FBQztJQUsxQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzdCLE1BQU0sYUFBYSxHQUE0QjtnQkFDN0MsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLGNBQWMsRUFBRSxJQUFJO2FBQ3JCLENBQUM7WUFDRixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25ILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLHFFQUFxRTtRQUNyRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBZ0IsRUFBRSxLQUFZO1FBQzFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4Qiw0Q0FBNEM7UUFDNUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU87UUFFbEMsbUNBQW1DO1FBQ25DLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWEsRUFBRSxJQUFnQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFnQjtRQUN4QixJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzVCLE9BQU8sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFHRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsS0FBWTtRQUN6QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBRXhELDRDQUE0QztRQUM1QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUV0RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUU5QyxNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUN0QyxXQUFXLEVBQUUsSUFBSTtZQUNqQixhQUFhLEVBQUUsa0NBQWtDO1lBQ2pELGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPO2lCQUMzQixRQUFRLEVBQUU7aUJBQ1YsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztpQkFDekMsYUFBYSxDQUFDLFNBQVMsQ0FBQztpQkFDeEIsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUU7U0FDM0QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLDBGQUEwRjtRQUMxRixPQUFPO1lBQ0wscURBQXFEO1lBQ3JELElBQUksc0JBQXNCLENBQ3hCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQ3JDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQ3BDLENBQUMsRUFBRSxDQUFDLENBQ0w7WUFDRCxzREFBc0Q7WUFDdEQsSUFBSSxzQkFBc0IsQ0FDeEIsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFDbEMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFDdkMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNOO1lBQ0QsdURBQXVEO1lBQ3ZELElBQUksc0JBQXNCLENBQ3hCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQ3ZDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQ3RDLENBQUMsRUFBRSxDQUFDLENBQ0w7WUFDRCx1REFBdUQ7WUFDdkQsSUFBSSxzQkFBc0IsQ0FDeEIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFDcEMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFDekMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNOO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFTLEVBQUUsS0FBWTtRQUN6QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU87UUFFbEMsSUFBSSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzNCLGlCQUFpQjtZQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNyQyxrQ0FBa0M7WUFDbEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsS0FBSyxJQUFJO29CQUFFLENBQUMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixnQkFBZ0I7WUFDaEIsSUFBSSxJQUFJLENBQUMsTUFBTTtnQkFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLG9DQUFvQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFXO1FBQ2pCLG9FQUFvRTtRQUNwRSxNQUFNLFFBQVEsR0FBRyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDMUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDN0IsS0FBSyxFQUFFLFFBQVE7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFnQjtRQUN6QixJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztxSEF6TVUsb0JBQW9CO29FQUFwQixvQkFBb0I7Ozs7Ozs7O1lBQXBCLHlGQUFBLHFCQUFpQixpQ0FBRzs7WUNWakMsOEJBQWlFO1lBeUIvRCxBQVhBLEFBWkEscUVBQThELHdEQVlJLHdEQVdBO1lBR3BFLGlCQUFNO1lBZU4sQUFaQSxxRUFBNEUseUdBWWpEOztZQTNDUyw4Q0FBNEI7WUFFeEQsY0FBK0I7WUFBL0Isb0RBQStCO1lBWS9CLGNBQWlDO1lBQWpDLHNEQUFpQztZQVdqQyxjQUFpQztZQUFqQyxzREFBaUM7WUFNbkMsY0FBcUM7WUFBckMsMERBQXFDOzs7aUZEckI5QixvQkFBb0I7Y0FMaEMsU0FBUzsyQkFDRSxrQkFBa0I7dUVBVWtCLFlBQVk7a0JBQXpELFNBQVM7bUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNLLGVBQWU7a0JBQS9ELFNBQVM7bUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBMkUvQyxlQUFlO2tCQURkLFlBQVk7bUJBQUMsZ0JBQWdCOztrRkFqRm5CLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIE9uRGVzdHJveSwgaW5wdXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IEFjdGlvbkl0ZW0gfSBmcm9tIFwiLi4vdGFibGUuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtYWN0aW9ucy1jZWxsXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsOiBcIi4vYWN0aW9ucy1jZWxsLmNvbXBvbmVudC5jc3NcIlxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25zQ2VsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY2VsbERhdGEgPSBpbnB1dDxhbnk+KCk7XG4gIGNvbmZpZyA9IGlucHV0PGFueT4oKTtcblxuICBhY3Rpb25DbGljayA9IG91dHB1dDx7IGl0ZW0/OiBBY3Rpb25JdGVtOyBkYXRhPzogYW55LCBhY3Rpb25UeXBlPzogc3RyaW5nLCB2YWx1ZT86IGFueSB9PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duTWVudScsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93bk1lbnU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duVHJpZ2dlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93blRyaWdnZXI6IEVsZW1lbnRSZWY7XG5cbiAgaXNEcm9wZG93bk9wZW4gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBhY3Rpb25JdGVtcyA9IHNpZ25hbDxBY3Rpb25JdGVtW10+KFtdKTtcbiAgYWN0aW9uVHlwZSA9IHNpZ25hbDxcImlubGluZVwiIHwgXCJkcm9wZG93blwiIHwgXCJjaGVja2JveFwiIHwgXCJyb3ctY29sbGFwc2VcIj4oXCJpbmxpbmVcIik7XG4gIGFjdGlvbiA9IHNpZ25hbDwoKGRhdGE6IGFueSkgPT4gdm9pZCkgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGRhdGEgPSBzaWduYWw8YW55Pih1bmRlZmluZWQpO1xuICBkaXNhYmxlID0gc2lnbmFsPCgoZGF0YTogYW55KSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY3VycmVudFN0YXRlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBfc3R5bGUgPSBzaWduYWw8YW55Pih7fSk7XG4gIGNvbnRhaW5lclN0eWxlID0gc2lnbmFsPGFueT4oe30pO1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb25maWcoKSkge1xuICAgICAgdGhpcy5hY3Rpb25JdGVtcy5zZXQodGhpcy5jb25maWcoKS5hY3Rpb25JdGVtcyk7XG4gICAgICB0aGlzLmFjdGlvblR5cGUuc2V0KHRoaXMuY29uZmlnKCkuYWN0aW9uVHlwZSk7XG4gICAgICB0aGlzLl9zdHlsZS5zZXQodGhpcy5jb25maWcoKS5zdHlsZSk7XG4gICAgICB0aGlzLmFjdGlvbi5zZXQodGhpcy5jb25maWcoKS5hY3Rpb24pO1xuICAgICAgdGhpcy5kaXNhYmxlLnNldCh0aGlzLmNvbmZpZygpLmRpc2FibGUpO1xuICAgICAgdGhpcy5wcm9jZXNzU3R5bGUoKTtcbiAgICB9XG4gIFxuICAgIGlmICh0aGlzLmNlbGxEYXRhKCkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRTdGF0ZXM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge1xuICAgICAgICAnY2hlY2tib3gnOiBmYWxzZSxcbiAgICAgICAgJ3Jvdy1jb2xsYXBzZSc6IHRydWUsXG4gICAgICB9O1xuICAgICAgaWYgKHRoaXMuYWN0aW9uVHlwZSgpIGluIGRlZmF1bHRTdGF0ZXMpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U3RhdGUuc2V0KHR5cGVvZiB0aGlzLmNlbGxEYXRhKCkgPT09ICdib29sZWFuJyA/IHRoaXMuY2VsbERhdGEoKSA6IGRlZmF1bHRTdGF0ZXNbdGhpcy5hY3Rpb25UeXBlKCldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGF0YS5zZXQodGhpcy5jZWxsRGF0YSgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1N0eWxlKCk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSB3aWR0aCBmcm9tIHN0eWxlIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIHRhYmxlIGNvbHVtbiB3aWR0aFxuICAgIGNvbnN0IHsgd2lkdGgsIC4uLnJlc3RTdHlsZSB9ID0gdGhpcy5fc3R5bGUoKTtcbiAgICB0aGlzLmNvbnRhaW5lclN0eWxlLnNldChyZXN0U3R5bGUpO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhpdGVtOiBBY3Rpb25JdGVtLCBldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIC8vIENoZWNrIHBlcm1pc3Npb25zIGJlZm9yZSBleGVjdXRpbmcgYWN0aW9uXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZChpdGVtKSkgcmV0dXJuO1xuXG4gICAgLy8gRXhlY3V0ZSBhY3Rpb24gb25seSBpZiBwZXJtaXR0ZWRcbiAgICBpZiAoaXRlbS5hY3Rpb24pIHtcbiAgICAgIGl0ZW0uYWN0aW9uKHRoaXMuZGF0YSgpKTtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoeyBpdGVtIH0pO1xuICB9XG5cbiAgdHJhY2tCeUFjdGlvbihpbmRleDogbnVtYmVyLCBpdGVtOiBBY3Rpb25JdGVtKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuXG4gIGlzU3ZnRmlsZShpY29uUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpY29uUGF0aCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBpY29uUGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiLnN2Z1wiKSB8fCBpY29uUGF0aC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiYXNzZXRzL2ljb25zL1wiKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiKVxuICBvbkRvY3VtZW50Q2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXNEcm9wZG93bk9wZW4oKSkge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgXG4gICAgaWYgKHRoaXMuaXNEcm9wZG93bk9wZW4oKSkge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbkRyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcGVuRHJvcGRvd24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRyb3Bkb3duVHJpZ2dlciB8fCAhdGhpcy5kcm9wZG93bk1lbnUpIHJldHVybjtcblxuICAgIC8vIENsb3NlIGFsbCBzdWJtZW51cyB3aGVuIG9wZW5pbmcgbWFpbiBtZW51XG4gICAgdGhpcy5hY3Rpb25JdGVtcygpLmZvckVhY2goKGl0ZW06IGFueSkgPT4gKGl0ZW0uc2hvd1N1Ym1lbnUgPSBmYWxzZSkpO1xuXG4gICAgY29uc3QgcG9zaXRpb25zID0gdGhpcy5nZXREcm9wZG93blBvc2l0aW9ucygpO1xuICAgIFxuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5kcm9wZG93blRyaWdnZXIpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKHBvc2l0aW9ucylcbiAgICAgICAgLndpdGhQdXNoKHRydWUpLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICAgIH0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5kcm9wZG93bk1lbnUsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmlzRHJvcGRvd25PcGVuLnNldCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5pc0Ryb3Bkb3duT3Blbi5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcm9wZG93blBvc2l0aW9ucygpOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10ge1xuICAgIC8vIFVzZSBDREsgT3ZlcmxheSdzIGZsZXhpYmxlIHBvc2l0aW9uaW5nIC0gaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGNob29zZSB0aGUgYmVzdCBwb3NpdGlvblxuICAgIHJldHVybiBbXG4gICAgICAvLyBQcmltYXJ5IHBvc2l0aW9uOiBiZWxvdyBhbmQgYWxpZ25lZCB0byBlbmQgKHJpZ2h0KVxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXG4gICAgICAgIHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdib3R0b20nIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICAgICAgMCwgNFxuICAgICAgKSxcbiAgICAgIC8vIEZhbGxiYWNrIHBvc2l0aW9uOiBhYm92ZSBhbmQgYWxpZ25lZCB0byBlbmQgKHJpZ2h0KVxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXG4gICAgICAgIHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICd0b3AnIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2JvdHRvbScgfSxcbiAgICAgICAgMCwgLTRcbiAgICAgICksXG4gICAgICAvLyBGYWxsYmFjayBwb3NpdGlvbjogYmVsb3cgYW5kIGFsaWduZWQgdG8gc3RhcnQgKGxlZnQpXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcihcbiAgICAgICAgeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJyB9LFxuICAgICAgICB7IG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcgfSxcbiAgICAgICAgMCwgNFxuICAgICAgKSxcbiAgICAgIC8vIEZhbGxiYWNrIHBvc2l0aW9uOiBhYm92ZSBhbmQgYWxpZ25lZCB0byBzdGFydCAobGVmdClcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKFxuICAgICAgICB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnIH0sXG4gICAgICAgIHsgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAnYm90dG9tJyB9LFxuICAgICAgICAwLCAtNFxuICAgICAgKVxuICAgIF07XG4gIH1cblxuICBvbkRyb3Bkb3duSXRlbUNsaWNrKGl0ZW06IGFueSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKGl0ZW0pKSByZXR1cm47XG5cbiAgICBpZiAoaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgLy8gVG9nZ2xlIHN1Ym1lbnVcbiAgICAgIGl0ZW0uc2hvd1N1Ym1lbnUgPSAhaXRlbS5zaG93U3VibWVudTtcbiAgICAgIC8vIE9wdGlvbmFsbHkgY2xvc2Ugb3RoZXIgc3VibWVudXNcbiAgICAgIHRoaXMuYWN0aW9uSXRlbXMoKS5mb3JFYWNoKChpOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGkgIT09IGl0ZW0pIGkuc2hvd1N1Ym1lbnUgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBIYW5kbGUgYWN0aW9uXG4gICAgICBpZiAoaXRlbS5hY3Rpb24pIGl0ZW0uYWN0aW9uKHRoaXMuZGF0YSgpKTtcbiAgICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7IGl0ZW0sIGRhdGE6IHRoaXMuZGF0YSgpIH0pO1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7IC8vIE9ubHkgY2xvc2UgaWYgYWN0aW9uIHdhcyBleGVjdXRlZFxuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2soZXZlbnQ/OiBhbnkpOiB2b2lke1xuICAgIC8vIEhhbmRsZSBjaGVja2JveCB2YWx1ZSAtIGV2ZW50IG1pZ2h0IGJlIHt2YWx1ZTogdHJ1ZX0gb3IganVzdCB0cnVlXG4gICAgY29uc3QgbmV3VmFsdWUgPSBldmVudCAmJiB0eXBlb2YgZXZlbnQgPT09ICdvYmplY3QnID8gZXZlbnQudmFsdWUgOiBldmVudDtcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZS5zZXQobmV3VmFsdWUpO1xuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7IFxuICAgICAgYWN0aW9uVHlwZTogdGhpcy5hY3Rpb25UeXBlKCksXG4gICAgICB2YWx1ZTogbmV3VmFsdWVcbiAgICB9KTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQoaXRlbTogQWN0aW9uSXRlbSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgaXRlbS5kaXNhYmxlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiBpdGVtLmRpc2FibGUodGhpcy5kYXRhKCkpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgXG59XG4iLCI8ZGl2IGNsYXNzPVwiYWN0aW9ucy1jZWxsLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cImNvbnRhaW5lclN0eWxlKClcIj5cbiAgPCEtLSBJbmxpbmUgQWN0aW9ucyAtLT5cbiAgPGRpdiAqbmdJZj1cImFjdGlvblR5cGUoKSA9PT0gJ2lubGluZSdcIiBjbGFzcz1cImlubGluZS1hY3Rpb25zXCI+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aW9uSXRlbXMoKTsgdHJhY2tCeTogdHJhY2tCeUFjdGlvblwiXG4gICAgICBjbGFzcz1cImFjdGlvbi1pdGVtXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoaXRlbSkgfVwiXG4gICAgICAoY2xpY2spPVwib25BY3Rpb25DbGljayhpdGVtLCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8aW1nIFtzcmNdPVwiaXRlbS5pY29uXCIgW2FsdF09XCJpdGVtLmxhYmVsXCIgY2xhc3M9XCJhY3Rpb24taWNvbi1zdmdcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIERyb3Bkb3duIEFjdGlvbnMgLS0+XG4gIDxkaXYgKm5nSWY9XCJhY3Rpb25UeXBlKCkgPT09ICdkcm9wZG93bidcIiBjbGFzcz1cImRyb3Bkb3duLWFjdGlvbnNcIj5cbiAgICA8ZGl2ICNkcm9wZG93blRyaWdnZXIgY2xhc3M9XCJkcm9wZG93bi10cmlnZ2VyXCIgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCRldmVudClcIiB0aXRsZT1cIk1vcmUgYWN0aW9uc1wiPlxuICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCI0XCIgcj1cIjJcIiBmaWxsPVwiIzMzM1wiIC8+XG4gICAgICAgIDxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiMTBcIiByPVwiMlwiIGZpbGw9XCIjMzMzXCIgLz5cbiAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIxNlwiIHI9XCIyXCIgZmlsbD1cIiMzMzNcIiAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2hlY2tib3ggQWN0aW9ucyAtLT5cbiAgPGRpdiAqbmdJZj1cImFjdGlvblR5cGUoKSA9PT0gJ2NoZWNrYm94J1wiIGNsYXNzPVwiY2hlY2tib3gtYWN0aW9uc1wiPlxuICAgIDxtaXMtY2hlY2tib3ggW2NoZWNrZWRdPVwiY3VycmVudFN0YXRlKClcIiAodmFsdWVDaGFuZ2UpPVwib25DbGljaygkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImRpc2FibGUoKSA/IGRpc2FibGUoKShkYXRhKCkpIDogZmFsc2VcIj4gPC9taXMtY2hlY2tib3g+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gQ29sbGFwc2UgLyBFeHBhbmQgQWN0aW9ucyAtLT5cbjxkaXYgKm5nSWY9XCJhY3Rpb25UeXBlKCkgPT09ICdyb3ctY29sbGFwc2UnXCIgY2xhc3M9XCJjb2xsYXBzZS10b2dnbGUtYWN0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2xsYXBzZS1pY29uXCIgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiIFt0aXRsZV09XCJjdXJyZW50U3RhdGUoKSA/ICdFeHBhbmQnIDogJ0NvbGxhcHNlJ1wiPlxuICAgIDxzdmcgKm5nSWY9XCJjdXJyZW50U3RhdGUoKVwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNyAxMGw1IDUgNS01XCIgc3Ryb2tlPVwiIzBEMTMyMVwiIHN0cm9rZS13aWR0aD1cIjJcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgPC9zdmc+XG4gICAgPHN2ZyAqbmdJZj1cIiFjdXJyZW50U3RhdGUoKVwiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgIDxwYXRoIGQ9XCJNNyAxNGw1LTUgNSA1XCIgc3Ryb2tlPVwiIzBEMTMyMVwiIHN0cm9rZS13aWR0aD1cIjJcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gQ0RLIE92ZXJsYXkgVGVtcGxhdGUgZm9yIERyb3Bkb3duIE1lbnUgLS0+XG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duTWVudT5cbiAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUtb3ZlcmxheVwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudS1pdGVtXCJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFjdGlvbkl0ZW1zKClcIlxuICAgICAgKGNsaWNrKT1cIm9uRHJvcGRvd25JdGVtQ2xpY2soaXRlbSwgJGV2ZW50KVwiXG4gICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBpc0Rpc2FibGVkKGl0ZW0pIH1cIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGg7IGVsc2Ugbm9DaGlsZHJlblwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWljb25cIiAqbmdJZj1cIml0ZW0uaWNvblwiPlxuICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLmljb25cIiAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInN1Ym1lbnUtYXJyb3dcIj5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk05IDZMMTUgMTJMOSAxOFwiIHN0cm9rZT1cIiMwRDEzMjFcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDwhLS0gRFlOQU1JQyBTVUJNRU5VIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tc3VibWVudVwiICpuZ0lmPVwiaXRlbS5zaG93U3VibWVudVwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudS1pdGVtXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBpdGVtLmNoaWxkcmVuXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoY2hpbGQpIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uRHJvcGRvd25JdGVtQ2xpY2soY2hpbGQsICRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24taWNvblwiICpuZ0lmPVwiY2hpbGQuaWNvblwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiY2hpbGQuaWNvblwiIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWxhYmVsXCI+e3sgY2hpbGQubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9DaGlsZHJlbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1pY29uXCIgKm5nSWY9XCJpdGVtLmljb25cIj5cbiAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbS5pY29uXCIgLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWxhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,19 +1,27 @@
|
|
|
1
|
-
import { Directive,
|
|
1
|
+
import { Directive, input, effect } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class CustomTableCellDirective {
|
|
4
|
-
set customComponent(value) {
|
|
5
|
-
this.component = value;
|
|
6
|
-
this.createComponent();
|
|
7
|
-
}
|
|
8
|
-
set data(value) {
|
|
9
|
-
this.cellData = value;
|
|
10
|
-
if (this.ref) {
|
|
11
|
-
this.ref.instance.data = this.cellData;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
4
|
constructor(viewContainerRef, componentFactoryResolver) {
|
|
15
5
|
this.viewContainerRef = viewContainerRef;
|
|
16
6
|
this.componentFactoryResolver = componentFactoryResolver;
|
|
7
|
+
this.customComponent = input();
|
|
8
|
+
this.data = input();
|
|
9
|
+
effect(() => {
|
|
10
|
+
const component = this.customComponent();
|
|
11
|
+
if (component) {
|
|
12
|
+
this.component = component;
|
|
13
|
+
this.createComponent();
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
effect(() => {
|
|
17
|
+
const data = this.data();
|
|
18
|
+
if (data !== undefined) {
|
|
19
|
+
this.cellData = data;
|
|
20
|
+
if (this.ref) {
|
|
21
|
+
this.ref.instance.data = this.cellData;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
17
25
|
}
|
|
18
26
|
createComponent() {
|
|
19
27
|
if (this.component) {
|
|
@@ -27,16 +35,12 @@ export class CustomTableCellDirective {
|
|
|
27
35
|
this.ref.instance.data = this.cellData;
|
|
28
36
|
}
|
|
29
37
|
static { this.ɵfac = function CustomTableCellDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CustomTableCellDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver)); }; }
|
|
30
|
-
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CustomTableCellDirective, selectors: [["", "customTableCell", ""]], inputs: { customComponent: "customComponent", data: "data" } }); }
|
|
38
|
+
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CustomTableCellDirective, selectors: [["", "customTableCell", ""]], inputs: { customComponent: [1, "customComponent"], data: [1, "data"] } }); }
|
|
31
39
|
}
|
|
32
40
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CustomTableCellDirective, [{
|
|
33
41
|
type: Directive,
|
|
34
42
|
args: [{
|
|
35
43
|
selector: "[customTableCell]"
|
|
36
44
|
}]
|
|
37
|
-
}], () => [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }],
|
|
38
|
-
|
|
39
|
-
}], data: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}] }); })();
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhYmxlLWNlbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvY3VzdG9tLXRhYmxlLWNlbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsU0FBUyxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7O0FBSzdGLE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsSUFBYSxlQUFlLENBQUMsS0FBVTtRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELElBQWEsSUFBSSxDQUFDLEtBQVU7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQW9CLGdCQUFrQyxFQUFVLHdCQUFrRDtRQUE5RixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUFHLENBQUM7SUFFdEgsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pDLENBQUM7eUhBNUJVLHdCQUF3QjtvRUFBeEIsd0JBQXdCOztpRkFBeEIsd0JBQXdCO2NBSHBDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2FBQzlCO3dGQU1jLGVBQWU7a0JBQTNCLEtBQUs7WUFJTyxJQUFJO2tCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBEaXJlY3RpdmUsIElucHV0LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltjdXN0b21UYWJsZUNlbGxdXCJcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tVGFibGVDZWxsRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSByZWY6IGFueTtcbiAgcHJpdmF0ZSBjb21wb25lbnQ6IGFueTtcbiAgcHJpdmF0ZSBjZWxsRGF0YTogYW55O1xuXG4gIEBJbnB1dCgpIHNldCBjdXN0b21Db21wb25lbnQodmFsdWU6IGFueSkge1xuICAgIHRoaXMuY29tcG9uZW50ID0gdmFsdWU7XG4gICAgdGhpcy5jcmVhdGVDb21wb25lbnQoKTtcbiAgfVxuICBASW5wdXQoKSBzZXQgZGF0YSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5jZWxsRGF0YSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnJlZikge1xuICAgICAgdGhpcy5yZWYuaW5zdGFuY2UuZGF0YSA9IHRoaXMuY2VsbERhdGE7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7fVxuXG4gIGNyZWF0ZUNvbXBvbmVudCgpIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnQpIHtcbiAgICAgIGNvbnN0IGNtcEZhY3RvcnlSZXNvbHZlciA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuY29tcG9uZW50KTtcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgICAgdGhpcy5yZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNtcEZhY3RvcnlSZXNvbHZlcik7XG4gICAgICB0aGlzLnNldERhdGEoKTtcbiAgICB9XG4gIH1cbiAgc2V0RGF0YSgpIHtcbiAgICB0aGlzLnJlZi5pbnN0YW5jZS5kYXRhID0gdGhpcy5jZWxsRGF0YTtcbiAgfVxufVxuIl19
|
|
45
|
+
}], () => [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }], null); })();
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhYmxlLWNlbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvY3VzdG9tLXRhYmxlLWNlbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsU0FBUyxFQUFvQixLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtyRyxNQUFNLE9BQU8sd0JBQXdCO0lBUW5DLFlBQW9CLGdCQUFrQyxFQUFVLHdCQUFrRDtRQUE5RixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUhsSCxvQkFBZSxHQUFHLEtBQUssRUFBTyxDQUFDO1FBQy9CLFNBQUksR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUdsQixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pDLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDckIsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pDLENBQUM7eUhBdENVLHdCQUF3QjtvRUFBeEIsd0JBQXdCOztpRkFBeEIsd0JBQXdCO2NBSHBDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2FBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIGlucHV0LCBlZmZlY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2N1c3RvbVRhYmxlQ2VsbF1cIlxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21UYWJsZUNlbGxEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlZjogYW55O1xuICBwcml2YXRlIGNvbXBvbmVudDogYW55O1xuICBwcml2YXRlIGNlbGxEYXRhOiBhbnk7XG5cbiAgY3VzdG9tQ29tcG9uZW50ID0gaW5wdXQ8YW55PigpO1xuICBkYXRhID0gaW5wdXQ8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmN1c3RvbUNvbXBvbmVudCgpO1xuICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5jcmVhdGVDb21wb25lbnQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhKCk7XG4gICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuY2VsbERhdGEgPSBkYXRhO1xuICAgICAgICBpZiAodGhpcy5yZWYpIHtcbiAgICAgICAgICB0aGlzLnJlZi5pbnN0YW5jZS5kYXRhID0gdGhpcy5jZWxsRGF0YTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlQ29tcG9uZW50KCkge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudCkge1xuICAgICAgY29uc3QgY21wRmFjdG9yeVJlc29sdmVyID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jb21wb25lbnQpO1xuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICB0aGlzLnJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY21wRmFjdG9yeVJlc29sdmVyKTtcbiAgICAgIHRoaXMuc2V0RGF0YSgpO1xuICAgIH1cbiAgfVxuICBzZXREYXRhKCkge1xuICAgIHRoaXMucmVmLmluc3RhbmNlLmRhdGEgPSB0aGlzLmNlbGxEYXRhO1xuICB9XG59XG4iXX0=
|