mis-crystal-design-system 18.0.12 → 18.0.13-test-3

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Input, Component, ViewChild, EventEmitter, Output, input, output, signal, ViewChildren, NgModule } from '@angular/core';
2
+ import { EventEmitter, Component, Output, ViewChild, ViewChildren, Input, Directive, input, output, signal, HostListener, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i2 from '@angular/cdk/scrolling';
@@ -7,6 +7,569 @@ import { ScrollingModule } from '@angular/cdk/scrolling';
7
7
  import * as i2$1 from 'mis-crystal-design-system/checkbox';
8
8
  import { CheckboxModule } from 'mis-crystal-design-system/checkbox';
9
9
 
10
+ const _c0$3 = ["filter"];
11
+ const _c1$3 = ["table"];
12
+ const _c2$2 = ["colHeaderRef"];
13
+ const _c3$1 = (a0, a1, a2) => ({ height: a0, width: a1, "overflow-x": a2 });
14
+ const _c4$1 = (a0, a1, a2) => ({ "no-scrollbar": a0, scrollbar: a1, "scroll-horizontally": a2 });
15
+ const _c5$1 = (a0, a1, a2) => ({ width: a0, cursor: a1, "justify-content": a2 });
16
+ const _c6$1 = (a0, a1) => ({ "t-row-hover": a0, "active-row": a1 });
17
+ const _c7$1 = a0 => ({ "min-height": a0 });
18
+ const _c8 = a0 => ({ width: a0 });
19
+ const _c9 = a0 => ({ "t-col-container-hover": a0 });
20
+ const _c10 = (a0, a1) => ({ width: "100%", cursor: a0, "justify-content": a1 });
21
+ const _c11 = a0 => ({ color: a0 });
22
+ const _c12 = a0 => ({ "text-ellipsis": a0 });
23
+ const _c13 = () => [];
24
+ const _c14 = () => ({ display: "flex", justifyContent: "center", alignItems: "center", padding: "16px" });
25
+ const _c15 = a0 => ({ "page-active": a0 });
26
+ const _c16 = () => ({ display: "flex" });
27
+ const _c17 = () => ({ "margin-right": "4px" });
28
+ function TableComponent_mis_table_filter_1_Template(rf, ctx) { if (rf & 1) {
29
+ const _r1 = i0.ɵɵgetCurrentView();
30
+ i0.ɵɵelementStart(0, "mis-table-filter", 11, 1);
31
+ i0.ɵɵlistener("filtersApplied", function TableComponent_mis_table_filter_1_Template_mis_table_filter_filtersApplied_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.updateAppliedFilters($event)); });
32
+ i0.ɵɵelementEnd();
33
+ } if (rf & 2) {
34
+ const ctx_r1 = i0.ɵɵnextContext();
35
+ i0.ɵɵproperty("containerStyles", ctx_r1.filterContainerStyles)("filtersData", ctx_r1.filterData);
36
+ } }
37
+ function TableComponent_div_5_p_2_Template(rf, ctx) { if (rf & 1) {
38
+ i0.ɵɵelementStart(0, "p", 17);
39
+ i0.ɵɵtext(1);
40
+ i0.ɵɵelementEnd();
41
+ } if (rf & 2) {
42
+ const colHeader_r4 = i0.ɵɵnextContext().$implicit;
43
+ i0.ɵɵadvance();
44
+ i0.ɵɵtextInterpolate1(" ", (colHeader_r4 == null ? null : colHeader_r4.data) || " ", " ");
45
+ } }
46
+ function TableComponent_div_5_span_3_span_1_Template(rf, ctx) { if (rf & 1) {
47
+ i0.ɵɵelement(0, "span", 22);
48
+ } }
49
+ function TableComponent_div_5_span_3_Template(rf, ctx) { if (rf & 1) {
50
+ const _r5 = i0.ɵɵgetCurrentView();
51
+ i0.ɵɵelementStart(0, "span", 18);
52
+ i0.ɵɵlistener("click", function TableComponent_div_5_span_3_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const colHeader_r4 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.filterData = colHeader_r4.filters; ctx_r1.toggleFilter(colHeader_r4.data); return i0.ɵɵresetView($event.stopPropagation()); });
53
+ i0.ɵɵtemplate(1, TableComponent_div_5_span_3_span_1_Template, 1, 0, "span", 19);
54
+ i0.ɵɵnamespaceSVG();
55
+ i0.ɵɵelementStart(2, "svg", 20);
56
+ i0.ɵɵelement(3, "path", 21);
57
+ i0.ɵɵelementEnd()();
58
+ } if (rf & 2) {
59
+ const colHeader_r4 = i0.ɵɵnextContext().$implicit;
60
+ const ctx_r1 = i0.ɵɵnextContext();
61
+ i0.ɵɵadvance();
62
+ i0.ɵɵproperty("ngIf", (ctx_r1.appliedFilters[colHeader_r4.data] == null ? null : ctx_r1.appliedFilters[colHeader_r4.data].length) > 0);
63
+ } }
64
+ function TableComponent_div_5_span_4_Template(rf, ctx) { if (rf & 1) {
65
+ const _r6 = i0.ɵɵgetCurrentView();
66
+ i0.ɵɵelementStart(0, "span", 23);
67
+ i0.ɵɵlistener("sortChange", function TableComponent_div_5_span_4_Template_span_sortChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onSortChange($event)); });
68
+ i0.ɵɵelementEnd();
69
+ } if (rf & 2) {
70
+ const colHeader_r4 = i0.ɵɵnextContext().$implicit;
71
+ const ctx_r1 = i0.ɵɵnextContext();
72
+ i0.ɵɵproperty("column", colHeader_r4)("activeSort", ctx_r1.currentSort)("activeSorts", ctx_r1.multiColumnSort)("multiColumnSort", ctx_r1.config.multiColumnSort);
73
+ } }
74
+ function TableComponent_div_5_5_ng_template_0_Template(rf, ctx) { }
75
+ function TableComponent_div_5_5_Template(rf, ctx) { if (rf & 1) {
76
+ i0.ɵɵtemplate(0, TableComponent_div_5_5_ng_template_0_Template, 0, 0, "ng-template", 24);
77
+ } if (rf & 2) {
78
+ const colHeader_r4 = i0.ɵɵnextContext().$implicit;
79
+ i0.ɵɵproperty("customComponent", colHeader_r4 == null ? null : colHeader_r4.componentRef)("data", colHeader_r4.data);
80
+ } }
81
+ function TableComponent_div_5_Template(rf, ctx) { if (rf & 1) {
82
+ const _r3 = i0.ɵɵgetCurrentView();
83
+ i0.ɵɵelementStart(0, "div", 12, 2);
84
+ i0.ɵɵlistener("click", function TableComponent_div_5_Template_div_click_0_listener() { const colHeader_r4 = i0.ɵɵrestoreView(_r3).$implicit; return i0.ɵɵresetView((colHeader_r4 == null ? null : colHeader_r4.action) ? colHeader_r4 == null ? null : colHeader_r4.action(colHeader_r4) : null); });
85
+ i0.ɵɵtemplate(2, TableComponent_div_5_p_2_Template, 2, 1, "p", 13)(3, TableComponent_div_5_span_3_Template, 4, 1, "span", 14)(4, TableComponent_div_5_span_4_Template, 1, 4, "span", 15)(5, TableComponent_div_5_5_Template, 1, 2, null, 16);
86
+ i0.ɵɵelementEnd();
87
+ } if (rf & 2) {
88
+ const colHeader_r4 = ctx.$implicit;
89
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(5, _c5$1, (colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.width) || "", colHeader_r4.action ? "pointer" : "default", (colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.justifyContent) ? colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.justifyContent : colHeader_r4.type === "number" ? "flex-end" : "space-between"));
90
+ i0.ɵɵadvance(2);
91
+ i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) !== "custom");
92
+ i0.ɵɵadvance();
93
+ i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) !== "custom" && (colHeader_r4 == null ? null : colHeader_r4.filters) && (colHeader_r4 == null ? null : colHeader_r4.filters == null ? null : colHeader_r4.filters.length) > 0);
94
+ i0.ɵɵadvance();
95
+ i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.isSortable) && !(colHeader_r4 == null ? null : colHeader_r4.filters));
96
+ i0.ɵɵadvance();
97
+ i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) === "custom");
98
+ } }
99
+ function TableComponent_div_7_div_2_p_2_Template(rf, ctx) { if (rf & 1) {
100
+ i0.ɵɵelementStart(0, "p", 33);
101
+ i0.ɵɵtext(1);
102
+ i0.ɵɵelementEnd();
103
+ } if (rf & 2) {
104
+ const ctx_r12 = i0.ɵɵnextContext();
105
+ const col_r11 = ctx_r12.$implicit;
106
+ const i_r12 = ctx_r12.index;
107
+ const ctx_r1 = i0.ɵɵnextContext(2);
108
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(3, _c11, (ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.color) ? ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.color : ""))("ngClass", i0.ɵɵpureFunction1(5, _c12, !!(ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.textEllipsis)));
109
+ i0.ɵɵadvance();
110
+ i0.ɵɵtextInterpolate1(" ", col_r11, " ");
111
+ } }
112
+ function TableComponent_div_7_div_2_3_ng_template_0_Template(rf, ctx) { }
113
+ function TableComponent_div_7_div_2_3_Template(rf, ctx) { if (rf & 1) {
114
+ i0.ɵɵtemplate(0, TableComponent_div_7_div_2_3_ng_template_0_Template, 0, 0, "ng-template", 24);
115
+ } if (rf & 2) {
116
+ const ctx_r12 = i0.ɵɵnextContext();
117
+ const col_r11 = ctx_r12.$implicit;
118
+ const i_r12 = ctx_r12.index;
119
+ const ctx_r1 = i0.ɵɵnextContext(2);
120
+ i0.ɵɵproperty("customComponent", ctx_r1.config.colConfig[i_r12].componentRef)("data", col_r11);
121
+ } }
122
+ function TableComponent_div_7_div_2_mis_actions_cell_4_Template(rf, ctx) { if (rf & 1) {
123
+ const _r14 = i0.ɵɵgetCurrentView();
124
+ i0.ɵɵelementStart(0, "mis-actions-cell", 34);
125
+ i0.ɵɵlistener("actionClick", function TableComponent_div_7_div_2_mis_actions_cell_4_Template_mis_actions_cell_actionClick_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); });
126
+ i0.ɵɵelementEnd();
127
+ } if (rf & 2) {
128
+ const ctx_r12 = i0.ɵɵnextContext();
129
+ const col_r11 = ctx_r12.$implicit;
130
+ const i_r12 = ctx_r12.index;
131
+ const ctx_r1 = i0.ɵɵnextContext(2);
132
+ i0.ɵɵstyleMap(ctx_r1.getActionsCellStyle(ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style));
133
+ i0.ɵɵproperty("data", col_r11)("actionItems", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].actionItems) || i0.ɵɵpureFunction0(7, _c13))("actionType", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].actionType) || "inline")("dropdownIcon", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].dropdownIcon) || "")("submenuAlign", ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].submenuAlign);
134
+ } }
135
+ function TableComponent_div_7_div_2_Template(rf, ctx) { if (rf & 1) {
136
+ const _r9 = i0.ɵɵgetCurrentView();
137
+ i0.ɵɵelementStart(0, "div", 29);
138
+ i0.ɵɵlistener("click", function TableComponent_div_7_div_2_Template_div_click_0_listener() { const ctx_r9 = i0.ɵɵrestoreView(_r9); const col_r11 = ctx_r9.$implicit; const i_r12 = ctx_r9.index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].action) ? ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].action(col_r11) : null); });
139
+ i0.ɵɵelementStart(1, "div", 30);
140
+ i0.ɵɵtemplate(2, TableComponent_div_7_div_2_p_2_Template, 2, 7, "p", 31)(3, TableComponent_div_7_div_2_3_Template, 1, 2, null, 16)(4, TableComponent_div_7_div_2_mis_actions_cell_4_Template, 1, 8, "mis-actions-cell", 32);
141
+ i0.ɵɵelementEnd()();
142
+ } if (rf & 2) {
143
+ const i_r12 = ctx.index;
144
+ const ctx_r1 = i0.ɵɵnextContext(2);
145
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(8, _c8, (ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.width) || (ctx_r1.config == null ? null : ctx_r1.config.colHeaderConfig[i_r12] == null ? null : ctx_r1.config.colHeaderConfig[i_r12].style == null ? null : ctx_r1.config.colHeaderConfig[i_r12].style.width) || ""))("ngClass", i0.ɵɵpureFunction1(10, _c9, ctx_r1.config.cellHover));
146
+ i0.ɵɵadvance();
147
+ i0.ɵɵstyleMap(ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style);
148
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(12, _c10, (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].action) ? "pointer" : "default", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.justifyContent) ? ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.justifyContent : (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) === "number" ? "flex-end" : "space-between"));
149
+ i0.ɵɵadvance();
150
+ i0.ɵɵproperty("ngIf", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) !== "custom" && (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) !== "actions");
151
+ i0.ɵɵadvance();
152
+ i0.ɵɵproperty("ngIf", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) === "custom");
153
+ i0.ɵɵadvance();
154
+ i0.ɵɵproperty("ngIf", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) === "actions");
155
+ } }
156
+ function TableComponent_div_7_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
157
+ i0.ɵɵelementContainerStart(0);
158
+ i0.ɵɵelementStart(1, "div", 36);
159
+ i0.ɵɵtext(2, " Loading... ");
160
+ i0.ɵɵelementEnd();
161
+ i0.ɵɵelementContainerEnd();
162
+ } if (rf & 2) {
163
+ i0.ɵɵadvance();
164
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c14));
165
+ } }
166
+ function TableComponent_div_7_div_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵelementContainerStart(0);
168
+ i0.ɵɵelementStart(1, "div", 36);
169
+ i0.ɵɵtext(2, " No Data Available... ");
170
+ i0.ɵɵelementEnd();
171
+ i0.ɵɵelementContainerEnd();
172
+ } if (rf & 2) {
173
+ i0.ɵɵadvance();
174
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c14));
175
+ } }
176
+ function TableComponent_div_7_div_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {
177
+ i0.ɵɵelementContainerStart(0);
178
+ i0.ɵɵelement(1, "sub-table", 37);
179
+ i0.ɵɵelementContainerEnd();
180
+ } if (rf & 2) {
181
+ const ctx_r1 = i0.ɵɵnextContext(3);
182
+ i0.ɵɵadvance();
183
+ i0.ɵɵproperty("config", ctx_r1.subTableconfig)("tableData", ctx_r1.subTableData);
184
+ } }
185
+ function TableComponent_div_7_div_3_Template(rf, ctx) { if (rf & 1) {
186
+ i0.ɵɵelementStart(0, "div", 35);
187
+ i0.ɵɵtemplate(1, TableComponent_div_7_div_3_ng_container_1_Template, 3, 2, "ng-container", 16)(2, TableComponent_div_7_div_3_ng_container_2_Template, 3, 2, "ng-container", 16)(3, TableComponent_div_7_div_3_ng_container_3_Template, 2, 2, "ng-container", 16);
188
+ i0.ɵɵelementEnd();
189
+ } if (rf & 2) {
190
+ const ctx_r1 = i0.ɵɵnextContext(2);
191
+ i0.ɵɵadvance();
192
+ i0.ɵɵproperty("ngIf", ctx_r1.subTableDataLoading);
193
+ i0.ɵɵadvance();
194
+ i0.ɵɵproperty("ngIf", !ctx_r1.subTableDataLoading && ctx_r1.subTableData.length === 0);
195
+ i0.ɵɵadvance();
196
+ i0.ɵɵproperty("ngIf", !ctx_r1.subTableDataLoading && ctx_r1.subTableData.length > 0);
197
+ } }
198
+ function TableComponent_div_7_Template(rf, ctx) { if (rf & 1) {
199
+ const _r7 = i0.ɵɵgetCurrentView();
200
+ i0.ɵɵelementStart(0, "div", 25)(1, "div", 26);
201
+ i0.ɵɵlistener("click", function TableComponent_div_7_Template_div_click_1_listener() { const i_r8 = i0.ɵɵrestoreView(_r7).index; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectRow(i_r8)); });
202
+ i0.ɵɵtemplate(2, TableComponent_div_7_div_2_Template, 5, 15, "div", 27);
203
+ i0.ɵɵelementEnd();
204
+ i0.ɵɵtemplate(3, TableComponent_div_7_div_3_Template, 4, 3, "div", 28);
205
+ i0.ɵɵelementEnd();
206
+ } if (rf & 2) {
207
+ const row_r15 = ctx.$implicit;
208
+ const i_r8 = ctx.index;
209
+ const ctx_r1 = i0.ɵɵnextContext();
210
+ i0.ɵɵadvance();
211
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(4, _c6$1, ctx_r1.config.cellHover, i_r8 === ctx_r1.activeRowIndex))("ngStyle", i0.ɵɵpureFunction1(7, _c7$1, (ctx_r1.config == null ? null : ctx_r1.config.rowConfig == null ? null : ctx_r1.config.rowConfig.height) ? ctx_r1.config.rowConfig.height : "44px"));
212
+ i0.ɵɵadvance();
213
+ i0.ɵɵproperty("ngForOf", row_r15);
214
+ i0.ɵɵadvance();
215
+ i0.ɵɵproperty("ngIf", (ctx_r1.config == null ? null : ctx_r1.config.canExpand) && ctx_r1.expandedIndex === i_r8);
216
+ } }
217
+ function TableComponent_div_8_div_7_div_1_span_1_Template(rf, ctx) { if (rf & 1) {
218
+ const _r17 = i0.ɵɵgetCurrentView();
219
+ i0.ɵɵelementStart(0, "span", 49);
220
+ i0.ɵɵlistener("click", function TableComponent_div_8_div_7_div_1_span_1_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r17); const pageNumber_r18 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.updateSelectedPage(pageNumber_r18)); });
221
+ i0.ɵɵtext(1);
222
+ i0.ɵɵelementEnd();
223
+ } if (rf & 2) {
224
+ const pageNumber_r18 = i0.ɵɵnextContext().$implicit;
225
+ const ctx_r1 = i0.ɵɵnextContext(3);
226
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c15, pageNumber_r18 == (ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage)));
227
+ i0.ɵɵadvance();
228
+ i0.ɵɵtextInterpolate(pageNumber_r18);
229
+ } }
230
+ function TableComponent_div_8_div_7_div_1_span_2_Template(rf, ctx) { if (rf & 1) {
231
+ i0.ɵɵelementStart(0, "span", 50)(1, "div", 36);
232
+ i0.ɵɵelement(2, "span", 51)(3, "span", 51)(4, "span", 52);
233
+ i0.ɵɵelementEnd()();
234
+ } if (rf & 2) {
235
+ i0.ɵɵadvance();
236
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(3, _c16));
237
+ i0.ɵɵadvance();
238
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c17));
239
+ i0.ɵɵadvance();
240
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(5, _c17));
241
+ } }
242
+ function TableComponent_div_8_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
243
+ i0.ɵɵelementStart(0, "div");
244
+ i0.ɵɵtemplate(1, TableComponent_div_8_div_7_div_1_span_1_Template, 2, 4, "span", 47)(2, TableComponent_div_8_div_7_div_1_span_2_Template, 5, 6, "span", 48);
245
+ i0.ɵɵelementEnd();
246
+ } if (rf & 2) {
247
+ const pageNumber_r18 = ctx.$implicit;
248
+ i0.ɵɵadvance();
249
+ i0.ɵɵproperty("ngIf", pageNumber_r18 != 0);
250
+ i0.ɵɵadvance();
251
+ i0.ɵɵproperty("ngIf", pageNumber_r18 == 0);
252
+ } }
253
+ function TableComponent_div_8_div_7_Template(rf, ctx) { if (rf & 1) {
254
+ i0.ɵɵelementStart(0, "div");
255
+ i0.ɵɵtemplate(1, TableComponent_div_8_div_7_div_1_Template, 3, 2, "div", 46);
256
+ i0.ɵɵelementEnd();
257
+ } if (rf & 2) {
258
+ const ctx_r1 = i0.ɵɵnextContext(2);
259
+ i0.ɵɵadvance();
260
+ i0.ɵɵproperty("ngForOf", ctx_r1.pages);
261
+ } }
262
+ function TableComponent_div_8_div_8_Template(rf, ctx) { if (rf & 1) {
263
+ i0.ɵɵelementStart(0, "div", 53)(1, "span", 54);
264
+ i0.ɵɵtext(2);
265
+ i0.ɵɵelementEnd()();
266
+ } if (rf & 2) {
267
+ const ctx_r1 = i0.ɵɵnextContext(2);
268
+ i0.ɵɵadvance(2);
269
+ i0.ɵɵtextInterpolate2("", ctx_r1.config.paginationConfig.selectedPage, " of ", ctx_r1.config.paginationConfig.noOfPages, "");
270
+ } }
271
+ function TableComponent_div_8_Template(rf, ctx) { if (rf & 1) {
272
+ const _r16 = i0.ɵɵgetCurrentView();
273
+ i0.ɵɵelementStart(0, "div", 38)(1, "p", 39);
274
+ i0.ɵɵtext(2);
275
+ i0.ɵɵelementEnd();
276
+ i0.ɵɵelementStart(3, "div", 40)(4, "span", 41);
277
+ i0.ɵɵlistener("click", function TableComponent_div_8_Template_span_click_4_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.updateSelectedPage((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) - 1)); });
278
+ i0.ɵɵnamespaceSVG();
279
+ i0.ɵɵelementStart(5, "svg", 42);
280
+ i0.ɵɵelement(6, "path", 43);
281
+ i0.ɵɵelementEnd()();
282
+ i0.ɵɵtemplate(7, TableComponent_div_8_div_7_Template, 2, 1, "div", 16)(8, TableComponent_div_8_div_8_Template, 3, 2, "div", 44);
283
+ i0.ɵɵnamespaceHTML();
284
+ i0.ɵɵelementStart(9, "span", 41);
285
+ i0.ɵɵlistener("click", function TableComponent_div_8_Template_span_click_9_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.updateSelectedPage((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) + 1)); });
286
+ i0.ɵɵnamespaceSVG();
287
+ i0.ɵɵelementStart(10, "svg", 42);
288
+ i0.ɵɵelement(11, "path", 45);
289
+ i0.ɵɵelementEnd()()()();
290
+ } if (rf & 2) {
291
+ const ctx_r1 = i0.ɵɵnextContext();
292
+ i0.ɵɵadvance(2);
293
+ i0.ɵɵtextInterpolate3(" Showing ", ((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) - 1) * ctx_r1.config.paginationConfig.rowsPerPage + 1, "-", ((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) - 1) * ctx_r1.config.paginationConfig.rowsPerPage + ctx_r1.tableLength, " of ", ctx_r1.config.paginationConfig.totalNoOfRows, " items ");
294
+ i0.ɵɵadvance(5);
295
+ i0.ɵɵproperty("ngIf", !(ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.disablePageJumping));
296
+ i0.ɵɵadvance();
297
+ i0.ɵɵproperty("ngIf", ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.disablePageJumping);
298
+ } }
299
+ class TableComponent {
300
+ constructor(renderer) {
301
+ this.renderer = renderer;
302
+ // Initialize with -1 to indicate no row is colored at the beginning
303
+ this.activeRowIndex = 0;
304
+ // Filter related variables
305
+ this.showFilter = false;
306
+ this.filterName = "";
307
+ this.filterData = [];
308
+ this.filterContainerStyles = {};
309
+ this.appliedFilters = {};
310
+ this.filtersUpdated = new EventEmitter();
311
+ // Pagination related variables
312
+ this.pages = [];
313
+ this.pageSelected = new EventEmitter();
314
+ this.tableData = [];
315
+ this.subTableData = [];
316
+ // Sorting related properties
317
+ this.currentSort = null;
318
+ this.multiColumnSort = [];
319
+ this.sortChange = new EventEmitter();
320
+ }
321
+ // Function to handle row click
322
+ selectRow(index) {
323
+ this.activeRowIndex = index; // Set the selected index to the clicked row's index
324
+ !!this.config.rowConfig.action && this.config.rowConfig.action(index);
325
+ }
326
+ ngOnInit() {
327
+ this.tableLength = !!this.tableData ? this.tableData.length : 0;
328
+ this.initializeFilters();
329
+ if (this.config.paginationConfig) {
330
+ this.initializePagination();
331
+ }
332
+ if (this.config.canScrollHorizontally === undefined) {
333
+ this.config.canScrollHorizontally = false;
334
+ }
335
+ document.addEventListener("click", event => {
336
+ if (this.filter) {
337
+ let isCheckBoxClicked = true;
338
+ let targetElement = event.target;
339
+ if (targetElement.className === "checkmark") {
340
+ isCheckBoxClicked = true;
341
+ this.showFilter = true;
342
+ }
343
+ let isClickInsideElement = this.filter.container.nativeElement.contains(event.target);
344
+ if (!isClickInsideElement && !isCheckBoxClicked) {
345
+ this.toggleFilter(this.filterName);
346
+ }
347
+ }
348
+ });
349
+ }
350
+ ngAfterViewInit() {
351
+ if (this.config.paginationConfig) {
352
+ let height = this.config.height;
353
+ this.renderer.setStyle(this.table.nativeElement, "height", height - 56 + "px");
354
+ }
355
+ }
356
+ ngOnChanges() {
357
+ this.tableLength = !!this.tableData ? this.tableData.length : 0;
358
+ this.activeRowIndex = this.config.activeRowIndex || 0;
359
+ }
360
+ // Filter related functions
361
+ initializeFilters() {
362
+ for (let colHeader of this.config?.colHeaderConfig) {
363
+ if (colHeader.filters) {
364
+ let filters = [];
365
+ for (let filter of colHeader.filters) {
366
+ if (filter.checked) {
367
+ filters.push({
368
+ name: filter.name,
369
+ value: filter.value
370
+ });
371
+ }
372
+ }
373
+ if (filters.length > 0)
374
+ this.appliedFilters[colHeader.data] = filters;
375
+ }
376
+ }
377
+ }
378
+ toggleFilter(filterName) {
379
+ if (!this.showFilter) {
380
+ this.filterName = filterName;
381
+ this.showFilter = true;
382
+ let offSet = 0;
383
+ let colHeadersReversed = this.colHeaders.toArray().reverse();
384
+ for (let header of colHeadersReversed) {
385
+ if (header.nativeElement.innerText === filterName)
386
+ break;
387
+ offSet += header.nativeElement.offsetWidth;
388
+ }
389
+ this.filterContainerStyles = {
390
+ top: "44px",
391
+ right: offSet > 0 ? offSet - 116 + "px" : "12px"
392
+ };
393
+ }
394
+ else {
395
+ this.filterName = "";
396
+ this.filterData = [];
397
+ this.showFilter = false;
398
+ }
399
+ }
400
+ updateAppliedFilters(appliedFilters) {
401
+ if (appliedFilters.length == 0) {
402
+ delete this.appliedFilters[this.filterName];
403
+ }
404
+ else {
405
+ this.appliedFilters[this.filterName] = appliedFilters;
406
+ }
407
+ this.filtersUpdated.emit({ ...this.appliedFilters });
408
+ this.toggleFilter(this.filterName);
409
+ }
410
+ // Pagination related functions
411
+ initializePagination() {
412
+ if (this.config.paginationConfig) {
413
+ let len = this.config.paginationConfig.noOfPages;
414
+ if (len <= 7) {
415
+ for (let i = 1; i <= len; i++) {
416
+ this.pages.push(i);
417
+ }
418
+ }
419
+ else {
420
+ this.pages = [1, 2, 3, 4, 0, len];
421
+ }
422
+ }
423
+ }
424
+ updateSelectedPage(pageNumber) {
425
+ if (pageNumber < 1 || pageNumber > this.config.paginationConfig.noOfPages)
426
+ return;
427
+ this.config.paginationConfig.selectedPage = pageNumber;
428
+ let len = this.config.paginationConfig.noOfPages;
429
+ if (len > 7) {
430
+ if (pageNumber - 2 <= 1) {
431
+ this.pages = [1, 2, 3, 4, 0, len];
432
+ }
433
+ else if (pageNumber - 2 > 1 && pageNumber + 2 < len) {
434
+ this.pages = [1, 0, pageNumber - 1, pageNumber, pageNumber + 1, 0, len];
435
+ }
436
+ else if (pageNumber + 2 >= len) {
437
+ this.pages = [1, 0, len - 3, len - 2, len - 1, len];
438
+ }
439
+ }
440
+ this.pageSelected.emit(this.config.paginationConfig?.selectedPage);
441
+ }
442
+ // Main container related functions
443
+ getContainerHeight() {
444
+ if (this.config?.height)
445
+ return this.config.height;
446
+ else
447
+ return "";
448
+ }
449
+ getContainerWidth() {
450
+ if (this.config?.width)
451
+ return this.config.width;
452
+ else
453
+ return "";
454
+ }
455
+ // Column Headers related functions
456
+ getColHeadersRowStyles() {
457
+ const { colHeadersRowConfig } = this.config;
458
+ const minHeight = colHeadersRowConfig?.height || "44px";
459
+ const borderTop = colHeadersRowConfig?.style?.borderTop || "";
460
+ const borderBottom = colHeadersRowConfig?.style?.borderBottom || "1px solid #E0E0E0";
461
+ const backgroundColor = colHeadersRowConfig?.style?.backgroundColor || "#FFFFFF";
462
+ const fontSize = colHeadersRowConfig?.style?.fontSize || "14px";
463
+ return {
464
+ 'min-height': minHeight,
465
+ 'border-top': borderTop,
466
+ 'border-bottom': borderBottom,
467
+ 'background-color': backgroundColor,
468
+ 'font-size': fontSize
469
+ };
470
+ }
471
+ onSortChange(sortState) {
472
+ this.currentSort = sortState;
473
+ if (this.config.multiColumnSort) {
474
+ const index = this.multiColumnSort.findIndex(sort => sort.column === sortState.column);
475
+ if (index !== -1) {
476
+ if (sortState.direction === null) {
477
+ this.multiColumnSort.splice(index, 1);
478
+ }
479
+ else {
480
+ this.multiColumnSort[index] = sortState;
481
+ }
482
+ }
483
+ else if (sortState.direction !== null) {
484
+ this.multiColumnSort.push(sortState);
485
+ }
486
+ }
487
+ this.sortChange.emit(sortState);
488
+ }
489
+ onActionClick(event) {
490
+ // this.actionClick.emit(event);
491
+ console.log("EVENT:", event);
492
+ }
493
+ getActionsCellStyle(style) {
494
+ if (!style)
495
+ return {};
496
+ // Create a copy of the style object without width
497
+ const { width, ...restStyle } = style;
498
+ return restStyle;
499
+ }
500
+ static { this.ɵfac = function TableComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableComponent)(i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
501
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["mis-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
502
+ i0.ɵɵviewQuery(_c0$3, 5);
503
+ i0.ɵɵviewQuery(_c1$3, 5);
504
+ i0.ɵɵviewQuery(_c2$2, 5);
505
+ } if (rf & 2) {
506
+ let _t;
507
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
508
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.table = _t.first);
509
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.colHeaders = _t);
510
+ } }, inputs: { config: [0, "tableConfig", "config"], subTableconfig: "subTableconfig", tableDataLoading: "tableDataLoading", expandedIndex: "expandedIndex", tableData: "tableData", subTableData: "subTableData", subTableDataLoading: "subTableDataLoading" }, outputs: { filtersUpdated: "filtersUpdated", pageSelected: "pageSelected", sortChange: "sortChange" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 15, consts: [["table", ""], ["filter", ""], ["colHeaderRef", ""], ["id", "main-container", 3, "ngStyle"], [3, "containerStyles", "filtersData", "filtersApplied", 4, "ngIf"], ["id", "table-container", 3, "ngClass"], ["id", "col-headers-container", 3, "ngStyle"], ["class", "col-header", 3, "ngStyle", "click", 4, "ngFor", "ngForOf"], ["id", "data-container"], ["class", "row-wrapper", 4, "ngFor", "ngForOf"], ["id", "pagination-container", 4, "ngIf"], [3, "filtersApplied", "containerStyles", "filtersData"], [1, "col-header", 3, "click", "ngStyle"], ["class", "col-header-text", 4, "ngIf"], ["class", "filter-icon", 3, "click", 4, "ngIf"], ["appSortIcons", "", "class", "sort-icon", 3, "column", "activeSort", "activeSorts", "multiColumnSort", "sortChange", 4, "ngIf"], [4, "ngIf"], [1, "col-header-text"], [1, "filter-icon", 3, "click"], ["id", "filter-active", 4, "ngIf"], ["fill", "none", "height", "10", "viewBox", "0 0 13 10", "width", "13", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z", "fill", "#181F33", "fill-rule", "evenodd"], ["id", "filter-active"], ["appSortIcons", "", 1, "sort-icon", 3, "sortChange", "column", "activeSort", "activeSorts", "multiColumnSort"], ["customTableCell", "", 3, "customComponent", "data"], [1, "row-wrapper"], [1, "t-row", 3, "click", "ngClass", "ngStyle"], ["class", "t-col-container", 3, "ngStyle", "ngClass", "click", 4, "ngFor", "ngForOf"], ["class", "sub-row", 4, "ngIf"], [1, "t-col-container", 3, "click", "ngStyle", "ngClass"], [1, "t-col", 3, "ngStyle"], ["class", "t-col-text", 3, "ngStyle", "ngClass", 4, "ngIf"], [3, "data", "actionItems", "actionType", "dropdownIcon", "style", "submenuAlign", "actionClick", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle", "ngClass"], [3, "actionClick", "data", "actionItems", "actionType", "dropdownIcon", "submenuAlign"], [1, "sub-row"], [3, "ngStyle"], [3, "config", "tableData"], ["id", "pagination-container"], ["id", "pagination-text"], ["id", "pages-container"], [1, "page", 3, "click"], ["fill", "none", "height", "10", "viewBox", "0 0 7 10", "width", "7", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], ["class", "page-indicator", 4, "ngIf"], ["clip-rule", "evenodd", "d", "M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], [4, "ngFor", "ngForOf"], ["class", "page", 3, "ngClass", "click", 4, "ngIf"], ["class", "page-seperator", 4, "ngIf"], [1, "page", 3, "click", "ngClass"], [1, "page-seperator"], [1, "dot", 3, "ngStyle"], [1, "dot"], [1, "page-indicator"], [1, "page-indicator-text"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
511
+ i0.ɵɵelementStart(0, "div", 3);
512
+ i0.ɵɵtemplate(1, TableComponent_mis_table_filter_1_Template, 2, 2, "mis-table-filter", 4);
513
+ i0.ɵɵelementStart(2, "div", 5, 0)(4, "div", 6);
514
+ i0.ɵɵtemplate(5, TableComponent_div_5_Template, 6, 9, "div", 7);
515
+ i0.ɵɵelementEnd();
516
+ i0.ɵɵelementStart(6, "div", 8);
517
+ i0.ɵɵtemplate(7, TableComponent_div_7_Template, 4, 9, "div", 9);
518
+ i0.ɵɵelementEnd()();
519
+ i0.ɵɵtemplate(8, TableComponent_div_8_Template, 12, 5, "div", 10);
520
+ i0.ɵɵelementEnd();
521
+ } if (rf & 2) {
522
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(7, _c3$1, ctx.getContainerHeight(), ctx.getContainerWidth(), ctx.config.canScrollHorizontally ? "auto" : "unset"));
523
+ i0.ɵɵadvance();
524
+ i0.ɵɵproperty("ngIf", ctx.showFilter);
525
+ i0.ɵɵadvance();
526
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(11, _c4$1, ctx.expandedIndex < 0, !(ctx.expandedIndex < 0), ctx.config.canScrollHorizontally));
527
+ i0.ɵɵadvance(2);
528
+ i0.ɵɵproperty("ngStyle", ctx.getColHeadersRowStyles());
529
+ i0.ɵɵadvance();
530
+ i0.ɵɵproperty("ngForOf", ctx.config == null ? null : ctx.config.colHeaderConfig);
531
+ i0.ɵɵadvance(2);
532
+ i0.ɵɵproperty("ngForOf", ctx.tableData);
533
+ i0.ɵɵadvance();
534
+ i0.ɵɵproperty("ngIf", (ctx.config == null ? null : ctx.config.paginationConfig) && (ctx.tableLength >= ctx.config.paginationConfig.rowsPerPage || (ctx.config.paginationConfig == null ? null : ctx.config.paginationConfig.selectedPage) !== 1));
535
+ } }, styles: ["#main-container[_ngcontent-%COMP%]{font-family:Lato,sans-serif;position:relative}.no-scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:0}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container[_ngcontent-%COMP%]{height:inherit;overflow-y:auto}.scroll-horizontally[_ngcontent-%COMP%]{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container[_ngcontent-%COMP%]{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header[_ngcontent-%COMP%]{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text[_ngcontent-%COMP%]{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.sort-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.filter-icon[_ngcontent-%COMP%]{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active[_ngcontent-%COMP%]{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row[_ngcontent-%COMP%]{height:auto;border-bottom:none}.loader[_ngcontent-%COMP%] .mat-progress-spinner circle, .mat-spinner[_ngcontent-%COMP%] circle[_ngcontent-%COMP%]{stroke:#0937b2}.t-row[_ngcontent-%COMP%]{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row[_ngcontent-%COMP%]:hover{background-color:#e7eefd}.active-row[_ngcontent-%COMP%]{background-color:#e6f6fd}.t-col-container[_ngcontent-%COMP%]{padding:0 16px;overflow-wrap:anywhere}.t-row-hover[_ngcontent-%COMP%]:hover{background-color:#0000}.t-col-container-hover[_ngcontent-%COMP%]:hover{background-color:#e6ebf7}.t-col-container-hover[_ngcontent-%COMP%]:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover[_ngcontent-%COMP%]{border-right:1px solid #e0e0e0}.t-col[_ngcontent-%COMP%]{display:flex;align-items:center;height:100%}.t-col-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.text-ellipsis[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}#pagination-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container[_ngcontent-%COMP%]{display:flex;margin-right:32px}.page[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot[_ngcontent-%COMP%]{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active[_ngcontent-%COMP%]{color:#0937b2;border:1px solid #0937b2}.sort-icon[_ngcontent-%COMP%]{display:inline-flex;align-items:center;margin-left:4px;cursor:pointer}.sort-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:16px;height:16px;transition:opacity .2s ease}.sort-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]:hover{opacity:.8}"] }); }
536
+ }
537
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
538
+ type: Component,
539
+ args: [{ selector: "mis-table", template: "<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div\n #table\n id=\"table-container\"\n [ngClass]=\"{ 'no-scrollbar': expandedIndex < 0, scrollbar: !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\"\n >\n <div\n [ngStyle]=\"getColHeadersRowStyles()\"\n id=\"col-headers-container\"\n >\n <div\n #colHeaderRef\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"filterData = colHeader.filters; toggleFilter(colHeader.data); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type !== 'custom' && colHeader?.filters && colHeader?.filters?.length > 0\"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <span *ngIf=\"colHeader?.isSortable && !colHeader?.filters\" appSortIcons\n [column]=\"colHeader\"\n [activeSort]=\"currentSort\"\n [activeSorts]=\"multiColumnSort\"\n [multiColumnSort]=\"config.multiColumnSort\"\n (sortChange)=\"onSortChange($event)\"\n class=\"sort-icon\">\n </span>\n <ng-template *ngIf=\"colHeader?.type === 'custom'\" customTableCell [customComponent]=\"colHeader?.componentRef\" [data]=\"colHeader.data\"></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div class=\"row-wrapper\" *ngFor=\"let row of tableData; let i = index\">\n <div\n class=\"t-row\"\n [ngClass]=\"{ 't-row-hover': config.cellHover, 'active-row': i === activeRowIndex }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n [ngClass]=\"{ 't-col-container-hover': config.cellHover }\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i]?.action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i]?.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i]?.type !== 'custom' && config.colConfig[i]?.type !== 'actions'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color ? config?.colConfig[i]?.style?.color : ''\n }\"\n [ngClass]=\"{'text-ellipsis': !!config?.colConfig[i]?.style?.textEllipsis}\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i]?.type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n <!-- <ng-template > -->\n <mis-actions-cell\n *ngIf=\"config.colConfig[i]?.type === 'actions'\"\n [data]=\"col\"\n [actionItems]=\"config.colConfig[i]?.actionItems || []\"\n [actionType]=\"config.colConfig[i]?.actionType || 'inline'\"\n [dropdownIcon]=\"config.colConfig[i]?.dropdownIcon || ''\"\n [style]=\"getActionsCellStyle(config.colConfig[i]?.style)\"\n (actionClick)=\"onActionClick($event)\"\n [submenuAlign]=\"config.colConfig[i]?.submenuAlign\"\n ></mis-actions-cell>\n <!-- </ng-template> -->\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n Loading...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n No Data Available...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"config?.paginationConfig && (tableLength >= config.paginationConfig.rowsPerPage || config.paginationConfig?.selectedPage !== 1)\"\n id=\"pagination-container\"\n >\n <p id=\"pagination-text\">\n Showing\n {{ (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + tableLength\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <!-- Page numbers (only show if disablePageJumping is false) -->\n <div *ngIf=\"!config.paginationConfig?.disablePageJumping\">\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == config.paginationConfig?.selectedPage }\"\n class=\"page\"\n >{{ pageNumber }}</span>\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div [ngStyle]=\"{ display: 'flex' }\">\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\"></span>\n </div> \n </span>\n </div>\n </div>\n \n <!-- Page indicator (only show if disablePageJumping is true) -->\n <div *ngIf=\"config.paginationConfig?.disablePageJumping\" class=\"page-indicator\">\n <span class=\"page-indicator-text\">{{ config.paginationConfig.selectedPage }} of {{ config.paginationConfig.noOfPages }}</span>\n </div>\n \n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage + 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n", styles: ["#main-container{font-family:Lato,sans-serif;position:relative}.no-scrollbar::-webkit-scrollbar{width:0}.scrollbar::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container{height:inherit;overflow-y:auto}.scroll-horizontally{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.sort-icon{display:flex;justify-content:center;align-items:center}.filter-icon{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row{height:auto;border-bottom:none}.loader ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#0937b2}.t-row{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#e7eefd}.active-row{background-color:#e6f6fd}.t-col-container{padding:0 16px;overflow-wrap:anywhere}.t-row-hover:hover{background-color:#0000}.t-col-container-hover:hover{background-color:#e6ebf7}.t-col-container-hover:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover{border-right:1px solid #e0e0e0}.t-col{display:flex;align-items:center;height:100%}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}#pagination-container{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container{display:flex;margin-right:32px}.page{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active{color:#0937b2;border:1px solid #0937b2}.sort-icon{display:inline-flex;align-items:center;margin-left:4px;cursor:pointer}.sort-icon img{width:16px;height:16px;transition:opacity .2s ease}.sort-icon img:hover{opacity:.8}\n"] }]
540
+ }], () => [{ type: i0.Renderer2 }], { filtersUpdated: [{
541
+ type: Output
542
+ }], filter: [{
543
+ type: ViewChild,
544
+ args: ["filter"]
545
+ }], colHeaders: [{
546
+ type: ViewChildren,
547
+ args: ["colHeaderRef"]
548
+ }], pageSelected: [{
549
+ type: Output
550
+ }], config: [{
551
+ type: Input,
552
+ args: ["tableConfig"]
553
+ }], subTableconfig: [{
554
+ type: Input
555
+ }], tableDataLoading: [{
556
+ type: Input
557
+ }], expandedIndex: [{
558
+ type: Input
559
+ }], tableData: [{
560
+ type: Input
561
+ }], subTableData: [{
562
+ type: Input
563
+ }], subTableDataLoading: [{
564
+ type: Input
565
+ }], table: [{
566
+ type: ViewChild,
567
+ args: ["table"]
568
+ }], sortChange: [{
569
+ type: Output
570
+ }] }); })();
571
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableComponent, { className: "TableComponent" }); })();
572
+
10
573
  class CustomTableCellDirective {
11
574
  set customComponent(value) {
12
575
  this.component = value;
@@ -49,12 +612,12 @@ class CustomTableCellDirective {
49
612
 
50
613
  const _c0$2 = ["table"];
51
614
  const _c1$2 = (a0, a1) => ({ height: a0, width: a1 });
52
- const _c2$2 = (a0, a1, a2) => ({ height: a0, "border-top": a1, "border-bottom": a2 });
53
- const _c3$1 = (a0, a1, a2) => ({ width: a0, cursor: a1, "justify-content": a2 });
54
- const _c4$1 = a0 => ({ backgroundColor: a0 });
55
- const _c5$1 = a0 => ({ width: a0 });
56
- const _c6$1 = (a0, a1) => ({ width: "100%", cursor: a0, "justify-content": a1 });
57
- const _c7$1 = a0 => ({ color: a0 });
615
+ const _c2$1 = (a0, a1, a2) => ({ height: a0, "border-top": a1, "border-bottom": a2 });
616
+ const _c3 = (a0, a1, a2) => ({ width: a0, cursor: a1, "justify-content": a2 });
617
+ const _c4 = a0 => ({ backgroundColor: a0 });
618
+ const _c5 = a0 => ({ width: a0 });
619
+ const _c6 = (a0, a1) => ({ width: "100%", cursor: a0, "justify-content": a1 });
620
+ const _c7 = a0 => ({ color: a0 });
58
621
  function SubTableComponent_div_3_div_1_p_1_Template(rf, ctx) { if (rf & 1) {
59
622
  i0.ɵɵelementStart(0, "p", 11);
60
623
  i0.ɵɵtext(1);
@@ -80,7 +643,7 @@ function SubTableComponent_div_3_div_1_Template(rf, ctx) { if (rf & 1) {
80
643
  } if (rf & 2) {
81
644
  const colHeader_r2 = ctx.$implicit;
82
645
  i0.ɵɵstyleMap(colHeader_r2 == null ? null : colHeader_r2.style);
83
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(5, _c3$1, (colHeader_r2 == null ? null : colHeader_r2.style == null ? null : colHeader_r2.style.width) || "", colHeader_r2.action ? "pointer" : "default", (colHeader_r2 == null ? null : colHeader_r2.style == null ? null : colHeader_r2.style.justifyContent) ? colHeader_r2 == null ? null : colHeader_r2.style == null ? null : colHeader_r2.style.justifyContent : colHeader_r2.type === "number" ? "flex-end" : "space-between"));
646
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(5, _c3, (colHeader_r2 == null ? null : colHeader_r2.style == null ? null : colHeader_r2.style.width) || "", colHeader_r2.action ? "pointer" : "default", (colHeader_r2 == null ? null : colHeader_r2.style == null ? null : colHeader_r2.style.justifyContent) ? colHeader_r2 == null ? null : colHeader_r2.style == null ? null : colHeader_r2.style.justifyContent : colHeader_r2.type === "number" ? "flex-end" : "space-between"));
84
647
  i0.ɵɵadvance();
85
648
  i0.ɵɵproperty("ngIf", (colHeader_r2 == null ? null : colHeader_r2.type) !== "custom");
86
649
  i0.ɵɵadvance();
@@ -92,7 +655,7 @@ function SubTableComponent_div_3_Template(rf, ctx) { if (rf & 1) {
92
655
  i0.ɵɵelementEnd();
93
656
  } if (rf & 2) {
94
657
  const ctx_r2 = i0.ɵɵnextContext();
95
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(2, _c2$2, ctx_r2.getColHeadersRowHeight(), ctx_r2.getColHeadersRowBorderTop(), ctx_r2.getColHeadersRowBorderBottom()));
658
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(2, _c2$1, ctx_r2.getColHeadersRowHeight(), ctx_r2.getColHeadersRowBorderTop(), ctx_r2.getColHeadersRowBorderBottom()));
96
659
  i0.ɵɵadvance();
97
660
  i0.ɵɵproperty("ngForOf", ctx_r2.config == null ? null : ctx_r2.config.colHeaderConfig);
98
661
  } }
@@ -105,7 +668,7 @@ function SubTableComponent_div_6_div_2_p_2_Template(rf, ctx) { if (rf & 1) {
105
668
  const col_r6 = ctx_r7.$implicit;
106
669
  const i_r7 = ctx_r7.index;
107
670
  const ctx_r2 = i0.ɵɵnextContext(2);
108
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c7$1, (ctx_r2.config == null ? null : ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.color) ? ctx_r2.config == null ? null : ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.color : ""));
671
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c7, (ctx_r2.config == null ? null : ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.color) ? ctx_r2.config == null ? null : ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.color : ""));
109
672
  i0.ɵɵadvance();
110
673
  i0.ɵɵtextInterpolate1(" ", col_r6, " ");
111
674
  } }
