mis-crystal-design-system 18.0.13-test-9 → 18.0.14

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 { EventEmitter, Component, Output, ViewChild, ViewChildren, Input, Directive, input, output, signal, HostListener, NgModule } from '@angular/core';
2
+ import { Directive, Input, Component, ViewChild, EventEmitter, Output, input, output, signal, ViewChildren, 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,563 +7,6 @@ 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$2 = ["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 = a0 => ({ "page-jumping-enabled": a0 });
27
- const _c17 = () => ({ display: "flex" });
28
- const _c18 = () => ({ "margin-right": "4px" });
29
- function TableComponent_mis_table_filter_1_Template(rf, ctx) { if (rf & 1) {
30
- const _r1 = i0.ɵɵgetCurrentView();
31
- i0.ɵɵelementStart(0, "mis-table-filter", 11, 1);
32
- 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)); });
33
- i0.ɵɵelementEnd();
34
- } if (rf & 2) {
35
- const ctx_r1 = i0.ɵɵnextContext();
36
- i0.ɵɵproperty("containerStyles", ctx_r1.filterContainerStyles)("filtersData", ctx_r1.filterData);
37
- } }
38
- function TableComponent_div_5_p_2_Template(rf, ctx) { if (rf & 1) {
39
- i0.ɵɵelementStart(0, "p", 17);
40
- i0.ɵɵtext(1);
41
- i0.ɵɵelementEnd();
42
- } if (rf & 2) {
43
- const colHeader_r4 = i0.ɵɵnextContext().$implicit;
44
- i0.ɵɵadvance();
45
- i0.ɵɵtextInterpolate1(" ", (colHeader_r4 == null ? null : colHeader_r4.data) || " ", " ");
46
- } }
47
- function TableComponent_div_5_span_3_span_1_Template(rf, ctx) { if (rf & 1) {
48
- i0.ɵɵelement(0, "span", 22);
49
- } }
50
- function TableComponent_div_5_span_3_Template(rf, ctx) { if (rf & 1) {
51
- const _r5 = i0.ɵɵgetCurrentView();
52
- i0.ɵɵelementStart(0, "span", 18);
53
- 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()); });
54
- i0.ɵɵtemplate(1, TableComponent_div_5_span_3_span_1_Template, 1, 0, "span", 19);
55
- i0.ɵɵnamespaceSVG();
56
- i0.ɵɵelementStart(2, "svg", 20);
57
- i0.ɵɵelement(3, "path", 21);
58
- i0.ɵɵelementEnd()();
59
- } if (rf & 2) {
60
- const colHeader_r4 = i0.ɵɵnextContext().$implicit;
61
- const ctx_r1 = i0.ɵɵnextContext();
62
- i0.ɵɵadvance();
63
- i0.ɵɵproperty("ngIf", (ctx_r1.appliedFilters[colHeader_r4.data] == null ? null : ctx_r1.appliedFilters[colHeader_r4.data].length) > 0);
64
- } }
65
- function TableComponent_div_5_span_4_Template(rf, ctx) { if (rf & 1) {
66
- const _r6 = i0.ɵɵgetCurrentView();
67
- i0.ɵɵelementStart(0, "span", 23);
68
- 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)); });
69
- i0.ɵɵelementEnd();
70
- } if (rf & 2) {
71
- const colHeader_r4 = i0.ɵɵnextContext().$implicit;
72
- const ctx_r1 = i0.ɵɵnextContext();
73
- i0.ɵɵproperty("column", colHeader_r4)("activeSort", ctx_r1.currentSort)("activeSorts", ctx_r1.multiColumnSort)("multiColumnSort", ctx_r1.config.multiColumnSort);
74
- } }
75
- function TableComponent_div_5_5_ng_template_0_Template(rf, ctx) { }
76
- function TableComponent_div_5_5_Template(rf, ctx) { if (rf & 1) {
77
- i0.ɵɵtemplate(0, TableComponent_div_5_5_ng_template_0_Template, 0, 0, "ng-template", 24);
78
- } if (rf & 2) {
79
- const colHeader_r4 = i0.ɵɵnextContext().$implicit;
80
- i0.ɵɵproperty("customComponent", colHeader_r4 == null ? null : colHeader_r4.componentRef)("data", colHeader_r4.data);
81
- } }
82
- function TableComponent_div_5_Template(rf, ctx) { if (rf & 1) {
83
- const _r3 = i0.ɵɵgetCurrentView();
84
- i0.ɵɵelementStart(0, "div", 12, 2);
85
- 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); });
86
- 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);
87
- i0.ɵɵelementEnd();
88
- } if (rf & 2) {
89
- const colHeader_r4 = ctx.$implicit;
90
- 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"));
91
- i0.ɵɵadvance(2);
92
- i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) !== "custom");
93
- i0.ɵɵadvance();
94
- 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);
95
- i0.ɵɵadvance();
96
- i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.isSortable) && !(colHeader_r4 == null ? null : colHeader_r4.filters));
97
- i0.ɵɵadvance();
98
- i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) === "custom");
99
- } }
100
- function TableComponent_div_7_div_2_p_2_Template(rf, ctx) { if (rf & 1) {
101
- i0.ɵɵelementStart(0, "p", 33);
102
- i0.ɵɵtext(1);
103
- i0.ɵɵelementEnd();
104
- } if (rf & 2) {
105
- const ctx_r12 = i0.ɵɵnextContext();
106
- const col_r11 = ctx_r12.$implicit;
107
- const i_r12 = ctx_r12.index;
108
- const ctx_r1 = i0.ɵɵnextContext(2);
109
- 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)));
110
- i0.ɵɵadvance();
111
- i0.ɵɵtextInterpolate1(" ", col_r11, " ");
112
- } }
113
- function TableComponent_div_7_div_2_3_ng_template_0_Template(rf, ctx) { }
114
- function TableComponent_div_7_div_2_3_Template(rf, ctx) { if (rf & 1) {
115
- i0.ɵɵtemplate(0, TableComponent_div_7_div_2_3_ng_template_0_Template, 0, 0, "ng-template", 24);
116
- } if (rf & 2) {
117
- const ctx_r12 = i0.ɵɵnextContext();
118
- const col_r11 = ctx_r12.$implicit;
119
- const i_r12 = ctx_r12.index;
120
- const ctx_r1 = i0.ɵɵnextContext(2);
121
- i0.ɵɵproperty("customComponent", ctx_r1.config.colConfig[i_r12].componentRef)("data", col_r11);
122
- } }
123
- function TableComponent_div_7_div_2_mis_actions_cell_4_Template(rf, ctx) { if (rf & 1) {
124
- i0.ɵɵelement(0, "mis-actions-cell", 34);
125
- } if (rf & 2) {
126
- const ctx_r12 = i0.ɵɵnextContext();
127
- const col_r11 = ctx_r12.$implicit;
128
- const i_r12 = ctx_r12.index;
129
- const rowIndex_r14 = i0.ɵɵnextContext().index;
130
- const ctx_r1 = i0.ɵɵnextContext();
131
- i0.ɵɵstyleMap(ctx_r1.getActionsCellStyle(ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style));
132
- i0.ɵɵproperty("data", col_r11)("actionItems", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].actionItems) || i0.ɵɵpureFunction0(9, _c13))("actionPermissions", ctx_r1.config.actionPermissions == null ? null : ctx_r1.config.actionPermissions[rowIndex_r14])("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)("menuAlign", ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].menuAlign);
133
- } }
134
- function TableComponent_div_7_div_2_Template(rf, ctx) { if (rf & 1) {
135
- const _r9 = i0.ɵɵgetCurrentView();
136
- i0.ɵɵelementStart(0, "div", 29);
137
- 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); });
138
- i0.ɵɵelementStart(1, "div", 30);
139
- 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, 10, "mis-actions-cell", 32);
140
- i0.ɵɵelementEnd()();
141
- } if (rf & 2) {
142
- const i_r12 = ctx.index;
143
- const ctx_r1 = i0.ɵɵnextContext(2);
144
- 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));
145
- i0.ɵɵadvance();
146
- i0.ɵɵstyleMap(ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].style);
147
- 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"));
148
- i0.ɵɵadvance();
149
- 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");
150
- i0.ɵɵadvance();
151
- i0.ɵɵproperty("ngIf", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) === "custom");
152
- i0.ɵɵadvance();
153
- i0.ɵɵproperty("ngIf", (ctx_r1.config.colConfig[i_r12] == null ? null : ctx_r1.config.colConfig[i_r12].type) === "actions");
154
- } }
155
- function TableComponent_div_7_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
156
- i0.ɵɵelementContainerStart(0);
157
- i0.ɵɵelementStart(1, "div", 36);
158
- i0.ɵɵtext(2, " Loading... ");
159
- i0.ɵɵelementEnd();
160
- i0.ɵɵelementContainerEnd();
161
- } if (rf & 2) {
162
- i0.ɵɵadvance();
163
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c14));
164
- } }
165
- function TableComponent_div_7_div_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {
166
- i0.ɵɵelementContainerStart(0);
167
- i0.ɵɵelementStart(1, "div", 36);
168
- i0.ɵɵtext(2, " No Data Available... ");
169
- i0.ɵɵelementEnd();
170
- i0.ɵɵelementContainerEnd();
171
- } if (rf & 2) {
172
- i0.ɵɵadvance();
173
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c14));
174
- } }
175
- function TableComponent_div_7_div_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {
176
- i0.ɵɵelementContainerStart(0);
177
- i0.ɵɵelement(1, "sub-table", 37);
178
- i0.ɵɵelementContainerEnd();
179
- } if (rf & 2) {
180
- const ctx_r1 = i0.ɵɵnextContext(3);
181
- i0.ɵɵadvance();
182
- i0.ɵɵproperty("config", ctx_r1.subTableconfig)("tableData", ctx_r1.subTableData);
183
- } }
184
- function TableComponent_div_7_div_3_Template(rf, ctx) { if (rf & 1) {
185
- i0.ɵɵelementStart(0, "div", 35);
186
- 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);
187
- i0.ɵɵelementEnd();
188
- } if (rf & 2) {
189
- const ctx_r1 = i0.ɵɵnextContext(2);
190
- i0.ɵɵadvance();
191
- i0.ɵɵproperty("ngIf", ctx_r1.subTableDataLoading);
192
- i0.ɵɵadvance();
193
- i0.ɵɵproperty("ngIf", !ctx_r1.subTableDataLoading && ctx_r1.subTableData.length === 0);
194
- i0.ɵɵadvance();
195
- i0.ɵɵproperty("ngIf", !ctx_r1.subTableDataLoading && ctx_r1.subTableData.length > 0);
196
- } }
197
- function TableComponent_div_7_Template(rf, ctx) { if (rf & 1) {
198
- const _r7 = i0.ɵɵgetCurrentView();
199
- i0.ɵɵelementStart(0, "div", 25)(1, "div", 26);
200
- 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)); });
201
- i0.ɵɵtemplate(2, TableComponent_div_7_div_2_Template, 5, 15, "div", 27);
202
- i0.ɵɵelementEnd();
203
- i0.ɵɵtemplate(3, TableComponent_div_7_div_3_Template, 4, 3, "div", 28);
204
- i0.ɵɵelementEnd();
205
- } if (rf & 2) {
206
- const row_r15 = ctx.$implicit;
207
- const i_r8 = ctx.index;
208
- const ctx_r1 = i0.ɵɵnextContext();
209
- i0.ɵɵadvance();
210
- 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"));
211
- i0.ɵɵadvance();
212
- i0.ɵɵproperty("ngForOf", row_r15);
213
- i0.ɵɵadvance();
214
- i0.ɵɵproperty("ngIf", (ctx_r1.config == null ? null : ctx_r1.config.canExpand) && ctx_r1.expandedIndex === i_r8);
215
- } }
216
- function TableComponent_div_8_ng_container_7_div_1_span_1_Template(rf, ctx) { if (rf & 1) {
217
- const _r17 = i0.ɵɵgetCurrentView();
218
- i0.ɵɵelementStart(0, "span", 49);
219
- i0.ɵɵlistener("click", function TableComponent_div_8_ng_container_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)); });
220
- i0.ɵɵtext(1);
221
- i0.ɵɵelementEnd();
222
- } if (rf & 2) {
223
- const pageNumber_r18 = i0.ɵɵnextContext().$implicit;
224
- const ctx_r1 = i0.ɵɵnextContext(3);
225
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c15, pageNumber_r18 == (ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.selectedPage)))("ngClass", i0.ɵɵpureFunction1(5, _c16, !(ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.disablePageJumping)));
226
- i0.ɵɵadvance();
227
- i0.ɵɵtextInterpolate(pageNumber_r18);
228
- } }
229
- function TableComponent_div_8_ng_container_7_div_1_span_2_Template(rf, ctx) { if (rf & 1) {
230
- i0.ɵɵelementStart(0, "span", 50)(1, "div", 36);
231
- i0.ɵɵelement(2, "span", 51)(3, "span", 51)(4, "span", 52);
232
- i0.ɵɵelementEnd()();
233
- } if (rf & 2) {
234
- i0.ɵɵadvance();
235
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(3, _c17));
236
- i0.ɵɵadvance();
237
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c18));
238
- i0.ɵɵadvance();
239
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(5, _c18));
240
- } }
241
- function TableComponent_div_8_ng_container_7_div_1_Template(rf, ctx) { if (rf & 1) {
242
- i0.ɵɵelementStart(0, "div");
243
- i0.ɵɵtemplate(1, TableComponent_div_8_ng_container_7_div_1_span_1_Template, 2, 7, "span", 47)(2, TableComponent_div_8_ng_container_7_div_1_span_2_Template, 5, 6, "span", 48);
244
- i0.ɵɵelementEnd();
245
- } if (rf & 2) {
246
- const pageNumber_r18 = ctx.$implicit;
247
- i0.ɵɵadvance();
248
- i0.ɵɵproperty("ngIf", pageNumber_r18 != 0);
249
- i0.ɵɵadvance();
250
- i0.ɵɵproperty("ngIf", pageNumber_r18 == 0);
251
- } }
252
- function TableComponent_div_8_ng_container_7_Template(rf, ctx) { if (rf & 1) {
253
- i0.ɵɵelementContainerStart(0);
254
- i0.ɵɵtemplate(1, TableComponent_div_8_ng_container_7_div_1_Template, 3, 2, "div", 46);
255
- i0.ɵɵelementContainerEnd();
256
- } if (rf & 2) {
257
- const ctx_r1 = i0.ɵɵnextContext(2);
258
- i0.ɵɵadvance();
259
- i0.ɵɵproperty("ngForOf", ctx_r1.pages);
260
- } }
261
- function TableComponent_div_8_div_8_Template(rf, ctx) { if (rf & 1) {
262
- i0.ɵɵelementStart(0, "div", 53)(1, "span", 54);
263
- i0.ɵɵtext(2);
264
- i0.ɵɵelementEnd()();
265
- } if (rf & 2) {
266
- const ctx_r1 = i0.ɵɵnextContext(2);
267
- i0.ɵɵadvance(2);
268
- i0.ɵɵtextInterpolate2("", ctx_r1.config.paginationConfig.selectedPage, " of ", ctx_r1.config.paginationConfig.noOfPages, "");
269
- } }
270
- function TableComponent_div_8_Template(rf, ctx) { if (rf & 1) {
271
- const _r16 = i0.ɵɵgetCurrentView();
272
- i0.ɵɵelementStart(0, "div", 38)(1, "p", 39);
273
- i0.ɵɵtext(2);
274
- i0.ɵɵelementEnd();
275
- i0.ɵɵelementStart(3, "div", 40)(4, "span", 41);
276
- 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)); });
277
- i0.ɵɵnamespaceSVG();
278
- i0.ɵɵelementStart(5, "svg", 42);
279
- i0.ɵɵelement(6, "path", 43);
280
- i0.ɵɵelementEnd()();
281
- i0.ɵɵtemplate(7, TableComponent_div_8_ng_container_7_Template, 2, 1, "ng-container", 16)(8, TableComponent_div_8_div_8_Template, 3, 2, "div", 44);
282
- i0.ɵɵnamespaceHTML();
283
- i0.ɵɵelementStart(9, "span", 41);
284
- 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)); });
285
- i0.ɵɵnamespaceSVG();
286
- i0.ɵɵelementStart(10, "svg", 42);
287
- i0.ɵɵelement(11, "path", 45);
288
- i0.ɵɵelementEnd()()()();
289
- } if (rf & 2) {
290
- const ctx_r1 = i0.ɵɵnextContext();
291
- i0.ɵɵadvance(2);
292
- 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 ");
293
- i0.ɵɵadvance(5);
294
- i0.ɵɵproperty("ngIf", !(ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.disablePageJumping));
295
- i0.ɵɵadvance();
296
- i0.ɵɵproperty("ngIf", ctx_r1.config.paginationConfig == null ? null : ctx_r1.config.paginationConfig.disablePageJumping);
297
- } }
298
- class TableComponent {
299
- constructor(renderer) {
300
- this.renderer = renderer;
301
- // Initialize with -1 to indicate no row is colored at the beginning
302
- this.activeRowIndex = 0;
303
- // Filter related variables
304
- this.showFilter = false;
305
- this.filterName = "";
306
- this.filterData = [];
307
- this.filterContainerStyles = {};
308
- this.appliedFilters = {};
309
- this.filtersUpdated = new EventEmitter();
310
- // Pagination related variables
311
- this.pages = [];
312
- this.pageSelected = new EventEmitter();
313
- this.tableData = [];
314
- this.subTableData = [];
315
- // Sorting related properties
316
- this.currentSort = null;
317
- this.multiColumnSort = [];
318
- this.sortChange = new EventEmitter();
319
- }
320
- // Function to handle row click
321
- selectRow(index) {
322
- this.activeRowIndex = index; // Set the selected index to the clicked row's index
323
- !!this.config.rowConfig.action && this.config.rowConfig.action(index);
324
- }
325
- ngOnInit() {
326
- this.tableLength = !!this.tableData ? this.tableData.length : 0;
327
- this.initializeFilters();
328
- if (this.config.paginationConfig) {
329
- this.initializePagination();
330
- }
331
- if (this.config.canScrollHorizontally === undefined) {
332
- this.config.canScrollHorizontally = false;
333
- }
334
- document.addEventListener("click", event => {
335
- if (this.filter) {
336
- let isCheckBoxClicked = true;
337
- let targetElement = event.target;
338
- if (targetElement.className === "checkmark") {
339
- isCheckBoxClicked = true;
340
- this.showFilter = true;
341
- }
342
- let isClickInsideElement = this.filter.container.nativeElement.contains(event.target);
343
- if (!isClickInsideElement && !isCheckBoxClicked) {
344
- this.toggleFilter(this.filterName);
345
- }
346
- }
347
- });
348
- }
349
- ngAfterViewInit() {
350
- if (this.config.paginationConfig) {
351
- let height = this.config.height;
352
- this.renderer.setStyle(this.table.nativeElement, "height", height - 56 + "px");
353
- }
354
- }
355
- ngOnChanges() {
356
- this.tableLength = !!this.tableData ? this.tableData.length : 0;
357
- this.activeRowIndex = this.config.activeRowIndex || 0;
358
- }
359
- // Filter related functions
360
- initializeFilters() {
361
- for (let colHeader of this.config?.colHeaderConfig) {
362
- if (colHeader.filters) {
363
- let filters = [];
364
- for (let filter of colHeader.filters) {
365
- if (filter.checked) {
366
- filters.push({
367
- name: filter.name,
368
- value: filter.value
369
- });
370
- }
371
- }
372
- if (filters.length > 0)
373
- this.appliedFilters[colHeader.data] = filters;
374
- }
375
- }
376
- }
377
- toggleFilter(filterName) {
378
- if (!this.showFilter) {
379
- this.filterName = filterName;
380
- this.showFilter = true;
381
- let offSet = 0;
382
- let colHeadersReversed = this.colHeaders.toArray().reverse();
383
- for (let header of colHeadersReversed) {
384
- if (header.nativeElement.innerText === filterName)
385
- break;
386
- offSet += header.nativeElement.offsetWidth;
387
- }
388
- this.filterContainerStyles = {
389
- top: "44px",
390
- right: offSet > 0 ? offSet - 116 + "px" : "12px"
391
- };
392
- }
393
- else {
394
- this.filterName = "";
395
- this.filterData = [];
396
- this.showFilter = false;
397
- }
398
- }
399
- updateAppliedFilters(appliedFilters) {
400
- if (appliedFilters.length == 0) {
401
- delete this.appliedFilters[this.filterName];
402
- }
403
- else {
404
- this.appliedFilters[this.filterName] = appliedFilters;
405
- }
406
- this.filtersUpdated.emit({ ...this.appliedFilters });
407
- this.toggleFilter(this.filterName);
408
- }
409
- // Pagination related functions
410
- initializePagination() {
411
- if (this.config.paginationConfig) {
412
- let len = this.config.paginationConfig.noOfPages;
413
- if (len <= 7) {
414
- for (let i = 1; i <= len; i++) {
415
- this.pages.push(i);
416
- }
417
- }
418
- else {
419
- this.pages = [1, 2, 3, 4, 0, len];
420
- }
421
- }
422
- }
423
- updateSelectedPage(pageNumber) {
424
- if (pageNumber < 1 || pageNumber > this.config.paginationConfig.noOfPages)
425
- return;
426
- this.config.paginationConfig.selectedPage = pageNumber;
427
- let len = this.config.paginationConfig.noOfPages;
428
- if (len > 7) {
429
- if (pageNumber - 2 <= 1) {
430
- this.pages = [1, 2, 3, 4, 0, len];
431
- }
432
- else if (pageNumber - 2 > 1 && pageNumber + 2 < len) {
433
- this.pages = [1, 0, pageNumber - 1, pageNumber, pageNumber + 1, 0, len];
434
- }
435
- else if (pageNumber + 2 >= len) {
436
- this.pages = [1, 0, len - 3, len - 2, len - 1, len];
437
- }
438
- }
439
- this.pageSelected.emit(this.config.paginationConfig?.selectedPage);
440
- }
441
- // Main container related functions
442
- getContainerHeight() {
443
- if (this.config?.height)
444
- return this.config.height;
445
- else
446
- return "";
447
- }
448
- getContainerWidth() {
449
- if (this.config?.width)
450
- return this.config.width;
451
- else
452
- return "";
453
- }
454
- // Column Headers related functions
455
- getColHeadersRowStyles() {
456
- const { colHeadersRowConfig } = this.config;
457
- const minHeight = colHeadersRowConfig?.height || "44px";
458
- const borderTop = colHeadersRowConfig?.style?.borderTop || "";
459
- const borderBottom = colHeadersRowConfig?.style?.borderBottom || "1px solid #E0E0E0";
460
- const backgroundColor = colHeadersRowConfig?.style?.backgroundColor || "#FFFFFF";
461
- const fontSize = colHeadersRowConfig?.style?.fontSize || "14px";
462
- return {
463
- 'min-height': minHeight,
464
- 'border-top': borderTop,
465
- 'border-bottom': borderBottom,
466
- 'background-color': backgroundColor,
467
- 'font-size': fontSize
468
- };
469
- }
470
- onSortChange(sortState) {
471
- this.currentSort = sortState;
472
- if (this.config.multiColumnSort) {
473
- const index = this.multiColumnSort.findIndex(sort => sort.column === sortState.column);
474
- if (index !== -1) {
475
- if (sortState.direction === null) {
476
- this.multiColumnSort.splice(index, 1);
477
- }
478
- else {
479
- this.multiColumnSort[index] = sortState;
480
- }
481
- }
482
- else if (sortState.direction !== null) {
483
- this.multiColumnSort.push(sortState);
484
- }
485
- }
486
- this.sortChange.emit(sortState);
487
- }
488
- getActionsCellStyle(style) {
489
- if (!style)
490
- return {};
491
- const { width, ...restStyle } = style;
492
- return restStyle;
493
- }
494
- static { this.ɵfac = function TableComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TableComponent)(i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
495
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["mis-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
496
- i0.ɵɵviewQuery(_c0$3, 5);
497
- i0.ɵɵviewQuery(_c1$2, 5);
498
- i0.ɵɵviewQuery(_c2$2, 5);
499
- } if (rf & 2) {
500
- let _t;
501
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
502
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.table = _t.first);
503
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.colHeaders = _t);
504
- } }, 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", "actionPermissions", "actionType", "dropdownIcon", "style", "submenuAlign", "menuAlign", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle", "ngClass"], [3, "data", "actionItems", "actionPermissions", "actionType", "dropdownIcon", "submenuAlign", "menuAlign"], [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) {
505
- i0.ɵɵelementStart(0, "div", 3);
506
- i0.ɵɵtemplate(1, TableComponent_mis_table_filter_1_Template, 2, 2, "mis-table-filter", 4);
507
- i0.ɵɵelementStart(2, "div", 5, 0)(4, "div", 6);
508
- i0.ɵɵtemplate(5, TableComponent_div_5_Template, 6, 9, "div", 7);
509
- i0.ɵɵelementEnd();
510
- i0.ɵɵelementStart(6, "div", 8);
511
- i0.ɵɵtemplate(7, TableComponent_div_7_Template, 4, 9, "div", 9);
512
- i0.ɵɵelementEnd()();
513
- i0.ɵɵtemplate(8, TableComponent_div_8_Template, 12, 5, "div", 10);
514
- i0.ɵɵelementEnd();
515
- } if (rf & 2) {
516
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(7, _c3$1, ctx.getContainerHeight(), ctx.getContainerWidth(), ctx.config.canScrollHorizontally ? "auto" : "unset"));
517
- i0.ɵɵadvance();
518
- i0.ɵɵproperty("ngIf", ctx.showFilter);
519
- i0.ɵɵadvance();
520
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(11, _c4$1, ctx.expandedIndex < 0, !(ctx.expandedIndex < 0), ctx.config.canScrollHorizontally));
521
- i0.ɵɵadvance(2);
522
- i0.ɵɵproperty("ngStyle", ctx.getColHeadersRowStyles());
523
- i0.ɵɵadvance();
524
- i0.ɵɵproperty("ngForOf", ctx.config == null ? null : ctx.config.colHeaderConfig);
525
- i0.ɵɵadvance(2);
526
- i0.ɵɵproperty("ngForOf", ctx.tableData);
527
- i0.ɵɵadvance();
528
- 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));
529
- } }, 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;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.page-jumping-enabled[_ngcontent-%COMP%]{border:1px solid #6a737d}.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}"] }); }
530
- }
531
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
532
- type: Component,
533
- 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; let rowIndex = 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 <mis-actions-cell\n *ngIf=\"config.colConfig[i]?.type === 'actions'\"\n [data]=\"col\"\n [actionItems]=\"config.colConfig[i]?.actionItems || []\"\n [actionPermissions]=\"config.actionPermissions?.[rowIndex]\"\n [actionType]=\"config.colConfig[i]?.actionType || 'inline'\"\n [dropdownIcon]=\"config.colConfig[i]?.dropdownIcon || ''\"\n [style]=\"getActionsCellStyle(config.colConfig[i]?.style)\"\n [submenuAlign]=\"config.colConfig[i]?.submenuAlign\"\n [menuAlign]=\"config.colConfig[i]?.menuAlign\"\n ></mis-actions-cell>\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 <ng-container *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 [ngClass]=\"{\n 'page-jumping-enabled': !config.paginationConfig?.disablePageJumping\n }\"\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 </ng-container>\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;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.page-jumping-enabled{border:1px solid #6a737d}.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"] }]
534
- }], () => [{ type: i0.Renderer2 }], { filtersUpdated: [{
535
- type: Output
536
- }], filter: [{
537
- type: ViewChild,
538
- args: ["filter"]
539
- }], colHeaders: [{
540
- type: ViewChildren,
541
- args: ["colHeaderRef"]
542
- }], pageSelected: [{
543
- type: Output
544
- }], config: [{
545
- type: Input,
546
- args: ["tableConfig"]
547
- }], subTableconfig: [{
548
- type: Input
549
- }], tableDataLoading: [{
550
- type: Input
551
- }], expandedIndex: [{
552
- type: Input
553
- }], tableData: [{
554
- type: Input
555
- }], subTableData: [{
556
- type: Input
557
- }], subTableDataLoading: [{
558
- type: Input
559
- }], table: [{
560
- type: ViewChild,
561
- args: ["table"]
562
- }], sortChange: [{
563
- type: Output
564
- }] }); })();
565
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableComponent, { className: "TableComponent" }); })();
566
-
567
10
  class CustomTableCellDirective {
568
11
  set customComponent(value) {
569
12
  this.component = value;
@@ -605,13 +48,13 @@ class CustomTableCellDirective {
605
48
  }] }); })();
