@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.
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 +2 -1
@@ -14,6 +14,8 @@ import { TableLayoutManager } from './models/table-layout-manager';
14
14
  import { TableUpdateTracker } from './models/table-update-tracker';
15
15
  import { ColumnInternals } from '../table-column/base/models/column-internals';
16
16
  import { InteractiveSelectionManager } from './models/interactive-selection-manager';
17
+ import { DataHierarchyManager } from './models/data-hierarchy-manager';
18
+ import { ExpansionManager } from './models/expansion-manager';
17
19
  import { waitUntilCustomElementsDefinedAsync } from '../utilities/wait-until-custom-elements-defined-async';
18
20
  /**
19
21
  * A nimble-styled table.
@@ -73,7 +75,6 @@ export class Table extends FoundationElement {
73
75
  this.tableUpdateTracker = new TableUpdateTracker(this);
74
76
  this.columnNotifiers = [];
75
77
  this.isInitialized = false;
76
- this.collapsedRows = new Set();
77
78
  // Programmatically updating the selection state of a checkbox fires the 'change' event.
78
79
  // Therefore, selection change events that occur due to programmatically updating
79
80
  // the selection checkbox 'checked' value should be ingored.
@@ -93,17 +94,7 @@ export class Table extends FoundationElement {
93
94
  }
94
95
  };
95
96
  this.getIsRowExpanded = (row) => {
96
- if (!row.getIsGrouped()) {
97
- return false;
98
- }
99
- const expandedState = this.table.options.state.expanded;
100
- if (expandedState === true) {
101
- return true;
102
- }
103
- if (Object.keys(expandedState ?? {}).includes(row.id)) {
104
- return expandedState[row.id];
105
- }
106
- return !this.collapsedRows.has(row.id);
97
+ return this.expansionManager.isRowExpanded(row);
107
98
  };
108
99
  this.handleRowSelectionChange = (updaterOrValue) => {
109
100
  const rowSelectionState = updaterOrValue instanceof Function
@@ -135,6 +126,7 @@ export class Table extends FoundationElement {
135
126
  getGroupedRowModel: tanStackGetGroupedRowModel(),
136
127
  getExpandedRowModel: tanStackGetExpandedRowModel(),
137
128
  getIsRowExpanded: this.getIsRowExpanded,
129
+ getSubRows: r => r.subRows,
138
130
  columns: [],
139
131
  state: {
140
132
  rowSelection: {},
@@ -155,6 +147,7 @@ export class Table extends FoundationElement {
155
147
  this.layoutManagerNotifier = Observable.getNotifier(this.layoutManager);
156
148
  this.layoutManagerNotifier.subscribe(this, 'isColumnBeingSized');
157
149
  this.selectionManager = new InteractiveSelectionManager(this.table, this.selectionMode);
150
+ this.expansionManager = new ExpansionManager(this.table);
158
151
  }
159
152
  get validity() {
160
153
  return this.tableValidator.getValidity();
@@ -168,36 +161,12 @@ export class Table extends FoundationElement {
168
161
  }
169
162
  async setData(newData) {
170
163
  await this.processPendingUpdates();
171
- const data = newData.map(record => {
172
- return { clientRecord: { ...record } };
173
- });
174
- const tanStackUpdates = {
175
- data
176
- };
177
- this.validateWithData(data);
178
- if (this.tableValidator.areRecordIdsValid()) {
179
- // Update the selection state to remove previously selected records that no longer exist in the
180
- // data set while maintaining the selection state of records that still exist in the data set.
181
- const previousSelection = await this.getSelectedRecordIds();
182
- tanStackUpdates.state = {
183
- rowSelection: this.calculateTanStackSelectionState(previousSelection)
184
- };
185
- }
186
- this.updateTableOptions(tanStackUpdates);
164
+ const tanstackUpdates = this.calculateTanStackData(newData);
165
+ this.updateTableOptions(tanstackUpdates);
187
166
  }
188
167
  async getSelectedRecordIds() {
189
168
  await this.processPendingUpdates();
190
- const tanStackSelectionState = this.options.state.rowSelection;
191
- if (!tanStackSelectionState) {
192
- return [];
193
- }
194
- const selectedRecordIds = [];
195
- Object.entries(tanStackSelectionState).forEach(([recordId, isSelected]) => {
196
- if (isSelected) {
197
- selectedRecordIds.push(recordId);
198
- }
199
- });
200
- return selectedRecordIds;
169
+ return this.selectionManager.getCurrentSelectedRecordIds();
201
170
  }
202
171
  async setSelectedRecordIds(recordIds) {
203
172
  await this.processPendingUpdates();
@@ -292,13 +261,8 @@ export class Table extends FoundationElement {
292
261
  void this.handleRowActionMenuToggleEvent(event);
293
262
  }
294
263
  /** @internal */
