@ni/nimble-components 18.10.3 → 18.10.5

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 (73) hide show
  1. package/dist/all-components-bundle.js +996 -192
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +3280 -3087
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/table/components/cell/index.d.ts +1 -0
  6. package/dist/esm/table/components/cell/index.js +4 -0
  7. package/dist/esm/table/components/cell/index.js.map +1 -1
  8. package/dist/esm/table/components/cell/styles.js +8 -0
  9. package/dist/esm/table/components/cell/styles.js.map +1 -1
  10. package/dist/esm/table/components/cell/template.js +1 -1
  11. package/dist/esm/table/components/cell/template.js.map +1 -1
  12. package/dist/esm/table/components/group-row/index.d.ts +29 -0
  13. package/dist/esm/table/components/group-row/index.js +61 -0
  14. package/dist/esm/table/components/group-row/index.js.map +1 -0
  15. package/dist/esm/table/components/group-row/styles.d.ts +1 -0
  16. package/dist/esm/table/components/group-row/styles.js +64 -0
  17. package/dist/esm/table/components/group-row/styles.js.map +1 -0
  18. package/dist/esm/table/components/group-row/template.d.ts +2 -0
  19. package/dist/esm/table/components/group-row/template.js +23 -0
  20. package/dist/esm/table/components/group-row/template.js.map +1 -0
  21. package/dist/esm/table/components/row/index.d.ts +5 -0
  22. package/dist/esm/table/components/row/index.js +30 -5
  23. package/dist/esm/table/components/row/index.js.map +1 -1
  24. package/dist/esm/table/components/row/styles.js +4 -0
  25. package/dist/esm/table/components/row/styles.js.map +1 -1
  26. package/dist/esm/table/components/row/template.js +2 -1
  27. package/dist/esm/table/components/row/template.js.map +1 -1
  28. package/dist/esm/table/index.d.ts +31 -3
  29. package/dist/esm/table/index.js +223 -22
  30. package/dist/esm/table/index.js.map +1 -1
  31. package/dist/esm/table/models/table-validator.d.ts +9 -1
  32. package/dist/esm/table/models/table-validator.js +37 -12
  33. package/dist/esm/table/models/table-validator.js.map +1 -1
  34. package/dist/esm/table/models/update-tracker.d.ts +4 -0
  35. package/dist/esm/table/models/update-tracker.js +23 -2
  36. package/dist/esm/table/models/update-tracker.js.map +1 -1
  37. package/dist/esm/table/models/virtualizer.d.ts +3 -1
  38. package/dist/esm/table/models/virtualizer.js +3 -2
  39. package/dist/esm/table/models/virtualizer.js.map +1 -1
  40. package/dist/esm/table/styles.js +19 -3
  41. package/dist/esm/table/styles.js.map +1 -1
  42. package/dist/esm/table/template.js +38 -19
  43. package/dist/esm/table/template.js.map +1 -1
  44. package/dist/esm/table/types.d.ts +26 -0
  45. package/dist/esm/table/types.js +16 -0
  46. package/dist/esm/table/types.js.map +1 -1
  47. package/dist/esm/table-column/base/group-header-view/index.d.ts +14 -0
  48. package/dist/esm/table-column/base/group-header-view/index.js +17 -0
  49. package/dist/esm/table-column/base/group-header-view/index.js.map +1 -0
  50. package/dist/esm/table-column/base/group-header-view/template.d.ts +3 -0
  51. package/dist/esm/table-column/base/group-header-view/template.js +10 -0
  52. package/dist/esm/table-column/base/group-header-view/template.js.map +1 -0
  53. package/dist/esm/table-column/base/index.d.ts +25 -0
  54. package/dist/esm/table-column/base/index.js +23 -0
  55. package/dist/esm/table-column/base/index.js.map +1 -1
  56. package/dist/esm/table-column/mixins/groupable-column.d.ts +12 -0
  57. package/dist/esm/table-column/mixins/groupable-column.js +35 -0
  58. package/dist/esm/table-column/mixins/groupable-column.js.map +1 -0
  59. package/dist/esm/table-column/text/group-header-view/index.d.ts +22 -0
  60. package/dist/esm/table-column/text/group-header-view/index.js +47 -0
  61. package/dist/esm/table-column/text/group-header-view/index.js.map +1 -0
  62. package/dist/esm/table-column/text/group-header-view/styles.d.ts +1 -0
  63. package/dist/esm/table-column/text/group-header-view/styles.js +16 -0
  64. package/dist/esm/table-column/text/group-header-view/styles.js.map +1 -0
  65. package/dist/esm/table-column/text/group-header-view/template.d.ts +2 -0
  66. package/dist/esm/table-column/text/group-header-view/template.js +15 -0
  67. package/dist/esm/table-column/text/group-header-view/template.js.map +1 -0
  68. package/dist/esm/table-column/text/index.d.ts +9 -1
  69. package/dist/esm/table-column/text/index.js +7 -1
  70. package/dist/esm/table-column/text/index.js.map +1 -1
  71. package/dist/esm/tree-item/styles.js +2 -2
  72. package/dist/esm/tree-item/styles.js.map +1 -1
  73. package/package.json +1 -1