@@ -129,10 +692,10 @@ function SubTableComponent_div_6_div_2_Template(rf, ctx) { if (rf & 1) {
129
692
  } if (rf & 2) {
130
693
  const i_r7 = ctx.index;
131
694
  const ctx_r2 = i0.ɵɵnextContext(2);
132
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(6, _c5$1, (ctx_r2.config == null ? null : ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.width) || (ctx_r2.config == null ? null : ctx_r2.config.colHeaderConfig[i_r7] == null ? null : ctx_r2.config.colHeaderConfig[i_r7].style == null ? null : ctx_r2.config.colHeaderConfig[i_r7].style.width) || ""));
695
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(6, _c5, (ctx_r2.config == null ? null : ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.width) || (ctx_r2.config == null ? null : ctx_r2.config.colHeaderConfig[i_r7] == null ? null : ctx_r2.config.colHeaderConfig[i_r7].style == null ? null : ctx_r2.config.colHeaderConfig[i_r7].style.width) || ""));
133
696
  i0.ɵɵadvance();
134
697
  i0.ɵɵstyleMap(ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style);
135
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(8, _c6$1, ctx_r2.config.colConfig[i_r7].action ? "pointer" : "default", (ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.justifyContent) ? ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.justifyContent : ctx_r2.config.colConfig[i_r7].type === "number" ? "flex-end" : "space-between"));
698
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(8, _c6, ctx_r2.config.colConfig[i_r7].action ? "pointer" : "default", (ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.justifyContent) ? ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style == null ? null : ctx_r2.config.colConfig[i_r7].style.justifyContent : ctx_r2.config.colConfig[i_r7].type === "number" ? "flex-end" : "space-between"));
136
699
  i0.ɵɵadvance();