606
49
 
607
50
  const _c0$2 = ["table"];
608
- const _c1$1 = (a0, a1) => ({ height: a0, width: a1 });
609
- const _c2$1 = (a0, a1, a2) => ({ height: a0, "border-top": a1, "border-bottom": a2 });
610
- const _c3 = (a0, a1, a2) => ({ width: a0, cursor: a1, "justify-content": a2 });
611
- const _c4 = a0 => ({ backgroundColor: a0 });
612
- const _c5 = a0 => ({ width: a0 });
613
- const _c6 = (a0, a1) => ({ width: "100%", cursor: a0, "justify-content": a1 });
614
- const _c7 = a0 => ({ color: a0 });
51
+ 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
58
  function SubTableComponent_div_3_div_1_p_1_Template(rf, ctx) { if (rf & 1) {
616
59
  i0.ɵɵelementStart(0, "p", 11);
617
60
  i0.ɵɵtext(1);
@@ -637,7 +80,7 @@ function SubTableComponent_div_3_div_1_Template(rf, ctx) { if (rf & 1) {
637
80
  } if (rf & 2) {
638
81
  const colHeader_r2 = ctx.$implicit;
639
82
  i0.ɵɵstyleMap(colHeader_r2 == null ? null : colHeader_r2.style);
640
- 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"));
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"));
641
84
  i0.ɵɵadvance();
642
85
  i0.ɵɵproperty("ngIf", (colHeader_r2 == null ? null : colHeader_r2.type) !== "custom");
643
86
  i0.ɵɵadvance();
@@ -649,7 +92,7 @@ function SubTableComponent_div_3_Template(rf, ctx) { if (rf & 1) {
649
92
  i0.ɵɵelementEnd();
650
93
  } if (rf & 2) {
651
94
  const ctx_r2 = i0.ɵɵnextContext();
652
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(2, _c2$1, ctx_r2.getColHeadersRowHeight(), ctx_r2.getColHeadersRowBorderTop(), ctx_r2.getColHeadersRowBorderBottom()));
95
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(2, _c2$2, ctx_r2.getColHeadersRowHeight(), ctx_r2.getColHeadersRowBorderTop(), ctx_r2.getColHeadersRowBorderBottom()));
653
96
  i0.ɵɵadvance();
654
97
  i0.ɵɵproperty("ngForOf", ctx_r2.config == null ? null : ctx_r2.config.colHeaderConfig);
655
98
  } }
@@ -662,7 +105,7 @@ function SubTableComponent_div_6_div_2_p_2_Template(rf, ctx) { if (rf & 1) {
662
105
  const col_r6 = ctx_r7.$implicit;
663
106
  const i_r7 = ctx_r7.index;
664
107
  const ctx_r2 = i0.ɵɵnextContext(2);
665
- 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 : ""));
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 : ""));
666
109
  i0.ɵɵadvance();
