mis-crystal-design-system 18.1.5-signal → 18.1.5
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/async-search-dropdown/async-dropdown.component.d.ts +44 -3
- package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +4 -0
- package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +14 -5
- package/esm2022/async-search-dropdown/async-dropdown.component.mjs +147 -37
- package/esm2022/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/chip/chip.component.mjs +4 -4
- package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +2 -34
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +87 -32
- package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +6 -3
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +324 -142
- package/esm2022/drawer/drawer-body/drawer-body.component.mjs +4 -4
- package/esm2022/fab/fab.component.mjs +4 -4
- package/esm2022/filter/filter-panel/filter-panel.component.mjs +28 -27
- package/esm2022/input/mis-input.component.mjs +3 -11
- package/esm2022/loader/loader.component.mjs +13 -7
- package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +4 -4
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +10 -5
- package/esm2022/phone-input/phone-input.component.mjs +4 -4
- package/esm2022/radio-button/radio-button.component.mjs +4 -4
- package/esm2022/ske-loader/ske-loader.component.mjs +4 -4
- package/esm2022/slider/slider.component.mjs +4 -4
- package/esm2022/snackbar/snackbar/snackbar.component.mjs +4 -4
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +23 -19
- package/esm2022/table/sort-icons.directive.mjs +24 -5
- package/esm2022/table/sub-table/sub-table.component.mjs +18 -5
- package/esm2022/table/table.component.mjs +236 -101
- package/esm2022/table/table.module.mjs +7 -5
- package/esm2022/timepicker/timepicker.component.mjs +26 -5
- package/esm2022/timerangepicker/timerangepicker.component.mjs +22 -16
- package/esm2022/toast/toast.component.mjs +4 -4
- package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +4 -4
- package/esm2022/virtual-scroll/virtual-scroll.component.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +146 -36
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-checkbox.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-chip.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +87 -64
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +328 -143
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-drawer.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-fab.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-filter.mjs +27 -26
- package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs +2 -10
- package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-loader.mjs +12 -6
- package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-modal.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +9 -4
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-phone-input.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-radio-button.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-snackbar.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +22 -18
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +279 -111
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timepicker.mjs +25 -4
- package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +21 -15
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-toast.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-tooltip.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
- package/filter/filter-panel/filter-panel.component.d.ts +1 -1
- package/input/mis-input.component.scss +2 -3
- package/loader/loader.component.d.ts +7 -1
- package/package.json +17 -17
- package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +2 -2
- package/table/table.component.d.ts +14 -1
- package/table/table.module.d.ts +2 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { animate, style, transition, trigger } from "@angular/animations";
|
|
2
|
-
import { Component
|
|
2
|
+
import { Component } from "@angular/core";
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "./toast.data.service";
|
|
5
5
|
import * as i2 from "@angular/platform-browser";
|
|
@@ -87,11 +87,11 @@ export class ToastComponent {
|
|
|
87
87
|
animate("300ms ease-in", style({ opacity: "0", transform: "translateY(50%)" }))
|
|
88
88
|
])
|
|
89
89
|
])
|
|
90
|
-
] }
|
|
90
|
+
] } }); }
|
|
91
91
|
}
|
|
92
92
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToastComponent, [{
|
|
93
93
|
type: Component,
|
|
94
|
-
args: [{ selector: "mis-teams-toast",
|
|
94
|
+
args: [{ selector: "mis-teams-toast", animations: [
|
|
95
95
|
trigger("fadeInOut", [
|
|
96
96
|
transition(":enter", [
|
|
97
97
|
style({ opacity: "0", transform: "translateY(-50%)", height: "0" }),
|
|
@@ -104,4 +104,4 @@ export class ToastComponent {
|
|
|
104
104
|
], template: "<div class=\"toast-container\">\n <div *ngFor=\"let toast of data.messages()\" @fadeInOut>\n <div class=\"toast-wrapper\" [ngClass]=\"toast?.state\">\n <div class=\"icon\" *ngIf=\"toast?.state\" [innerHTML]=\"getStateIcon(toast?.state)\"></div>\n <div class=\"msg\">{{ getMessage(toast) }}</div>\n </div>\n </div>\n</div>\n", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}.toast-container{transition:max-height .3s ease-in}.toast-container>div{position:relative;display:flex;justify-content:center}.toast-wrapper{display:flex;flex-direction:row;align-items:center;gap:16px;padding:14px 12px;background:var(--text-primary, #181F33);box-shadow:0 12px 17px #00000024,0 5px 22px #0000001f,0 7px 8px #0003;border-radius:4px;transition:all .3s ease-in;min-height:44px;transform-origin:top}.toast-wrapper .msg{color:var(--bg-primary, #FFFFFF);max-width:314px;flex:1 1 314px;font-size:14px;line-height:20px;letter-spacing:.2px}@media screen and (max-width: 360px){.toast-wrapper .msg{max-width:90vw;flex:1 1 90vw}}.toast-wrapper .icon{display:flex;justify-content:center;align-items:center}\n"] }]
|
|
105
105
|
}], () => [{ type: i1.ToastDataService }, { type: i2.DomSanitizer }], null); })();
|
|
106
106
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ToastComponent, { className: "ToastComponent" }); })();
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQTJCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7SUNFN0QseUJBQXNGOzs7O0lBQS9DLDRHQUF3Qzs7O0lBRGpGLEFBREYsMkJBQXNELGFBQ0E7SUFDbEQscUVBQWdGO0lBQ2hGLDhCQUFpQjtJQUFBLFlBQXVCO0lBRTVDLEFBREUsQUFEMEMsaUJBQU0sRUFDMUMsRUFDRjs7OztJQUxxQyxzQ0FBVTtJQUN4QixjQUF3QjtJQUF4QixrRUFBd0I7SUFDOUIsY0FBa0I7SUFBbEIsK0RBQWtCO0lBQ3BCLGVBQXVCO0lBQXZCLGlEQUF1Qjs7QURvQjlDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1MsSUFBc0IsRUFDckIsU0FBdUI7UUFEeEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUM5QixDQUFDO0lBRUosVUFBVSxDQUFDLEtBQVk7UUFDckIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUN4RCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVk7UUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDckQsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFrQjtRQUM3QixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXRCLE1BQU0sS0FBSyxHQUErQjtZQUN4QyxPQUFPLEVBQUU7Ozs7O09BS1I7WUFDRCxPQUFPLEVBQUU7Ozs7OztPQU1SO1lBQ0QsS0FBSyxFQUFFOzs7Ozs7T0FNTjtTQUNGLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBWTtRQUNoQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNuQyxDQUFDOytHQTdDVSxjQUFjO29FQUFkLGNBQWM7WUN4QjNCLDhCQUE2QjtZQUMzQiwrREFBc0Q7WUFNeEQsaUJBQU07O1lBTm1CLGNBQWtCO1lBQWxCLDZDQUFrQjt3bkpEVzdCO2dCQUNWLE9BQU8sQ0FBQyxXQUFXLEVBQUU7b0JBQ25CLFVBQVUsQ0FBQyxRQUFRLEVBQUU7d0JBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQzt3QkFDbkUsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7cUJBQzNGLENBQUM7b0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTt3QkFDbkIsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7cUJBQ2hGLENBQUM7aUJBQ0gsQ0FBQzthQUNIOztpRkFFVSxjQUFjO2NBaEIxQixTQUFTOzJCQUNFLGlCQUFpQixjQUdmO29CQUNWLE9BQU8sQ0FBQyxXQUFXLEVBQUU7d0JBQ25CLFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQzs0QkFDbkUsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7eUJBQzNGLENBQUM7d0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTs0QkFDbkIsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7eUJBQ2hGLENBQUM7cUJBQ0gsQ0FBQztpQkFDSDs7a0ZBRVUsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQgeyBUb2FzdERhdGFTZXJ2aWNlIH0gZnJvbSBcIi4vdG9hc3QuZGF0YS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUb2FzdFN0YXRlIH0gZnJvbSBcIi4vdG9hc3QuaW50ZXJmYWNlXCI7XG5cbnR5cGUgVG9hc3QgPSBzdHJpbmcgfCB7IHRleHQ6IHN0cmluZzsgc3RhdGU/OiBUb2FzdFN0YXRlIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtdGVhbXMtdG9hc3RcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi90b2FzdC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdG9hc3QuY29tcG9uZW50LnNjc3NcIl0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKFwiZmFkZUluT3V0XCIsIFtcbiAgICAgIHRyYW5zaXRpb24oXCI6ZW50ZXJcIiwgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IFwiMFwiLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgtNTAlKVwiLCBoZWlnaHQ6IFwiMFwiIH0pLFxuICAgICAgICBhbmltYXRlKFwiMzAwbXMgZWFzZS1pblwiLCBzdHlsZSh7IG9wYWNpdHk6IFwiMVwiLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgwKVwiLCBoZWlnaHQ6IFwiKlwiIH0pKVxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKFwiOmxlYXZlXCIsIFtcbiAgICAgICAgYW5pbWF0ZShcIjMwMG1zIGVhc2UtaW5cIiwgc3R5bGUoeyBvcGFjaXR5OiBcIjBcIiwgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVkoNTAlKVwiIH0pKVxuICAgICAgXSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRhdGE6IFRvYXN0RGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplclxuICApIHt9XG5cbiAgZ2V0TWVzc2FnZSh0b2FzdDogVG9hc3QpOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdG9hc3QgPT09IFwic3RyaW5nXCIgPyB0b2FzdCA6IHRvYXN0LnRleHQ7XG4gIH1cblxuICBzaG91bGRTaG93SWNvbih0b2FzdDogVG9hc3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNTdHJpbmdUb2FzdCh0b2FzdCkgJiYgISF0b2FzdC5zdGF0ZTtcbiAgfVxuXG4gIGdldFN0YXRlSWNvbihzdGF0ZT86IFRvYXN0U3RhdGUpOiBTYWZlSHRtbCB7XG4gICAgaWYgKCFzdGF0ZSkgcmV0dXJuIFwiXCI7XG5cbiAgICBjb25zdCBpY29uczogUmVjb3JkPFRvYXN0U3RhdGUsIHN0cmluZz4gPSB7XG4gICAgICBzdWNjZXNzOiBgXG4gICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiMTBcIiByPVwiMTBcIiBmaWxsPVwiIzRDQUY1MFwiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTguNiAxMy40TDUuMiAxMEw0IDExLjJMOC42IDE1LjhMMTYuNiA3LjhMMTUuNCA2LjZMOC42IDEzLjRaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIGAsXG4gICAgICB3YXJuaW5nOiBgXG4gICAgICAgIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgMEwyMCAxNy4zMjA1SDBMMTAgMFpcIiBmaWxsPVwiI0ZGOTgwMFwiLz5cbiAgICAgICAgICA8cGF0aCBkPVwiTTkgNkgxMVYxMkg5VjZaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNOSAxM0gxMVYxNUg5VjEzWlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICBgLFxuICAgICAgZXJyb3I6IGBcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjEwXCIgY3k9XCIxMFwiIHI9XCIxMFwiIGZpbGw9XCIjRDMyRjJGXCIvPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNOSA1SDExVjExSDlWNVpcIiBmaWxsPVwid2hpdGVcIi8+XG4gICAgICAgICAgPHBhdGggZD1cIk05IDEzSDExVjE1SDlWMTNaXCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIGBcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGljb25zW3N0YXRlXSB8fCBcIlwiKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTdHJpbmdUb2FzdCh0b2FzdDogVG9hc3QpOiB0b2FzdCBpcyBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgdG9hc3QgPT09IFwic3RyaW5nXCI7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b2FzdC1jb250YWluZXJcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgdG9hc3Qgb2YgZGF0YS5tZXNzYWdlcygpXCIgQGZhZGVJbk91dD5cbiAgICA8ZGl2IGNsYXNzPVwidG9hc3Qtd3JhcHBlclwiIFtuZ0NsYXNzXT1cInRvYXN0Py5zdGF0ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImljb25cIiAqbmdJZj1cInRvYXN0Py5zdGF0ZVwiIFtpbm5lckhUTUxdPVwiZ2V0U3RhdGVJY29uKHRvYXN0Py5zdGF0ZSlcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtc2dcIj57eyBnZXRNZXNzYWdlKHRvYXN0KSB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ViewChild,
|
|
1
|
+
import { Component, ViewChild, signal } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
4
|
const _c0 = ["container"];
|
|
@@ -66,14 +66,14 @@ export class ToolTipComponent {
|
|
|
66
66
|
i0.ɵɵtemplate(0, ToolTipComponent_div_0_Template, 7, 8, "div", 2);
|
|
67
67
|
} if (rf & 2) {
|
|
68
68
|
i0.ɵɵproperty("ngIf", ctx.toolTipText().length > 0 || ctx.templateRef);
|
|
69
|
-
} }, dependencies: [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle], styles: ["[_ngcontent-%COMP%]:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}#tooltip-container[_ngcontent-%COMP%]{position:absolute;z-index:1}#tooltip[_ngcontent-%COMP%]{position:relative;display:block;padding:8px 12px;border-radius:8px;color:var(--bg-primary, #FFFFFF);background:var(--text-primary, #181F33);font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text[_ngcontent-%COMP%]{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow[_ngcontent-%COMP%]{position:absolute;height:12px;width:12px;background:var(--text-primary, #181F33);z-index:1}.arrow-top[_ngcontent-%COMP%]{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom[_ngcontent-%COMP%]{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left[_ngcontent-%COMP%]{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right[_ngcontent-%COMP%]{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}"]
|
|
69
|
+
} }, dependencies: [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle], styles: ["[_ngcontent-%COMP%]:root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}#tooltip-container[_ngcontent-%COMP%]{position:absolute;z-index:1}#tooltip[_ngcontent-%COMP%]{position:relative;display:block;padding:8px 12px;border-radius:8px;color:var(--bg-primary, #FFFFFF);background:var(--text-primary, #181F33);font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text[_ngcontent-%COMP%]{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow[_ngcontent-%COMP%]{position:absolute;height:12px;width:12px;background:var(--text-primary, #181F33);z-index:1}.arrow-top[_ngcontent-%COMP%]{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom[_ngcontent-%COMP%]{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left[_ngcontent-%COMP%]{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right[_ngcontent-%COMP%]{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}"] }); }
|
|
70
70
|
}
|
|
71
71
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToolTipComponent, [{
|
|
72
72
|
type: Component,
|
|
73
|
-
args: [{ selector: "mis-tooltip",
|
|
73
|
+
args: [{ selector: "mis-tooltip", template: "<div id=\"tooltip-container\" *ngIf=\"toolTipText().length > 0 || templateRef\" #container>\n <div id=\"tooltip\">\n <div *ngIf=\"templateRef; else tooltipText\">\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: templateContext}\"></ng-container>\n </div>\n\n <ng-template #tooltipText>\n <div id=\"tooltip-text\" [innerHTML]=\"toolTipText()\" \n [ngStyle]=\"{'text-align' : toolTipTextAlignment() ? toolTipTextAlignment() : '' }\"></div>\n </ng-template>\n\n <span\n id=\"arrow\"\n [ngClass]=\"{\n 'arrow-left': toolTipPosition() === 'left',\n 'arrow-right': toolTipPosition() === 'right',\n 'arrow-top': toolTipPosition() === 'top',\n 'arrow-bottom': toolTipPosition() === 'bottom'\n }\"\n ></span>\n </div>\n</div>\n", styles: [":root{--pmry-200: #99BAF7;--pmry-100: #CBDDFB;--pmry-500: #0937B2;--pmry-400: #3C68D0;--pmry-600: #062A99;--pmry-700: #041F80;--pmry-300: #638FE7;--pmry-800: #021567;--pmry-900: #010F55;--sec-d-purple: #40447F;--sec-maroon: #6B034E;--sec-mud-red: #B23600;--sec-orange: #ED711C;--sec-purple: #815FD5;--sec-teal: #10ADAE;--sec-yellow: #D4900C;--sec-green: #547F40;--sec-bright-green: #27D22E;--sec-dark-teal: #035F6B;--sec-chocolate: #7C2F33;--sec-rube-pink: #C13D6D;--sec-cerulean: #0087B2;--sem-error: #B00020;--sem-info: #0091FF;--sem-warning: #FF9D00;--sem-success: #38AF49;--grey-bg-1: #FAFAFA;--grey-bg: #F5F5F5;--grey-seperators: #E0E0E0;--grey-disabled: #C8CDD3;--grey-hover: #F5F7FC;--grey-pressed: #E6EBF7;--grey-row: #F5F7FC;--dec-light-yellow: #F4E7C3;--dec-light-purple: #DACFF9;--dec-light-green: #E4F5E9;--dec-light-green2: #F1FFF3;--dec-light-pink: #FAE1EA;--dec-: #F4CBC1;--dec-lt-orange: #FAEFED;--dec-light-blue: #CFECF9;--dec-row-selection: #F1FDF8;--dec-row-selection2: #F2FBFF;--dec-row-lines: #D3E1E9;--text-white: #FFFFFF;--text-muted: #6A737D;--text-black: #181F33;--MR-solid-blue2:#C8D5F6;--MR-solid-purple:#C9C3FB;--MR-solid-orange:#EEAC9F;--MR-solid-green:#ACDADA;--MR-solid-brown:#E8C8AF;--MR-solid-yellow:#FFEFC7;--MR-solid-blue:#BBE6FF;--MR-solid-pink:#FFC6F2;--tr-hover:#F0F3FA;--tr-pressed:#DAE1F3;--brand-primary: #0937B2;--brand-primary-light: #3C68D0;--brand-primary-dark: #062A99;--brand-primary-darker: #041F80;--brand-primary-lighter: #638FE7;--brand-primary-lightest: #CBDDFB;--brand-primary-hover: #F0F3FA;--brand-primary-active: #DAE1F3;--brand-secondary: #ED711C;--brand-secondary-light: #F09E65;--brand-secondary-dark: #B23600;--brand-secondary-lighter: #FFC6F2;--brand-accent: #10ADAE;--brand-accent-light: #16CBBC;--brand-accent-dark: #035F6B;--brand-accent-lighter: #ACDADA;--brand-success: #38AF49;--brand-success-light: #4CAF50;--brand-success-dark: #216531;--brand-success-lighter: #E4F5E9;--brand-success-lightest: #F1FFF3;--brand-error: #B00020;--brand-error-light: #F04E4E;--brand-error-dark: #A60060;--brand-error-lighter: #FAE1EA;--brand-error-lightest: #FDF2F2;--brand-warning: #FF9D00;--brand-warning-light: #D4900C;--brand-warning-dark: #624000;--brand-warning-lighter: #F4E7C3;--brand-warning-lightest: #FAEFED;--brand-info: #0091FF;--brand-info-light: #35A1FF;--brand-info-dark: #0087B2;--brand-info-lighter: #CFECF9;--text-primary: #181F33;--text-secondary: #6A737D;--text-tertiary: #929DAB;--text-disabled: #929DAB;--text-primary-87: rgba(24, 31, 51, .87);--text-primary-60: rgba(24, 31, 51, .6);--text-primary-38: rgba(24, 31, 51, .38);--text-primary-12: rgba(24, 31, 51, .12);--bg-primary: #FFFFFF;--bg-secondary: #FAFAFA;--bg-tertiary: #F5F5F5;--bg-overlay: rgba(0, 0, 0, .32);--bg-overlay-light: rgba(0, 0, 0, .12);--bg-overlay-lighter: rgba(0, 0, 0, .08);--bg-overlay-lightest: rgba(0, 0, 0, .04);--border-primary: #E0E0E0;--border-secondary: #D6DCE2;--border-tertiary: #C8CDD3;--border-light: #F1F4F8;--border-primary-12: rgba(0, 0, 0, .12);--border-primary-08: rgba(0, 0, 0, .08);--border-primary-06: rgba(0, 0, 0, .06);--shadow-primary: rgba(0, 0, 0, .12);--shadow-secondary: rgba(0, 0, 0, .08);--shadow-tertiary: rgba(0, 0, 0, .04);--shadow-light: rgba(0, 0, 0, .06);--status-available: #929DAB;--status-unavailable: #CCD3DA;--status-hotseat: #857BFF;--status-multiteam: #10ADAE;--status-selected: #10ADAE;--status-upcoming: #D4900C;--status-room: #38AF49;--status-room-booked: #B23600;--status-room-unavailable: #181F33;--team-color-1: #F8C52E;--team-color-2: #FA8E20;--team-color-3: #987CDD;--team-color-4: #16CBBC;--team-color-5: #E65010;--team-color-6: #A60060;--team-color-7: #ED323B;--team-color-8: #35A1FF;--team-color-9: #80D348}#tooltip-container{position:absolute;z-index:1}#tooltip{position:relative;display:block;padding:8px 12px;border-radius:8px;color:var(--bg-primary, #FFFFFF);background:var(--text-primary, #181F33);font-family:Lato,sans-serif;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px}#tooltip-text{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#arrow{position:absolute;height:12px;width:12px;background:var(--text-primary, #181F33);z-index:1}.arrow-top{left:50%;bottom:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-bottom{left:50%;top:-6px;transform:translate(-50%) rotate(-45deg);-webkit-transform:translateX(-50%) rotate(-45deg)}.arrow-left{top:50%;right:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}.arrow-right{top:50%;left:-6px;transform:translateY(-50%) rotate(-45deg);-webkit-transform:translateY(-50%) rotate(-45deg)}\n"] }]
|
|
74
74
|
}], () => [], { container: [{
|
|
75
75
|
type: ViewChild,
|
|
76
76
|
args: ["container"]
|
|
77
77
|
}] }); })();
|
|
78
78
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ToolTipComponent, { className: "ToolTipComponent" }); })();
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAtY29udGFpbmVyL3Rvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLWNvbnRhaW5lci90b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUEyQyxTQUFTLEVBQTJCLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0lDR3hKLHdCQUFvRzs7O0lBRHRHLDJCQUEyQztJQUN6QywrRkFBcUY7SUFDdkYsaUJBQU07OztJQURXLGNBQStCO0lBQUEsQUFBL0IscURBQStCLCtFQUFxQzs7O0lBSW5GLHlCQUM4Rjs7O0lBQXpGLEFBRGtCLG1FQUEyQiwyR0FDcUM7OztJQVAzRixBQURGLGlDQUF1RixhQUNuRTtJQUtoQixBQUpBLHVFQUEyQywyR0FJakI7SUFLMUIsMEJBUVE7SUFFWixBQURFLGlCQUFNLEVBQ0Y7Ozs7SUFuQkksZUFBbUI7SUFBQSxBQUFuQix5Q0FBbUIsNEJBQWdCO0lBV3ZDLGVBS0U7SUFMRiwwTUFLRTs7QURWUixNQUFNLE9BQU8sZ0JBQWdCO0lBUzNCO1FBUk8sZ0JBQVcsR0FBMkIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELG9CQUFlLEdBQXNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RSx5QkFBb0IsR0FBMkIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBTWxELENBQUM7SUFDaEIsUUFBUSxLQUFJLENBQUM7SUFDYixlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYTtZQUFFLE9BQU87UUFDM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDckUsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztpSEF0QlUsZ0JBQWdCO29FQUFoQixnQkFBZ0I7Ozs7OztZQ1I3QixpRUFBdUY7O1lBQTFELHNFQUE2Qzs7O2lGRFE3RCxnQkFBZ0I7Y0FMNUIsU0FBUzsyQkFDRSxhQUFhO29CQVdDLFNBQVM7a0JBQWhDLFNBQVM7bUJBQUMsV0FBVzs7a0ZBUFgsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSVRvb2x0aXBQb3NpdGlvbnMgfSBmcm9tIFwiLi4vbW9kZWxzL3Rvb2x0aXAubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10b29sdGlwXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdG9vbHRpcC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdG9vbHRpcC5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbFRpcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyB0b29sVGlwVGV4dDogV3JpdGFibGVTaWduYWw8c3RyaW5nPiA9IHNpZ25hbChcIlwiKTtcbiAgcHVibGljIHRvb2xUaXBQb3NpdGlvbjogV3JpdGFibGVTaWduYWw8SVRvb2x0aXBQb3NpdGlvbnM+ID0gc2lnbmFsKFwiYm90dG9tXCIpO1xuICBwdWJsaWMgdG9vbFRpcFRleHRBbGlnbm1lbnQ6IFdyaXRhYmxlU2lnbmFsPHN0cmluZz4gPSBzaWduYWwoXCJcIik7XG4gIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+XG4gIHRlbXBsYXRlQ29udGV4dDogYW55O1xuXG4gIEBWaWV3Q2hpbGQoXCJjb250YWluZXJcIikgY29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cbiAgbmdPbkluaXQoKSB7fVxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnRvb2xUaXBQb3NpdGlvbigpID09PSBcInRvcFwiIHx8IHRoaXMudG9vbFRpcFBvc2l0aW9uKCkgPT09IFwiYm90dG9tXCIpIHtcbiAgICAgIGNvbnN0IGVsZVdpZHRoID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGVsZVdpZHRoLndpZHRoIC8gLTIgKyBcInB4XCI7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnRvb2xUaXBQb3NpdGlvbigpID09PSBcImxlZnRcIikge1xuICAgICAgY29uc3QgZWxlV2lkdGggPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gLWVsZVdpZHRoLndpZHRoICsgXCJweFwiO1xuICAgIH1cbiAgfVxufVxuXG4iLCI8ZGl2IGlkPVwidG9vbHRpcC1jb250YWluZXJcIiAqbmdJZj1cInRvb2xUaXBUZXh0KCkubGVuZ3RoID4gMCB8fCB0ZW1wbGF0ZVJlZlwiICNjb250YWluZXI+XG4gIDxkaXYgaWQ9XCJ0b29sdGlwXCI+XG4gICAgPGRpdiAqbmdJZj1cInRlbXBsYXRlUmVmOyBlbHNlIHRvb2x0aXBUZXh0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVSZWY7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHRlbXBsYXRlQ29udGV4dH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcFRleHQ+XG4gICAgICA8ZGl2IGlkPVwidG9vbHRpcC10ZXh0XCIgW2lubmVySFRNTF09XCJ0b29sVGlwVGV4dCgpXCIgXG4gICAgICAgICAgIFtuZ1N0eWxlXT1cInsndGV4dC1hbGlnbicgOiB0b29sVGlwVGV4dEFsaWdubWVudCgpID8gdG9vbFRpcFRleHRBbGlnbm1lbnQoKSA6ICcnIH1cIj48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPHNwYW5cbiAgICAgIGlkPVwiYXJyb3dcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnYXJyb3ctbGVmdCc6IHRvb2xUaXBQb3NpdGlvbigpID09PSAnbGVmdCcsXG4gICAgICAgICdhcnJvdy1yaWdodCc6IHRvb2xUaXBQb3NpdGlvbigpID09PSAncmlnaHQnLFxuICAgICAgICAnYXJyb3ctdG9wJzogdG9vbFRpcFBvc2l0aW9uKCkgPT09ICd0b3AnLFxuICAgICAgICAnYXJyb3ctYm90dG9tJzogdG9vbFRpcFBvc2l0aW9uKCkgPT09ICdib3R0b20nXG4gICAgICB9XCJcbiAgICA+PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ContentChild, EventEmitter, Output, ViewChild,
|
|
1
|
+
import { Component, ContentChild, EventEmitter, Output, ViewChild, input, signal, effect } from "@angular/core";
|
|
2
2
|
import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
|
|
3
3
|
import { BehaviorSubject, of } from "rxjs";
|
|
4
4
|
import { catchError, mergeMap, scan, tap, throttleTime } from "rxjs/operators";
|
|
@@ -168,11 +168,11 @@ export class VirtualScrollComponent {
|
|
|
168
168
|
i0.ɵɵproperty("ngIf", !ctx.loading() && ctx.error());
|
|
169
169
|
i0.ɵɵadvance();
|
|
170
170
|
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(3, 3, ctx.data$));
|
|
171
|
-
} }, dependencies: [i1.NgIf, i1.NgTemplateOutlet, i2.CdkFixedSizeVirtualScroll, i2.CdkVirtualForOf, i2.CdkVirtualScrollViewport, i3.LoaderComponent, i1.AsyncPipe], styles: ["cdk-virtual-scroll-viewport[_ngcontent-%COMP%]{height:100%}#main-container[_ngcontent-%COMP%]{height:100%;width:100%}.state-container[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;justify-content:center;align-items:center}#loader-container[_ngcontent-%COMP%]{width:100%;height:56px;display:flex;justify-content:center;align-items:center} #spinner{position:relative!important}"]
|
|
171
|
+
} }, dependencies: [i1.NgIf, i1.NgTemplateOutlet, i2.CdkFixedSizeVirtualScroll, i2.CdkVirtualForOf, i2.CdkVirtualScrollViewport, i3.LoaderComponent, i1.AsyncPipe], styles: ["cdk-virtual-scroll-viewport[_ngcontent-%COMP%]{height:100%}#main-container[_ngcontent-%COMP%]{height:100%;width:100%}.state-container[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;justify-content:center;align-items:center}#loader-container[_ngcontent-%COMP%]{width:100%;height:56px;display:flex;justify-content:center;align-items:center} #spinner{position:relative!important}"] }); }
|
|
172
172
|
}
|
|
173
173
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(VirtualScrollComponent, [{
|
|
174
174
|
type: Component,
|
|
175
|
-
args: [{ selector: "mis-virtual-scroll",
|
|
175
|
+
args: [{ selector: "mis-virtual-scroll", template: "<div class=\"state-container\" *ngIf=\"loading()\">\n <mis-loader></mis-loader>\n</div>\n<div class=\"state-container\" *ngIf=\"!loading() && error()\">\n <span>Unknown error has occurred.</span>\n</div>\n<ng-container *ngIf=\"data$ | async as data\">\n <cdk-virtual-scroll-viewport\n *ngIf=\"!loading() && !error()\"\n #viewport\n [minBufferPx]=\"config().minBufferPx\"\n [maxBufferPx]=\"config().maxBufferPx\"\n [itemSize]=\"config().rowHeight\"\n (scrolledIndexChange)=\"nextBatch(data.length)\"\n >\n <ng-container *cdkVirtualFor=\"let item of data; let i = index\">\n <ng-container\n [ngTemplateOutlet]=\"customItem\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\"\n ></ng-container>\n </ng-container>\n <div id=\"loader-container\" *ngIf=\"rowsLoading()\">\n <mis-loader></mis-loader>\n </div>\n </cdk-virtual-scroll-viewport>\n</ng-container>", styles: ["cdk-virtual-scroll-viewport{height:100%}#main-container{height:100%;width:100%}.state-container{height:100%;width:100%;display:flex;justify-content:center;align-items:center}#loader-container{width:100%;height:56px;display:flex;justify-content:center;align-items:center}::ng-deep #spinner{position:relative!important}\n"] }]
|
|
176
176
|
}], () => [{ type: i0.ChangeDetectorRef }], { viewPort: [{
|
|
177
177
|
type: ViewChild,
|
|
178
178
|
args: [CdkVirtualScrollViewport]
|
|
@@ -183,4 +183,4 @@ export class VirtualScrollComponent {
|
|
|
183
183
|
type: Output
|
|
184
184
|
}] }); })();
|
|
185
185
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(VirtualScrollComponent, { className: "VirtualScrollComponent" }); })();
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTRCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuTSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztJQ0ovRSw4QkFBK0M7SUFDM0MsNkJBQXlCO0lBQzdCLGlCQUFNOzs7SUFFRixBQURKLDhCQUEyRCxXQUNqRDtJQUFBLDJDQUEyQjtJQUNyQyxBQURxQyxpQkFBTyxFQUN0Qzs7O0lBVUUsNkJBQWdFO0lBQzVELDJCQUdnQjs7Ozs7O0lBRmhCLGNBQStCO0lBQy9CLEFBREEsb0RBQStCLHNFQUMwQjs7O0lBRzdELDhCQUFpRDtJQUM3Qyw2QkFBeUI7SUFDN0IsaUJBQU07Ozs7SUFoQlYseURBT0M7SUFERyxtVEFBdUIsZ0NBQXNCLEtBQUM7SUFROUMsQUFOQSxzSUFBZ0UsdUdBTWY7SUFHckQsaUJBQThCOzs7O0lBWjFCLEFBREEsQUFEQSx5REFBb0MsNENBQ0EsdUNBQ0w7SUFH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QUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7dUhBckhRLHNCQUFzQjtvRUFBdEIsc0JBQXNCOzs7Ozs7MkJBdUJwQix3QkFBd0I7Ozs7O1lDOUJ2QyxBQUhBLEFBSEEsdUVBQStDLDBEQUdZLDRFQUdmOzs7WUFOZCxvQ0FBZTtZQUdmLGNBQTJCO1lBQTNCLG9EQUEyQjtZQUcxQyxjQUFvQjtZQUFwQixzREFBb0I7OztpRkRPdEIsc0JBQXNCO2NBTmxDLFNBQVM7MkJBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU07a0RBeUJWLFFBQVE7a0JBQTVDLFNBQVM7bUJBQUMsd0JBQXdCO1lBRW5DLFVBQVU7a0JBRFQsWUFBWTttQkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFFMUMsVUFBVTtrQkFBbkIsTUFBTTs7a0ZBMUJFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBpbnB1dCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3Njcm9sbGluZ1wiO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1lcmdlTWFwLCBzY2FuLCB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgSVZpcnR1YWxTY3JvbGxDb25maWcgfSBmcm9tIFwiLi92aXJ0dWFsLXNjcm9sbC5jb25zdGFudHNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibWlzLXZpcnR1YWwtc2Nyb2xsXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi92aXJ0dWFsLXNjcm9sbC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi92aXJ0dWFsLXNjcm9sbC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsQ29tcG9uZW50IHtcblxuICAgIC8vIElucHV0IHNpZ25hbHNcbiAgICBjb25maWcgPSBpbnB1dDxJVmlydHVhbFNjcm9sbENvbmZpZz4oe1xuICAgICAgICBtaW5CdWZmZXJQeDogMjQwMCxcbiAgICAgICAgbWF4QnVmZmVyUHg6IDI0MDAsXG4gICAgICAgIHJvd0hlaWdodDogMTI4LFxuICAgICAgICBwYWdlU2l6ZTogNSxcbiAgICAgICAgaW5maW5pdGVTY3JvbGxEYXRhRnVuY3Rpb246IChvZmZzZXQsIHBhZ2VTaXplKSA9PiBvZihbMSwyLDMsNCw1XSlcbiAgICB9KTtcblxuICAgIC8vIEluZmluaXRlIHNjcm9sbCByZWxhdGVkIHZhcmlhYmxlc1xuICAgIG9mZnNldCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gICAgZW5kT2ZJbmZpbml0ZURhdGE6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgICByb3dzTG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICAgIFxuICAgIC8vIE1haW4gc3RhdGUgbWFuYWdpbmcgdmFyaWFibGVzXG4gICAgbG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICAgIGVycm9yOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG4gICAgXG4gICAgLy8gU2Nyb2xsIGRhdGEgcmVsYXRlZCB2YXJpYWJsZXNcbiAgICBkYXRhJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIFxuICAgIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KSB2aWV3UG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuICAgIEBDb250ZW50Q2hpbGQoXCJ2aXJ0dWFsU2Nyb2xsSXRlbVwiLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBjdXN0b21JdGVtOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgICBAT3V0cHV0KCkgaW50aWFsaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgdmlydHVhbFNjcm9sbEFwaTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50IHdpdGggc2lnbmFsc1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zd2l0Y2hPbkluZmluaXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxBcGkgPSB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlTG9hZGVyOiAoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KCF0aGlzLmxvYWRpbmcoKSksXG4gICAgICAgICAgICAgICAgdG9nZ2xlRXJyb3I6ICgpID0+IHRoaXMuZXJyb3Iuc2V0KCF0aGlzLmVycm9yKCkpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE9uSW5maW5pdGVTY3JvbGw6IHRoaXMuc3dpdGNoT25JbmZpbml0ZVNjcm9sbCxcbiAgICAgICAgICAgICAgICBzd2l0Y2hPZmZJbmZpbml0ZVNjcm9sbDogdGhpcy5zd2l0Y2hPZmZJbmZpbml0ZVNjcm9sbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIEtlZXAgdGhpcyBvbmUgLSBuZWVkZWQgZm9yIGV4dGVybmFsIEFQSSBlbWlzc2lvblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmludGlhbGl6ZWQuZW1pdCh0aGlzLnZpcnR1YWxTY3JvbGxBcGkpO1xuICAgICAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHN3aXRjaE9mZkluZmluaXRlU2Nyb2xsID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmVycm9yLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGF0YSQgPSB0aGlzLmNvbmZpZygpLmRhdGEkLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIC8vIFJlbW92ZWQgZGV0ZWN0Q2hhbmdlcygpIC0gc2lnbmFscyBoYW5kbGUgdGhpcyBhdXRvbWF0aWNhbGx5XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6IFVua25vd24gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcgY2FsZW5kYXIgZGF0YVwiLCBlcnIpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHN3aXRjaE9uSW5maW5pdGVTY3JvbGwgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5lbmRPZkluZmluaXRlRGF0YS5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLm9mZnNldC5uZXh0KDApO1xuICAgICAgICB0aGlzLnNldHVwSW5maW5pdGVTY3JvbGwoKTtcbiAgICB9O1xuXG4gICAgc2V0dXBJbmZpbml0ZVNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmF0Y2hNYXAgPSB0aGlzLm9mZnNldC5waXBlKFxuICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDUwMCksXG4gICAgICAgICAgICBtZXJnZU1hcChvZmZzZXQgPT4gdGhpcy5nZXRCYXRjaChvZmZzZXQpKSxcbiAgICAgICAgICAgIHNjYW4oKGFjYzogQXJyYXk8YW55PiwgYmF0Y2g6IEFycmF5PGFueT4pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmFjYywgLi4uYmF0Y2hdO1xuICAgICAgICAgICAgfSwgW10pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YSQgPSBiYXRjaE1hcC5waXBlKFxuICAgICAgICAgICAgdGFwKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucm93c0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAvLyBSZW1vdmVkIHNldFRpbWVvdXQgYW5kIGRldGVjdENoYW5nZXMoKSAtIHNpZ25hbHMgaGFuZGxlIHRoaXMgYXV0b21hdGljYWxseVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZXh0QmF0Y2gob2Zmc2V0KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVuZE9mSW5maW5pdGVEYXRhKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLnZpZXdQb3J0LmdldFJlbmRlcmVkUmFuZ2UoKS5lbmQ7XG4gICAgICAgIGNvbnN0IHRvdGFsID0gdGhpcy52aWV3UG9ydC5nZXREYXRhTGVuZ3RoKCk7XG4gICAgICAgIG9mZnNldCA9IE1hdGguY2VpbChvZmZzZXQgLyB0aGlzLmNvbmZpZygpLnBhZ2VTaXplKTtcbiAgICAgICAgaWYgKGVuZCA9PT0gdG90YWwgJiYgIXRoaXMucm93c0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQubmV4dChvZmZzZXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QmF0Y2gob2Zmc2V0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgdGhpcy5yb3dzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIGlmIChvZmZzZXQgPT0gbnVsbCkgb2Zmc2V0ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnKClcbiAgICAgICAgICAgIC5pbmZpbml0ZVNjcm9sbERhdGFGdW5jdGlvbihvZmZzZXQsIHRoaXMuY29uZmlnKCkucGFnZVNpemUpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKGFycjogQXJyYXk8YW55PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhcnIubGVuZ3RoIDwgdGhpcy5jb25maWcoKS5wYWdlU2l6ZSA/IHRoaXMuZW5kT2ZJbmZpbml0ZURhdGEuc2V0KHRydWUpIDogbnVsbDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvcjogVW5rbm93biBlcnJvciBvY2N1cnJlZCB3aGlsZSBmZXRjaGluZyBjYWxlbmRhciBkYXRhXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93c0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgfVxufSIsIjxkaXYgY2xhc3M9XCJzdGF0ZS1jb250YWluZXJcIiAqbmdJZj1cImxvYWRpbmcoKVwiPlxuICAgIDxtaXMtbG9hZGVyPjwvbWlzLWxvYWRlcj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInN0YXRlLWNvbnRhaW5lclwiICpuZ0lmPVwiIWxvYWRpbmcoKSAmJiBlcnJvcigpXCI+XG4gICAgPHNwYW4+VW5rbm93biBlcnJvciBoYXMgb2NjdXJyZWQuPC9zcGFuPlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YSQgfCBhc3luYyBhcyBkYXRhXCI+XG4gICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgICAgICAqbmdJZj1cIiFsb2FkaW5nKCkgJiYgIWVycm9yKClcIlxuICAgICAgICAjdmlld3BvcnRcbiAgICAgICAgW21pbkJ1ZmZlclB4XT1cImNvbmZpZygpLm1pbkJ1ZmZlclB4XCJcbiAgICAgICAgW21heEJ1ZmZlclB4XT1cImNvbmZpZygpLm1heEJ1ZmZlclB4XCJcbiAgICAgICAgW2l0ZW1TaXplXT1cImNvbmZpZygpLnJvd0hlaWdodFwiXG4gICAgICAgIChzY3JvbGxlZEluZGV4Q2hhbmdlKT1cIm5leHRCYXRjaChkYXRhLmxlbmd0aClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGRhdGE7ICBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21JdGVtXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSwgaW5kZXg6IGkgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGlkPVwibG9hZGVyLWNvbnRhaW5lclwiICpuZ0lmPVwicm93c0xvYWRpbmcoKVwiPlxuICAgICAgICAgICAgPG1pcy1sb2FkZXI+PC9taXMtbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUEyQixLQUFLLEVBQUUsTUFBTSxFQUE0QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbk0sT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7SUNKL0UsOEJBQStDO0lBQzNDLDZCQUF5QjtJQUM3QixpQkFBTTs7O0lBRUYsQUFESiw4QkFBMkQsV0FDakQ7SUFBQSwyQ0FBMkI7SUFDckMsQUFEcUMsaUJBQU8sRUFDdEM7OztJQVVFLDZCQUFnRTtJQUM1RCwyQkFHZ0I7Ozs7OztJQUZoQixjQUErQjtJQUMvQixBQURBLG9EQUErQixzRUFDMEI7OztJQUc3RCw4QkFBaUQ7SUFDN0MsNkJBQXlCO0lBQzdCLGlCQUFNOzs7O0lBaEJWLHlEQU9DO0lBREcsbVRBQXVCLGdDQUFzQixLQUFDO0lBUTlDLEFBTkEsc0lBQWdFLHVHQU1mO0lBR3JELGlCQUE4Qjs7OztJQVoxQixBQURBLEFBREEseURBQW9DLDRDQUNBLHVDQUNMO0lBR1EsZUFBVTtJQUFW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QUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO3VIQXJIUSxzQkFBc0I7b0VBQXRCLHNCQUFzQjs7Ozs7OzJCQXVCcEIsd0JBQXdCOzs7OztZQzdCdkMsQUFIQSxBQUhBLHVFQUErQywwREFHWSw0RUFHZjs7O1lBTmQsb0NBQWU7WUFHZixjQUEyQjtZQUEzQixvREFBMkI7WUFHMUMsY0FBb0I7WUFBcEIsc0RBQW9COzs7aUZETXRCLHNCQUFzQjtjQUxsQyxTQUFTOzJCQUNJLG9CQUFvQjtrREEyQk8sUUFBUTtrQkFBNUMsU0FBUzttQkFBQyx3QkFBd0I7WUFFbkMsVUFBVTtrQkFEVCxZQUFZO21CQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUUxQyxVQUFVO2tCQUFuQixNQUFNOztrRkExQkUsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIGlucHV0LCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsLCBjb21wdXRlZCwgZWZmZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gXCJAYW5ndWxhci9jZGsvc2Nyb2xsaW5nXCI7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWVyZ2VNYXAsIHNjYW4sIHRhcCwgdGhyb3R0bGVUaW1lIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBJVmlydHVhbFNjcm9sbENvbmZpZyB9IGZyb20gXCIuL3ZpcnR1YWwtc2Nyb2xsLmNvbnN0YW50c1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJtaXMtdmlydHVhbC1zY3JvbGxcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3ZpcnR1YWwtc2Nyb2xsLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3ZpcnR1YWwtc2Nyb2xsLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsQ29tcG9uZW50IHtcblxuICAgIC8vIElucHV0IHNpZ25hbHNcbiAgICBjb25maWcgPSBpbnB1dDxJVmlydHVhbFNjcm9sbENvbmZpZz4oe1xuICAgICAgICBtaW5CdWZmZXJQeDogMjQwMCxcbiAgICAgICAgbWF4QnVmZmVyUHg6IDI0MDAsXG4gICAgICAgIHJvd0hlaWdodDogMTI4LFxuICAgICAgICBwYWdlU2l6ZTogNSxcbiAgICAgICAgaW5maW5pdGVTY3JvbGxEYXRhRnVuY3Rpb246IChvZmZzZXQsIHBhZ2VTaXplKSA9PiBvZihbMSwyLDMsNCw1XSlcbiAgICB9KTtcblxuICAgIC8vIEluZmluaXRlIHNjcm9sbCByZWxhdGVkIHZhcmlhYmxlc1xuICAgIG9mZnNldCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gICAgZW5kT2ZJbmZpbml0ZURhdGE6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgICByb3dzTG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICAgIFxuICAgIC8vIE1haW4gc3RhdGUgbWFuYWdpbmcgdmFyaWFibGVzXG4gICAgbG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICAgIGVycm9yOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG4gICAgXG4gICAgLy8gU2Nyb2xsIGRhdGEgcmVsYXRlZCB2YXJpYWJsZXNcbiAgICBkYXRhJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIFxuICAgIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KSB2aWV3UG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuICAgIEBDb250ZW50Q2hpbGQoXCJ2aXJ0dWFsU2Nyb2xsSXRlbVwiLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBjdXN0b21JdGVtOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgICBAT3V0cHV0KCkgaW50aWFsaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgdmlydHVhbFNjcm9sbEFwaTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50IHdpdGggc2lnbmFsc1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zd2l0Y2hPbkluZmluaXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGxBcGkgPSB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlTG9hZGVyOiAoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KCF0aGlzLmxvYWRpbmcoKSksXG4gICAgICAgICAgICAgICAgdG9nZ2xlRXJyb3I6ICgpID0+IHRoaXMuZXJyb3Iuc2V0KCF0aGlzLmVycm9yKCkpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE9uSW5maW5pdGVTY3JvbGw6IHRoaXMuc3dpdGNoT25JbmZpbml0ZVNjcm9sbCxcbiAgICAgICAgICAgICAgICBzd2l0Y2hPZmZJbmZpbml0ZVNjcm9sbDogdGhpcy5zd2l0Y2hPZmZJbmZpbml0ZVNjcm9sbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIEtlZXAgdGhpcyBvbmUgLSBuZWVkZWQgZm9yIGV4dGVybmFsIEFQSSBlbWlzc2lvblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmludGlhbGl6ZWQuZW1pdCh0aGlzLnZpcnR1YWxTY3JvbGxBcGkpO1xuICAgICAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHN3aXRjaE9mZkluZmluaXRlU2Nyb2xsID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmVycm9yLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGF0YSQgPSB0aGlzLmNvbmZpZygpLmRhdGEkLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIC8vIFJlbW92ZWQgZGV0ZWN0Q2hhbmdlcygpIC0gc2lnbmFscyBoYW5kbGUgdGhpcyBhdXRvbWF0aWNhbGx5XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6IFVua25vd24gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcgY2FsZW5kYXIgZGF0YVwiLCBlcnIpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfTtcblxuICAgIHN3aXRjaE9uSW5maW5pdGVTY3JvbGwgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3Iuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5lbmRPZkluZmluaXRlRGF0YS5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLm9mZnNldC5uZXh0KDApO1xuICAgICAgICB0aGlzLnNldHVwSW5maW5pdGVTY3JvbGwoKTtcbiAgICB9O1xuXG4gICAgc2V0dXBJbmZpbml0ZVNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmF0Y2hNYXAgPSB0aGlzLm9mZnNldC5waXBlKFxuICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDUwMCksXG4gICAgICAgICAgICBtZXJnZU1hcChvZmZzZXQgPT4gdGhpcy5nZXRCYXRjaChvZmZzZXQpKSxcbiAgICAgICAgICAgIHNjYW4oKGFjYzogQXJyYXk8YW55PiwgYmF0Y2g6IEFycmF5PGFueT4pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmFjYywgLi4uYmF0Y2hdO1xuICAgICAgICAgICAgfSwgW10pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YSQgPSBiYXRjaE1hcC5waXBlKFxuICAgICAgICAgICAgdGFwKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucm93c0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAvLyBSZW1vdmVkIHNldFRpbWVvdXQgYW5kIGRldGVjdENoYW5nZXMoKSAtIHNpZ25hbHMgaGFuZGxlIHRoaXMgYXV0b21hdGljYWxseVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZXh0QmF0Y2gob2Zmc2V0KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVuZE9mSW5maW5pdGVEYXRhKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLnZpZXdQb3J0LmdldFJlbmRlcmVkUmFuZ2UoKS5lbmQ7XG4gICAgICAgIGNvbnN0IHRvdGFsID0gdGhpcy52aWV3UG9ydC5nZXREYXRhTGVuZ3RoKCk7XG4gICAgICAgIG9mZnNldCA9IE1hdGguY2VpbChvZmZzZXQgLyB0aGlzLmNvbmZpZygpLnBhZ2VTaXplKTtcbiAgICAgICAgaWYgKGVuZCA9PT0gdG90YWwgJiYgIXRoaXMucm93c0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXQubmV4dChvZmZzZXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QmF0Y2gob2Zmc2V0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgdGhpcy5yb3dzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIGlmIChvZmZzZXQgPT0gbnVsbCkgb2Zmc2V0ID0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnKClcbiAgICAgICAgICAgIC5pbmZpbml0ZVNjcm9sbERhdGFGdW5jdGlvbihvZmZzZXQsIHRoaXMuY29uZmlnKCkucGFnZVNpemUpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKGFycjogQXJyYXk8YW55PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhcnIubGVuZ3RoIDwgdGhpcy5jb25maWcoKS5wYWdlU2l6ZSA/IHRoaXMuZW5kT2ZJbmZpbml0ZURhdGEuc2V0KHRydWUpIDogbnVsbDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvcjogVW5rbm93biBlcnJvciBvY2N1cnJlZCB3aGlsZSBmZXRjaGluZyBjYWxlbmRhciBkYXRhXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93c0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgfVxufSIsIjxkaXYgY2xhc3M9XCJzdGF0ZS1jb250YWluZXJcIiAqbmdJZj1cImxvYWRpbmcoKVwiPlxuICAgIDxtaXMtbG9hZGVyPjwvbWlzLWxvYWRlcj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInN0YXRlLWNvbnRhaW5lclwiICpuZ0lmPVwiIWxvYWRpbmcoKSAmJiBlcnJvcigpXCI+XG4gICAgPHNwYW4+VW5rbm93biBlcnJvciBoYXMgb2NjdXJyZWQuPC9zcGFuPlxuPC9kaXY+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YSQgfCBhc3luYyBhcyBkYXRhXCI+XG4gICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgICAgICAqbmdJZj1cIiFsb2FkaW5nKCkgJiYgIWVycm9yKClcIlxuICAgICAgICAjdmlld3BvcnRcbiAgICAgICAgW21pbkJ1ZmZlclB4XT1cImNvbmZpZygpLm1pbkJ1ZmZlclB4XCJcbiAgICAgICAgW21heEJ1ZmZlclB4XT1cImNvbmZpZygpLm1heEJ1ZmZlclB4XCJcbiAgICAgICAgW2l0ZW1TaXplXT1cImNvbmZpZygpLnJvd0hlaWdodFwiXG4gICAgICAgIChzY3JvbGxlZEluZGV4Q2hhbmdlKT1cIm5leHRCYXRjaChkYXRhLmxlbmd0aClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGRhdGE7ICBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21JdGVtXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSwgaW5kZXg6IGkgfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGlkPVwibG9hZGVyLWNvbnRhaW5lclwiICpuZ0lmPVwicm93c0xvYWRpbmcoKVwiPlxuICAgICAgICAgICAgPG1pcy1sb2FkZXI+PC9taXMtbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, output, signal,
|
|
2
|
+
import { input, output, signal, Component, ViewChild, ContentChild, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import * as i3 from '@angular/forms';
|
|
4
4
|
import { UntypedFormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
5
5
|
import * as i1 from '@angular/cdk/overlay';
|
|
6
6
|
import { ConnectionPositionPair, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
7
7
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
8
|
-
import { tap, debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
8
|
+
import { tap, debounceTime, distinctUntilChanged, filter } from 'rxjs/operators';
|
|
9
9
|
import { Subject, merge } from 'rxjs';
|
|
10
10
|
import * as i2 from '@angular/common';
|
|
11
11
|
import { CommonModule } from '@angular/common';
|
|
@@ -230,34 +230,20 @@ class AsyncDropdownComponent {
|
|
|
230
230
|
this.error = signal(false);
|
|
231
231
|
this.openPopUpOnTab = signal(false);
|
|
232
232
|
this.data = signal([]);
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
}
|
|
248
|
-
// Call HTTP stream
|
|
249
|
-
this.httpStream()(q).subscribe({
|
|
250
|
-
next: (list) => {
|
|
251
|
-
this.loading.set(false);
|
|
252
|
-
this.data.set(list);
|
|
253
|
-
},
|
|
254
|
-
error: () => {
|
|
255
|
-
this.loading.set(false);
|
|
256
|
-
this.error.set(true);
|
|
257
|
-
},
|
|
258
|
-
});
|
|
259
|
-
});
|
|
260
|
-
});
|
|
233
|
+
/**
|
|
234
|
+
* Tracks the last selected value to prevent dropdown from reopening when:
|
|
235
|
+
* - Input regains focus after selection (showing selected value)
|
|
236
|
+
* - Parent component re-renders and triggers change detection
|
|
237
|
+
* - User hasn't actually typed a new search query
|
|
238
|
+
*
|
|
239
|
+
* This is necessary because the input serves dual purposes:
|
|
240
|
+
* 1. Search input (user types, triggers API calls)
|
|
241
|
+
* 2. Display selected value (shows what was selected)
|
|
242
|
+
*
|
|
243
|
+
* Without this, setting the input value after selection would trigger
|
|
244
|
+
* the search subscription, causing unwanted API calls and dropdown reopening.
|
|
245
|
+
*/
|
|
246
|
+
this.lastSelectedValue = signal(null);
|
|
261
247
|
this.handleControlChanges = (values) => {
|
|
262
248
|
values.forEach((el) => this.selectData(el, true));
|
|
263
249
|
};
|
|
@@ -267,17 +253,92 @@ class AsyncDropdownComponent {
|
|
|
267
253
|
if (this.multi() && !this.uniqueKey()) {
|
|
268
254
|
throw new Error('[uniqueKey] required in multi mode.');
|
|
269
255
|
}
|
|
270
|
-
if (this.disabled())
|
|
256
|
+
if (this.disabled()) {
|
|
271
257
|
this.searchInput.disable();
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Search observable pipeline with RxJS operators to filter at the source.
|
|
261
|
+
* This declarative approach prevents unwanted searches by filtering:
|
|
262
|
+
* 1. Empty queries or queries below minInputLength
|
|
263
|
+
* 2. Queries that match the last selected value (prevents reopening after selection)
|
|
264
|
+
*
|
|
265
|
+
* Filtering at the source is preferred over checking flags in subscribe()
|
|
266
|
+
* because it's more declarative, testable, and follows RxJS best practices.
|
|
267
|
+
*/
|
|
268
|
+
const searchObservable = this.searchInput.valueChanges.pipe(tap((val) => this.searchQueryChange.emit(val)), debounceTime(this.debounceTime()), distinctUntilChanged(),
|
|
269
|
+
// Filter: Only process non-empty queries that meet minInputLength requirement
|
|
270
|
+
filter((query) => {
|
|
271
|
+
const q = query?.trim() ?? '';
|
|
272
|
+
if (!q || q.length < this.minInputLength()) {
|
|
273
|
+
// Close dropdown if query is too short
|
|
274
|
+
this.closeDropdown();
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
|
+
return true;
|
|
278
|
+
}),
|
|
279
|
+
// Filter: Ignore queries that match the last selected value
|
|
280
|
+
// This prevents dropdown from reopening when input shows selected value
|
|
281
|
+
filter((query) => {
|
|
282
|
+
const q = query?.trim() ?? '';
|
|
283
|
+
const lastSelected = this.lastSelectedValue();
|
|
284
|
+
// Allow search if no previous selection OR query is different from selected value
|
|
285
|
+
return !lastSelected || q !== lastSelected;
|
|
286
|
+
}));
|
|
287
|
+
/**
|
|
288
|
+
* Subscribe to search queries and trigger HTTP stream.
|
|
289
|
+
* All filtering is done in the pipe chain above, so this callback
|
|
290
|
+
* only handles the actual search execution.
|
|
291
|
+
*/
|
|
292
|
+
this.searchSubscription = merge(searchObservable, this.httpStreamTrigger)
|
|
293
|
+
.pipe(
|
|
294
|
+
// Additional filter for httpStreamTrigger (manual refresh)
|
|
295
|
+
filter((query) => {
|
|
296
|
+
const q = query?.trim() ?? '';
|
|
297
|
+
// For manual triggers, still respect minInputLength and lastSelectedValue
|
|
298
|
+
if (!q || q.length < this.minInputLength()) {
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
const lastSelected = this.lastSelectedValue();
|
|
302
|
+
return !lastSelected || q !== lastSelected;
|
|
303
|
+
}))
|
|
304
|
+
.subscribe((query) => {
|
|
305
|
+
const q = query?.trim() ?? '';
|
|
306
|
+
this.loading.set(true);
|
|
307
|
+
this.error.set(false);
|
|
308
|
+
// Open overlay if not yet open
|
|
309
|
+
if (!this.overlayRef?.hasAttached()) {
|
|
310
|
+
this.openDropdown(this.dd, this.origin.nativeElement);
|
|
311
|
+
}
|
|
312
|
+
// Call HTTP stream
|
|
313
|
+
this.httpStream()(q).subscribe({
|
|
314
|
+
next: (list) => {
|
|
315
|
+
this.loading.set(false);
|
|
316
|
+
this.data.set(list);
|
|
317
|
+
if (!this.overlayRef?.hasAttached() && list.length > 0) {
|
|
318
|
+
this.openDropdown(this.dd, this.origin.nativeElement);
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
error: () => {
|
|
322
|
+
this.loading.set(false);
|
|
323
|
+
this.error.set(true);
|
|
324
|
+
},
|
|
325
|
+
});
|
|
326
|
+
});
|
|
272
327
|
if (this.control()?.value) {
|
|
273
328
|
this.handleControlChanges(this.control().value);
|
|
274
329
|
}
|
|
275
|
-
this.control()?.valueChanges.subscribe(this.handleControlChanges);
|
|
330
|
+
this.controlSubscription = this.control()?.valueChanges.subscribe(this.handleControlChanges);
|
|
331
|
+
// Handle searchValue input changes
|
|
332
|
+
if (this.searchValue()) {
|
|
333
|
+
this.searchInput.patchValue(this.searchValue(), { emitEvent: false });
|
|
334
|
+
}
|
|
276
335
|
}
|
|
277
336
|
ngOnChanges() {
|
|
278
|
-
|
|
279
|
-
|
|
337
|
+
// Handle searchValue changes
|
|
338
|
+
if (this.searchValue() !== undefined) {
|
|
339
|
+
this.searchInput.patchValue(this.searchValue(), { emitEvent: false });
|
|
280
340
|
}
|
|
341
|
+
// Handle disabled changes
|
|
281
342
|
if (this.disabled()) {
|
|
282
343
|
this.searchInput.disable();
|
|
283
344
|
}
|
|
@@ -286,6 +347,9 @@ class AsyncDropdownComponent {
|
|
|
286
347
|
}
|
|
287
348
|
}
|
|
288
349
|
ngOnDestroy() {
|
|
350
|
+
this.searchSubscription?.unsubscribe();
|
|
351
|
+
this.controlSubscription?.unsubscribe();
|
|
352
|
+
this.httpStreamTrigger.complete();
|
|
289
353
|
this.overlayRef?.dispose();
|
|
290
354
|
}
|
|
291
355
|
// === Methods ===
|
|
@@ -317,10 +381,12 @@ class AsyncDropdownComponent {
|
|
|
317
381
|
width: origin.clientWidth,
|
|
318
382
|
});
|
|
319
383
|
this.overlayRef = this.overlay.create(configs);
|
|
320
|
-
if (this.dropdownListWidth())
|
|
384
|
+
if (this.dropdownListWidth()) {
|
|
321
385
|
this.overlayRef.updateSize({ width: this.dropdownListWidth() });
|
|
386
|
+
}
|
|
322
387
|
this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));
|
|
323
388
|
this.overlayRef.backdropClick().subscribe(() => this.closeDropdown());
|
|
389
|
+
this.opened.set(true);
|
|
324
390
|
}
|
|
325
391
|
closeDropdown() {
|
|
326
392
|
this.opened.set(false);
|
|
@@ -337,12 +403,29 @@ class AsyncDropdownComponent {
|
|
|
337
403
|
this.closeDropdown();
|
|
338
404
|
}
|
|
339
405
|
}
|
|
406
|
+
/**
|
|
407
|
+
* Handles item selection from dropdown.
|
|
408
|
+
*
|
|
409
|
+
* For single-select mode:
|
|
410
|
+
* - Sets input value to display selected item (standard UX pattern)
|
|
411
|
+
* - Stores selected value to prevent reopening dropdown on focus/change detection
|
|
412
|
+
* - Blurs input to prevent immediate focus-triggered searches
|
|
413
|
+
*
|
|
414
|
+
* For multi-select mode:
|
|
415
|
+
* - Clears input for next selection
|
|
416
|
+
* - Maintains focus for continuous selection
|
|
417
|
+
*/
|
|
340
418
|
selectData(item, effectedFromOutside = true) {
|
|
341
419
|
if (item.disabled)
|
|
342
420
|
return;
|
|
343
421
|
this.itemSelected.emit(item);
|
|
344
422
|
if (!this.multi()) {
|
|
345
|
-
|
|
423
|
+
const selectedValue = item[this.displayKey()];
|
|
424
|
+
// Set input value to show selected item (standard UX - like Angular Material, etc.)
|
|
425
|
+
// Use emitEvent: false to prevent triggering valueChanges subscription
|
|
426
|
+
this.searchInput.patchValue(selectedValue, { emitEvent: false });
|
|
427
|
+
// Store selected value - RxJS filter will prevent reopening with same value
|
|
428
|
+
this.lastSelectedValue.set(selectedValue);
|
|
346
429
|
this.setControlValue(item);
|
|
347
430
|
}
|
|
348
431
|
else {
|
|
@@ -360,6 +443,11 @@ class AsyncDropdownComponent {
|
|
|
360
443
|
this.data.set([]);
|
|
361
444
|
}
|
|
362
445
|
this.closeDropdown();
|
|
446
|
+
// Blur input to prevent focus events from immediately triggering search
|
|
447
|
+
// The lastSelectedValue filter will also prevent reopening if focus occurs
|
|
448
|
+
if (this.inputRef?.nativeElement) {
|
|
449
|
+
this.inputRef.nativeElement.blur();
|
|
450
|
+
}
|
|
363
451
|
}
|
|
364
452
|
removeItem(item) {
|
|
365
453
|
this.itemRemoved.emit(item);
|
|
@@ -374,12 +462,34 @@ class AsyncDropdownComponent {
|
|
|
374
462
|
get selectedItems() {
|
|
375
463
|
return Array.from(this.selections().values());
|
|
376
464
|
}
|
|
465
|
+
/**
|
|
466
|
+
* Clears the input and resets selection state.
|
|
467
|
+
* Clearing lastSelectedValue allows new searches to proceed normally.
|
|
468
|
+
*/
|
|
377
469
|
removeInputValue() {
|
|
378
470
|
this.searchInput.reset();
|
|
379
471
|
this.data.set([]);
|
|
472
|
+
this.lastSelectedValue.set(null);
|
|
380
473
|
this.clear.emit(true);
|
|
381
474
|
}
|
|
475
|
+
/**
|
|
476
|
+
* Called when input receives focus.
|
|
477
|
+
* Only opens dropdown if:
|
|
478
|
+
* 1. minInputLength allows it (-1 or 0 means open on focus)
|
|
479
|
+
* 2. Input value doesn't match last selected value (prevents reopening after selection)
|
|
480
|
+
*
|
|
481
|
+
* This handles the case where input regains focus after selection.
|
|
482
|
+
* The RxJS filter in searchObservable handles valueChanges, but focus events
|
|
483
|
+
* need separate handling since they bypass valueChanges.
|
|
484
|
+
*/
|
|
382
485
|
defaultCall() {
|
|
486
|
+
const currentValue = this.searchInput.value?.trim() || '';
|
|
487
|
+
const lastSelected = this.lastSelectedValue();
|
|
488
|
+
// Don't open if value matches last selected (user hasn't typed new query)
|
|
489
|
+
if (lastSelected && currentValue === lastSelected) {
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
// Only open on focus if minInputLength allows it
|
|
383
493
|
if (this.minInputLength() === -1) {
|
|
384
494
|
this.loading.set(true);
|
|
385
495
|
this.httpStream()(this.searchInput.value || '').subscribe({
|