137
700
  i0.ɵɵproperty("ngIf", ctx_r2.config.colConfig[i_r7].type !== "custom");
138
701
  i0.ɵɵadvance();
@@ -145,7 +708,7 @@ function SubTableComponent_div_6_Template(rf, ctx) { if (rf & 1) {
145
708
  } if (rf & 2) {
146
709
  const row_r9 = ctx.$implicit;
147
710
  const i_r10 = ctx.index;
148
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c4$1, i_r10 % 2 === 0 ? "#FAFAFA" : null));
711
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c4, i_r10 % 2 === 0 ? "#FAFAFA" : null));
149
712
  i0.ɵɵadvance(2);
150
713
  i0.ɵɵproperty("ngForOf", row_r9);
151
714
  } }
@@ -236,7 +799,7 @@ class SubTableComponent {
236
799
 
237
800
  const _c0$1 = ["mainContainer"];
238
801
  const _c1$1 = () => ({ "margin": "16px 0px" });
239
- const _c2$1 = () => ({ "margin-right": "8px" });
802
+ const _c2 = () => ({ "margin-right": "8px" });
240
803
  function TableFilterComponent_div_8_Template(rf, ctx) { if (rf & 1) {
241
804
  const _r2 = i0.ɵɵgetCurrentView();
242
805
  i0.ɵɵelementStart(0, "div")(1, "div", 15)(2, "mis-checkbox", 16);
@@ -389,7 +952,7 @@ class TableFilterComponent {
389
952
  i0.ɵɵadvance();
390
953
  i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(7, _c1$1));
391
954
  i0.ɵɵadvance(2);
392
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(8, _c2$1));
955
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(8, _c2));
393
956
  } }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgStyle, i2$1.CheckboxComponent], styles: ["#main-container[_ngcontent-%COMP%]{position:absolute;background:#fff;z-index:2;right:calc(50% - 128px);width:256px;padding:16px;font-family:Lato,sans-serif;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:8px}[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px}[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4}#search-bar-container[_ngcontent-%COMP%]{width:100%;position:relative;margin-bottom:8px}input[_ngcontent-%COMP%]{width:100%;padding:12px 12px 12px 42px;border:solid 1px black;border-radius:4px;height:48px;box-shadow:none;outline:none;font-style:normal;font-weight:400;font-size:15px;line-height:20px;letter-spacing:.1px;color:#181f33}input[_ngcontent-%COMP%]:focus{border:solid 1px #0937b2}#search-icon[_ngcontent-%COMP%]{position:absolute;top:15px;left:12px}.filters-sub-container[_ngcontent-%COMP%]{max-height:144px;overflow-y:auto}.filter[_ngcontent-%COMP%]{height:36px;display:flex;justify-content:flex-start;align-items:center}.filter-text[_ngcontent-%COMP%]{font-size:14px;line-height:20px;padding-left:8px;letter-spacing:.2px;color:#181f33;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#no-results-container[_ngcontent-%COMP%]{height:36px;display:flex;justify-content:center;align-items:center}.separator[_ngcontent-%COMP%]{border:1px solid #e0e0e0}#buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}button[_ngcontent-%COMP%]{width:calc(50% - 4px);border:none;box-shadow:none;outline:none;font-size:16px;line-height:24px;text-align:center;letter-spacing:.2px;padding:10px 30px;background:none;border-radius:8px}#apply-btn[_ngcontent-%COMP%]{background:#0937b2;color:#fff}#reset-btn[_ngcontent-%COMP%]{background:#fff;color:#0937b2}"] }); }