667
110
  i0.ɵɵtextInterpolate1(" ", col_r6, " ");
668
111
  } }
@@ -686,10 +129,10 @@ function SubTableComponent_div_6_div_2_Template(rf, ctx) { if (rf & 1) {
686
129
  } if (rf & 2) {
687
130
  const i_r7 = ctx.index;
688
131
  const ctx_r2 = i0.ɵɵnextContext(2);
689
- 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) || ""));
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) || ""));
690
133
  i0.ɵɵadvance();
691
134
  i0.ɵɵstyleMap(ctx_r2.config.colConfig[i_r7] == null ? null : ctx_r2.config.colConfig[i_r7].style);
692
- 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"));
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"));
693
136
  i0.ɵɵadvance();
694
137
  i0.ɵɵproperty("ngIf", ctx_r2.config.colConfig[i_r7].type !== "custom");
695
138
  i0.ɵɵadvance();
@@ -702,7 +145,7 @@ function SubTableComponent_div_6_Template(rf, ctx) { if (rf & 1) {
702
145
  } if (rf & 2) {
703
146
  const row_r9 = ctx.$implicit;
704
147
  const i_r10 = ctx.index;
705
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c4, i_r10 % 2 === 0 ? "#FAFAFA" : null));
148
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c4$1, i_r10 % 2 === 0 ? "#FAFAFA" : null));
706
149
  i0.ɵɵadvance(2);
