@ni/nimble-components 20.18.1 → 21.0.0

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.
Files changed (53) hide show
  1. package/dist/all-components-bundle.js +395 -107
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +505 -480
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/label-provider/table/index.d.ts +3 -3
  6. package/dist/esm/label-provider/table/index.js +4 -4
  7. package/dist/esm/label-provider/table/index.js.map +1 -1
  8. package/dist/esm/label-provider/table/label-token-defaults.js +1 -1
  9. package/dist/esm/label-provider/table/label-token-defaults.js.map +1 -1
  10. package/dist/esm/label-provider/table/label-tokens.d.ts +1 -1
  11. package/dist/esm/label-provider/table/label-tokens.js +3 -3
  12. package/dist/esm/label-provider/table/label-tokens.js.map +1 -1
  13. package/dist/esm/table/components/group-row/index.d.ts +1 -1
  14. package/dist/esm/table/components/group-row/index.js +1 -1
  15. package/dist/esm/table/components/group-row/index.js.map +1 -1
  16. package/dist/esm/table/components/group-row/template.js +1 -1
  17. package/dist/esm/table/components/group-row/template.js.map +1 -1
  18. package/dist/esm/table/components/row/index.d.ts +1 -0
  19. package/dist/esm/table/components/row/index.js +6 -0
  20. package/dist/esm/table/components/row/index.js.map +1 -1
  21. package/dist/esm/table/components/row/template.js +1 -1
  22. package/dist/esm/table/components/row/template.js.map +1 -1
  23. package/dist/esm/table/index.d.ts +14 -4
  24. package/dist/esm/table/index.js +105 -77
  25. package/dist/esm/table/index.js.map +1 -1
  26. package/dist/esm/table/models/array-to-tree.d.ts +17 -0
  27. package/dist/esm/table/models/array-to-tree.js +83 -0
  28. package/dist/esm/table/models/array-to-tree.js.map +1 -0
  29. package/dist/esm/table/models/data-hierarchy-manager.d.ts +15 -0
  30. package/dist/esm/table/models/data-hierarchy-manager.js +64 -0
  31. package/dist/esm/table/models/data-hierarchy-manager.js.map +1 -0
  32. package/dist/esm/table/models/expansion-manager.d.ts +25 -0
  33. package/dist/esm/table/models/expansion-manager.js +73 -0
  34. package/dist/esm/table/models/expansion-manager.js.map +1 -0
  35. package/dist/esm/table/models/interactive-selection-manager.d.ts +1 -0
  36. package/dist/esm/table/models/interactive-selection-manager.js +13 -0
  37. package/dist/esm/table/models/interactive-selection-manager.js.map +1 -1
  38. package/dist/esm/table/models/selection-managers/selection-manager-base.js +6 -4
  39. package/dist/esm/table/models/selection-managers/selection-manager-base.js.map +1 -1
  40. package/dist/esm/table/models/table-update-tracker.d.ts +3 -1
  41. package/dist/esm/table/models/table-update-tracker.js +12 -1
  42. package/dist/esm/table/models/table-update-tracker.js.map +1 -1
  43. package/dist/esm/table/models/table-validator.d.ts +5 -3
  44. package/dist/esm/table/models/table-validator.js +14 -7
  45. package/dist/esm/table/models/table-validator.js.map +1 -1
  46. package/dist/esm/table/template.js +12 -8
  47. package/dist/esm/table/template.js.map +1 -1
  48. package/dist/esm/table/testing/table.pageobject.d.ts +4 -0
  49. package/dist/esm/table/testing/table.pageobject.js +24 -0
  50. package/dist/esm/table/testing/table.pageobject.js.map +1 -1
  51. package/dist/esm/table/types.d.ts +6 -3
  52. package/dist/esm/table/types.js.map +1 -1
  53. package/package.json +1 -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.isGrouped
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.isGrouped) {
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.getLeafRows().length === 0)
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":"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"}
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,UAAU;eAChB,QAAQ,CAAC,cAAc,KAAK,sBAAsB,CAAC,QAAQ,EAChE;YACE,gEAAgE;YAChE,mFAAmF;YACnF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACzC;aAAM;YACH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE;gBAC/D,cAAc,EAAE,QAAQ,CAAC,UAAU;aACtC,CAAC,CAAC;SACN;IACL,CAAC;IAES,eAAe,CAAC,QAAuB;QAC7C,IAAI,QAAQ,CAAC,UAAU,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACnE;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC;QACpE,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE;YAChE,IAAI,UAAU,EAAE;gBACZ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACpC;QACL,CAAC,CAAC,CAAC;QAEH,IACI,iBAAiB,CAAC,MAAM,KAAK,CAAC;eAC3B,iBAAiB,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE,EACzC;YACE,gEAAgE;YAChE,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,iBAAiB,GAA8B,EAAE,CAAC;QACxD,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,mBAAmB,CAAC,KAAa;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEtD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC;QAClE,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;YACzB,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC;IAES,gBAAgB,CAAC,EAAU;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa;aACzB,WAAW,EAAE;aACb,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE;YACtB,OAAO,EAAE,CAAC;SACb;QAED,OAAO,GAAG;aACL,WAAW,EAAE;aACb,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;aAC1C,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAES,iBAAiB;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC;QACtE,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAEO,cAAc,CAClB,YAA6C;QAE7C,MAAM,OAAO,GAAoC,EAAE,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE;YAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE;gBACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;aACrD;SACJ;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
@@ -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') || this.isTracked('columnDefinition');
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":"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"}
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,cAAc;IACd,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,kBAAkB;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,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,cAAc,CAAC;eAC9B,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,CACH,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;eACrB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;eAClC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CACpC,CAAC;IACN,CAAC;IAEM,oBAAoB;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,0BAA0B,CAAC,qBAA6B;QAC3D,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,UAAU,CAAC,EAAE;YACrD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;SAC3B;aAAM,IACH,yBAAyB,CACrB,qBAAqB,EACrB,4BAA4B,EAC5B,eAAe,CAClB,EACH;YACE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;SAClC;aAAM,IACH,gBAAgB,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;eACvD,yBAAyB,CACxB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,CACrB,EACH;YACE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SAC5B;aAAM,IACH,gBAAgB,CAAC,qBAAqB,EAAE,cAAc,CAAC;eACpD,yBAAyB,CACxB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,CAClB,EACH;YACE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SAC9B;aAAM,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,EAAE;YAClE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;SACjC;aAAM,IACH,yBAAyB,CACrB,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,CACrB,EACH;YACE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;SAC3B;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEM,2BAA2B;QAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAExB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEM,uBAAuB;QAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEM,6BAA6B;QAChC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEM,yBAAyB;QAC5B,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEkB,WAAW;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE;YACzC,OAAO;SACV;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC9B,CAAC,CAAC,CAAC;SACN;IACL,CAAC;CACJ"}
@@ -1,10 +1,10 @@
1
1
  import type { TableColumn } from '../../table-column/base';
