@acorex/components 20.4.7 → 20.4.9
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/command/index.d.ts +3 -1
- package/data-table/index.d.ts +9 -3
- package/fesm2022/acorex-components-command.mjs +13 -4
- package/fesm2022/acorex-components-command.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +24 -6
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/package.json +23 -23
|
@@ -37,6 +37,12 @@ class AXBaseDataTable extends MXBaseComponent {
|
|
|
37
37
|
* @defaultValue `parentId`
|
|
38
38
|
*/
|
|
39
39
|
this.parentField = undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Field name on each row that indicates whether the row has children (for showing expand icon).
|
|
42
|
+
*
|
|
43
|
+
* @defaultValue `hasChild`
|
|
44
|
+
*/
|
|
45
|
+
this.hasChildrenField = 'hasChild';
|
|
40
46
|
this.selectedRowsChange = new EventEmitter();
|
|
41
47
|
this._selectedRows = signal([], ...(ngDevMode ? [{ debugName: "_selectedRows" }] : []));
|
|
42
48
|
}
|
|
@@ -140,6 +146,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
140
146
|
type: Input
|
|
141
147
|
}], parentField: [{
|
|
142
148
|
type: Input
|
|
149
|
+
}], hasChildrenField: [{
|
|
150
|
+
type: Input
|
|
143
151
|
}], rowDetailsTemplate: [{
|
|
144
152
|
type: Input
|
|
145
153
|
}], selectedRowsChange: [{
|
|
@@ -361,7 +369,7 @@ class AXDataTableTextColumnComponent extends AXDataTableColumnComponent {
|
|
|
361
369
|
<ng-template #header>{{ caption }}</ng-template>
|
|
362
370
|
<ng-template #cell let-row>
|
|
363
371
|
<div class="ax-flex ax-items-center ax-gap-2">
|
|
364
|
-
@if (expandHandler) {
|
|
372
|
+
@if (expandHandler && (row.data?.[grid.hasChildrenField] !== false || (row.data?.children?.length ?? 0) > 0)) {
|
|
365
373
|
<div
|
|
366
374
|
(click)="handleExpandRow(row)"
|
|
367
375
|
class="ax-expand-handler"
|
|
@@ -399,7 +407,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
399
407
|
<ng-template #header>{{ caption }}</ng-template>
|
|
400
408
|
<ng-template #cell let-row>
|
|
401
409
|
<div class="ax-flex ax-items-center ax-gap-2">
|
|
402
|
-
@if (expandHandler) {
|
|
410
|
+
@if (expandHandler && (row.data?.[grid.hasChildrenField] !== false || (row.data?.children?.length ?? 0) > 0)) {
|
|
403
411
|
<div
|
|
404
412
|
(click)="handleExpandRow(row)"
|
|
405
413
|
class="ax-expand-handler"
|
|
@@ -1016,6 +1024,7 @@ class AXRowExpandColumnComponent extends AXDataTableColumnComponent {
|
|
|
1016
1024
|
], viewQueries: [{ propertyName: "_cellTemplate", first: true, predicate: ["cell"], descendants: true }, { propertyName: "_contentHeaderTemplate", first: true, predicate: ["header"], descendants: true }, { propertyName: "_contentFooterTemplate", first: true, predicate: ["footer"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
1017
1025
|
<ng-template #header></ng-template>
|
|
1018
1026
|
<ng-template #cell let-row>
|
|
1027
|
+
@if (row.data?.[grid.hasChildrenField] !== false || (row.data?.children?.length ?? 0) > 0) {
|
|
1019
1028
|
<div
|
|
1020
1029
|
(click)="handleExpandRow(row)"
|
|
1021
1030
|
class="ax-expand-handler"
|
|
@@ -1031,6 +1040,7 @@ class AXRowExpandColumnComponent extends AXDataTableColumnComponent {
|
|
|
1031
1040
|
}
|
|
1032
1041
|
}
|
|
1033
1042
|
</div>
|
|
1043
|
+
}
|
|
1034
1044
|
</ng-template>
|
|
1035
1045
|
<ng-template #footer></ng-template>
|
|
1036
1046
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
@@ -1042,6 +1052,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
1042
1052
|
template: `
|
|
1043
1053
|
<ng-template #header></ng-template>
|
|
1044
1054
|
<ng-template #cell let-row>
|
|
1055
|
+
@if (row.data?.[grid.hasChildrenField] !== false || (row.data?.children?.length ?? 0) > 0) {
|
|
1045
1056
|
<div
|
|
1046
1057
|
(click)="handleExpandRow(row)"
|
|
1047
1058
|
class="ax-expand-handler"
|
|
@@ -1057,6 +1068,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
1057
1068
|
}
|
|
1058
1069
|
}
|
|
1059
1070
|
</div>
|
|
1071
|
+
}
|
|
1060
1072
|
</ng-template>
|
|
1061
1073
|
<ng-template #footer></ng-template>
|
|
1062
1074
|
`,
|
|
@@ -1747,10 +1759,12 @@ class AXDataTableComponent extends AXBaseDataTable {
|
|
|
1747
1759
|
});
|
|
1748
1760
|
if (expandedItem[this.getDataSourceKey()] === item[this.getDataSourceKey()]) {
|
|
1749
1761
|
const isExpanded = !item?.__meta__?.expanded;
|
|
1762
|
+
const nextChildren = children ? this.toggleExpanded(children, expandedItem, item.children || []) : null;
|
|
1750
1763
|
return {
|
|
1751
1764
|
...item,
|
|
1752
1765
|
__meta__: { expanded: isExpanded, level: expandedItem?.__meta__?.level ?? 0 },
|
|
1753
|
-
children:
|
|
1766
|
+
children: nextChildren,
|
|
1767
|
+
[this.hasChildrenField]: nextChildren != null && nextChildren.length > 0,
|
|
1754
1768
|
};
|
|
1755
1769
|
}
|
|
1756
1770
|
else if (item.children) {
|
|
@@ -1773,7 +1787,11 @@ class AXDataTableComponent extends AXBaseDataTable {
|
|
|
1773
1787
|
newChildren.forEach((child) => {
|
|
1774
1788
|
child.__meta__ = { ...child.__meta__, level: (item.__meta__?.level || 0) + 1 };
|
|
1775
1789
|
});
|
|
1776
|
-
return {
|
|
1790
|
+
return {
|
|
1791
|
+
...item,
|
|
1792
|
+
children: cloneDeep(newChildren),
|
|
1793
|
+
[this.hasChildrenField]: newChildren.length > 0,
|
|
1794
|
+
};
|
|
1777
1795
|
}
|
|
1778
1796
|
else if (item.children) {
|
|
1779
1797
|
return { ...item, children: this.updateChildren(item.children, id, newChildren) };
|
|
@@ -2178,7 +2196,7 @@ class AXDataTableComponent extends AXBaseDataTable {
|
|
|
2178
2196
|
}
|
|
2179
2197
|
}
|
|
2180
2198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXDataTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2181
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXDataTableComponent, isStandalone: true, selector: "ax-data-table", inputs: { dataSource: "dataSource", selectedRows: "selectedRows", parentField: "parentField", rowDetailsTemplate: "rowDetailsTemplate", title: "title", rowTemplate: "rowTemplate", emptyTemplate: "emptyTemplate", noDataTemplate: "noDataTemplate", alternative: "alternative", showHeader: "showHeader", fixedHeader: "fixedHeader", showFooter: "showFooter", fixedFooter: "fixedFooter", itemHeight: "itemHeight", allowReordering: "allowReordering", paging: "paging", fetchDataMode: "fetchDataMode", loading: "loading", focusedRow: "focusedRow" }, outputs: { selectedRowsChange: "selectedRowsChange", focusedRowChange: "focusedRowChange", onRowClick: "onRowClick", onRowDbClick: "onRowDbClick", onColumnsOrderChanged: "onColumnsOrderChanged", onColumnSizeChanged: "onColumnSizeChanged", onPageChanged: "onPageChanged" }, host: { attributes: { "ngSkipHydration": "true" } }, providers: [
|
|
2199
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXDataTableComponent, isStandalone: true, selector: "ax-data-table", inputs: { dataSource: "dataSource", selectedRows: "selectedRows", parentField: "parentField", hasChildrenField: "hasChildrenField", rowDetailsTemplate: "rowDetailsTemplate", title: "title", rowTemplate: "rowTemplate", emptyTemplate: "emptyTemplate", noDataTemplate: "noDataTemplate", alternative: "alternative", showHeader: "showHeader", fixedHeader: "fixedHeader", showFooter: "showFooter", fixedFooter: "fixedFooter", itemHeight: "itemHeight", allowReordering: "allowReordering", paging: "paging", fetchDataMode: "fetchDataMode", loading: "loading", focusedRow: "focusedRow" }, outputs: { selectedRowsChange: "selectedRowsChange", focusedRowChange: "focusedRowChange", onRowClick: "onRowClick", onRowDbClick: "onRowDbClick", onColumnsOrderChanged: "onColumnsOrderChanged", onColumnSizeChanged: "onColumnSizeChanged", onPageChanged: "onPageChanged" }, host: { attributes: { "ngSkipHydration": "true" } }, providers: [
|
|
2182
2200
|
{ provide: AXBaseDataTable, useExisting: AXDataTableComponent },
|
|
2183
2201
|
AXUnsubscriber,
|
|
2184
2202
|
{ provide: AXComponent, useExisting: AXDataTableComponent },
|
|
@@ -2186,7 +2204,7 @@ class AXDataTableComponent extends AXBaseDataTable {
|
|
|
2186
2204
|
}
|
|
2187
2205
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXDataTableComponent, decorators: [{
|
|
2188
2206
|
type: Component,
|
|
2189
|
-
args: [{ selector: 'ax-data-table', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { ngSkipHydration: 'true' }, inputs: ['dataSource', 'selectedRows', 'parentField', 'rowDetailsTemplate', 'title'], outputs: ['selectedRowsChange'], providers: [
|
|
2207
|
+
args: [{ selector: 'ax-data-table', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { ngSkipHydration: 'true' }, inputs: ['dataSource', 'selectedRows', 'parentField', 'hasChildrenField', 'rowDetailsTemplate', 'title'], outputs: ['selectedRowsChange'], providers: [
|
|
2190
2208
|
{ provide: AXBaseDataTable, useExisting: AXDataTableComponent },
|
|
2191
2209
|
AXUnsubscriber,
|
|
2192
2210
|
{ provide: AXComponent, useExisting: AXDataTableComponent },
|