707
150
  i0.ɵɵproperty("ngForOf", row_r9);
708
151
  } }
@@ -768,7 +211,7 @@ class SubTableComponent {
768
211
  i0.ɵɵtemplate(6, SubTableComponent_div_6_Template, 3, 4, "div", 5);
769
212
  i0.ɵɵelementEnd()()()();
770
213
  } if (rf & 2) {
771
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(9, _c1$1, ctx.getContainerHeight(), ctx.getContainerWidth()));
214
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(9, _c1$2, ctx.getContainerHeight(), ctx.getContainerWidth()));
772
215
  i0.ɵɵadvance(3);
773
216
  i0.ɵɵproperty("ngIf", !!ctx.config.showHeader);
774
217
  i0.ɵɵadvance(2);
@@ -792,8 +235,8 @@ class SubTableComponent {
792
235
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubTableComponent, { className: "SubTableComponent" }); })();
793
236
 
794
237
  const _c0$1 = ["mainContainer"];
795
- const _c1 = () => ({ "margin": "16px 0px" });
796
- const _c2 = () => ({ "margin-right": "8px" });
238
+ const _c1$1 = () => ({ "margin": "16px 0px" });
239
+ const _c2$1 = () => ({ "margin-right": "8px" });
797
240
  function TableFilterComponent_div_8_Template(rf, ctx) { if (rf & 1) {
798
241
  const _r2 = i0.ɵɵgetCurrentView();
799
242
  i0.ɵɵelementStart(0, "div")(1, "div", 15)(2, "mis-checkbox", 16);
@@ -812,7 +255,7 @@ function TableFilterComponent_div_8_Template(rf, ctx) { if (rf & 1) {
812
255
  function TableFilterComponent_div_9_Template(rf, ctx) { if (rf & 1) {
813
256
  i0.ɵɵelement(0, "div", 11);
814
257
  } if (rf & 2) {
815
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c1));
258
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c1$1));
816
259
  } }
