mis-crystal-design-system 18.0.20 → 18.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/button/button.component.d.ts +2 -1
- package/esm2022/button/button.component.mjs +32 -18
- package/esm2022/table/actions-cell/actions-cell.component.mjs +143 -120
- package/esm2022/table/table.component.mjs +63 -44
- package/fesm2022/mis-crystal-design-system-button.mjs +31 -17
- package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +204 -162
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/package.json +7 -7
- package/table/actions-cell/actions-cell.component.d.ts +9 -10
- package/table/table.component.d.ts +13 -4
|
@@ -21,8 +21,8 @@ const _c7$1 = a0 => ({ "min-height": a0 });
|
|
|
21
21
|
const _c8 = a0 => ({ width: a0 });
|
|
22
22
|
const _c9 = a0 => ({ "t-col-container-hover": a0 });
|
|
23
23
|
const _c10 = (a0, a1) => ({ width: "100%", cursor: a0, "justify-content": a1 });
|
|
24
|
-
const _c11 = a0 => ({ color: a0 });
|
|
25
|
-
const _c12 = a0 => ({ "
|
|
24
|
+
const _c11 = (a0, a1) => ({ color: a0, "--collapsed-lines": a1 });
|
|
25
|
+
const _c12 = a0 => ({ "collapsed-cell": a0 });
|
|
26
26
|
const _c13 = a0 => ({ "disable-actions": a0 });
|
|
27
27
|
const _c14 = () => ({ display: "flex", justifyContent: "center", alignItems: "center", padding: "16px" });
|
|
28
28
|
const _c15 = a0 => ({ "page-active": a0 });
|
|
@@ -120,8 +120,9 @@ function TableComponent_div_7_div_2_p_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
120
120
|
const ctx_r13 = i0.ɵɵnextContext();
|
|
121
121
|
const col_r12 = ctx_r13.$implicit;
|
|
122
122
|
const i_r13 = ctx_r13.index;
|
|
123
|
-
const
|
|
124
|
-
|
|
123
|
+
const rowIndex_r15 = i0.ɵɵnextContext().index;
|
|
124
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
125
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(3, _c11, (ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r13] == null ? null : ctx_r1.config.colConfig[i_r13].style == null ? null : ctx_r1.config.colConfig[i_r13].style.color) || "", ctx_r1.previewLines || 3))("ngClass", i0.ɵɵpureFunction1(6, _c12, ctx_r1.collapseColIndex == i_r13 && ctx_r1.expandedMap[rowIndex_r15]));
|
|
125
126
|
i0.ɵɵadvance();
|
|
126
127
|
i0.ɵɵtextInterpolate1(" ", col_r12, " ");
|
|
127
128
|
} }
|
|
@@ -136,9 +137,9 @@ function TableComponent_div_7_div_2_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
136
137
|
i0.ɵɵproperty("customComponent", ctx_r1.config.colConfig[i_r13].componentRef)("data", col_r12);
|
|
137
138
|
} }
|
|
138
139
|
function TableComponent_div_7_div_2_mis_actions_cell_4_Template(rf, ctx) { if (rf & 1) {
|
|
139
|
-
const
|
|
140
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
140
141
|
i0.ɵɵelementStart(0, "mis-actions-cell", 37);
|
|
141
|
-
i0.ɵɵlistener("actionClick", function TableComponent_div_7_div_2_mis_actions_cell_4_Template_mis_actions_cell_actionClick_0_listener($event) { i0.ɵɵrestoreView(
|
|
142
|
+
i0.ɵɵlistener("actionClick", function TableComponent_div_7_div_2_mis_actions_cell_4_Template_mis_actions_cell_actionClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const rowIndex_r15 = i0.ɵɵnextContext(2).index; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onActionClick($event, rowIndex_r15)); });
|
|
142
143
|
i0.ɵɵelementEnd();
|
|
143
144
|
} if (rf & 2) {
|
|
144
145
|
const ctx_r13 = i0.ɵɵnextContext();
|
|
@@ -146,14 +147,14 @@ function TableComponent_div_7_div_2_mis_actions_cell_4_Template(rf, ctx) { if (r
|
|
|
146
147
|
const i_r13 = ctx_r13.index;
|
|
147
148
|
const row_r17 = i0.ɵɵnextContext().$implicit;
|
|
148
149
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
149
|
-
i0.ɵɵproperty("
|
|
150
|
+
i0.ɵɵproperty("cellData", col_r12)("config", ctx_r1.config.colConfig[i_r13])("ngClass", i0.ɵɵpureFunction1(3, _c13, ((ctx_r1.config.colConfig[i_r13] == null ? null : ctx_r1.config.colConfig[i_r13].actionType) === "checkbox" || (ctx_r1.config.colConfig[i_r13] == null ? null : ctx_r1.config.colConfig[i_r13].actionType) === "row-collapse") && ctx_r1.isRowDisabled(row_r17)));
|
|
150
151
|
} }
|
|
151
152
|
function TableComponent_div_7_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
152
153
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
153
154
|
i0.ɵɵelementStart(0, "div", 32);
|
|
154
155
|
i0.ɵɵlistener("click", function TableComponent_div_7_div_2_Template_div_click_0_listener() { const ctx_r10 = i0.ɵɵrestoreView(_r10); const col_r12 = ctx_r10.$implicit; const i_r13 = ctx_r10.index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r13] == null ? null : ctx_r1.config.colConfig[i_r13].action) && (ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r13] == null ? null : ctx_r1.config.colConfig[i_r13].actionType) !== "checkbox" ? ctx_r1.config == null ? null : ctx_r1.config.colConfig[i_r13] == null ? null : ctx_r1.config.colConfig[i_r13].action(col_r12) : null); });
|
|
155
156
|
i0.ɵɵelementStart(1, "div", 33);
|
|
156
|
-
i0.ɵɵtemplate(2, TableComponent_div_7_div_2_p_2_Template, 2,
|
|
157
|
+
i0.ɵɵtemplate(2, TableComponent_div_7_div_2_p_2_Template, 2, 8, "p", 34)(3, TableComponent_div_7_div_2_3_Template, 1, 2, null, 17)(4, TableComponent_div_7_div_2_mis_actions_cell_4_Template, 1, 5, "mis-actions-cell", 35);
|
|
157
158
|
i0.ɵɵelementEnd()();
|
|
158
159
|
} if (rf & 2) {
|
|
159
160
|
const i_r13 = ctx.index;
|
|
@@ -310,7 +311,7 @@ class TableComponent {
|
|
|
310
311
|
constructor(renderer) {
|
|
311
312
|
this.renderer = renderer;
|
|
312
313
|
// Initialize with -1 to indicate no row is colored at the beginning
|
|
313
|
-
this.activeRowIndex = [
|
|
314
|
+
this.activeRowIndex = [];
|
|
314
315
|
this.hasCheckboxActions = false;
|
|
315
316
|
this.selectAllCheckbox = false;
|
|
316
317
|
// Filter related variables
|
|
@@ -325,6 +326,10 @@ class TableComponent {
|
|
|
325
326
|
this.pageSelected = new EventEmitter();
|
|
326
327
|
this.tableData = [];
|
|
327
328
|
this.subTableData = [];
|
|
329
|
+
this.collapseColIndex = -1;
|
|
330
|
+
this.previewLines = 0;
|
|
331
|
+
this.rowCollapseConfigIndex = -1;
|
|
332
|
+
this.expandedMap = {};
|
|
328
333
|
// Sorting related properties
|
|
329
334
|
this.currentSort = null;
|
|
330
335
|
this.multiColumnSort = [];
|
|
@@ -362,6 +367,21 @@ class TableComponent {
|
|
|
362
367
|
}
|
|
363
368
|
}
|
|
364
369
|
});
|
|
370
|
+
// fetch collapseColIndex and previewLines if present
|
|
371
|
+
this.rowCollapseConfigIndex = this.config?.colConfig?.findIndex(col => col.type === 'actions' && col.actionType === 'row-collapse');
|
|
372
|
+
if (this.rowCollapseConfigIndex !== -1) {
|
|
373
|
+
this.collapseColIndex = this.config.colConfig[this.rowCollapseConfigIndex].collapseColumnIndex ?? null;
|
|
374
|
+
this.collapseColIndex = this.config.colConfig[this.rowCollapseConfigIndex].collapseColumnIndex ?? null;
|
|
375
|
+
this.previewLines = this.config.colConfig[this.rowCollapseConfigIndex].previewLines ?? null;
|
|
376
|
+
this.buildExpandedMap();
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
buildExpandedMap() {
|
|
380
|
+
this.expandedMap = {};
|
|
381
|
+
this.tableData.forEach((row, rowIndex) => {
|
|
382
|
+
this.expandedMap[`${rowIndex}`] =
|
|
383
|
+
row[this.rowCollapseConfigIndex];
|
|
384
|
+
});
|
|
365
385
|
}
|
|
366
386
|
ngAfterViewInit() {
|
|
367
387
|
if (this.config.paginationConfig) {
|
|
@@ -370,8 +390,10 @@ class TableComponent {
|
|
|
370
390
|
}
|
|
371
391
|
}
|
|
372
392
|
ngOnChanges() {
|
|
373
|
-
this.tableLength =
|
|
374
|
-
|
|
393
|
+
this.tableLength = this.tableData?.length ?? 0;
|
|
394
|
+
if (this.config.activeRowIndex !== null) {
|
|
395
|
+
this.activeRowIndex = Array.isArray(this.config.activeRowIndex) ? this.config.activeRowIndex : [this.config.activeRowIndex];
|
|
396
|
+
}
|
|
375
397
|
}
|
|
376
398
|
// Filter related functions
|
|
377
399
|
initializeFilters() {
|
|
@@ -515,40 +537,38 @@ class TableComponent {
|
|
|
515
537
|
return restStyle;
|
|
516
538
|
}
|
|
517
539
|
onActionClick(event, rowIndex) {
|
|
518
|
-
if (event.
|
|
519
|
-
|
|
520
|
-
if (event.isChecked) {
|
|
540
|
+
if (event.actionType === 'checkbox') {
|
|
541
|
+
if (event.value) {
|
|
521
542
|
this.activeRowIndex.push(rowIndex);
|
|
522
543
|
}
|
|
523
544
|
else {
|
|
524
545
|
this.activeRowIndex = this.activeRowIndex.filter(index => index !== rowIndex);
|
|
525
546
|
}
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
this.tableData[rowIndex][
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
};
|
|
547
|
+
const actionInfo = this.findActionConfig('checkbox');
|
|
548
|
+
if (actionInfo && this.tableData[rowIndex]) {
|
|
549
|
+
const { index, config } = actionInfo;
|
|
550
|
+
this.tableData[rowIndex][index] = event.value;
|
|
551
|
+
const checkedItems = this.tableData.filter(row => row[index] === true);
|
|
552
|
+
config.action?.(checkedItems);
|
|
533
553
|
}
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
checkboxConfig.action(checkedItems);
|
|
554
|
+
}
|
|
555
|
+
else if (event.actionType === 'row-collapse') {
|
|
556
|
+
const rowCollapse = this.findActionConfig('row-collapse');
|
|
557
|
+
if (rowCollapse && this.tableData[rowIndex]) {
|
|
558
|
+
this.tableData[rowIndex][rowCollapse.index] = event.value;
|
|
559
|
+
rowCollapse.config.action?.(this.tableData);
|
|
560
|
+
this.buildExpandedMap();
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
findActionConfig(actionType) {
|
|
565
|
+
for (let i = 0; i < this.config.colConfig.length; i++) {
|
|
566
|
+
const col = this.config.colConfig[i];
|
|
567
|
+
if (col.type === 'actions' && col.actionType === actionType) {
|
|
568
|
+
return { index: i, config: col };
|
|
550
569
|
}
|
|
551
570
|
}
|
|
571
|
+
return null;
|
|
552
572
|
}
|
|
553
573
|
isRowDisabled(row) {
|
|
554
574
|
return typeof this.config.rowConfig.disableRow === "function" ? this.config.rowConfig.disableRow(row) : false;
|
|
@@ -557,15 +577,14 @@ class TableComponent {
|
|
|
557
577
|
this.selectAllCheckbox = !this.selectAllCheckbox;
|
|
558
578
|
const checkboxColIndex = this.config.colConfig.findIndex(col => col.type === 'actions' && col.actionType === 'checkbox');
|
|
559
579
|
if (checkboxColIndex !== -1) {
|
|
560
|
-
const checkboxConfig = this.config.colConfig[checkboxColIndex];
|
|
561
580
|
this.tableData = this.tableData.map((row) => {
|
|
562
581
|
const updatedRow = [...row];
|
|
563
582
|
const currentCheckbox = updatedRow[checkboxColIndex];
|
|
564
|
-
const isDisabled =
|
|
583
|
+
const isDisabled = this.isRowDisabled(row);
|
|
565
584
|
if (!isDisabled) {
|
|
566
585
|
updatedRow[checkboxColIndex] = {
|
|
567
586
|
...currentCheckbox,
|
|
568
|
-
|
|
587
|
+
value: this.selectAllCheckbox
|
|
569
588
|
};
|
|
570
589
|
}
|
|
571
590
|
return updatedRow;
|
|
@@ -586,7 +605,7 @@ class TableComponent {
|
|
|
586
605
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
|
|
587
606
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.table = _t.first);
|
|
588
607
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.colHeaders = _t);
|
|
589
|
-
} }, inputs: { config: [0, "tableConfig", "config"], subTableconfig: "subTableconfig", tableDataLoading: "tableDataLoading", expandedIndex: "expandedIndex", tableData: "tableData", subTableData: "subTableData", subTableDataLoading: "subTableDataLoading" }, outputs: { filtersUpdated: "filtersUpdated", pageSelected: "pageSelected", sortChange: "sortChange", headerAction: "headerAction" }, 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"], ["class", "checkbox-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"], [1, "checkbox-icon", 3, "click"], [3, "checked"], ["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, "
|
|
608
|
+
} }, inputs: { config: [0, "tableConfig", "config"], subTableconfig: "subTableconfig", tableDataLoading: "tableDataLoading", expandedIndex: "expandedIndex", tableData: "tableData", subTableData: "subTableData", subTableDataLoading: "subTableDataLoading" }, outputs: { filtersUpdated: "filtersUpdated", pageSelected: "pageSelected", sortChange: "sortChange", headerAction: "headerAction" }, 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"], ["class", "checkbox-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"], [1, "checkbox-icon", 3, "click"], [3, "checked"], ["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, "cellData", "config", "ngClass", "actionClick", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle", "ngClass"], [3, "actionClick", "cellData", "config", "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"], ["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 page-jumping-enabled", 3, "ngClass", "click", 4, "ngIf"], ["class", "page-seperator", 4, "ngIf"], [1, "page", "page-jumping-enabled", 3, "click", "ngClass"], [1, "page-seperator"], [1, "dot", 3, "ngStyle"], [1, "dot"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
|
|
590
609
|
i0.ɵɵelementStart(0, "div", 3);
|
|
591
610
|
i0.ɵɵtemplate(1, TableComponent_mis_table_filter_1_Template, 2, 2, "mis-table-filter", 4);
|
|
592
611
|
i0.ɵɵelementStart(2, "div", 5, 0)(4, "div", 6);
|
|
@@ -611,11 +630,11 @@ class TableComponent {
|
|
|
611
630
|
i0.ɵɵproperty("ngForOf", ctx.tableData);
|
|
612
631
|
i0.ɵɵadvance();
|
|
613
632
|
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));
|
|
614
|
-
} }, 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 56px 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}.disabled-row[_ngcontent-%COMP%] .t-col-container[_ngcontent-%COMP%]{opacity:.4;pointer-events:none}.disabled-row[_ngcontent-%COMP%] .t-col-container[_ngcontent-%COMP%]:has(mis-actions-cell){opacity:1;pointer-events:auto}.row[_ngcontent-%COMP%]{transition:background-color .2s}.row[_ngcontent-%COMP%]:hover:not(.disabled-row), .row.selected[_ngcontent-%COMP%]:not(.disabled-row){background-color:#e6f5fd}.disabled-row[_ngcontent-%COMP%] .t-col-container[_ngcontent-%COMP%]{pointer-events:none;opacity:.4}.disabled-row[_ngcontent-%COMP%] .t-col-container[_ngcontent-%COMP%]:has(mis-actions-cell){pointer-events:auto!important;opacity:1!important;color:inherit!important}mis-actions-cell.disable-actions[_ngcontent-%COMP%]{pointer-events:none;opacity:.4;filter:grayscale(.5)}.page-nav-inactive[_ngcontent-%COMP%]{pointer-events:none;opacity:.5;cursor:default}"] }); }
|
|
633
|
+
} }, 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;min-width:0}.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 56px 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}.disabled-row[_ngcontent-%COMP%] .t-col-container[_ngcontent-%COMP%]{opacity:.4;pointer-events:none}.disabled-row[_ngcontent-%COMP%] .t-col-container[_ngcontent-%COMP%]:has(mis-actions-cell){opacity:1;pointer-events:auto}.row[_ngcontent-%COMP%]{transition:background-color .2s}.row[_ngcontent-%COMP%]:hover:not(.disabled-row), .row.selected[_ngcontent-%COMP%]:not(.disabled-row){background-color:#e6f5fd}.disabled-row[_ngcontent-%COMP%] .t-col-container[_ngcontent-%COMP%]{pointer-events:none;opacity:.4}.disabled-row[_ngcontent-%COMP%] .t-col-container[_ngcontent-%COMP%]:has(mis-actions-cell){pointer-events:auto!important;opacity:1!important;color:inherit!important}mis-actions-cell.disable-actions[_ngcontent-%COMP%]{pointer-events:none;opacity:.4;filter:grayscale(.5)}.page-nav-inactive[_ngcontent-%COMP%]{pointer-events:none;opacity:.5;cursor:default}.collapsed-cell[_ngcontent-%COMP%]{overflow:hidden!important;white-space:nowrap!important;text-overflow:ellipsis!important;display:block}@supports (-webkit-line-clamp: 2){.collapsed-cell[_ngcontent-%COMP%]{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:var(--collapsed-lines, 2);white-space:normal!important}}"] }); }
|
|
615
634
|
}
|
|
616
635
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
|
|
617
636
|
type: Component,
|
|
618
|
-
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' && colHeader?.type !== 'checkbox'\" 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\n (click)=\"toggleCheckbox(); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type === 'checkbox'\"\n class=\"checkbox-icon\"\n >\n <mis-checkbox [checked]=\"selectAllCheckbox\"></mis-checkbox>\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': activeRowIndex.includes(i) }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n [class.disabled-row]=\"isRowDisabled(row)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action && config?.colConfig[i]?.actionType !== 'checkbox' ? 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 [rowData]=\"col\"\n [config]=\"config.colConfig[i]\"\n [isChecked]=\"col.isChecked\"\n (actionClick)=\"onActionClick($event, rowIndex)\"\n [ngClass]=\"{\n 'disable-actions': config.colConfig[i]?.actionType === 'checkbox' && isRowDisabled(row)\n }\"\n ></mis-actions-cell>\n\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)=\"config.paginationConfig?.selectedPage > 1 && updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\" [class.page-nav-inactive]=\"config.paginationConfig?.selectedPage === 1\">\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 page-jumping-enabled\"\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 <span [class.page-nav-inactive]=\"config.paginationConfig?.selectedPage === config.paginationConfig?.noOfPages\"\n (click)=\"config.paginationConfig?.selectedPage < config.paginationConfig?.noOfPages && 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 56px 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}.disabled-row .t-col-container{opacity:.4;pointer-events:none}.disabled-row .t-col-container:has(mis-actions-cell){opacity:1;pointer-events:auto}.row{transition:background-color .2s}.row:hover:not(.disabled-row),.row.selected:not(.disabled-row){background-color:#e6f5fd}.disabled-row .t-col-container{pointer-events:none;opacity:.4}.disabled-row .t-col-container:has(mis-actions-cell){pointer-events:auto!important;opacity:1!important;color:inherit!important}mis-actions-cell.disable-actions{pointer-events:none;opacity:.4;filter:grayscale(.5)}.page-nav-inactive{pointer-events:none;opacity:.5;cursor:default}\n"] }]
|
|
637
|
+
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' && colHeader?.type !== 'checkbox'\" 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\n (click)=\"toggleCheckbox(); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type === 'checkbox'\"\n class=\"checkbox-icon\"\n >\n <mis-checkbox [checked]=\"selectAllCheckbox\"></mis-checkbox>\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': activeRowIndex.includes(i) }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n [class.disabled-row]=\"isRowDisabled(row)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action && config?.colConfig[i]?.actionType !== 'checkbox' ? 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 || '',\n '--collapsed-lines': previewLines || 3\n }\"\n [ngClass]=\"{\n 'collapsed-cell': collapseColIndex == i && expandedMap[rowIndex]\n }\" \n class=\"t-col-text\"\n >\n {{col}}\n </p>\n \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 [cellData]=\"col\"\n [config]=\"config.colConfig[i]\"\n (actionClick)=\"onActionClick($event, rowIndex)\"\n [ngClass]=\"{\n 'disable-actions': (config.colConfig[i]?.actionType === 'checkbox' || config.colConfig[i]?.actionType === 'row-collapse') && isRowDisabled(row)\n }\"\n ></mis-actions-cell>\n\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)=\"config.paginationConfig?.selectedPage > 1 && updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\" [class.page-nav-inactive]=\"config.paginationConfig?.selectedPage === 1\">\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 page-jumping-enabled\"\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 <span [class.page-nav-inactive]=\"config.paginationConfig?.selectedPage === config.paginationConfig?.noOfPages\"\n (click)=\"config.paginationConfig?.selectedPage < config.paginationConfig?.noOfPages && 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;min-width:0}.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 56px 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}.disabled-row .t-col-container{opacity:.4;pointer-events:none}.disabled-row .t-col-container:has(mis-actions-cell){opacity:1;pointer-events:auto}.row{transition:background-color .2s}.row:hover:not(.disabled-row),.row.selected:not(.disabled-row){background-color:#e6f5fd}.disabled-row .t-col-container{pointer-events:none;opacity:.4}.disabled-row .t-col-container:has(mis-actions-cell){pointer-events:auto!important;opacity:1!important;color:inherit!important}mis-actions-cell.disable-actions{pointer-events:none;opacity:.4;filter:grayscale(.5)}.page-nav-inactive{pointer-events:none;opacity:.5;cursor:default}.collapsed-cell{overflow:hidden!important;white-space:nowrap!important;text-overflow:ellipsis!important;display:block}@supports (-webkit-line-clamp: 2){.collapsed-cell{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:var(--collapsed-lines, 2);white-space:normal!important}}\n"] }]
|
|
619
638
|
}], () => [{ type: i0.Renderer2 }], { filtersUpdated: [{
|
|
620
639
|
type: Output
|
|
621
640
|
}], filter: [{
|
|
@@ -1193,9 +1212,9 @@ const _c1 = ["dropdownTrigger"];
|
|
|
1193
1212
|
const _c2 = a0 => ({ disabled: a0 });
|
|
1194
1213
|
function ActionsCellComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
1195
1214
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
1196
|
-
i0.ɵɵelementStart(0, "div",
|
|
1215
|
+
i0.ɵɵelementStart(0, "div", 10);
|
|
1197
1216
|
i0.ɵɵlistener("click", function ActionsCellComponent_div_1_div_1_Template_div_click_0_listener($event) { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onActionClick(item_r2, $event)); });
|
|
1198
|
-
i0.ɵɵelement(1, "img",
|
|
1217
|
+
i0.ɵɵelement(1, "img", 11);
|
|
1199
1218
|
i0.ɵɵelementEnd();
|
|
1200
1219
|
} if (rf & 2) {
|
|
1201
1220
|
const item_r2 = ctx.$implicit;
|
|
@@ -1205,8 +1224,8 @@ function ActionsCellComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
1205
1224
|
i0.ɵɵproperty("src", item_r2.icon, i0.ɵɵsanitizeUrl)("alt", item_r2.label);
|
|
1206
1225
|
} }
|
|
1207
1226
|
function ActionsCellComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
1208
|
-
i0.ɵɵelementStart(0, "div",
|
|
1209
|
-
i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_Template, 2, 5, "div",
|
|
1227
|
+
i0.ɵɵelementStart(0, "div", 8);
|
|
1228
|
+
i0.ɵɵtemplate(1, ActionsCellComponent_div_1_div_1_Template, 2, 5, "div", 9);
|
|
1210
1229
|
i0.ɵɵelementEnd();
|
|
1211
1230
|
} if (rf & 2) {
|
|
1212
1231
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -1215,172 +1234,194 @@ function ActionsCellComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
1215
1234
|
} }
|
|
1216
1235
|
function ActionsCellComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
1217
1236
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
1218
|
-
i0.ɵɵelementStart(0, "div",
|
|
1237
|
+
i0.ɵɵelementStart(0, "div", 12)(1, "div", 13, 1);
|
|
1219
1238
|
i0.ɵɵlistener("click", function ActionsCellComponent_div_2_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleDropdown($event)); });
|
|
1220
1239
|
i0.ɵɵnamespaceSVG();
|
|
1221
|
-
i0.ɵɵelementStart(3, "svg",
|
|
1222
|
-
i0.ɵɵelement(4, "circle",
|
|
1240
|
+
i0.ɵɵelementStart(3, "svg", 14);
|
|
1241
|
+
i0.ɵɵelement(4, "circle", 15)(5, "circle", 16)(6, "circle", 17);
|
|
1223
1242
|
i0.ɵɵelementEnd()()();
|
|
1224
1243
|
} }
|
|
1225
1244
|
function ActionsCellComponent_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
1226
1245
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
1227
|
-
i0.ɵɵelementStart(0, "div",
|
|
1228
|
-
i0.ɵɵlistener("valueChange", function ActionsCellComponent_div_3_Template_mis_checkbox_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.
|
|
1246
|
+
i0.ɵɵelementStart(0, "div", 18)(1, "mis-checkbox", 19);
|
|
1247
|
+
i0.ɵɵlistener("valueChange", function ActionsCellComponent_div_3_Template_mis_checkbox_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onClick($event)); });
|
|
1229
1248
|
i0.ɵɵelementEnd()();
|
|
1230
1249
|
} if (rf & 2) {
|
|
1231
1250
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
1232
1251
|
i0.ɵɵadvance();
|
|
1233
|
-
i0.ɵɵproperty("checked", ctx_r2.
|
|
1252
|
+
i0.ɵɵproperty("checked", ctx_r2.currentState)("disabled", ctx_r2.disable ? ctx_r2.disable(ctx_r2.currentState) : false);
|
|
1234
1253
|
} }
|
|
1235
|
-
function
|
|
1236
|
-
i0.ɵɵ
|
|
1237
|
-
i0.ɵɵ
|
|
1254
|
+
function ActionsCellComponent_div_4__svg_svg_2_Template(rf, ctx) { if (rf & 1) {
|
|
1255
|
+
i0.ɵɵnamespaceSVG();
|
|
1256
|
+
i0.ɵɵelementStart(0, "svg", 23);
|
|
1257
|
+
i0.ɵɵelement(1, "path", 24);
|
|
1238
1258
|
i0.ɵɵelementEnd();
|
|
1259
|
+
} }
|
|
1260
|
+
function ActionsCellComponent_div_4__svg_svg_3_Template(rf, ctx) { if (rf & 1) {
|
|
1261
|
+
i0.ɵɵnamespaceSVG();
|
|
1262
|
+
i0.ɵɵelementStart(0, "svg", 23);
|
|
1263
|
+
i0.ɵɵelement(1, "path", 25);
|
|
1264
|
+
i0.ɵɵelementEnd();
|
|
1265
|
+
} }
|
|
1266
|
+
function ActionsCellComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
1267
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
1268
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 21);
|
|
1269
|
+
i0.ɵɵlistener("click", function ActionsCellComponent_div_4_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onClick($event)); });
|
|
1270
|
+
i0.ɵɵtemplate(2, ActionsCellComponent_div_4__svg_svg_2_Template, 2, 0, "svg", 22)(3, ActionsCellComponent_div_4__svg_svg_3_Template, 2, 0, "svg", 22);
|
|
1271
|
+
i0.ɵɵelementEnd()();
|
|
1239
1272
|
} if (rf & 2) {
|
|
1240
|
-
const
|
|
1273
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
1274
|
+
i0.ɵɵadvance();
|
|
1275
|
+
i0.ɵɵproperty("title", ctx_r2.currentState ? "Expand" : "Collapse");
|
|
1276
|
+
i0.ɵɵadvance();
|
|
1277
|
+
i0.ɵɵproperty("ngIf", ctx_r2.currentState);
|
|
1241
1278
|
i0.ɵɵadvance();
|
|
1242
|
-
i0.ɵɵproperty("
|
|
1279
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.currentState);
|
|
1243
1280
|
} }
|
|
1244
|
-
function
|
|
1245
|
-
i0.ɵɵelementStart(0, "span",
|
|
1246
|
-
i0.ɵɵelement(1, "img",
|
|
1281
|
+
function ActionsCellComponent_ng_template_5_div_1_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
1282
|
+
i0.ɵɵelementStart(0, "span", 36);
|
|
1283
|
+
i0.ɵɵelement(1, "img", 37);
|
|
1247
1284
|
i0.ɵɵelementEnd();
|
|
1248
1285
|
} if (rf & 2) {
|
|
1249
|
-
const
|
|
1286
|
+
const item_r8 = i0.ɵɵnextContext(2).$implicit;
|
|
1250
1287
|
i0.ɵɵadvance();
|
|
1251
|
-
i0.ɵɵproperty("src",
|
|
1288
|
+
i0.ɵɵproperty("src", item_r8.icon, i0.ɵɵsanitizeUrl);
|
|
1252
1289
|
} }
|
|
1253
|
-
function
|
|
1254
|
-
|
|
1255
|
-
i0.ɵɵ
|
|
1256
|
-
i0.ɵɵ
|
|
1257
|
-
|
|
1258
|
-
i0.ɵɵ
|
|
1290
|
+
function ActionsCellComponent_ng_template_5_div_1_ng_container_1_div_7_div_1_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
1291
|
+
i0.ɵɵelementStart(0, "span", 36);
|
|
1292
|
+
i0.ɵɵelement(1, "img", 37);
|
|
1293
|
+
i0.ɵɵelementEnd();
|
|
1294
|
+
} if (rf & 2) {
|
|
1295
|
+
const child_r10 = i0.ɵɵnextContext().$implicit;
|
|
1296
|
+
i0.ɵɵadvance();
|
|
1297
|
+
i0.ɵɵproperty("src", child_r10.icon, i0.ɵɵsanitizeUrl);
|
|
1298
|
+
} }
|
|
1299
|
+
function ActionsCellComponent_ng_template_5_div_1_ng_container_1_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
1300
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
1301
|
+
i0.ɵɵelementStart(0, "div", 28);
|
|
1302
|
+
i0.ɵɵlistener("click", function ActionsCellComponent_ng_template_5_div_1_ng_container_1_div_7_div_1_Template_div_click_0_listener($event) { const child_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.onDropdownItemClick(child_r10, $event)); });
|
|
1303
|
+
i0.ɵɵtemplate(1, ActionsCellComponent_ng_template_5_div_1_ng_container_1_div_7_div_1_span_1_Template, 2, 1, "span", 30);
|
|
1304
|
+
i0.ɵɵelementStart(2, "span", 31);
|
|
1259
1305
|
i0.ɵɵtext(3);
|
|
1260
1306
|
i0.ɵɵelementEnd()();
|
|
1261
1307
|
} if (rf & 2) {
|
|
1262
|
-
const
|
|
1308
|
+
const child_r10 = ctx.$implicit;
|
|
1263
1309
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
1264
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c2, ctx_r2.isDisabled(
|
|
1310
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c2, ctx_r2.isDisabled(child_r10)));
|
|
1265
1311
|
i0.ɵɵadvance();
|
|
1266
|
-
i0.ɵɵproperty("ngIf",
|
|
1312
|
+
i0.ɵɵproperty("ngIf", child_r10.icon);
|
|
1267
1313
|
i0.ɵɵadvance(2);
|
|
1268
|
-
i0.ɵɵtextInterpolate(
|
|
1314
|
+
i0.ɵɵtextInterpolate(child_r10.label);
|
|
1269
1315
|
} }
|
|
1270
|
-
function
|
|
1271
|
-
i0.ɵɵelementStart(0, "div",
|
|
1272
|
-
i0.ɵɵtemplate(1,
|
|
1316
|
+
function ActionsCellComponent_ng_template_5_div_1_ng_container_1_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
1317
|
+
i0.ɵɵelementStart(0, "div", 38);
|
|
1318
|
+
i0.ɵɵtemplate(1, ActionsCellComponent_ng_template_5_div_1_ng_container_1_div_7_div_1_Template, 4, 5, "div", 27);
|
|
1273
1319
|
i0.ɵɵelementEnd();
|
|
1274
1320
|
} if (rf & 2) {
|
|
1275
|
-
const
|
|
1276
|
-
i0.ɵɵproperty("ngClass", item_r7.submenuAlign);
|
|
1321
|
+
const item_r8 = i0.ɵɵnextContext(2).$implicit;
|
|
1277
1322
|
i0.ɵɵadvance();
|
|
1278
|
-
i0.ɵɵproperty("ngForOf",
|
|
1323
|
+
i0.ɵɵproperty("ngForOf", item_r8.children);
|
|
1279
1324
|
} }
|
|
1280
|
-
function
|
|
1325
|
+
function ActionsCellComponent_ng_template_5_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
1281
1326
|
i0.ɵɵelementContainerStart(0);
|
|
1282
|
-
i0.ɵɵtemplate(1,
|
|
1283
|
-
i0.ɵɵelementStart(2, "span",
|
|
1327
|
+
i0.ɵɵtemplate(1, ActionsCellComponent_ng_template_5_div_1_ng_container_1_span_1_Template, 2, 1, "span", 30);
|
|
1328
|
+
i0.ɵɵelementStart(2, "span", 31);
|
|
1284
1329
|
i0.ɵɵtext(3);
|
|
1285
1330
|
i0.ɵɵelementEnd();
|
|
1286
|
-
i0.ɵɵelementStart(4, "span",
|
|
1331
|
+
i0.ɵɵelementStart(4, "span", 32);
|
|
1287
1332
|
i0.ɵɵnamespaceSVG();
|
|
1288
|
-
i0.ɵɵelementStart(5, "svg",
|
|
1289
|
-
i0.ɵɵelement(6, "path",
|
|
1333
|
+
i0.ɵɵelementStart(5, "svg", 33);
|
|
1334
|
+
i0.ɵɵelement(6, "path", 34);
|
|
1290
1335
|
i0.ɵɵelementEnd()();
|
|
1291
|
-
i0.ɵɵtemplate(7,
|
|
1336
|
+
i0.ɵɵtemplate(7, ActionsCellComponent_ng_template_5_div_1_ng_container_1_div_7_Template, 2, 1, "div", 35);
|
|
1292
1337
|
i0.ɵɵelementContainerEnd();
|
|
1293
1338
|
} if (rf & 2) {
|
|
1294
|
-
const
|
|
1339
|
+
const item_r8 = i0.ɵɵnextContext().$implicit;
|
|
1295
1340
|
i0.ɵɵadvance();
|
|
1296
|
-
i0.ɵɵproperty("ngIf",
|
|
1341
|
+
i0.ɵɵproperty("ngIf", item_r8.icon);
|
|
1297
1342
|
i0.ɵɵadvance(2);
|
|
1298
|
-
i0.ɵɵtextInterpolate(
|
|
1343
|
+
i0.ɵɵtextInterpolate(item_r8.label);
|
|
1299
1344
|
i0.ɵɵadvance(4);
|
|
1300
|
-
i0.ɵɵproperty("ngIf",
|
|
1345
|
+
i0.ɵɵproperty("ngIf", item_r8.showSubmenu);
|
|
1301
1346
|
} }
|
|
1302
|
-
function
|
|
1303
|
-
i0.ɵɵelementStart(0, "span",
|
|
1304
|
-
i0.ɵɵelement(1, "img",
|
|
1347
|
+
function ActionsCellComponent_ng_template_5_div_1_ng_template_2_span_0_Template(rf, ctx) { if (rf & 1) {
|
|
1348
|
+
i0.ɵɵelementStart(0, "span", 36);
|
|
1349
|
+
i0.ɵɵelement(1, "img", 37);
|
|
1305
1350
|
i0.ɵɵelementEnd();
|
|
1306
1351
|
} if (rf & 2) {
|
|
1307
|
-
const
|
|
1352
|
+
const item_r8 = i0.ɵɵnextContext(2).$implicit;
|
|
1308
1353
|
i0.ɵɵadvance();
|
|
1309
|
-
i0.ɵɵproperty("src",
|
|
1354
|
+
i0.ɵɵproperty("src", item_r8.icon, i0.ɵɵsanitizeUrl);
|
|
1310
1355
|
} }
|
|
1311
|
-
function
|
|
1312
|
-
i0.ɵɵtemplate(0,
|
|
1313
|
-
i0.ɵɵelementStart(1, "span",
|
|
1356
|
+
function ActionsCellComponent_ng_template_5_div_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
1357
|
+
i0.ɵɵtemplate(0, ActionsCellComponent_ng_template_5_div_1_ng_template_2_span_0_Template, 2, 1, "span", 30);
|
|
1358
|
+
i0.ɵɵelementStart(1, "span", 31);
|
|
1314
1359
|
i0.ɵɵtext(2);
|
|
1315
1360
|
i0.ɵɵelementEnd();
|
|
1316
1361
|
} if (rf & 2) {
|
|
1317
|
-
const
|
|
1318
|
-
i0.ɵɵproperty("ngIf",
|
|
1362
|
+
const item_r8 = i0.ɵɵnextContext().$implicit;
|
|
1363
|
+
i0.ɵɵproperty("ngIf", item_r8.icon);
|
|
1319
1364
|
i0.ɵɵadvance(2);
|
|
1320
|
-
i0.ɵɵtextInterpolate(
|
|
1365
|
+
i0.ɵɵtextInterpolate(item_r8.label);
|
|
1321
1366
|
} }
|
|
1322
|
-
function
|
|
1323
|
-
const
|
|
1324
|
-
i0.ɵɵelementStart(0, "div",
|
|
1325
|
-
i0.ɵɵlistener("click", function
|
|
1326
|
-
i0.ɵɵtemplate(1,
|
|
1367
|
+
function ActionsCellComponent_ng_template_5_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
1368
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
1369
|
+
i0.ɵɵelementStart(0, "div", 28);
|
|
1370
|
+
i0.ɵɵlistener("click", function ActionsCellComponent_ng_template_5_div_1_Template_div_click_0_listener($event) { const item_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onDropdownItemClick(item_r8, $event)); });
|
|
1371
|
+
i0.ɵɵtemplate(1, ActionsCellComponent_ng_template_5_div_1_ng_container_1_Template, 8, 3, "ng-container", 29)(2, ActionsCellComponent_ng_template_5_div_1_ng_template_2_Template, 3, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
|
|
1327
1372
|
i0.ɵɵelementEnd();
|
|
1328
1373
|
} if (rf & 2) {
|
|
1329
|
-
const
|
|
1330
|
-
const
|
|
1374
|
+
const item_r8 = ctx.$implicit;
|
|
1375
|
+
const noChildren_r11 = i0.ɵɵreference(3);
|
|
1331
1376
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
1332
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c2, ctx_r2.isDisabled(
|
|
1377
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c2, ctx_r2.isDisabled(item_r8)));
|
|
1333
1378
|
i0.ɵɵadvance();
|
|
1334
|
-
i0.ɵɵproperty("ngIf",
|
|
1379
|
+
i0.ɵɵproperty("ngIf", item_r8.children == null ? null : item_r8.children.length)("ngIfElse", noChildren_r11);
|
|
1335
1380
|
} }
|
|
1336
|
-
function
|
|
1337
|
-
i0.ɵɵelementStart(0, "div",
|
|
1338
|
-
i0.ɵɵtemplate(1,
|
|
1381
|
+
function ActionsCellComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
|
|
1382
|
+
i0.ɵɵelementStart(0, "div", 26);
|
|
1383
|
+
i0.ɵɵtemplate(1, ActionsCellComponent_ng_template_5_div_1_Template, 4, 5, "div", 27);
|
|
1339
1384
|
i0.ɵɵelementEnd();
|
|
1340
1385
|
} if (rf & 2) {
|
|
1341
1386
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
1342
|
-
i0.ɵɵproperty("ngClass", ctx_r2.menuAlign);
|
|
1343
1387
|
i0.ɵɵadvance();
|
|
1344
1388
|
i0.ɵɵproperty("ngForOf", ctx_r2.actionItems);
|
|
1345
1389
|
} }
|
|
1346
1390
|
class ActionsCellComponent {
|
|
1347
|
-
set rowData(value) {
|
|
1348
|
-
if (this.actionType === 'checkbox') {
|
|
1349
|
-
// For checkbox, keep the rowData structure
|
|
1350
|
-
this.data = value?.rowData ?? {};
|
|
1351
|
-
this.isChecked = value?.isChecked ?? false;
|
|
1352
|
-
}
|
|
1353
|
-
else {
|
|
1354
|
-
// For other actions (dropdown, inline), use the value directly
|
|
1355
|
-
this.data = value;
|
|
1356
|
-
this.isChecked = false;
|
|
1357
|
-
}
|
|
1358
|
-
}
|
|
1359
|
-
set config(config) {
|
|
1360
|
-
this.actionItems = config?.actionItems,
|
|
1361
|
-
this.actionType = config.actionType,
|
|
1362
|
-
this.submenuAlign = config.submenuAlign,
|
|
1363
|
-
this.menuAlign = config.menuAlign;
|
|
1364
|
-
this._style = config.style;
|
|
1365
|
-
this.action = config.action;
|
|
1366
|
-
this.disable = config.disable;
|
|
1367
|
-
this.processStyle();
|
|
1368
|
-
}
|
|
1369
1391
|
constructor(overlay, viewContainerRef) {
|
|
1370
1392
|
this.overlay = overlay;
|
|
1371
1393
|
this.viewContainerRef = viewContainerRef;
|
|
1372
|
-
this.isChecked = false;
|
|
1373
1394
|
this.actionClick = new EventEmitter();
|
|
1374
1395
|
this.isDropdownOpen = false;
|
|
1375
1396
|
this.actionItems = [];
|
|
1376
1397
|
this.actionType = "inline";
|
|
1377
|
-
this.
|
|
1378
|
-
this.menuAlign = "left";
|
|
1398
|
+
this.currentState = false;
|
|
1379
1399
|
this._style = {};
|
|
1380
1400
|
this.containerStyle = {};
|
|
1381
1401
|
this.overlayRef = null;
|
|
1382
1402
|
}
|
|
1383
|
-
ngOnInit() {
|
|
1403
|
+
ngOnInit() {
|
|
1404
|
+
if (this.config) {
|
|
1405
|
+
this.actionItems = this.config.actionItems;
|
|
1406
|
+
this.actionType = this.config.actionType;
|
|
1407
|
+
this._style = this.config.style;
|
|
1408
|
+
this.action = this.config.action;
|
|
1409
|
+
this.disable = this.config.disable;
|
|
1410
|
+
this.processStyle();
|
|
1411
|
+
}
|
|
1412
|
+
if (this.cellData !== null) {
|
|
1413
|
+
const defaultStates = {
|
|
1414
|
+
'checkbox': false,
|
|
1415
|
+
'row-collapse': true,
|
|
1416
|
+
};
|
|
1417
|
+
if (this.actionType in defaultStates) {
|
|
1418
|
+
this.currentState = typeof this.cellData === 'boolean' ? this.cellData : defaultStates[this.actionType];
|
|
1419
|
+
}
|
|
1420
|
+
else {
|
|
1421
|
+
this.data = this.cellData;
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1384
1425
|
ngOnDestroy() {
|
|
1385
1426
|
this.closeDropdown();
|
|
1386
1427
|
}
|
|
@@ -1398,7 +1439,7 @@ class ActionsCellComponent {
|
|
|
1398
1439
|
if (item.action) {
|
|
1399
1440
|
item.action(this.data);
|
|
1400
1441
|
}
|
|
1401
|
-
this.actionClick.emit({ item
|
|
1442
|
+
this.actionClick.emit({ item });
|
|
1402
1443
|
}
|
|
1403
1444
|
trackByAction(index, item) {
|
|
1404
1445
|
return item.value;
|
|
@@ -1454,16 +1495,17 @@ class ActionsCellComponent {
|
|
|
1454
1495
|
this.isDropdownOpen = false;
|
|
1455
1496
|
}
|
|
1456
1497
|
getDropdownPositions() {
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
//
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
//
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1498
|
+
// Use CDK Overlay's flexible positioning - it will automatically choose the best position
|
|
1499
|
+
return [
|
|
1500
|
+
// Primary position: below and aligned to end (right)
|
|
1501
|
+
new ConnectionPositionPair({ originX: 'end', originY: 'bottom' }, { overlayX: 'end', overlayY: 'top' }, 0, 4),
|
|
1502
|
+
// Fallback position: above and aligned to end (right)
|
|
1503
|
+
new ConnectionPositionPair({ originX: 'end', originY: 'top' }, { overlayX: 'end', overlayY: 'bottom' }, 0, -4),
|
|
1504
|
+
// Fallback position: below and aligned to start (left)
|
|
1505
|
+
new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, 0, 4),
|
|
1506
|
+
// Fallback position: above and aligned to start (left)
|
|
1507
|
+
new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, 0, -4)
|
|
1508
|
+
];
|
|
1467
1509
|
}
|
|
1468
1510
|
onDropdownItemClick(item, event) {
|
|
1469
1511
|
event.stopPropagation();
|
|
@@ -1486,11 +1528,11 @@ class ActionsCellComponent {
|
|
|
1486
1528
|
this.closeDropdown(); // Only close if action was executed
|
|
1487
1529
|
}
|
|
1488
1530
|
}
|
|
1489
|
-
|
|
1490
|
-
this.
|
|
1531
|
+
onClick(event) {
|
|
1532
|
+
this.currentState = !this.currentState;
|
|
1491
1533
|
this.actionClick.emit({
|
|
1492
|
-
|
|
1493
|
-
|
|
1534
|
+
actionType: this.actionType,
|
|
1535
|
+
value: this.currentState
|
|
1494
1536
|
});
|
|
1495
1537
|
}
|
|
1496
1538
|
isDisabled(item) {
|
|
@@ -1509,11 +1551,11 @@ class ActionsCellComponent {
|
|
|
1509
1551
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownTrigger = _t.first);
|
|
1510
1552
|
} }, hostBindings: function ActionsCellComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
1511
1553
|
i0.ɵɵlistener("click", function ActionsCellComponent_click_HostBindingHandler() { return ctx.onDocumentClick(); }, false, i0.ɵɵresolveDocument);
|
|
1512
|
-
} }, inputs: {
|
|
1554
|
+
} }, inputs: { cellData: "cellData", config: "config" }, outputs: { actionClick: "actionClick" }, decls: 7, vars: 5, consts: [["dropdownMenu", ""], ["dropdownTrigger", ""], ["noChildren", ""], [1, "actions-cell-container", 3, "ngStyle"], ["class", "inline-actions", 4, "ngIf"], ["class", "dropdown-actions", 4, "ngIf"], ["class", "checkbox-actions", 4, "ngIf"], ["class", "collapse-toggle-action", 4, "ngIf"], [1, "inline-actions"], ["class", "action-item", 3, "ngClass", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "action-item", 3, "click", "ngClass"], [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"], [1, "checkbox-actions"], [3, "valueChange", "checked", "disabled"], [1, "collapse-toggle-action"], [1, "collapse-icon", 3, "click", "title"], ["width", "20", "height", "20", "viewBox", "0 0 24 24", 4, "ngIf"], ["width", "20", "height", "20", "viewBox", "0 0 24 24"], ["d", "M7 10l5 5 5-5", "stroke", "#0D1321", "stroke-width", "2", "fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], ["d", "M7 14l5-5 5 5", "stroke", "#0D1321", "stroke-width", "2", "fill", "none", "stroke-linecap", "round", "stroke-linejoin", "round"], [1, "dropdown-menu-overlay"], ["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", 4, "ngIf"], [1, "dropdown-icon"], [3, "src"], [1, "dropdown-submenu"]], template: function ActionsCellComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1513
1555
|
i0.ɵɵelementStart(0, "div", 3);
|
|
1514
1556
|
i0.ɵɵtemplate(1, ActionsCellComponent_div_1_Template, 2, 2, "div", 4)(2, ActionsCellComponent_div_2_Template, 7, 0, "div", 5)(3, ActionsCellComponent_div_3_Template, 2, 2, "div", 6);
|
|
1515
1557
|
i0.ɵɵelementEnd();
|
|
1516
|
-
i0.ɵɵtemplate(4,
|
|
1558
|
+
i0.ɵɵtemplate(4, ActionsCellComponent_div_4_Template, 4, 3, "div", 7)(5, ActionsCellComponent_ng_template_5_Template, 2, 1, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
1517
1559
|
} if (rf & 2) {
|
|
1518
1560
|
i0.ɵɵproperty("ngStyle", ctx.containerStyle);
|
|
1519
1561
|
i0.ɵɵadvance();
|
|
@@ -1522,14 +1564,14 @@ class ActionsCellComponent {
|
|
|
1522
1564
|
i0.ɵɵproperty("ngIf", ctx.actionType === "dropdown");
|
|
1523
1565
|
i0.ɵɵadvance();
|
|
1524
1566
|
i0.ɵɵproperty("ngIf", ctx.actionType === "checkbox");
|
|
1525
|
-
|
|
1567
|
+
i0.ɵɵadvance();
|
|
1568
|
+
i0.ɵɵproperty("ngIf", ctx.actionType === "row-collapse");
|
|
1569
|
+
} }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, i2$1.CheckboxComponent], 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;display:flex;align-items:center;justify-content:center}.dropdown-actions[_ngcontent-%COMP%]{position:relative}.dropdown-menu-overlay[_ngcontent-%COMP%]{width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1000}.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}.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[_ngcontent-%COMP%]{left:100%;margin-left: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}.checkbox-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}"] }); }
|
|
1526
1570
|
}
|
|
1527
1571
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionsCellComponent, [{
|
|
1528
1572
|
type: Component,
|
|
1529
|
-
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\n *ngFor=\"let item of actionItems; trackBy: trackByAction\"\n class=\"action-item\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n (click)=\"onActionClick(item, $event)\"\n >\n <img [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 #dropdownTrigger 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 </div>\n\n <!-- Checkbox Actions -->\n <div *ngIf=\"actionType === 'checkbox'\" class=\"checkbox-actions\">\n <mis-checkbox [checked]=\"
|
|
1530
|
-
}], () => [{ type: i1$1.Overlay }, { type: i0.ViewContainerRef }], {
|
|
1531
|
-
type: Input
|
|
1532
|
-
}], isChecked: [{
|
|
1573
|
+
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\n *ngFor=\"let item of actionItems; trackBy: trackByAction\"\n class=\"action-item\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n (click)=\"onActionClick(item, $event)\"\n >\n <img [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 #dropdownTrigger 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 </div>\n\n <!-- Checkbox Actions -->\n <div *ngIf=\"actionType === 'checkbox'\" class=\"checkbox-actions\">\n <mis-checkbox [checked]=\"currentState\" (valueChange)=\"onClick($event)\" [disabled]=\"disable ? disable(currentState) : false\"> </mis-checkbox>\n </div>\n</div>\n\n<!-- Collapse / Expand Actions -->\n<div *ngIf=\"actionType === 'row-collapse'\" class=\"collapse-toggle-action\">\n <div class=\"collapse-icon\" (click)=\"onClick($event)\" [title]=\"currentState ? 'Expand' : 'Collapse'\">\n <svg *ngIf=\"currentState\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M7 10l5 5 5-5\" stroke=\"#0D1321\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n <svg *ngIf=\"!currentState\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\">\n <path d=\"M7 14l5-5 5 5\" stroke=\"#0D1321\" stroke-width=\"2\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </div>\n</div>\n\n<!-- CDK Overlay Template for Dropdown Menu -->\n<ng-template #dropdownMenu>\n <div class=\"dropdown-menu-overlay\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let item of actionItems\"\n (click)=\"onDropdownItemClick(item, $event)\"\n [ngClass]=\"{ disabled: isDisabled(item) }\"\n >\n <ng-container *ngIf=\"item.children?.length; else noChildren\">\n <span class=\"dropdown-icon\" *ngIf=\"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\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n\n <!-- DYNAMIC SUBMENU -->\n <div class=\"dropdown-submenu\" *ngIf=\"item.showSubmenu\">\n <div\n class=\"dropdown-menu-item\"\n *ngFor=\"let child of item.children\"\n [ngClass]=\"{ disabled: isDisabled(child) }\"\n (click)=\"onDropdownItemClick(child, $event)\"\n >\n <span class=\"dropdown-icon\" *ngIf=\"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\">\n <img [src]=\"item.icon\" />\n </span>\n <span class=\"dropdown-label\">{{ item.label }}</span>\n </ng-template>\n </div>\n </div>\n</ng-template>\n", 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;display:flex;align-items:center;justify-content:center}.dropdown-actions{position:relative}.dropdown-menu-overlay{width:232px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f;padding:8px 0;z-index:1000}.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}.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{left:100%;margin-left: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}.checkbox-actions{display:flex;align-items:center;justify-content:center;width:100%;height:100%}\n"] }]
|
|
1574
|
+
}], () => [{ type: i1$1.Overlay }, { type: i0.ViewContainerRef }], { cellData: [{
|
|
1533
1575
|
type: Input
|
|
1534
1576
|
}], config: [{
|
|
1535
1577
|
type: Input
|