mis-crystal-design-system 18.0.21 → 18.0.22-test-dynamic-theme-2
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/button/button.directive.scss +13 -13
- package/drawer/drawer.scss +1 -1
- package/dynamic-theme/branding.types.d.ts +84 -0
- package/dynamic-theme/dynamic-theme.module.d.ts +9 -0
- package/dynamic-theme/dynamic-theme.service.d.ts +89 -0
- package/dynamic-theme/index.d.ts +1 -0
- package/dynamic-theme/public_api.d.ts +3 -0
- package/esm2022/action-list/action-list.component.mjs +2 -2
- package/esm2022/async-search-dropdown/async-dropdown.component.mjs +2 -2
- package/esm2022/button/button.component.mjs +2 -2
- package/esm2022/checkbox/checkbox.component.mjs +2 -2
- package/esm2022/chip/chip.component.mjs +2 -2
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +2 -2
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +2 -2
- package/esm2022/dropdown/dropdown.component.mjs +7 -7
- package/esm2022/dynamic-form/dynamic-form.component.mjs +2 -2
- package/esm2022/dynamic-theme/branding.types.mjs +93 -0
- package/esm2022/dynamic-theme/dynamic-theme.module.mjs +25 -0
- package/esm2022/dynamic-theme/dynamic-theme.service.mjs +193 -0
- package/esm2022/dynamic-theme/index.mjs +2 -0
- package/esm2022/dynamic-theme/mis-crystal-design-system-dynamic-theme.mjs +5 -0
- package/esm2022/dynamic-theme/public_api.mjs +4 -0
- package/esm2022/fab/fab.component.mjs +3 -3
- package/esm2022/filter/filter-panel/filter-panel.component.mjs +3 -3
- package/esm2022/input/mis-input.component.mjs +2 -2
- package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +2 -2
- package/esm2022/loader/loader.component.mjs +2 -2
- package/esm2022/mobile-filter/mobile-filter.component.mjs +2 -2
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +2 -2
- package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +2 -2
- package/esm2022/phone-input/phone-input.component.mjs +2 -2
- package/esm2022/public-api.mjs +1 -1
- package/esm2022/radio-button/radio-button.component.mjs +2 -2
- package/esm2022/ske-loader/ske-loader.component.mjs +2 -2
- package/esm2022/slider/slider.component.mjs +2 -2
- package/esm2022/snackbar/snackbar/snackbar.component.mjs +2 -2
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +2 -2
- package/esm2022/star-rating/star-rating.component.mjs +2 -2
- package/esm2022/switch/switch.component.mjs +2 -2
- package/esm2022/table/actions-cell/actions-cell.component.mjs +2 -2
- package/esm2022/table/filter/filter.component.mjs +2 -2
- package/esm2022/table/sub-table/sub-table.component.mjs +2 -2
- package/esm2022/table/table.component.mjs +2 -2
- package/esm2022/timepicker/timepicker.component.mjs +2 -2
- package/esm2022/toast/toast.component.mjs +3 -3
- package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-action-list.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-button.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-checkbox.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-chip.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dropdown.mjs +6 -6
- package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dynamic-theme.mjs +313 -0
- package/fesm2022/mis-crystal-design-system-dynamic-theme.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-fab.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-filter.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-loader.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-phone-input.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-radio-button.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-snackbar.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-star-rating.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-switch.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +8 -8
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timepicker.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-toast.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-tooltip.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system.mjs.map +1 -1
- package/input/mis-input.component.scss +17 -17
- package/modal/modal.scss +1 -1
- package/package.json +13 -7
- package/styles/mis-color-constants.scss +204 -0
- package/styles/mis-icons.scss +56 -56
- package/styles/mis-old-icon-styles.scss +21 -21
- package/table/filter/filter.component.d.ts +1 -1
|
@@ -178,7 +178,7 @@ function DropdownComponent_ng_template_10_div_4_cdk_virtual_scroll_viewport_2_Te
|
|
|
178
178
|
i0.ɵɵelementEnd();
|
|
179
179
|
} if (rf & 2) {
|
|
180
180
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
181
|
-
i0.ɵɵproperty("itemSize", ctx_r1.itemSizeForCdk);
|
|
181
|
+
i0.ɵɵproperty("itemSize", ctx_r1.itemSizeForCdk || 36)("minBufferPx", 200)("maxBufferPx", 400);
|
|
182
182
|
i0.ɵɵadvance();
|
|
183
183
|
i0.ɵɵproperty("cdkVirtualForOf", ctx_r1.currentData);
|
|
184
184
|
} }
|
|
@@ -193,7 +193,7 @@ function DropdownComponent_ng_template_10_div_4_div_3_Template(rf, ctx) { if (rf
|
|
|
193
193
|
} }
|
|
194
194
|
function DropdownComponent_ng_template_10_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
195
195
|
i0.ɵɵelementStart(0, "div", 33, 3);
|
|
196
|
-
i0.ɵɵtemplate(2, DropdownComponent_ng_template_10_div_4_cdk_virtual_scroll_viewport_2_Template, 2,
|
|
196
|
+
i0.ɵɵtemplate(2, DropdownComponent_ng_template_10_div_4_cdk_virtual_scroll_viewport_2_Template, 2, 4, "cdk-virtual-scroll-viewport", 34)(3, DropdownComponent_ng_template_10_div_4_div_3_Template, 2, 1, "div", 35);
|
|
197
197
|
i0.ɵɵelementEnd();
|
|
198
198
|
} if (rf & 2) {
|
|
199
199
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -371,7 +371,7 @@ export class DropdownComponent {
|
|
|
371
371
|
const configs = new OverlayConfig({
|
|
372
372
|
hasBackdrop: true,
|
|
373
373
|
backdropClass: "cdk-overlay-transparent-backdrop",
|
|
374
|
-
scrollStrategy: this.overlay.scrollStrategies.
|
|
374
|
+
scrollStrategy: this.overlay.scrollStrategies.block(),
|
|
375
375
|
positionStrategy,
|
|
376
376
|
width: origin?.clientWidth
|
|
377
377
|
});
|
|
@@ -420,7 +420,7 @@ export class DropdownComponent {
|
|
|
420
420
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.viewPort = _t.first);
|
|
421
421
|
} }, hostBindings: function DropdownComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
422
422
|
i0.ɵɵlistener("keyup.esc", function DropdownComponent_keyup_esc_HostBindingHandler($event) { return ctx.closeOnEsc($event); });
|
|
423
|
-
} }, inputs: { data: "data", height: "height", ariaLabel: "ariaLabel", width: "width", label: "label", itemSizeForCdk: "itemSizeForCdk", showOnlyIcon: "showOnlyIcon", higlightSelectedValue: "higlightSelectedValue", dropdownListHeight: "dropdownListHeight", dropdownListWidth: "dropdownListWidth", dropdownListPosition: "dropdownListPosition", config: "config", searchEnabled: "searchEnabled", selectedItem: "selectedItem", noDataMessage: "noDataMessage", multiLine: "multiLine", additionalInfoMessage: "additionalInfoMessage", scrollIntoView: "scrollIntoView", searchLabel: "searchLabel", customStyles: "customStyles", activeItem: "activeItem" }, outputs: { onChange: "onChange" }, decls: 12, vars: 16, consts: [["select", ""], ["showIcon", ""], ["popupContainer", ""], ["itemsContainer", ""], ["standardItem", ""], [1, "main-container", 3, "click", "keyup.enter", "ngStyle"], ["tabindex", "0", 1, "dropdown", 3, "keyup.enter", "click", "ngStyle", "ngClass"], ["class", "img-container", 3, "width", "height", "src", 4, "ngIf"], [1, "label", 3, "ngStyle"], ["class", "text", 4, "ngIf", "ngIfElse"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "handle", 3, "ngStyle"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z", "fill", "#181F33"], [1, "img-container", 3, "width", "height", "src"], [1, "text"], ["class", "text", 4, "ngIf"], ["class", "icon", "alt", "no img", 3, "src", 4, "ngIf"], ["alt", "no img", 1, "icon", 3, "src"], ["cdkTrapFocus", "", "tabindex", "0", "aria-label", "dropdown", 1, "popup-container", 3, "keyup.esc", "cdkTrapFocusAutoCapture", "ngStyle"], ["class", "search-container", 4, "ngIf"], ["class", "status-container", 4, "ngIf"], ["tabindex", "-1", "cdkFocusInitial", "", 4, "ngIf"], ["class", "items", 3, "ngStyle", 4, "ngIf"], [1, "search-container"], ["class", "search-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 4, "ngIf"], [1, "search-input", 3, "ngModelChange", "focus", "ngModel", "ngStyle", "tabIndex", "placeholder"], ["class", "cancel-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "click", 4, "ngIf"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "search-icon"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z", "fill", "#6A737D"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "cancel-icon", 3, "click"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z", "fill", "#6A737D"], [1, "status-container"], [3, "mobileView"], ["tabindex", "-1", "cdkFocusInitial", ""], [1, "items", 3, "ngStyle"], ["class", "dropdown-viewport", 3, "itemSize", 4, "ngIf"], ["class", "noData", 4, "ngIf"], [1, "dropdown-viewport", 3, "itemSize"], ["class", "item", "tabindex", "0", "tabIndex", "0", 3, "ngClass", "click", "keyup.enter", 4, "cdkVirtualFor", "cdkVirtualForOf"], ["tabindex", "0", "tabIndex", "0", 1, "item", 3, "click", "keyup.enter", "ngClass"], [4, "ngIf", "ngIfElse"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "label", 3, "ngStyle", 4, "ngIf"], ["class", "icon-container", 4, "ngIf"], [1, "primaryText", 3, "ngStyle"], ["class", "secondaryText", 3, "ngStyle", 4, "ngIf"], [1, "secondaryText", 3, "ngStyle"], [1, "icon-container"], [1, "noData"]], template: function DropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
423
|
+
} }, inputs: { data: "data", height: "height", ariaLabel: "ariaLabel", width: "width", label: "label", itemSizeForCdk: "itemSizeForCdk", showOnlyIcon: "showOnlyIcon", higlightSelectedValue: "higlightSelectedValue", dropdownListHeight: "dropdownListHeight", dropdownListWidth: "dropdownListWidth", dropdownListPosition: "dropdownListPosition", config: "config", searchEnabled: "searchEnabled", selectedItem: "selectedItem", noDataMessage: "noDataMessage", multiLine: "multiLine", additionalInfoMessage: "additionalInfoMessage", scrollIntoView: "scrollIntoView", searchLabel: "searchLabel", customStyles: "customStyles", activeItem: "activeItem" }, outputs: { onChange: "onChange" }, decls: 12, vars: 16, consts: [["select", ""], ["showIcon", ""], ["popupContainer", ""], ["itemsContainer", ""], ["standardItem", ""], [1, "main-container", 3, "click", "keyup.enter", "ngStyle"], ["tabindex", "0", 1, "dropdown", 3, "keyup.enter", "click", "ngStyle", "ngClass"], ["class", "img-container", 3, "width", "height", "src", 4, "ngIf"], [1, "label", 3, "ngStyle"], ["class", "text", 4, "ngIf", "ngIfElse"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "handle", 3, "ngStyle"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z", "fill", "#181F33"], [1, "img-container", 3, "width", "height", "src"], [1, "text"], ["class", "text", 4, "ngIf"], ["class", "icon", "alt", "no img", 3, "src", 4, "ngIf"], ["alt", "no img", 1, "icon", 3, "src"], ["cdkTrapFocus", "", "tabindex", "0", "aria-label", "dropdown", 1, "popup-container", 3, "keyup.esc", "cdkTrapFocusAutoCapture", "ngStyle"], ["class", "search-container", 4, "ngIf"], ["class", "status-container", 4, "ngIf"], ["tabindex", "-1", "cdkFocusInitial", "", 4, "ngIf"], ["class", "items", 3, "ngStyle", 4, "ngIf"], [1, "search-container"], ["class", "search-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 4, "ngIf"], [1, "search-input", 3, "ngModelChange", "focus", "ngModel", "ngStyle", "tabIndex", "placeholder"], ["class", "cancel-icon", "width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 3, "click", 4, "ngIf"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "search-icon"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z", "fill", "#6A737D"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "cancel-icon", 3, "click"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z", "fill", "#6A737D"], [1, "status-container"], [3, "mobileView"], ["tabindex", "-1", "cdkFocusInitial", ""], [1, "items", 3, "ngStyle"], ["class", "dropdown-viewport", 3, "itemSize", "minBufferPx", "maxBufferPx", 4, "ngIf"], ["class", "noData", 4, "ngIf"], [1, "dropdown-viewport", 3, "itemSize", "minBufferPx", "maxBufferPx"], ["class", "item", "tabindex", "0", "tabIndex", "0", 3, "ngClass", "click", "keyup.enter", 4, "cdkVirtualFor", "cdkVirtualForOf"], ["tabindex", "0", "tabIndex", "0", 1, "item", 3, "click", "keyup.enter", "ngClass"], [4, "ngIf", "ngIfElse"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "label", 3, "ngStyle", 4, "ngIf"], ["class", "icon-container", 4, "ngIf"], [1, "primaryText", 3, "ngStyle"], ["class", "secondaryText", 3, "ngStyle", 4, "ngIf"], [1, "secondaryText", 3, "ngStyle"], [1, "icon-container"], [1, "noData"]], template: function DropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
424
424
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
425
425
|
i0.ɵɵelementStart(0, "div", 5);
|
|
426
426
|
i0.ɵɵlistener("click", function DropdownComponent_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setUpAsyncDataSearch()); })("keyup.enter", function DropdownComponent_Template_div_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.setUpAsyncDataSearch()); });
|
|
@@ -449,11 +449,11 @@ export class DropdownComponent {
|
|
|
449
449
|
i0.ɵɵproperty("ngIf", !ctx.showOnlyIcon)("ngIfElse", showIcon_r9);
|
|
450
450
|
i0.ɵɵadvance(3);
|
|
451
451
|
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(14, _c6, ctx.isOpen ? "rotate(180deg)" : "rotate(0deg)"));
|
|
452
|
-
} }, dependencies: [i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.CdkFixedSizeVirtualScroll, i4.CdkVirtualForOf, i4.CdkVirtualScrollViewport, i5.LoaderComponent, i6.CdkTrapFocus], styles: [".main-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;height:32px;width:256px;font-family:Lato,sans-serif!important}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:inherit;border:1px solid #
|
|
452
|
+
} }, dependencies: [i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgModel, i4.CdkFixedSizeVirtualScroll, i4.CdkVirtualForOf, i4.CdkVirtualScrollViewport, i5.LoaderComponent, i6.CdkTrapFocus], styles: [".main-container[_ngcontent-%COMP%]{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;height:32px;width:256px;font-family:Lato,sans-serif!important}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:inherit;border:1px solid var(--border-primary, #E0E0E0);border-radius:6px;background-color:var(--bg-primary, #FFFFFF);cursor:pointer;display:flex;gap:4px;align-items:center;width:100%;box-sizing:border-box;padding:0 12px}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]:hover, .main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%]:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;justify-content:flex-start;align-items:center;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{margin:0!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{background-color:var(--border-primary, #E0E0E0);border-radius:50%;padding:2px 7px;margin:0}.main-container[_ngcontent-%COMP%] .dropdown[_ngcontent-%COMP%] .handle[_ngcontent-%COMP%]{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.main-container[_ngcontent-%COMP%] .dropdown-port[_ngcontent-%COMP%]{background:var(--brand-primary-active, #DAE1F3)}.popup-container[_ngcontent-%COMP%]{width:100%;max-height:340px;padding-bottom:0;border:1px solid var(--border-primary, #E0E0E0);border-radius:8px;background-color:var(--bg-primary, #FFFFFF);box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden;justify-content:space-between}.popup-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:0;height:0}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%]{position:relative;box-sizing:border-box;padding:8px}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .search-icon[_ngcontent-%COMP%]{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%]{height:40px;width:100%;padding:12px;border:1px solid var(--border-primary, #E0E0E0);box-sizing:border-box;border-radius:8px;outline:none;caret-color:var(--brand-primary, #0937B2);font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%] .cancel-icon[_ngcontent-%COMP%]{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]{padding:0 0 8px 8px;overflow-y:auto}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]::-webkit-scrollbar{width:5px;height:0}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--text-tertiary, #929DAB);border-radius:10px}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .noData[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;height:44px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .dropdown-viewport[_ngcontent-%COMP%]{height:100%}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .dropdown-viewport[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;gap:10px;padding:4px 12px;border-radius:6px;min-height:40px;height:auto;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .dropdown-viewport[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:hover, .popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .dropdown-viewport[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .dropdown-viewport[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{width:100%;line-height:20px;font-size:14px;font-style:normal;font-weight:400}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .dropdown-viewport[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .primaryText[_ngcontent-%COMP%]{color:var(--text-primary, #181F33);font-family:Lato;font-size:14px;line-height:20px;letter-spacing:.2px;white-space:normal;word-wrap:break-word}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .dropdown-viewport[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] .secondaryText[_ngcontent-%COMP%]{color:var(--text-secondary, #6A737D);font-family:Lato;font-size:14px;line-height:20px;letter-spacing:.2px;white-space:normal;word-wrap:break-word}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .dropdown-viewport[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{width:10%;display:flex;justify-content:flex-end}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .dropdown-viewport[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:20px;height:20px}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item-disabled[_ngcontent-%COMP%]{cursor:not-allowed!important}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item-disabled[_ngcontent-%COMP%]:hover, .popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item-disabled[_ngcontent-%COMP%]:focus-visible{background-color:transparent!important;outline:none!important}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item-disabled[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--text-tertiary, #929DAB)!important;-webkit-user-select:none!important;user-select:none!important}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .item-selected[_ngcontent-%COMP%]{background-color:var(--brand-primary-active, #DAE1F3);outline:none}.popup-container[_ngcontent-%COMP%] .items[_ngcontent-%COMP%] .icon-only[_ngcontent-%COMP%]{justify-content:center!important}[_ngcontent-%COMP%]::-webkit-scrollbar{height:8px;width:8px;background:var(--bg-primary, #FFFFFF);border-radius:13px}[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--text-disabled, #C8CDD3);border-radius:13px;cursor:pointer}.status-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;height:128px}.status-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-align:center}"] }); }
|
|
453
453
|
}
|
|
454
454
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DropdownComponent, [{
|
|
455
455
|
type: Component,
|
|
456
|
-
args: [{ selector: "mis-dropdown", template: "<div (click)=\"setUpAsyncDataSearch()\"\n(keyup.enter)=\"setUpAsyncDataSearch()\"\n class=\"main-container\"\n [ngStyle]=\"{\n height: height.length > 0 ? height : '',\n width: width.length > 0 ? width : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"customStyles\"\n [attr.aria-label]=\"ariaLabel\"\n [ngClass]=\"isOpen ? 'dropdown-port': ''\"\n >\n <img class=\"img-container\" [width]=\"16\" [height]=\"16\" [src]=\"selectedItem?.customIcon\" *ngIf=\"selectedItem?.customIcon\">\n <div class=\"label\" [ngStyle]=\"{width: selectedItem?.customIcon ? 'calc(100% - 48px)' : 'calc(100% - 32px)'}\">\n <p class=\"text\" *ngIf=\"!showOnlyIcon; else showIcon\">\n {{ multiLine ? selectedItem?.label?.primaryText : selectedItem?.label || label }}\n </p>\n <ng-template #showIcon>\n <p class=\"text\" *ngIf=\"!selectedItem?.icon\">\n {{ label }}\n </p>\n <img class=\"icon\" *ngIf=\"!!selectedItem?.icon\" [src]=\"selectedItem?.icon\" alt=\"no img\" />\n </ng-template>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n</div>\n<ng-template #popupContainer>\n <div\n class=\"popup-container\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" tabindex=\"0\"\n [ngStyle]=\"{\n height: dropdownListHeight,\n width: dropdownListWidth\n }\"\n (keyup.esc)=\"closeOnEsc($event)\"\n aria-label=\"dropdown\"\n >\n <div *ngIf=\"searchEnabled\" class=\"search-container\">\n <svg\n *ngIf=\"!isSearchInputFocused\"\n class=\"search-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n <input\n [ngModel]=\"searchInput\"\n [ngStyle]=\"{\n paddingLeft: isSearchInputFocused ? '12px' : '45px',\n border: isSearchInputFocused ? '1px solid #0937B2' : '1px solid #e0e0e0',\n paddingRight: isSearchInputFocused ? '45px' : '10px'\n }\"\n [tabIndex]=\"0\"\n (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused ? '' : searchLabel\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\n [attr.aria-label]=\"searchLabel\"\n />\n <svg\n *ngIf=\"isSearchInputFocused\"\n class=\"cancel-icon\"\n (click)=\"searchInputCanceled($event)\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div class=\"status-container\" *ngIf=\"loading\">\n <mis-loader [mobileView]=\"true\"></mis-loader>\n </div>\n <div tabindex=\"-1\" *ngIf=\"!searchEnabled\" cdkFocusInitial></div>\n <div class=\"items\" #itemsContainer [ngStyle]=\"itemsContainerStyle\" *ngIf=\"!loading \">\n <cdk-virtual-scroll-viewport *ngIf=\"currentData.length > 0\" [itemSize]=\"itemSizeForCdk\" class=\"dropdown-viewport\">\n <div\n class=\"item\"\n tabindex=\"0\"\n [ngClass]=\"{ 'item-disabled': item.disabled, 'item-selected': (higlightSelectedValue && item.value === selectedItem?.value), 'icon-only' : showOnlyIcon }\"\n (click)=\"item.disabled ? null : selectItem(item)\"\n (keyup.enter)=\"item.disabled ? null : selectItem(item)\"\n *cdkVirtualFor=\"let item of currentData;\"\n tabIndex=\"0\"\n >\n <ng-container *ngIf=\"customItem; else standardItem\">\n <ng-container\n [ngTemplateOutlet]=\"customItem\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n </ng-container>\n <ng-template #standardItem>\n <div class=\"label\" *ngIf=\"!showOnlyIcon\" [ngStyle]=\"{ width: item.icon ? '90%' : '100%', 'display': multiLine ? 'flex': 'inherit', 'flex-direction': multiLine ? 'column': 'inherit' }\">\n <span class=\"primaryText\" [ngStyle]=\"getIconStyles(item.icon, activeItem)\">{{ multiLine ? item?.label?.primaryText : item?.label }}</span>\n <span class=\"secondaryText\" *ngIf=\"multiLine\" [ngStyle]=\"getIconStyles(item.icon, activeItem)\"> {{ item?.label?.secondaryText ? item?.label?.secondaryText : additionalInfoMessage }} </span>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </ng-template>\n </div>\n </cdk-virtual-scroll-viewport>\n <div class=\"noData\" *ngIf=\"currentData.length === 0\">\n {{ searchInput === \"\" ? noDataMessage : \"No results\" }}\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".main-container{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;height:32px;width:256px;font-family:Lato,sans-serif!important}.main-container .dropdown{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:inherit;border:1px solid #e0e0e0;border-radius:6px;background-color:#fff;cursor:pointer;display:flex;gap:4px;align-items:center;width:100%;box-sizing:border-box;padding:0 12px}.main-container .dropdown:hover,.main-container .dropdown:focus-visible{background-color:#f5f7fc;outline:none}.main-container .dropdown .label{box-sizing:border-box;display:flex;justify-content:flex-start;align-items:center;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.main-container .dropdown .label .text{margin:0!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.main-container .dropdown .label .count{background-color:#e0e0e0;border-radius:50%;padding:2px 7px;margin:0}.main-container .dropdown .handle{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.main-container .dropdown-port{background:#e6ebf7}.popup-container{width:100%;max-height:340px;padding-bottom:0;border:1px solid #e0e0e0;border-radius:8px;background-color:#fff;box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden;justify-content:space-between}.popup-container::-webkit-scrollbar{width:0;height:0}.popup-container .search-container{position:relative;box-sizing:border-box;padding:8px}.popup-container .search-container .search-icon{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container .search-container .search-input{height:40px;width:100%;padding:12px;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:8px;outline:none;caret-color:#0937b2;font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:#181f33}.popup-container .search-container .cancel-icon{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container .items{padding:0 0 8px 8px;overflow-y:auto}.popup-container .items::-webkit-scrollbar{width:5px;height:0}.popup-container .items::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:10px}.popup-container .items .noData{display:flex;justify-content:center;align-items:center;height:44px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.popup-container .items .dropdown-viewport{height:100%}.popup-container .items .dropdown-viewport .item{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;gap:10px;padding:4px 12px;border-radius:6px;min-height:40px;height:auto;letter-spacing:.2px;color:#181f33}.popup-container .items .dropdown-viewport .item:hover,.popup-container .items .dropdown-viewport .item:focus-visible{background-color:#f5f7fc;outline:none}.popup-container .items .dropdown-viewport .item .label{width:100%;line-height:20px;font-size:14px;font-style:normal;font-weight:400}.popup-container .items .dropdown-viewport .item .label .primaryText{color:#181f33;font-family:Lato;font-size:14px;line-height:20px;letter-spacing:.2px;white-space:normal;word-wrap:break-word}.popup-container .items .dropdown-viewport .item .label .secondaryText{color:#6a737d;font-family:Lato;font-size:14px;line-height:20px;letter-spacing:.2px;white-space:normal;word-wrap:break-word}.popup-container .items .dropdown-viewport .item .icon-container{width:10%;display:flex;justify-content:flex-end}.popup-container .items .dropdown-viewport .item .icon-container .icon{width:20px;height:20px}.popup-container .items .item-disabled{cursor:not-allowed!important}.popup-container .items .item-disabled:hover,.popup-container .items .item-disabled:focus-visible{background-color:transparent!important;outline:none!important}.popup-container .items .item-disabled .label>span{color:#929dab!important;-webkit-user-select:none!important;user-select:none!important}.popup-container .items .item-selected{background-color:#e0e6f6;outline:none}.popup-container .items .icon-only{justify-content:center!important}::-webkit-scrollbar{height:8px;width:8px;background:#fff;border-radius:13px}::-webkit-scrollbar-thumb{background:#c8cdd3;border-radius:13px;cursor:pointer}.status-container{display:flex;justify-content:center;align-items:center;height:128px}.status-container p{text-align:center}\n"] }]
|
|
456
|
+
args: [{ selector: "mis-dropdown", template: "<div (click)=\"setUpAsyncDataSearch()\"\n(keyup.enter)=\"setUpAsyncDataSearch()\"\n class=\"main-container\"\n [ngStyle]=\"{\n height: height.length > 0 ? height : '',\n width: width.length > 0 ? width : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"customStyles\"\n [attr.aria-label]=\"ariaLabel\"\n [ngClass]=\"isOpen ? 'dropdown-port': ''\"\n >\n <img class=\"img-container\" [width]=\"16\" [height]=\"16\" [src]=\"selectedItem?.customIcon\" *ngIf=\"selectedItem?.customIcon\">\n <div class=\"label\" [ngStyle]=\"{width: selectedItem?.customIcon ? 'calc(100% - 48px)' : 'calc(100% - 32px)'}\">\n <p class=\"text\" *ngIf=\"!showOnlyIcon; else showIcon\">\n {{ multiLine ? selectedItem?.label?.primaryText : selectedItem?.label || label }}\n </p>\n <ng-template #showIcon>\n <p class=\"text\" *ngIf=\"!selectedItem?.icon\">\n {{ label }}\n </p>\n <img class=\"icon\" *ngIf=\"!!selectedItem?.icon\" [src]=\"selectedItem?.icon\" alt=\"no img\" />\n </ng-template>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n</div>\n<ng-template #popupContainer>\n <div\n class=\"popup-container\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" tabindex=\"0\"\n [ngStyle]=\"{\n height: dropdownListHeight,\n width: dropdownListWidth\n }\"\n (keyup.esc)=\"closeOnEsc($event)\"\n aria-label=\"dropdown\"\n >\n <div *ngIf=\"searchEnabled\" class=\"search-container\">\n <svg\n *ngIf=\"!isSearchInputFocused\"\n class=\"search-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n <input\n [ngModel]=\"searchInput\"\n [ngStyle]=\"{\n paddingLeft: isSearchInputFocused ? '12px' : '45px',\n border: isSearchInputFocused ? '1px solid #0937B2' : '1px solid #e0e0e0',\n paddingRight: isSearchInputFocused ? '45px' : '10px'\n }\"\n [tabIndex]=\"0\"\n (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused ? '' : searchLabel\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\n [attr.aria-label]=\"searchLabel\"\n />\n <svg\n *ngIf=\"isSearchInputFocused\"\n class=\"cancel-icon\"\n (click)=\"searchInputCanceled($event)\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div class=\"status-container\" *ngIf=\"loading\">\n <mis-loader [mobileView]=\"true\"></mis-loader>\n </div>\n <div tabindex=\"-1\" *ngIf=\"!searchEnabled\" cdkFocusInitial></div>\n <div class=\"items\" #itemsContainer [ngStyle]=\"itemsContainerStyle\" *ngIf=\"!loading \">\n <cdk-virtual-scroll-viewport *ngIf=\"currentData.length > 0\" \n [itemSize]=\"itemSizeForCdk || 36\" \n class=\"dropdown-viewport\"\n [minBufferPx]=\"200\"\n [maxBufferPx]=\"400\">\n <div\n class=\"item\"\n tabindex=\"0\"\n [ngClass]=\"{ 'item-disabled': item.disabled, 'item-selected': (higlightSelectedValue && item.value === selectedItem?.value), 'icon-only' : showOnlyIcon }\"\n (click)=\"item.disabled ? null : selectItem(item)\"\n (keyup.enter)=\"item.disabled ? null : selectItem(item)\"\n *cdkVirtualFor=\"let item of currentData; let i = index\"\n tabIndex=\"0\"\n >\n <ng-container *ngIf=\"customItem; else standardItem\">\n <ng-container\n [ngTemplateOutlet]=\"customItem\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n </ng-container>\n <ng-template #standardItem>\n <div class=\"label\" *ngIf=\"!showOnlyIcon\" [ngStyle]=\"{ width: item.icon ? '90%' : '100%', 'display': multiLine ? 'flex': 'inherit', 'flex-direction': multiLine ? 'column': 'inherit' }\">\n <span class=\"primaryText\" [ngStyle]=\"getIconStyles(item.icon, activeItem)\">{{ multiLine ? item?.label?.primaryText : item?.label }}</span>\n <span class=\"secondaryText\" *ngIf=\"multiLine\" [ngStyle]=\"getIconStyles(item.icon, activeItem)\"> {{ item?.label?.secondaryText ? item?.label?.secondaryText : additionalInfoMessage }} </span>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </ng-template>\n </div>\n </cdk-virtual-scroll-viewport>\n <div class=\"noData\" *ngIf=\"currentData.length === 0\">\n {{ searchInput === \"\" ? noDataMessage : \"No results\" }}\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".main-container{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;height:32px;width:256px;font-family:Lato,sans-serif!important}.main-container .dropdown{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:inherit;border:1px solid var(--border-primary, #E0E0E0);border-radius:6px;background-color:var(--bg-primary, #FFFFFF);cursor:pointer;display:flex;gap:4px;align-items:center;width:100%;box-sizing:border-box;padding:0 12px}.main-container .dropdown:hover,.main-container .dropdown:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.main-container .dropdown .label{box-sizing:border-box;display:flex;justify-content:flex-start;align-items:center;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.main-container .dropdown .label .text{margin:0!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.main-container .dropdown .label .count{background-color:var(--border-primary, #E0E0E0);border-radius:50%;padding:2px 7px;margin:0}.main-container .dropdown .handle{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.main-container .dropdown-port{background:var(--brand-primary-active, #DAE1F3)}.popup-container{width:100%;max-height:340px;padding-bottom:0;border:1px solid var(--border-primary, #E0E0E0);border-radius:8px;background-color:var(--bg-primary, #FFFFFF);box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;overflow:hidden;justify-content:space-between}.popup-container::-webkit-scrollbar{width:0;height:0}.popup-container .search-container{position:relative;box-sizing:border-box;padding:8px}.popup-container .search-container .search-icon{position:absolute;width:24px;height:24px;top:50%;transform:translateY(-50%);left:18px;z-index:1}.popup-container .search-container .search-input{height:40px;width:100%;padding:12px;border:1px solid var(--border-primary, #E0E0E0);box-sizing:border-box;border-radius:8px;outline:none;caret-color:var(--brand-primary, #0937B2);font-style:normal;font-weight:400;font-size:12px;line-height:18px;display:flex;align-items:center;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container .search-container .cancel-icon{position:absolute;cursor:pointer;width:24px;height:24px;top:50%;transform:translateY(-50%);right:18px;z-index:1}.popup-container .items{padding:0 0 8px 8px;overflow-y:auto}.popup-container .items::-webkit-scrollbar{width:5px;height:0}.popup-container .items::-webkit-scrollbar-thumb{background:var(--text-tertiary, #929DAB);border-radius:10px}.popup-container .items .noData{display:flex;justify-content:center;align-items:center;height:44px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container .items .dropdown-viewport{height:100%}.popup-container .items .dropdown-viewport .item{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;gap:10px;padding:4px 12px;border-radius:6px;min-height:40px;height:auto;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container .items .dropdown-viewport .item:hover,.popup-container .items .dropdown-viewport .item:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.popup-container .items .dropdown-viewport .item .label{width:100%;line-height:20px;font-size:14px;font-style:normal;font-weight:400}.popup-container .items .dropdown-viewport .item .label .primaryText{color:var(--text-primary, #181F33);font-family:Lato;font-size:14px;line-height:20px;letter-spacing:.2px;white-space:normal;word-wrap:break-word}.popup-container .items .dropdown-viewport .item .label .secondaryText{color:var(--text-secondary, #6A737D);font-family:Lato;font-size:14px;line-height:20px;letter-spacing:.2px;white-space:normal;word-wrap:break-word}.popup-container .items .dropdown-viewport .item .icon-container{width:10%;display:flex;justify-content:flex-end}.popup-container .items .dropdown-viewport .item .icon-container .icon{width:20px;height:20px}.popup-container .items .item-disabled{cursor:not-allowed!important}.popup-container .items .item-disabled:hover,.popup-container .items .item-disabled:focus-visible{background-color:transparent!important;outline:none!important}.popup-container .items .item-disabled .label>span{color:var(--text-tertiary, #929DAB)!important;-webkit-user-select:none!important;user-select:none!important}.popup-container .items .item-selected{background-color:var(--brand-primary-active, #DAE1F3);outline:none}.popup-container .items .icon-only{justify-content:center!important}::-webkit-scrollbar{height:8px;width:8px;background:var(--bg-primary, #FFFFFF);border-radius:13px}::-webkit-scrollbar-thumb{background:var(--text-disabled, #C8CDD3);border-radius:13px;cursor:pointer}.status-container{display:flex;justify-content:center;align-items:center;height:128px}.status-container p{text-align:center}\n"] }]
|
|
457
457
|
}], () => [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], { data: [{
|
|
458
458
|
type: Input
|
|
459
459
|
}], height: [{
|
|
@@ -518,4 +518,4 @@ export class DropdownComponent {
|
|
|
518
518
|
args: ["keyup.esc", ['$event']]
|
|
519
519
|
}] }); })();
|
|
520
520
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DropdownComponent, { className: "DropdownComponent" }); })();
|
|
521
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsU0FBUyxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNwTCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNlOUQsMEJBQXdIOzs7SUFBbEUsQUFBZCxBQUFiLDBCQUFZLGNBQWMsOEZBQWlDOzs7SUFFcEYsNkJBQXFEO0lBQ25ELFlBQ0Y7SUFBQSxpQkFBSTs7O0lBREYsY0FDRjtJQURFLDRQQUNGOzs7SUFFRSw2QkFBNEM7SUFDMUMsWUFDRjtJQUFBLGlCQUFJOzs7SUFERixjQUNGO0lBREUsNkNBQ0Y7OztJQUNBLDBCQUF5Rjs7O0lBQTFDLHFHQUEwQjs7O0lBQXpFLEFBSEEsNkVBQTRDLG9FQUc2Qzs7O0lBSHhFLHVGQUF5QjtJQUd2QixjQUEwQjtJQUExQix3RkFBMEI7Ozs7SUFnQy9DLCtCQVFDO0lBQ0MsMkJBS0U7SUFDSixpQkFBTTs7Ozs7SUFlTiwrQkFTQztJQU5DLDJNQUFTLGtDQUEyQixLQUFDO0lBT3JDLDJCQUtFO0lBQ0osaUJBQU07Ozs7SUEvQ1IsK0JBQW9EO0lBQ2xELDZGQVFDO0lBUUQsaUNBYUU7SUFIQSxBQUZBLGtOQUFpQixrQ0FBMkIsS0FBQywrS0FFcEMsMEJBQW1CLElBQUksQ0FBQyxLQUFDO0lBVnBDLGlCQWFFO0lBQ0YsNkZBU0M7SUFRSCxpQkFBTTs7O0lBOUNELGNBQTJCO0lBQTNCLG1EQUEyQjtJQWdCNUIsY0FBdUI7SUFRdkIsQUFGQSxBQUxBLEFBREEsNENBQXVCLDhNQUtyQixlQUNZLHNFQUV5Qzs7SUFNdEQsY0FBMEI7SUFBMUIsa0RBQTBCOzs7SUFpQi9CLCtCQUE4QztJQUM1QyxpQ0FBNkM7SUFDL0MsaUJBQU07O0lBRFEsY0FBbUI7SUFBbkIsaUNBQW1COzs7SUFFakMsMEJBQWdFOzs7SUFZNUQsNkJBQW9EO0lBQ2xELDRCQUdnQjs7Ozs7SUFGWixjQUErQjtJQUMvQixBQURBLG9EQUErQixnRUFDZ0I7OztJQU1qRCxnQ0FBK0Y7SUFBQyxZQUF1RjtJQUFBLGlCQUFPOzs7O0lBQWhKLCtFQUFnRDtJQUFFLGNBQXVGO0lBQXZGLDJPQUF1Rjs7O0lBRHZMLEFBREYsOEJBQXdMLGVBQzNHO0lBQUEsWUFBd0Q7SUFBQSxpQkFBTztJQUMxSSxrSkFBK0Y7SUFDakcsaUJBQU07Ozs7SUFIbUMsb0tBQThJO0lBQzNKLGNBQWdEO0lBQWhELCtFQUFnRDtJQUFDLGNBQXdEO0lBQXhELG1LQUF3RDtJQUN0RyxjQUFlO0lBQWYsdUNBQWU7OztJQUU5QywrQkFBOEM7SUFDNUMsMEJBQW1EO0lBQ3JELGlCQUFNOzs7SUFEYyxjQUFpQjtJQUFqQixvREFBaUI7OztJQURyQyxBQUpBLDBJQUF3TCw2SEFJMUk7Ozs7SUFKMUIsMkNBQW1CO0lBSVYsY0FBZTtJQUFmLG1DQUFlOzs7O0lBcEI5QywrQkFRQztJQUhELEFBREEsMlFBQXlCLElBQUksR0FBRywwQkFBZ0IsS0FBQywwUUFDbEIsSUFBSSxHQUFHLDBCQUFnQixLQUFDO0lBVXZELEFBTkEsOElBQW9ELCtKQU16QjtJQVM3QixpQkFBTTs7Ozs7SUFyQkosK01BQTBKO0lBTTNJLGNBQWtCO0lBQUEsQUFBbEIsd0NBQWtCLDZCQUFpQjs7O0lBVnBELHVEQUFrSDtJQUNoSCxzSEFRQztJQWlCTCxpQkFBOEI7OztJQTFCZ0MsZ0RBQTJCO0lBTzVELGNBQWU7SUFBZixvREFBZTs7O0lBb0IxQywrQkFBcUQ7SUFDbkQsWUFDRjtJQUFBLGlCQUFNOzs7SUFESixjQUNGO0lBREUsZ0dBQ0Y7OztJQTlCRixrQ0FBcUY7SUE0Qm5GLEFBM0JBLHdJQUFrSCwyRUEyQjdEO0lBR3ZELGlCQUFNOzs7SUEvQjZCLG9EQUErQjtJQUNsQyxlQUE0QjtJQUE1QixvREFBNEI7SUEyQnJDLGNBQThCO0lBQTlCLHNEQUE4Qjs7OztJQTFGdkQsK0JBUUM7SUFGQyxpTUFBYSx5QkFBa0IsS0FBQztJQXdEaEMsQUFEQSxBQUhBLEFBakRBLG1GQUFvRCxxRUFpRE4scUVBR1kscUVBQzJCO0lBZ0N2RixpQkFBTTs7O0lBNUZKLEFBRHFDLDhDQUFnQyw0RkFJbkU7SUFJSSxjQUFtQjtJQUFuQiwyQ0FBbUI7SUFpRE0sY0FBYTtJQUFiLHFDQUFhO0lBR3hCLGNBQW9CO0lBQXBCLDRDQUFvQjtJQUM0QixjQUFjO0lBQWQsc0NBQWM7O0FEcEd0RixNQUFNLE9BQU8saUJBQWlCO0lBaUM1QixJQUFvRCxjQUFjLENBQUMsU0FBNEI7UUFDN0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7UUFDakMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBS0QsWUFDVSxJQUFnQixFQUNoQixPQUFnQixFQUNoQixnQkFBa0MsRUFDbEMsR0FBc0I7UUFIdEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE5Q2hDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0QyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQW1CLEVBQUUsQ0FBQztRQUNoQyxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixrQkFBYSxHQUFXLE1BQU0sQ0FBQztRQUN0QixTQUFJLEdBQW9CLEVBQUUsQ0FBQztRQUMzQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixVQUFLLEdBQVcsUUFBUSxDQUFDO1FBRXpCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUN2Qyx1QkFBa0IsR0FBVyxFQUFFLENBQUM7UUFDaEMsc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBQy9CLHlCQUFvQixHQUFxQixNQUFNLENBQUM7UUFFaEQsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsaUJBQVksR0FBaUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUN0RCxrQkFBYSxHQUFXLFNBQVMsQ0FBQztRQUNsQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLGdCQUFXLEdBQVUsZ0JBQWdCLENBQUM7UUFFdEMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUMzQixhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHbkQsb0JBQWUsR0FBc0IsSUFBSSxDQUFDO0lBZ0IvQyxDQUFDO0lBRUosUUFBUTtJQUNSLENBQUM7SUFHRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUFFLE9BQU87UUFFbEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUM7UUFDdEQsTUFBTSxLQUFLLEdBQUcsU0FBUyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUdELElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztRQUV0QixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzdFLE1BQU0sUUFBUSxHQUFHLElBQW1CLENBQUM7WUFDckMsSUFBSSxVQUFVLEdBQUcsUUFBUSxFQUFFLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQywwREFBMEQ7WUFDeEcsbUJBQW1CLElBQUksVUFBVSxDQUFDO1lBQ2xDLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNILDBEQUEwRDtRQUMxRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztRQUMzQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixHQUFHLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFeEYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLElBQUksQ0FBQztJQUM5RixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQzVCLFlBQVksRUFBRSxPQUFPO1lBQ3JCLFlBQVksRUFBRSxNQUFNO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVMsRUFBRSxVQUFtQjtRQUMxQyxPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QyxhQUFhLEVBQUUsSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQy9DLENBQUM7SUFDSixDQUFDO0lBRUgsb0JBQW9CO1FBRWxCLElBQUcsSUFBSSxDQUFDLE1BQU0sRUFDZCxDQUFDO1lBQ0csSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFBLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEVBQUUsQ0FBQTtnQkFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUE7Z0JBQ3BCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUN0QyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBYztRQUNqQyxPQUFPLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwRyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQWM7UUFDdkMsT0FBTyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pILENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxRQUFRO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO1FBQzVCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBQ0QscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBa0I7UUFDbkMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsS0FBSztRQUN2QixLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFDRCxjQUFjO1FBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDMUUsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNoQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUNPLFlBQVksQ0FBQyxRQUE4QixFQUFFLE1BQW1CO1FBQ3RFLE1BQU0sZUFBZSxHQUFHO1lBQ3RCLElBQUksc0JBQXNCLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakgsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM5RyxDQUFDO1FBQ0YsTUFBTSxZQUFZLEdBQUc7WUFDbkIsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xILElBQUksc0JBQXNCLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMvRyxDQUFDO1FBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTzthQUNsQyxRQUFRLEVBQUU7YUFDVixtQkFBbUIsQ0FBQyxNQUFNLENBQUM7YUFDM0IsYUFBYSxDQUFDO1lBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBQ3hGLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztTQUNuRixDQUFDO2FBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUksYUFBYSxDQUFDO1lBQ2hDLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxrQ0FBa0M7WUFDakQsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO1lBQzFELGdCQUFnQjtZQUNoQixLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVc7U0FDM0IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLElBQUksSUFBSSxDQUFDLGtCQUFrQjtZQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFJO1FBQ2IsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsK0RBQStEO0lBQzlGLENBQUM7SUFHRCxVQUFVLENBQUMsS0FBb0I7UUFDN0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQztRQUN6QixLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztrSEExTVUsaUJBQWlCO29FQUFqQixpQkFBaUI7Ozs7Ozs7OzsyQkF1Q2pCLHdCQUF3Qjs7Ozs7Ozs7WUF2Q3hCLG9HQUFBLHNCQUFrQixJQUFEOzs7WUNYOUIsOEJBT0M7WUFORCxBQURLLGlJQUFTLDBCQUFzQixLQUFDLGdJQUN0QiwwQkFBc0IsS0FBQztZQU9wQyxpQ0FTQztZQUpDLEFBREEsNklBQWUsb0JBQWdCLEtBQUMsb0hBQ3ZCLG9CQUFnQixLQUFDO1lBSzFCLGtFQUF3SDtZQUN4SCw4QkFBNkc7WUFJM0csQUFIQSw4REFBcUQsc0dBRzlCO1lBTXpCLGlCQUFNOztZQUNOLCtCQVFDO1lBQ0MsMkJBS0U7WUFHUixBQURFLEFBREUsaUJBQU0sRUFDRixFQUNGO1lBQ04scUhBQTZCOzs7WUE3QzNCLG9JQUdFO1lBUUEsY0FBd0I7WUFFeEIsQUFGQSwwQ0FBd0IsOENBRWdCOztZQUVnRCxlQUE4QjtZQUE5QixvRkFBOEI7WUFDbkcsY0FBeUY7WUFBekYsa0tBQXlGO1lBQ3pGLGNBQXFCO1lBQUEsQUFBckIsd0NBQXFCLHlCQUFhO1lBWW5ELGVBQXFFO1lBQXJFLHFHQUFxRTs7O2lGRHJCOUQsaUJBQWlCO2NBTjdCLFNBQVM7MkJBQ0UsY0FBYztnSUFhZixJQUFJO2tCQUFaLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFDRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBQ0cscUJBQXFCO2tCQUE3QixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNJLFFBQVE7a0JBQWpCLE1BQU07WUFDaUMsYUFBYTtrQkFBcEQsU0FBUzttQkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQ1UsY0FBYztrQkFBN0QsU0FBUzttQkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFFTSxjQUFjO2tCQUFqRSxTQUFTO21CQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQU1ULFFBQVE7a0JBQTVDLFNBQVM7bUJBQUMsd0JBQXdCO1lBQ2UsVUFBVTtrQkFBM0QsWUFBWTttQkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBOEpoRCxVQUFVO2tCQURULFlBQVk7bUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDOztrRkFyTTFCLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy1kcm9wZG93blwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9kcm9wZG93bi5jb21wb25lbnQuc2Nzc1wiXSxcbiAgXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaXNPcGVuID0gZmFsc2U7XG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTZWFyY2hJbnB1dEZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VhcmNoSW5wdXQ6IHN0cmluZyA9IFwiXCI7XG4gIHNlYXJjaERhdGE6IERyb3Bkb3duSXRlbVtdID0gW107XG4gIHZpc2libGVJdGVtcyA9IDEwO1xuICBkeW5hbWljSGVpZ2h0OiBzdHJpbmcgPSBcImF1dG9cIjtcbiAgQElucHV0KCkgZGF0YTogRHJvcGRvd25JdGVtW10gID0gW107XG4gIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9IFwiU2VsZWN0XCI7XG4gIEBJbnB1dCgpIGl0ZW1TaXplRm9yQ2RrOiBudW1iZXI7XG4gIEBJbnB1dCgpIHNob3dPbmx5SWNvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWdsaWdodFNlbGVjdGVkVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZHJvcGRvd25MaXN0SGVpZ2h0OiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBkcm9wZG93bkxpc3RXaWR0aDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgZHJvcGRvd25MaXN0UG9zaXRpb246IFwiTGVmdFwiIHwgXCJSaWdodFwiID0gXCJMZWZ0XCI7XG4gIEBJbnB1dCgpIGNvbmZpZ1xuICBASW5wdXQoKSBzZWFyY2hFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtOiBEcm9wZG93bkl0ZW0gPSB7IHZhbHVlOiBcIlwiLCBsYWJlbDogXCJcIiB9O1xuICBASW5wdXQoKSBub0RhdGFNZXNzYWdlOiBzdHJpbmcgPSBcIk5vIERhdGFcIjtcbiAgQElucHV0KCkgbXVsdGlMaW5lOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFkZGl0aW9uYWxJbmZvTWVzc2FnZSA6IHN0cmluZztcbiAgQElucHV0KCkgc2Nyb2xsSW50b1ZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoTGFiZWw6c3RyaW5nID0gXCJTZWFyY2ggS2V5d29yZFwiO1xuICBASW5wdXQoKSBjdXN0b21TdHlsZXM6ICB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBASW5wdXQoKSBhY3RpdmVJdGVtOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBWaWV3Q2hpbGQoXCJzZWxlY3RcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHNlbGVjdEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoXCJwb3B1cENvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcG9wdXBDb250YWluZXI6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICBwcml2YXRlIF9pdGVtc0NvbnRhaW5lcjogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xuICBAVmlld0NoaWxkKFwiaXRlbXNDb250YWluZXJcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHNldCBpdGVtc0NvbnRhaW5lcihjb250YWluZXI6IEVsZW1lbnRSZWYgfCBudWxsKSB7XG4gICAgdGhpcy5faXRlbXNDb250YWluZXIgPSBjb250YWluZXI7XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgdGhpcy5tZWFzdXJlQW5kVXBkYXRlSGVpZ2h0KCk7XG4gICAgfVxuICB9XG4gIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KSB2aWV3UG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuICBAQ29udGVudENoaWxkKFwibWlzQ3VzdG9tSXRlbVwiLCB7IHN0YXRpYzogZmFsc2UgfSkgY3VzdG9tSXRlbTogVGVtcGxhdGVSZWY8RWxlbWVudD47XG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZVJlZjogRWxlbWVudFJlZiwgXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cbiAgXG4gIG5nT25Jbml0KCkge1xuICB9XG5cblxuICBtZWFzdXJlQW5kVXBkYXRlSGVpZ2h0KCkge1xuICAgIGlmICghdGhpcy5pc09wZW4gfHwgIXRoaXMuX2l0ZW1zQ29udGFpbmVyKSByZXR1cm47XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9pdGVtc0NvbnRhaW5lcj8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBpdGVtcyA9IGNvbnRhaW5lcj8ucXVlcnlTZWxlY3RvckFsbCgnLml0ZW0nKTtcbiAgICBcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZHluYW1pY0hlaWdodCA9IFwiNTBweFwiO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIFxuICAgIGxldCB0b3RhbE1lYXN1cmVkSGVpZ2h0ID0gMDtcbiAgICBsZXQgbWF4SXRlbUhlaWdodCA9IDA7XG4gICAgXG4gICAgQXJyYXkuZnJvbShpdGVtcyk/LnNsaWNlKDAsIE1hdGgubWluKDgsIGl0ZW1zPy5sZW5ndGggfHwgMCkpPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCBodG1sSXRlbSA9IGl0ZW0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBsZXQgaXRlbUhlaWdodCA9IGh0bWxJdGVtPy5vZmZzZXRIZWlnaHQgfHwgMDsgLy9vZmZzZXRIZWlnaHQgaXMgbW9yZSByZWxpYWJsZSB0aGFuIGdldEJvdW5kaW5nQ2xpZW50UmVjdFxuICAgICAgdG90YWxNZWFzdXJlZEhlaWdodCArPSBpdGVtSGVpZ2h0O1xuICAgICAgbWF4SXRlbUhlaWdodCA9IE1hdGgubWF4KG1heEl0ZW1IZWlnaHQsIGl0ZW1IZWlnaHQpO1xuICAgIH0pO1xuICAgIC8vTmVlZGVkIHRvIGhhbmRsZSB0aGUgc2Nyb2xsYmFyIGNvbWluZyBmb3IgMi0zIGl0ZW1zIGNhc2VcbiAgICBjb25zdCBjb250YWluZXJQYWRkaW5nID0gODtcbiAgICBjb25zdCBmaW5hbEhlaWdodCA9IE1hdGgubWF4KDUwLCBNYXRoLm1pbih0b3RhbE1lYXN1cmVkSGVpZ2h0ICsgY29udGFpbmVyUGFkZGluZywgMzIwKSk7XG4gICAgXG4gICAgdGhpcy5keW5hbWljSGVpZ2h0ID0gdGhpcy5kcm9wZG93bkxpc3RIZWlnaHQgPyB0aGlzLmRyb3Bkb3duTGlzdEhlaWdodCA6IGAke2ZpbmFsSGVpZ2h0fXB4YDtcbiAgfVxuXG4gIGdldCBjdXJyZW50RGF0YSgpOiBEcm9wZG93bkl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoSW5wdXQgPyB0aGlzLnNlYXJjaERhdGEgOiB0aGlzLmRhdGE7XG4gIH1cblxuICBnZXQgaXRlbXNDb250YWluZXJTdHlsZSgpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2hlaWdodCc6IHRoaXMuZHluYW1pY0hlaWdodCxcbiAgICAgICdtYXgtaGVpZ2h0JzogJzMyMHB4JyxcbiAgICAgICdtaW4taGVpZ2h0JzogJzUwcHgnXG4gICAgfTtcbiAgfVxuXG4gIGdldEljb25TdHlsZXMoaXRlbTogYW55LCBhY3RpdmVJdGVtOiBib29sZWFuKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdjb2xvcic6IGl0ZW0gJiYgYWN0aXZlSXRlbSA/ICcjMDkzN0IyJyA6ICcnLFxuICAgICAgJ2ZvbnQtd2VpZ2h0JzogaXRlbSAmJiBhY3RpdmVJdGVtID8gJzcwMCcgOiAnJ1xuICAgIH07XG4gIH1cblxuc2V0VXBBc3luY0RhdGFTZWFyY2goKVxue1xuICBpZih0aGlzLmNvbmZpZylcbiAge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuY29uZmlnPy5kYXRhU3RyZWFtKCk/LnBpcGUoKT8uc3Vic2NyaWJlKHJlcz0+IHtcbiAgICAgICAgICB0aGlzLmRhdGEgPSByZXMgfHwgW11cbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5tZWFzdXJlQW5kVXBkYXRlSGVpZ2h0KCksIDYwKTtcbiAgICAgIH0pXG4gIH1cbiAgY29uc3QgaW5kZXggPSB0aGlzLmRhdGE/LmZpbmRJbmRleCgoZGF0YUl0ZW0pID0+IGRhdGFJdGVtPy52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZEl0ZW0/LnZhbHVlKSB8fCAtMTtcbiAgaWYgKHRoaXMuc2Nyb2xsSW50b1ZpZXcgJiYgdGhpcy52aWV3UG9ydClcbiAgICB0aGlzLnZpZXdQb3J0Py5zY3JvbGxUb0luZGV4KGluZGV4LCAnc21vb3RoJyk7XG59XG4gIGZpbHRlckJ5VmFsdWUoYXJyYXksIHN0cmluZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGFycmF5Py5maWx0ZXIobyA9PiBvPy5sYWJlbD8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoc3RyaW5nPy50b0xvd2VyQ2FzZSgpPy50cmltKCkpKSB8fCBbXTtcbiAgfVxuXG4gIGZpbHRlckJ5UHJpbWFyeVRleHQoYXJyYXksIHN0cmluZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGFycmF5Py5maWx0ZXIobyA9PiBvPy5sYWJlbD8ucHJpbWFyeVRleHQ/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKHN0cmluZz8udG9Mb3dlckNhc2UoKT8udHJpbSgpKSkgfHwgW107XG4gIH1cbiAgc2VhcmNoSW5wdXRPbkNoYW5nZShuZXdWYWx1ZSkge1xuICAgIHRoaXMuc2VhcmNoSW5wdXQgPSBuZXdWYWx1ZTtcbiAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoRGF0YSA9IHRoaXMubXVsdGlMaW5lID8gdGhpcy5maWx0ZXJCeVByaW1hcnlUZXh0KHRoaXMuZGF0YSwgbmV3VmFsdWUpIDogdGhpcy5maWx0ZXJCeVZhbHVlKHRoaXMuZGF0YSwgbmV3VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaERhdGEgPSBbXTtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQgPSBcIlwiO1xuICAgIH1cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5tZWFzdXJlQW5kVXBkYXRlSGVpZ2h0KCkpO1xuICB9XG4gIHNlYXJjaElucHV0Rm9jdXNlZChpc0ZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzU2VhcmNoSW5wdXRGb2N1c2VkID0gaXNGb2N1c2VkO1xuICB9XG4gIHNlYXJjaElucHV0Q2FuY2VsZWQoZXZlbnQpIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zZWFyY2hJbnB1dCA9IFwiXCI7XG4gICAgdGhpcy5pc1NlYXJjaElucHV0Rm9jdXNlZCA9IGZhbHNlO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLm1lYXN1cmVBbmRVcGRhdGVIZWlnaHQoKSk7XG4gIH1cbiAgdG9nZ2xlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLm9wZW5Ecm9wZG93bih0aGlzLnBvcHVwQ29udGFpbmVyLCB0aGlzLnNlbGVjdEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMubWVhc3VyZUFuZFVwZGF0ZUhlaWdodCgpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIG9wZW5Ecm9wZG93bih0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8RWxlbWVudD4sIG9yaWdpbjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb3NpdGlvbnNCb3R0b20gPSBbXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwic3RhcnRcIiwgb3JpZ2luWTogXCJib3R0b21cIiB9LCB7IG92ZXJsYXlYOiBcInN0YXJ0XCIsIG92ZXJsYXlZOiBcInRvcFwiIH0sIDAsIDQpLFxuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcImVuZFwiLCBvcmlnaW5ZOiBcImJvdHRvbVwiIH0sIHsgb3ZlcmxheVg6IFwiZW5kXCIsIG92ZXJsYXlZOiBcInRvcFwiIH0sIDAsIDQpXG4gICAgXTtcbiAgICBjb25zdCBwb3NpdGlvbnNUb3AgPSBbXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwic3RhcnRcIiwgb3JpZ2luWTogXCJ0b3BcIiB9LCB7IG92ZXJsYXlYOiBcInN0YXJ0XCIsIG92ZXJsYXlZOiBcImJvdHRvbVwiIH0sIDAsIC00KSxcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJlbmRcIiwgb3JpZ2luWTogXCJ0b3BcIiB9LCB7IG92ZXJsYXlYOiBcImVuZFwiLCBvdmVybGF5WTogXCJib3R0b21cIiB9LCAwLCAtNClcbiAgICBdO1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhvcmlnaW4pXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIC4uLih0aGlzLmRyb3Bkb3duTGlzdFBvc2l0aW9uID09PSBcIlJpZ2h0XCIgPyBwb3NpdGlvbnNCb3R0b20ucmV2ZXJzZSgpIDogcG9zaXRpb25zQm90dG9tKSxcbiAgICAgICAgLi4uKHRoaXMuZHJvcGRvd25MaXN0UG9zaXRpb24gPT09IFwiUmlnaHRcIiA/IHBvc2l0aW9uc1RvcC5yZXZlcnNlKCkgOiBwb3NpdGlvbnNUb3ApXG4gICAgICBdKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuICAgIGNvbnN0IGNvbmZpZ3MgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IFwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIixcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgd2lkdGg6IG9yaWdpbj8uY2xpZW50V2lkdGhcbiAgICB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZ3MpO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdFdpZHRoKSB0aGlzLm92ZXJsYXlSZWY/LnVwZGF0ZVNpemUoeyB3aWR0aDogdGhpcy5kcm9wZG93bkxpc3RXaWR0aCB9KTtcbiAgICBpZiAodGhpcy5kcm9wZG93bkxpc3RIZWlnaHQpIHRoaXMub3ZlcmxheVJlZj8udXBkYXRlU2l6ZSh7IGhlaWdodDogdGhpcy5kcm9wZG93bkxpc3RIZWlnaHQgfSk7XG4gICAgdGhpcy5vdmVybGF5UmVmPy5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmJhY2tkcm9wQ2xpY2soKT8uc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLm9uQ2FuY2VsKCk7XG4gICAgfSk7XG4gIH1cbiAgc2VsZWN0SXRlbShpdGVtKSB7XG4gICAgdGhpcy5vbkNoYW5nZT8uZW1pdChpdGVtKTsgIFxuICAgIHRoaXMudG9nZ2xlRHJvcGRvd24oKTtcbiAgfVxuICBvbkNhbmNlbCgpIHtcbiAgICB0aGlzLmlzU2VhcmNoSW5wdXRGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgIHRoaXMuc2VhcmNoSW5wdXQgPSBcIlwiO1xuICAgIHRoaXMuX2l0ZW1zQ29udGFpbmVyID0gbnVsbDsgLy8gUmVzZXQgY29udGFpbmVyIHJlZmVyZW5jZSB0byBlbnN1cmUgZnJlc2ggc2V0dXAgb24gbmV4dCBvcGVuXG4gIH1cbiAgXG4gIEBIb3N0TGlzdGVuZXIoXCJrZXl1cC5lc2NcIiwgWyckZXZlbnQnXSlcbiAgY2xvc2VPbkVzYyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMub25DYW5jZWwoKTtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25JdGVtIHtcbiAgbGFiZWw6IGFueSA7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgY3VzdG9tSWNvbj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25JdGVtTGFiZWwge1xuICBwcmltYXJ5VGV4dCA/OiBzdHJpbmc7XG4gIHNlY29uZGFyeVRleHQgPzogc3RyaW5nO1xufVxuIiwiPGRpdiAoY2xpY2spPVwic2V0VXBBc3luY0RhdGFTZWFyY2goKVwiXG4oa2V5dXAuZW50ZXIpPVwic2V0VXBBc3luY0RhdGFTZWFyY2goKVwiXG4gIGNsYXNzPVwibWFpbi1jb250YWluZXJcIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgaGVpZ2h0OiBoZWlnaHQubGVuZ3RoID4gMCA/IGhlaWdodCA6ICcnLFxuICAgIHdpZHRoOiB3aWR0aC5sZW5ndGggPiAwID8gd2lkdGggOiAnJ1xuICB9XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZHJvcGRvd25cIlxuICAgICNzZWxlY3RcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIChrZXl1cC5lbnRlcik9XCJ0b2dnbGVEcm9wZG93bigpXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiXG4gICAgW25nU3R5bGVdPVwiY3VzdG9tU3R5bGVzXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW25nQ2xhc3NdPVwiaXNPcGVuID8gJ2Ryb3Bkb3duLXBvcnQnOiAnJ1wiXG4gID5cbiAgICA8aW1nIGNsYXNzPVwiaW1nLWNvbnRhaW5lclwiIFt3aWR0aF09XCIxNlwiIFtoZWlnaHRdPVwiMTZcIiBbc3JjXT1cInNlbGVjdGVkSXRlbT8uY3VzdG9tSWNvblwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtPy5jdXN0b21JY29uXCI+XG4gICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgW25nU3R5bGVdPVwie3dpZHRoOiBzZWxlY3RlZEl0ZW0/LmN1c3RvbUljb24gPyAnY2FsYygxMDAlIC0gNDhweCknIDogJ2NhbGMoMTAwJSAtIDMycHgpJ31cIj5cbiAgICAgIDxwIGNsYXNzPVwidGV4dFwiICpuZ0lmPVwiIXNob3dPbmx5SWNvbjsgZWxzZSBzaG93SWNvblwiPlxuICAgICAgICB7eyBtdWx0aUxpbmUgPyBzZWxlY3RlZEl0ZW0/LmxhYmVsPy5wcmltYXJ5VGV4dCA6IHNlbGVjdGVkSXRlbT8ubGFiZWwgfHwgbGFiZWwgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0ljb24+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dFwiICpuZ0lmPVwiIXNlbGVjdGVkSXRlbT8uaWNvblwiPlxuICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGltZyBjbGFzcz1cImljb25cIiAqbmdJZj1cIiEhc2VsZWN0ZWRJdGVtPy5pY29uXCIgW3NyY109XCJzZWxlY3RlZEl0ZW0/Lmljb25cIiBhbHQ9XCJubyBpbWdcIiAvPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8c3ZnXG4gICAgICBjbGFzcz1cImhhbmRsZVwiXG4gICAgICBbbmdTdHlsZV09XCJ7IHRyYW5zZm9ybTogaXNPcGVuID8gJ3JvdGF0ZSgxODBkZWcpJyA6ICdyb3RhdGUoMGRlZyknIH1cIlxuICAgICAgd2lkdGg9XCIyMFwiXG4gICAgICBoZWlnaHQ9XCIyMFwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk0xMy44MjUgNy4xNTg0NUwxMCAxMC45NzUxTDYuMTc1IDcuMTU4NDVMNSA4LjMzMzQ1TDEwIDEzLjMzMzRMMTUgOC4zMzM0NUwxMy44MjUgNy4xNTg0NVpcIlxuICAgICAgICBmaWxsPVwiIzE4MUYzM1wiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNwb3B1cENvbnRhaW5lcj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicG9wdXAtY29udGFpbmVyXCIgY2RrVHJhcEZvY3VzIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCIgdGFiaW5kZXg9XCIwXCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICBoZWlnaHQ6IGRyb3Bkb3duTGlzdEhlaWdodCxcbiAgICAgIHdpZHRoOiBkcm9wZG93bkxpc3RXaWR0aFxuICAgIH1cIlxuICAgIChrZXl1cC5lc2MpPVwiY2xvc2VPbkVzYygkZXZlbnQpXCJcbiAgICBhcmlhLWxhYmVsPVwiZHJvcGRvd25cIlxuICA+XG4gICAgPGRpdiAqbmdJZj1cInNlYXJjaEVuYWJsZWRcIiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIj5cbiAgICAgIDxzdmdcbiAgICAgICAgKm5nSWY9XCIhaXNTZWFyY2hJbnB1dEZvY3VzZWRcIlxuICAgICAgICBjbGFzcz1cInNlYXJjaC1pY29uXCJcbiAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICA+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgZD1cIk00LjIxNTA4IDExLjE0NTZDNC4yMTUwOCA3LjMxNzkgNy4zMzcyMiA0LjIxMTY1IDExLjE5MjYgNC4yMTE2NUMxNS4wNDggNC4yMTE2NSAxOC4xNzAyIDcuMzE3OSAxOC4xNzAyIDExLjE0NTZDMTguMTcwMiAxMi42OTMxIDE3LjY1OTkgMTQuMTIyNiAxNi43OTcyIDE1LjI3NjdMMTUuMzY4NSAxNi43MDEzQzE0LjIwNDQgMTcuNTY2OCAxMi43NTkgMTguMDc5NiAxMS4xOTI2IDE4LjA3OTZDNy4zMzcyMiAxOC4wNzk2IDQuMjE1MDggMTQuOTczNCA0LjIxNTA4IDExLjE0NTZaTTE1Ljk0MjEgMTcuNzgzNUMxNC42MDIxIDE4LjczMjkgMTIuOTYyNyAxOS4yOTEzIDExLjE5MjYgMTkuMjkxM0M2LjY2OTc3IDE5LjI5MTMgMyAxNS42NDYxIDMgMTEuMTQ1NkMzIDYuNjQ1MTIgNi42Njk3NyAzIDExLjE5MjYgM0MxNS43MTU1IDMgMTkuMzg1MiA2LjY0NTEyIDE5LjM4NTIgMTEuMTQ1NkMxOS4zODUyIDEyLjkzNzEgMTguODAzNyAxNC41OTMxIDE3LjgxODQgMTUuOTM3NUwxOS44MzYxIDE3LjQwNDhDMjAuNjcwNSAxNy45MTIgMjEuNzU1NCAxOC42NTQzIDIwLjI0NTQgMjAuMjE1QzE4LjczNTMgMjEuNzc1NiAxOC4wMDk5IDIwLjY2NjMgMTcuNDk5MSAxOS44MzY0TDE1Ljk0MjEgMTcuNzgzNVpcIlxuICAgICAgICAgIGZpbGw9XCIjNkE3MzdEXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgICAgPGlucHV0XG4gICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaElucHV0XCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIHBhZGRpbmdMZWZ0OiBpc1NlYXJjaElucHV0Rm9jdXNlZCA/ICcxMnB4JyA6ICc0NXB4JyxcbiAgICAgICAgICBib3JkZXI6IGlzU2VhcmNoSW5wdXRGb2N1c2VkID8gJzFweCBzb2xpZCAjMDkzN0IyJyA6ICcxcHggc29saWQgI2UwZTBlMCcsXG4gICAgICAgICAgcGFkZGluZ1JpZ2h0OiBpc1NlYXJjaElucHV0Rm9jdXNlZCA/ICc0NXB4JyA6ICcxMHB4J1xuICAgICAgICB9XCJcbiAgICAgICAgW3RhYkluZGV4XT1cIjBcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hJbnB1dE9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaXNTZWFyY2hJbnB1dEZvY3VzZWQgPyAnJyA6IHNlYXJjaExhYmVsXCJcbiAgICAgICAgKGZvY3VzKT1cInNlYXJjaElucHV0Rm9jdXNlZCh0cnVlKVwiXG4gICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWFyY2hMYWJlbFwiXG4gICAgICAvPlxuICAgICAgPHN2Z1xuICAgICAgICAqbmdJZj1cImlzU2VhcmNoSW5wdXRGb2N1c2VkXCJcbiAgICAgICAgY2xhc3M9XCJjYW5jZWwtaWNvblwiXG4gICAgICAgIChjbGljayk9XCJzZWFyY2hJbnB1dENhbmNlbGVkKCRldmVudClcIlxuICAgICAgICB3aWR0aD1cIjI0XCJcbiAgICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgID5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBkPVwiTTguODc0NDYgNy4zMjE0NEM4LjQ0NTg4IDYuODkyODUgNy43NTEgNi44OTI4NSA3LjMyMjQyIDcuMzIxNDRDNi44OTM4MyA3Ljc1MDAyIDYuODkzODMgOC40NDQ5IDcuMzIyNDIgOC44NzM0OUwxMC40NDg4IDExLjk5OTlMNy4zMjM1NyAxNS4xMjUyQzYuODk0OTggMTUuNTUzOCA2Ljg5NDk4IDE2LjI0ODYgNy4zMjM1NyAxNi42NzcyQzcuNzUyMTUgMTcuMTA1OCA4LjQ0NzAzIDE3LjEwNTggOC44NzU2MSAxNi42NzcyTDEyLjAwMDkgMTMuNTUyTDE1LjEyNjEgMTYuNjc3MkMxNS41NTQ3IDE3LjEwNTggMTYuMjQ5NiAxNy4xMDU4IDE2LjY3ODEgMTYuNjc3MkMxNy4xMDY3IDE2LjI0ODYgMTcuMTA2NyAxNS41NTM3IDE2LjY3ODEgMTUuMTI1MUwxMy41NTI5IDExLjk5OTlMMTYuNjc5MyA4Ljg3MzU0QzE3LjEwNzkgOC40NDQ5NiAxNy4xMDc5IDcuNzUwMDggMTYuNjc5MyA3LjMyMTVDMTYuMjUwNyA2Ljg5MjkxIDE1LjU1NTggNi44OTI5MSAxNS4xMjczIDcuMzIxNUwxMi4wMDA5IDEwLjQ0NzlMOC44NzQ0NiA3LjMyMTQ0WlwiXG4gICAgICAgICAgZmlsbD1cIiM2QTczN0RcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInN0YXR1cy1jb250YWluZXJcIiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgIDxtaXMtbG9hZGVyIFttb2JpbGVWaWV3XT1cInRydWVcIj48L21pcy1sb2FkZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiB0YWJpbmRleD1cIi0xXCIgKm5nSWY9XCIhc2VhcmNoRW5hYmxlZFwiIGNka0ZvY3VzSW5pdGlhbD48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbXNcIiAjaXRlbXNDb250YWluZXIgW25nU3R5bGVdPVwiaXRlbXNDb250YWluZXJTdHlsZVwiICpuZ0lmPVwiIWxvYWRpbmcgXCI+XG4gICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0ICpuZ0lmPVwiY3VycmVudERhdGEubGVuZ3RoID4gMFwiIFtpdGVtU2l6ZV09XCJpdGVtU2l6ZUZvckNka1wiIGNsYXNzPVwiZHJvcGRvd24tdmlld3BvcnRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIml0ZW1cIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpdGVtLWRpc2FibGVkJzogaXRlbS5kaXNhYmxlZCwgJ2l0ZW0tc2VsZWN0ZWQnOiAoaGlnbGlnaHRTZWxlY3RlZFZhbHVlICYmIGl0ZW0udmFsdWUgPT09IHNlbGVjdGVkSXRlbT8udmFsdWUpLCAnaWNvbi1vbmx5JyA6IHNob3dPbmx5SWNvbiB9XCJcbiAgICAgICAgKGNsaWNrKT1cIml0ZW0uZGlzYWJsZWQgPyBudWxsIDogc2VsZWN0SXRlbShpdGVtKVwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJpdGVtLmRpc2FibGVkID8gbnVsbCA6IHNlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGN1cnJlbnREYXRhO1wiXG4gICAgICAgIHRhYkluZGV4PVwiMFwiXG4gICAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUl0ZW07IGVsc2Ugc3RhbmRhcmRJdGVtXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21JdGVtXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RhbmRhcmRJdGVtPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiICpuZ0lmPVwiIXNob3dPbmx5SWNvblwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGl0ZW0uaWNvbiA/ICc5MCUnIDogJzEwMCUnLCAnZGlzcGxheSc6IG11bHRpTGluZSA/ICdmbGV4JzogJ2luaGVyaXQnLCAnZmxleC1kaXJlY3Rpb24nOiBtdWx0aUxpbmUgPyAnY29sdW1uJzogJ2luaGVyaXQnIH1cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJpbWFyeVRleHRcIiBbbmdTdHlsZV09XCJnZXRJY29uU3R5bGVzKGl0ZW0uaWNvbiwgYWN0aXZlSXRlbSlcIj57eyBtdWx0aUxpbmUgPyBpdGVtPy5sYWJlbD8ucHJpbWFyeVRleHQgOiBpdGVtPy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2Vjb25kYXJ5VGV4dFwiICpuZ0lmPVwibXVsdGlMaW5lXCIgW25nU3R5bGVdPVwiZ2V0SWNvblN0eWxlcyhpdGVtLmljb24sIGFjdGl2ZUl0ZW0pXCI+IHt7IGl0ZW0/LmxhYmVsPy5zZWNvbmRhcnlUZXh0ID8gaXRlbT8ubGFiZWw/LnNlY29uZGFyeVRleHQgOiBhZGRpdGlvbmFsSW5mb01lc3NhZ2UgIH19IDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIiAqbmdJZj1cIml0ZW0uaWNvblwiPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImljb25cIiBbc3JjXT1cIml0ZW0uaWNvblwiIGFsdD1cIm5vIGltZ1wiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICAgIDxkaXYgY2xhc3M9XCJub0RhdGFcIiAqbmdJZj1cImN1cnJlbnREYXRhLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICB7eyBzZWFyY2hJbnB1dCA9PT0gXCJcIiA/IG5vRGF0YU1lc3NhZ2UgOiBcIk5vIHJlc3VsdHNcIiB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
521
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsU0FBUyxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNwTCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNlOUQsMEJBQXdIOzs7SUFBbEUsQUFBZCxBQUFiLDBCQUFZLGNBQWMsOEZBQWlDOzs7SUFFcEYsNkJBQXFEO0lBQ25ELFlBQ0Y7SUFBQSxpQkFBSTs7O0lBREYsY0FDRjtJQURFLDRQQUNGOzs7SUFFRSw2QkFBNEM7SUFDMUMsWUFDRjtJQUFBLGlCQUFJOzs7SUFERixjQUNGO0lBREUsNkNBQ0Y7OztJQUNBLDBCQUF5Rjs7O0lBQTFDLHFHQUEwQjs7O0lBQXpFLEFBSEEsNkVBQTRDLG9FQUc2Qzs7O0lBSHhFLHVGQUF5QjtJQUd2QixjQUEwQjtJQUExQix3RkFBMEI7Ozs7SUFnQy9DLCtCQVFDO0lBQ0MsMkJBS0U7SUFDSixpQkFBTTs7Ozs7SUFlTiwrQkFTQztJQU5DLDJNQUFTLGtDQUEyQixLQUFDO0lBT3JDLDJCQUtFO0lBQ0osaUJBQU07Ozs7SUEvQ1IsK0JBQW9EO0lBQ2xELDZGQVFDO0lBUUQsaUNBYUU7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b0JBQW9CO2tCQUE1QixLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNHLHFCQUFxQjtrQkFBN0IsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFDSSxRQUFRO2tCQUFqQixNQUFNO1lBQ2lDLGFBQWE7a0JBQXBELFNBQVM7bUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNVLGNBQWM7a0JBQTdELFNBQVM7bUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBRU0sY0FBYztrQkFBakUsU0FBUzttQkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFNVCxRQUFRO2tCQUE1QyxTQUFTO21CQUFDLHdCQUF3QjtZQUNlLFVBQVU7a0JBQTNELFlBQVk7bUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQThKaEQsVUFBVTtrQkFEVCxZQUFZO21CQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0ZBck0xQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyLCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtZHJvcGRvd25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vZHJvcGRvd24uY29tcG9uZW50LnNjc3NcIl0sXG4gIFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGlzT3BlbiA9IGZhbHNlO1xuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU2VhcmNoSW5wdXRGb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG4gIHNlYXJjaElucHV0OiBzdHJpbmcgPSBcIlwiO1xuICBzZWFyY2hEYXRhOiBEcm9wZG93bkl0ZW1bXSA9IFtdO1xuICB2aXNpYmxlSXRlbXMgPSAxMDtcbiAgZHluYW1pY0hlaWdodDogc3RyaW5nID0gXCJhdXRvXCI7XG4gIEBJbnB1dCgpIGRhdGE6IERyb3Bkb3duSXRlbVtdICA9IFtdO1xuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSBcIlNlbGVjdFwiO1xuICBASW5wdXQoKSBpdGVtU2l6ZUZvckNkazogbnVtYmVyO1xuICBASW5wdXQoKSBzaG93T25seUljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaGlnbGlnaHRTZWxlY3RlZFZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRyb3Bkb3duTGlzdEhlaWdodDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgZHJvcGRvd25MaXN0V2lkdGg6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGRyb3Bkb3duTGlzdFBvc2l0aW9uOiBcIkxlZnRcIiB8IFwiUmlnaHRcIiA9IFwiTGVmdFwiO1xuICBASW5wdXQoKSBjb25maWdcbiAgQElucHV0KCkgc2VhcmNoRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbTogRHJvcGRvd25JdGVtID0geyB2YWx1ZTogXCJcIiwgbGFiZWw6IFwiXCIgfTtcbiAgQElucHV0KCkgbm9EYXRhTWVzc2FnZTogc3RyaW5nID0gXCJObyBEYXRhXCI7XG4gIEBJbnB1dCgpIG11bHRpTGluZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhZGRpdGlvbmFsSW5mb01lc3NhZ2UgOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNjcm9sbEludG9WaWV3OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlYXJjaExhYmVsOnN0cmluZyA9IFwiU2VhcmNoIEtleXdvcmRcIjtcbiAgQElucHV0KCkgY3VzdG9tU3R5bGVzOiAgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgQElucHV0KCkgYWN0aXZlSXRlbTogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAVmlld0NoaWxkKFwic2VsZWN0XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWxlY3RFbGVtZW50OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKFwicG9wdXBDb250YWluZXJcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHBvcHVwQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgcHJpdmF0ZSBfaXRlbXNDb250YWluZXI6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcbiAgQFZpZXdDaGlsZChcIml0ZW1zQ29udGFpbmVyXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBzZXQgaXRlbXNDb250YWluZXIoY29udGFpbmVyOiBFbGVtZW50UmVmIHwgbnVsbCkge1xuICAgIHRoaXMuX2l0ZW1zQ29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgIHRoaXMubWVhc3VyZUFuZFVwZGF0ZUhlaWdodCgpO1xuICAgIH1cbiAgfVxuICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCkgdmlld1BvcnQ6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcbiAgQENvbnRlbnRDaGlsZChcIm1pc0N1c3RvbUl0ZW1cIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGN1c3RvbUl0ZW06IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVSZWY6IEVsZW1lbnRSZWYsIFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG4gIFxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG5cbiAgbWVhc3VyZUFuZFVwZGF0ZUhlaWdodCgpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuIHx8ICF0aGlzLl9pdGVtc0NvbnRhaW5lcikgcmV0dXJuO1xuXG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5faXRlbXNDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgaXRlbXMgPSBjb250YWluZXI/LnF1ZXJ5U2VsZWN0b3JBbGwoJy5pdGVtJyk7XG4gICAgXG4gICAgaWYgKCFpdGVtcyB8fCBpdGVtcz8ubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmR5bmFtaWNIZWlnaHQgPSBcIjUwcHhcIjtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBcbiAgICBsZXQgdG90YWxNZWFzdXJlZEhlaWdodCA9IDA7XG4gICAgbGV0IG1heEl0ZW1IZWlnaHQgPSAwO1xuICAgIFxuICAgIEFycmF5LmZyb20oaXRlbXMpPy5zbGljZSgwLCBNYXRoLm1pbig4LCBpdGVtcz8ubGVuZ3RoIHx8IDApKT8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgaHRtbEl0ZW0gPSBpdGVtIGFzIEhUTUxFbGVtZW50O1xuICAgICAgbGV0IGl0ZW1IZWlnaHQgPSBodG1sSXRlbT8ub2Zmc2V0SGVpZ2h0IHx8IDA7IC8vb2Zmc2V0SGVpZ2h0IGlzIG1vcmUgcmVsaWFibGUgdGhhbiBnZXRCb3VuZGluZ0NsaWVudFJlY3RcbiAgICAgIHRvdGFsTWVhc3VyZWRIZWlnaHQgKz0gaXRlbUhlaWdodDtcbiAgICAgIG1heEl0ZW1IZWlnaHQgPSBNYXRoLm1heChtYXhJdGVtSGVpZ2h0LCBpdGVtSGVpZ2h0KTtcbiAgICB9KTtcbiAgICAvL05lZWRlZCB0byBoYW5kbGUgdGhlIHNjcm9sbGJhciBjb21pbmcgZm9yIDItMyBpdGVtcyBjYXNlXG4gICAgY29uc3QgY29udGFpbmVyUGFkZGluZyA9IDg7XG4gICAgY29uc3QgZmluYWxIZWlnaHQgPSBNYXRoLm1heCg1MCwgTWF0aC5taW4odG90YWxNZWFzdXJlZEhlaWdodCArIGNvbnRhaW5lclBhZGRpbmcsIDMyMCkpO1xuICAgIFxuICAgIHRoaXMuZHluYW1pY0hlaWdodCA9IHRoaXMuZHJvcGRvd25MaXN0SGVpZ2h0ID8gdGhpcy5kcm9wZG93bkxpc3RIZWlnaHQgOiBgJHtmaW5hbEhlaWdodH1weGA7XG4gIH1cblxuICBnZXQgY3VycmVudERhdGEoKTogRHJvcGRvd25JdGVtW10ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaElucHV0ID8gdGhpcy5zZWFyY2hEYXRhIDogdGhpcy5kYXRhO1xuICB9XG5cbiAgZ2V0IGl0ZW1zQ29udGFpbmVyU3R5bGUoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdoZWlnaHQnOiB0aGlzLmR5bmFtaWNIZWlnaHQsXG4gICAgICAnbWF4LWhlaWdodCc6ICczMjBweCcsXG4gICAgICAnbWluLWhlaWdodCc6ICc1MHB4J1xuICAgIH07XG4gIH1cblxuICBnZXRJY29uU3R5bGVzKGl0ZW06IGFueSwgYWN0aXZlSXRlbTogYm9vbGVhbik6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiB7XG4gICAgICAnY29sb3InOiBpdGVtICYmIGFjdGl2ZUl0ZW0gPyAnIzA5MzdCMicgOiAnJyxcbiAgICAgICdmb250LXdlaWdodCc6IGl0ZW0gJiYgYWN0aXZlSXRlbSA/ICc3MDAnIDogJydcbiAgICB9O1xuICB9XG5cbnNldFVwQXN5bmNEYXRhU2VhcmNoKClcbntcbiAgaWYodGhpcy5jb25maWcpXG4gIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmNvbmZpZz8uZGF0YVN0cmVhbSgpPy5waXBlKCk/LnN1YnNjcmliZShyZXM9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhID0gcmVzIHx8IFtdXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubWVhc3VyZUFuZFVwZGF0ZUhlaWdodCgpLCA2MCk7XG4gICAgICB9KVxuICB9XG4gIGNvbnN0IGluZGV4ID0gdGhpcy5kYXRhPy5maW5kSW5kZXgoKGRhdGFJdGVtKSA9PiBkYXRhSXRlbT8udmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRJdGVtPy52YWx1ZSkgfHwgLTE7XG4gIGlmICh0aGlzLnNjcm9sbEludG9WaWV3ICYmIHRoaXMudmlld1BvcnQpXG4gICAgdGhpcy52aWV3UG9ydD8uc2Nyb2xsVG9JbmRleChpbmRleCwgJ3Ntb290aCcpO1xufVxuICBmaWx0ZXJCeVZhbHVlKGFycmF5LCBzdHJpbmc6IHN0cmluZykge1xuICAgIHJldHVybiBhcnJheT8uZmlsdGVyKG8gPT4gbz8ubGFiZWw/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKHN0cmluZz8udG9Mb3dlckNhc2UoKT8udHJpbSgpKSkgfHwgW107XG4gIH1cblxuICBmaWx0ZXJCeVByaW1hcnlUZXh0KGFycmF5LCBzdHJpbmc6IHN0cmluZykge1xuICAgIHJldHVybiBhcnJheT8uZmlsdGVyKG8gPT4gbz8ubGFiZWw/LnByaW1hcnlUZXh0Py50b0xvd2VyQ2FzZSgpPy5pbmNsdWRlcyhzdHJpbmc/LnRvTG93ZXJDYXNlKCk/LnRyaW0oKSkpIHx8IFtdO1xuICB9XG4gIHNlYXJjaElucHV0T25DaGFuZ2UobmV3VmFsdWUpIHtcbiAgICB0aGlzLnNlYXJjaElucHV0ID0gbmV3VmFsdWU7XG4gICAgaWYgKG5ld1ZhbHVlKSB7XG4gICAgICB0aGlzLnNlYXJjaERhdGEgPSB0aGlzLm11bHRpTGluZSA/IHRoaXMuZmlsdGVyQnlQcmltYXJ5VGV4dCh0aGlzLmRhdGEsIG5ld1ZhbHVlKSA6IHRoaXMuZmlsdGVyQnlWYWx1ZSh0aGlzLmRhdGEsIG5ld1ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWFyY2hEYXRhID0gW107XG4gICAgICB0aGlzLnNlYXJjaElucHV0ID0gXCJcIjtcbiAgICB9XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMubWVhc3VyZUFuZFVwZGF0ZUhlaWdodCgpKTtcbiAgfVxuICBzZWFyY2hJbnB1dEZvY3VzZWQoaXNGb2N1c2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1NlYXJjaElucHV0Rm9jdXNlZCA9IGlzRm9jdXNlZDtcbiAgfVxuICBzZWFyY2hJbnB1dENhbmNlbGVkKGV2ZW50KSB7XG4gICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2VhcmNoSW5wdXQgPSBcIlwiO1xuICAgIHRoaXMuaXNTZWFyY2hJbnB1dEZvY3VzZWQgPSBmYWxzZTtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5tZWFzdXJlQW5kVXBkYXRlSGVpZ2h0KCkpO1xuICB9XG4gIHRvZ2dsZURyb3Bkb3duKCkge1xuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5vcGVuRHJvcGRvd24odGhpcy5wb3B1cENvbnRhaW5lciwgdGhpcy5zZWxlY3RFbGVtZW50Py5uYXRpdmVFbGVtZW50KTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLm1lYXN1cmVBbmRVcGRhdGVIZWlnaHQoKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25DYW5jZWwoKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBvcGVuRHJvcGRvd24odGVtcGxhdGU6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+LCBvcmlnaW46IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9zaXRpb25zQm90dG9tID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwiYm90dG9tXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KSxcbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWDogXCJlbmRcIiwgb3JpZ2luWTogXCJib3R0b21cIiB9LCB7IG92ZXJsYXlYOiBcImVuZFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9LCAwLCA0KVxuICAgIF07XG4gICAgY29uc3QgcG9zaXRpb25zVG9wID0gW1xuICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJib3R0b21cIiB9LCAwLCAtNCksXG4gICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwiZW5kXCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJlbmRcIiwgb3ZlcmxheVk6IFwiYm90dG9tXCIgfSwgMCwgLTQpXG4gICAgXTtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8ob3JpZ2luKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAuLi4odGhpcy5kcm9wZG93bkxpc3RQb3NpdGlvbiA9PT0gXCJSaWdodFwiID8gcG9zaXRpb25zQm90dG9tLnJldmVyc2UoKSA6IHBvc2l0aW9uc0JvdHRvbSksXG4gICAgICAgIC4uLih0aGlzLmRyb3Bkb3duTGlzdFBvc2l0aW9uID09PSBcIlJpZ2h0XCIgPyBwb3NpdGlvbnNUb3AucmV2ZXJzZSgpIDogcG9zaXRpb25zVG9wKVxuICAgICAgXSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKTtcbiAgICBjb25zdCBjb25maWdzID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCIsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuYmxvY2soKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICB3aWR0aDogb3JpZ2luPy5jbGllbnRXaWR0aFxuICAgIH0pO1xuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlncyk7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25MaXN0V2lkdGgpIHRoaXMub3ZlcmxheVJlZj8udXBkYXRlU2l6ZSh7IHdpZHRoOiB0aGlzLmRyb3Bkb3duTGlzdFdpZHRoIH0pO1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTGlzdEhlaWdodCkgdGhpcy5vdmVybGF5UmVmPy51cGRhdGVTaXplKHsgaGVpZ2h0OiB0aGlzLmRyb3Bkb3duTGlzdEhlaWdodCB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMub3ZlcmxheVJlZj8uYmFja2Ryb3BDbGljaygpPy5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMub25DYW5jZWwoKTtcbiAgICB9KTtcbiAgfVxuICBzZWxlY3RJdGVtKGl0ZW0pIHtcbiAgICB0aGlzLm9uQ2hhbmdlPy5lbWl0KGl0ZW0pOyAgXG4gICAgdGhpcy50b2dnbGVEcm9wZG93bigpO1xuICB9XG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuaXNTZWFyY2hJbnB1dEZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgdGhpcy5zZWFyY2hJbnB1dCA9IFwiXCI7XG4gICAgdGhpcy5faXRlbXNDb250YWluZXIgPSBudWxsOyAvLyBSZXNldCBjb250YWluZXIgcmVmZXJlbmNlIHRvIGVuc3VyZSBmcmVzaCBzZXR1cCBvbiBuZXh0IG9wZW5cbiAgfVxuICBcbiAgQEhvc3RMaXN0ZW5lcihcImtleXVwLmVzY1wiLCBbJyRldmVudCddKVxuICBjbG9zZU9uRXNjKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93bkl0ZW0ge1xuICBsYWJlbDogYW55IDtcbiAgdmFsdWU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBjdXN0b21JY29uPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkl0ZW1MYWJlbCB7XG4gIHByaW1hcnlUZXh0ID86IHN0cmluZztcbiAgc2Vjb25kYXJ5VGV4dCA/OiBzdHJpbmc7XG59XG4iLCI8ZGl2IChjbGljayk9XCJzZXRVcEFzeW5jRGF0YVNlYXJjaCgpXCJcbihrZXl1cC5lbnRlcik9XCJzZXRVcEFzeW5jRGF0YVNlYXJjaCgpXCJcbiAgY2xhc3M9XCJtYWluLWNvbnRhaW5lclwiXG4gIFtuZ1N0eWxlXT1cIntcbiAgICBoZWlnaHQ6IGhlaWdodC5sZW5ndGggPiAwID8gaGVpZ2h0IDogJycsXG4gICAgd2lkdGg6IHdpZHRoLmxlbmd0aCA+IDAgPyB3aWR0aCA6ICcnXG4gIH1cIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJkcm9wZG93blwiXG4gICAgI3NlbGVjdFxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgKGtleXVwLmVudGVyKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigpXCJcbiAgICBbbmdTdHlsZV09XCJjdXN0b21TdHlsZXNcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbbmdDbGFzc109XCJpc09wZW4gPyAnZHJvcGRvd24tcG9ydCc6ICcnXCJcbiAgPlxuICAgIDxpbWcgY2xhc3M9XCJpbWctY29udGFpbmVyXCIgW3dpZHRoXT1cIjE2XCIgW2hlaWdodF09XCIxNlwiIFtzcmNdPVwic2VsZWN0ZWRJdGVtPy5jdXN0b21JY29uXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW0/LmN1c3RvbUljb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiBbbmdTdHlsZV09XCJ7d2lkdGg6IHNlbGVjdGVkSXRlbT8uY3VzdG9tSWNvbiA/ICdjYWxjKDEwMCUgLSA0OHB4KScgOiAnY2FsYygxMDAlIC0gMzJweCknfVwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCIhc2hvd09ubHlJY29uOyBlbHNlIHNob3dJY29uXCI+XG4gICAgICAgIHt7IG11bHRpTGluZSA/IHNlbGVjdGVkSXRlbT8ubGFiZWw/LnByaW1hcnlUZXh0IDogc2VsZWN0ZWRJdGVtPy5sYWJlbCB8fCBsYWJlbCB9fVxuICAgICAgPC9wPlxuICAgICAgPG5nLXRlbXBsYXRlICNzaG93SWNvbj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCIhc2VsZWN0ZWRJdGVtPy5pY29uXCI+XG4gICAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8aW1nIGNsYXNzPVwiaWNvblwiICpuZ0lmPVwiISFzZWxlY3RlZEl0ZW0/Lmljb25cIiBbc3JjXT1cInNlbGVjdGVkSXRlbT8uaWNvblwiIGFsdD1cIm5vIGltZ1wiIC8+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxzdmdcbiAgICAgIGNsYXNzPVwiaGFuZGxlXCJcbiAgICAgIFtuZ1N0eWxlXT1cInsgdHJhbnNmb3JtOiBpc09wZW4gPyAncm90YXRlKDE4MGRlZyknIDogJ3JvdGF0ZSgwZGVnKScgfVwiXG4gICAgICB3aWR0aD1cIjIwXCJcbiAgICAgIGhlaWdodD1cIjIwXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEzLjgyNSA3LjE1ODQ1TDEwIDEwLjk3NTFMNi4xNzUgNy4xNTg0NUw1IDguMzMzNDVMMTAgMTMuMzMzNEwxNSA4LjMzMzQ1TDEzLjgyNSA3LjE1ODQ1WlwiXG4gICAgICAgIGZpbGw9XCIjMTgxRjMzXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3BvcHVwQ29udGFpbmVyPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJwb3B1cC1jb250YWluZXJcIiBjZGtUcmFwRm9jdXMgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIiB0YWJpbmRleD1cIjBcIlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgIGhlaWdodDogZHJvcGRvd25MaXN0SGVpZ2h0LFxuICAgICAgd2lkdGg6IGRyb3Bkb3duTGlzdFdpZHRoXG4gICAgfVwiXG4gICAgKGtleXVwLmVzYyk9XCJjbG9zZU9uRXNjKCRldmVudClcIlxuICAgIGFyaWEtbGFiZWw9XCJkcm9wZG93blwiXG4gID5cbiAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoRW5hYmxlZFwiIGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgPHN2Z1xuICAgICAgICAqbmdJZj1cIiFpc1NlYXJjaElucHV0Rm9jdXNlZFwiXG4gICAgICAgIGNsYXNzPVwic2VhcmNoLWljb25cIlxuICAgICAgICB3aWR0aD1cIjI0XCJcbiAgICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgID5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICBkPVwiTTQuMjE1MDggMTEuMTQ1NkM0LjIxNTA4IDcuMzE3OSA3LjMzNzIyIDQuMjExNjUgMTEuMTkyNiA0LjIxMTY1QzE1LjA0OCA0LjIxMTY1IDE4LjE3MDIgNy4zMTc5IDE4LjE3MDIgMTEuMTQ1NkMxOC4xNzAyIDEyLjY5MzEgMTcuNjU5OSAxNC4xMjI2IDE2Ljc5NzIgMTUuMjc2N0wxNS4zNjg1IDE2LjcwMTNDMTQuMjA0NCAxNy41NjY4IDEyLjc1OSAxOC4wNzk2IDExLjE5MjYgMTguMDc5NkM3LjMzNzIyIDE4LjA3OTYgNC4yMTUwOCAxNC45NzM0IDQuMjE1MDggMTEuMTQ1NlpNMTUuOTQyMSAxNy43ODM1QzE0LjYwMjEgMTguNzMyOSAxMi45NjI3IDE5LjI5MTMgMTEuMTkyNiAxOS4yOTEzQzYuNjY5NzcgMTkuMjkxMyAzIDE1LjY0NjEgMyAxMS4xNDU2QzMgNi42NDUxMiA2LjY2OTc3IDMgMTEuMTkyNiAzQzE1LjcxNTUgMyAxOS4zODUyIDYuNjQ1MTIgMTkuMzg1MiAxMS4xNDU2QzE5LjM4NTIgMTIuOTM3MSAxOC44MDM3IDE0LjU5MzEgMTcuODE4NCAxNS45Mzc1TDE5LjgzNjEgMTcuNDA0OEMyMC42NzA1IDE3LjkxMiAyMS43NTU0IDE4LjY1NDMgMjAuMjQ1NCAyMC4yMTVDMTguNzM1MyAyMS43NzU2IDE4LjAwOTkgMjAuNjY2MyAxNy40OTkxIDE5LjgzNjRMMTUuOTQyMSAxNy43ODM1WlwiXG4gICAgICAgICAgZmlsbD1cIiM2QTczN0RcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgICA8aW5wdXRcbiAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoSW5wdXRcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgcGFkZGluZ0xlZnQ6IGlzU2VhcmNoSW5wdXRGb2N1c2VkID8gJzEycHgnIDogJzQ1cHgnLFxuICAgICAgICAgIGJvcmRlcjogaXNTZWFyY2hJbnB1dEZvY3VzZWQgPyAnMXB4IHNvbGlkICMwOTM3QjInIDogJzFweCBzb2xpZCAjZTBlMGUwJyxcbiAgICAgICAgICBwYWRkaW5nUmlnaHQ6IGlzU2VhcmNoSW5wdXRGb2N1c2VkID8gJzQ1cHgnIDogJzEwcHgnXG4gICAgICAgIH1cIlxuICAgICAgICBbdGFiSW5kZXhdPVwiMFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaElucHV0T25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJpc1NlYXJjaElucHV0Rm9jdXNlZCA/ICcnIDogc2VhcmNoTGFiZWxcIlxuICAgICAgICAoZm9jdXMpPVwic2VhcmNoSW5wdXRGb2N1c2VkKHRydWUpXCJcbiAgICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlYXJjaExhYmVsXCJcbiAgICAgIC8+XG4gICAgICA8c3ZnXG4gICAgICAgICpuZ0lmPVwiaXNTZWFyY2hJbnB1dEZvY3VzZWRcIlxuICAgICAgICBjbGFzcz1cImNhbmNlbC1pY29uXCJcbiAgICAgICAgKGNsaWNrKT1cInNlYXJjaElucHV0Q2FuY2VsZWQoJGV2ZW50KVwiXG4gICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIGQ9XCJNOC44NzQ0NiA3LjMyMTQ0QzguNDQ1ODggNi44OTI4NSA3Ljc1MSA2Ljg5Mjg1IDcuMzIyNDIgNy4zMjE0NEM2Ljg5MzgzIDcuNzUwMDIgNi44OTM4MyA4LjQ0NDkgNy4zMjI0MiA4Ljg3MzQ5TDEwLjQ0ODggMTEuOTk5OUw3LjMyMzU3IDE1LjEyNTJDNi44OTQ5OCAxNS41NTM4IDYuODk0OTggMTYuMjQ4NiA3LjMyMzU3IDE2LjY3NzJDNy43NTIxNSAxNy4xMDU4IDguNDQ3MDMgMTcuMTA1OCA4Ljg3NTYxIDE2LjY3NzJMMTIuMDAwOSAxMy41NTJMMTUuMTI2MSAxNi42NzcyQzE1LjU1NDcgMTcuMTA1OCAxNi4yNDk2IDE3LjEwNTggMTYuNjc4MSAxNi42NzcyQzE3LjEwNjcgMTYuMjQ4NiAxNy4xMDY3IDE1LjU1MzcgMTYuNjc4MSAxNS4xMjUxTDEzLjU1MjkgMTEuOTk5OUwxNi42NzkzIDguODczNTRDMTcuMTA3OSA4LjQ0NDk2IDE3LjEwNzkgNy43NTAwOCAxNi42NzkzIDcuMzIxNUMxNi4yNTA3IDYuODkyOTEgMTUuNTU1OCA2Ljg5MjkxIDE1LjEyNzMgNy4zMjE1TDEyLjAwMDkgMTAuNDQ3OUw4Ljg3NDQ2IDcuMzIxNDRaXCJcbiAgICAgICAgICBmaWxsPVwiIzZBNzM3RFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWNvbnRhaW5lclwiICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgPG1pcy1sb2FkZXIgW21vYmlsZVZpZXddPVwidHJ1ZVwiPjwvbWlzLWxvYWRlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHRhYmluZGV4PVwiLTFcIiAqbmdJZj1cIiFzZWFyY2hFbmFibGVkXCIgY2RrRm9jdXNJbml0aWFsPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpdGVtc1wiICNpdGVtc0NvbnRhaW5lciBbbmdTdHlsZV09XCJpdGVtc0NvbnRhaW5lclN0eWxlXCIgKm5nSWY9XCIhbG9hZGluZyBcIj5cbiAgICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgKm5nSWY9XCJjdXJyZW50RGF0YS5sZW5ndGggPiAwXCIgXG4gICAgICAgIFtpdGVtU2l6ZV09XCJpdGVtU2l6ZUZvckNkayB8fCAzNlwiIFxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLXZpZXdwb3J0XCJcbiAgICAgICAgW21pbkJ1ZmZlclB4XT1cIjIwMFwiXG4gICAgICAgIFttYXhCdWZmZXJQeF09XCI0MDBcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIml0ZW1cIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpdGVtLWRpc2FibGVkJzogaXRlbS5kaXNhYmxlZCwgJ2l0ZW0tc2VsZWN0ZWQnOiAoaGlnbGlnaHRTZWxlY3RlZFZhbHVlICYmIGl0ZW0udmFsdWUgPT09IHNlbGVjdGVkSXRlbT8udmFsdWUpLCAnaWNvbi1vbmx5JyA6IHNob3dPbmx5SWNvbiB9XCJcbiAgICAgICAgKGNsaWNrKT1cIml0ZW0uZGlzYWJsZWQgPyBudWxsIDogc2VsZWN0SXRlbShpdGVtKVwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJpdGVtLmRpc2FibGVkID8gbnVsbCA6IHNlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGN1cnJlbnREYXRhOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgdGFiSW5kZXg9XCIwXCJcbiAgICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tSXRlbTsgZWxzZSBzdGFuZGFyZEl0ZW1cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbUl0ZW1cIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzdGFuZGFyZEl0ZW0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgKm5nSWY9XCIhc2hvd09ubHlJY29uXCIgW25nU3R5bGVdPVwieyB3aWR0aDogaXRlbS5pY29uID8gJzkwJScgOiAnMTAwJScsICdkaXNwbGF5JzogbXVsdGlMaW5lID8gJ2ZsZXgnOiAnaW5oZXJpdCcsICdmbGV4LWRpcmVjdGlvbic6IG11bHRpTGluZSA/ICdjb2x1bW4nOiAnaW5oZXJpdCcgfVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmltYXJ5VGV4dFwiIFtuZ1N0eWxlXT1cImdldEljb25TdHlsZXMoaXRlbS5pY29uLCBhY3RpdmVJdGVtKVwiPnt7IG11bHRpTGluZSA/IGl0ZW0/LmxhYmVsPy5wcmltYXJ5VGV4dCA6IGl0ZW0/LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWNvbmRhcnlUZXh0XCIgKm5nSWY9XCJtdWx0aUxpbmVcIiBbbmdTdHlsZV09XCJnZXRJY29uU3R5bGVzKGl0ZW0uaWNvbiwgYWN0aXZlSXRlbSlcIj4ge3sgaXRlbT8ubGFiZWw/LnNlY29uZGFyeVRleHQgPyBpdGVtPy5sYWJlbD8uc2Vjb25kYXJ5VGV4dCA6IGFkZGl0aW9uYWxJbmZvTWVzc2FnZSAgfX0gPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiICpuZ0lmPVwiaXRlbS5pY29uXCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiaWNvblwiIFtzcmNdPVwiaXRlbS5pY29uXCIgYWx0PVwibm8gaW1nXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgICAgPGRpdiBjbGFzcz1cIm5vRGF0YVwiICpuZ0lmPVwiY3VycmVudERhdGEubGVuZ3RoID09PSAwXCI+XG4gICAgICAgIHt7IHNlYXJjaElucHV0ID09PSBcIlwiID8gbm9EYXRhTWVzc2FnZSA6IFwiTm8gcmVzdWx0c1wiIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -986,11 +986,11 @@ export class DynamicFormComponent {
|
|
|
986
986
|
i0.ɵɵproperty("formGroup", ctx.dynamicForm);
|
|
987
987
|
i0.ɵɵadvance(2);
|
|
988
988
|
i0.ɵɵproperty("ngForOf", ctx.getDynamicFieldsControls().controls);
|
|
989
|
-
} }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, i2.ɵNgNoValidate, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormControlDirective, i2.FormGroupDirective, i2.FormGroupName, i2.FormArrayName, i3.DropdownComponent, i4.SwitchComponent, i5.MultiSelectDropdownComponent, i6.TzDatepickerDirective, i1.KeyValuePipe], styles: ["p[_ngcontent-%COMP%]{margin:0;cursor:default} .main-container{margin:0;max-width:100%}.sub-dynamic-form[_ngcontent-%COMP%]{padding-left:24px;border-bottom:1px solid var(--
|
|
989
|
+
} }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, i2.ɵNgNoValidate, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormControlDirective, i2.FormGroupDirective, i2.FormGroupName, i2.FormArrayName, i3.DropdownComponent, i4.SwitchComponent, i5.MultiSelectDropdownComponent, i6.TzDatepickerDirective, i1.KeyValuePipe], styles: ["p[_ngcontent-%COMP%]{margin:0;cursor:default} .main-container{margin:0;max-width:100%}.sub-dynamic-form[_ngcontent-%COMP%]{padding-left:24px;border-bottom:1px solid var(--border-primary, #E0E0E0)}.dynamic-field[_ngcontent-%COMP%] .container{height:32px!important}.single-line-field-container[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding:28px 16px;border-bottom:1px solid var(--border-primary, #E0E0E0)}.multi-line-field-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:flex-start;padding:28px 16px;flex-wrap:wrap;border-bottom:1px solid var(--border-primary, #E0E0E0)}.field-title-sm[_ngcontent-%COMP%]{margin-bottom:8px;cursor:default}.input-field[_ngcontent-%COMP%]{width:100%;background-color:var(--bg-secondary, #FAFAFA);border:1px solid var(--border-primary, #E0E0E0);border-radius:6px}.ip-text[_ngcontent-%COMP%]{height:44px;padding:8px 12px}.ip-textarea[_ngcontent-%COMP%]{max-height:94px;padding:8px}input[_ngcontent-%COMP%]:focus{outline:none}input[_ngcontent-%COMP%]::placeholder{color:var(--border-primary, #E0E0E0)}textarea[_ngcontent-%COMP%]:focus{outline:none}.date-picker-container[_ngcontent-%COMP%]{position:relative;width:140px}.date-picker-container[_ngcontent-%COMP%] .date-picker[_ngcontent-%COMP%]{cursor:pointer;height:32px;width:100%;font-size:14px;border-radius:6px;padding:0 12px;border:1px solid var(--border-primary, #E0E0E0);inset:10px auto auto 80px;background-color:var(--bg-primary, #FFFFFF)}.date-picker-container[_ngcontent-%COMP%] .date-picker[_ngcontent-%COMP%]:hover{background-color:var(--brand-primary-hover, #F0F3FA)}.date-picker-container[_ngcontent-%COMP%] .date-picker-icon[_ngcontent-%COMP%]{position:absolute;top:50%;right:12px;transform:translateY(-50%);cursor:pointer}form[_ngcontent-%COMP%] .dynamic-field[_ngcontent-%COMP%]:last-child{border-bottom:none!important}#checkboxes-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}.radio-checkbox-common[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;cursor:pointer;margin-right:8px;margin-bottom:8px;background-color:var(--bg-primary, #FFFFFF);padding:12px 16px;border:1px solid var(--text-secondary, #6A737D);border-radius:8px}.radio-checkbox-common[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--text-secondary, #6A737D);cursor:pointer}.radio-checkbox-common[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:8px}.checkbox-active[_ngcontent-%COMP%]{background-color:var(--brand-primary, #0937B2)}.checkbox-active[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--bg-primary, #FFFFFF)}#error-messages-container[_ngcontent-%COMP%]{margin-top:4px;width:100%;display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}#error-messages-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--brand-error, #B00020)}.removeable-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.removeable-container[_ngcontent-%COMP%] .remove-icon[_ngcontent-%COMP%]{cursor:pointer;margin-left:8px;max-width:24px}span[_ngcontent-%COMP%]{color:var(--brand-error, #B00020)}"] }); }
|
|
990
990
|
}
|
|
991
991
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DynamicFormComponent, [{
|
|
992
992
|
type: Component,
|
|
993
|
-
args: [{ selector: "mis-dynamic-form", template: "<form [formGroup]=\"dynamicForm\">\n <ng-container formArrayName=\"dynamicFields\">\n <ng-container [formGroupName]=\"i\" *ngFor=\"let fieldControl of getDynamicFieldsControls().controls; let i = index\">\n <ng-container\n [ngTemplateOutlet]=\"dynamicField\"\n [ngTemplateOutletContext]=\"{\n $implicit: formFields[i],\n formGroup: fieldControl,\n control: fieldControl.controls.value\n }\"\n >\n </ng-container>\n <div class=\"sub-dynamic-form\" *ngIf=\"fieldControl?.value && (!!formFields[i]?.subFields && formFields[i]?.subFields?.length > 0 && matchParentConfig(formFields[i]?.subFields, fieldControl?.controls?.value?.value?.value))\">\n <ng-container *ngFor=\"let subFieldControl of fieldControl.controls.subFields.controls; let j = index\">\n <ng-container\n [ngTemplateOutlet]=\"dynamicField\"\n [ngTemplateOutletContext]=\"{\n $implicit: findSelectedSubFieldConfig(formFields[i]?.subFields, fieldControl.controls.value.value.value,j),\n control: subFieldControl\n }\">\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n</form>\n\n\n<ng-template #dynamicField let-field let-control=\"control\" let-formgroup=\"formGroup\">\n\n <!-- fieldType: 'input' fieldInputType: 'text' | 'number' -->\n <ng-container *ngIf=\"field.fieldType === 'input' && (field.fieldInputType === 'text' || field.fieldInputType === 'number')\">\n <ng-container *ngIf=\"customInputTextNumber; else defaultInputTextNumber\">\n <ng-template\n [ngTemplateOutlet]=\"customInputTextNumber\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultInputTextNumber>\n <div class=\"dynamic-field multi-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h7 field-title-sm\">\n {{ field?.title }} <span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <input class=\"input-field ip-text\" [type]=\"field.fieldInputType\" [formControl]=\"control\"\n (ngModelChange)=\"updateSubDynamicFields(field, formgroup, $event)\" \n [ngStyle]=\"{'border': control.touched && control.errors ? '1px solid #B00020': ''}\"\n [placeholder]=\"field.placeholderText ? field.placeholderText : 'Input Text'\" \n [min]=\"field.fieldInputType === 'number' ? 0 : '' \"/>\n <ng-container *ngIf=\"control.touched && control.errors\"\n [ngTemplateOutlet]=\"dynamicFieldErrors\" \n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\"\n >\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n \n <!-- fieldType: 'input' fieldInputType: 'textarea' -->\n <ng-container *ngIf=\"field.fieldType === 'input' && field.fieldInputType === 'textarea'\">\n <ng-container *ngIf=\"customInputTextarea; else defaultInputTextarea\">\n <ng-template\n [ngTemplateOutlet]=\"customInputTextarea\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultInputTextarea>\n <div class=\"dynamic-field multi-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h7 field-title-sm\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <textarea class=\"input-field ip-textarea\" type=\"text\"\n [ngStyle]=\"{'border': control.touched && control.errors ? '1px solid #B00020': ''}\"\n [placeholder]=\"field.placeholderText ? field.placeholderText : 'Input Text'\" [formControl]=\"control\" (ngModelChange)=\"updateSubDynamicFields(field, formgroup, $event)\"></textarea>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n \n <!-- fieldType: 'input' fieldInputType: 'date' -->\n <ng-container *ngIf=\"field.fieldType === 'input' && field.fieldInputType === 'date'\">\n <ng-container *ngIf=\"customInputDate; else defaultInputDate\">\n <ng-template\n [ngTemplateOutlet]=\"customInputDate\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultInputDate>\n <div class=\"dynamic-field single-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\"\n *ngIf=\"field.fieldType === 'input' && field.fieldInputType === 'date'\">\n <p class=\"h6\">\n {{ field.title }} <span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div class=\"date-picker-container\">\n <input class=\"date-picker\" readonly misTzDp [dpConfig]=\"field.fieldConfig\"\n (dateChange)=\"control.setValue($event)\" [selectedDate]=\"control.value\" [offsetY]=\"0\"\n [value]=\"control.value\" #dp />\n <img alt=\"data-picker\" *ngIf=\"calendarIconUrl\" class=\"date-picker-icon\" [src]=\"calendarIconUrl\"\n (click)=\"dp.click()\" />\n </div>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- fieldType: 'boolean' fieldInputType: 'toggle' -->\n <ng-container *ngIf=\"field.fieldType === 'boolean' && field.fieldInputType === 'toggle'\">\n <ng-container *ngIf=\"customBooleanToggle; else defaultBooleanToggle\">\n <ng-template\n [ngTemplateOutlet]=\"customBooleanToggle\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultBooleanToggle>\n <div class=\"dynamic-field single-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h6\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <mis-switch [control]=\"control\" (valueChanged)=\"updateSubDynamicFields(field, formgroup, $event)\"></mis-switch>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div> \n </ng-template>\n </ng-container>\n\n <!-- fieldType: 'singleSelect' fieldInputType: 'dropdown' -->\n <ng-container *ngIf=\"field.fieldType === 'singleSelect' && field.fieldInputType === 'dropdown'\">\n <ng-container *ngIf=\"customSingleSelectDropdown; else defaultSingleSelectDropdown\">\n <ng-template\n [ngTemplateOutlet]=\"customSingleSelectDropdown\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultSingleSelectDropdown>\n <div class=\"dynamic-field single-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h6\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div [ngClass]=\"{'removeable-container' : field?.isRemoveable}\">\n <mis-dropdown [searchEnabled]=\"false\" [width]=\"'140px'\" [data]=\"field.itemsList\" [selectedItem]=\"control.value\"\n (onChange)=\"updateSelectedValueForSingleSelect(field, control, formgroup, $event);\">\n </mis-dropdown>\n <img *ngIf=\"field.isRemoveable && removeIconUrl\" class=\"remove-icon\" [src]=\"removeIconUrl\" (click)=\"fieldRemoved.emit(field)\">\n </div>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container >\n \n\n <!-- fieldType: 'singleSelect' fieldInputType: 'radio' -->\n <ng-container *ngIf=\"field.fieldType === 'singleSelect' && field.fieldInputType === 'radio'\">\n <ng-container *ngIf=\"customSingleSelectRadio; else defaultSingleSelectRadio\">\n <ng-template\n [ngTemplateOutlet]=\"customSingleSelectRadio\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultSingleSelectRadio>\n <div class=\"dynamic-field multi-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h7 field-title-sm\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <div id=\"checkboxes-container\">\n <div class=\"radio-checkbox-common\" *ngFor=\"let item of field.itemsList\"\n [ngClass]=\"{ 'checkbox-active': item.label === control.value?.label }\"\n (click)=\"updateSelectedValueForSingleSelect(field, control, formgroup, item);\">\n <img *ngIf=\"(item.label === control.value?.label) && activeBtnIconUrl\" [src]=\"activeBtnIconUrl\" alt=\"\" />\n <p class=\"h6\">{{ item.label }}</p>\n </div>\n </div>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n \n\n <!-- fieldType: 'multiSelect' fieldInputType: 'checkbox' -->\n <ng-container *ngIf=\"field.fieldType === 'multiSelect' && field.fieldInputType === 'checkbox'\">\n <ng-container *ngIf=\"customMultiSelectCheckbox; else defaultMultiSelectCheckbox\">\n <ng-template\n [ngTemplateOutlet]=\"customMultiSelectCheckbox\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultMultiSelectCheckbox>\n <div class=\"dynamic-field multi-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h7 field-title-sm\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <div id=\"checkboxes-container\">\n <div class=\"radio-checkbox-common\" *ngFor=\"let item of field.itemsList\"\n [ngClass]=\"{ 'checkbox-active': isCheckBoxSelected(item.label, control.value) }\"\n (click)=\"updateSelectedValueForMultiSelect(field, control, formgroup, [item])\">\n <img *ngIf=\"isCheckBoxSelected(item.label, control.value) && activeBtnIconUrl\" [src]=\"activeBtnIconUrl\"\n alt=\"\" />\n <p class=\"h6\">{{ item.label }}</p>\n </div>\n </div>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n\n <!-- fieldType: 'multiSelect' fieldInputType: 'dropdown' -->\n <ng-container *ngIf=\"field.fieldType === 'multiSelect' && field.fieldInputType === 'dropdown'\">\n <ng-container *ngIf=\"customMultiSelectDropdown; else defaultMultiSelectDropdown\">\n <ng-template\n [ngTemplateOutlet]=\"customMultiSelectDropdown\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultMultiSelectDropdown>\n <div class=\"dynamic-field single-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h6\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <mis-multi-select-dropdown [width]=\"'140px'\" [showSelectedCount]=\"true\" [dropdownListWidth]=\"'256px'\"\n [searchEnabled]=\"false\" [hideApplyButton]=\"true\" [data]=\"field.itemsList\"\n [selectedItems]=\"control.value\" (onChange)=\"updateSelectedValueForMultiSelect(field, control, formgroup, $event);\"></mis-multi-select-dropdown>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n</ng-template>\n\n<ng-template #dynamicFieldErrors let-errors>\n <div id=\"error-messages-container\">\n <ng-container *ngFor=\"let error of errors | keyvalue\">\n <p class=\"h8\">\n {{\" \u2022 \" + error.value}}\n </p>\n <div [ngStyle]=\"{ 'flex-basis': '100%', 'height': '0' }\"></div>\n </ng-container>\n </div>\n</ng-template>", styles: ["p{margin:0;cursor:default}::ng-deep .main-container{margin:0;max-width:100%}.sub-dynamic-form{padding-left:24px;border-bottom:1px solid var(--grey-seperators)}.dynamic-field ::ng-deep .container{height:32px!important}.single-line-field-container{display:flex;justify-content:space-between;align-items:center;padding:28px 16px;border-bottom:1px solid var(--grey-seperators)}.multi-line-field-container{display:flex;justify-content:flex-start;align-items:flex-start;padding:28px 16px;flex-wrap:wrap;border-bottom:1px solid var(--grey-seperators)}.field-title-sm{margin-bottom:8px;cursor:default}.input-field{width:100%;background-color:var(--grey-bg-1);border:1px solid var(--grey-seperators);border-radius:6px}.ip-text{height:44px;padding:8px 12px}.ip-textarea{max-height:94px;padding:8px}input:focus{outline:none}input::placeholder{color:var(--grey-seperators)}textarea:focus{outline:none}.date-picker-container{position:relative;width:140px}.date-picker-container .date-picker{cursor:pointer;height:32px;width:100%;font-size:14px;border-radius:6px;padding:0 12px;border:1px solid var(--grey-seperators);inset:10px auto auto 80px;background-color:var(--text-white)}.date-picker-container .date-picker:hover{background-color:var(--grey-hover)}.date-picker-container .date-picker-icon{position:absolute;top:50%;right:12px;transform:translateY(-50%);cursor:pointer}form .dynamic-field:last-child{border-bottom:none!important}#checkboxes-container{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}.radio-checkbox-common{display:flex;justify-content:center;align-items:center;cursor:pointer;margin-right:8px;margin-bottom:8px;background-color:var(--text-white);padding:12px 16px;border:1px solid var(--text-muted);border-radius:8px}.radio-checkbox-common p{color:var(--text-muted);cursor:pointer}.radio-checkbox-common img{margin-right:8px}.checkbox-active{background-color:var(--pmry-500)}.checkbox-active p{color:var(--text-white)}#error-messages-container{margin-top:4px;width:100%;display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}#error-messages-container p{color:var(--sem-error)}.removeable-container{display:flex;justify-content:center;align-items:center}.removeable-container .remove-icon{cursor:pointer;margin-left:8px;max-width:24px}span{color:var(--sem-error)}\n"] }]
|
|
993
|
+
args: [{ selector: "mis-dynamic-form", template: "<form [formGroup]=\"dynamicForm\">\n <ng-container formArrayName=\"dynamicFields\">\n <ng-container [formGroupName]=\"i\" *ngFor=\"let fieldControl of getDynamicFieldsControls().controls; let i = index\">\n <ng-container\n [ngTemplateOutlet]=\"dynamicField\"\n [ngTemplateOutletContext]=\"{\n $implicit: formFields[i],\n formGroup: fieldControl,\n control: fieldControl.controls.value\n }\"\n >\n </ng-container>\n <div class=\"sub-dynamic-form\" *ngIf=\"fieldControl?.value && (!!formFields[i]?.subFields && formFields[i]?.subFields?.length > 0 && matchParentConfig(formFields[i]?.subFields, fieldControl?.controls?.value?.value?.value))\">\n <ng-container *ngFor=\"let subFieldControl of fieldControl.controls.subFields.controls; let j = index\">\n <ng-container\n [ngTemplateOutlet]=\"dynamicField\"\n [ngTemplateOutletContext]=\"{\n $implicit: findSelectedSubFieldConfig(formFields[i]?.subFields, fieldControl.controls.value.value.value,j),\n control: subFieldControl\n }\">\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n</form>\n\n\n<ng-template #dynamicField let-field let-control=\"control\" let-formgroup=\"formGroup\">\n\n <!-- fieldType: 'input' fieldInputType: 'text' | 'number' -->\n <ng-container *ngIf=\"field.fieldType === 'input' && (field.fieldInputType === 'text' || field.fieldInputType === 'number')\">\n <ng-container *ngIf=\"customInputTextNumber; else defaultInputTextNumber\">\n <ng-template\n [ngTemplateOutlet]=\"customInputTextNumber\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultInputTextNumber>\n <div class=\"dynamic-field multi-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h7 field-title-sm\">\n {{ field?.title }} <span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <input class=\"input-field ip-text\" [type]=\"field.fieldInputType\" [formControl]=\"control\"\n (ngModelChange)=\"updateSubDynamicFields(field, formgroup, $event)\" \n [ngStyle]=\"{'border': control.touched && control.errors ? '1px solid #B00020': ''}\"\n [placeholder]=\"field.placeholderText ? field.placeholderText : 'Input Text'\" \n [min]=\"field.fieldInputType === 'number' ? 0 : '' \"/>\n <ng-container *ngIf=\"control.touched && control.errors\"\n [ngTemplateOutlet]=\"dynamicFieldErrors\" \n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\"\n >\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n \n <!-- fieldType: 'input' fieldInputType: 'textarea' -->\n <ng-container *ngIf=\"field.fieldType === 'input' && field.fieldInputType === 'textarea'\">\n <ng-container *ngIf=\"customInputTextarea; else defaultInputTextarea\">\n <ng-template\n [ngTemplateOutlet]=\"customInputTextarea\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultInputTextarea>\n <div class=\"dynamic-field multi-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h7 field-title-sm\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <textarea class=\"input-field ip-textarea\" type=\"text\"\n [ngStyle]=\"{'border': control.touched && control.errors ? '1px solid #B00020': ''}\"\n [placeholder]=\"field.placeholderText ? field.placeholderText : 'Input Text'\" [formControl]=\"control\" (ngModelChange)=\"updateSubDynamicFields(field, formgroup, $event)\"></textarea>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n \n <!-- fieldType: 'input' fieldInputType: 'date' -->\n <ng-container *ngIf=\"field.fieldType === 'input' && field.fieldInputType === 'date'\">\n <ng-container *ngIf=\"customInputDate; else defaultInputDate\">\n <ng-template\n [ngTemplateOutlet]=\"customInputDate\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultInputDate>\n <div class=\"dynamic-field single-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\"\n *ngIf=\"field.fieldType === 'input' && field.fieldInputType === 'date'\">\n <p class=\"h6\">\n {{ field.title }} <span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div class=\"date-picker-container\">\n <input class=\"date-picker\" readonly misTzDp [dpConfig]=\"field.fieldConfig\"\n (dateChange)=\"control.setValue($event)\" [selectedDate]=\"control.value\" [offsetY]=\"0\"\n [value]=\"control.value\" #dp />\n <img alt=\"data-picker\" *ngIf=\"calendarIconUrl\" class=\"date-picker-icon\" [src]=\"calendarIconUrl\"\n (click)=\"dp.click()\" />\n </div>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- fieldType: 'boolean' fieldInputType: 'toggle' -->\n <ng-container *ngIf=\"field.fieldType === 'boolean' && field.fieldInputType === 'toggle'\">\n <ng-container *ngIf=\"customBooleanToggle; else defaultBooleanToggle\">\n <ng-template\n [ngTemplateOutlet]=\"customBooleanToggle\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultBooleanToggle>\n <div class=\"dynamic-field single-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h6\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <mis-switch [control]=\"control\" (valueChanged)=\"updateSubDynamicFields(field, formgroup, $event)\"></mis-switch>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div> \n </ng-template>\n </ng-container>\n\n <!-- fieldType: 'singleSelect' fieldInputType: 'dropdown' -->\n <ng-container *ngIf=\"field.fieldType === 'singleSelect' && field.fieldInputType === 'dropdown'\">\n <ng-container *ngIf=\"customSingleSelectDropdown; else defaultSingleSelectDropdown\">\n <ng-template\n [ngTemplateOutlet]=\"customSingleSelectDropdown\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultSingleSelectDropdown>\n <div class=\"dynamic-field single-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h6\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div [ngClass]=\"{'removeable-container' : field?.isRemoveable}\">\n <mis-dropdown [searchEnabled]=\"false\" [width]=\"'140px'\" [data]=\"field.itemsList\" [selectedItem]=\"control.value\"\n (onChange)=\"updateSelectedValueForSingleSelect(field, control, formgroup, $event);\">\n </mis-dropdown>\n <img *ngIf=\"field.isRemoveable && removeIconUrl\" class=\"remove-icon\" [src]=\"removeIconUrl\" (click)=\"fieldRemoved.emit(field)\">\n </div>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container >\n \n\n <!-- fieldType: 'singleSelect' fieldInputType: 'radio' -->\n <ng-container *ngIf=\"field.fieldType === 'singleSelect' && field.fieldInputType === 'radio'\">\n <ng-container *ngIf=\"customSingleSelectRadio; else defaultSingleSelectRadio\">\n <ng-template\n [ngTemplateOutlet]=\"customSingleSelectRadio\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultSingleSelectRadio>\n <div class=\"dynamic-field multi-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h7 field-title-sm\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <div id=\"checkboxes-container\">\n <div class=\"radio-checkbox-common\" *ngFor=\"let item of field.itemsList\"\n [ngClass]=\"{ 'checkbox-active': item.label === control.value?.label }\"\n (click)=\"updateSelectedValueForSingleSelect(field, control, formgroup, item);\">\n <img *ngIf=\"(item.label === control.value?.label) && activeBtnIconUrl\" [src]=\"activeBtnIconUrl\" alt=\"\" />\n <p class=\"h6\">{{ item.label }}</p>\n </div>\n </div>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n \n\n <!-- fieldType: 'multiSelect' fieldInputType: 'checkbox' -->\n <ng-container *ngIf=\"field.fieldType === 'multiSelect' && field.fieldInputType === 'checkbox'\">\n <ng-container *ngIf=\"customMultiSelectCheckbox; else defaultMultiSelectCheckbox\">\n <ng-template\n [ngTemplateOutlet]=\"customMultiSelectCheckbox\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultMultiSelectCheckbox>\n <div class=\"dynamic-field multi-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h7 field-title-sm\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <div id=\"checkboxes-container\">\n <div class=\"radio-checkbox-common\" *ngFor=\"let item of field.itemsList\"\n [ngClass]=\"{ 'checkbox-active': isCheckBoxSelected(item.label, control.value) }\"\n (click)=\"updateSelectedValueForMultiSelect(field, control, formgroup, [item])\">\n <img *ngIf=\"isCheckBoxSelected(item.label, control.value) && activeBtnIconUrl\" [src]=\"activeBtnIconUrl\"\n alt=\"\" />\n <p class=\"h6\">{{ item.label }}</p>\n </div>\n </div>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n\n <!-- fieldType: 'multiSelect' fieldInputType: 'dropdown' -->\n <ng-container *ngIf=\"field.fieldType === 'multiSelect' && field.fieldInputType === 'dropdown'\">\n <ng-container *ngIf=\"customMultiSelectDropdown; else defaultMultiSelectDropdown\">\n <ng-template\n [ngTemplateOutlet]=\"customMultiSelectDropdown\"\n [ngTemplateOutletContext]=\"{ field: field, control: control, formgroup: formgroup }\"\n ></ng-template>\n </ng-container>\n <ng-template #defaultMultiSelectDropdown>\n <div class=\"dynamic-field single-line-field-container\"\n [ngStyle]=\"{'border-bottom': (formgroup?.controls?.subFields?.controls?.length && removeSepratorForSubFields) ? 'none':''}\">\n <p class=\"h6\">\n {{ field.title }}<span *ngIf=\"field.validators && field.validators.length > 0\"> *</span>\n </p>\n <mis-multi-select-dropdown [width]=\"'140px'\" [showSelectedCount]=\"true\" [dropdownListWidth]=\"'256px'\"\n [searchEnabled]=\"false\" [hideApplyButton]=\"true\" [data]=\"field.itemsList\"\n [selectedItems]=\"control.value\" (onChange)=\"updateSelectedValueForMultiSelect(field, control, formgroup, $event);\"></mis-multi-select-dropdown>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n</ng-template>\n\n<ng-template #dynamicFieldErrors let-errors>\n <div id=\"error-messages-container\">\n <ng-container *ngFor=\"let error of errors | keyvalue\">\n <p class=\"h8\">\n {{\" \u2022 \" + error.value}}\n </p>\n <div [ngStyle]=\"{ 'flex-basis': '100%', 'height': '0' }\"></div>\n </ng-container>\n </div>\n</ng-template>", styles: ["p{margin:0;cursor:default}::ng-deep .main-container{margin:0;max-width:100%}.sub-dynamic-form{padding-left:24px;border-bottom:1px solid var(--border-primary, #E0E0E0)}.dynamic-field ::ng-deep .container{height:32px!important}.single-line-field-container{display:flex;justify-content:space-between;align-items:center;padding:28px 16px;border-bottom:1px solid var(--border-primary, #E0E0E0)}.multi-line-field-container{display:flex;justify-content:flex-start;align-items:flex-start;padding:28px 16px;flex-wrap:wrap;border-bottom:1px solid var(--border-primary, #E0E0E0)}.field-title-sm{margin-bottom:8px;cursor:default}.input-field{width:100%;background-color:var(--bg-secondary, #FAFAFA);border:1px solid var(--border-primary, #E0E0E0);border-radius:6px}.ip-text{height:44px;padding:8px 12px}.ip-textarea{max-height:94px;padding:8px}input:focus{outline:none}input::placeholder{color:var(--border-primary, #E0E0E0)}textarea:focus{outline:none}.date-picker-container{position:relative;width:140px}.date-picker-container .date-picker{cursor:pointer;height:32px;width:100%;font-size:14px;border-radius:6px;padding:0 12px;border:1px solid var(--border-primary, #E0E0E0);inset:10px auto auto 80px;background-color:var(--bg-primary, #FFFFFF)}.date-picker-container .date-picker:hover{background-color:var(--brand-primary-hover, #F0F3FA)}.date-picker-container .date-picker-icon{position:absolute;top:50%;right:12px;transform:translateY(-50%);cursor:pointer}form .dynamic-field:last-child{border-bottom:none!important}#checkboxes-container{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}.radio-checkbox-common{display:flex;justify-content:center;align-items:center;cursor:pointer;margin-right:8px;margin-bottom:8px;background-color:var(--bg-primary, #FFFFFF);padding:12px 16px;border:1px solid var(--text-secondary, #6A737D);border-radius:8px}.radio-checkbox-common p{color:var(--text-secondary, #6A737D);cursor:pointer}.radio-checkbox-common img{margin-right:8px}.checkbox-active{background-color:var(--brand-primary, #0937B2)}.checkbox-active p{color:var(--bg-primary, #FFFFFF)}#error-messages-container{margin-top:4px;width:100%;display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}#error-messages-container p{color:var(--brand-error, #B00020)}.removeable-container{display:flex;justify-content:center;align-items:center}.removeable-container .remove-icon{cursor:pointer;margin-left:8px;max-width:24px}span{color:var(--brand-error, #B00020)}\n"] }]
|
|
994
994
|
}], () => [], { formFields: [{
|
|
995
995
|
type: Input
|
|
996
996
|
}], formValues: [{
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export var BrandingTypes;
|
|
2
|
+
(function (BrandingTypes) {
|
|
3
|
+
BrandingTypes.defaultTheme = {
|
|
4
|
+
// Brand
|
|
5
|
+
brandPrimary: "#0937B2",
|
|
6
|
+
brandPrimaryLight: "#3C68D0",
|
|
7
|
+
brandPrimaryDark: "#062A99",
|
|
8
|
+
brandPrimaryDarker: "#041F80",
|
|
9
|
+
brandPrimaryLighter: "#638FE7",
|
|
10
|
+
brandPrimaryLightest: "#CBDDFB",
|
|
11
|
+
brandPrimaryHover: "#F0F3FA",
|
|
12
|
+
brandPrimaryActive: "#DAE1F3",
|
|
13
|
+
brandSecondary: "#ED711C",
|
|
14
|
+
brandSecondaryLight: "#F09E65",
|
|
15
|
+
brandSecondaryDark: "#B23600",
|
|
16
|
+
brandSecondaryLighter: "#FFC6F2",
|
|
17
|
+
brandAccent: "#10ADAE",
|
|
18
|
+
brandAccentLight: "#16CBBC",
|
|
19
|
+
brandAccentDark: "#035F6B",
|
|
20
|
+
brandAccentLighter: "#ACDADA",
|
|
21
|
+
// Semantic
|
|
22
|
+
brandSuccess: "#38AF49",
|
|
23
|
+
brandSuccessLight: "#4CAF50",
|
|
24
|
+
brandSuccessDark: "#216531",
|
|
25
|
+
brandSuccessLighter: "#E4F5E9",
|
|
26
|
+
brandSuccessLightest: "#F1FFF3",
|
|
27
|
+
brandError: "#B00020",
|
|
28
|
+
brandErrorLight: "#F04E4E",
|
|
29
|
+
brandErrorDark: "#A60060",
|
|
30
|
+
brandErrorLighter: "#FAE1EA",
|
|
31
|
+
brandErrorLightest: "#FDF2F2",
|
|
32
|
+
brandWarning: "#FF9D00",
|
|
33
|
+
brandWarningLight: "#D4900C",
|
|
34
|
+
brandWarningDark: "#624000",
|
|
35
|
+
brandWarningLighter: "#F4E7C3",
|
|
36
|
+
brandWarningLightest: "#FAEFED",
|
|
37
|
+
brandInfo: "#0091FF",
|
|
38
|
+
brandInfoLight: "#35A1FF",
|
|
39
|
+
brandInfoDark: "#0087B2",
|
|
40
|
+
brandInfoLighter: "#CFECF9",
|
|
41
|
+
// Text
|
|
42
|
+
textPrimary: "#181F33",
|
|
43
|
+
textSecondary: "#6A737D",
|
|
44
|
+
textTertiary: "#929DAB",
|
|
45
|
+
textDisabled: "#C8CDD3",
|
|
46
|
+
textPrimary87: "rgba(24, 31, 51, 0.87)",
|
|
47
|
+
textPrimary60: "rgba(24, 31, 51, 0.60)",
|
|
48
|
+
textPrimary38: "rgba(24, 31, 51, 0.38)",
|
|
49
|
+
textPrimary12: "rgba(24, 31, 51, 0.12)",
|
|
50
|
+
// Background
|
|
51
|
+
bgPrimary: "#FFFFFF",
|
|
52
|
+
bgSecondary: "#FAFAFA",
|
|
53
|
+
bgTertiary: "#F5F5F5",
|
|
54
|
+
bgOverlay: "rgba(0, 0, 0, 0.32)",
|
|
55
|
+
bgOverlayLight: "rgba(0, 0, 0, 0.12)",
|
|
56
|
+
bgOverlayLighter: "rgba(0, 0, 0, 0.08)",
|
|
57
|
+
bgOverlayLightest: "rgba(0, 0, 0, 0.04)",
|
|
58
|
+
// Border
|
|
59
|
+
borderPrimary: "#E0E0E0",
|
|
60
|
+
borderSecondary: "#D6DCE2",
|
|
61
|
+
borderTertiary: "#C8CDD3",
|
|
62
|
+
borderLight: "#F1F4F8",
|
|
63
|
+
borderPrimary12: "rgba(0, 0, 0, 0.12)",
|
|
64
|
+
borderPrimary08: "rgba(0, 0, 0, 0.08)",
|
|
65
|
+
borderPrimary06: "rgba(0, 0, 0, 0.06)",
|
|
66
|
+
// Shadows
|
|
67
|
+
shadowPrimary: "rgba(0, 0, 0, 0.12)",
|
|
68
|
+
shadowSecondary: "rgba(0, 0, 0, 0.08)",
|
|
69
|
+
shadowTertiary: "rgba(0, 0, 0, 0.04)",
|
|
70
|
+
shadowLight: "rgba(0, 0, 0, 0.06)",
|
|
71
|
+
// Status
|
|
72
|
+
statusAvailable: "#929DAB",
|
|
73
|
+
statusUnavailable: "#CCD3DA",
|
|
74
|
+
statusHotseat: "#857BFF",
|
|
75
|
+
statusMultiteam: "#10ADAE",
|
|
76
|
+
statusSelected: "#10ADAE",
|
|
77
|
+
statusUpcoming: "#D4900C",
|
|
78
|
+
statusRoom: "#38AF49",
|
|
79
|
+
statusRoomBooked: "#B23600",
|
|
80
|
+
statusRoomUnavailable: "#181F33",
|
|
81
|
+
// Team
|
|
82
|
+
teamColor1: "#F8C52E",
|
|
83
|
+
teamColor2: "#FA8E20",
|
|
84
|
+
teamColor3: "#987CDD",
|
|
85
|
+
teamColor4: "#16CBBC",
|
|
86
|
+
teamColor5: "#E65010",
|
|
87
|
+
teamColor6: "#A60060",
|
|
88
|
+
teamColor7: "#ED323B",
|
|
89
|
+
teamColor8: "#35A1FF",
|
|
90
|
+
teamColor9: "#80D348",
|
|
91
|
+
};
|
|
92
|
+
})(BrandingTypes || (BrandingTypes = {}));
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmRpbmcudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9keW5hbWljLXRoZW1lL2JyYW5kaW5nLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sS0FBVyxhQUFhLENBK003QjtBQS9NRCxXQUFpQixhQUFhO0lBeUdmLDBCQUFZLEdBQWdCO1FBQ3ZDLFFBQVE7UUFDUixZQUFZLEVBQUUsU0FBUztRQUN2QixpQkFBaUIsRUFBRSxTQUFTO1FBQzVCLGdCQUFnQixFQUFFLFNBQVM7UUFDM0Isa0JBQWtCLEVBQUUsU0FBUztRQUM3QixtQkFBbUIsRUFBRSxTQUFTO1FBQzlCLG9CQUFvQixFQUFFLFNBQVM7UUFDL0IsaUJBQWlCLEVBQUUsU0FBUztRQUM1QixrQkFBa0IsRUFBRSxTQUFTO1FBRTdCLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLG1CQUFtQixFQUFFLFNBQVM7UUFDOUIsa0JBQWtCLEVBQUUsU0FBUztRQUM3QixxQkFBcUIsRUFBRSxTQUFTO1FBRWhDLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLGdCQUFnQixFQUFFLFNBQVM7UUFDM0IsZUFBZSxFQUFFLFNBQVM7UUFDMUIsa0JBQWtCLEVBQUUsU0FBUztRQUU3QixXQUFXO1FBQ1gsWUFBWSxFQUFFLFNBQVM7UUFDdkIsaUJBQWlCLEVBQUUsU0FBUztRQUM1QixnQkFBZ0IsRUFBRSxTQUFTO1FBQzNCLG1CQUFtQixFQUFFLFNBQVM7UUFDOUIsb0JBQW9CLEVBQUUsU0FBUztRQUUvQixVQUFVLEVBQUUsU0FBUztRQUNyQixlQUFlLEVBQUUsU0FBUztRQUMxQixjQUFjLEVBQUUsU0FBUztRQUN6QixpQkFBaUIsRUFBRSxTQUFTO1FBQzVCLGtCQUFrQixFQUFFLFNBQVM7UUFFN0IsWUFBWSxFQUFFLFNBQVM7UUFDdkIsaUJBQWlCLEVBQUUsU0FBUztRQUM1QixnQkFBZ0IsRUFBRSxTQUFTO1FBQzNCLG1CQUFtQixFQUFFLFNBQVM7UUFDOUIsb0JBQW9CLEVBQUUsU0FBUztRQUUvQixTQUFTLEVBQUUsU0FBUztRQUNwQixjQUFjLEVBQUUsU0FBUztRQUN6QixhQUFhLEVBQUUsU0FBUztRQUN4QixnQkFBZ0IsRUFBRSxTQUFTO1FBRTNCLE9BQU87UUFDUCxXQUFXLEVBQUUsU0FBUztRQUN0QixhQUFhLEVBQUUsU0FBUztRQUN4QixZQUFZLEVBQUUsU0FBUztRQUN2QixZQUFZLEVBQUUsU0FBUztRQUV2QixhQUFhLEVBQUUsd0JBQXdCO1FBQ3ZDLGFBQWEsRUFBRSx3QkFBd0I7UUFDdkMsYUFBYSxFQUFFLHdCQUF3QjtRQUN2QyxhQUFhLEVBQUUsd0JBQXdCO1FBRXZDLGFBQWE7UUFDYixTQUFTLEVBQUUsU0FBUztRQUNwQixXQUFXLEVBQUUsU0FBUztRQUN0QixVQUFVLEVBQUUsU0FBUztRQUNyQixTQUFTLEVBQUUscUJBQXFCO1FBQ2hDLGNBQWMsRUFBRSxxQkFBcUI7UUFDckMsZ0JBQWdCLEVBQUUscUJBQXFCO1FBQ3ZDLGlCQUFpQixFQUFFLHFCQUFxQjtRQUV4QyxTQUFTO1FBQ1QsYUFBYSxFQUFFLFNBQVM7UUFDeEIsZUFBZSxFQUFFLFNBQVM7UUFDMUIsY0FBYyxFQUFFLFNBQVM7UUFDekIsV0FBVyxFQUFFLFNBQVM7UUFDdEIsZUFBZSxFQUFFLHFCQUFxQjtRQUN0QyxlQUFlLEVBQUUscUJBQXFCO1FBQ3RDLGVBQWUsRUFBRSxxQkFBcUI7UUFFdEMsVUFBVTtRQUNWLGFBQWEsRUFBRSxxQkFBcUI7UUFDcEMsZUFBZSxFQUFFLHFCQUFxQjtRQUN0QyxjQUFjLEVBQUUscUJBQXFCO1FBQ3JDLFdBQVcsRUFBRSxxQkFBcUI7UUFFbEMsU0FBUztRQUNULGVBQWUsRUFBRSxTQUFTO1FBQzFCLGlCQUFpQixFQUFFLFNBQVM7UUFDNUIsYUFBYSxFQUFFLFNBQVM7UUFDeEIsZUFBZSxFQUFFLFNBQVM7UUFDMUIsY0FBYyxFQUFFLFNBQVM7UUFDekIsY0FBYyxFQUFFLFNBQVM7UUFDekIsVUFBVSxFQUFFLFNBQVM7UUFDckIsZ0JBQWdCLEVBQUUsU0FBUztRQUMzQixxQkFBcUIsRUFBRSxTQUFTO1FBRWhDLE9BQU87UUFDUCxVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUUsU0FBUztRQUNyQixVQUFVLEVBQUUsU0FBUztLQUN0QixDQUFDO0FBQ0osQ0FBQyxFQS9NZ0IsYUFBYSxLQUFiLGFBQWEsUUErTTdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBCcmFuZGluZ1R5cGVzIHtcblxuICBleHBvcnQgaW50ZXJmYWNlIFRoZW1lQ29sb3JzIHtcbiAgICAvLyBCcmFuZFxuICAgIGJyYW5kUHJpbWFyeTogc3RyaW5nO1xuICAgIGJyYW5kUHJpbWFyeUxpZ2h0OiBzdHJpbmc7XG4gICAgYnJhbmRQcmltYXJ5RGFyazogc3RyaW5nO1xuICAgIGJyYW5kUHJpbWFyeURhcmtlcjogc3RyaW5nO1xuICAgIGJyYW5kUHJpbWFyeUxpZ2h0ZXI6IHN0cmluZztcbiAgICBicmFuZFByaW1hcnlMaWdodGVzdDogc3RyaW5nO1xuICAgIGJyYW5kUHJpbWFyeUhvdmVyOiBzdHJpbmc7XG4gICAgYnJhbmRQcmltYXJ5QWN0aXZlOiBzdHJpbmc7XG5cbiAgICBicmFuZFNlY29uZGFyeTogc3RyaW5nO1xuICAgIGJyYW5kU2Vjb25kYXJ5TGlnaHQ6IHN0cmluZztcbiAgICBicmFuZFNlY29uZGFyeURhcms6IHN0cmluZztcbiAgICBicmFuZFNlY29uZGFyeUxpZ2h0ZXI6IHN0cmluZztcblxuICAgIGJyYW5kQWNjZW50OiBzdHJpbmc7XG4gICAgYnJhbmRBY2NlbnRMaWdodDogc3RyaW5nO1xuICAgIGJyYW5kQWNjZW50RGFyazogc3RyaW5nO1xuICAgIGJyYW5kQWNjZW50TGlnaHRlcjogc3RyaW5nO1xuXG4gICAgLy8gU2VtYW50aWNcbiAgICBicmFuZFN1Y2Nlc3M6IHN0cmluZztcbiAgICBicmFuZFN1Y2Nlc3NMaWdodDogc3RyaW5nO1xuICAgIGJyYW5kU3VjY2Vzc0Rhcms6IHN0cmluZztcbiAgICBicmFuZFN1Y2Nlc3NMaWdodGVyOiBzdHJpbmc7XG4gICAgYnJhbmRTdWNjZXNzTGlnaHRlc3Q6IHN0cmluZztcblxuICAgIGJyYW5kRXJyb3I6IHN0cmluZztcbiAgICBicmFuZEVycm9yTGlnaHQ6IHN0cmluZztcbiAgICBicmFuZEVycm9yRGFyazogc3RyaW5nO1xuICAgIGJyYW5kRXJyb3JMaWdodGVyOiBzdHJpbmc7XG4gICAgYnJhbmRFcnJvckxpZ2h0ZXN0OiBzdHJpbmc7XG5cbiAgICBicmFuZFdhcm5pbmc6IHN0cmluZztcbiAgICBicmFuZFdhcm5pbmdMaWdodDogc3RyaW5nO1xuICAgIGJyYW5kV2FybmluZ0Rhcms6IHN0cmluZztcbiAgICBicmFuZFdhcm5pbmdMaWdodGVyOiBzdHJpbmc7XG4gICAgYnJhbmRXYXJuaW5nTGlnaHRlc3Q6IHN0cmluZztcblxuICAgIGJyYW5kSW5mbzogc3RyaW5nO1xuICAgIGJyYW5kSW5mb0xpZ2h0OiBzdHJpbmc7XG4gICAgYnJhbmRJbmZvRGFyazogc3RyaW5nO1xuICAgIGJyYW5kSW5mb0xpZ2h0ZXI6IHN0cmluZztcblxuICAgIC8vIFRleHRcbiAgICB0ZXh0UHJpbWFyeTogc3RyaW5nO1xuICAgIHRleHRTZWNvbmRhcnk6IHN0cmluZztcbiAgICB0ZXh0VGVydGlhcnk6IHN0cmluZztcbiAgICB0ZXh0RGlzYWJsZWQ6IHN0cmluZztcblxuICAgIHRleHRQcmltYXJ5ODc6IHN0cmluZztcbiAgICB0ZXh0UHJpbWFyeTYwOiBzdHJpbmc7XG4gICAgdGV4dFByaW1hcnkzODogc3RyaW5nO1xuICAgIHRleHRQcmltYXJ5MTI6IHN0cmluZztcblxuICAgIC8vIEJhY2tncm91bmRcbiAgICBiZ1ByaW1hcnk6IHN0cmluZztcbiAgICBiZ1NlY29uZGFyeTogc3RyaW5nO1xuICAgIGJnVGVydGlhcnk6IHN0cmluZztcbiAgICBiZ092ZXJsYXk6IHN0cmluZztcbiAgICBiZ092ZXJsYXlMaWdodDogc3RyaW5nO1xuICAgIGJnT3ZlcmxheUxpZ2h0ZXI6IHN0cmluZztcbiAgICBiZ092ZXJsYXlMaWdodGVzdDogc3RyaW5nO1xuXG4gICAgLy8gQm9yZGVyXG4gICAgYm9yZGVyUHJpbWFyeTogc3RyaW5nO1xuICAgIGJvcmRlclNlY29uZGFyeTogc3RyaW5nO1xuICAgIGJvcmRlclRlcnRpYXJ5OiBzdHJpbmc7XG4gICAgYm9yZGVyTGlnaHQ6IHN0cmluZztcbiAgICBib3JkZXJQcmltYXJ5MTI6IHN0cmluZztcbiAgICBib3JkZXJQcmltYXJ5MDg6IHN0cmluZztcbiAgICBib3JkZXJQcmltYXJ5MDY6IHN0cmluZztcblxuICAgIC8vIFNoYWRvd3NcbiAgICBzaGFkb3dQcmltYXJ5OiBzdHJpbmc7XG4gICAgc2hhZG93U2Vjb25kYXJ5OiBzdHJpbmc7XG4gICAgc2hhZG93VGVydGlhcnk6IHN0cmluZztcbiAgICBzaGFkb3dMaWdodDogc3RyaW5nO1xuXG4gICAgLy8gU3RhdHVzXG4gICAgc3RhdHVzQXZhaWxhYmxlOiBzdHJpbmc7XG4gICAgc3RhdHVzVW5hdmFpbGFibGU6IHN0cmluZztcbiAgICBzdGF0dXNIb3RzZWF0OiBzdHJpbmc7XG4gICAgc3RhdHVzTXVsdGl0ZWFtOiBzdHJpbmc7XG4gICAgc3RhdHVzU2VsZWN0ZWQ6IHN0cmluZztcbiAgICBzdGF0dXNVcGNvbWluZzogc3RyaW5nO1xuICAgIHN0YXR1c1Jvb206IHN0cmluZztcbiAgICBzdGF0dXNSb29tQm9va2VkOiBzdHJpbmc7XG4gICAgc3RhdHVzUm9vbVVuYXZhaWxhYmxlOiBzdHJpbmc7XG5cbiAgICAvLyBUZWFtXG4gICAgdGVhbUNvbG9yMTogc3RyaW5nO1xuICAgIHRlYW1Db2xvcjI6IHN0cmluZztcbiAgICB0ZWFtQ29sb3IzOiBzdHJpbmc7XG4gICAgdGVhbUNvbG9yNDogc3RyaW5nO1xuICAgIHRlYW1Db2xvcjU6IHN0cmluZztcbiAgICB0ZWFtQ29sb3I2OiBzdHJpbmc7XG4gICAgdGVhbUNvbG9yNzogc3RyaW5nO1xuICAgIHRlYW1Db2xvcjg6IHN0cmluZztcbiAgICB0ZWFtQ29sb3I5OiBzdHJpbmc7XG4gIH1cbiAgXG4gIGV4cG9ydCBjb25zdCBkZWZhdWx0VGhlbWU6IFRoZW1lQ29sb3JzID0ge1xuICAgIC8vIEJyYW5kXG4gICAgYnJhbmRQcmltYXJ5OiBcIiMwOTM3QjJcIixcbiAgICBicmFuZFByaW1hcnlMaWdodDogXCIjM0M2OEQwXCIsXG4gICAgYnJhbmRQcmltYXJ5RGFyazogXCIjMDYyQTk5XCIsXG4gICAgYnJhbmRQcmltYXJ5RGFya2VyOiBcIiMwNDFGODBcIixcbiAgICBicmFuZFByaW1hcnlMaWdodGVyOiBcIiM2MzhGRTdcIixcbiAgICBicmFuZFByaW1hcnlMaWdodGVzdDogXCIjQ0JEREZCXCIsXG4gICAgYnJhbmRQcmltYXJ5SG92ZXI6IFwiI0YwRjNGQVwiLFxuICAgIGJyYW5kUHJpbWFyeUFjdGl2ZTogXCIjREFFMUYzXCIsXG4gIFxuICAgIGJyYW5kU2Vjb25kYXJ5OiBcIiNFRDcxMUNcIixcbiAgICBicmFuZFNlY29uZGFyeUxpZ2h0OiBcIiNGMDlFNjVcIixcbiAgICBicmFuZFNlY29uZGFyeURhcms6IFwiI0IyMzYwMFwiLFxuICAgIGJyYW5kU2Vjb25kYXJ5TGlnaHRlcjogXCIjRkZDNkYyXCIsXG4gIFxuICAgIGJyYW5kQWNjZW50OiBcIiMxMEFEQUVcIixcbiAgICBicmFuZEFjY2VudExpZ2h0OiBcIiMxNkNCQkNcIixcbiAgICBicmFuZEFjY2VudERhcms6IFwiIzAzNUY2QlwiLFxuICAgIGJyYW5kQWNjZW50TGlnaHRlcjogXCIjQUNEQURBXCIsXG4gIFxuICAgIC8vIFNlbWFudGljXG4gICAgYnJhbmRTdWNjZXNzOiBcIiMzOEFGNDlcIixcbiAgICBicmFuZFN1Y2Nlc3NMaWdodDogXCIjNENBRjUwXCIsXG4gICAgYnJhbmRTdWNjZXNzRGFyazogXCIjMjE2NTMxXCIsXG4gICAgYnJhbmRTdWNjZXNzTGlnaHRlcjogXCIjRTRGNUU5XCIsXG4gICAgYnJhbmRTdWNjZXNzTGlnaHRlc3Q6IFwiI0YxRkZGM1wiLFxuICBcbiAgICBicmFuZEVycm9yOiBcIiNCMDAwMjBcIixcbiAgICBicmFuZEVycm9yTGlnaHQ6IFwiI0YwNEU0RVwiLFxuICAgIGJyYW5kRXJyb3JEYXJrOiBcIiNBNjAwNjBcIixcbiAgICBicmFuZEVycm9yTGlnaHRlcjogXCIjRkFFMUVBXCIsXG4gICAgYnJhbmRFcnJvckxpZ2h0ZXN0OiBcIiNGREYyRjJcIixcbiAgXG4gICAgYnJhbmRXYXJuaW5nOiBcIiNGRjlEMDBcIixcbiAgICBicmFuZFdhcm5pbmdMaWdodDogXCIjRDQ5MDBDXCIsXG4gICAgYnJhbmRXYXJuaW5nRGFyazogXCIjNjI0MDAwXCIsXG4gICAgYnJhbmRXYXJuaW5nTGlnaHRlcjogXCIjRjRFN0MzXCIsXG4gICAgYnJhbmRXYXJuaW5nTGlnaHRlc3Q6IFwiI0ZBRUZFRFwiLFxuICBcbiAgICBicmFuZEluZm86IFwiIzAwOTFGRlwiLFxuICAgIGJyYW5kSW5mb0xpZ2h0OiBcIiMzNUExRkZcIixcbiAgICBicmFuZEluZm9EYXJrOiBcIiMwMDg3QjJcIixcbiAgICBicmFuZEluZm9MaWdodGVyOiBcIiNDRkVDRjlcIixcbiAgXG4gICAgLy8gVGV4dFxuICAgIHRleHRQcmltYXJ5OiBcIiMxODFGMzNcIixcbiAgICB0ZXh0U2Vjb25kYXJ5OiBcIiM2QTczN0RcIixcbiAgICB0ZXh0VGVydGlhcnk6IFwiIzkyOURBQlwiLFxuICAgIHRleHREaXNhYmxlZDogXCIjQzhDREQzXCIsXG4gIFxuICAgIHRleHRQcmltYXJ5ODc6IFwicmdiYSgyNCwgMzEsIDUxLCAwLjg3KVwiLFxuICAgIHRleHRQcmltYXJ5NjA6IFwicmdiYSgyNCwgMzEsIDUxLCAwLjYwKVwiLFxuICAgIHRleHRQcmltYXJ5Mzg6IFwicmdiYSgyNCwgMzEsIDUxLCAwLjM4KVwiLFxuICAgIHRleHRQcmltYXJ5MTI6IFwicmdiYSgyNCwgMzEsIDUxLCAwLjEyKVwiLFxuICBcbiAgICAvLyBCYWNrZ3JvdW5kXG4gICAgYmdQcmltYXJ5OiBcIiNGRkZGRkZcIixcbiAgICBiZ1NlY29uZGFyeTogXCIjRkFGQUZBXCIsXG4gICAgYmdUZXJ0aWFyeTogXCIjRjVGNUY1XCIsXG4gICAgYmdPdmVybGF5OiBcInJnYmEoMCwgMCwgMCwgMC4zMilcIixcbiAgICBiZ092ZXJsYXlMaWdodDogXCJyZ2JhKDAsIDAsIDAsIDAuMTIpXCIsXG4gICAgYmdPdmVybGF5TGlnaHRlcjogXCJyZ2JhKDAsIDAsIDAsIDAuMDgpXCIsXG4gICAgYmdPdmVybGF5TGlnaHRlc3Q6IFwicmdiYSgwLCAwLCAwLCAwLjA0KVwiLFxuICBcbiAgICAvLyBCb3JkZXJcbiAgICBib3JkZXJQcmltYXJ5OiBcIiNFMEUwRTBcIixcbiAgICBib3JkZXJTZWNvbmRhcnk6IFwiI0Q2RENFMlwiLFxuICAgIGJvcmRlclRlcnRpYXJ5OiBcIiNDOENERDNcIixcbiAgICBib3JkZXJMaWdodDogXCIjRjFGNEY4XCIsXG4gICAgYm9yZGVyUHJpbWFyeTEyOiBcInJnYmEoMCwgMCwgMCwgMC4xMilcIixcbiAgICBib3JkZXJQcmltYXJ5MDg6IFwicmdiYSgwLCAwLCAwLCAwLjA4KVwiLFxuICAgIGJvcmRlclByaW1hcnkwNjogXCJyZ2JhKDAsIDAsIDAsIDAuMDYpXCIsXG4gIFxuICAgIC8vIFNoYWRvd3NcbiAgICBzaGFkb3dQcmltYXJ5OiBcInJnYmEoMCwgMCwgMCwgMC4xMilcIixcbiAgICBzaGFkb3dTZWNvbmRhcnk6IFwicmdiYSgwLCAwLCAwLCAwLjA4KVwiLFxuICAgIHNoYWRvd1RlcnRpYXJ5OiBcInJnYmEoMCwgMCwgMCwgMC4wNClcIixcbiAgICBzaGFkb3dMaWdodDogXCJyZ2JhKDAsIDAsIDAsIDAuMDYpXCIsXG4gIFxuICAgIC8vIFN0YXR1c1xuICAgIHN0YXR1c0F2YWlsYWJsZTogXCIjOTI5REFCXCIsXG4gICAgc3RhdHVzVW5hdmFpbGFibGU6IFwiI0NDRDNEQVwiLFxuICAgIHN0YXR1c0hvdHNlYXQ6IFwiIzg1N0JGRlwiLFxuICAgIHN0YXR1c011bHRpdGVhbTogXCIjMTBBREFFXCIsXG4gICAgc3RhdHVzU2VsZWN0ZWQ6IFwiIzEwQURBRVwiLFxuICAgIHN0YXR1c1VwY29taW5nOiBcIiNENDkwMENcIixcbiAgICBzdGF0dXNSb29tOiBcIiMzOEFGNDlcIixcbiAgICBzdGF0dXNSb29tQm9va2VkOiBcIiNCMjM2MDBcIixcbiAgICBzdGF0dXNSb29tVW5hdmFpbGFibGU6IFwiIzE4MUYzM1wiLFxuICBcbiAgICAvLyBUZWFtXG4gICAgdGVhbUNvbG9yMTogXCIjRjhDNTJFXCIsXG4gICAgdGVhbUNvbG9yMjogXCIjRkE4RTIwXCIsXG4gICAgdGVhbUNvbG9yMzogXCIjOTg3Q0REXCIsXG4gICAgdGVhbUNvbG9yNDogXCIjMTZDQkJDXCIsXG4gICAgdGVhbUNvbG9yNTogXCIjRTY1MDEwXCIsXG4gICAgdGVhbUNvbG9yNjogXCIjQTYwMDYwXCIsXG4gICAgdGVhbUNvbG9yNzogXCIjRUQzMjNCXCIsXG4gICAgdGVhbUNvbG9yODogXCIjMzVBMUZGXCIsXG4gICAgdGVhbUNvbG9yOTogXCIjODBEMzQ4XCIsXG4gIH07XG59Il19
|