@@ -1,12 +1,12 @@
1
1
  import { __decorate } from "tslib";
2
- import { attr, Observable, observable } from '@microsoft/fast-element';
2
+ import { attr, Observable, observable, DOM } from '@microsoft/fast-element';
3
3
  import { DesignSystem, FoundationElement } from '@microsoft/fast-foundation';
4
- import { createTable as tanStackCreateTable, getCoreRowModel as tanStackGetCoreRowModel, getSortedRowModel as tanStackGetSortedRowModel } from '@tanstack/table-core';
4
+ import { createTable as tanStackCreateTable, getCoreRowModel as tanStackGetCoreRowModel, getSortedRowModel as tanStackGetSortedRowModel, getGroupedRowModel as tanStackGetGroupedRowModel, getExpandedRowModel as tanStackGetExpandedRowModel } from '@tanstack/table-core';
5
5
  import { TableColumn } from '../table-column/base';
6
6
  import { TableValidator } from './models/table-validator';
7
7
  import { styles } from './styles';
8
8
  import { template } from './template';
9
- import { TableColumnSortDirection } from './types';
9
+ import { TableColumnSortDirection, TableRowSelectionMode, TableRowSelectionState } from './types';
10
10
  import { Virtualizer } from './models/virtualizer';
11
11
  import { getTanStackSortingFunction } from './models/sort-operations';
12
12
  import { UpdateTracker } from './models/update-tracker';