394
957
  }
395
958
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableFilterComponent, [{
@@ -544,521 +1107,289 @@ class SortIconsDirective {
544
1107
  }]
545
1108
  }], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], null); })();
546
1109
 
547
- const _c0 = ["filter"];
548
- const _c1 = ["table"];
549
- const _c2 = ["colHeaderRef"];
550
- const _c3 = (a0, a1, a2) => ({ height: a0, width: a1, "overflow-x": a2 });
551
- const _c4 = (a0, a1, a2) => ({ "no-scrollbar": a0, scrollbar: a1, "scroll-horizontally": a2 });
552
- const _c5 = (a0, a1, a2) => ({ width: a0, cursor: a1, "justify-content": a2 });
553
- const _c6 = (a0, a1) => ({ "t-row-hover": a0, "active-row": a1 });
554
- const _c7 = a0 => ({ "min-height": a0 });
555
- const _c8 = a0 => ({ width: a0 });
556
- const _c9 = a0 => ({ "t-col-container-hover": a0 });
557
- const _c10 = (a0, a1) => ({ width: "100%", cursor: a0, "justify-content": a1 });
558
- const _c11 = a0 => ({ color: a0 });
559
- const _c12 = a0 => ({ "text-ellipsis": a0 });
560
- const _c13 = () => ({ display: "flex", justifyContent: "center", alignItems: "center", padding: "16px" });
561
- const _c14 = a0 => ({ "page-active": a0 });
562
- const _c15 = () => ({ display: "flex" });
563
- const _c16 = () => ({ "margin-right": "4px" });
564
- function TableComponent_mis_table_filter_1_Template(rf, ctx) { if (rf & 1) {
565
- const _r1 = i0.ɵɵgetCurrentView();
566
- i0.ɵɵelementStart(0, "mis-table-filter", 11, 1);
567
- i0.ɵɵlistener("filtersApplied", function TableComponent_mis_table_filter_1_Template_mis_table_filter_filtersApplied_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.updateAppliedFilters($event)); });
568
- i0.ɵɵelementEnd();
1110
+ const _c0 = a0 => ({ "disabled": a0 });
1111
+ const _c1 = (a0, a1) => ({ "left": a0, "right": a1 });
1112
+ function ActionsCellComponent_div_1_div_1_img_1_Template(rf, ctx) { if (rf & 1) {
1113
+ i0.ɵɵelement(0, "img", 8);
569
1114
  } if (rf & 2) {
570
- const ctx_r1 = i0.ɵɵnextContext();
571
- i0.ɵɵproperty("containerStyles", ctx_r1.filterContainerStyles)("filtersData", ctx_r1.filterData);
1115
+ const item_r2 = i0.ɵɵnextContext().$implicit;
1116
+ i0.ɵɵproperty("src", item_r2.icon, i0.ɵɵsanitizeUrl)("alt", item_r2.label);
572
1117
  } }
573
- function TableComponent_div_5_p_2_Template(rf, ctx) { if (rf & 1) {
574
- i0.ɵɵelementStart(0, "p", 17);
575
- i0.ɵɵtext(1);
1118
+ function ActionsCellComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
1119
+ const _r1 = i0.ɵɵgetCurrentView();
1120
+ i0.ɵɵelementStart(0, "div", 6);
1121
+ i0.ɵɵlistener("click", function ActionsCellComponent_div_1_div_1_Template_div_click_0_listener($event) { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onActionClick(item_r2, $event)); });
1122
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_img_1_Template, 1, 2, "img", 7);
576
1123
  i0.ɵɵelementEnd();