817
260
  function TableFilterComponent_div_11_div_1_Template(rf, ctx) { if (rf & 1) {
818
261
  const _r5 = i0.ɵɵgetCurrentView();
@@ -944,9 +387,9 @@ class TableFilterComponent {
944
387
  i0.ɵɵadvance();
945
388
  i0.ɵɵproperty("ngIf", ctx.getFiltersBasedOnSearchValue().length < 1);
946
389
  i0.ɵɵadvance();
947
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(7, _c1));
390
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(7, _c1$1));
948
391
  i0.ɵɵadvance(2);
949
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(8, _c2));
392
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(8, _c2$1));
950
393
  } }, 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}"] }); }
951
394
  }
952
395
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableFilterComponent, [{
@@ -1101,291 +544,521 @@ class SortIconsDirective {
1101
544
  }]
1102
545
  }], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], null); })();
1103
546
 
1104
- const _c0 = a0 => ({ "disabled": a0 });
1105
- function ActionsCellComponent_div_1_div_1_img_1_Template(rf, ctx) { if (rf & 1) {
1106
- i0.ɵɵelement(0, "img", 8);
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();
1107
569
  } if (rf & 2) {
1108
- const item_r1 = i0.ɵɵnextContext().$implicit;
1109
- i0.ɵɵproperty("src", item_r1.icon, i0.ɵɵsanitizeUrl)("alt", item_r1.label);
570
+ const ctx_r1 = i0.ɵɵnextContext();
571
+ i0.ɵɵproperty("containerStyles", ctx_r1.filterContainerStyles)("filtersData", ctx_r1.filterData);
1110
572
  } }
1111
- function ActionsCellComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
1112
- i0.ɵɵelementStart(0, "div", 6);
1113
- i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_img_1_Template, 1, 2, "img", 7);
573
+ function TableComponent_div_5_p_2_Template(rf, ctx) { if (rf & 1) {
574
+ i0.ɵɵelementStart(0, "p", 17);
575
+ i0.ɵɵtext(1);
1114
576
  i0.ɵɵelementEnd();
1115
577
  } if (rf & 2) {
1116
- const item_r1 = ctx.$implicit;
1117
- const ctx_r1 = i0.ɵɵnextContext(2);
1118
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c0, ctx_r1.actionPermissions && ctx_r1.actionPermissions.hasOwnProperty(item_r1.value) && ctx_r1.actionPermissions[item_r1.value] === false));
578
+ const colHeader_r4 = i0.ɵɵnextContext().$implicit;
1119
579
  i0.ɵɵadvance();
1120
- i0.ɵɵproperty("ngIf", ctx_r1.isSvgFile(item_r1.icon));
580
+ i0.ɵɵtextInterpolate1(" ", (colHeader_r4 == null ? null : colHeader_r4.data) || " ", " ");
1121
581
  } }
1122
- function ActionsCellComponent_div_1_Template(rf, ctx) { if (rf & 1) {
1123
- i0.ɵɵelementStart(0, "div", 4);
1124
- i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_Template, 2, 4, "div", 5);
1125
- i0.ɵɵelementEnd();
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()();
1126
594
  } if (rf & 2) {
595
+ const colHeader_r4 = i0.ɵɵnextContext().$implicit;
1127
596
  const ctx_r1 = i0.ɵɵnextContext();
1128
597
  i0.ɵɵadvance();
1129
- i0.ɵɵproperty("ngForOf", ctx_r1.actionItems)("ngForTrackBy", ctx_r1.trackByAction);
598
+ i0.ɵɵproperty("ngIf", (ctx_r1.appliedFilters[colHeader_r4.data] == null ? null : ctx_r1.appliedFilters[colHeader_r4.data].length) > 0);
599
+ } }
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)); });
604
+ i0.ɵɵelementEnd();
605
+ } 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);
1130
616
  } }
1131
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
1132
- i0.ɵɵelementStart(0, "span", 26);
1133
- i0.ɵɵelement(1, "img", 27);
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);
1134
622
  i0.ɵɵelementEnd();
