@ni/nimble-components 18.6.3 → 18.6.4

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.
@@ -64,6 +64,7 @@ export declare class Table<TData extends TableRecord = TableRecord> extends Foun
64
64
  private readonly table;
65
65
  private options;
66
66
  private readonly tableValidator;
67
+ private readonly updateTracker;
67
68
  private columnNotifiers;
68
69
  constructor();
69
70
  setData(newData: readonly TData[]): void;
@@ -80,22 +81,29 @@ export declare class Table<TData extends TableRecord = TableRecord> extends Foun
80
81
  handleChange(source: unknown, args: unknown): void;
81
82
  onRowActionMenuBeforeToggle(event: CustomEvent<TableActionMenuToggleEventDetail>): void;
82
83
  onRowActionMenuToggle(event: CustomEvent<TableActionMenuToggleEventDetail>): void;
83
- protected childItemsChanged(): void;
84
+ /**
85
+ * @internal
86
+ */
87
+ update(): void;
84
88
  protected idFieldNameChanged(_prev: string | undefined, _next: string | undefined): void;
85
89
  protected columnsChanged(_prev: TableColumn[] | undefined, _next: TableColumn[]): void;
86
90
  private readonly onViewPortScroll;
87
91
  private removeColumnObservers;
88
- private validateAndObserveColumns;
89
- private validateColumnIds;
90
- private validateColumnSortIndices;
92
+ private observeColumns;
91
93
  private getColumnsParticipatingInSorting;
92
- private updateRowGridColumns;
94
+ private childItemsChanged;
93
95
  private updateColumnsFromChildItems;
96
+ private updateTanStack;
97
+ private updateActionMenuSlots;
98
+ private updateRowGridColumns;
99
+ private validate;
100
+ private validateWithData;
94
101
  private setTableData;
95
102
  private refreshRows;
96
103
  private updateTableOptions;
97
- private setSortState;
98
- private generateTanStackColumns;
104
+ private calculateTanStackSortState;
105
+ private calculateTanStackRowIdFunction;
106
+ private calculateTanStackColumns;
99
107
  }
100
108
  export declare const tableTag: string;
101
109
  export {};
@@ -9,6 +9,7 @@ import { template } from './template';
9
9
  import { TableColumnSortDirection } from './types';
10
10
  import { Virtualizer } from './models/virtualizer';
11
11
  import { getTanStackSortingFunction } from './models/sort-operations';
12
+ import { UpdateTracker } from './models/update-tracker';
12
13
  import { TableLayoutHelper } from './models/table-layout-helper';
13
14
  /**
14
15
  * A nimble-styled table.
@@ -41,6 +42,7 @@ export class Table extends FoundationElement {
41
42
  */
42
43
  this.scrollX = 0;
43
44
  this.tableValidator = new TableValidator();
45
+ this.updateTracker = new UpdateTracker(this);
44
46
  this.columnNotifiers = [];
