@ni/nimble-components 20.18.1 → 21.0.1
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/dist/all-components-bundle.js +395 -107
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +505 -480
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/label-provider/table/index.d.ts +3 -3
- package/dist/esm/label-provider/table/index.js +4 -4
- package/dist/esm/label-provider/table/index.js.map +1 -1
- package/dist/esm/label-provider/table/label-token-defaults.js +1 -1
- package/dist/esm/label-provider/table/label-token-defaults.js.map +1 -1
- package/dist/esm/label-provider/table/label-tokens.d.ts +1 -1
- package/dist/esm/label-provider/table/label-tokens.js +3 -3
- package/dist/esm/label-provider/table/label-tokens.js.map +1 -1
- package/dist/esm/table/components/group-row/index.d.ts +1 -1
- package/dist/esm/table/components/group-row/index.js +1 -1
- package/dist/esm/table/components/group-row/index.js.map +1 -1
- package/dist/esm/table/components/group-row/template.js +1 -1
- package/dist/esm/table/components/group-row/template.js.map +1 -1
- package/dist/esm/table/components/row/index.d.ts +1 -0
- package/dist/esm/table/components/row/index.js +6 -0
- package/dist/esm/table/components/row/index.js.map +1 -1
- package/dist/esm/table/components/row/template.js +1 -1
- package/dist/esm/table/components/row/template.js.map +1 -1
- package/dist/esm/table/index.d.ts +14 -4
- package/dist/esm/table/index.js +105 -77
- package/dist/esm/table/index.js.map +1 -1
- package/dist/esm/table/models/array-to-tree.d.ts +17 -0
- package/dist/esm/table/models/array-to-tree.js +83 -0
- package/dist/esm/table/models/array-to-tree.js.map +1 -0
- package/dist/esm/table/models/data-hierarchy-manager.d.ts +15 -0
- package/dist/esm/table/models/data-hierarchy-manager.js +64 -0
- package/dist/esm/table/models/data-hierarchy-manager.js.map +1 -0
- package/dist/esm/table/models/expansion-manager.d.ts +25 -0
- package/dist/esm/table/models/expansion-manager.js +73 -0
- package/dist/esm/table/models/expansion-manager.js.map +1 -0
- package/dist/esm/table/models/interactive-selection-manager.d.ts +1 -0
- package/dist/esm/table/models/interactive-selection-manager.js +13 -0
- package/dist/esm/table/models/interactive-selection-manager.js.map +1 -1
- package/dist/esm/table/models/selection-managers/selection-manager-base.js +6 -4
- package/dist/esm/table/models/selection-managers/selection-manager-base.js.map +1 -1
- package/dist/esm/table/models/table-update-tracker.d.ts +3 -1
- package/dist/esm/table/models/table-update-tracker.js +12 -1
- package/dist/esm/table/models/table-update-tracker.js.map +1 -1
- package/dist/esm/table/models/table-validator.d.ts +5 -3
- package/dist/esm/table/models/table-validator.js +14 -7
- package/dist/esm/table/models/table-validator.js.map +1 -1
- package/dist/esm/table/template.js +12 -8
- package/dist/esm/table/template.js.map +1 -1
- package/dist/esm/table/testing/table.pageobject.d.ts +4 -0
- package/dist/esm/table/testing/table.pageobject.js +24 -0
- package/dist/esm/table/testing/table.pageobject.js.map +1 -1
- package/dist/esm/table/types.d.ts +6 -3
- package/dist/esm/table/types.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Row as TanStackRow, Table as TanStackTable } from '@tanstack/table-core';
|
|
2
|
+
import type { TableNode, TableRecord } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Manages the expanded/collapsed state of rows in the table.
|
|
5
|
+
*
|
|
6
|
+
* We must track the expansion state separately from TanStack because:
|
|
7
|
+
* 1. TanStack does not support having a different initial expansion state per row unless explicitly
|
|
8
|
+
* specified for each row by ID. This causes problems in the nimble-table because we could have
|
|
9
|
+
* a different initial expansion state for group rows, parent rows, and parent rows with lazy
|
|
10
|
+
* loaded children.
|
|
11
|
+
* 2. TanStack does not remove entries from its expanded state when those rows are no longer present
|
|
12
|
+
* in the data. This is not ideal because the object maintaining the expansion state can grow unbounded.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ExpansionManager<TData extends TableRecord> {
|
|
15
|
+
private readonly tanStackTable;
|
|
16
|
+
private isInDefaultState;
|
|
17
|
+
private collapsedRows;
|
|
18
|
+
constructor(tanStackTable: TanStackTable<TableNode<TData>>);
|
|
19
|
+
isRowExpanded(row: TanStackRow<TableNode<TData>>): boolean;
|
|
20
|
+
toggleRowExpansion(row: TanStackRow<TableNode<TData>>): void;
|
|
21
|
+
collapseAll(): void;
|
|
22
|
+
reset(): void;
|
|
23
|
+
processDataUpdate(rows: TanStackRow<TableNode<TData>>[]): void;
|
|
24
|
+
private isRowExpandable;
|
|
25
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages the expanded/collapsed state of rows in the table.
|
|
3
|
+
*
|
|
4
|
+
* We must track the expansion state separately from TanStack because:
|
|
5
|
+
* 1. TanStack does not support having a different initial expansion state per row unless explicitly
|
|
6
|
+
* specified for each row by ID. This causes problems in the nimble-table because we could have
|
|
7
|
+
* a different initial expansion state for group rows, parent rows, and parent rows with lazy
|
|
8
|
+
* loaded children.
|
|
9
|
+
* 2. TanStack does not remove entries from its expanded state when those rows are no longer present
|
|
10
|
+
* in the data. This is not ideal because the object maintaining the expansion state can grow unbounded.
|
|
11
|
+
*/
|
|
12
|
+
export class ExpansionManager {
|
|
13
|
+
constructor(tanStackTable) {
|
|
14
|
+
this.tanStackTable = tanStackTable;
|
|
15
|
+
// This field represents whether or not the expanded state of **all** rows is in the default expanded
|
|
16
|
+
// state or not. Note that the default expanded state for a particular row type (group vs parent) can
|
|
17
|
+
// potentially be different (e.g. expanded for groups and collapsed for parent rows).
|
|
18
|
+
this.isInDefaultState = true;
|
|
19
|
+
this.collapsedRows = new Set();
|
|
20
|
+
}
|
|
21
|
+
isRowExpanded(row) {
|
|
22
|
+
if (!this.isRowExpandable(row)) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
return this.isInDefaultState || !this.collapsedRows.has(row.id);
|
|
26
|
+
}
|
|
27
|
+
toggleRowExpansion(row) {
|
|
28
|
+
if (!this.isRowExpandable(row)) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const wasExpanded = this.isRowExpanded(row);
|
|
32
|
+
this.isInDefaultState = false;
|
|
33
|
+
if (wasExpanded) {
|
|
34
|
+
this.collapsedRows.add(row.id);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.collapsedRows.delete(row.id);
|
|
38
|
+
}
|
|
39
|
+
row.toggleExpanded();
|
|
40
|
+
}
|
|
41
|
+
collapseAll() {
|
|
42
|
+
this.reset();
|
|
43
|
+
this.isInDefaultState = false;
|
|
44
|
+
const rows = this.tanStackTable.getRowModel().flatRows;
|
|
45
|
+
for (const row of rows) {
|
|
46
|
+
if (this.isRowExpandable(row)) {
|
|
47
|
+
this.collapsedRows.add(row.id);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
this.tanStackTable.toggleAllRowsExpanded(false);
|
|
51
|
+
}
|
|
52
|
+
reset() {
|
|
53
|
+
this.collapsedRows.clear();
|
|
54
|
+
this.isInDefaultState = true;
|
|
55
|
+
}
|
|
56
|
+
processDataUpdate(rows) {
|
|
57
|
+
if (this.isInDefaultState) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const updatedCollapsedRows = new Set();
|
|
61
|
+
for (const row of rows) {
|
|
62
|
+
const rowId = row.id;
|
|
63
|
+
if (this.collapsedRows.has(rowId)) {
|
|
64
|
+
updatedCollapsedRows.add(rowId);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
this.collapsedRows = updatedCollapsedRows;
|
|
68
|
+
}
|
|
69
|
+
isRowExpandable(row) {
|
|
70
|
+
return row.getIsGrouped() || row.subRows.length > 0;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=expansion-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expansion-manager.js","sourceRoot":"","sources":["../../../../src/table/models/expansion-manager.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAgB;IAOzB,YACqB,aAA8C;QAA9C,kBAAa,GAAb,aAAa,CAAiC;QAPnE,qGAAqG;QACrG,qGAAqG;QACrG,qFAAqF;QAC7E,qBAAgB,GAAG,IAAI,CAAC;QACxB,kBAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAIvC,CAAC;IAEG,aAAa,CAAC,GAAkC;QACnD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAEM,kBAAkB,CAAC,GAAkC;QACxD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;YAC5B,OAAO;SACV;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAClC;aAAM;YACH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACrC;QAED,GAAG,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAEM,WAAW;QACd,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAClC;SACJ;QACD,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACjC,CAAC;IAEM,iBAAiB,CAAC,IAAqC;QAC1D,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,OAAO;SACV;QAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC/B,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACnC;SACJ;QAED,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC;IAC9C,CAAC;IAEO,eAAe,CAAC,GAAkC;QACtD,OAAO,GAAG,CAAC,YAAY,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,CAAC;CACJ"}
|
|
@@ -13,5 +13,6 @@ export declare class InteractiveSelectionManager<TData extends TableRecord> {
|
|
|
13
13
|
handleActionMenuOpening(rowState: TableRowState | undefined): boolean;
|
|
14
14
|
handleSelectionModeChanged(selectionMode: TableRowSelectionMode): void;
|
|
15
15
|
handleSelectionReset(): void;
|
|
16
|
+
getCurrentSelectedRecordIds(): string[];
|
|
16
17
|
private createSelectionManager;
|
|
17
18
|
}
|
|
@@ -35,6 +35,19 @@ export class InteractiveSelectionManager {
|
|
|
35
35
|
handleSelectionReset() {
|
|
36
36
|
this.selectionManager.reset();
|
|
37
37
|
}
|
|
38
|
+
getCurrentSelectedRecordIds() {
|
|
39
|
+
const tanStackSelectionState = this.tanStackTable.options.state.rowSelection;
|
|
40
|
+
if (!tanStackSelectionState) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
const selectedRecordIds = [];
|
|
44
|
+
Object.entries(tanStackSelectionState).forEach(([recordId, isSelected]) => {
|
|
45
|
+
if (isSelected) {
|
|
46
|
+
selectedRecordIds.push(recordId);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
return selectedRecordIds;
|
|
50
|
+
}
|
|
38
51
|
createSelectionManager(selectionMode) {
|
|
39
52
|
switch (selectionMode) {
|
|
40
53
|
case TableRowSelectionMode.multiple:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-selection-manager.js","sourceRoot":"","sources":["../../../../src/table/models/interactive-selection-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,qBAAqB,EAExB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAEvF;;;GAGG;AACH,MAAM,OAAO,2BAA2B;IAIpC,YACI,aAA8C,EAC9C,aAAoC;QAEpC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvE,CAAC;IAEM,wBAAwB,CAC3B,QAAmC,EACnC,WAAoB,EACpB,QAAiB;QAEjB,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CACjD,QAAQ,EACR,WAAW,EACX,QAAQ,CACX,CAAC;IACN,CAAC;IAEM,cAAc,CACjB,QAAmC,EACnC,QAAiB,EACjB,OAAgB;QAEhB,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CACvC,QAAQ,EACR,QAAQ,EACR,OAAO,CACV,CAAC;IACN,CAAC;IAEM,uBAAuB,CAC1B,QAAmC;QAEnC,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAEM,0BAA0B,CAC7B,aAAoC;QAEpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvE,CAAC;IAEM,oBAAoB;QACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAEO,sBAAsB,CAC1B,aAAoC;QAEpC,QAAQ,aAAa,EAAE;YACnB,KAAK,qBAAqB,CAAC,QAAQ;gBAC/B,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACzD,KAAK,qBAAqB,CAAC,MAAM;gBAC7B,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1D,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5D;gBACI,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACvD;IACL,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"interactive-selection-manager.js","sourceRoot":"","sources":["../../../../src/table/models/interactive-selection-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,qBAAqB,EAExB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAEvF;;;GAGG;AACH,MAAM,OAAO,2BAA2B;IAIpC,YACI,aAA8C,EAC9C,aAAoC;QAEpC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvE,CAAC;IAEM,wBAAwB,CAC3B,QAAmC,EACnC,WAAoB,EACpB,QAAiB;QAEjB,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CACjD,QAAQ,EACR,WAAW,EACX,QAAQ,CACX,CAAC;IACN,CAAC;IAEM,cAAc,CACjB,QAAmC,EACnC,QAAiB,EACjB,OAAgB;QAEhB,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CACvC,QAAQ,EACR,QAAQ,EACR,OAAO,CACV,CAAC;IACN,CAAC;IAEM,uBAAuB,CAC1B,QAAmC;QAEnC,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAEM,0BAA0B,CAC7B,aAAoC;QAEpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvE,CAAC;IAEM,oBAAoB;QACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAEM,2BAA2B;QAC9B,MAAM,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;QAC7E,IAAI,CAAC,sBAAsB,EAAE;YACzB,OAAO,EAAE,CAAC;SACb;QAED,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAC1C,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE;YACvB,IAAI,UAAU,EAAE;gBACZ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACpC;QACL,CAAC,CACJ,CAAC;QACF,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAEO,sBAAsB,CAC1B,aAAoC;QAEpC,QAAQ,aAAa,EAAE;YACnB,KAAK,qBAAqB,CAAC,QAAQ;gBAC/B,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACzD,KAAK,qBAAqB,CAAC,MAAM;gBAC7B,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1D,KAAK,qBAAqB,CAAC,IAAI;gBAC3B,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5D;gBACI,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACvD;IACL,CAAC;CACJ"}
|
|
@@ -8,18 +8,20 @@ export class SelectionManagerBase {
|
|
|
8
8
|
}
|
|
9
9
|
reset() { }
|
|
10
10
|
toggleIsRowSelected(rowState, isSelecting) {
|
|
11
|
-
if (rowState.
|
|
11
|
+
if (rowState.isGroupRow
|
|
12
12
|
&& rowState.selectionState === TableRowSelectionState.selected) {
|
|
13
13
|
// Work around for https://github.com/TanStack/table/issues/4759
|
|
14
14
|
// Manually deselect all leaf rows when a fully selected group is being deselected.
|
|
15
15
|
this.deselectAllLeafRows(rowState.id);
|
|
16
16
|
}
|
|
17
17
|
else {
|
|
18
|
-
this.tanStackTable.getRow(rowState.id).toggleSelected(isSelecting
|
|
18
|
+
this.tanStackTable.getRow(rowState.id).toggleSelected(isSelecting, {
|
|
19
|
+
selectChildren: rowState.isGroupRow
|
|
20
|
+
});
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
23
|
selectSingleRow(rowState) {
|
|
22
|
-
if (rowState.
|
|
24
|
+
if (rowState.isGroupRow) {
|
|
23
25
|
throw new Error('function not intended to select grouped rows');
|
|
24
26
|
}
|
|
25
27
|
const currentSelection = this.tanStackTable.getState().rowSelection;
|
|
@@ -57,7 +59,7 @@ export class SelectionManagerBase {
|
|
|
57
59
|
}
|
|
58
60
|
return row
|
|
59
61
|
.getLeafRows()
|
|
60
|
-
.filter(leafRow => leafRow.
|
|
62
|
+
.filter(leafRow => !leafRow.getIsGrouped())
|
|
61
63
|
.map(leafRow => leafRow.id);
|
|
62
64
|
}
|
|
63
65
|
getAllOrderedRows() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-manager-base.js","sourceRoot":"","sources":["../../../../../src/table/models/selection-managers/selection-manager-base.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,sBAAsB,EAEzB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,OAAgB,oBAAoB;IAGtC,YAAmB,aAA8C;QAC7D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAgBM,KAAK,KAAU,CAAC;IAEb,mBAAmB,CACzB,QAAuB,EACvB,WAAqB;QAErB,IACI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"selection-manager-base.js","sourceRoot":"","sources":["../../../../../src/table/models/selection-managers/selection-manager-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Table } from '..';
|
|
2
2
|
import type { TableRecord } from '../types';
|
|
3
3
|
import { UpdateTracker } from '../../utilities/models/update-tracker';
|
|
4
|
-
declare const trackedItems: readonly ["rowIds", "groupRows", "columnIds", "columnSort", "columnWidths", "columnDefinition", "actionMenuSlots", "selectionMode"];
|
|
4
|
+
declare const trackedItems: readonly ["rowIds", "rowParentIds", "groupRows", "columnIds", "columnSort", "columnWidths", "columnDefinition", "actionMenuSlots", "selectionMode"];
|
|
5
5
|
/**
|
|
6
6
|
* Helper class to track what updates are needed to the table based on configuration
|
|
7
7
|
* changes.
|
|
@@ -11,6 +11,7 @@ export declare class TableUpdateTracker<TData extends TableRecord> extends Updat
|
|
|
11
11
|
private updateQueued;
|
|
12
12
|
constructor(table: Table<TData>);
|
|
13
13
|
get updateRowIds(): boolean;
|
|
14
|
+
get updateRowParentIds(): boolean;
|
|
14
15
|
get updateGroupRows(): boolean;
|
|
15
16
|
get updateColumnIds(): boolean;
|
|
16
17
|
get updateColumnSort(): boolean;
|
|
@@ -25,6 +26,7 @@ export declare class TableUpdateTracker<TData extends TableRecord> extends Updat
|
|
|
25
26
|
trackColumnPropertyChanged(changedColumnProperty: string): void;
|
|
26
27
|
trackColumnInstancesChanged(): void;
|
|
27
28
|
trackIdFieldNameChanged(): void;
|
|
29
|
+
trackParentIdFieldNameChanged(): void;
|
|
28
30
|
trackSelectionModeChanged(): void;
|
|
29
31
|
protected queueUpdate(): void;
|
|
30
32
|
}
|
|
@@ -11,6 +11,7 @@ const isColumnProperty = (changedProperty, ...args) => {
|
|
|
11
11
|
};
|
|
12
12
|
const trackedItems = [
|
|
13
13
|
'rowIds',
|
|
14
|
+
'rowParentIds',
|
|
14
15
|
'groupRows',
|
|
15
16
|
'columnIds',
|
|
16
17
|
'columnSort',
|
|
@@ -32,6 +33,9 @@ export class TableUpdateTracker extends UpdateTracker {
|
|
|
32
33
|
get updateRowIds() {
|
|
33
34
|
return this.isTracked('rowIds');
|
|
34
35
|
}
|
|
36
|
+
get updateRowParentIds() {
|
|
37
|
+
return this.isTracked('rowParentIds');
|
|
38
|
+
}
|
|
35
39
|
get updateGroupRows() {
|
|
36
40
|
return this.isTracked('groupRows');
|
|
37
41
|
}
|
|
@@ -55,13 +59,16 @@ export class TableUpdateTracker extends UpdateTracker {
|
|
|
55
59
|
}
|
|
56
60
|
get requiresTanStackUpdate() {
|
|
57
61
|
return (this.isTracked('rowIds')
|
|
62
|
+
|| this.isTracked('rowParentIds')
|
|
58
63
|
|| this.isTracked('columnSort')
|
|
59
64
|
|| this.isTracked('columnDefinition')
|
|
60
65
|
|| this.isTracked('groupRows')
|
|
61
66
|
|| this.isTracked('selectionMode'));
|
|
62
67
|
}
|
|
63
68
|
get requiresTanStackDataReset() {
|
|
64
|
-
return this.isTracked('rowIds')
|
|
69
|
+
return (this.isTracked('rowIds')
|
|
70
|
+
|| this.isTracked('columnDefinition')
|
|
71
|
+
|| this.isTracked('rowParentIds'));
|
|
65
72
|
}
|
|
66
73
|
trackAllStateChanged() {
|
|
67
74
|
this.trackAll();
|
|
@@ -106,6 +113,10 @@ export class TableUpdateTracker extends UpdateTracker {
|
|
|
106
113
|
this.track('rowIds');
|
|
107
114
|
this.queueUpdate();
|
|
108
115
|
}
|
|
116
|
+
trackParentIdFieldNameChanged() {
|
|
117
|
+
this.track('rowParentIds');
|
|
118
|
+
this.queueUpdate();
|
|
119
|
+
}
|
|
109
120
|
trackSelectionModeChanged() {
|
|
110
121
|
this.track('selectionMode');
|
|
111
122
|
this.queueUpdate();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-update-tracker.js","sourceRoot":"","sources":["../../../../src/table/models/table-update-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAI9C,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAE5F,MAAM,gBAAgB,GAAG,CACrB,eAAuB,EACvB,GAAG,IAA2B,EACvB,EAAE;IACT,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACpB,IAAI,eAAe,KAAK,GAAG,EAAE;YACzB,OAAO,IAAI,CAAC;SACf;KACJ;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG;IACjB,QAAQ;IACR,WAAW;IACX,WAAW;IACX,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;CACT,CAAC;AAEX;;;GAGG;AACH,MAAM,OAAO,kBAEX,SAAQ,aAAkC;IAGxC,YAAoC,KAAmB;QACnD,KAAK,CAAC,YAAY,CAAC,CAAC;QADY,UAAK,GAAL,KAAK,CAAc;QAF/C,iBAAY,GAAG,KAAK,CAAC;IAI7B,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,IAAW,sBAAsB;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAC9C,CAAC;IAED,IAAW,qBAAqB;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IAED,IAAW,sBAAsB;QAC7B,OAAO,CACH,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;eACrB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;eAC5B,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;eAClC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;eAC3B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CACrC,CAAC;IACN,CAAC;IAED,IAAW,yBAAyB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"table-update-tracker.js","sourceRoot":"","sources":["../../../../src/table/models/table-update-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { TableColumn } from '../../table-column/base';
|
|
2
|
-
import {
|
|
2
|
+
import { TableRecord, TableRowSelectionMode, TableValidity } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* Helper class for the nimble-table to validate that the table's configuration
|
|
5
5
|
* is valid and report which aspects of the configuration are valid or invalid.
|
|
6
6
|
*/
|
|
7
|
-
export declare class TableValidator<TData extends
|
|
7
|
+
export declare class TableValidator<TData extends TableRecord> {
|
|
8
8
|
private duplicateRecordId;
|
|
9
9
|
private missingRecordId;
|
|
10
10
|
private invalidRecordId;
|
|
@@ -14,16 +14,18 @@ export declare class TableValidator<TData extends TableNode> {
|
|
|
14
14
|
private duplicateGroupIndex;
|
|
15
15
|
private idFieldNameNotConfigured;
|
|
16
16
|
private invalidColumnConfiguration;
|
|
17
|
+
private invalidParentIdConfiguration;
|
|
17
18
|
private readonly recordIds;
|
|
18
19
|
getValidity(): TableValidity;
|
|
19
20
|
isValid(): boolean;
|
|
20
21
|
areRecordIdsValid(): boolean;
|
|
21
|
-
|
|
22
|
+
validateIdFieldConfiguration(selectionMode: TableRowSelectionMode, idFieldName: string | undefined, parentIdFieldName: string | undefined): boolean;
|
|
22
23
|
validateRecordIds(data: readonly TData[], idFieldName: string | undefined): boolean;
|
|
23
24
|
validateColumnIds(columnIds: readonly (string | undefined)[]): boolean;
|
|
24
25
|
validateColumnSortIndices(sortIndices: readonly number[]): boolean;
|
|
25
26
|
validateColumnGroupIndices(groupIndices: readonly number[]): boolean;
|
|
26
27
|
validateColumnConfigurations(columns: readonly TableColumn[]): boolean;
|
|
27
28
|
getPresentRecordIds(requestedRecordIds: readonly string[]): string[];
|
|
29
|
+
setParentIdConfigurationValidity(valid: boolean): void;
|
|
28
30
|
private validateIndicesAreUnique;
|
|
29
31
|
}
|
|
@@ -14,6 +14,7 @@ export class TableValidator {
|
|
|
14
14
|
this.duplicateGroupIndex = false;
|
|
15
15
|
this.idFieldNameNotConfigured = false;
|
|
16
16
|
this.invalidColumnConfiguration = false;
|
|
17
|
+
this.invalidParentIdConfiguration = false;
|
|
17
18
|
this.recordIds = new Set();
|
|
18
19
|
}
|
|
19
20
|
getValidity() {
|
|
@@ -26,7 +27,8 @@ export class TableValidator {
|
|
|
26
27
|
duplicateSortIndex: this.duplicateSortIndex,
|
|
27
28
|
duplicateGroupIndex: this.duplicateGroupIndex,
|
|
28
29
|
idFieldNameNotConfigured: this.idFieldNameNotConfigured,
|
|
29
|
-
invalidColumnConfiguration: this.invalidColumnConfiguration
|
|
30
|
+
invalidColumnConfiguration: this.invalidColumnConfiguration,
|
|
31
|
+
invalidParentIdConfiguration: this.invalidParentIdConfiguration
|
|
30
32
|
};
|
|
31
33
|
}
|
|
32
34
|
isValid() {
|
|
@@ -38,12 +40,14 @@ export class TableValidator {
|
|
|
38
40
|
&& !validity.missingRecordId
|
|
39
41
|
&& !validity.invalidRecordId);
|
|
40
42
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
validateIdFieldConfiguration(selectionMode, idFieldName, parentIdFieldName) {
|
|
44
|
+
const idFieldNameRequired = selectionMode !== TableRowSelectionMode.none
|
|
45
|
+
|| typeof parentIdFieldName === 'string';
|
|
46
|
+
if (idFieldNameRequired) {
|
|
47
|
+
this.idFieldNameNotConfigured = typeof idFieldName !== 'string';
|
|
44
48
|
}
|
|
45
49
|
else {
|
|
46
|
-
this.idFieldNameNotConfigured =
|
|
50
|
+
this.idFieldNameNotConfigured = false;
|
|
47
51
|
}
|
|
48
52
|
return !this.idFieldNameNotConfigured;
|
|
49
53
|
}
|
|
@@ -57,11 +61,11 @@ export class TableValidator {
|
|
|
57
61
|
return true;
|
|
58
62
|
}
|
|
59
63
|
for (const record of data) {
|
|
60
|
-
if (!Object.prototype.hasOwnProperty.call(record
|
|
64
|
+
if (!Object.prototype.hasOwnProperty.call(record, idFieldName)) {
|
|
61
65
|
this.missingRecordId = true;
|
|
62
66
|
continue;
|
|
63
67
|
}
|
|
64
|
-
const id = record
|
|
68
|
+
const id = record[idFieldName];
|
|
65
69
|
if (typeof id !== 'string') {
|
|
66
70
|
this.invalidRecordId = true;
|
|
67
71
|
continue;
|
|
@@ -110,6 +114,9 @@ export class TableValidator {
|
|
|
110
114
|
getPresentRecordIds(requestedRecordIds) {
|
|
111
115
|
return requestedRecordIds.filter(id => this.recordIds.has(id));
|
|
112
116
|
}
|
|
117
|
+
setParentIdConfigurationValidity(valid) {
|
|
118
|
+
this.invalidParentIdConfiguration = !valid;
|
|
119
|
+
}
|
|
113
120
|
validateIndicesAreUnique(indices) {
|
|
114
121
|
const numberSet = new Set(indices);
|
|
115
122
|
return numberSet.size === indices.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-validator.js","sourceRoot":"","sources":["../../../../src/table/models/table-validator.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"table-validator.js","sourceRoot":"","sources":["../../../../src/table/models/table-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,11 @@ import { buttonTag } from '../button';
|
|
|
7
7
|
import { ButtonAppearance } from '../button/types';
|
|
8
8
|
import { iconTriangleTwoLinesHorizontalTag } from '../icons/triangle-two-lines-horizontal';
|
|
9
9
|
import { checkboxTag } from '../checkbox';
|
|
10
|
-
import {
|
|
10
|
+
import { tableCollapseAllLabel, tableRowOperationColumnLabel, tableSelectAllLabel } from '../label-provider/table/label-tokens';
|
|
11
11
|
// prettier-ignore
|
|
12
12
|
export const template = html `
|
|
13
13
|
<template
|
|
14
|
-
role="
|
|
14
|
+
role="treegrid"
|
|
15
15
|
aria-multiselectable="${x => x.ariaMultiSelectable}"
|
|
16
16
|
${children({ property: 'childItems', filter: elements() })}
|
|
17
17
|
>
|
|
@@ -51,11 +51,11 @@ export const template = html `
|
|
|
51
51
|
class="collapse-all-button ${x => `${x.showCollapseAll ? 'visible' : ''}`}"
|
|
52
52
|
content-hidden
|
|
53
53
|
appearance="${ButtonAppearance.ghost}"
|
|
54
|
-
title="${x =>
|
|
55
|
-
@click="${x => x.
|
|
54
|
+
title="${x => tableCollapseAllLabel.getValueFor(x)}"
|
|
55
|
+
@click="${x => x.handleCollapseAllRows()}"
|
|
56
56
|
>
|
|
57
57
|
<${iconTriangleTwoLinesHorizontalTag} slot="start"></${iconTriangleTwoLinesHorizontalTag}>
|
|
58
|
-
${x =>
|
|
58
|
+
${x => tableCollapseAllLabel.getValueFor(x)}
|
|
59
59
|
</${buttonTag}>
|
|
60
60
|
</span>
|
|
61
61
|
<span class="column-headers-container" ${ref('columnHeadersContainer')}>
|
|
@@ -92,13 +92,13 @@ export const template = html `
|
|
|
92
92
|
role="rowgroup">
|
|
93
93
|
${when(x => x.columns.length > 0 && x.canRenderRows, html `
|
|
94
94
|
${repeat(x => x.virtualizer.visibleItems, html `
|
|
95
|
-
${when((x, c) => c.parent.tableData[x.index]?.
|
|
95
|
+
${when((x, c) => c.parent.tableData[x.index]?.isGroupRow, html `
|
|
96
96
|
<${tableGroupRowTag}
|
|
97
97
|
class="group-row"
|
|
98
98
|
:groupRowValue="${(x, c) => c.parent.tableData[x.index]?.groupRowValue}"
|
|
99
99
|
?expanded="${(x, c) => c.parent.tableData[x.index]?.isExpanded}"
|
|
100
100
|
:nestingLevel="${(x, c) => c.parent.tableData[x.index]?.nestingLevel}"
|
|
101
|
-
:
|
|
101
|
+
:immediateChildCount="${(x, c) => c.parent.tableData[x.index]?.immediateChildCount}"
|
|
102
102
|
:groupColumn="${(x, c) => c.parent.tableData[x.index]?.groupColumn}"
|
|
103
103
|
?selectable="${(_, c) => c.parent.selectionMode === TableRowSelectionMode.multiple}"
|
|
104
104
|
selection-state="${(x, c) => c.parent.tableData[x.index]?.selectionState}"
|
|
@@ -107,21 +107,25 @@ export const template = html `
|
|
|
107
107
|
>
|
|
108
108
|
</${tableGroupRowTag}>
|
|
109
109
|
`)}
|
|
110
|
-
${when((x, c) => !c.parent.tableData[x.index]?.
|
|
110
|
+
${when((x, c) => !c.parent.tableData[x.index]?.isGroupRow, html `
|
|
111
111
|
<${tableRowTag}
|
|
112
112
|
class="row"
|
|
113
113
|
record-id="${(x, c) => c.parent.tableData[x.index]?.id}"
|
|
114
114
|
?selectable="${(_, c) => c.parent.selectionMode !== TableRowSelectionMode.none}"
|
|
115
115
|
?selected="${(x, c) => c.parent.tableData[x.index]?.selectionState === TableRowSelectionState.selected}"
|
|
116
|
+
?expanded="${(x, c) => c.parent.tableData[x.index]?.isExpanded}"
|
|
116
117
|
?hide-selection="${(_, c) => c.parent.selectionMode !== TableRowSelectionMode.multiple}"
|
|
117
118
|
:dataRecord="${(x, c) => c.parent.tableData[x.index]?.record}"
|
|
118
119
|
:columns="${(_, c) => c.parent.columns}"
|
|
120
|
+
:isParentRow="${(x, c) => c.parent.tableData[x.index]?.isParentRow}"
|
|
119
121
|
:nestingLevel="${(x, c) => c.parent.tableData[x.index]?.nestingLevel}"
|
|
120
122
|
?row-operation-grid-cell-hidden="${(_, c) => !c.parent.showRowOperationColumn}"
|
|
121
123
|
@click="${(x, c) => c.parent.onRowClick(x.index, c.event)}"
|
|
122
124
|
@row-selection-toggle="${(x, c) => c.parent.onRowSelectionToggle(x.index, c.event)}"
|
|
123
125
|
@row-action-menu-beforetoggle="${(x, c) => c.parent.onRowActionMenuBeforeToggle(x.index, c.event)}"
|
|
124
126
|
@row-action-menu-toggle="${(_, c) => c.parent.onRowActionMenuToggle(c.event)}"
|
|
127
|
+
@row-expand-toggle="${(x, c) => c.parent.handleRowExpanded(x.index)}"
|
|
128
|
+
:dataIndex="${x => x.index}"
|
|
125
129
|
>
|
|
126
130
|
${when((x, c) => c.parent.openActionMenuRecordId === c.parent.tableData[x.index]?.id, html `
|
|
127
131
|
${repeat((_, c) => c.parent.actionMenuSlots, html `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/table/template.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,MAAM,EACN,IAAI,EACP,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAEH,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EAEzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/table/template.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,MAAM,EACN,IAAI,EACP,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAEH,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EAEzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACH,qBAAqB,EACrB,4BAA4B,EAC5B,mBAAmB,EACtB,MAAM,sCAAsC,CAAC;AAE9C,kBAAkB;AAClB,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAO;;;gCAGH,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB;UAChD,QAAQ,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;;sCAE5B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;;4CAE/C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;gEACM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,0BAA0B;gDAC7D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY;oDAC3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,mBAAmB;mDACvC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE;kDAC5B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;uDAC/D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;yDAC5B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;;;;;sCAKjF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,yCAAyC,GAAG,CAAC,0BAA0B,CAAC;8BACrI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,EAAE,IAAI,CAAO;;sCAEvC,CAAC,CAAC,EAAE,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC,CAAC;;6BAEzD,CAAC;8BACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAO;;uCAEhE,WAAW;0CACR,GAAG,CAAC,mBAAmB,CAAC;iDACjB,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,aAAa,IAAI,EAAE,EAAE;mDAChD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAoB,CAAC;iDAC9D,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;sDAClC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;;wCAErD,WAAW;;6BAEtB,CAAC;+BACC,SAAS;6DACqB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;;8CAE3D,gBAAgB,CAAC,KAAK;yCAC3B,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;0CACxC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE;;mCAErC,iCAAiC,mBAAmB,iCAAiC;kCACtF,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;gCAC3C,SAAS;;iEAEwB,GAAG,CAAC,wBAAwB,CAAC;8BAChE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAoB;;sCAE9C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAoB;0EAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;2DAClG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAmB,EAAE,CAAC,CAAC,KAAK,CAAC;;qCAE/F,CAAC;2CACK,cAAc;;8DAEK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC;oEAChI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,iBAAiB;sDACxD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAG,CAAC,CAAC,KAAoB,CAAC,QAAQ,CAAC;yDACrE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC;;0DAE7F,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;4CACzB,cAAc;sCACpB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAoB;2EAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;2DACnG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAAmB,EAAE,CAAC,CAAC,KAAK,CAAC;;qCAEhG,CAAC;;6BAET,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;;;;8CAKP,GAAG,CAAC,UAAU,CAAC;;uDAEN,QAAQ,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;;0BAEjG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,IAAI,CAAO;8BAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAoB;kCAC5D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,MAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,CAAoB;uCACtF,gBAAgB;;0DAEG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa;qDACzD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU;yDAC7C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,YAAY;gEAC5C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,mBAAmB;wDAClE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW;uDACnD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,KAAK,qBAAqB,CAAC,QAAQ;2DAC/D,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc;mEAC7C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAwD,CAAC;gEAC/G,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;;wCAEnF,gBAAgB;iCACvB,CAAC;kCACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,CAAC,MAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,CAAoB;uCACvF,WAAW;;qDAEG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;uDACvC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,KAAK,qBAAqB,CAAC,IAAI;qDACjE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc,KAAK,sBAAsB,CAAC,QAAQ;qDACzF,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU;2DAC3C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,KAAK,qBAAqB,CAAC,QAAQ;uDACvE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM;oDAChD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;wDACtB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW;yDACjD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,YAAY;2EACjC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB;kDACnE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAmB,CAAC;iEAC9C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAwD,CAAC;yEACpG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAsD,CAAC;mEACvH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAsD,CAAC;8DACvG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;sDACrD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;;sCAE5B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,MAAgB,CAAC,sBAAsB,KAAM,CAAC,CAAC,MAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,CAAoB;0CAC9H,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,MAAgB,CAAC,eAAe,EAAE,IAAI,CAAe;;wDAE3D,CAAC,CAAC,EAAE,CAAC,CAAC;wDACN,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE;;yCAE1C,CAAC;qCACL,CAAC;wCACE,WAAW;iCAClB,CAAC;6BACL,CAAC;yBACL,CAAC;;;;;;CAMzB,CAAC"}
|
|
@@ -29,6 +29,7 @@ export declare class TablePageObject<T extends TableRecord> {
|
|
|
29
29
|
getRenderedRowCount(): number;
|
|
30
30
|
getRenderedGroupRowCount(): number;
|
|
31
31
|
getAllGroupRowsExpandedState(): boolean[];
|
|
32
|
+
getAllDataRowsExpandedState(): boolean[];
|
|
32
33
|
getRenderedCellView(rowIndex: number, columnIndex: number): TableCellView;
|
|
33
34
|
getRenderedCellViewById(recordId: string, columnId: string): TableCellView;
|
|
34
35
|
getRenderedCellTextContent(rowIndex: number, columnIndex: number): string;
|
|
@@ -62,7 +63,9 @@ export declare class TablePageObject<T extends TableRecord> {
|
|
|
62
63
|
getIsRowSelected(rowIndex: number): boolean;
|
|
63
64
|
toggleGroupRowExpandedState(groupRowIndex: number): void;
|
|
64
65
|
clickCollapseAllButton(): void;
|
|
66
|
+
clickDataRowExpandCollapseButton(rowIndex: number): void;
|
|
65
67
|
isCollapseAllButtonVisible(): boolean;
|
|
68
|
+
isDataRowExpandCollapseButtonVisible(rowIndex: number): boolean;
|
|
66
69
|
isTableSelectionCheckboxVisible(): boolean;
|
|
67
70
|
getTableSelectionState(): TableRowSelectionState;
|
|
68
71
|
clickTableSelectionCheckbox(): void;
|
|
@@ -95,6 +98,7 @@ export declare class TablePageObject<T extends TableRecord> {
|
|
|
95
98
|
private getCell;
|
|
96
99
|
private getCellById;
|
|
97
100
|
private getCollapseAllButton;
|
|
101
|
+
private getExpandCollapseButtonForRow;
|
|
98
102
|
private getSelectionCheckboxForRow;
|
|
99
103
|
private getSelectionCheckboxForGroupRow;
|
|
100
104
|
private getSelectionCheckboxForTable;
|
|
@@ -72,6 +72,10 @@ export class TablePageObject {
|
|
|
72
72
|
const groupRows = this.tableElement.shadowRoot.querySelectorAll('nimble-table-group-row');
|
|
73
73
|
return Array.from(groupRows).map(row => row.expanded);
|
|
74
74
|
}
|
|
75
|
+
getAllDataRowsExpandedState() {
|
|
76
|
+
const rows = this.tableElement.shadowRoot.querySelectorAll('nimble-table-row');
|
|
77
|
+
return Array.from(rows).map(row => row.expanded);
|
|
78
|
+
}
|
|
75
79
|
getRenderedCellView(rowIndex, columnIndex) {
|
|
76
80
|
const cell = this.getCell(rowIndex, columnIndex);
|
|
77
81
|
const cellView = cell.shadowRoot.firstElementChild;
|
|
@@ -252,6 +256,13 @@ export class TablePageObject {
|
|
|
252
256
|
clickCollapseAllButton() {
|
|
253
257
|
this.getCollapseAllButton()?.click();
|
|
254
258
|
}
|
|
259
|
+
clickDataRowExpandCollapseButton(rowIndex) {
|
|
260
|
+
const expandCollapseButton = this.getExpandCollapseButtonForRow(rowIndex);
|
|
261
|
+
if (!expandCollapseButton) {
|
|
262
|
+
throw new Error('The provided row index has no visible expand collapse button associated with it.');
|
|
263
|
+
}
|
|
264
|
+
expandCollapseButton.click();
|
|
265
|
+
}
|
|
255
266
|
isCollapseAllButtonVisible() {
|
|
256
267
|
const collapseButton = this.getCollapseAllButton();
|
|
257
268
|
if (collapseButton) {
|
|
@@ -259,6 +270,10 @@ export class TablePageObject {
|
|
|
259
270
|
}
|
|
260
271
|
return false;
|
|
261
272
|
}
|
|
273
|
+
isDataRowExpandCollapseButtonVisible(rowIndex) {
|
|
274
|
+
const expandCollapseButton = this.getExpandCollapseButtonForRow(rowIndex);
|
|
275
|
+
return expandCollapseButton !== null;
|
|
276
|
+
}
|
|
262
277
|
isTableSelectionCheckboxVisible() {
|
|
263
278
|
const checkbox = this.getSelectionCheckboxForTable();
|
|
264
279
|
return this.isCheckboxVisible(checkbox);
|
|
@@ -456,6 +471,15 @@ export class TablePageObject {
|
|
|
456
471
|
getCollapseAllButton() {
|
|
457
472
|
return this.tableElement.shadowRoot.querySelector('.collapse-all-button');
|
|
458
473
|
}
|
|
474
|
+
getExpandCollapseButtonForRow(rowIndex) {
|
|
475
|
+
const row = this.getRow(rowIndex);
|
|
476
|
+
const rowExpandCollapseButton = row.shadowRoot.querySelector('.expand-collapse-button');
|
|
477
|
+
if (!rowExpandCollapseButton) {
|
|
478
|
+
const firstCell = this.getCell(rowIndex, 0);
|
|
479
|
+
return firstCell?.shadowRoot.querySelector('.expand-collapse-button');
|
|
480
|
+
}
|
|
481
|
+
return rowExpandCollapseButton;
|
|
482
|
+
}
|
|
459
483
|
getSelectionCheckboxForRow(rowIndex) {
|
|
460
484
|
const row = this.getRow(rowIndex);
|
|
461
485
|
return row.shadowRoot.querySelector('.selection-checkbox');
|