mis-crystal-design-system 18.1.17 → 18.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +50 -35
- package/esm2022/star-rating/star-rating.component.mjs +2 -2
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +49 -34
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-star-rating.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
- package/multi-select-dropdown/multi-select-dropdown.component.d.ts +2 -1
- package/package.json +40 -40
|
@@ -58,26 +58,26 @@ function MultiSelectDropdownComponent_ng_container_5_Template(rf, ctx) { if (rf
|
|
|
58
58
|
} }
|
|
59
59
|
function MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_1_Template(rf, ctx) { if (rf & 1) {
|
|
60
60
|
i0.ɵɵnamespaceSVG();
|
|
61
|
-
i0.ɵɵelementStart(0, "svg",
|
|
62
|
-
i0.ɵɵelement(1, "path",
|
|
61
|
+
i0.ɵɵelementStart(0, "svg", 23);
|
|
62
|
+
i0.ɵɵelement(1, "path", 24);
|
|
63
63
|
i0.ɵɵelementEnd();
|
|
64
64
|
} }
|
|
65
65
|
function MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_3_Template(rf, ctx) { if (rf & 1) {
|
|
66
66
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
67
67
|
i0.ɵɵnamespaceSVG();
|
|
68
|
-
i0.ɵɵelementStart(0, "svg",
|
|
68
|
+
i0.ɵɵelementStart(0, "svg", 25);
|
|
69
69
|
i0.ɵɵlistener("click", function MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_3_Template_svg_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.searchInputCanceled($event)); });
|
|
70
|
-
i0.ɵɵelement(1, "path",
|
|
70
|
+
i0.ɵɵelement(1, "path", 26);
|
|
71
71
|
i0.ɵɵelementEnd();
|
|
72
72
|
} }
|
|
73
73
|
function MultiSelectDropdownComponent_ng_template_8_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
74
74
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
75
|
-
i0.ɵɵelementStart(0, "div",
|
|
76
|
-
i0.ɵɵtemplate(1, MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_1_Template, 2, 0, "svg",
|
|
77
|
-
i0.ɵɵelementStart(2, "input",
|
|
75
|
+
i0.ɵɵelementStart(0, "div", 19);
|
|
76
|
+
i0.ɵɵtemplate(1, MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_1_Template, 2, 0, "svg", 20);
|
|
77
|
+
i0.ɵɵelementStart(2, "input", 21);
|
|
78
78
|
i0.ɵɵlistener("ngModelChange", function MultiSelectDropdownComponent_ng_template_8_div_1_Template_input_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.searchInputOnChange($event)); })("focus", function MultiSelectDropdownComponent_ng_template_8_div_1_Template_input_focus_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.searchInputFocused(true)); });
|
|
79
79
|
i0.ɵɵelementEnd();
|
|
80
|
-
i0.ɵɵtemplate(3, MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_3_Template, 2, 0, "svg",
|
|
80
|
+
i0.ɵɵtemplate(3, MultiSelectDropdownComponent_ng_template_8_div_1__svg_svg_3_Template, 2, 0, "svg", 22);
|
|
81
81
|
i0.ɵɵelementEnd();
|
|
82
82
|
} if (rf & 2) {
|
|
83
83
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -88,26 +88,38 @@ function MultiSelectDropdownComponent_ng_template_8_div_1_Template(rf, ctx) { if
|
|
|
88
88
|
i0.ɵɵadvance();
|
|
89
89
|
i0.ɵɵproperty("ngIf", ctx_r1.isSearchInputFocused());
|
|
90
90
|
} }
|
|
91
|
-
function
|
|
92
|
-
i0.ɵɵ
|
|
93
|
-
|
|
91
|
+
function MultiSelectDropdownComponent_ng_template_8_Conditional_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
92
|
+
i0.ɵɵelementContainer(0);
|
|
93
|
+
} }
|
|
94
|
+
function MultiSelectDropdownComponent_ng_template_8_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
+
i0.ɵɵelementStart(0, "div", 14);
|
|
96
|
+
i0.ɵɵtemplate(1, MultiSelectDropdownComponent_ng_template_8_Conditional_2_ng_container_1_Template, 1, 0, "ng-container", 11);
|
|
97
|
+
i0.ɵɵelementEnd();
|
|
98
|
+
} if (rf & 2) {
|
|
99
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
100
|
+
i0.ɵɵadvance();
|
|
101
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.customMessageTemplate());
|
|
102
|
+
} }
|
|
103
|
+
function MultiSelectDropdownComponent_ng_template_8_div_4_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
104
|
+
i0.ɵɵelementStart(0, "div", 32);
|
|
105
|
+
i0.ɵɵelement(1, "img", 33);
|
|
94
106
|
i0.ɵɵelementEnd();
|
|
95
107
|
} if (rf & 2) {
|
|
96
108
|
const item_r6 = i0.ɵɵnextContext().$implicit;
|
|
97
109
|
i0.ɵɵadvance();
|
|
98
110
|
i0.ɵɵproperty("src", item_r6.icon, i0.ɵɵsanitizeUrl);
|
|
99
111
|
} }
|
|
100
|
-
function
|
|
112
|
+
function MultiSelectDropdownComponent_ng_template_8_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
101
113
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
102
|
-
i0.ɵɵelementStart(0, "div",
|
|
103
|
-
i0.ɵɵlistener("keyup.enter", function
|
|
104
|
-
i0.ɵɵelementStart(1, "div",
|
|
105
|
-
i0.ɵɵelement(3, "mis-checkbox",
|
|
114
|
+
i0.ɵɵelementStart(0, "div", 27);
|
|
115
|
+
i0.ɵɵlistener("keyup.enter", function MultiSelectDropdownComponent_ng_template_8_div_4_Template_div_keyup_enter_0_listener($event) { const item_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleSelectedItems($event, item_r6)); })("click", function MultiSelectDropdownComponent_ng_template_8_div_4_Template_div_click_0_listener($event) { const item_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleSelectedItems($event, item_r6)); });
|
|
116
|
+
i0.ɵɵelementStart(1, "div", 28)(2, "div", 29);
|
|
117
|
+
i0.ɵɵelement(3, "mis-checkbox", 30);
|
|
106
118
|
i0.ɵɵelementEnd();
|
|
107
119
|
i0.ɵɵelementStart(4, "p", 4);
|
|
108
120
|
i0.ɵɵtext(5);
|
|
109
121
|
i0.ɵɵelementEnd()();
|
|
110
|
-
i0.ɵɵtemplate(6,
|
|
122
|
+
i0.ɵɵtemplate(6, MultiSelectDropdownComponent_ng_template_8_div_4_div_6_Template, 2, 1, "div", 31);
|
|
111
123
|
i0.ɵɵelementEnd();
|
|
112
124
|
} if (rf & 2) {
|
|
113
125
|
const item_r6 = ctx.$implicit;
|
|
@@ -119,8 +131,8 @@ function MultiSelectDropdownComponent_ng_template_8_div_3_Template(rf, ctx) { if
|
|
|
119
131
|
i0.ɵɵadvance();
|
|
120
132
|
i0.ɵɵproperty("ngIf", item_r6.icon);
|
|
121
133
|
} }
|
|
122
|
-
function
|
|
123
|
-
i0.ɵɵelementStart(0, "div",
|
|
134
|
+
function MultiSelectDropdownComponent_ng_template_8_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
135
|
+
i0.ɵɵelementStart(0, "div", 34);
|
|
124
136
|
i0.ɵɵtext(1);
|
|
125
137
|
i0.ɵɵelementEnd();
|
|
126
138
|
} if (rf & 2) {
|
|
@@ -128,15 +140,15 @@ function MultiSelectDropdownComponent_ng_template_8_div_4_Template(rf, ctx) { if
|
|
|
128
140
|
i0.ɵɵadvance();
|
|
129
141
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.searchInput() === "" ? ctx_r1.noDataMessage() : "No results", " ");
|
|
130
142
|
} }
|
|
131
|
-
function
|
|
143
|
+
function MultiSelectDropdownComponent_ng_template_8_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
132
144
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
133
|
-
i0.ɵɵelementStart(0, "div",
|
|
134
|
-
i0.ɵɵlistener("click", function
|
|
135
|
-
i0.ɵɵelement(2, "mis-button",
|
|
145
|
+
i0.ɵɵelementStart(0, "div", 35)(1, "div", 36);
|
|
146
|
+
i0.ɵɵlistener("click", function MultiSelectDropdownComponent_ng_template_8_div_6_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onReset()); });
|
|
147
|
+
i0.ɵɵelement(2, "mis-button", 37);
|
|
136
148
|
i0.ɵɵelementEnd();
|
|
137
|
-
i0.ɵɵelementStart(3, "div",
|
|
138
|
-
i0.ɵɵlistener("click", function
|
|
139
|
-
i0.ɵɵelement(4, "mis-button",
|
|
149
|
+
i0.ɵɵelementStart(3, "div", 36);
|
|
150
|
+
i0.ɵɵlistener("click", function MultiSelectDropdownComponent_ng_template_8_div_6_Template_div_click_3_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.applyFilters()); });
|
|
151
|
+
i0.ɵɵelement(4, "mis-button", 37);
|
|
140
152
|
i0.ɵɵelementEnd()();
|
|
141
153
|
} if (rf & 2) {
|
|
142
154
|
i0.ɵɵadvance();
|
|
@@ -150,17 +162,19 @@ function MultiSelectDropdownComponent_ng_template_8_div_5_Template(rf, ctx) { if
|
|
|
150
162
|
} }
|
|
151
163
|
function MultiSelectDropdownComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
|
|
152
164
|
i0.ɵɵelementStart(0, "div", 12);
|
|
153
|
-
i0.ɵɵtemplate(1, MultiSelectDropdownComponent_ng_template_8_div_1_Template, 4, 9, "div", 13);
|
|
154
|
-
i0.ɵɵelementStart(
|
|
155
|
-
i0.ɵɵtemplate(
|
|
165
|
+
i0.ɵɵtemplate(1, MultiSelectDropdownComponent_ng_template_8_div_1_Template, 4, 9, "div", 13)(2, MultiSelectDropdownComponent_ng_template_8_Conditional_2_Template, 2, 1, "div", 14);
|
|
166
|
+
i0.ɵɵelementStart(3, "div", 15);
|
|
167
|
+
i0.ɵɵtemplate(4, MultiSelectDropdownComponent_ng_template_8_div_4_Template, 7, 6, "div", 16)(5, MultiSelectDropdownComponent_ng_template_8_div_5_Template, 2, 1, "div", 17);
|
|
156
168
|
i0.ɵɵelementEnd();
|
|
157
|
-
i0.ɵɵtemplate(
|
|
169
|
+
i0.ɵɵtemplate(6, MultiSelectDropdownComponent_ng_template_8_div_6_Template, 5, 10, "div", 18);
|
|
158
170
|
i0.ɵɵelementEnd();
|
|
159
171
|
} if (rf & 2) {
|
|
160
172
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
161
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(
|
|
173
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(7, _c5, ctx_r1.dropdownListHeight(), ctx_r1.dropdownListWidth()))("ngClass", i0.ɵɵpureFunction2(10, _c6, ctx_r1.dropdownListPosition() === "Left", ctx_r1.dropdownListPosition() === "Right"));
|
|
162
174
|
i0.ɵɵadvance();
|
|
163
175
|
i0.ɵɵproperty("ngIf", ctx_r1.searchEnabled());
|
|
176
|
+
i0.ɵɵadvance();
|
|
177
|
+
i0.ɵɵconditional(ctx_r1.customMessageTemplate() ? 2 : -1);
|
|
164
178
|
i0.ɵɵadvance(2);
|
|
165
179
|
i0.ɵɵproperty("ngForOf", ctx_r1.displayData());
|
|
166
180
|
i0.ɵɵadvance();
|
|
@@ -187,6 +201,7 @@ class MultiSelectDropdownComponent {
|
|
|
187
201
|
this.searchEnabled = input(true);
|
|
188
202
|
this.showSelectedCount = input(false);
|
|
189
203
|
this.noDataMessage = input('No Data');
|
|
204
|
+
this.customMessageTemplate = input();
|
|
190
205
|
this.options = input({
|
|
191
206
|
sortLabels: true,
|
|
192
207
|
});
|
|
@@ -415,7 +430,7 @@ class MultiSelectDropdownComponent {
|
|
|
415
430
|
let _t;
|
|
416
431
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectElement = _t.first);
|
|
417
432
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.popupContainer = _t.first);
|
|
418
|
-
} }, inputs: { data: [1, "data"], selectedItems: [1, "selectedItems"], label: [1, "label"], height: [1, "height"], width: [1, "width"], dropdownListHeight: [1, "dropdownListHeight"], dropdownListWidth: [1, "dropdownListWidth"], dropdownListPosition: [1, "dropdownListPosition"], enableSelectAll: [1, "enableSelectAll"], searchEnabled: [1, "searchEnabled"], showSelectedCount: [1, "showSelectedCount"], noDataMessage: [1, "noDataMessage"], options: [1, "options"], hideApplyButton: [1, "hideApplyButton"], searchInputPlaceholder: [1, "searchInputPlaceholder"], customLabelTemplate: [1, "customLabelTemplate"] }, outputs: { onChange: "onChange" }, decls: 10, vars: 12, consts: [["select", ""], ["popupContainer", ""], [1, "container", 3, "ngStyle"], ["tabindex", "0", 1, "dropdown", 3, "keyup.enter", "click", "ngStyle"], [1, "label"], [4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "handle", 3, "ngStyle"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z", "fill", "#181F33"], [1, "text"], ["class", "count", 4, "ngIf"], [1, "count"], [4, "ngTemplateOutlet"], [1, "popup-container", 3, "ngStyle", "ngClass"], ["class", "search-container", 4, "ngIf"], [1, "items"], ["class", "item", "tabindex", "0", 3, "ngClass", "keyup.enter", "click", 4, "ngFor", "ngForOf"], ["class", "noData", 4, "ngIf"], ["class", "actions-container", 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", "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"], ["tabindex", "0", 1, "item", 3, "keyup.enter", "click", "ngClass"], [1, "checkbox-container-wrapper"], [1, "checkbox-container"], ["tabindex", "-1", 3, "checked"], ["class", "icon-container", 4, "ngIf"], [1, "icon-container"], ["alt", "no img", 1, "icon", 3, "src"], [1, "noData"], [1, "actions-container"], [3, "click", "ngStyle"], [3, "name", "type", "width"]], template: function MultiSelectDropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
433
|
+
} }, inputs: { data: [1, "data"], selectedItems: [1, "selectedItems"], label: [1, "label"], height: [1, "height"], width: [1, "width"], dropdownListHeight: [1, "dropdownListHeight"], dropdownListWidth: [1, "dropdownListWidth"], dropdownListPosition: [1, "dropdownListPosition"], enableSelectAll: [1, "enableSelectAll"], searchEnabled: [1, "searchEnabled"], showSelectedCount: [1, "showSelectedCount"], noDataMessage: [1, "noDataMessage"], customMessageTemplate: [1, "customMessageTemplate"], options: [1, "options"], hideApplyButton: [1, "hideApplyButton"], searchInputPlaceholder: [1, "searchInputPlaceholder"], customLabelTemplate: [1, "customLabelTemplate"] }, outputs: { onChange: "onChange" }, decls: 10, vars: 12, consts: [["select", ""], ["popupContainer", ""], [1, "container", 3, "ngStyle"], ["tabindex", "0", 1, "dropdown", 3, "keyup.enter", "click", "ngStyle"], [1, "label"], [4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "handle", 3, "ngStyle"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z", "fill", "#181F33"], [1, "text"], ["class", "count", 4, "ngIf"], [1, "count"], [4, "ngTemplateOutlet"], [1, "popup-container", 3, "ngStyle", "ngClass"], ["class", "search-container", 4, "ngIf"], [1, "custom-message-container"], [1, "items"], ["class", "item", "tabindex", "0", 3, "ngClass", "keyup.enter", "click", 4, "ngFor", "ngForOf"], ["class", "noData", 4, "ngIf"], ["class", "actions-container", 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", "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"], ["tabindex", "0", 1, "item", 3, "keyup.enter", "click", "ngClass"], [1, "checkbox-container-wrapper"], [1, "checkbox-container"], ["tabindex", "-1", 3, "checked"], ["class", "icon-container", 4, "ngIf"], [1, "icon-container"], ["alt", "no img", 1, "icon", 3, "src"], [1, "noData"], [1, "actions-container"], [3, "click", "ngStyle"], [3, "name", "type", "width"]], template: function MultiSelectDropdownComponent_Template(rf, ctx) { if (rf & 1) {
|
|
419
434
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
420
435
|
i0.ɵɵelementStart(0, "div", 2)(1, "div", 3, 0);
|
|
421
436
|
i0.ɵɵlistener("keyup.enter", function MultiSelectDropdownComponent_Template_div_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleDropdown()); })("click", function MultiSelectDropdownComponent_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleDropdown()); });
|
|
@@ -426,7 +441,7 @@ class MultiSelectDropdownComponent {
|
|
|
426
441
|
i0.ɵɵelementStart(6, "svg", 6);
|
|
427
442
|
i0.ɵɵelement(7, "path", 7);
|
|
428
443
|
i0.ɵɵelementEnd()()();
|
|
429
|
-
i0.ɵɵtemplate(8, MultiSelectDropdownComponent_ng_template_8_Template,
|
|
444
|
+
i0.ɵɵtemplate(8, MultiSelectDropdownComponent_ng_template_8_Template, 7, 13, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
|
|
430
445
|
} if (rf & 2) {
|
|
431
446
|
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(5, _c2, ctx.height().length > 0 ? ctx.height() : "", ctx.width().length > 0 ? ctx.width() : ""));
|
|
432
447
|
i0.ɵɵadvance();
|
|
@@ -441,7 +456,7 @@ class MultiSelectDropdownComponent {
|
|
|
441
456
|
}
|
|
442
457
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MultiSelectDropdownComponent, [{
|
|
443
458
|
type: Component,
|
|
444
|
-
args: [{ selector: 'mis-multi-select-dropdown', template: "<div\n class=\"container\"\n [ngStyle]=\"{\n height: height().length > 0 ? height() : '',\n width: width().length > 0 ? width() : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"{ 'background': isOpen() ? '#E6EBF7' : '' }\"\n >\n <div class=\"label\">\n <ng-container *ngIf=\"!customLabelTemplate()\">\n <p class=\"text\">{{ label() }}</p>\n <p *ngIf=\"showSelectedCount() && internalSelectedItems().length > 0\" class=\"count\">\n {{ internalSelectedItems().length }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"customLabelTemplate()\">\n <ng-container *ngTemplateOutlet=\"customLabelTemplate()\">\n </ng-container>\n </ng-container>\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\"\n [ngStyle]=\"{\n 'height': dropdownListHeight(),\n width: dropdownListWidth()\n }\"\n [ngClass]=\"{\n 'position-left': dropdownListPosition() === 'Left',\n 'position-right': dropdownListPosition() === 'Right'\n }\"\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 (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused() ? '' : searchInputPlaceholder()\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\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=\"items\">\n <div\n class=\"item\"\n tabindex=\"0\"\n (keyup.enter)=\"toggleSelectedItems($event, item)\"\n (click)=\"toggleSelectedItems($event, item)\"\n *ngFor=\"let item of displayData()\"\n [ngClass]=\"{'disabled':item.disabled}\"\n >\n <div class=\"checkbox-container-wrapper\">\n <div class=\"checkbox-container\">\n <mis-checkbox [checked]=\"item.checked\" tabindex=\"-1\"></mis-checkbox>\n </div>\n <p class=\"label\">\n {{ item.label }}\n </p>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"displayData().length === 0\">\n {{ searchInput() === \"\" ? noDataMessage() : \"No results\" }}\n </div>\n </div>\n <div *ngIf=\"internalData().length !== 0 && !hideApplyButton()\" class=\"actions-container\">\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"onReset()\">\n <mis-button [name]=\"'Reset'\" [type]=\"'Text'\" [width]=\"'100%'\" ></mis-button>\n </div>\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"applyFilters()\">\n <mis-button [name]=\"'Apply'\" [type]=\"'Solid'\" [width]=\"'100%'\" ></mis-button>\n </div>\n </div>\n </div>\n</ng-template>\n\n\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-muted-secondary: #E5E5E5;--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}.container{position:relative;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;height:32px;width:256px;font-family:Lato,sans-serif!important}.container .dropdown{height:inherit;border:1px solid var(--border-primary, #E0E0E0);border-radius:6px;background-color:var(--bg-primary, #FFFFFF);cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;padding:0 12px;overflow:hidden}.container .dropdown:hover,.container .dropdown:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.container .dropdown .label{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.container .dropdown .label .text{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)}.container .dropdown .label .count{background-color:var(--border-primary, #E0E0E0);border-radius:50%;padding:2px 7px;margin:0 0 0 8px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px;color:var(--text-primary, #181F33)}.container .dropdown .handle{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.popup-container{width:100%;max-height:340px;padding-bottom:0;border:1px solid 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:flex-start}.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:8px 0 8px 8px;overflow-y:scroll}.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;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container .items .disabled{pointer-events:none;opacity:.5}.popup-container .items .item{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;padding:8px 12px;border-radius:6px;height:auto}.popup-container .items .item:hover,.popup-container .items .item:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.popup-container .items .item .checkbox-container-wrapper{display:flex;justify-content:flex-start;align-items:center;width:90%}.popup-container .items .item .checkbox-container-wrapper .checkbox-container{display:block;position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input:checked~.checkmark:after{display:block}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark{position:absolute;top:-8px;left:0;height:15px;width:15px;border-radius:4px;background-color:var(--brand-info, #0091FF);border:1px solid var(--text-secondary, #6A737D)}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark:after{content:\"\";position:absolute;display:none;left:5px;top:2px;width:3px;height:6px;border:solid var(--bg-primary, #FFFFFF);border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.popup-container .items .item .checkbox-container-wrapper .label{margin:0 0 0 8px;line-height:20px;font-size:14px;font-style:normal;font-weight:400;letter-spacing:.2;text-overflow:ellipsis;overflow:hidden}.popup-container .items .item .icon-container{width:10%;display:flex;justify-content:flex-end}.popup-container .items .item .icon-container .icon{width:20px;height:20px}.popup-container .actions-container{display:flex;justify-content:space-between;bottom:0;align-items:center;position:sticky;padding:16px;background-color:var(--bg-primary, #FFFFFF);border-top:1px solid var(--border-primary, #E0E0E0);margin-top:auto}.popup-container .actions-container .cancel{cursor:pointer;padding:10px 32px;text-align:center;font-size:16px;line-height:24px;border-radius:8px}.popup-container .actions-container .cancel:hover{background:var(--bg-overlay-lightest, rgba(0, 0, 0, .04))}.popup-container .actions-container .apply{cursor:pointer;padding:10px 32px;text-align:center;color:var(--bg-primary, #FFFFFF);font-size:16px;line-height:24px;background:var(--brand-primary, #0937B2);border-radius:8px}\n"] }]
|
|
459
|
+
args: [{ selector: 'mis-multi-select-dropdown', template: "<div\n class=\"container\"\n [ngStyle]=\"{\n height: height().length > 0 ? height() : '',\n width: width().length > 0 ? width() : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"{ 'background': isOpen() ? '#E6EBF7' : '' }\"\n >\n <div class=\"label\">\n <ng-container *ngIf=\"!customLabelTemplate()\">\n <p class=\"text\">{{ label() }}</p>\n <p *ngIf=\"showSelectedCount() && internalSelectedItems().length > 0\" class=\"count\">\n {{ internalSelectedItems().length }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"customLabelTemplate()\">\n <ng-container *ngTemplateOutlet=\"customLabelTemplate()\">\n </ng-container>\n </ng-container>\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\"\n [ngStyle]=\"{\n 'height': dropdownListHeight(),\n width: dropdownListWidth()\n }\"\n [ngClass]=\"{\n 'position-left': dropdownListPosition() === 'Left',\n 'position-right': dropdownListPosition() === 'Right'\n }\"\n >\n <!-- Search Bar -->\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 (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused() ? '' : searchInputPlaceholder()\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\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\n <!-- Custom Message Template -->\n @if(customMessageTemplate()){\n <div class=\"custom-message-container\">\n <ng-container *ngTemplateOutlet=\"customMessageTemplate()\"></ng-container>\n </div>\n }\n\n <div class=\"items\">\n <div\n class=\"item\"\n tabindex=\"0\"\n (keyup.enter)=\"toggleSelectedItems($event, item)\"\n (click)=\"toggleSelectedItems($event, item)\"\n *ngFor=\"let item of displayData()\"\n [ngClass]=\"{'disabled':item.disabled}\"\n >\n <div class=\"checkbox-container-wrapper\">\n <div class=\"checkbox-container\">\n <mis-checkbox [checked]=\"item.checked\" tabindex=\"-1\"></mis-checkbox>\n </div>\n <p class=\"label\">\n {{ item.label }}\n </p>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"displayData().length === 0\">\n {{ searchInput() === \"\" ? noDataMessage() : \"No results\" }}\n </div>\n </div>\n <div *ngIf=\"internalData().length !== 0 && !hideApplyButton()\" class=\"actions-container\">\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"onReset()\">\n <mis-button [name]=\"'Reset'\" [type]=\"'Text'\" [width]=\"'100%'\" ></mis-button>\n </div>\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"applyFilters()\">\n <mis-button [name]=\"'Apply'\" [type]=\"'Solid'\" [width]=\"'100%'\" ></mis-button>\n </div>\n </div>\n </div>\n</ng-template>\n\n\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-muted-secondary: #E5E5E5;--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}.container{position:relative;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;height:32px;width:256px;font-family:Lato,sans-serif!important}.container .dropdown{height:inherit;border:1px solid var(--border-primary, #E0E0E0);border-radius:6px;background-color:var(--bg-primary, #FFFFFF);cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;padding:0 12px;overflow:hidden}.container .dropdown:hover,.container .dropdown:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.container .dropdown .label{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.container .dropdown .label .text{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)}.container .dropdown .label .count{background-color:var(--border-primary, #E0E0E0);border-radius:50%;padding:2px 7px;margin:0 0 0 8px;font-style:normal;font-weight:400;font-size:14px;line-height:20px;text-align:center;letter-spacing:.2px;color:var(--text-primary, #181F33)}.container .dropdown .handle{width:24px;height:24px;transition:.3s;position:absolute;right:12px;border-radius:50%;overflow:hidden}.popup-container{width:100%;max-height:340px;padding-bottom:0;border:1px solid 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:flex-start}.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:8px 0 8px 8px;overflow-y:scroll}.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;font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:var(--text-primary, #181F33)}.popup-container .items .disabled{pointer-events:none;opacity:.5}.popup-container .items .item{cursor:pointer;display:flex;justify-content:flex-start;align-items:center;padding:8px 12px;border-radius:6px;height:auto}.popup-container .items .item:hover,.popup-container .items .item:focus-visible{background-color:var(--brand-primary-hover, #F0F3FA);outline:none}.popup-container .items .item .checkbox-container-wrapper{display:flex;justify-content:flex-start;align-items:center;width:90%}.popup-container .items .item .checkbox-container-wrapper .checkbox-container{display:block;position:relative;cursor:pointer;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.popup-container .items .item .checkbox-container-wrapper .checkbox-container input:checked~.checkmark:after{display:block}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark{position:absolute;top:-8px;left:0;height:15px;width:15px;border-radius:4px;background-color:var(--brand-info, #0091FF);border:1px solid var(--text-secondary, #6A737D)}.popup-container .items .item .checkbox-container-wrapper .checkbox-container .checkmark:after{content:\"\";position:absolute;display:none;left:5px;top:2px;width:3px;height:6px;border:solid var(--bg-primary, #FFFFFF);border-width:0 2px 2px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.popup-container .items .item .checkbox-container-wrapper .label{margin:0 0 0 8px;line-height:20px;font-size:14px;font-style:normal;font-weight:400;letter-spacing:.2;text-overflow:ellipsis;overflow:hidden}.popup-container .items .item .icon-container{width:10%;display:flex;justify-content:flex-end}.popup-container .items .item .icon-container .icon{width:20px;height:20px}.popup-container .actions-container{display:flex;justify-content:space-between;bottom:0;align-items:center;position:sticky;padding:16px;background-color:var(--bg-primary, #FFFFFF);border-top:1px solid var(--border-primary, #E0E0E0);margin-top:auto}.popup-container .actions-container .cancel{cursor:pointer;padding:10px 32px;text-align:center;font-size:16px;line-height:24px;border-radius:8px}.popup-container .actions-container .cancel:hover{background:var(--bg-overlay-lightest, rgba(0, 0, 0, .04))}.popup-container .actions-container .apply{cursor:pointer;padding:10px 32px;text-align:center;color:var(--bg-primary, #FFFFFF);font-size:16px;line-height:24px;background:var(--brand-primary, #0937B2);border-radius:8px}\n"] }]
|
|
445
460
|
}], () => [], { selectElement: [{
|
|
446
461
|
type: ViewChild,
|
|
447
462
|
args: ['select', { static: false }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-multi-select-dropdown.mjs","sources":["../../../projects/mis-components/multi-select-dropdown/multi-select-dropdown.component.html","../../../projects/mis-components/multi-select-dropdown/multi-select-dropdown.component.ts","../../../projects/mis-components/multi-select-dropdown/multi-select-dropdown.module.ts","../../../projects/mis-components/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.ts"],"sourcesContent":["<div\n class=\"container\"\n [ngStyle]=\"{\n height: height().length > 0 ? height() : '',\n width: width().length > 0 ? width() : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"{ 'background': isOpen() ? '#E6EBF7' : '' }\"\n >\n <div class=\"label\">\n <ng-container *ngIf=\"!customLabelTemplate()\">\n <p class=\"text\">{{ label() }}</p>\n <p *ngIf=\"showSelectedCount() && internalSelectedItems().length > 0\" class=\"count\">\n {{ internalSelectedItems().length }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"customLabelTemplate()\">\n <ng-container *ngTemplateOutlet=\"customLabelTemplate()\">\n </ng-container>\n </ng-container>\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\"\n [ngStyle]=\"{\n 'height': dropdownListHeight(),\n width: dropdownListWidth()\n }\"\n [ngClass]=\"{\n 'position-left': dropdownListPosition() === 'Left',\n 'position-right': dropdownListPosition() === 'Right'\n }\"\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 (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused() ? '' : searchInputPlaceholder()\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\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=\"items\">\n <div\n class=\"item\"\n tabindex=\"0\"\n (keyup.enter)=\"toggleSelectedItems($event, item)\"\n (click)=\"toggleSelectedItems($event, item)\"\n *ngFor=\"let item of displayData()\"\n [ngClass]=\"{'disabled':item.disabled}\"\n >\n <div class=\"checkbox-container-wrapper\">\n <div class=\"checkbox-container\">\n <mis-checkbox [checked]=\"item.checked\" tabindex=\"-1\"></mis-checkbox>\n </div>\n <p class=\"label\">\n {{ item.label }}\n </p>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"displayData().length === 0\">\n {{ searchInput() === \"\" ? noDataMessage() : \"No results\" }}\n </div>\n </div>\n <div *ngIf=\"internalData().length !== 0 && !hideApplyButton()\" class=\"actions-container\">\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"onReset()\">\n <mis-button [name]=\"'Reset'\" [type]=\"'Text'\" [width]=\"'100%'\" ></mis-button>\n </div>\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"applyFilters()\">\n <mis-button [name]=\"'Apply'\" [type]=\"'Solid'\" [width]=\"'100%'\" ></mis-button>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n","import {\n Component,\n ElementRef,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n computed,\n effect,\n signal,\n inject,\n input,\n output\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n OverlayRef,\n Overlay,\n ConnectionPositionPair,\n OverlayConfig,\n} from '@angular/cdk/overlay';\n\nexport interface MultiSelectDropdownItem {\n label: string;\n value: string;\n checked?: boolean;\n icon?: string;\n disabled?: boolean;\n}\n\nexport interface OPTIONS {\n sortLabels: boolean;\n}\n\n@Component({\n selector: 'mis-multi-select-dropdown',\n templateUrl: './multi-select-dropdown.component.html',\n styleUrls: ['./multi-select-dropdown.component.scss']\n})\nexport class MultiSelectDropdownComponent {\n // Dependencies Injection\n private readonly eRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n // Signal-based Inputs\n public data = input<MultiSelectDropdownItem[]>([]);\n public selectedItems = input<MultiSelectDropdownItem[]>([]);\n public label = input<string>('Select');\n public height = input<string>('');\n public width = input<string>('');\n public dropdownListHeight = input<string>('');\n public dropdownListWidth = input<string>('');\n public dropdownListPosition = input<'Left' | 'Right'>('Left');\n public enableSelectAll = input<boolean>(false);\n public searchEnabled = input<boolean>(true);\n public showSelectedCount = input<boolean>(false);\n public noDataMessage = input<string>('No Data');\n public options = input<OPTIONS>({\n sortLabels: true,\n });\n public hideApplyButton = input<boolean>(false);\n public searchInputPlaceholder = input<string>('Search Keyword');\n public customLabelTemplate = input<TemplateRef<any>>();\n\n // Signal-based Output\n public onChange = output<MultiSelectDropdownItem[]>();\n\n // Internal Signals for component state\n public isOpen = signal(false);\n public searchInput = signal('');\n public isSearchInputFocused = signal(false);\n public internalSelectedItems = signal<MultiSelectDropdownItem[]>([]);\n public internalData = signal<MultiSelectDropdownItem[]>([]);\n\n // Constants\n private readonly SELECT_ALL_ENUM = 'SELECT_ALL_ENABLED';\n\n @ViewChild('select', { static: false }) selectElement: ElementRef;\n @ViewChild('popupContainer', { static: false }) popupContainer: TemplateRef<Element>;\n private overlayRef: OverlayRef;\n\n constructor() {\n effect(() => {\n this.handleInputChanges();\n }, { allowSignalWrites: true });\n\n effect(() => {\n if (this.isOpen()) {\n this.openDropdown(this.popupContainer, this.selectElement?.nativeElement);\n } else {\n this.overlayRef?.detach();\n }\n });\n }\n\n /**\n * Effect to manage the component's internal state based on external inputs.\n */\n private handleInputChanges(): void {\n const values = this.data();\n const selected = this.selectedItems();\n\n const formattedData = values?.map(item => ({\n ...item,\n checked: selected?.some(s => s.value === item.value) ?? false\n })) || [];\n \n this.internalData.set(formattedData);\n this.internalSelectedItems.set(selected);\n\n // Apply the 'select all' logic\n this.internalData.update(currentData => {\n const isSelectAll = this.enableSelectAll() && currentData.every(item => item.checked || item.value === this.SELECT_ALL_ENUM);\n const selectAllItem = {\n label: 'Select all',\n value: this.SELECT_ALL_ENUM,\n checked: isSelectAll\n };\n\n const hasSelectAll = currentData.some(t => t.value === this.SELECT_ALL_ENUM);\n if (this.enableSelectAll()) {\n if (!hasSelectAll) {\n return [selectAllItem, ...currentData];\n } else {\n return currentData.map(item => item.value === this.SELECT_ALL_ENUM ? selectAllItem : item);\n }\n } else {\n return currentData.filter(item => item.value !== this.SELECT_ALL_ENUM);\n }\n });\n }\n\n /**\n * Computed signal for the data to be displayed in the dropdown list.\n * Filters based on search input and sorts if the option is enabled.\n */\n public displayData = computed(() => {\n let dataToDisplay = this.searchEnabled() && this.searchInput() ? \n this.filterByValue(this.internalData(), this.searchInput()) : \n this.internalData();\n\n if (this.options().sortLabels) {\n dataToDisplay = this.sortData(dataToDisplay);\n }\n \n return dataToDisplay;\n });\n\n /**\n * Helper function to sort the data.\n */\n private sortData(data: MultiSelectDropdownItem[]): MultiSelectDropdownItem[] {\n // Separate \"Select All\" option from other items\n const selectAllItem = data.find(t => t.value === this.SELECT_ALL_ENUM);\n const otherItems = data.filter(t => t.value !== this.SELECT_ALL_ENUM);\n \n const checkedValues = otherItems.filter(a => a.checked);\n const unCheckedValues = otherItems.filter(a => !a.checked);\n\n const sortFn = (a: MultiSelectDropdownItem, b: MultiSelectDropdownItem) => a.label > b.label ? 1 : -1;\n \n const sortedItems = [\n ...checkedValues.sort(sortFn),\n ...unCheckedValues.sort(sortFn)\n ];\n \n // Add \"Select All\" at the top if it exists\n return selectAllItem ? [selectAllItem, ...sortedItems] : sortedItems;\n }\n\n /**\n * Helper function to filter the data.\n */\n private filterByValue(array: MultiSelectDropdownItem[], search: string): MultiSelectDropdownItem[] {\n return array.filter(o => o?.label?.toLowerCase().includes(search.toLowerCase())) || [];\n }\n\n /**\n * Toggles the dropdown's open/close state.\n */\n public toggleDropdown(): void {\n this.isOpen.update(current => !current);\n }\n\n /**\n * Toggles the checked state of a specific item.\n * Handles the 'Select All' logic.\n */\n public toggleSelectedItems(event: Event, item: MultiSelectDropdownItem): void {\n event?.stopPropagation();\n\n if (this.enableSelectAll() && item.value === this.SELECT_ALL_ENUM) {\n this.internalData.update(items =>\n items.map(t => ({ ...t, checked: !item.checked }))\n );\n } else {\n this.internalData.update(items => {\n const updatedItems = items.map(a => \n a.value === item.value ? { ...a, checked: !a.checked } : a\n );\n \n const allChecked = updatedItems\n .filter(r => r.value !== this.SELECT_ALL_ENUM)\n .every(t => t.checked);\n \n return updatedItems.map(a => \n a.value === this.SELECT_ALL_ENUM ? { ...a, checked: allChecked } : a\n );\n });\n }\n\n if (this.hideApplyButton()) {\n this.applyFilters();\n }\n }\n\n /**\n * Emits the selected items and closes the dropdown.\n */\n public applyFilters(): void {\n const selected = this.internalData()\n .filter(a => a.checked && a.value !== this.SELECT_ALL_ENUM)\n .map(item => {\n const { checked, ...data } = item;\n return data;\n });\n \n // Use the signal output's emit method\n this.onChange.emit(selected as MultiSelectDropdownItem[]);\n this.internalSelectedItems.set(selected as MultiSelectDropdownItem[]);\n if (!this.hideApplyButton()) {\n this.isOpen.set(false);\n }\n }\n\n /**\n * Resets the dropdown to an empty state.\n */\n public onReset(): void {\n this.internalData.update(items => \n items.map(item => ({ ...item, checked: false }))\n );\n this.applyFilters();\n this.isOpen.set(false);\n }\n\n /**\n * Closes the dropdown and reverts any changes.\n */\n public onCancel(): void {\n this.isOpen.set(false);\n this.searchInput.set('');\n // Revert internal data to match the last selected items\n this.handleInputChanges();\n }\n\n /**\n * Toggles the focus state of the search input.\n */\n public searchInputFocused(isFocused: boolean): void {\n this.isSearchInputFocused.set(isFocused);\n }\n\n /**\n * Clears the search input and unfocuses it.\n */\n public searchInputCanceled(event: Event): void {\n event.stopPropagation();\n this.searchInput.set('');\n this.isSearchInputFocused.set(false);\n }\n\n /**\n * Handles the change event from the search input.\n */\n public searchInputOnChange(newValue: string): void {\n this.searchInput.set(newValue);\n }\n\n /**\n * Creates and displays the overlay for the dropdown list.\n */\n private openDropdown(\n template: TemplateRef<Element>,\n origin: HTMLElement\n ): void {\n if (this.overlayRef && this.overlayRef.hasAttached()) {\n return;\n }\n \n const positionsBottom = [\n new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, 0, 4),\n new ConnectionPositionPair({ originX: 'end', originY: 'bottom' }, { overlayX: 'end', overlayY: 'top' }, 0, 4),\n ];\n const positionsTop = [\n new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, 0, -4),\n new ConnectionPositionPair({ originX: 'end', originY: 'top' }, { overlayX: 'end', overlayY: 'bottom' }, 0, -4),\n ];\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(origin)\n .withPositions([\n ...(this.dropdownListPosition() === 'Right' ? positionsBottom.reverse() : positionsBottom),\n ...(this.dropdownListPosition() === 'Right' ? positionsTop.reverse() : positionsTop),\n ])\n .withPush(true);\n\n const configs = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy,\n width: origin?.clientWidth,\n });\n \n this.overlayRef = this.overlay.create(configs);\n \n if (this.dropdownListWidth()) {\n this.overlayRef.updateSize({ width: this.dropdownListWidth() });\n }\n if (this.dropdownListHeight()) {\n this.overlayRef.updateSize({ height: this.dropdownListHeight() });\n }\n \n this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));\n this.overlayRef.backdropClick().subscribe(() => this.onCancel());\n }\n}\n\n","import { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { MultiSelectDropdownComponent } from \"./multi-select-dropdown.component\";\nimport { CheckboxModule } from \"mis-crystal-design-system/checkbox\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { ButtonModule } from \"mis-crystal-design-system/button\";\n\n@NgModule({\n declarations: [MultiSelectDropdownComponent],\n imports: [CommonModule, FormsModule, OverlayModule, CheckboxModule, ButtonModule],\n exports: [MultiSelectDropdownComponent]\n})\nexport class MultiSelectDropdownModule {\n static forRoot(): ModuleWithProviders<MultiSelectDropdownModule> {\n return { ngModule: MultiSelectDropdownModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-multi-select-dropdown.mjs","sources":["../../../projects/mis-components/multi-select-dropdown/multi-select-dropdown.component.html","../../../projects/mis-components/multi-select-dropdown/multi-select-dropdown.component.ts","../../../projects/mis-components/multi-select-dropdown/multi-select-dropdown.module.ts","../../../projects/mis-components/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.ts"],"sourcesContent":["<div\n class=\"container\"\n [ngStyle]=\"{\n height: height().length > 0 ? height() : '',\n width: width().length > 0 ? width() : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"{ 'background': isOpen() ? '#E6EBF7' : '' }\"\n >\n <div class=\"label\">\n <ng-container *ngIf=\"!customLabelTemplate()\">\n <p class=\"text\">{{ label() }}</p>\n <p *ngIf=\"showSelectedCount() && internalSelectedItems().length > 0\" class=\"count\">\n {{ internalSelectedItems().length }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"customLabelTemplate()\">\n <ng-container *ngTemplateOutlet=\"customLabelTemplate()\">\n </ng-container>\n </ng-container>\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\"\n [ngStyle]=\"{\n 'height': dropdownListHeight(),\n width: dropdownListWidth()\n }\"\n [ngClass]=\"{\n 'position-left': dropdownListPosition() === 'Left',\n 'position-right': dropdownListPosition() === 'Right'\n }\"\n >\n <!-- Search Bar -->\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 (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused() ? '' : searchInputPlaceholder()\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\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\n <!-- Custom Message Template -->\n @if(customMessageTemplate()){\n <div class=\"custom-message-container\">\n <ng-container *ngTemplateOutlet=\"customMessageTemplate()\"></ng-container>\n </div>\n }\n\n <div class=\"items\">\n <div\n class=\"item\"\n tabindex=\"0\"\n (keyup.enter)=\"toggleSelectedItems($event, item)\"\n (click)=\"toggleSelectedItems($event, item)\"\n *ngFor=\"let item of displayData()\"\n [ngClass]=\"{'disabled':item.disabled}\"\n >\n <div class=\"checkbox-container-wrapper\">\n <div class=\"checkbox-container\">\n <mis-checkbox [checked]=\"item.checked\" tabindex=\"-1\"></mis-checkbox>\n </div>\n <p class=\"label\">\n {{ item.label }}\n </p>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n <div class=\"noData\" *ngIf=\"displayData().length === 0\">\n {{ searchInput() === \"\" ? noDataMessage() : \"No results\" }}\n </div>\n </div>\n <div *ngIf=\"internalData().length !== 0 && !hideApplyButton()\" class=\"actions-container\">\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"onReset()\">\n <mis-button [name]=\"'Reset'\" [type]=\"'Text'\" [width]=\"'100%'\" ></mis-button>\n </div>\n <div [ngStyle]=\"{'width': 'calc(50% - 4px)'}\" (click)=\"applyFilters()\">\n <mis-button [name]=\"'Apply'\" [type]=\"'Solid'\" [width]=\"'100%'\" ></mis-button>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n","import {\n Component,\n ElementRef,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n computed,\n effect,\n signal,\n inject,\n input,\n output\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n OverlayRef,\n Overlay,\n ConnectionPositionPair,\n OverlayConfig,\n} from '@angular/cdk/overlay';\n\nexport interface MultiSelectDropdownItem {\n label: string;\n value: string;\n checked?: boolean;\n icon?: string;\n disabled?: boolean;\n}\n\nexport interface OPTIONS {\n sortLabels: boolean;\n}\n\n@Component({\n selector: 'mis-multi-select-dropdown',\n templateUrl: './multi-select-dropdown.component.html',\n styleUrls: ['./multi-select-dropdown.component.scss']\n})\nexport class MultiSelectDropdownComponent {\n // Dependencies Injection\n private readonly eRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n // Signal-based Inputs\n public data = input<MultiSelectDropdownItem[]>([]);\n public selectedItems = input<MultiSelectDropdownItem[]>([]);\n public label = input<string>('Select');\n public height = input<string>('');\n public width = input<string>('');\n public dropdownListHeight = input<string>('');\n public dropdownListWidth = input<string>('');\n public dropdownListPosition = input<'Left' | 'Right'>('Left');\n public enableSelectAll = input<boolean>(false);\n public searchEnabled = input<boolean>(true);\n public showSelectedCount = input<boolean>(false);\n public noDataMessage = input<string>('No Data');\n public customMessageTemplate = input<TemplateRef<any>>();\n public options = input<OPTIONS>({\n sortLabels: true,\n });\n public hideApplyButton = input<boolean>(false);\n public searchInputPlaceholder = input<string>('Search Keyword');\n public customLabelTemplate = input<TemplateRef<any>>();\n\n // Signal-based Output\n public onChange = output<MultiSelectDropdownItem[]>();\n\n // Internal Signals for component state\n public isOpen = signal(false);\n public searchInput = signal('');\n public isSearchInputFocused = signal(false);\n public internalSelectedItems = signal<MultiSelectDropdownItem[]>([]);\n public internalData = signal<MultiSelectDropdownItem[]>([]);\n\n // Constants\n private readonly SELECT_ALL_ENUM = 'SELECT_ALL_ENABLED';\n\n @ViewChild('select', { static: false }) selectElement: ElementRef;\n @ViewChild('popupContainer', { static: false }) popupContainer: TemplateRef<Element>;\n private overlayRef: OverlayRef;\n\n constructor() {\n effect(() => {\n this.handleInputChanges();\n }, { allowSignalWrites: true });\n\n effect(() => {\n if (this.isOpen()) {\n this.openDropdown(this.popupContainer, this.selectElement?.nativeElement);\n } else {\n this.overlayRef?.detach();\n }\n });\n }\n\n /**\n * Effect to manage the component's internal state based on external inputs.\n */\n private handleInputChanges(): void {\n const values = this.data();\n const selected = this.selectedItems();\n\n const formattedData = values?.map(item => ({\n ...item,\n checked: selected?.some(s => s.value === item.value) ?? false\n })) || [];\n \n this.internalData.set(formattedData);\n this.internalSelectedItems.set(selected);\n\n // Apply the 'select all' logic\n this.internalData.update(currentData => {\n const isSelectAll = this.enableSelectAll() && currentData.every(item => item.checked || item.value === this.SELECT_ALL_ENUM);\n const selectAllItem = {\n label: 'Select all',\n value: this.SELECT_ALL_ENUM,\n checked: isSelectAll\n };\n\n const hasSelectAll = currentData.some(t => t.value === this.SELECT_ALL_ENUM);\n if (this.enableSelectAll()) {\n if (!hasSelectAll) {\n return [selectAllItem, ...currentData];\n } else {\n return currentData.map(item => item.value === this.SELECT_ALL_ENUM ? selectAllItem : item);\n }\n } else {\n return currentData.filter(item => item.value !== this.SELECT_ALL_ENUM);\n }\n });\n }\n\n /**\n * Computed signal for the data to be displayed in the dropdown list.\n * Filters based on search input and sorts if the option is enabled.\n */\n public displayData = computed(() => {\n let dataToDisplay = this.searchEnabled() && this.searchInput() ? \n this.filterByValue(this.internalData(), this.searchInput()) : \n this.internalData();\n\n if (this.options().sortLabels) {\n dataToDisplay = this.sortData(dataToDisplay);\n }\n \n return dataToDisplay;\n });\n\n /**\n * Helper function to sort the data.\n */\n private sortData(data: MultiSelectDropdownItem[]): MultiSelectDropdownItem[] {\n // Separate \"Select All\" option from other items\n const selectAllItem = data.find(t => t.value === this.SELECT_ALL_ENUM);\n const otherItems = data.filter(t => t.value !== this.SELECT_ALL_ENUM);\n \n const checkedValues = otherItems.filter(a => a.checked);\n const unCheckedValues = otherItems.filter(a => !a.checked);\n\n const sortFn = (a: MultiSelectDropdownItem, b: MultiSelectDropdownItem) => a.label > b.label ? 1 : -1;\n \n const sortedItems = [\n ...checkedValues.sort(sortFn),\n ...unCheckedValues.sort(sortFn)\n ];\n \n // Add \"Select All\" at the top if it exists\n return selectAllItem ? [selectAllItem, ...sortedItems] : sortedItems;\n }\n\n /**\n * Helper function to filter the data.\n */\n private filterByValue(array: MultiSelectDropdownItem[], search: string): MultiSelectDropdownItem[] {\n return array.filter(o => o?.label?.toLowerCase().includes(search.toLowerCase())) || [];\n }\n\n /**\n * Toggles the dropdown's open/close state.\n */\n public toggleDropdown(): void {\n this.isOpen.update(current => !current);\n }\n\n /**\n * Toggles the checked state of a specific item.\n * Handles the 'Select All' logic.\n */\n public toggleSelectedItems(event: Event, item: MultiSelectDropdownItem): void {\n event?.stopPropagation();\n\n if (this.enableSelectAll() && item.value === this.SELECT_ALL_ENUM) {\n this.internalData.update(items =>\n items.map(t => ({ ...t, checked: !item.checked }))\n );\n } else {\n this.internalData.update(items => {\n const updatedItems = items.map(a => \n a.value === item.value ? { ...a, checked: !a.checked } : a\n );\n \n const allChecked = updatedItems\n .filter(r => r.value !== this.SELECT_ALL_ENUM)\n .every(t => t.checked);\n \n return updatedItems.map(a => \n a.value === this.SELECT_ALL_ENUM ? { ...a, checked: allChecked } : a\n );\n });\n }\n\n if (this.hideApplyButton()) {\n this.applyFilters();\n }\n }\n\n /**\n * Emits the selected items and closes the dropdown.\n */\n public applyFilters(): void {\n const selected = this.internalData()\n .filter(a => a.checked && a.value !== this.SELECT_ALL_ENUM)\n .map(item => {\n const { checked, ...data } = item;\n return data;\n });\n \n // Use the signal output's emit method\n this.onChange.emit(selected as MultiSelectDropdownItem[]);\n this.internalSelectedItems.set(selected as MultiSelectDropdownItem[]);\n if (!this.hideApplyButton()) {\n this.isOpen.set(false);\n }\n }\n\n /**\n * Resets the dropdown to an empty state.\n */\n public onReset(): void {\n this.internalData.update(items => \n items.map(item => ({ ...item, checked: false }))\n );\n this.applyFilters();\n this.isOpen.set(false);\n }\n\n /**\n * Closes the dropdown and reverts any changes.\n */\n public onCancel(): void {\n this.isOpen.set(false);\n this.searchInput.set('');\n // Revert internal data to match the last selected items\n this.handleInputChanges();\n }\n\n /**\n * Toggles the focus state of the search input.\n */\n public searchInputFocused(isFocused: boolean): void {\n this.isSearchInputFocused.set(isFocused);\n }\n\n /**\n * Clears the search input and unfocuses it.\n */\n public searchInputCanceled(event: Event): void {\n event.stopPropagation();\n this.searchInput.set('');\n this.isSearchInputFocused.set(false);\n }\n\n /**\n * Handles the change event from the search input.\n */\n public searchInputOnChange(newValue: string): void {\n this.searchInput.set(newValue);\n }\n\n /**\n * Creates and displays the overlay for the dropdown list.\n */\n private openDropdown(\n template: TemplateRef<Element>,\n origin: HTMLElement\n ): void {\n if (this.overlayRef && this.overlayRef.hasAttached()) {\n return;\n }\n \n const positionsBottom = [\n new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, 0, 4),\n new ConnectionPositionPair({ originX: 'end', originY: 'bottom' }, { overlayX: 'end', overlayY: 'top' }, 0, 4),\n ];\n const positionsTop = [\n new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, 0, -4),\n new ConnectionPositionPair({ originX: 'end', originY: 'top' }, { overlayX: 'end', overlayY: 'bottom' }, 0, -4),\n ];\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(origin)\n .withPositions([\n ...(this.dropdownListPosition() === 'Right' ? positionsBottom.reverse() : positionsBottom),\n ...(this.dropdownListPosition() === 'Right' ? positionsTop.reverse() : positionsTop),\n ])\n .withPush(true);\n\n const configs = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy,\n width: origin?.clientWidth,\n });\n \n this.overlayRef = this.overlay.create(configs);\n \n if (this.dropdownListWidth()) {\n this.overlayRef.updateSize({ width: this.dropdownListWidth() });\n }\n if (this.dropdownListHeight()) {\n this.overlayRef.updateSize({ height: this.dropdownListHeight() });\n }\n \n this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));\n this.overlayRef.backdropClick().subscribe(() => this.onCancel());\n }\n}\n\n","import { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { MultiSelectDropdownComponent } from \"./multi-select-dropdown.component\";\nimport { CheckboxModule } from \"mis-crystal-design-system/checkbox\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { ButtonModule } from \"mis-crystal-design-system/button\";\n\n@NgModule({\n declarations: [MultiSelectDropdownComponent],\n imports: [CommonModule, FormsModule, OverlayModule, CheckboxModule, ButtonModule],\n exports: [MultiSelectDropdownComponent]\n})\nexport class MultiSelectDropdownModule {\n static forRoot(): ModuleWithProviders<MultiSelectDropdownModule> {\n return { ngModule: MultiSelectDropdownModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mis-crystal-design-system-star-rating.mjs","sources":["../../../projects/mis-components/star-rating/star-rating.component.html","../../../projects/mis-components/star-rating/star-rating.component.ts","../../../projects/mis-components/star-rating/star-rating.module.ts","../../../projects/mis-components/star-rating/mis-crystal-design-system-star-rating.ts"],"sourcesContent":["<div class=\"rating-container\"\n (mouseleave)=\"starMouseLeave()\"\n [ngStyle]=\"{'cursor': starSelectionAllowed() ? 'pointer' : 'not-allowed'}\">\n\n <div class=\"stars-container\" *ngFor=\"let star of starData(); trackBy: trackById\">\n <div class=\"star\"\n (click)=\"selectedStarData(star.id)\"\n (mouseover)=\"starMouseOver(star.id)\"\n [ngClass]=\"{\n 'hoveredStarZoom': star.id === star.hoverId,\n 'not-hovered': star.hoverId >= 0 && star.id > star.hoverId\n }\">\n <img [src]=\"star.asset\" [ngStyle]=\"{'height': starHeight(), 'width': starWidth()}\">\n </div>\n </div>\n</div>\n","import { Component, input, output, signal, computed, effect, OnInit } from '@angular/core';\n\n@Component({\n selector: 'mis-star-rating',\n templateUrl: './star-rating.component.html',\n styleUrls: ['./star-rating.component.scss'],\n})\nexport class StarRatingComponent implements OnInit {\n // === Inputs ===\n noOfStars = input(0);\n selectedRating = input(0);\n selectedStarSvg = input('assets/selectedStar.svg');\n emptyStarSvg = input('assets/star.svg');\n starHeight = input('24px');\n starWidth = input('24px');\n starSelectionAllowed = input(true);\n starHoverAllowed = input(true);\n\n // === Output ===\n starRated = output<number>();\n\n // === Internal state ===\n private _hoverIndex = signal<number | null>(null);\n private _selectedRating = signal<number>(0);\n\n ngOnInit() {\n // initialize once inputs are available\n this._selectedRating.set(this.selectedRating());\n }\n\n constructor() {\n // keep in sync if parent changes later\n effect(() => {\n this._selectedRating.set(this.selectedRating());\n });\n }\n\n // === Computed ===\n starData = computed(() => {\n const count = Math.max(0, this.noOfStars());\n const selected = this._selectedRating();\n const hover = this._hoverIndex();\n\n return Array.from({ length: count }, (_, i) => {\n const isHovered = hover != null && i <= hover;\n const isSelected = i < selected;\n\n return {\n id: i,\n asset: isHovered || isSelected ? this.selectedStarSvg() : this.emptyStarSvg(),\n hoverId: hover ?? -1,\n } as STAR_DATA;\n });\n });\n\n // === Handlers ===\n starMouseOver(index: number) {\n if (this.starHoverAllowed()) {\n this._hoverIndex.set(index);\n }\n }\n\n starMouseLeave() {\n if (this.starHoverAllowed()) {\n this._hoverIndex.set(null);\n }\n }\n\n selectedStarData(index: number) {\n if (this.starSelectionAllowed()) {\n const rating = index + 1;\n this._selectedRating.set(rating);\n this.starRated.emit(rating);\n }\n }\n\n trackById(_: number, item: STAR_DATA) {\n return item.id;\n }\n}\n\nexport interface STAR_DATA {\n id: number;\n asset: string;\n hoverId: number;\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { StarRatingComponent } from \"./star-rating.component\";\n\n@NgModule({\n declarations: [StarRatingComponent],\n imports: [CommonModule],\n exports: [StarRatingComponent]\n})\nexport class StarRatingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-star-rating.mjs","sources":["../../../projects/mis-components/star-rating/star-rating.component.html","../../../projects/mis-components/star-rating/star-rating.component.ts","../../../projects/mis-components/star-rating/star-rating.module.ts","../../../projects/mis-components/star-rating/mis-crystal-design-system-star-rating.ts"],"sourcesContent":["<div class=\"rating-container\"\n (mouseleave)=\"starMouseLeave()\"\n [ngStyle]=\"{'cursor': starSelectionAllowed() ? 'pointer' : 'not-allowed'}\">\n\n <div class=\"stars-container\" *ngFor=\"let star of starData(); trackBy: trackById\">\n <div class=\"star\"\n (click)=\"selectedStarData(star.id)\"\n (mouseover)=\"starMouseOver(star.id)\"\n [ngClass]=\"{\n 'hoveredStarZoom': star.id === star.hoverId,\n 'not-hovered': star.hoverId >= 0 && star.id > star.hoverId\n }\">\n <img [src]=\"star.asset\" [ngStyle]=\"{'height': starHeight(), 'width': starWidth()}\">\n </div>\n </div>\n</div>\n","import { Component, input, output, signal, computed, effect, OnInit } from '@angular/core';\n\n@Component({\n selector: 'mis-star-rating',\n templateUrl: './star-rating.component.html',\n styleUrls: ['./star-rating.component.scss'],\n})\nexport class StarRatingComponent implements OnInit {\n // === Inputs ===\n noOfStars = input(0);\n selectedRating = input(0);\n selectedStarSvg = input('assets/selectedStar.svg');\n emptyStarSvg = input('assets/star.svg');\n starHeight = input('24px');\n starWidth = input('24px');\n starSelectionAllowed = input(true);\n starHoverAllowed = input(true);\n\n // === Output ===\n starRated = output<number>();\n\n // === Internal state ===\n private _hoverIndex = signal<number | null>(null);\n private _selectedRating = signal<number>(0);\n\n ngOnInit() {\n // initialize once inputs are available\n this._selectedRating.set(this.selectedRating());\n }\n\n constructor() {\n // keep in sync if parent changes later\n effect(() => {\n this._selectedRating.set(this.selectedRating());\n }, { allowSignalWrites: true });\n }\n\n // === Computed ===\n starData = computed(() => {\n const count = Math.max(0, this.noOfStars());\n const selected = this._selectedRating();\n const hover = this._hoverIndex();\n\n return Array.from({ length: count }, (_, i) => {\n const isHovered = hover != null && i <= hover;\n const isSelected = i < selected;\n\n return {\n id: i,\n asset: isHovered || isSelected ? this.selectedStarSvg() : this.emptyStarSvg(),\n hoverId: hover ?? -1,\n } as STAR_DATA;\n });\n });\n\n // === Handlers ===\n starMouseOver(index: number) {\n if (this.starHoverAllowed()) {\n this._hoverIndex.set(index);\n }\n }\n\n starMouseLeave() {\n if (this.starHoverAllowed()) {\n this._hoverIndex.set(null);\n }\n }\n\n selectedStarData(index: number) {\n if (this.starSelectionAllowed()) {\n const rating = index + 1;\n this._selectedRating.set(rating);\n this.starRated.emit(rating);\n }\n }\n\n trackById(_: number, item: STAR_DATA) {\n return item.id;\n }\n}\n\nexport interface STAR_DATA {\n id: number;\n asset: string;\n hoverId: number;\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { StarRatingComponent } from \"./star-rating.component\";\n\n@NgModule({\n declarations: [StarRatingComponent],\n imports: [CommonModule],\n exports: [StarRatingComponent]\n})\nexport class StarRatingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ export declare class MultiSelectDropdownComponent {
|
|
|
26
26
|
searchEnabled: import("@angular/core").InputSignal<boolean>;
|
|
27
27
|
showSelectedCount: import("@angular/core").InputSignal<boolean>;
|
|
28
28
|
noDataMessage: import("@angular/core").InputSignal<string>;
|
|
29
|
+
customMessageTemplate: import("@angular/core").InputSignal<TemplateRef<any>>;
|
|
29
30
|
options: import("@angular/core").InputSignal<OPTIONS>;
|
|
30
31
|
hideApplyButton: import("@angular/core").InputSignal<boolean>;
|
|
31
32
|
searchInputPlaceholder: import("@angular/core").InputSignal<string>;
|
|
@@ -96,5 +97,5 @@ export declare class MultiSelectDropdownComponent {
|
|
|
96
97
|
*/
|
|
97
98
|
private openDropdown;
|
|
98
99
|
static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectDropdownComponent, never>;
|
|
99
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectDropdownComponent, "mis-multi-select-dropdown", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "selectedItems": { "alias": "selectedItems"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "dropdownListHeight": { "alias": "dropdownListHeight"; "required": false; "isSignal": true; }; "dropdownListWidth": { "alias": "dropdownListWidth"; "required": false; "isSignal": true; }; "dropdownListPosition": { "alias": "dropdownListPosition"; "required": false; "isSignal": true; }; "enableSelectAll": { "alias": "enableSelectAll"; "required": false; "isSignal": true; }; "searchEnabled": { "alias": "searchEnabled"; "required": false; "isSignal": true; }; "showSelectedCount": { "alias": "showSelectedCount"; "required": false; "isSignal": true; }; "noDataMessage": { "alias": "noDataMessage"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "hideApplyButton": { "alias": "hideApplyButton"; "required": false; "isSignal": true; }; "searchInputPlaceholder": { "alias": "searchInputPlaceholder"; "required": false; "isSignal": true; }; "customLabelTemplate": { "alias": "customLabelTemplate"; "required": false; "isSignal": true; }; }, { "onChange": "onChange"; }, never, never, false, never>;
|
|
100
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectDropdownComponent, "mis-multi-select-dropdown", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "selectedItems": { "alias": "selectedItems"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "dropdownListHeight": { "alias": "dropdownListHeight"; "required": false; "isSignal": true; }; "dropdownListWidth": { "alias": "dropdownListWidth"; "required": false; "isSignal": true; }; "dropdownListPosition": { "alias": "dropdownListPosition"; "required": false; "isSignal": true; }; "enableSelectAll": { "alias": "enableSelectAll"; "required": false; "isSignal": true; }; "searchEnabled": { "alias": "searchEnabled"; "required": false; "isSignal": true; }; "showSelectedCount": { "alias": "showSelectedCount"; "required": false; "isSignal": true; }; "noDataMessage": { "alias": "noDataMessage"; "required": false; "isSignal": true; }; "customMessageTemplate": { "alias": "customMessageTemplate"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "hideApplyButton": { "alias": "hideApplyButton"; "required": false; "isSignal": true; }; "searchInputPlaceholder": { "alias": "searchInputPlaceholder"; "required": false; "isSignal": true; }; "customLabelTemplate": { "alias": "customLabelTemplate"; "required": false; "isSignal": true; }; }, { "onChange": "onChange"; }, never, never, false, never>;
|
|
100
101
|
}
|