1135
623
  } if (rf & 2) {
1136
- const item_r5 = i0.ɵɵnextContext(2).$implicit;
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));
1137
632
  i0.ɵɵadvance();
1138
- i0.ɵɵproperty("src", item_r5.icon, i0.ɵɵsanitizeUrl);
633
+ i0.ɵɵproperty("ngIf", (colHeader_r4 == null ? null : colHeader_r4.type) === "custom");
1139
634
  } }
1140
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_span_1_Template(rf, ctx) { if (rf & 1) {
1141
- i0.ɵɵelementStart(0, "span", 26);
1142
- i0.ɵɵelement(1, "img", 27);
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);
1143
638
  i0.ɵɵelementEnd();
1144
639
  } if (rf & 2) {
1145
- const child_r7 = i0.ɵɵnextContext().$implicit;
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)));
1146
645
  i0.ɵɵadvance();
1147
- i0.ɵɵproperty("src", child_r7.icon, i0.ɵɵsanitizeUrl);
646
+ i0.ɵɵtextInterpolate1(" ", col_r11, " ");
1148
647
  } }
1149
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
1150
- const _r6 = i0.ɵɵgetCurrentView();
1151
- i0.ɵɵelementStart(0, "div", 18);
1152
- i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template_div_click_0_listener($event) { const child_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.onDropdownItemClick(child_r7, $event)); });
1153
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_span_1_Template, 2, 1, "span", 20);
1154
- i0.ɵɵelementStart(2, "span", 21);
1155
- i0.ɵɵtext(3);
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);
657
+ } }
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);
1156
664
  i0.ɵɵelementEnd()();
1157
665
  } if (rf & 2) {
1158
- const child_r7 = ctx.$implicit;
1159
- const ctx_r1 = i0.ɵɵnextContext(6);
1160
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx_r1.actionPermissions && ctx_r1.actionPermissions.hasOwnProperty(child_r7.value) && ctx_r1.actionPermissions[child_r7.value] === false));
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));
1161
669
  i0.ɵɵadvance();
1162
- i0.ɵɵproperty("ngIf", child_r7.icon && ctx_r1.isSvgFile(child_r7.icon));
1163
- i0.ɵɵadvance(2);
1164
- i0.ɵɵtextInterpolate(child_r7.label);
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");
1165
676
  } }
1166
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_Template(rf, ctx) { if (rf & 1) {
1167
- i0.ɵɵelementStart(0, "div", 28);
1168
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_div_1_Template, 4, 5, "div", 17);
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... ");
1169
681
  i0.ɵɵelementEnd();
682
+ i0.ɵɵelementContainerEnd();
1170
683
  } if (rf & 2) {
1171
- const item_r5 = i0.ɵɵnextContext(2).$implicit;
1172
- i0.ɵɵproperty("ngClass", item_r5.submenuAlign);
1173
684
  i0.ɵɵadvance();
1174
- i0.ɵɵproperty("ngForOf", item_r5.children);
685
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c13));
1175
686
  } }
1176
- function ActionsCellComponent_div_2_div_6_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
687
+ function TableComponent_div_7_div_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {
1177
688
  i0.ɵɵelementContainerStart(0);
1178
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_span_1_Template, 2, 1, "span", 20);
1179
- i0.ɵɵelementStart(2, "span", 21);
1180
- i0.ɵɵtext(3);
689
+ i0.ɵɵelementStart(1, "div", 34);
690
+ i0.ɵɵtext(2, " No Data Available... ");
1181
691
  i0.ɵɵelementEnd();
1182
- i0.ɵɵelementStart(4, "span", 22);
1183
- i0.ɵɵnamespaceSVG();
1184
- i0.ɵɵelementStart(5, "svg", 23);
1185
- i0.ɵɵelement(6, "path", 24);
1186
- i0.ɵɵelementEnd()();
1187
- i0.ɵɵtemplate(7, ActionsCellComponent_div_2_div_6_div_1_ng_container_1_div_7_Template, 2, 2, "div", 25);
1188
692
  i0.ɵɵelementContainerEnd();
1189
693
  } if (rf & 2) {
1190
- const item_r5 = i0.ɵɵnextContext().$implicit;
694
+ 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) {
1191
702
  const ctx_r1 = i0.ɵɵnextContext(3);
1192
703
  i0.ɵɵadvance();
1193
- i0.ɵɵproperty("ngIf", item_r5.icon && ctx_r1.isSvgFile(item_r5.icon));
1194
- i0.ɵɵadvance(2);
1195
- i0.ɵɵtextInterpolate(item_r5.label);
1196
- i0.ɵɵadvance(4);
1197
- i0.ɵɵproperty("ngIf", item_r5.showSubmenu);
704
+ i0.ɵɵproperty("config", ctx_r1.subTableconfig)("tableData", ctx_r1.subTableData);
1198
705
  } }
1199
- function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template(rf, ctx) { if (rf & 1) {
1200
- i0.ɵɵelementStart(0, "span", 26);
1201
- i0.ɵɵelement(1, "img", 27);
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);
1202
709
  i0.ɵɵelementEnd();
1203
710
  } if (rf & 2) {
1204
- const item_r5 = i0.ɵɵnextContext(2).$implicit;
711
+ const ctx_r1 = i0.ɵɵnextContext(2);
712
+ i0.ɵɵadvance();
713
+ i0.ɵɵproperty("ngIf", ctx_r1.subTableDataLoading);
1205
714
  i0.ɵɵadvance();
1206
- i0.ɵɵproperty("src", item_r5.icon, i0.ɵɵsanitizeUrl);
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);
1207
718
  } }
1208
- function ActionsCellComponent_div_2_div_6_div_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
1209
- i0.ɵɵtemplate(0, ActionsCellComponent_div_2_div_6_div_1_ng_template_2_span_0_Template, 2, 1, "span", 20);
1210
- i0.ɵɵelementStart(1, "span", 21);
1211
- i0.ɵɵtext(2);
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);
1212
726
  i0.ɵɵelementEnd();
1213
727
  } if (rf & 2) {
1214
- const item_r5 = i0.ɵɵnextContext().$implicit;
1215
- const ctx_r1 = i0.ɵɵnextContext(3);
1216
- i0.ɵɵproperty("ngIf", item_r5.icon && ctx_r1.isSvgFile(item_r5.icon));
1217
- i0.ɵɵadvance(2);
1218
- i0.ɵɵtextInterpolate(item_r5.label);
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"));
733
+ 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);
737
+ } }
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);
743
+ 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);
1219
750
  } }
1220
- function ActionsCellComponent_div_2_div_6_div_1_Template(rf, ctx) { if (rf & 1) {
1221
- const _r4 = i0.ɵɵgetCurrentView();
1222
- i0.ɵɵelementStart(0, "div", 18);
1223
- i0.ɵɵlistener("click", function ActionsCellComponent_div_2_div_6_div_1_Template_div_click_0_listener($event) { const item_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onDropdownItemClick(item_r5, $event)); });
1224
- 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);
1225
- i0.ɵɵelementEnd();
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()();
1226
755
  } if (rf & 2) {
1227
- const item_r5 = ctx.$implicit;
1228
- const noChildren_r8 = i0.ɵɵreference(3);
1229
- const ctx_r1 = i0.ɵɵnextContext(3);
1230
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c0, ctx_r1.actionPermissions && ctx_r1.actionPermissions.hasOwnProperty(item_r5.value) && ctx_r1.actionPermissions[item_r5.value] === false));
1231
756
  i0.ɵɵadvance();
1232
- i0.ɵɵproperty("ngIf", item_r5.children == null ? null : item_r5.children.length)("ngIfElse", noChildren_r8);
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));
1233
762
  } }