45
47
  this.onViewPortScroll = (event) => {
46
48
  this.scrollX = event.target.scrollLeft;
@@ -68,7 +70,8 @@ export class Table extends FoundationElement {
68
70
  connectedCallback() {
69
71
  super.connectedCallback();
70
72
  this.virtualizer.connectedCallback();
71
- this.validateAndObserveColumns();
73
+ this.updateTracker.trackAllStateChanged();
74
+ this.observeColumns();
72
75
  this.viewport.addEventListener('scroll', this.onViewPortScroll, {
73
76
  passive: true
74
77
  });
@@ -90,24 +93,8 @@ export class Table extends FoundationElement {
90
93
  * is the string name of the property that changed on that column.
91
94
  */
92
95
  handleChange(source, args) {
93
- if (source instanceof TableColumn) {
94
- if (args === 'columnId') {
95
- this.validateColumnIds();
96
- }
97
- else if (args === 'operandDataRecordFieldName'
98
- || args === 'sortOperation') {
99
- this.generateTanStackColumns();
100
- }
101
- else if (args === 'sortIndex' || args === 'sortDirection') {
102
- this.validateColumnSortIndices();
103
- this.setSortState();
104
- }
105
- else if (args === 'currentFractionalWidth'
106
- || args === 'currentPixelWidth'
107
- || args === 'internalMinPixelWidth'
108
- || args === 'columnHidden') {
109
- this.updateRowGridColumns();
110
- }
96
+ if (source instanceof TableColumn && typeof args === 'string') {
97
+ this.updateTracker.trackColumnPropertyChanged(args);
111
98
  }
112
99
  }
113
100
  onRowActionMenuBeforeToggle(event) {
@@ -117,29 +104,33 @@ export class Table extends FoundationElement {
117
104
  onRowActionMenuToggle(event) {
118
105
  this.$emit('action-menu-toggle', event.detail);
119
106
  }
120
- childItemsChanged() {
121
- void this.updateColumnsFromChildItems();
107
+ /**
108
+ * @internal
109
+ */
110
+ update() {
111
+ this.validate();
112
+ if (this.updateTracker.requiresTanStackUpdate) {
113
+ this.updateTanStack();
114
+ }
115
+ if (this.updateTracker.updateActionMenuSlots) {
116
+ this.updateActionMenuSlots();
117
+ }
118
+ if (this.updateTracker.updateColumnWidths) {
119
+ this.updateRowGridColumns();
120
+ }
122
121
  }
123
122
  idFieldNameChanged(_prev, _next) {
124
- // Force TanStack to detect a data update because a row's ID is only
125
- // generated when creating a new row model.
126
- this.setTableData(this.table.options.data);
123
+ if (!this.$fastController.isConnected) {
124
+ return;
125
+ }
126
+ this.updateTracker.trackIdFieldNameChanged();
127
127
  }
128
128
  columnsChanged(_prev, _next) {
129
129
  if (!this.$fastController.isConnected) {
130
130
  return;
131
131
  }
132
- this.validateAndObserveColumns();
133
- this.generateTanStackColumns();
134
- this.setSortState();
135
- const slots = new Set();
136
- for (const column of this.columns) {
137
- if (column.actionMenuSlot) {
138
- slots.add(column.actionMenuSlot);
139
- }
140
- }
141
- this.actionMenuSlots = Array.from(slots);
142
- this.updateRowGridColumns();
132
+ this.observeColumns();
133
+ this.updateTracker.trackColumnInstancesChanged();
143
134
  }
144
135
  removeColumnObservers() {
145
136
  this.columnNotifiers.forEach(notifier => {
@@ -147,30 +138,20 @@ export class Table extends FoundationElement {
147
138
  });
148
139
  this.columnNotifiers = [];
149
140
  }
150
- validateAndObserveColumns() {
141
+ observeColumns() {
151
142
  this.removeColumnObservers();
152
143
  for (const column of this.columns) {
153
144
  const notifier = Observable.getNotifier(column);
154
145
  notifier.subscribe(this);
155
146
  this.columnNotifiers.push(notifier);
156
147
  }
157
- this.validateColumnIds();
158
- this.validateColumnSortIndices();
159
- }
160
- validateColumnIds() {
161
- this.tableValidator.validateColumnIds(this.columns.map(x => x.columnId));
162
- this.canRenderRows = this.checkValidity();
163
- }
164
- validateColumnSortIndices() {
165
- this.tableValidator.validateColumnSortIndices(this.getColumnsParticipatingInSorting().map(x => x.sortIndex));
166
- this.canRenderRows = this.checkValidity();
167
148
  }
168
149
  getColumnsParticipatingInSorting() {
169
150
  return this.columns.filter(x => x.sortDirection !== TableColumnSortDirection.none
170
151
  && typeof x.sortIndex === 'number');
171
152
  }
172
- updateRowGridColumns() {
173
- this.rowGridColumns = TableLayoutHelper.getGridTemplateColumns(this.columns);
153
+ childItemsChanged() {
154
+ void this.updateColumnsFromChildItems();
174
155
  }
175
156
  async updateColumnsFromChildItems() {
176
157
  const definedElements = this.childItems.map(async (item) => (item.matches(':not(:defined)')
@@ -179,18 +160,53 @@ export class Table extends FoundationElement {
179
160
  await Promise.all(definedElements);
180
161
  this.columns = this.childItems.filter((x) => x instanceof TableColumn);
181
162
  }
163
+ updateTanStack() {
164
+ const updatedOptions = {
165
+ state: {}
166
+ };
167
+ if (this.updateTracker.updateColumnSort) {
168
+ updatedOptions.state.sorting = this.calculateTanStackSortState();
169
+ }
170
+ if (this.updateTracker.updateColumnDefinition) {
171
+ updatedOptions.columns = this.calculateTanStackColumns();
172
+ }
173
+ if (this.updateTracker.updateRowIds) {
174
+ updatedOptions.getRowId = this.calculateTanStackRowIdFunction();
175
+ }
176
+ if (this.updateTracker.requiresTanStackDataReset) {
177
+ // Perform a shallow copy of the data to trigger tanstack to regenerate the row models and columns.
178
+ updatedOptions.data = [...this.table.options.data];
179
+ }
180
+ this.updateTableOptions(updatedOptions);
181
+ }
182
+ updateActionMenuSlots() {
183
+ const slots = new Set();
184
+ for (const column of this.columns) {
185
+ if (column.actionMenuSlot) {
186
+ slots.add(column.actionMenuSlot);
187
+ }
188
+ }
189
+ this.actionMenuSlots = Array.from(slots);
190
+ }
191
+ updateRowGridColumns() {
192
+ this.rowGridColumns = TableLayoutHelper.getGridTemplateColumns(this.columns);
193
+ }
194
+ validate() {
195
+ this.tableValidator.validateColumnIds(this.columns.map(x => x.columnId));
196
+ this.tableValidator.validateColumnSortIndices(this.getColumnsParticipatingInSorting().map(x => x.sortIndex));
197
+ this.validateWithData(this.table.options.data);
198
+ }
199
+ validateWithData(data) {
200
+ this.tableValidator.validateRecordIds(data, this.idFieldName);
201
+ this.canRenderRows = this.checkValidity();
202
+ }
182
203
  setTableData(newData) {
183
204
  const data = newData.map(record => {
184
205
  return { ...record };
185
206
  });
186
- this.tableValidator.validateRecordIds(data, this.idFieldName);
187
- this.canRenderRows = this.checkValidity();
188
- const getRowIdFunction = this.idFieldName === null || this.idFieldName === undefined
189
- ? undefined
190
- : (record) => record[this.idFieldName];
207
+ this.validateWithData(data);
191
208
  this.updateTableOptions({
192
- data,
193
- getRowId: getRowIdFunction
209
+ data
194
210
  });
195
211
  }
196
212
  refreshRows() {
@@ -213,27 +229,26 @@ export class Table extends FoundationElement {
213
229
  this.table.setOptions(this.options);
214
230
  this.refreshRows();
215
231
  }
216
- setSortState() {
232
+ calculateTanStackSortState() {
217
233
  const sortedColumns = this.getColumnsParticipatingInSorting().sort((x, y) => x.sortIndex - y.sortIndex);
218
234
  this.firstSortedColumn = sortedColumns.length
219
235
  ? sortedColumns[0]
220
236
  : undefined;
221
- const tanStackSortingState = sortedColumns.map(column => {
237
+ return sortedColumns.map(column => {
222
238
  return {
223
239
  id: column.internalUniqueId,
224
- desc: column.sortDirection
225
- === TableColumnSortDirection.descending
240
+ desc: column.sortDirection === TableColumnSortDirection.descending
226
241
  };
227
242
  });
228
- this.updateTableOptions({
229
- state: {
230
- sorting: tanStackSortingState
231
- }
232
- });
233
243
  }
234
- generateTanStackColumns() {
235
- const generatedColumns = this.columns.map(column => {
236
- const columnDef = {
244
+ calculateTanStackRowIdFunction() {
245
+ return this.idFieldName === null || this.idFieldName === undefined
246
+ ? undefined
247
+ : (record) => record[this.idFieldName];
248
+ }
249
+ calculateTanStackColumns() {
250
+ return this.columns.map(column => {
251
+ return {
237
252
  id: column.internalUniqueId,
238
253
  accessorFn: (data) => {
239
254
  const fieldName = column.operandDataRecordFieldName;
@@ -244,13 +259,6 @@ export class Table extends FoundationElement {
244
259
  },
245
260
  sortingFn: getTanStackSortingFunction(column.sortOperation)
246
261
  };
247
- return columnDef;
248
- });
249
- this.updateTableOptions({
250
- // Force TanStack to detect a data update because a columns's accessor is
251
- // referenced when creating a new row model.
252
- data: [...this.table.options.data],
253
- columns: generatedColumns
254
262
  });
255
263
  }
256
264
  }
@@ -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,26 @@
1
+ import type { Table } from '..';
2
+ import type { TableRecord } from '../types';
3
+ /**
4
+ * Helper class to track what updates are needed to the table based on configuration
5
+ * changes.
6
+ */
7
+ export declare class UpdateTracker<TData extends TableRecord> {
8
+ private readonly requiredUpdates;
9
+ private readonly table;
10
+ private updateQueued;
11
+ constructor(table: Table<TData>);
12
+ get updateRowIds(): boolean;
13
+ get updateColumnIds(): boolean;
14
+ get updateColumnSort(): boolean;
15
+ get updateColumnWidths(): boolean;
16
+ get updateColumnDefinition(): boolean;
17
+ get updateActionMenuSlots(): boolean;
18
+ get requiresTanStackUpdate(): boolean;
19
+ get requiresTanStackDataReset(): boolean;
20
+ trackAllStateChanged(): void;
21
+ trackColumnPropertyChanged(changedColumnProperty: string): void;
22
+ trackColumnInstancesChanged(): void;
23
+ trackIdFieldNameChanged(): void;
24
+ private setAllKeys;
25
+ private queueUpdate;
26
+ }
@@ -0,0 +1,106 @@
1
+ import { DOM } from '@microsoft/fast-element';
2
+ const isColumnProperty = (changedProperty, ...args) => {
3
+ for (const arg of args) {
4
+ if (changedProperty === arg) {
5
+ return true;
6
+ }
7
+ }
8
+ return false;
9
+ };
10
+ /**
11
+ * Helper class to track what updates are needed to the table based on configuration
12
+ * changes.
13
+ */
14
+ export class UpdateTracker {
15
+ constructor(table) {
16
+ this.requiredUpdates = {
17
+ rowIds: false,
18
+ columnIds: false,
19
+ columnSort: false,
20
+ columnWidths: false,
21
+ columnDefinition: false,
22
+ actionMenuSlots: false
23
+ };
24
+ this.updateQueued = false;
25
+ this.table = table;
26
+ }
27
+ get updateRowIds() {
28
+ return this.requiredUpdates.rowIds;
29
+ }
30
+ get updateColumnIds() {
31
+ return this.requiredUpdates.columnIds;
32
+ }
33
+ get updateColumnSort() {
34
+ return this.requiredUpdates.columnSort;
35
+ }
36
+ get updateColumnWidths() {
37
+ return this.requiredUpdates.columnWidths;
38
+ }
39
+ get updateColumnDefinition() {
40
+ return this.requiredUpdates.columnDefinition;
41
+ }
42
+ get updateActionMenuSlots() {
43
+ return this.requiredUpdates.actionMenuSlots;
44
+ }
45
+ get requiresTanStackUpdate() {
46
+ return (this.requiredUpdates.rowIds
47
+ || this.requiredUpdates.columnSort
48
+ || this.requiredUpdates.columnDefinition);
49
+ }
50
+ get requiresTanStackDataReset() {
51
+ return (this.requiredUpdates.rowIds || this.requiredUpdates.columnDefinition);
52
+ }
53
+ trackAllStateChanged() {
54
+ this.setAllKeys(true);
55
+ this.queueUpdate();
56
+ }
57
+ trackColumnPropertyChanged(changedColumnProperty) {
58
+ if (isColumnProperty(changedColumnProperty, 'columnId')) {
59
+ this.requiredUpdates.columnIds = true;
60
+ }
61
+ else if (isColumnProperty(changedColumnProperty, 'operandDataRecordFieldName', 'sortOperation')) {
62
+ this.requiredUpdates.columnDefinition = true;
63
+ }
64
+ else if (isColumnProperty(changedColumnProperty, 'sortIndex', 'sortDirection')) {
65
+ this.requiredUpdates.columnSort = true;
66
+ }
67
+ else if (isColumnProperty(changedColumnProperty, 'currentFractionalWidth', 'currentPixelWidth', 'internalMinPixelWidth', 'columnHidden')) {
68
+ this.requiredUpdates.columnWidths = true;
69
+ }
70
+ else if (isColumnProperty(changedColumnProperty, 'actionMenuSlot')) {
71
+ this.requiredUpdates.actionMenuSlots = true;
72
+ }
73
+ this.queueUpdate();
74
+ }
75
+ trackColumnInstancesChanged() {
76
+ this.requiredUpdates.columnIds = true;
77
+ this.requiredUpdates.columnDefinition = true;
78
+ this.requiredUpdates.columnSort = true;
79
+ this.requiredUpdates.columnWidths = true;
80
+ this.requiredUpdates.actionMenuSlots = true;
81
+ this.queueUpdate();
82
+ }
83
+ trackIdFieldNameChanged() {
84
+ this.requiredUpdates.rowIds = true;
85
+ this.queueUpdate();
86
+ }
87
+ setAllKeys(value) {
88
+ Object.keys(this.requiredUpdates).forEach(key => {
89
+ this.requiredUpdates[key] = value;
90
+ });
91
+ }
92
+ queueUpdate() {
93
+ if (!this.table.$fastController.isConnected) {
94
+ return;
95
+ }
96
+ if (!this.updateQueued) {
97
+ this.updateQueued = true;
98
+ DOM.queueUpdate(() => {
99
+ this.table.update();
100
+ this.setAllKeys(false);
101
+ this.updateQueued = false;
102
+ });
103
+ }
104
+ }
105
+ }
106
+ //# sourceMappingURL=update-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-tracker.js","sourceRoot":"","sources":["../../../../src/table/models/update-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAkB9C,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;;;GAGG;AACH,MAAM,OAAO,aAAa;IAatB,YAAmB,KAAmB;QAZrB,oBAAe,GAAoB;YAChD,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,gBAAgB,EAAE,KAAK;YACvB,eAAe,EAAE,KAAK;SACzB,CAAC;QAGM,iBAAY,GAAG,KAAK,CAAC;QAGzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;IAC7C,CAAC;IAED,IAAW,sBAAsB;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;IACjD,CAAC;IAED,IAAW,qBAAqB;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;IAChD,CAAC;IAED,IAAW,sBAAsB;QAC7B,OAAO,CACH,IAAI,CAAC,eAAe,CAAC,MAAM;eACxB,IAAI,CAAC,eAAe,CAAC,UAAU;eAC/B,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAC3C,CAAC;IACN,CAAC;IAED,IAAW,yBAAyB;QAChC,OAAO,CACH,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,CACvE,CAAC;IACN,CAAC;IAEM,oBAAoB;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEM,0BAA0B,CAAC,qBAA6B;QAC3D,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,UAAU,CAAC,EAAE;YACrD,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC;SACzC;aAAM,IACH,gBAAgB,CACZ,qBAAqB,EACrB,4BAA4B,EAC5B,eAAe,CAClB,EACH;YACE,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAChD;aAAM,IACH,gBAAgB,CACZ,qBAAqB,EACrB,WAAW,EACX,eAAe,CAClB,EACH;YACE,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1C;aAAM,IACH,gBAAgB,CACZ,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,CACjB,EACH;YACE,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5C;aAAM,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,EAAE;YAClE,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC;SAC/C;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEM,2BAA2B;QAC9B,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5C,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEM,uBAAuB;QAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEO,UAAU,CAAC,KAAc;QAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC5C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,WAAW;QACf,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,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC9B,CAAC,CAAC,CAAC;SACN;IACL,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ni/nimble-components",
3
- "version": "18.6.3",
3
+ "version": "18.6.4",
4
4
  "description": "Styled web components for the NI Nimble Design System",
5
5
  "scripts": {
6
6
  "build": "npm run generate-icons && npm run build-components && npm run bundle-components && npm run generate-scss && npm run build-storybook",