@@ -17,6 +17,7 @@ import { TableLayoutHelper } from './models/table-layout-helper';
17
17
  export class Table extends FoundationElement {
18
18
  constructor() {
19
19
  super();
20
+ this.selectionMode = TableRowSelectionMode.none;
20
21
  /**
21
22
  * @internal
22
23
  */
@@ -48,34 +49,120 @@ export class Table extends FoundationElement {
48
49
  this.tableValidator = new TableValidator();
49
50
  this.updateTracker = new UpdateTracker(this);
50
51
  this.columnNotifiers = [];
52
+ this.isInitialized = false;
53
+ this.collapsedRows = new Set();
51
54
  this.onViewPortScroll = (event) => {
52
55
  this.scrollX = event.target.scrollLeft;
53
56
  };
57
+ this.getIsRowExpanded = (row) => {
58
+ if (!row.getIsGrouped()) {
59
+ return false;
60
+ }
61
+ const expandedState = this.table.options.state.expanded;
62
+ if (expandedState === true) {
63
+ return true;
64
+ }
65
+ if (Object.keys(expandedState ?? {}).includes(row.id)) {
66
+ return expandedState[row.id];
67
+ }
68
+ return !this.collapsedRows.has(row.id);
69
+ };
70
+ this.handleRowSelectionChange = (updaterOrValue) => {
71
+ const rowSelectionState = updaterOrValue instanceof Function
72
+ ? updaterOrValue(this.table.getState().rowSelection)
73
+ : updaterOrValue;
74
+ this.updateTableOptions({
75
+ state: {
76
+ rowSelection: rowSelectionState
77
+ }
78
+ });
79
+ };
80
+ this.handleExpandedChange = (updaterOrValue) => {
81
+ const expandedState = updaterOrValue instanceof Function
82
+ ? updaterOrValue(this.table.getState().expanded)
83
+ : updaterOrValue;
84
+ this.updateTableOptions({
85
+ state: {
86
+ expanded: expandedState
87
+ }
88
+ });
89
+ };
54
90
  this.options = {
55
91
  data: [],
56
92
  onStateChange: (_) => { },
93
+ onRowSelectionChange: this.handleRowSelectionChange,
94
+ onExpandedChange: this.handleExpandedChange,
57
95
  getCoreRowModel: tanStackGetCoreRowModel(),
58
96
  getSortedRowModel: tanStackGetSortedRowModel(),
97
+ getGroupedRowModel: tanStackGetGroupedRowModel(),
98
+ getExpandedRowModel: tanStackGetExpandedRowModel(),
99
+ getIsRowExpanded: this.getIsRowExpanded,
59
100
  columns: [],
60
- state: {},
101
+ state: {
102
+ rowSelection: {},
103
+ grouping: [],
104
+ expanded: true // Workaround until we can apply a fix to TanStack regarding leveraging our getIsRowExpanded implementation
105
+ },
106
+ enableRowSelection: false,
61
107
  enableSorting: true,
108
+ enableGrouping: true,
62
109
  renderFallbackValue: null,
63
110
  autoResetAll: false
64
111
  };
65
112
  this.table = tanStackCreateTable(this.options);
66
- this.virtualizer = new Virtualizer(this);
113
+ this.virtualizer = new Virtualizer(this, this.table);
67
114
  }
68
115
  get validity() {
69
116
  return this.tableValidator.getValidity();
70
117
  }
71
- setData(newData) {
72
- this.setTableData(newData);
118
+ async setData(newData) {
119
+ await this.processPendingUpdates();
120
+ const data = newData.map(record => {
121
+ return { ...record };
122
+ });
123
+ const tanStackUpdates = {
124
+ data
125
+ };
126
+ this.validateWithData(data);
127
+ if (this.tableValidator.areRecordIdsValid()) {
128
+ // Update the selection state to remove previously selected records that no longer exist in the
129
+ // data set while maintaining the selection state of records that still exist in the data set.
130
+ const previousSelection = await this.getSelectedRecordIds();
131
+ tanStackUpdates.state = {
132
+ rowSelection: this.calculateTanStackSelectionState(previousSelection)
133
+ };
134
+ }
135
+ this.updateTableOptions(tanStackUpdates);
136
+ }
137
+ async getSelectedRecordIds() {
138
+ await this.processPendingUpdates();
139
+ const tanStackSelectionState = this.options.state.rowSelection;
140
+ if (!tanStackSelectionState) {
141
+ return [];
142
+ }
143
+ const selectedRecordIds = [];
144
+ Object.entries(tanStackSelectionState).forEach(([recordId, isSelected]) => {
145
+ if (isSelected) {
146
+ selectedRecordIds.push(recordId);
147
+ }
148
+ });
149
+ return selectedRecordIds;
150
+ }
151
+ async setSelectedRecordIds(recordIds) {
152
+ await this.processPendingUpdates();
153
+ if (this.selectionMode === TableRowSelectionMode.none) {
154
+ return;
155
+ }
156
+ this.updateTableOptions({
157
+ state: {
158
+ rowSelection: this.calculateTanStackSelectionState(recordIds)
159
+ }
160
+ });
73
161
  }
74
162
  connectedCallback() {
75
163
  super.connectedCallback();
164
+ this.initialize();
76
165
  this.virtualizer.connectedCallback();
77
- this.updateTracker.trackAllStateChanged();
78
- this.observeColumns();
79
166
  this.viewport.addEventListener('scroll', this.onViewPortScroll, {
80
167
  passive: true
81
168
  });
@@ -83,7 +170,6 @@ export class Table extends FoundationElement {
83
170
  disconnectedCallback() {
84
171
  super.disconnectedCallback();
85
172
  this.virtualizer.disconnectedCallback();
86
- this.removeColumnObservers();
87
173
  this.viewport.removeEventListener('scroll', this.onViewPortScroll);
88
174
  }
89
175
  checkValidity() {
@@ -101,16 +187,42 @@ export class Table extends FoundationElement {
101
187
  this.updateTracker.trackColumnPropertyChanged(args);
102
188
  }
103
189
  }
190
+ /** @internal */
191
+ async onRowClick(rowIndex) {
192
+ if (this.selectionMode === TableRowSelectionMode.none) {
193
+ return;
194
+ }
195
+ const row = this.table.getRowModel().rows[rowIndex];
196
+ if (!row) {
197
+ return;
198
+ }
199
+ const currentSelection = await this.getSelectedRecordIds();
200
+ if (currentSelection.length === 1 && currentSelection[0] === row.id) {
201
+ // The clicked row is already the only selected row. Do nothing.
202
+ return;
203
+ }
204
+ this.table.toggleAllRowsSelected(false);
205
+ row.toggleSelected(true);
206
+ await this.emitSelectionChangeEvent();
207
+ }
208
+ /** @internal */
104
209
  onRowActionMenuBeforeToggle(event) {
210
+ event.stopImmediatePropagation();
105
211
  this.openActionMenuRecordId = event.detail.recordIds[0];
106
212
  this.$emit('action-menu-beforetoggle', event.detail);
107
213
  }
214
+ /** @internal */
108
215
  onRowActionMenuToggle(event) {
216
+ event.stopImmediatePropagation();
109
217
  this.$emit('action-menu-toggle', event.detail);
110
218
  if (!event.detail.newState) {
111
219
  this.openActionMenuRecordId = undefined;
112
220
  }
113
221
  }
222
+ handleGroupRowExpanded(rowIndex, event) {
223
+ this.toggleGroupExpanded(rowIndex);
224
+ event.stopPropagation();
225
+ }
114
226
  /**
115
227
  * @internal
116
228
  */
@@ -126,6 +238,12 @@ export class Table extends FoundationElement {
126
238
  this.updateRowGridColumns();
127
239
  }
128
240
  }
241
+ selectionModeChanged(_prev, _next) {
242
+ if (!this.$fastController.isConnected) {
243
+ return;
244
+ }
245
+ this.updateTracker.trackSelectionModeChanged();
246
+ }
129
247
  idFieldNameChanged(_prev, _next) {
130
248
  if (!this.$fastController.isConnected) {
131
249
  return;
@@ -145,6 +263,24 @@ export class Table extends FoundationElement {
145
263
  });
146
264
  this.columnNotifiers = [];
147
265
  }
266
+ initialize() {
267
+ if (this.isInitialized) {
268
+ // The table is already initialized. There is nothing more to do.
269
+ return;
270
+ }
271
+ this.isInitialized = true;
272
+ // Initialize the controller to ensure that FAST functionality such as Observables work as expected.
273
+ this.$fastController.onConnectedCallback();
274
+ this.updateTracker.trackAllStateChanged();
275
+ this.observeColumns();
276
+ }
277
+ async processPendingUpdates() {
278
+ this.initialize();
279
+ await DOM.nextUpdate();
280
+ if (this.updateTracker.hasPendingUpdates) {
281
+ throw new Error('Expected pending updates to be resolved');
282
+ }
283
+ }
148
284
  observeColumns() {
149
285
  this.removeColumnObservers();
150
286
  for (const column of this.columns) {
@@ -157,6 +293,10 @@ export class Table extends FoundationElement {
157
293
  return this.columns.filter(x => x.sortDirection !== TableColumnSortDirection.none
158
294
  && typeof x.sortIndex === 'number');
159
295
  }
296
+ getColumnsParticipatingInGrouping() {
297
+ return this.columns.filter(x => !x.internalGroupingDisabled
298
+ && typeof x.internalGroupIndex === 'number');
299
+ }
160
300
  childItemsChanged() {
161
301
  void this.updateColumnsFromChildItems();
162
302
  }
@@ -168,9 +308,8 @@ export class Table extends FoundationElement {
168
308
  this.columns = this.childItems.filter((x) => x instanceof TableColumn);
169
309
  }
170
310
  updateTanStack() {
171
- const updatedOptions = {
172
- state: {}
173
- };
311
+ const updatedOptions = {};
312
+ updatedOptions.state = {};
174
313
  if (this.updateTracker.updateColumnSort) {
175
314
  updatedOptions.state.sorting = this.calculateTanStackSortState();
176
315
  }
@@ -179,11 +318,21 @@ export class Table extends FoundationElement {
179
318
  }
180
319
  if (this.updateTracker.updateRowIds) {
181
320
  updatedOptions.getRowId = this.calculateTanStackRowIdFunction();
321
+ updatedOptions.state.rowSelection = {};
322
+ }
323
+ if (this.updateTracker.updateSelectionMode) {
324
+ updatedOptions.enableRowSelection = this.selectionMode !== TableRowSelectionMode.none;
325
+ updatedOptions.state.rowSelection = {};
182
326
  }
183
327
  if (this.updateTracker.requiresTanStackDataReset) {
184
328
  // Perform a shallow copy of the data to trigger tanstack to regenerate the row models and columns.
185
329
  updatedOptions.data = [...this.table.options.data];
186
330
  }
331
+ if (this.updateTracker.updateGroupRows) {
332
+ updatedOptions.state.grouping = this.calculateTanStackGroupingState();
333
+ updatedOptions.state.expanded = true;
334
+ this.collapsedRows.clear();
335
+ }
187
336
  this.updateTableOptions(updatedOptions);
188
337
  }
189
338
  updateActionMenuSlots() {
@@ -199,34 +348,54 @@ export class Table extends FoundationElement {
199
348
  this.rowGridColumns = TableLayoutHelper.getGridTemplateColumns(this.columns);
200
349
  }
201
350
  validate() {
351
+ this.tableValidator.validateSelectionMode(this.selectionMode, this.idFieldName);
202
352
  this.tableValidator.validateColumnIds(this.columns.map(x => x.columnId));
203
353
  this.tableValidator.validateColumnSortIndices(this.getColumnsParticipatingInSorting().map(x => x.sortIndex));
354
+ this.tableValidator.validateColumnGroupIndices(this.getColumnsParticipatingInGrouping().map(x => x.internalGroupIndex));
204
355
  this.validateWithData(this.table.options.data);
205
356
  }
206
357
  validateWithData(data) {
207
358
  this.tableValidator.validateRecordIds(data, this.idFieldName);
208
359
  this.canRenderRows = this.checkValidity();
209
360
  }
210
- setTableData(newData) {
211
- const data = newData.map(record => {
212
- return { ...record };
213
- });
214
- this.validateWithData(data);
215
- this.updateTableOptions({
216
- data
217
- });
361
+ async emitSelectionChangeEvent() {
362
+ const detail = {
363
+ selectedRecordIds: await this.getSelectedRecordIds()
364
+ };
365
+ this.$emit('selection-change', detail);
218
366
  }
219
367
  refreshRows() {
220
368
  const rows = this.table.getRowModel().rows;
221
369
  this.tableData = rows.map(row => {
222
370
  const rowState = {
223
371
  record: row.original,
224
- id: row.id
372
+ id: row.id,
373
+ selectionState: row.getIsSelected()
374
+ ? TableRowSelectionState.selected
375
+ : TableRowSelectionState.notSelected,
376
+ isGrouped: row.getIsGrouped(),
377
+ isExpanded: row.getIsExpanded(),
378
+ groupRowValue: row.getIsGrouped()
379
+ ? row.getValue(row.groupingColumnId)
380
+ : undefined,
381
+ nestingLevel: row.depth,
382
+ leafItemCount: row
383
+ .getLeafRows()
384
+ .filter(leafRow => leafRow.getLeafRows().length === 0)
385
+ .length,
386
+ groupColumn: this.getGroupRowColumn(row)
225
387
  };
226
388
  return rowState;
227
389
  });
228
390
  this.virtualizer.dataChanged();
229
391
  }
392
+ getGroupRowColumn(row) {
393
+ const groupedId = row.groupingColumnId;
394
+ if (groupedId !== undefined) {
395
+ return this.columns.find(c => c.internalUniqueId === groupedId);
396
+ }
397
+ return undefined;
398
+ }
230
399
  updateTableOptions(updatedOptions) {
231
400
  this.options = {
232
401
  ...this.options,
@@ -236,6 +405,18 @@ export class Table extends FoundationElement {
236
405
  this.table.setOptions(this.options);
237
406
  this.refreshRows();
238
407
  }
408
+ toggleGroupExpanded(rowIndex) {
409
+ const row = this.table.getRowModel().rows[rowIndex];
410
+ const wasExpanded = row.getIsExpanded();
411
+ // must update the collapsedRows before toggling expanded state
412
+ if (wasExpanded) {
413
+ this.collapsedRows.add(row.id);
414
+ }
415
+ else {
416
+ this.collapsedRows.delete(row.id);
417
+ }
418
+ row.toggleExpanded();
419
+ }
239
420
  calculateTanStackSortState() {
240
421
  const sortedColumns = this.getColumnsParticipatingInSorting().sort((x, y) => x.sortIndex - y.sortIndex);
241
422
  this.firstSortedColumn = sortedColumns.length
@@ -248,6 +429,10 @@ export class Table extends FoundationElement {
248
429
  };
249
430
  });
250
431
  }
432
+ calculateTanStackGroupingState() {
433
+ const groupedColumns = this.getColumnsParticipatingInGrouping().sort((x, y) => x.internalGroupIndex - y.internalGroupIndex);
434
+ return groupedColumns.map(column => column.internalUniqueId);
435
+ }
251
436
  calculateTanStackRowIdFunction() {
252
437
  return this.idFieldName === null || this.idFieldName === undefined
253
438
  ? undefined
@@ -268,10 +453,26 @@ export class Table extends FoundationElement {
268
453
  };
269
454
  });
270
455
  }
456
+ calculateTanStackSelectionState(recordIdsToSelect) {
457
+ if (this.selectionMode === TableRowSelectionMode.none) {
458
+ return {};
459
+ }
460
+ const tanstackSelectionState = {};
461
+ const selectableRecordIds = this.tableValidator.getPresentRecordIds(recordIdsToSelect);
462
+ if (selectableRecordIds.length) {
463
+ // In single selection mode, only select the first record ID that is requested
464
+ const firstSelectableRecordId = selectableRecordIds[0];
465
+ tanstackSelectionState[firstSelectableRecordId] = true;
466
+ }
467
+ return tanstackSelectionState;
468
+ }
271
469
  }
272
470
  __decorate([
273
471
  attr({ attribute: 'id-field-name' })
274
472
  ], Table.prototype, "idFieldName", void 0);
473
+ __decorate([
474
+ attr({ attribute: 'selection-mode' })
475
+ ], Table.prototype, "selectionMode", void 0);
275
476
  __decorate([
276
477
  observable
277
478
  ], Table.prototype, "tableData", 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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"}
@@ -1,4 +1,4 @@
1
- import type { TableRecord, TableValidity } from '../types';
1
+ import { TableRecord, TableRowSelectionMode, TableValidity } from '../types';
2
2
  /**
3
3
  * Helper class for the nimble-table to validate that the table's configuration
4
4
  * is valid and report which aspects of the configuration are valid or invalid.
@@ -10,9 +10,17 @@ export declare class TableValidator<TData extends TableRecord> {
10
10
  private duplicateColumnId;
11
11
  private missingColumnId;
12
12
  private duplicateSortIndex;
13
+ private duplicateGroupIndex;
14
+ private idFieldNameNotConfigured;
15
+ private readonly recordIds;
13
16
  getValidity(): TableValidity;
14
17
  isValid(): boolean;
18
+ areRecordIdsValid(): boolean;
19
+ validateSelectionMode(selectionMode: TableRowSelectionMode, idFieldName: string | undefined): boolean;
15
20
  validateRecordIds(data: TData[], idFieldName: string | undefined): boolean;
16
21
  validateColumnIds(columnIds: (string | undefined)[]): boolean;
17
22
  validateColumnSortIndices(sortIndices: number[]): boolean;
23
+ validateColumnGroupIndices(groupIndices: number[]): boolean;
24
+ getPresentRecordIds(requestedRecordIds: string[]): string[];
25
+ private validateIndicesAreUnique;
18
26
  }
@@ -1,3 +1,4 @@
1
+ import { TableRowSelectionMode } from '../types';
1
2
  /**
2
3
  * Helper class for the nimble-table to validate that the table's configuration
3
4
  * is valid and report which aspects of the configuration are valid or invalid.
@@ -10,6 +11,9 @@ export class TableValidator {
10
11
  this.duplicateColumnId = false;
11
12
  this.missingColumnId = false;
12
13
  this.duplicateSortIndex = false;
14
+ this.duplicateGroupIndex = false;
15
+ this.idFieldNameNotConfigured = false;
16
+ this.recordIds = new Set();
13
17
  }
14
18
  getValidity() {
15
19
  return {
@@ -18,21 +22,38 @@ export class TableValidator {
18
22
  invalidRecordId: this.invalidRecordId,
19
23
  duplicateColumnId: this.duplicateColumnId,
20
24
  missingColumnId: this.missingColumnId,
21
- duplicateSortIndex: this.duplicateSortIndex
25
+ duplicateSortIndex: this.duplicateSortIndex,
26
+ duplicateGroupIndex: this.duplicateGroupIndex,
27
+ idFieldNameNotConfigured: this.idFieldNameNotConfigured
22
28
  };
23
29
  }
24
30
  isValid() {
25
31
  return Object.values(this.getValidity()).every(x => x === false);
26
32
  }
33
+ areRecordIdsValid() {
34
+ const validity = this.getValidity();
35
+ return (!validity.duplicateRecordId
36
+ && !validity.missingRecordId
37
+ && !validity.invalidRecordId);
38
+ }
39
+ validateSelectionMode(selectionMode, idFieldName) {
40
+ if (selectionMode === TableRowSelectionMode.none) {
41
+ this.idFieldNameNotConfigured = false;
42
+ }
43
+ else {
44
+ this.idFieldNameNotConfigured = typeof idFieldName !== 'string';
45
+ }
46
+ return !this.idFieldNameNotConfigured;
47
+ }
27
48
  validateRecordIds(data, idFieldName) {
28
49
  // Start off by assuming all IDs are valid.
29
50
  this.duplicateRecordId = false;
30
51
  this.missingRecordId = false;
31
52
  this.invalidRecordId = false;
53
+ this.recordIds.clear();
32
54
  if (typeof idFieldName !== 'string') {
33
55
  return true;
34
56
  }
35
- const ids = new Set();
36
57
  for (const record of data) {
37
58
  if (!Object.prototype.hasOwnProperty.call(record, idFieldName)) {
38
59
  this.missingRecordId = true;
@@ -43,10 +64,10 @@ export class TableValidator {
43
64
  this.invalidRecordId = true;
44
65
  continue;
45
66
  }
46
- if (ids.has(id)) {
67
+ if (this.recordIds.has(id)) {
47
68
  this.duplicateRecordId = true;
48
69
  }
49
- ids.add(id);
70
+ this.recordIds.add(id);
50
71
  }
51
72
  return (!this.missingRecordId
52
73
  && !this.invalidRecordId
@@ -73,15 +94,19 @@ export class TableValidator {
73
94
  return !this.missingColumnId && !this.duplicateColumnId;
74
95
  }
75
96
  validateColumnSortIndices(sortIndices) {
76
- this.duplicateSortIndex = false;
77
- const sortIndexSet = new Set();
78
- for (const sortIndex of sortIndices) {
79
- if (sortIndexSet.has(sortIndex)) {
80
- this.duplicateSortIndex = true;
81
- }
82
- sortIndexSet.add(sortIndex);
83
- }
97
+ this.duplicateSortIndex = !this.validateIndicesAreUnique(sortIndices);
84
98
  return !this.duplicateSortIndex;
85
99
  }
100
+ validateColumnGroupIndices(groupIndices) {
101
+ this.duplicateGroupIndex = !this.validateIndicesAreUnique(groupIndices);
102
+ return !this.duplicateGroupIndex;
103
+ }
104
+ getPresentRecordIds(requestedRecordIds) {
105
+ return requestedRecordIds.filter(id => this.recordIds.has(id));
106
+ }
107
+ validateIndicesAreUnique(indices) {
108
+ const numberSet = new Set(indices);
109
+ return numberSet.size === indices.length;
110
+ }
86
111
  }
87
112
  //# sourceMappingURL=table-validator.js.map
@@ -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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"}
@@ -10,17 +10,21 @@ export declare class UpdateTracker<TData extends TableRecord> {
10
10
  private updateQueued;
11
11
  constructor(table: Table<TData>);
12
12
  get updateRowIds(): boolean;
13
+ get updateGroupRows(): boolean;
13
14
  get updateColumnIds(): boolean;
14
15
  get updateColumnSort(): boolean;
15
16
  get updateColumnWidths(): boolean;
16
17
  get updateColumnDefinition(): boolean;
17
18
  get updateActionMenuSlots(): boolean;
19
+ get updateSelectionMode(): boolean;
18
20
  get requiresTanStackUpdate(): boolean;
19
21
  get requiresTanStackDataReset(): boolean;
20
22
  trackAllStateChanged(): void;
23
+ get hasPendingUpdates(): boolean;
21
24
  trackColumnPropertyChanged(changedColumnProperty: string): void;
22
25
  trackColumnInstancesChanged(): void;
23
26
  trackIdFieldNameChanged(): void;
27
+ trackSelectionModeChanged(): void;
24
28
  private setAllKeys;
25
29
  private queueUpdate;
26
30
  }