295
- handleCollapseAllGroupRows() {
296
- this.collapsedRows.clear();
297
- this.table
298
- .getRowModel()
299
- .flatRows.filter(row => row.getIsGrouped())
300
- .forEach(row => this.collapsedRows.add(row.id));
301
- this.table.toggleAllRowsExpanded(false);
264
+ handleCollapseAllRows() {
265
+ this.expansionManager.collapseAll();
302
266
  }
303
267
  /** @internal */
304
268
  onRightDividerMouseDown(event, columnIndex) {
@@ -314,9 +278,13 @@ export class Table extends FoundationElement {
314
278
  }
315
279
  /** @internal */
316
280
  handleGroupRowExpanded(rowIndex, event) {
317
- this.toggleGroupExpanded(rowIndex);
281
+ this.toggleRowExpanded(rowIndex);
318
282
  event.stopPropagation();
319
283
  }
284
+ /** @internal */
285
+ handleRowExpanded(rowIndex) {
286
+ this.toggleRowExpanded(rowIndex);
287
+ }
320
288
  /**
321
289
  * @internal
322
290
  */
@@ -374,9 +342,6 @@ export class Table extends FoundationElement {
374
342
  this.rowGridColumns = this.layoutManager.getGridTemplateColumns();
375
343
  this.visibleColumns = this.columns.filter(column => !column.columnHidden);
376
344
  }
377
- if (this.tableUpdateTracker.updateGroupRows) {
378
- this.showCollapseAll = this.getColumnsParticipatingInGrouping().length > 0;
379
- }
380
345
  }
381
346
  get ariaMultiSelectable() {
382
347
  switch (this.selectionMode) {
@@ -394,6 +359,31 @@ export class Table extends FoundationElement {
394
359
  getHeaderContainerElements() {
395
360
  return this.columnHeadersContainer.querySelectorAll('.header-container');
396
361
  }
362
+ /**
363
+ * @internal
364
+ */
365
+ calculateTanStackData(data) {
366
+ this.dataHierarchyManager = new DataHierarchyManager(data, this.idFieldName, this.parentIdFieldName);
367
+ const tableNodes = this.dataHierarchyManager.hierarchicalData;
368
+ this.tableValidator.setParentIdConfigurationValidity(this.dataHierarchyManager.parentIdConfigurationValid);
369
+ const tanStackUpdates = {
370
+ data: tableNodes
371
+ };
372
+ this.validateWithData(data);
373
+ if (this.tableValidator.areRecordIdsValid()) {
374
+ // Update the selection state to remove previously selected records that no longer exist in the
375
+ // data set while maintaining the selection state of records that still exist in the data set.
376
+ const previousSelection = this.selectionManager.getCurrentSelectedRecordIds();
377
+ tanStackUpdates.state = {
378
+ rowSelection: this.calculateTanStackSelectionState(previousSelection),
379
+ // Reset the TanStack expanded state to "true" to clear TanStack's cache of expanded state that may include
380
+ // rows that no longer exist in the table. The nimble table's expansion manager tracks the expanded
381
+ // state of each row, so no state is lost by resetting TanStack.
382
+ expanded: true
383
+ };
384
+ }
385
+ return tanStackUpdates;
386
+ }
397
387
  selectionModeChanged(_prev, _next) {
398
388
  if (!this.$fastController.isConnected) {
399
389
  return;
@@ -406,6 +396,12 @@ export class Table extends FoundationElement {
406
396
  }
407
397
  this.tableUpdateTracker.trackIdFieldNameChanged();
408
398
  }
399
+ parentIdFieldNameChanged(_prev, _next) {
400
+ if (!this.$fastController.isConnected) {
401
+ return;
402
+ }
403
+ this.tableUpdateTracker.trackParentIdFieldNameChanged();
404
+ }
409
405
  columnsChanged(_prev, _next) {
410
406
  if (!this.$fastController.isConnected) {
411
407
  return;
@@ -510,14 +506,30 @@ export class Table extends FoundationElement {
510
506
  updatedOptions.state.rowSelection = {};
511
507
  this.selectionManager.handleSelectionModeChanged(this.selectionMode);
512
508
  }
513
- if (this.tableUpdateTracker.requiresTanStackDataReset) {
514
- // Perform a shallow copy of the data to trigger tanstack to regenerate the row models and columns.
515
- updatedOptions.data = [...this.table.options.data];
509
+ if (this.dataHierarchyManager
510
+ && this.tableUpdateTracker.requiresTanStackDataReset) {
511
+ if (!this.parentIdFieldName
512
+ && !this.tableUpdateTracker.updateRowParentIds) {
513
+ // Perform a shallow copy of the data to trigger tanstack to regenerate the row models and columns.
514
+ updatedOptions.data = [...this.table.options.data];
515
+ }
516
+ else {
517
+ const orderedRecords = this.dataHierarchyManager.getAllRecords(true);
518
+ const tanstackUpdates = this.calculateTanStackData(orderedRecords);
519
+ if (tanstackUpdates.state) {
520
+ updatedOptions.state.rowSelection = tanstackUpdates.state.rowSelection;
521
+ }
522
+ updatedOptions.data = tanstackUpdates.data;
523
+ }
516
524
  }
517
525
  if (this.tableUpdateTracker.updateGroupRows) {
518
526
  updatedOptions.state.grouping = this.calculateTanStackGroupingState();
527
+ }
528
+ if (this.tableUpdateTracker.updateRowIds
529
+ || this.tableUpdateTracker.updateRowParentIds
530
+ || this.tableUpdateTracker.updateGroupRows) {
519
531
  updatedOptions.state.expanded = true;
520
- this.collapsedRows.clear();
532
+ this.expansionManager.reset();
521
533
  }
522
534
  this.updateTableOptions(updatedOptions);
523
535
  }
@@ -531,12 +543,14 @@ export class Table extends FoundationElement {
531
543
  this.actionMenuSlots = Array.from(slots);
532
544
  }
533
545
  validate() {
534
- this.tableValidator.validateSelectionMode(this.selectionMode, this.idFieldName);
546
+ this.tableValidator.validateIdFieldConfiguration(this.selectionMode, this.idFieldName, this.parentIdFieldName);
535
547
  this.tableValidator.validateColumnIds(this.columns.map(x => x.columnId));
536
548
  this.tableValidator.validateColumnSortIndices(this.getColumnsParticipatingInSorting().map(x => x.columnInternals.currentSortIndex));
537
549
  this.tableValidator.validateColumnGroupIndices(this.getColumnsParticipatingInGrouping().map(x => x.columnInternals.groupIndex));
538
550
  this.tableValidator.validateColumnConfigurations(this.columns);
539
- this.validateWithData(this.table.options.data);
551
+ if (this.dataHierarchyManager) {
552
+ this.validateWithData(this.dataHierarchyManager.getAllRecords());
553
+ }
540
554
  }
541
555
  validateWithData(data) {
542
556
  this.tableValidator.validateRecordIds(data, this.idFieldName);
@@ -579,27 +593,41 @@ export class Table extends FoundationElement {
579
593
  }
580
594
  refreshRows() {
581
595
  this.selectionState = this.getTableSelectionState();
596
+ let hasDataHierarchy = false;
582
597
  const rows = this.table.getRowModel().rows;
583
598
  this.tableData = rows.map(row => {
584
- const isGrouped = row.getIsGrouped();
599
+ const isGroupRow = row.getIsGrouped();
600
+ const hasParentRow = isGroupRow ? false : row.getParentRow();
601
+ // we check row.original.subRows below because row.subRows is populated for group rows
602
+ // which we don't want to include
603
+ const isParent = row.original.subRows !== undefined
604
+ && row.original.subRows.length > 0;
605
+ const isChildOfGroupRowWithNoHierarchy = !isGroupRow
606
+ && !isParent
607
+ && !hasParentRow
608
+ && row.depth > 0
609
+ && !this.parentIdFieldName;
585
610
  const rowState = {
586
611
  record: row.original.clientRecord,
587
612
  id: row.id,
588
613
  selectionState: this.getRowSelectionState(row),
589
- isGrouped,
614
+ isGroupRow,
590
615
  isExpanded: row.getIsExpanded(),
591
- groupRowValue: isGrouped
616
+ groupRowValue: isGroupRow
592
617
  ? row.getValue(row.groupingColumnId)
593
618
  : undefined,
594
- nestingLevel: !isGrouped && row.depth > 0 ? row.depth - 1 : row.depth,
595
- leafItemCount: row
596
- .getLeafRows()
597
- .filter(leafRow => leafRow.getLeafRows().length === 0)
598
- .length,
619
+ nestingLevel: isChildOfGroupRowWithNoHierarchy
620
+ ? row.depth - 1
621
+ : row.depth,
622
+ isParentRow: isParent,
623
+ immediateChildCount: row.subRows.length,
599
624
  groupColumn: this.getGroupRowColumn(row)
600
625
  };
626
+ hasDataHierarchy = hasDataHierarchy || isParent;
601
627
  return rowState;
602
628
  });
629
+ this.showCollapseAll = hasDataHierarchy
630
+ || this.getColumnsParticipatingInGrouping().length > 0;
603
631
  this.virtualizer.dataChanged();
604
632
  }
605
633
  getTableSelectionState() {
@@ -620,10 +648,10 @@ export class Table extends FoundationElement {
620
648
  : TableRowSelectionState.notSelected;
621
649
  }
622
650
  getGroupedRowSelectionState(groupedRow) {
623
- const subRows = groupedRow.subRows ?? [];
651
+ const leafRows = groupedRow.getLeafRows() ?? [];
624
652
  let foundSelectedRow = false;
625
653
  let foundNotSelectedRow = false;
626
- for (const row of subRows) {
654
+ for (const row of leafRows) {
627
655
  if (row.getIsGrouped()) {
628
656
  const subGroupRowSelectionState = this.getGroupedRowSelectionState(row);
629
657
  switch (subGroupRowSelectionState) {
@@ -665,19 +693,16 @@ export class Table extends FoundationElement {
665
693
  state: { ...this.options.state, ...updatedOptions.state }
666
694
  };
667
695
  this.table.setOptions(this.options);
696
+ if (updatedOptions.data) {
697
+ const rows = this.table.getRowModel().flatRows;
698
+ this.expansionManager.processDataUpdate(rows);
699
+ }
668
700
  this.refreshRows();
669
701
  }
670
- toggleGroupExpanded(rowIndex) {
671
- const row = this.table.getRowModel().rows[rowIndex];
672
- const wasExpanded = row.getIsExpanded();
673
- // must update the collapsedRows before toggling expanded state
674
- if (wasExpanded) {
675
- this.collapsedRows.add(row.id);
676
- }
677
- else {
678
- this.collapsedRows.delete(row.id);
679
- }
680
- row.toggleExpanded();
702
+ toggleRowExpanded(rowIndex) {
703
+ const rows = this.table.getRowModel().rows;
704
+ const row = rows[rowIndex];
705
+ this.expansionManager.toggleRowExpansion(row);
681
706
  }
682
707
  calculateTanStackSortState() {
683
708
  const sortedColumns = this.getColumnsParticipatingInSorting().sort((x, y) => x.columnInternals.currentSortIndex
@@ -737,6 +762,9 @@ export class Table extends FoundationElement {
737
762
  __decorate([
738
763
  attr({ attribute: 'id-field-name' })
739
764
  ], Table.prototype, "idFieldName", void 0);
765
+ __decorate([
766
+ attr({ attribute: 'parent-id-field-name' })
767
+ ], Table.prototype, "parentIdFieldName", void 0);
740
768
  __decorate([
741
769
  attr({ attribute: 'selection-mode' })
742
770
  ], Table.prototype, "selectionMode", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/table/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/table/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { TableNode, TableRecord } from '../types';
2
+ export interface Config<Item> {
3
+ id: keyof Item;
4
+ parentId: keyof Item;
5
+ }
6
+ declare type TableNodePartial = Partial<TableNode>;
7
+ /**
8
+ * Unflattens an array to a tree with runtime O(n)
9
+ */
10
+ export declare function arrayToTree<TData extends TableRecord>(items: readonly TData[], config: Config<TData>): TableNode<TData>[];
11
+ /**
12
+ * Returns the number of nodes in a tree in a recursive way
13
+ * @param tree An array of nodes (tree items), each having a field `childrenField` that contains an array of nodes
14
+ * @returns Number of nodes in the tree
15
+ */
16
+ export declare function countNodes(tree: TableNodePartial[]): number;
17
+ export {};
@@ -0,0 +1,83 @@
1
+ // Modified from https://github.com/philipstanislaus/performant-array-to-tree/blob/v1.11.0/src/arrayToTree.ts
2
+ // Copyright (c) 2022 philipstanislaus
3
+ // SPDX-License-Identifier: MIT
4
+ /**
5
+ * Unflattens an array to a tree with runtime O(n)
6
+ */
7
+ export function arrayToTree(items, config) {
8
+ const conf = config;
9
+ // the resulting unflattened tree
10
+ const rootItems = [];
11
+ // stores all already processed items with their ids as key so we can easily look them up
12
+ const lookup = {};
13
+ // stores all item ids that have not been added to the resulting unflattened tree yet
14
+ // this is an opt-in property, since it has a slight runtime overhead
15
+ const orphanIds = new Set();
16
+ // idea of this loop:
17
+ // whenever an item has a parent, but the parent is not yet in the lookup object, we store a preliminary parent
18
+ // in the lookup object and fill it with the data of the parent later
19
+ // if an item has no parentId, add it as a root element to rootItems
20
+ // Convert to a for-loop to have access to the item's index in the flat list
21
+ for (let i = 0; i < items.length; i++) {
22
+ const item = items[i];
23
+ const itemId = item[conf.id];
24
+ const parentId = item[conf.parentId];
25
+ // look whether item already exists in the lookup table
26
+ if (!Object.prototype.hasOwnProperty.call(lookup, itemId)) {
27
+ // item is not yet there, so add a preliminary item (its data will be added later)
28
+ lookup[itemId] = {
29
+ subRows: [],
30
+ clientRecord: undefined,
31
+ originalIndex: undefined
32
+ };
33
+ }
34
+ // if we track orphans, delete this item from the orphan set if it is in it
35
+ if (orphanIds) {
36
+ orphanIds.delete(itemId);
37
+ }
38
+ // add the current item's data to the item in the lookup table
39
+ lookup[itemId].clientRecord = item;
40
+ const treeItem = lookup[itemId];
41
+ // Add the index to the item
42
+ treeItem.originalIndex = i;
43
+ if (parentId === null || parentId === undefined) {
44
+ // is a root item
45
+ rootItems.push(treeItem);
46
+ }
47
+ else {
48
+ // has a parent
49
+ // look whether the parent already exists in the lookup table
50
+ if (!Object.prototype.hasOwnProperty.call(lookup, parentId)) {
51
+ // parent is not yet there, so add a preliminary parent (its data will be added later)
52
+ lookup[parentId] = {
53
+ subRows: [],
54
+ clientRecord: undefined,
55
+ originalIndex: undefined
56
+ };
57
+ // if we track orphans, add the generated parent to the orphan list
58
+ if (orphanIds) {
59
+ orphanIds.add(parentId);
60
+ }
61
+ }
62
+ // add the current item to the parent
63
+ lookup[parentId].subRows.push(treeItem);
64
+ }
65
+ }
66
+ if (orphanIds?.size) {
67
+ const orphans = Array.from(orphanIds.values()).join(',');
68
+ throw new Error(`The items array contains orphans that point to the following parentIds: [${orphans}]. These parentIds do not exist in the items array.`);
69
+ }
70
+ if (countNodes(rootItems) < Object.keys(lookup).length) {
71
+ throw new Error('The items array contains nodes with a circular parent/child relationship.');
72
+ }
73
+ return rootItems;
74
+ }
75
+ /**
76
+ * Returns the number of nodes in a tree in a recursive way
77
+ * @param tree An array of nodes (tree items), each having a field `childrenField` that contains an array of nodes
78
+ * @returns Number of nodes in the tree
79
+ */
80
+ export function countNodes(tree) {
81
+ return tree.reduce((sum, n) => sum + 1 + (n.subRows && countNodes(n.subRows)), 0);
82
+ }
83
+ //# sourceMappingURL=array-to-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-to-tree.js","sourceRoot":"","sources":["../../../../src/table/models/array-to-tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { TableNode, TableRecord } from '../types';
2
+ /**
3
+ * Manages data hierarchy within the table, including converting between a flat list of
4
+ * data and hierarchical data.
5
+ */
6
+ export declare class DataHierarchyManager<TData extends TableRecord> {
7
+ private readonly isDataFlat;
8
+ private readonly _hierarchicalData;
9
+ private readonly _parentIdConfigurationValid;
10
+ constructor(records: readonly TData[], idFieldName: string | undefined, parentIdFieldName: string | undefined);
11
+ get hierarchicalData(): TableNode<TData>[];
12
+ get parentIdConfigurationValid(): boolean;
13
+ getAllRecords(sort?: boolean): TData[];
14
+ private getAllNodes;
15
+ }
@@ -0,0 +1,64 @@
1
+ import { arrayToTree } from './array-to-tree';
2
+ /**
3
+ * Manages data hierarchy within the table, including converting between a flat list of
4
+ * data and hierarchical data.
5
+ */
6
+ export class DataHierarchyManager {
7
+ constructor(records, idFieldName, parentIdFieldName) {
8
+ this.isDataFlat = false;
9
+ if (typeof idFieldName === 'string'
10
+ && typeof parentIdFieldName === 'string') {
11
+ try {
12
+ this._hierarchicalData = arrayToTree(records, {
13
+ id: idFieldName,
14
+ parentId: parentIdFieldName
15
+ });
16
+ this.isDataFlat = false;
17
+ this._parentIdConfigurationValid = true;
18
+ }
19
+ catch {
20
+ this.isDataFlat = true;
21
+ this._hierarchicalData = records.map((record, index) => ({
22
+ clientRecord: { ...record },
23
+ originalIndex: index
24
+ }));
25
+ this._parentIdConfigurationValid = false;
26
+ }
27
+ }
28
+ else {
29
+ this.isDataFlat = true;
30
+ this._hierarchicalData = records.map((record, index) => ({
31
+ clientRecord: { ...record },
32
+ originalIndex: index
33
+ }));
34
+ this._parentIdConfigurationValid = true;
35
+ }
36
+ }
37
+ get hierarchicalData() {
38
+ return this._hierarchicalData;
39
+ }
40
+ get parentIdConfigurationValid() {
41
+ return this._parentIdConfigurationValid;
42
+ }
43
+ getAllRecords(sort = false) {
44
+ const allNodes = [];
45
+ this.getAllNodes(this._hierarchicalData, allNodes);
46
+ if (this.isDataFlat || !sort) {
47
+ // If the data is flat, then it was never reordered to support hierarchy.
48
+ // Therefore, there is no need to sort the nodes.
49
+ return allNodes.map(x => x.clientRecord);
50
+ }
51
+ return allNodes
52
+ .sort((a, b) => a.originalIndex - b.originalIndex)
53
+ .map(x => x.clientRecord);
54
+ }
55
+ getAllNodes(parentNodes, allNodes) {
56
+ for (const parentNode of parentNodes) {
57
+ allNodes.push(parentNode);
58
+ if (parentNode.subRows) {
59
+ this.getAllNodes(parentNode.subRows, allNodes);
60
+ }
61
+ }
62
+ }
63
+ }
64
+ //# sourceMappingURL=data-hierarchy-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-hierarchy-manager.js","sourceRoot":"","sources":["../../../../src/table/models/data-hierarchy-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IAK7B,YACI,OAAyB,EACzB,WAA+B,EAC/B,iBAAqC;QAPxB,eAAU,GAAY,KAAK,CAAC;QASzC,IACI,OAAO,WAAW,KAAK,QAAQ;eAC5B,OAAO,iBAAiB,KAAK,QAAQ,EAC1C;YACE,IAAI;gBACA,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAQ,OAAO,EAAE;oBACjD,EAAE,EAAE,WAAW;oBACf,QAAQ,EAAE,iBAAiB;iBAC9B,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;aAC3C;YAAC,MAAM;gBACJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;oBACrD,YAAY,EAAE,EAAE,GAAG,MAAM,EAAE;oBAC3B,aAAa,EAAE,KAAK;iBACvB,CAAC,CAAC,CAAC;gBACJ,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;aAC5C;SACJ;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrD,YAAY,EAAE,EAAE,GAAG,MAAM,EAAE;gBAC3B,aAAa,EAAE,KAAK;aACvB,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;SAC3C;IACL,CAAC;IAED,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,IAAW,0BAA0B;QACjC,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC5C,CAAC;IAEM,aAAa,CAAC,IAAI,GAAG,KAAK;QAC7B,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE;YAC1B,yEAAyE;YACzE,iDAAiD;YACjD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;SAC5C;QAED,OAAO,QAAQ;aACV,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;aACjD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAEO,WAAW,CACf,WAAwC,EACxC,QAA4B;QAE5B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YAClC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,IAAI,UAAU,CAAC,OAAO,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aAClD;SACJ;IACL,CAAC;CACJ"}