577
1124
  } if (rf & 2) {
578
- const colHeader_r4 = i0.ɵɵnextContext().$implicit;
579
- i0.ɵɵadvance();
580
- i0.ɵɵtextInterpolate1(" ", (colHeader_r4 == null ? null : colHeader_r4.data) || " ", " ");
581
- } }
582
- function TableComponent_div_5_span_3_span_1_Template(rf, ctx) { if (rf & 1) {
583
- i0.ɵɵelement(0, "span", 22);
584
- } }
585
- function TableComponent_div_5_span_3_Template(rf, ctx) { if (rf & 1) {
586
- const _r5 = i0.ɵɵgetCurrentView();
587
- i0.ɵɵelementStart(0, "span", 18);
588
- i0.ɵɵlistener("click", function TableComponent_div_5_span_3_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const colHeader_r4 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.filterData = colHeader_r4.filters; ctx_r1.toggleFilter(colHeader_r4.data); return i0.ɵɵresetView($event.stopPropagation()); });
589
- i0.ɵɵtemplate(1, TableComponent_div_5_span_3_span_1_Template, 1, 0, "span", 19);
590
- i0.ɵɵnamespaceSVG();
591
- i0.ɵɵelementStart(2, "svg", 20);
592
- i0.ɵɵelement(3, "path", 21);
593
- i0.ɵɵelementEnd()();
594
- } if (rf & 2) {
595
- const colHeader_r4 = i0.ɵɵnextContext().$implicit;
596
- const ctx_r1 = i0.ɵɵnextContext();
1125
+ const item_r2 = ctx.$implicit;
1126
+ const ctx_r2 = i0.ɵɵnextContext(2);
1127
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, item_r2.disabled))("title", item_r2.label);
597
1128
  i0.ɵɵadvance();
598
- i0.ɵɵproperty("ngIf", (ctx_r1.appliedFilters[colHeader_r4.data] == null ? null : ctx_r1.appliedFilters[colHeader_r4.data].length) > 0);
1129
+ i0.ɵɵproperty("ngIf", ctx_r2.isSvgFile(item_r2.icon));
599
1130
  } }
600
- function TableComponent_div_5_span_4_Template(rf, ctx) { if (rf & 1) {
601
- const _r6 = i0.ɵɵgetCurrentView();
602
- i0.ɵɵelementStart(0, "span", 23);
603
- i0.ɵɵlistener("sortChange", function TableComponent_div_5_span_4_Template_span_sortChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onSortChange($event)); });
1131
+ function ActionsCellComponent_div_1_Template(rf, ctx) { if (rf & 1) {
1132
+ i0.ɵɵelementStart(0, "div", 4);
1133
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_Template, 2, 5, "div", 5);
604
1134
  i0.ɵɵelementEnd();
605
1135
  } if (rf & 2) {
606
- const colHeader_r4 = i0.ɵɵnextContext().$implicit;
607
- const ctx_r1 = i0.ɵɵnextContext();
608
- i0.ɵɵproperty("column", colHeader_r4)("activeSort", ctx_r1.currentSort)("activeSorts", ctx_r1.multiColumnSort)("multiColumnSort", ctx_r1.config.multiColumnSort);
609
- } }
610
- function TableComponent_div_5_5_ng_template_0_Template(rf, ctx) { }
611
- function TableComponent_div_5_5_Template(rf, ctx) { if (rf & 1) {
612
- i0.ɵɵtemplate(0, TableComponent_div_5_5_ng_template_0_Template, 0, 0, "ng-template", 24);
613
- } if (rf & 2) {
614
- const colHeader_r4 = i0.ɵɵnextContext().$implicit;
615
- i0.ɵɵproperty("customComponent", colHeader_r4 == null ? null : colHeader_r4.componentRef)("data", colHeader_r4.data);
1136
+ const ctx_r2 = i0.ɵɵnextContext();
1137
+ i0.ɵɵadvance();
1138
+ i0.ɵɵproperty("ngForOf", ctx_r2.actionItems)("ngForTrackBy", ctx_r2.trackByAction);
616
1139
  } }
617
- function TableComponent_div_5_Template(rf, ctx) { if (rf & 1) {
618
- const _r3 = i0.ɵɵgetCurrentView();
619
- i0.ɵɵelementStart(0, "div", 12, 2);
620
- i0.ɵɵlistener("click", function TableComponent_div_5_Template_div_click_0_listener() { const colHeader_r4 = i0.ɵɵrestoreView(_r3).$implicit; return i0.ɵɵresetView((colHeader_r4 == null ? null : colHeader_r4.action) ? colHeader_r4 == null ? null : colHeader_r4.action(colHeader_r4) : null); });
621
- i0.ɵɵtemplate(2, TableComponent_div_5_p_2_Template, 2, 1, "p", 13)(3, TableComponent_div_5_span_3_Template, 4, 1, "span", 14)(4, TableComponent_div_5_span_4_Template, 1, 4, "span", 15)(5, TableComponent_div_5_5_Template, 1, 2, null, 16);
1140
+ function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
1141
+ i0.ɵɵelementStart(0, "span", 26);
1142
+ i0.ɵɵelement(1, "img", 27);
622
1143
  i0.ɵɵelementEnd();
623
1144
  } if (rf & 2) {
624
- const colHeader_r4 = ctx.$implicit;
625
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(5, _c5, (colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.width) || "", colHeader_r4.action ? "pointer" : "default", (colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.justifyContent) ? colHeader_r4 == null ? null : colHeader_r4.style == null ? null : colHeader_r4.style.justifyContent : colHeader_r4.type === "number" ? "flex-end" : "space-between"));
626
- i0.ɵɵadvance(2);
627
- i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) !== "custom");
628
- i0.ɵɵadvance();
629
- i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) !== "custom" && (colHeader_r4 == null ? null : colHeader_r4.filters) && (colHeader_r4 == null ? null : colHeader_r4.filters == null ? null : colHeader_r4.filters.length) > 0);
630
- i0.ɵɵadvance();
631
- i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.isSortable) && !(colHeader_r4 == null ? null : colHeader_r4.filters));
1145
+ const item_r6 = i0.ɵɵnextContext(2).$implicit;
632
1146
  i0.ɵɵadvance();
633
- i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) === "custom");
1147
+ i0.ɵɵproperty("src", item_r6.icon, i0.ɵɵsanitizeUrl);
634
1148
  } }
635
- function TableComponent_div_7_div_2_p_2_Template(rf, ctx) { if (rf & 1) {
636
- i0.ɵɵelementStart(0, "p", 32);
637
- i0.ɵɵtext(1);
1149
+ function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_span_1_Template(rf, ctx) { if (rf & 1) {
1150
+ i0.ɵɵelementStart(0, "span", 26);
1151
+ i0.ɵɵelement(1, "img", 27);
638
1152
  i0.ɵɵelementEnd();
639
1153
  } if (rf & 2) {
640
- const ctx_r12 = i0.ɵɵnextContext();
641
- const col_r11 = ctx_r12.$implicit;
642
- const i_r12 = ctx_r12.index;
643
- const ctx_r1 = i0.ɵɵnextContext(2);
644
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(3, _c11, (ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.color) ? ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.color : ""))("ngClass", i0.ɵɵpureFunction1(5, _c12, !!(ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.textEllipsis)));
1154
+ const child_r8 = i0.ɵɵnextContext().$implicit;
645
1155
  i0.ɵɵadvance();
646
- i0.ɵɵtextInterpolate1(" ", col_r11, " ");
647
- } }
648
- function TableComponent_div_7_div_2_3_ng_template_0_Template(rf, ctx) { }
649
- function TableComponent_div_7_div_2_3_Template(rf, ctx) { if (rf & 1) {
650
- i0.ɵɵtemplate(0, TableComponent_div_7_div_2_3_ng_template_0_Template, 0, 0, "ng-template", 24);
651
- } if (rf & 2) {
652
- const ctx_r12 = i0.ɵɵnextContext();
653
- const col_r11 = ctx_r12.$implicit;
654
- const i_r12 = ctx_r12.index;
655
- const ctx_r1 = i0.ɵɵnextContext(2);
656
- i0.ɵɵproperty("customComponent", ctx_r1.config.colConfig[i_r12].componentRef)("data", col_r11);
1156
+ i0.ɵɵproperty("src", child_r8.icon, i0.ɵɵsanitizeUrl);
657
1157
  } }
658
- function TableComponent_div_7_div_2_Template(rf, ctx) { if (rf & 1) {
659
- const _r9 = i0.ɵɵgetCurrentView();
660
- i0.ɵɵelementStart(0, "div", 29);
661
- i0.ɵɵlistener("click", function TableComponent_div_7_div_2_Template_div_click_0_listener() { const ctx_r9 = i0.ɵɵrestoreView(_r9); const col_r11 = ctx_r9.$implicit; const i_r12 = ctx_r9.index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].action) ? ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].action(col_r11) : null); });
662
- i0.ɵɵelementStart(1, "div", 30);
663
- i0.ɵɵtemplate(2, TableComponent_div_7_div_2_p_2_Template, 2, 7, "p", 31)(3, TableComponent_div_7_div_2_3_Template, 1, 2, null, 16);
1158
+ function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
1159
+ const _r7 = i0.ɵɵgetCurrentView();
1160
+ i0.ɵɵelementStart(0, "div", 18);
1161
+ i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template_div_click_0_listener() { const child_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.handleAction(child_r8)); });
1162
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_span_1_Template, 2, 1, "span", 20);
1163
+ i0.ɵɵelementStart(2, "span", 21);
1164
+ i0.ɵɵtext(3);
664
1165
  i0.ɵɵelementEnd()();
665
1166
  } if (rf & 2) {
666
- const i_r12 = ctx.index;
667
- const ctx_r1 = i0.ɵɵnextContext(2);
668
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(7, _c8, (ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.width) || (ctx_r1.config == null ? null : ctx_r1.config.colHeaderConfig[i_r12] == null ? null : ctx_r1.config.colHeaderConfig[i_r12].style == null ? null : ctx_r1.config.colHeaderConfig[i_r12].style.width) || ""))("ngClass", i0.ɵɵpureFunction1(9, _c9, ctx_r1.config.cellHover));
1167
+ const child_r8 = ctx.$implicit;
1168
+ const ctx_r2 = i0.ɵɵnextContext(6);
669
1169
  i0.ɵɵadvance();
670
- i0.ɵɵstyleMap(ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style);
671
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(11, _c10, (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].action) ? "pointer" : "default", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.justifyContent) ? ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style == null ? null : ctx_r1.config.colConfig[i_r12].style.justifyContent : (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) === "number" ? "flex-end" : "space-between"));
672
- i0.ɵɵadvance();
673
- i0.ɵɵproperty("ngIf", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) !== "custom");
674
- i0.ɵɵadvance();
675
- i0.ɵɵproperty("ngIf", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) === "custom");
1170
+ i0.ɵɵproperty("ngIf", child_r8.icon && ctx_r2.isSvgFile(child_r8.icon));
1171
+ i0.ɵɵadvance(2);
1172
+ i0.ɵɵtextInterpolate(child_r8.label);
676
1173
  } }
677
- function TableComponent_div_7_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
678
- i0.ɵɵelementContainerStart(0);
679
- i0.ɵɵelementStart(1, "div", 34);
680
- i0.ɵɵtext(2, " Loading... ");
1174
+ function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_Template(rf, ctx) { if (rf & 1) {
1175
+ i0.ɵɵelementStart(0, "div", 28);
1176
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template, 4, 2, "div", 17);
681
1177
  i0.ɵɵelementEnd();
682
- i0.ɵɵelementContainerEnd();
683
1178
  } if (rf & 2) {
1179
+ const item_r6 = i0.ɵɵnextContext(2).$implicit;
1180
+ const ctx_r2 = i0.ɵɵnextContext(3);
1181
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(2, _c1, ctx_r2.submenuAlign === "left", ctx_r2.submenuAlign !== "left"));
684
1182
  i0.ɵɵadvance();
685
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c13));
1183
+ i0.ɵɵproperty("ngForOf", item_r6.children);
686
1184
  } }
687
- function TableComponent_div_7_div_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {
1185
+ function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
688
1186
  i0.ɵɵelementContainerStart(0);
689
- i0.ɵɵelementStart(1, "div", 34);
690
- i0.ɵɵtext(2, " No Data Available... ");
1187
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_span_1_Template, 2, 1, "span", 20);
1188
+ i0.ɵɵelementStart(2, "span", 21);
1189
+ i0.ɵɵtext(3);
691
1190
  i0.ɵɵelementEnd();
1191
+ i0.ɵɵelementStart(4, "span", 22);
1192
+ i0.ɵɵnamespaceSVG();
1193
+ i0.ɵɵelementStart(5, "svg", 23);
1194
+ i0.ɵɵelement(6, "path", 24);
1195
+ i0.ɵɵelementEnd()();
1196
+ i0.ɵɵtemplate(7, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_Template, 2, 5, "div", 25);
692
1197
  i0.ɵɵelementContainerEnd();
693
1198
  } if (rf & 2) {
1199
+ const item_r6 = i0.ɵɵnextContext().$implicit;
1200
+ const ctx_r2 = i0.ɵɵnextContext(3);
694
1201
  i0.ɵɵadvance();
695
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c13));
696
- } }
697
- function TableComponent_div_7_div_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {
698
- i0.ɵɵelementContainerStart(0);
699
- i0.ɵɵelement(1, "sub-table", 35);
700
- i0.ɵɵelementContainerEnd();
701
- } if (rf & 2) {
702
- const ctx_r1 = i0.ɵɵnextContext(3);
703
- i0.ɵɵadvance();
704
- i0.ɵɵproperty("config", ctx_r1.subTableconfig)("tableData", ctx_r1.subTableData);
705
- } }
706
- function TableComponent_div_7_div_3_Template(rf, ctx) { if (rf & 1) {
707
- i0.ɵɵelementStart(0, "div", 33);
708
- i0.ɵɵtemplate(1, TableComponent_div_7_div_3_ng_container_1_Template, 3, 2, "ng-container", 16)(2, TableComponent_div_7_div_3_ng_container_2_Template, 3, 2, "ng-container", 16)(3, TableComponent_div_7_div_3_ng_container_3_Template, 2, 2, "ng-container", 16);
709
- i0.ɵɵelementEnd();
710
- } if (rf & 2) {
711
- const ctx_r1 = i0.ɵɵnextContext(2);
712
- i0.ɵɵadvance();
713
- i0.ɵɵproperty("ngIf", ctx_r1.subTableDataLoading);
714
- i0.ɵɵadvance();
715
- i0.ɵɵproperty("ngIf", !ctx_r1.subTableDataLoading && ctx_r1.subTableData.length === 0);
716
- i0.ɵɵadvance();
717
- i0.ɵɵproperty("ngIf", !ctx_r1.subTableDataLoading && ctx_r1.subTableData.length > 0);
1202
+ i0.ɵɵproperty("ngIf", item_r6.icon && ctx_r2.isSvgFile(item_r6.icon));
1203
+ i0.ɵɵadvance(2);
1204
+ i0.ɵɵtextInterpolate(item_r6.label);
1205
+ i0.ɵɵadvance(4);
1206
+ i0.ɵɵproperty("ngIf", item_r6.showSubmenu);
718
1207
  } }