2
- import { TableNode, TableRowSelectionMode, TableValidity } from '../types';
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 TableNode> {
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
- validateSelectionMode(selectionMode: TableRowSelectionMode, idFieldName: string | undefined): boolean;
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
- validateSelectionMode(selectionMode, idFieldName) {
42
- if (selectionMode === TableRowSelectionMode.none) {
43
- this.idFieldNameNotConfigured = false;
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 = typeof idFieldName !== 'string';
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.clientRecord, idFieldName)) {
64
+ if (!Object.prototype.hasOwnProperty.call(record, idFieldName)) {
61
65
  this.missingRecordId = true;
62
66
  continue;
63
67
  }
64
- const id = record.clientRecord[idFieldName];
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":"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"}
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 { tableGroupsCollapseAllLabel, tableRowOperationColumnLabel, tableSelectAllLabel } from '../label-provider/table/label-tokens';
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="grid"
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 => tableGroupsCollapseAllLabel.getValueFor(x)}"
55
- @click="${x => x.handleCollapseAllGroupRows()}"
54
+ title="${x => tableCollapseAllLabel.getValueFor(x)}"
55
+ @click="${x => x.handleCollapseAllRows()}"
56
56
  >
57
57
  <${iconTriangleTwoLinesHorizontalTag} slot="start"></${iconTriangleTwoLinesHorizontalTag}>
58
- ${x => tableGroupsCollapseAllLabel.getValueFor(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]?.isGrouped, html `
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
- :leafItemCount="${(x, c) => c.parent.tableData[x.index]?.leafItemCount}"
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]?.isGrouped, html `
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":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/table/template.ts"],"names":[],"mappings":"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"}
@@ -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');