1234
- function ActionsCellComponent_div_2_div_6_Template(rf, ctx) { if (rf & 1) {
1235
- i0.ɵɵelementStart(0, "div", 16);
1236
- i0.ɵɵtemplate(1, ActionsCellComponent_div_2_div_6_div_1_Template, 4, 5, "div", 17);
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);
1237
766
  i0.ɵɵelementEnd();
1238
767
  } if (rf & 2) {
1239
- const ctx_r1 = i0.ɵɵnextContext(2);
1240
- i0.ɵɵproperty("ngClass", ctx_r1.menuAlign);
768
+ const pageNumber_r17 = ctx.$implicit;
1241
769
  i0.ɵɵadvance();
1242
- i0.ɵɵproperty("ngForOf", ctx_r1.actionItems);
770
+ i0.ɵɵproperty("ngIf", pageNumber_r17 != 0);
771
+ i0.ɵɵadvance();
772
+ i0.ɵɵproperty("ngIf", pageNumber_r17 == 0);
1243
773
  } }
1244
- function ActionsCellComponent_div_2_Template(rf, ctx) { if (rf & 1) {
1245
- const _r3 = i0.ɵɵgetCurrentView();
1246
- i0.ɵɵelementStart(0, "div", 9)(1, "div", 10);
1247
- i0.ɵɵlistener("click", function ActionsCellComponent_div_2_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleDropdown($event)); });
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)); });
1248
781
  i0.ɵɵnamespaceSVG();
1249
- i0.ɵɵelementStart(2, "svg", 11);
1250
- i0.ɵɵelement(3, "circle", 12)(4, "circle", 13)(5, "circle", 14);
782
+ i0.ɵɵelementStart(5, "svg", 40);
783
+ i0.ɵɵelement(6, "path", 41);
1251
784
  i0.ɵɵelementEnd()();
1252
- i0.ɵɵtemplate(6, ActionsCellComponent_div_2_div_6_Template, 2, 2, "div", 15);
1253
- 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()()()();
1254
793
  } if (rf & 2) {
1255
794
  const ctx_r1 = i0.ɵɵnextContext();
1256
- i0.ɵɵadvance(6);
1257
- i0.ɵɵproperty("ngIf", ctx_r1.isDropdownOpen);
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);
1258
799
  } }
1259
- class ActionsCellComponent {
1260
- constructor() {
1261
- this.actionItems = [];
1262
- this.actionType = 'inline';
1263
- this.dropdownIcon = '';
1264
- this.submenuAlign = 'right';
1265
- this.menuAlign = 'left';
1266
- this._style = {};
1267
- this.containerStyle = {};
1268
- this.actionClick = new EventEmitter();
1269
- this.isDropdownOpen = false;
1270
- this.defaultDropdownIcon = `
1271
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
1272
- <circle cx="8" cy="4" r="2" fill="#333"/>
1273
- <circle cx="8" cy="8" r="2" fill="#333"/>
1274
- <circle cx="8" cy="12" r="2" fill="#333"/>
1275
- </svg>
1276
- `;
1277
- }
1278
- set style(value) {
1279
- this._style = value || {};
1280
- this.processStyle();
1281
- }
1282
- get style() {
1283
- return this._style;
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();
1284
821
  }
1285
- ngOnInit() { }
1286
- processStyle() {
1287
- // Remove width from style to avoid conflicts with table column width
1288
- const { width, ...restStyle } = this._style;
1289
- this.containerStyle = restStyle;
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);
1290
826
  }
1291
- onActionClick(item, event) {
1292
- event.stopPropagation();
1293
- // Check permissions before executing action
1294
- if (this.actionPermissions && this.actionPermissions.hasOwnProperty(item.value) && this.actionPermissions[item.value] === false) {
1295
- return;
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;
1296
835
  }
1297
- // Execute action only if permitted
1298
- if (item.action) {
1299
- item.action(this.data);
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
+ });
850
+ }
851
+ ngAfterViewInit() {
852
+ if (this.config.paginationConfig) {
853
+ let height = this.config.height;
854
+ this.renderer.setStyle(this.table.nativeElement, "height", height - 56 + "px");
1300
855
  }
1301
- this.actionClick.emit({ item, data: this.data });
1302
856
  }
1303
- trackByAction(index, item) {
1304
- return item.value;
857
+ ngOnChanges() {
858
+ this.tableLength = !!this.tableData ? this.tableData.length : 0;
859
+ this.activeRowIndex = this.config.activeRowIndex || 0;
1305
860
  }
1306
- isSvgFile(iconPath) {
1307
- if (!iconPath)
1308
- return false;
1309
- return iconPath.toLowerCase().includes('.svg') || iconPath.toLowerCase().includes('assets/icons/');
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
+ }
1310
878
  }
1311
- onDocumentClick() {
1312
- if (this.isDropdownOpen) {
1313
- this.isDropdownOpen = false;
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
+ };
894
+ }
895
+ else {
896
+ this.filterName = "";
897
+ this.filterData = [];
898
+ this.showFilter = false;
1314
899
  }
1315
900
  }
1316
- toggleDropdown(event) {
1317
- event.stopPropagation();
1318
- this.isDropdownOpen = !this.isDropdownOpen;
1319
- // Close all submenus when opening/closing main menu
1320
- this.actionItems.forEach((item) => item.showSubmenu = false);
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);
1321
910
  }
1322
- onDropdownItemClick(item, event) {
1323
- event.stopPropagation();
1324
- // Check permissions first
1325
- if (this.actionPermissions && this.actionPermissions.hasOwnProperty(item.value) && this.actionPermissions[item.value] === false) {
1326
- console.log('Action blocked: insufficient permissions');
1327
- return; // Don't close dropdown or execute action
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
+ }
1328
923
  }
1329
- if (item.disabled)
924
+ }
925
+ updateSelectedPage(pageNumber) {
926
+ if (pageNumber < 1 || pageNumber > this.config.paginationConfig.noOfPages)
1330
927
  return;
1331
- if (item.children) {
1332
- // Toggle submenu
1333
- item.showSubmenu = !item.showSubmenu;
1334
- // Optionally close other submenus
1335
- this.actionItems.forEach((i) => {
1336
- if (i !== item)
1337
- i.showSubmenu = false;
1338
- });
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
+ }
1339
940
  }
1340
- else {
1341
- // Handle action
1342
- if (item.action)
1343
- item.action(this.data);
1344
- this.actionClick.emit({ item, data: this.data });
1345
- this.isDropdownOpen = false; // Only close if action was executed
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
+ }
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
+ };
971
+ }
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
+ }
1346
987
  }
988
+ this.sortChange.emit(sortState);
1347
989
  }
1348
- static { this.ɵfac = function ActionsCellComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActionsCellComponent)(); }; }
1349
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionsCellComponent, selectors: [["mis-actions-cell"]], hostBindings: function ActionsCellComponent_HostBindings(rf, ctx) { if (rf & 1) {
1350
- i0.ɵɵlistener("click", function ActionsCellComponent_click_HostBindingHandler() { return ctx.onDocumentClick(); }, false, i0.ɵɵresolveDocument);
1351
- } }, inputs: { data: "data", actionItems: "actionItems", actionType: "actionType", dropdownIcon: "dropdownIcon", submenuAlign: "submenuAlign", menuAlign: "menuAlign", actionPermissions: "actionPermissions", 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", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "ngClass"], ["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", "20", "height", "20", "viewBox", "0 0 20 20", "fill", "none"], ["cx", "10", "cy", "4", "r", "2", "fill", "#333"], ["cx", "10", "cy", "10", "r", "2", "fill", "#333"], ["cx", "10", "cy", "16", "r", "2", "fill", "#333"], ["class", "dropdown-menu", 3, "ngClass", 4, "ngIf"], [1, "dropdown-menu", 3, "ngClass"], ["class", "dropdown-menu-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "dropdown-menu-item", 3, "click", "ngClass"], [4, "ngIf", "ngIfElse"], ["class", "dropdown-icon", 4, "ngIf"], [1, "dropdown-label"], [1, "submenu-arrow"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", "fill", "none"], ["d", "M9 6L15 12L9 18", "stroke", "#0D1321", "stroke-width", "2", "stroke-linecap", "round", "stroke-linejoin", "round"], ["class", "dropdown-submenu", 3, "ngClass", 4, "ngIf"], [1, "dropdown-icon"], [3, "src"], [1, "dropdown-submenu", 3, "ngClass"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
1352
- i0.ɵɵelementStart(0, "div", 1);
1353
- i0.ɵɵtemplate(1, ActionsCellComponent_div_1_Template, 2, 2, "div", 2)(2, ActionsCellComponent_div_2_Template, 7, 1, "div", 3);
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);
1354
1010
  i0.ɵɵelementEnd();