719
- function TableComponent_div_7_Template(rf, ctx) { if (rf & 1) {
720
- const _r7 = i0.ɵɵgetCurrentView();
721
- i0.ɵɵelementStart(0, "div", 25)(1, "div", 26);
722
- i0.ɵɵlistener("click", function TableComponent_div_7_Template_div_click_1_listener() { const i_r8 = i0.ɵɵrestoreView(_r7).index; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectRow(i_r8)); });
723
- i0.ɵɵtemplate(2, TableComponent_div_7_div_2_Template, 4, 14, "div", 27);
724
- i0.ɵɵelementEnd();
725
- i0.ɵɵtemplate(3, TableComponent_div_7_div_3_Template, 4, 3, "div", 28);
1208
+ function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template(rf, ctx) { if (rf & 1) {
1209
+ i0.ɵɵelementStart(0, "span", 26);
1210
+ i0.ɵɵelement(1, "img", 27);
726
1211
  i0.ɵɵelementEnd();
727
1212
  } if (rf & 2) {
728
- const row_r14 = ctx.$implicit;
729
- const i_r8 = ctx.index;
730
- const ctx_r1 = i0.ɵɵnextContext();
731
- i0.ɵɵadvance();
732
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(4, _c6, ctx_r1.config.cellHover, i_r8 === ctx_r1.activeRowIndex))("ngStyle", i0.ɵɵpureFunction1(7, _c7, (ctx_r1.config == null ? null : ctx_r1.config.rowConfig == null ? null : ctx_r1.config.rowConfig.height) ? ctx_r1.config.rowConfig.height : "44px"));
1213
+ const item_r6 = i0.ɵɵnextContext(2).$implicit;
733
1214
  i0.ɵɵadvance();
734
- i0.ɵɵproperty("ngForOf", row_r14);
735
- i0.ɵɵadvance();
736
- i0.ɵɵproperty("ngIf", (ctx_r1.config == null ? null : ctx_r1.config.canExpand) && ctx_r1.expandedIndex === i_r8);
1215
+ i0.ɵɵproperty("src", item_r6.icon, i0.ɵɵsanitizeUrl);
737
1216
  } }
738
- function TableComponent_div_8_div_7_span_1_Template(rf, ctx) { if (rf & 1) {
739
- const _r16 = i0.ɵɵgetCurrentView();
740
- i0.ɵɵelementStart(0, "span", 46);
741
- i0.ɵɵlistener("click", function TableComponent_div_8_div_7_span_1_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r16); const pageNumber_r17 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.updateSelectedPage(pageNumber_r17)); });
742
- i0.ɵɵtext(1);
1217
+ function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1218
+ i0.ɵɵtemplate(0, ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template, 2, 1, "span", 20);
1219
+ i0.ɵɵelementStart(1, "span", 21);
1220
+ i0.ɵɵtext(2);
743
1221
  i0.ɵɵelementEnd();
744
- } if (rf & 2) {
745
- const pageNumber_r17 = i0.ɵɵnextContext().$implicit;
746
- const ctx_r1 = i0.ɵɵnextContext(2);
747
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c14, pageNumber_r17 == (ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage)));
748
- i0.ɵɵadvance();
749
- i0.ɵɵtextInterpolate(pageNumber_r17);
1222
+ } if (rf & 2) {
1223
+ const item_r6 = i0.ɵɵnextContext().$implicit;
1224
+ const ctx_r2 = i0.ɵɵnextContext(3);
1225
+ i0.ɵɵproperty("ngIf", item_r6.icon && ctx_r2.isSvgFile(item_r6.icon));
1226
+ i0.ɵɵadvance(2);
1227
+ i0.ɵɵtextInterpolate(item_r6.label);
750
1228
  } }
751
- function TableComponent_div_8_div_7_span_2_Template(rf, ctx) { if (rf & 1) {
752
- i0.ɵɵelementStart(0, "span", 47)(1, "div", 34);
753
- i0.ɵɵelement(2, "span", 48)(3, "span", 48)(4, "span", 49);
754
- i0.ɵɵelementEnd()();
1229
+ function ActionsCellComponent_div_2_div_6_div_1_Template(rf, ctx) { if (rf & 1) {
1230
+ const _r5 = i0.ɵɵgetCurrentView();
1231
+ i0.ɵɵelementStart(0, "div", 18);
1232
+ i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_Template_div_click_0_listener($event) { const item_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onDropdownItemClick(item_r6, $event)); });
1233
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_Template, 8, 3, "ng-container", 19)(2, ActionsCellComponent_div_2_div_6_div_1_ng_template_2_Template, 3, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
1234
+ i0.ɵɵelementEnd();
755
1235
  } if (rf & 2) {
1236
+ const item_r6 = ctx.$implicit;
1237
+ const noChildren_r9 = i0.ɵɵreference(3);
756
1238
  i0.ɵɵadvance();
757
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(3, _c15));
758
- i0.ɵɵadvance();
759
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c16));
760
- i0.ɵɵadvance();
761
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(5, _c16));
1239
+ i0.ɵɵproperty("ngIf", item_r6.children == null ? null : item_r6.children.length)("ngIfElse", noChildren_r9);
762
1240
  } }
763
- function TableComponent_div_8_div_7_Template(rf, ctx) { if (rf & 1) {
764
- i0.ɵɵelementStart(0, "div");
765
- i0.ɵɵtemplate(1, TableComponent_div_8_div_7_span_1_Template, 2, 4, "span", 44)(2, TableComponent_div_8_div_7_span_2_Template, 5, 6, "span", 45);
1241
+ function ActionsCellComponent_div_2_div_6_Template(rf, ctx) { if (rf & 1) {
1242
+ i0.ɵɵelementStart(0, "div", 16);
1243
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_Template, 4, 2, "div", 17);
766
1244
  i0.ɵɵelementEnd();
767
1245
  } if (rf & 2) {
768
- const pageNumber_r17 = ctx.$implicit;
769
- i0.ɵɵadvance();
770
- i0.ɵɵproperty("ngIf", pageNumber_r17 != 0);
1246
+ const ctx_r2 = i0.ɵɵnextContext(2);
771
1247
  i0.ɵɵadvance();
772
- i0.ɵɵproperty("ngIf", pageNumber_r17 == 0);
1248
+ i0.ɵɵproperty("ngForOf", ctx_r2.actionItems);
773
1249
  } }
774
- function TableComponent_div_8_Template(rf, ctx) { if (rf & 1) {
775
- const _r15 = i0.ɵɵgetCurrentView();
776
- i0.ɵɵelementStart(0, "div", 36)(1, "p", 37);
777
- i0.ɵɵtext(2);
778
- i0.ɵɵelementEnd();
779
- i0.ɵɵelementStart(3, "div", 38)(4, "span", 39);
780
- i0.ɵɵlistener("click", function TableComponent_div_8_Template_span_click_4_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.updateSelectedPage((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) - 1)); });
1250
+ function ActionsCellComponent_div_2_Template(rf, ctx) { if (rf & 1) {
1251
+ const _r4 = i0.ɵɵgetCurrentView();
1252
+ i0.ɵɵelementStart(0, "div", 9)(1, "div", 10);
1253
+ i0.ɵɵlistener("click", function ActionsCellComponent_div_2_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleDropdown($event)); });
781
1254
  i0.ɵɵnamespaceSVG();
782
- i0.ɵɵelementStart(5, "svg", 40);
783
- i0.ɵɵelement(6, "path", 41);
1255
+ i0.ɵɵelementStart(2, "svg", 11);
1256
+ i0.ɵɵelement(3, "circle", 12)(4, "circle", 13)(5, "circle", 14);
784
1257
  i0.ɵɵelementEnd()();
785
- i0.ɵɵtemplate(7, TableComponent_div_8_div_7_Template, 3, 2, "div", 42);
786
- i0.ɵɵnamespaceHTML();
787
- i0.ɵɵelementStart(8, "span", 39);
788
- i0.ɵɵlistener("click", function TableComponent_div_8_Template_span_click_8_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.updateSelectedPage((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) + 1)); });
789
- i0.ɵɵnamespaceSVG();
790
- i0.ɵɵelementStart(9, "svg", 40);
791
- i0.ɵɵelement(10, "path", 43);
792
- i0.ɵɵelementEnd()()()();
1258
+ i0.ɵɵtemplate(6, ActionsCellComponent_div_2_div_6_Template, 2, 1, "div", 15);
1259
+ i0.ɵɵelementEnd();
793
1260
  } if (rf & 2) {
794
- const ctx_r1 = i0.ɵɵnextContext();
795
- i0.ɵɵadvance(2);
796
- i0.ɵɵtextInterpolate3(" Showing ", ((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) - 1) * ctx_r1.config.paginationConfig.rowsPerPage + 1, "-", ((ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage) - 1) * ctx_r1.config.paginationConfig.rowsPerPage + ctx_r1.tableLength, " of ", ctx_r1.config.paginationConfig.totalNoOfRows, " items ");
797
- i0.ɵɵadvance(5);
798
- i0.ɵɵproperty("ngForOf", ctx_r1.pages);
1261
+ const ctx_r2 = i0.ɵɵnextContext();
1262
+ i0.ɵɵadvance(6);
1263
+ i0.ɵɵproperty("ngIf", ctx_r2.isDropdownOpen);
799
1264
  } }
800
- class TableComponent {
801
- constructor(renderer) {
802
- this.renderer = renderer;
803
- // Initialize with -1 to indicate no row is colored at the beginning
804
- this.activeRowIndex = 0;
805
- // Filter related variables
806
- this.showFilter = false;
807
- this.filterName = "";
808
- this.filterData = [];
809
- this.filterContainerStyles = {};
810
- this.appliedFilters = {};
811
- this.filtersUpdated = new EventEmitter();
812
- // Pagination related variables
813
- this.pages = [];
814
- this.pageSelected = new EventEmitter();
815
- this.tableData = [];
816
- this.subTableData = [];
817
- // Sorting related properties
818
- this.currentSort = null;
819
- this.multiColumnSort = [];
820
- this.sortChange = new EventEmitter();
1265
+ class ActionsCellComponent {
1266
+ constructor() {
1267
+ this.actionItems = [];
1268
+ this.actionType = 'inline';
1269
+ this.dropdownIcon = '';
1270
+ this.submenuAlign = 'right';
1271
+ this._style = {};
1272
+ this.containerStyle = {};
1273
+ this.actionClick = new EventEmitter();
1274
+ this.isDropdownOpen = false;
1275
+ this.defaultDropdownIcon = `
1276
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
1277
+ <circle cx="8" cy="4" r="2" fill="#333"/>
1278
+ <circle cx="8" cy="8" r="2" fill="#333"/>
1279
+ <circle cx="8" cy="12" r="2" fill="#333"/>
1280
+ </svg>
1281
+ `;
821
1282
  }
822
- // Function to handle row click
823
- selectRow(index) {
824
- this.activeRowIndex = index; // Set the selected index to the clicked row's index
825
- !!this.config.rowConfig.action && this.config.rowConfig.action(index);
1283
+ set style(value) {
1284
+ this._style = value || {};
1285
+ this.processStyle();
826
1286
  }
827
- ngOnInit() {
828
- this.tableLength = !!this.tableData ? this.tableData.length : 0;
829
- this.initializeFilters();
830
- if (this.config.paginationConfig) {
831
- this.initializePagination();
832
- }
833
- if (this.config.canScrollHorizontally === undefined) {
834
- this.config.canScrollHorizontally = false;
835
- }
836
- document.addEventListener("click", event => {
837
- if (this.filter) {
838
- let isCheckBoxClicked = true;
839
- let targetElement = event.target;
840
- if (targetElement.className === "checkmark") {
841
- isCheckBoxClicked = true;
842
- this.showFilter = true;
843
- }
844
- let isClickInsideElement = this.filter.container.nativeElement.contains(event.target);
845
- if (!isClickInsideElement && !isCheckBoxClicked) {
846
- this.toggleFilter(this.filterName);
847
- }
848
- }
849
- });
1287
+ get style() {
1288
+ return this._style;
850
1289
  }
851
- ngAfterViewInit() {
852
- if (this.config.paginationConfig) {
853
- let height = this.config.height;
854
- this.renderer.setStyle(this.table.nativeElement, "height", height - 56 + "px");
855
- }
1290
+ ngOnInit() {
1291
+ console.log("ACTION ITEMS:", this.actionItems);
1292
+ console.log("ACTION TYPE:", this.actionType);
856
1293
  }
857
- ngOnChanges() {
858
- this.tableLength = !!this.tableData ? this.tableData.length : 0;
859
- this.activeRowIndex = this.config.activeRowIndex || 0;
1294
+ processStyle() {
1295
+ // Remove width from style to avoid conflicts with table column width
1296
+ const { width, ...restStyle } = this._style;
1297
+ this.containerStyle = restStyle;
860
1298
  }
861
- // Filter related functions
862
- initializeFilters() {
863
- for (let colHeader of this.config?.colHeaderConfig) {
864
- if (colHeader.filters) {
865
- let filters = [];
866
- for (let filter of colHeader.filters) {
867
- if (filter.checked) {
868
- filters.push({
869
- name: filter.name,
870
- value: filter.value
871
- });
872
- }
873
- }
874
- if (filters.length > 0)
875
- this.appliedFilters[colHeader.data] = filters;
876
- }
877
- }
1299
+ handleAction(item) {
1300
+ // You can customize this logic to emit an event or directly trigger something
1301
+ console.log('Action clicked:', item);
1302
+ // Example: If you're emitting it to parent
1303
+ // this.actionTriggered.emit(item);
878
1304
  }
879
- toggleFilter(filterName) {
880
- if (!this.showFilter) {
881
- this.filterName = filterName;
882
- this.showFilter = true;
883
- let offSet = 0;
884
- let colHeadersReversed = this.colHeaders.toArray().reverse();
885
- for (let header of colHeadersReversed) {
886
- if (header.nativeElement.innerText === filterName)
887
- break;
888
- offSet += header.nativeElement.offsetWidth;
889
- }
890
- this.filterContainerStyles = {
891
- top: "44px",
892
- right: offSet > 0 ? offSet - 116 + "px" : "12px"
893
- };
1305
+ onActionClick(item, event) {
1306
+ event.stopPropagation();
1307
+ if (item.disabled) {
1308
+ return;
894
1309
  }
895
- else {
896
- this.filterName = "";
897
- this.filterData = [];
898
- this.showFilter = false;
1310
+ console.log("Action clicked:", item.label, "Data:", this.data);
1311
+ if (item.action) {
1312
+ item.action(this.data);
899
1313
  }
1314
+ this.actionClick.emit({ item, data: this.data });
900
1315
  }
901
- updateAppliedFilters(appliedFilters) {
902
- if (appliedFilters.length == 0) {
903
- delete this.appliedFilters[this.filterName];
904
- }
905
- else {
906
- this.appliedFilters[this.filterName] = appliedFilters;
907
- }
908
- this.filtersUpdated.emit({ ...this.appliedFilters });
909
- this.toggleFilter(this.filterName);
1316
+ trackByAction(index, item) {
1317
+ return item.value;
910
1318
  }
911
- // Pagination related functions
912
- initializePagination() {
913
- if (this.config.paginationConfig) {
914
- let len = this.config.paginationConfig.noOfPages;
915
- if (len <= 7) {
916
- for (let i = 1; i <= len; i++) {
917
- this.pages.push(i);
918
- }
919
- }
920
- else {
921
- this.pages = [1, 2, 3, 4, 0, len];
922
- }
923
- }
1319
+ isSvgFile(iconPath) {
1320
+ if (!iconPath)
1321
+ return false;
1322
+ return iconPath.toLowerCase().includes('.svg') || iconPath.toLowerCase().includes('assets/icons/');
924
1323
  }
925
- updateSelectedPage(pageNumber) {
926
- if (pageNumber < 1 || pageNumber > this.config.paginationConfig.noOfPages)
927
- return;
928
- this.config.paginationConfig.selectedPage = pageNumber;
929
- let len = this.config.paginationConfig.noOfPages;
930
- if (len > 7) {
931
- if (pageNumber - 2 <= 1) {
932
- this.pages = [1, 2, 3, 4, 0, len];
933
- }
934
- else if (pageNumber - 2 > 1 && pageNumber + 2 < len) {
935
- this.pages = [1, 0, pageNumber - 1, pageNumber, pageNumber + 1, 0, len];
936
- }
937
- else if (pageNumber + 2 >= len) {
938
- this.pages = [1, 0, len - 3, len - 2, len - 1, len];
939
- }
1324
+ onDocumentClick() {
1325
+ if (this.isDropdownOpen) {
1326
+ this.isDropdownOpen = false;
940
1327
  }
941
- this.pageSelected.emit(this.config.paginationConfig?.selectedPage);
942
- }
943
- // Main container related functions
944
- getContainerHeight() {
945
- if (this.config?.height)
946
- return this.config.height;
947
- else
948
- return "";
949
- }
950
- getContainerWidth() {
951
- if (this.config?.width)
952
- return this.config.width;
953
- else
954
- return "";
955
1328
  }
956
- // Column Headers related functions
957
- getColHeadersRowStyles() {
958
- const { colHeadersRowConfig } = this.config;
959
- const minHeight = colHeadersRowConfig?.height || "44px";
960
- const borderTop = colHeadersRowConfig?.style?.borderTop || "";
961
- const borderBottom = colHeadersRowConfig?.style?.borderBottom || "1px solid #E0E0E0";
962
- const backgroundColor = colHeadersRowConfig?.style?.backgroundColor || "#FFFFFF";
963
- const fontSize = colHeadersRowConfig?.style?.fontSize || "14px";
964
- return {
965
- 'min-height': minHeight,
966
- 'border-top': borderTop,
967
- 'border-bottom': borderBottom,
968
- 'background-color': backgroundColor,
969
- 'font-size': fontSize
970
- };
1329
+ toggleDropdown(event) {
1330
+ event.stopPropagation();
1331
+ this.isDropdownOpen = !this.isDropdownOpen;
1332
+ // Close all submenus when opening/closing main menu
1333
+ this.actionItems.forEach((item) => item.showSubmenu = false);
971
1334
  }
972
- onSortChange(sortState) {
973
- this.currentSort = sortState;
974
- if (this.config.multiColumnSort) {
975
- const index = this.multiColumnSort.findIndex(sort => sort.column === sortState.column);
976
- if (index !== -1) {
977
- if (sortState.direction === null) {
978
- this.multiColumnSort.splice(index, 1);
979
- }
980
- else {
981
- this.multiColumnSort[index] = sortState;
982
- }
983
- }
984
- else if (sortState.direction !== null) {
985
- this.multiColumnSort.push(sortState);
986
- }
1335
+ onDropdownItemClick(item, event) {
1336
+ event.stopPropagation();
1337
+ if (item.disabled)
1338
+ return;
1339
+ if (item.children) {
1340
+ // Toggle submenu
1341
+ item.showSubmenu = !item.showSubmenu;
1342
+ // Optionally close other submenus
1343
+ this.actionItems.forEach((i) => {
1344
+ if (i !== item)
1345
+ i.showSubmenu = false;
1346
+ });
1347
+ }
1348
+ else {
1349
+ // Handle action
1350
+ if (item.action)
1351
+ item.action(this.data);
1352
+ this.actionClick.emit({ item, data: this.data });
1353
+ this.isDropdownOpen = false;
987
1354
  }
988
- this.sortChange.emit(sortState);
989
1355
  }
990
- static { this.ɵfac = function TableComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableComponent)(i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
991
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["mis-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
992
- i0.ɵɵviewQuery(_c0, 5);
993
- i0.ɵɵviewQuery(_c1, 5);
994
- i0.ɵɵviewQuery(_c2, 5);
995
- } if (rf & 2) {
996
- let _t;
997
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
998
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.table = _t.first);
999
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.colHeaders = _t);
1000
- } }, inputs: { config: [0, "tableConfig", "config"], subTableconfig: "subTableconfig", tableDataLoading: "tableDataLoading", expandedIndex: "expandedIndex", tableData: "tableData", subTableData: "subTableData", subTableDataLoading: "subTableDataLoading" }, outputs: { filtersUpdated: "filtersUpdated", pageSelected: "pageSelected", sortChange: "sortChange" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 15, consts: [["table", ""], ["filter", ""], ["colHeaderRef", ""], ["id", "main-container", 3, "ngStyle"], [3, "containerStyles", "filtersData", "filtersApplied", 4, "ngIf"], ["id", "table-container", 3, "ngClass"], ["id", "col-headers-container", 3, "ngStyle"], ["class", "col-header", 3, "ngStyle", "click", 4, "ngFor", "ngForOf"], ["id", "data-container"], ["class", "row-wrapper", 4, "ngFor", "ngForOf"], ["id", "pagination-container", 4, "ngIf"], [3, "filtersApplied", "containerStyles", "filtersData"], [1, "col-header", 3, "click", "ngStyle"], ["class", "col-header-text", 4, "ngIf"], ["class", "filter-icon", 3, "click", 4, "ngIf"], ["appSortIcons", "", "class", "sort-icon", 3, "column", "activeSort", "activeSorts", "multiColumnSort", "sortChange", 4, "ngIf"], [4, "ngIf"], [1, "col-header-text"], [1, "filter-icon", 3, "click"], ["id", "filter-active", 4, "ngIf"], ["fill", "none", "height", "10", "viewBox", "0 0 13 10", "width", "13", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z", "fill", "#181F33", "fill-rule", "evenodd"], ["id", "filter-active"], ["appSortIcons", "", 1, "sort-icon", 3, "sortChange", "column", "activeSort", "activeSorts", "multiColumnSort"], ["customTableCell", "", 3, "customComponent", "data"], [1, "row-wrapper"], [1, "t-row", 3, "click", "ngClass", "ngStyle"], ["class", "t-col-container", 3, "ngStyle", "ngClass", "click", 4, "ngFor", "ngForOf"], ["class", "sub-row", 4, "ngIf"], [1, "t-col-container", 3, "click", "ngStyle", "ngClass"], [1, "t-col", 3, "ngStyle"], ["class", "t-col-text", 3, "ngStyle", "ngClass", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle", "ngClass"], [1, "sub-row"], [3, "ngStyle"], [3, "config", "tableData"], ["id", "pagination-container"], ["id", "pagination-text"], ["id", "pages-container"], [1, "page", 3, "click"], ["fill", "none", "height", "10", "viewBox", "0 0 7 10", "width", "7", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], [4, "ngFor", "ngForOf"], ["clip-rule", "evenodd", "d", "M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], ["class", "page", 3, "ngClass", "click", 4, "ngIf"], ["class", "page-seperator", 4, "ngIf"], [1, "page", 3, "click", "ngClass"], [1, "page-seperator"], [1, "dot", 3, "ngStyle"], [1, "dot"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
1001
- i0.ɵɵelementStart(0, "div", 3);
1002
- i0.ɵɵtemplate(1, TableComponent_mis_table_filter_1_Template, 2, 2, "mis-table-filter", 4);
1003
- i0.ɵɵelementStart(2, "div", 5, 0)(4, "div", 6);
1004
- i0.ɵɵtemplate(5, TableComponent_div_5_Template, 6, 9, "div", 7);
1005
- i0.ɵɵelementEnd();
1006
- i0.ɵɵelementStart(6, "div", 8);
1007
- i0.ɵɵtemplate(7, TableComponent_div_7_Template, 4, 9, "div", 9);
1008
- i0.ɵɵelementEnd()();
1009
- i0.ɵɵtemplate(8, TableComponent_div_8_Template, 11, 4, "div", 10);
1356
+ static { this.ɵfac = function ActionsCellComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActionsCellComponent)(); }; }
1357
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionsCellComponent, selectors: [["mis-actions-cell"]], hostBindings: function ActionsCellComponent_HostBindings(rf, ctx) { if (rf & 1) {
1358
+ i0.ɵɵlistener("click", function ActionsCellComponent_click_HostBindingHandler() { return ctx.onDocumentClick(); }, false, i0.ɵɵresolveDocument);
1359
+ } }, inputs: { data: "data", actionItems: "actionItems", actionType: "actionType", dropdownIcon: "dropdownIcon", submenuAlign: "submenuAlign", style: "style" }, outputs: { actionClick: "actionClick" }, decls: 3, vars: 3, consts: [["noChildren", ""], [1, "actions-cell-container", 3, "ngStyle"], ["class", "inline-actions", 4, "ngIf"], ["class", "dropdown-actions", 4, "ngIf"], [1, "inline-actions"], ["class", "action-item", 3, "ngClass", "title", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "click", "ngClass", "title"], ["class", "action-icon-svg", 3, "src", "alt", 4, "ngIf"], [1, "action-icon-svg", 3, "src", "alt"], [1, "dropdown-actions"], ["title", "More actions", 1, "dropdown-trigger", 3, "click"], ["width", "16", "height", "16", "viewBox", "0 0 16 16", "fill", "none"], ["cx", "8", "cy", "4", "r", "1.5", "fill", "#333"], ["cx", "8", "cy", "8", "r", "1.5", "fill", "#333"], ["cx", "8", "cy", "12", "r", "1.5", "fill", "#333"], ["class", "dropdown-menu", 4, "ngIf"], [1, "dropdown-menu"], ["class", "dropdown-menu-item", 3, "click", 4, "ngFor", "ngForOf"], [1, "dropdown-menu-item", 3, "click"], [4, "ngIf", "ngIfElse"], ["class", "dropdown-icon", 4, "ngIf"], [1, "dropdown-label"], [1, "submenu-arrow"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none"], ["d", "M9 6L15 12L9 18", "stroke", "#0D1321", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round"], ["class", "dropdown-submenu", 3, "ngClass", 4, "ngIf"], [1, "dropdown-icon"], [3, "src"], [1, "dropdown-submenu", 3, "ngClass"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
1360
+ i0.ɵɵelementStart(0, "div", 1);
1361
+ i0.ɵɵtemplate(1, ActionsCellComponent_div_1_Template, 2, 2, "div", 2)(2, ActionsCellComponent_div_2_Template, 7, 1, "div", 3);
1010
1362
  i0.ɵɵelementEnd();
1011
1363
  } if (rf & 2) {
1012
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(7, _c3, ctx.getContainerHeight(), ctx.getContainerWidth(), ctx.config.canScrollHorizontally ? "auto" : "unset"));
1013
- i0.ɵɵadvance();
1014
- i0.ɵɵproperty("ngIf", ctx.showFilter);
1364
+ i0.ɵɵproperty("ngStyle", ctx.containerStyle);
1015
1365
  i0.ɵɵadvance();
1016
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(11, _c4, ctx.expandedIndex < 0, !(ctx.expandedIndex < 0), ctx.config.canScrollHorizontally));
1017
- i0.ɵɵadvance(2);
1018
- i0.ɵɵproperty("ngStyle", ctx.getColHeadersRowStyles());
1019
- i0.ɵɵadvance();
1020
- i0.ɵɵproperty("ngForOf", ctx.config == null ? null : ctx.config.colHeaderConfig);
1021
- i0.ɵɵadvance(2);
1022
- i0.ɵɵproperty("ngForOf", ctx.tableData);
1366
+ i0.ɵɵproperty("ngIf", ctx.actionType === "inline");
1023
1367
  i0.ɵɵadvance();
1024
- i0.ɵɵproperty("ngIf", (ctx.config == null ? null : ctx.config.paginationConfig) && (ctx.tableLength >= ctx.config.paginationConfig.rowsPerPage || (ctx.config.paginationConfig == null ? null : ctx.config.paginationConfig.selectedPage) !== 1));
1025
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, SubTableComponent, TableFilterComponent, CustomTableCellDirective, SortIconsDirective], styles: ["#main-container[_ngcontent-%COMP%]{font-family:Lato,sans-serif;position:relative}.no-scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:0}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container[_ngcontent-%COMP%]{height:inherit;overflow-y:auto}.scroll-horizontally[_ngcontent-%COMP%]{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container[_ngcontent-%COMP%]{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header[_ngcontent-%COMP%]{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text[_ngcontent-%COMP%]{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.sort-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.filter-icon[_ngcontent-%COMP%]{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active[_ngcontent-%COMP%]{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row[_ngcontent-%COMP%]{height:auto;border-bottom:none}.loader[_ngcontent-%COMP%] .mat-progress-spinner circle, .mat-spinner[_ngcontent-%COMP%] circle[_ngcontent-%COMP%]{stroke:#0937b2}.t-row[_ngcontent-%COMP%]{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row[_ngcontent-%COMP%]:hover{background-color:#e7eefd}.active-row[_ngcontent-%COMP%]{background-color:#e6f6fd}.t-col-container[_ngcontent-%COMP%]{padding:0 16px;overflow-wrap:anywhere}.t-row-hover[_ngcontent-%COMP%]:hover{background-color:#0000}.t-col-container-hover[_ngcontent-%COMP%]:hover{background-color:#e6ebf7}.t-col-container-hover[_ngcontent-%COMP%]:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover[_ngcontent-%COMP%]{border-right:1px solid #e0e0e0}.t-col[_ngcontent-%COMP%]{display:flex;align-items:center;height:100%}.t-col-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.text-ellipsis[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}#pagination-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container[_ngcontent-%COMP%]{display:flex;margin-right:32px}.page[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot[_ngcontent-%COMP%]{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active[_ngcontent-%COMP%]{color:#0937b2;border:1px solid #0937b2}.sort-icon[_ngcontent-%COMP%]{display:inline-flex;align-items:center;margin-left:4px;cursor:pointer}.sort-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:16px;height:16px;transition:opacity .2s ease}.sort-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]:hover{opacity:.8}"] }); }
1368
+ i0.ɵɵproperty("ngIf", ctx.actionType === "dropdown");
1369
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle], styles: [".actions-cell-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item[_ngcontent-%COMP%]:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item[_ngcontent-%COMP%]:active:not(.disabled){transform:scale(.95)}.action-item.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}.action-item.disabled[_ngcontent-%COMP%]:hover{background-color:transparent;transform:none}.action-icon[_ngcontent-%COMP%]{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg[_ngcontent-%COMP%]{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg[_ngcontent-%COMP%]:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer}.dropdown-actions[_ngcontent-%COMP%]{position:relative}.dropdown-trigger[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-menu[_ngcontent-%COMP%]{position:absolute;top:100%;right:0;width:240px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:1000;padding:8px 0}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#aaa;cursor:not-allowed}.dropdown-menu-item[_ngcontent-%COMP%]:hover:not(.disabled), .dropdown-menu-item.has-submenu[_ngcontent-%COMP%]:hover{background:#f5f5f5}.dropdown-menu-item[_ngcontent-%COMP%]{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item[_ngcontent-%COMP%] .dropdown-label[_ngcontent-%COMP%]{flex:1;margin-left:8px}.dropdown-menu-item[_ngcontent-%COMP%] .submenu-arrow[_ngcontent-%COMP%]{margin-left:auto;width:16px;height:16px}.submenu-container[_ngcontent-%COMP%]{position:absolute;top:0;left:100%;margin-left:4px;background:#fff;box-shadow:0 4px 8px #0000001a;border-radius:8px;z-index:1000;white-space:nowrap}.dropdown-submenu[_ngcontent-%COMP%]{position:absolute;top:0;min-width:180px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu.right[_ngcontent-%COMP%]{left:100%;margin-left:4px}.dropdown-submenu.left[_ngcontent-%COMP%]{left:auto;right:100%;background-color:#fff;border:1px solid #ddd;z-index:9999;position:absolute}.submenu-arrow[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}"] }); }
1026
1370
  }
1027
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
1371
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionsCellComponent, [{
1028
1372
  type: Component,
1029
- args: [{ selector: "mis-table", template: "<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div\n #table\n id=\"table-container\"\n [ngClass]=\"{ 'no-scrollbar': expandedIndex < 0, scrollbar: !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\"\n >\n <div\n [ngStyle]=\"getColHeadersRowStyles()\"\n id=\"col-headers-container\"\n >\n <div\n #colHeaderRef\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"filterData = colHeader.filters; toggleFilter(colHeader.data); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type !== 'custom' && colHeader?.filters && colHeader?.filters?.length > 0\"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <span *ngIf=\"colHeader?.isSortable && !colHeader?.filters\" appSortIcons\n [column]=\"colHeader\"\n [activeSort]=\"currentSort\"\n [activeSorts]=\"multiColumnSort\"\n [multiColumnSort]=\"config.multiColumnSort\"\n (sortChange)=\"onSortChange($event)\"\n class=\"sort-icon\">\n </span>\n <ng-template *ngIf=\"colHeader?.type === 'custom'\" customTableCell [customComponent]=\"colHeader?.componentRef\" [data]=\"colHeader.data\"></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div class=\"row-wrapper\" *ngFor=\"let row of tableData; let i = index\">\n <div\n class=\"t-row\"\n [ngClass]=\"{ 't-row-hover': config.cellHover, 'active-row': i === activeRowIndex }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n [ngClass]=\"{ 't-col-container-hover': config.cellHover }\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i]?.action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i]?.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i]?.type !== 'custom'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color ? config?.colConfig[i]?.style?.color : ''\n }\"\n [ngClass]=\"{'text-ellipsis': !!config?.colConfig[i]?.style?.textEllipsis}\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i]?.type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n Loading...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n No Data Available...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"config?.paginationConfig && (tableLength >= config.paginationConfig.rowsPerPage || config.paginationConfig?.selectedPage !== 1)\"\n id=\"pagination-container\"\n >\n <p id=\"pagination-text\">\n Showing\n {{ (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + tableLength\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == config.paginationConfig?.selectedPage }\"\n class=\"page\"\n >{{ pageNumber }}</span\n >\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div [ngStyle]=\"{ display: 'flex' }\">\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\"></span>\n </div> \n </span>\n </div>\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage + 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n", styles: ["#main-container{font-family:Lato,sans-serif;position:relative}.no-scrollbar::-webkit-scrollbar{width:0}.scrollbar::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container{height:inherit;overflow-y:auto}.scroll-horizontally{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.sort-icon{display:flex;justify-content:center;align-items:center}.filter-icon{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row{height:auto;border-bottom:none}.loader ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#0937b2}.t-row{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#e7eefd}.active-row{background-color:#e6f6fd}.t-col-container{padding:0 16px;overflow-wrap:anywhere}.t-row-hover:hover{background-color:#0000}.t-col-container-hover:hover{background-color:#e6ebf7}.t-col-container-hover:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover{border-right:1px solid #e0e0e0}.t-col{display:flex;align-items:center;height:100%}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}#pagination-container{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container{display:flex;margin-right:32px}.page{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active{color:#0937b2;border:1px solid #0937b2}.sort-icon{display:inline-flex;align-items:center;margin-left:4px;cursor:pointer}.sort-icon img{width:16px;height:16px;transition:opacity .2s ease}.sort-icon img:hover{opacity:.8}\n"] }]
1030
- }], () => [{ type: i0.Renderer2 }], { filtersUpdated: [{
1031
- type: Output
1032
- }], filter: [{
1033
- type: ViewChild,
1034
- args: ["filter"]
1035
- }], colHeaders: [{
1036
- type: ViewChildren,
1037
- args: ["colHeaderRef"]
1038
- }], pageSelected: [{
1039
- type: Output
1040
- }], config: [{
1041
- type: Input,
1042
- args: ["tableConfig"]
1043
- }], subTableconfig: [{
1373
+ args: [{ selector: 'mis-actions-cell', template: "<div class=\"actions-cell-container\" [ngStyle]=\"containerStyle\">\n <!-- Inline Actions -->\n <div *ngIf=\"actionType === 'inline'\" class=\"inline-actions\">\n <div *ngFor=\"let item of actionItems; trackBy: trackByAction\" class=\"action-item\"\n [ngClass]=\"{ 'disabled': item.disabled }\" (click)=\"onActionClick(item, $event)\" [title]=\"item.label\">\n <img *ngIf=\"isSvgFile(item.icon)\" [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n <!-- <span *ngIf=\"!isSvgFile(item.icon)\" class=\"action-icon\" [innerHTML]=\"item.icon\"></span> -->\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType === 'dropdown'\" class=\"dropdown-actions\">\n <div class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <circle cx=\"8\" cy=\"4\" r=\"1.5\" fill=\"#333\" />\n <circle cx=\"8\" cy=\"8\" r=\"1.5\" fill=\"#333\" />\n <circle cx=\"8\" cy=\"12\" r=\"1.5\" fill=\"#333\" />\n </svg>\n </div>\n\n <div class=\"dropdown-menu\" *ngIf=\"isDropdownOpen\">\n <div class=\"dropdown-menu-item\" *ngFor=\"let item of actionItems\" \n (click)=\"onDropdownItemClick(item, $event)\">\n <ng-container *ngIf=\"item.children?.length; else noChildren\">\n <span class=\"dropdown-icon\" *ngIf=\"item.icon && isSvgFile(item.icon)\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n <span class=\"submenu-arrow\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 6L15 12L9 18\" stroke=\"#0D1321\" stroke-width=\"2\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </span>\n\n <!-- DYNAMIC SUBMENU -->\n <div class=\"dropdown-submenu\"\n [ngClass]=\"{ 'left': submenuAlign === 'left', 'right': submenuAlign !== 'left' }\"\n *ngIf=\"item.showSubmenu\">\n <div class=\"dropdown-menu-item\" *ngFor=\"let child of item.children\"\n (click)=\"handleAction(child)\">\n <span class=\"dropdown-icon\" *ngIf=\"child.icon && isSvgFile(child.icon)\">\n <img [src]=\"child.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ child.label }}</span>\n </div>\n </div>\n </ng-container>\n\n <ng-template #noChildren>\n <span class=\"dropdown-icon\" *ngIf=\"item.icon && isSvgFile(item.icon)\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n </ng-template>\n </div>\n </div>\n </div>\n</div>", styles: [".actions-cell-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;box-sizing:border-box}.inline-actions{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;flex-wrap:nowrap;padding:4px 0;flex-direction:row}.action-item{display:flex;align-items:center;justify-content:center;height:20px;border-radius:4px;cursor:pointer;transition:all .2s ease;background-color:transparent;border:none;outline:none;flex-shrink:0;min-height:20px}.action-item:hover:not(.disabled){background-color:#0000000a;transform:scale(1.05)}.action-item:active:not(.disabled){transform:scale(.95)}.action-item.disabled{opacity:.5;cursor:not-allowed}.action-item.disabled:hover{background-color:transparent;transform:none}.action-icon{font-size:16px;color:#666;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.action-icon-svg{width:18px;height:18px;object-fit:contain;filter:brightness(0) saturate(100%) invert(40%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(.6) contrast(1);flex-shrink:0}.action-icon-svg:hover{filter:brightness(0) saturate(100%) invert(0%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(0) contrast(1)}.dropdown-trigger{cursor:pointer}.dropdown-actions{position:relative}.dropdown-trigger{cursor:pointer;display:flex;align-items:center;justify-content:center}.dropdown-menu{position:absolute;top:100%;right:0;width:240px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:1000;padding:8px 0}.dropdown-menu-item.disabled{color:#aaa;cursor:not-allowed}.dropdown-menu-item:hover:not(.disabled),.dropdown-menu-item.has-submenu:hover{background:#f5f5f5}.dropdown-menu-item{display:flex;align-items:center;padding:10px 18px;cursor:pointer;font-size:14px;position:relative}.dropdown-menu-item .dropdown-label{flex:1;margin-left:8px}.dropdown-menu-item .submenu-arrow{margin-left:auto;width:16px;height:16px}.submenu-container{position:absolute;top:0;left:100%;margin-left:4px;background:#fff;box-shadow:0 4px 8px #0000001a;border-radius:8px;z-index:1000;white-space:nowrap}.dropdown-submenu{position:absolute;top:0;min-width:180px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1001}.dropdown-submenu.right{left:100%;margin-left:4px}.dropdown-submenu.left{left:auto;right:100%;background-color:#fff;border:1px solid #ddd;z-index:9999;position:absolute}.submenu-arrow{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon{display:flex;justify-content:center;align-items:center}\n"] }]
1374
+ }], null, { data: [{
1044
1375
  type: Input
1045
- }], tableDataLoading: [{
1376
+ }], actionItems: [{
1046
1377
  type: Input
1047
- }], expandedIndex: [{
1378
+ }], actionType: [{
1048
1379
  type: Input
1049
- }], tableData: [{
1380
+ }], dropdownIcon: [{
1050
1381
  type: Input
1051
- }], subTableData: [{
1382
+ }], submenuAlign: [{
1052
1383
  type: Input
1053
- }], subTableDataLoading: [{
1384
+ }], style: [{
1054
1385
  type: Input
1055
- }], table: [{
1056
- type: ViewChild,
1057
- args: ["table"]
1058
- }], sortChange: [{
1386
+ }], actionClick: [{
1059
1387
  type: Output
1388
+ }], onDocumentClick: [{
1389
+ type: HostListener,
1390
+ args: ['document:click']
1060
1391
  }] }); })();
1061
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableComponent, { className: "TableComponent" }); })();
1392
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionsCellComponent, { className: "ActionsCellComponent" }); })();
1062
1393
 