1355
1011
  } if (rf & 2) {
1356
- i0.ɵɵproperty("ngStyle", ctx.containerStyle);
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);
1015
+ 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());
1357
1019
  i0.ɵɵadvance();
1358
- i0.ɵɵproperty("ngIf", ctx.actionType === "inline");
1020
+ i0.ɵɵproperty("ngForOf", ctx.config == null ? null : ctx.config.colHeaderConfig);
1021
+ i0.ɵɵadvance(2);
1022
+ i0.ɵɵproperty("ngForOf", ctx.tableData);
1359
1023
  i0.ɵɵadvance();
1360
- i0.ɵɵproperty("ngIf", ctx.actionType === "dropdown");
1361
- } }, 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%;width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:1000;padding:8px 0}.dropdown-menu.left[_ngcontent-%COMP%]{right:0!important;left:auto!important}.dropdown-menu.right[_ngcontent-%COMP%]{left:0!important;right:auto!important}.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:132px;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;margin-right:4px}.submenu-arrow[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled[_ngcontent-%COMP%]{color:#181f33;filter:grayscale(100%) opacity(.3);cursor:not-allowed}"] }); }
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}"] }); }
1362
1026
  }
1363
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionsCellComponent, [{
1027
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
1364
1028
  type: Component,
1365
- 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': actionPermissions && actionPermissions.hasOwnProperty(item.value) && actionPermissions[item.value] === false }\"> \n <img *ngIf=\"isSvgFile(item.icon)\" [src]=\"item.icon\" [alt]=\"item.label\" class=\"action-icon-svg\" />\n </div>\n </div>\n\n <!-- Dropdown Actions -->\n <div *ngIf=\"actionType === 'dropdown'\" class=\"dropdown-actions\">\n <div class=\"dropdown-trigger\" (click)=\"toggleDropdown($event)\" title=\"More actions\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"4\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"10\" r=\"2\" fill=\"#333\" />\n <circle cx=\"10\" cy=\"16\" r=\"2\" fill=\"#333\" />\n </svg>\n </div>\n\n <div class=\"dropdown-menu\" \n *ngIf=\"isDropdownOpen\" \n [ngClass]=\"menuAlign\"\n >\n <div class=\"dropdown-menu-item\" *ngFor=\"let item of actionItems\" \n (click)=\"onDropdownItemClick(item, $event)\" [ngClass]=\"{ 'disabled': actionPermissions && actionPermissions.hasOwnProperty(item.value) && actionPermissions[item.value] === false }\">\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]=\"item.submenuAlign\"\n *ngIf=\"item.showSubmenu\">\n <div class=\"dropdown-menu-item\" *ngFor=\"let child of item.children\"\n [ngClass]=\"{ 'disabled': actionPermissions && actionPermissions.hasOwnProperty(child.value) && actionPermissions[child.value] === false }\"\n (click)=\"onDropdownItemClick(child, $event)\">\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%;width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;z-index:1000;padding:8px 0}.dropdown-menu.left{right:0!important;left:auto!important}.dropdown-menu.right{left:0!important;right:auto!important}.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:132px;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;margin-right:4px}.submenu-arrow{display:flex;align-items:center;margin-left:auto;z-index:9999}.dropdown-icon{display:flex;justify-content:center;align-items:center}.dropdown-menu-item.disabled{color:#181f33;filter:grayscale(100%) opacity(.3);cursor:not-allowed}\n"] }]
1366
- }], null, { data: [{
1367
- type: Input
1368
- }], actionItems: [{
1369
- type: Input
1370
- }], actionType: [{
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: [{
1371
1044
  type: Input
1372
- }], dropdownIcon: [{
1045
+ }], tableDataLoading: [{
1373
1046
  type: Input
1374
- }], submenuAlign: [{
1047
+ }], expandedIndex: [{
1375
1048
  type: Input
1376
- }], menuAlign: [{
1049
+ }], tableData: [{
1377
1050
  type: Input
1378
- }], actionPermissions: [{
1051
+ }], subTableData: [{
1379
1052
  type: Input
1380
- }], style: [{
1053
+ }], subTableDataLoading: [{
1381
1054
  type: Input
1382
- }], actionClick: [{
1055
+ }], table: [{
1056
+ type: ViewChild,
1057
+ args: ["table"]
1058
+ }], sortChange: [{
1383
1059
  type: Output
1384
- }], onDocumentClick: [{
1385
- type: HostListener,
1386
- args: ['document:click']
1387
1060
  }] }); })();
1388
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionsCellComponent, { className: "ActionsCellComponent" }); })();
1061
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TableComponent, { className: "TableComponent" }); })();
1389
1062
 
1390
1063
  class TableModule {
1391
1064
  static forRoot() {
@@ -1403,8 +1076,7 @@ class TableModule {
1403
1076
  SubTableComponent,
1404
1077
  TableFilterComponent,
1405
1078
  CustomTableCellDirective,
1406
- SortIconsDirective,
1407
- ActionsCellComponent
1079
+ SortIconsDirective
1408
1080
  ],
1409
1081
  imports: [CommonModule, CheckboxModule, ScrollingModule],
1410
1082
  exports: [
@@ -1412,8 +1084,7 @@ class TableModule {
1412
1084
  SubTableComponent,
1413
1085
  TableFilterComponent,
1414
1086
  CustomTableCellDirective,
1415
- SortIconsDirective,
1416
- ActionsCellComponent
1087
+ SortIconsDirective
1417
1088
  ]
1418
1089
  }]
1419
1090
  }], null, null); })();
@@ -1421,22 +1092,15 @@ class TableModule {
1421
1092
  SubTableComponent,
1422
1093
  TableFilterComponent,
1423
1094
  CustomTableCellDirective,
1424
- SortIconsDirective,
1425
- ActionsCellComponent], imports: [CommonModule, CheckboxModule, ScrollingModule], exports: [TableComponent,
1095
+ SortIconsDirective], imports: [CommonModule, CheckboxModule, ScrollingModule], exports: [TableComponent,
1426
1096
  SubTableComponent,
1427
1097
  TableFilterComponent,
1428
1098
  CustomTableCellDirective,
1429
- SortIconsDirective,
1430
- ActionsCellComponent] }); })();
1431
- i0.ɵɵsetComponentScope(TableComponent, [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, SubTableComponent,
1432
- TableFilterComponent,
1433
- CustomTableCellDirective,
1434
- SortIconsDirective,
1435
- ActionsCellComponent], []);
1099
+ SortIconsDirective] }); })();
1436
1100
 
1437
1101
  /**
1438
1102
  * Generated bundle index. Do not edit.
1439
1103
  */
1440
1104
 
1441
- export { ActionsCellComponent, CustomTableCellDirective, SortIconsDirective, SubTableComponent, TableComponent, TableFilterComponent, TableModule };
1105
+ export { CustomTableCellDirective, SortIconsDirective, SubTableComponent, TableComponent, TableFilterComponent, TableModule };
1442
1106
  //# sourceMappingURL=mis-crystal-design-system-table.mjs.map