1063
1394
  class TableModule {
1064
1395
  static forRoot() {
@@ -1076,7 +1407,8 @@ class TableModule {
1076
1407
  SubTableComponent,
1077
1408
  TableFilterComponent,
1078
1409
  CustomTableCellDirective,
1079
- SortIconsDirective
1410
+ SortIconsDirective,
1411
+ ActionsCellComponent
1080
1412
  ],
1081
1413
  imports: [CommonModule, CheckboxModule, ScrollingModule],
1082
1414
  exports: [
@@ -1084,7 +1416,8 @@ class TableModule {
1084
1416
  SubTableComponent,
1085
1417
  TableFilterComponent,
1086
1418
  CustomTableCellDirective,
1087
- SortIconsDirective
1419
+ SortIconsDirective,
1420
+ ActionsCellComponent
1088
1421
  ]
1089
1422
  }]
1090
1423
  }], null, null); })();
@@ -1092,15 +1425,22 @@ class TableModule {
1092
1425
  SubTableComponent,
1093
1426
  TableFilterComponent,
1094
1427
  CustomTableCellDirective,
1095
- SortIconsDirective], imports: [CommonModule, CheckboxModule, ScrollingModule], exports: [TableComponent,
1428
+ SortIconsDirective,
1429
+ ActionsCellComponent], imports: [CommonModule, CheckboxModule, ScrollingModule], exports: [TableComponent,
1096
1430
  SubTableComponent,
1097
1431
  TableFilterComponent,
1098
1432
  CustomTableCellDirective,
1099
- SortIconsDirective] }); })();
1433
+ SortIconsDirective,
1434
+ ActionsCellComponent] }); })();
1435
+ i0.ɵɵsetComponentScope(TableComponent, [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, SubTableComponent,
1436
+ TableFilterComponent,
1437
+ CustomTableCellDirective,
1438
+ SortIconsDirective,
1439
+ ActionsCellComponent], []);
1100
1440
 
1101
1441
  /**
1102
1442
  * Generated bundle index. Do not edit.
1103
1443
  */
1104
1444
 
1105
- export { CustomTableCellDirective, SortIconsDirective, SubTableComponent, TableComponent, TableFilterComponent, TableModule };
1445
+ export { ActionsCellComponent, CustomTableCellDirective, SortIconsDirective, SubTableComponent, TableComponent, TableFilterComponent, TableModule };
1106
1446
  //# sourceMappingURL=mis-crystal-design-system-table.mjs.map