@tanstack/table-core 9.0.0-beta.53 → 9.0.0-beta.55

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 (32) hide show
  1. package/dist/core/columns/constructColumn.js +3 -2
  2. package/dist/features/column-faceting/createFacetedRowModel.js +3 -2
  3. package/dist/features/column-filtering/createFilteredRowModel.js +3 -2
  4. package/dist/features/column-resizing/columnResizingFeature.utils.js +1 -1
  5. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +2 -1
  6. package/dist/features/row-selection/rowSelectionFeature.utils.js +3 -2
  7. package/dist/types/ColumnDef.d.ts +1 -1
  8. package/dist/types/type-utils.d.ts +1 -1
  9. package/dist/worker/initTableWorker.js +1 -1
  10. package/package.json +1 -1
  11. package/skills/aggregation/SKILL.md +1 -1
  12. package/skills/api-not-found/SKILL.md +1 -1
  13. package/skills/client-vs-server/SKILL.md +1 -1
  14. package/skills/column-faceting/SKILL.md +1 -1
  15. package/skills/column-filtering/SKILL.md +1 -1
  16. package/skills/column-ordering/SKILL.md +1 -1
  17. package/skills/column-pinning/SKILL.md +1 -1
  18. package/skills/column-resizing/SKILL.md +1 -1
  19. package/skills/column-sizing/SKILL.md +1 -1
  20. package/skills/column-visibility/SKILL.md +1 -1
  21. package/skills/core/SKILL.md +1 -1
  22. package/skills/custom-features/SKILL.md +1 -1
  23. package/skills/expanding/SKILL.md +1 -1
  24. package/skills/global-filtering/SKILL.md +1 -1
  25. package/skills/grouping/SKILL.md +1 -1
  26. package/skills/migrate-v8-to-v9/SKILL.md +1 -1
  27. package/skills/pagination/SKILL.md +1 -1
  28. package/skills/row-pinning/SKILL.md +1 -1
  29. package/skills/row-selection/SKILL.md +1 -1
  30. package/skills/sorting/SKILL.md +1 -1
  31. package/skills/table-features/SKILL.md +1 -1
  32. package/skills/typescript/SKILL.md +1 -1
@@ -22,10 +22,11 @@ function constructColumn(table, columnDef, depth, parent) {
22
22
  ...columnDef
23
23
  };
24
24
  const accessorKey = resolvedColumnDef.accessorKey;
25
- const id = resolvedColumnDef.id ?? (accessorKey ? accessorKey.replaceAll(".", "_") : void 0) ?? (typeof resolvedColumnDef.header === "string" ? resolvedColumnDef.header : void 0);
25
+ const accessorKeyString = accessorKey === void 0 ? void 0 : String(accessorKey);
26
+ const id = resolvedColumnDef.id ?? accessorKeyString?.replaceAll(".", "_") ?? (typeof resolvedColumnDef.header === "string" ? resolvedColumnDef.header : void 0);
26
27
  let accessorFn;
27
28
  if (resolvedColumnDef.accessorFn) accessorFn = resolvedColumnDef.accessorFn;
28
- else if (accessorKey) if (accessorKey.includes(".")) {
29
+ else if (accessorKey !== void 0) if (typeof accessorKey === "string" && accessorKey.includes(".")) {
29
30
  const keys = accessorKey.split(".");
30
31
  accessorFn = (originalRow) => {
31
32
  let result = originalRow;
@@ -25,13 +25,14 @@ function createFacetedRowModel() {
25
25
  };
26
26
  }
27
27
  function _createFacetedRowModel(table, columnId, preRowModel, columnFilters, globalFilter) {
28
- if (!preRowModel.rows.length || !columnFilters?.length && !globalFilter) return preRowModel;
28
+ const hasGlobalFilter = globalFilter !== void 0 && globalFilter !== null && globalFilter !== "";
29
+ if (!preRowModel.rows.length || !columnFilters?.length && !hasGlobalFilter) return preRowModel;
29
30
  const filterableIds = [];
30
31
  if (columnFilters) for (let i = 0; i < columnFilters.length; i++) {
31
32
  const id = columnFilters[i].id;
32
33
  if (id !== columnId) filterableIds.push(id);
33
34
  }
34
- if (globalFilter && columnId !== "__global__") filterableIds.push("__global__");
35
+ if (hasGlobalFilter && columnId !== "__global__") filterableIds.push("__global__");
35
36
  if (!filterableIds.length) return preRowModel;
36
37
  const filterRowsImpl = (row) => {
37
38
  for (let i = 0; i < filterableIds.length; i++) if (row.columnFilters?.[filterableIds[i]] === false) return false;
@@ -39,7 +39,8 @@ function _createFilteredRowModel(table) {
39
39
  const rowModel = table.getPreFilteredRowModel();
40
40
  const columnFilters = table.atoms.columnFilters?.get();
41
41
  const globalFilter = table.atoms.globalFilter?.get();
42
- if (!rowModel.rows.length || !columnFilters?.length && !globalFilter) {
42
+ const hasGlobalFilter = globalFilter !== void 0 && globalFilter !== null && globalFilter !== "";
43
+ if (!rowModel.rows.length || !columnFilters?.length && !hasGlobalFilter) {
43
44
  const flatRows = rowModel.flatRows;
44
45
  for (let i = 0; i < flatRows.length; i++) {
45
46
  const row = flatRows[i];
@@ -64,7 +65,7 @@ function _createFilteredRowModel(table) {
64
65
  const filterableIds = columnFilters?.map((d) => d.id) ?? [];
65
66
  const globalFilterFn = table_getGlobalFilterFn(table);
66
67
  const globallyFilterableColumns = table.getAllLeafColumns().filter((column) => column_getCanGlobalFilter(column));
67
- if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {
68
+ if (hasGlobalFilter && globalFilterFn && globallyFilterableColumns.length) {
68
69
  filterableIds.push("__global__");
69
70
  globallyFilterableColumns.forEach((column) => {
70
71
  resolvedGlobalFilters.push({
@@ -144,7 +144,7 @@ function header_getResizeHandler(header, _contextDocument) {
144
144
  }));
145
145
  });
146
146
  };
147
- const contextDocument = _contextDocument || typeof document !== "undefined" ? document : null;
147
+ const contextDocument = _contextDocument || (typeof document !== "undefined" ? document : null);
148
148
  const mouseEvents = {
149
149
  moveHandler: (e) => onMove(e.clientX),
150
150
  upHandler: (e) => {
@@ -211,7 +211,8 @@ declare function table_getToggleAllPageRowsSelectedHandler<TFeatures extends Tab
211
211
  * Selects or deselects this row.
212
212
  *
213
213
  * Omitting `value` toggles the row. Child rows are selected recursively unless
214
- * `opts.selectChildren` is `false` or sub-row selection is disabled.
214
+ * `opts.selectChildren` is `false`, sub-row selection is disabled, or the row
215
+ * only supports single selection.
215
216
  *
216
217
  * @example
217
218
  * ```ts
@@ -277,7 +277,8 @@ function table_getToggleAllPageRowsSelectedHandler(table) {
277
277
  * Selects or deselects this row.
278
278
  *
279
279
  * Omitting `value` toggles the row. Child rows are selected recursively unless
280
- * `opts.selectChildren` is `false` or sub-row selection is disabled.
280
+ * `opts.selectChildren` is `false`, sub-row selection is disabled, or the row
281
+ * only supports single selection.
281
282
  *
282
283
  * @example
283
284
  * ```ts
@@ -293,7 +294,7 @@ function row_toggleSelected(row, value, opts) {
293
294
  table_setRowSelection(row.table, (old) => {
294
295
  value = typeof value !== "undefined" ? value : !isSelected;
295
296
  const rowSelection = Object.assign(makeObjectMap(), old);
296
- mutateRowIsSelected(rowSelection, row.id, value, opts?.selectChildren ?? true, row.table);
297
+ mutateRowIsSelected(rowSelection, row.id, value, (opts?.selectChildren ?? true) && row_getCanMultiSelect(row), row.table);
297
298
  return rowSelection;
298
299
  });
299
300
  }
@@ -118,7 +118,7 @@ type AccessorKeyColumnDef<TFeatures extends TableFeatures, TData extends RowData
118
118
  type AccessorColumnDef<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> = AccessorKeyColumnDef<TFeatures, TData, TValue> | AccessorFnColumnDef<TFeatures, TData, TValue>;
119
119
  type ColumnDef<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> = DisplayColumnDef<TFeatures, TData, TValue> | GroupColumnDef<TFeatures, TData, TValue> | AccessorColumnDef<TFeatures, TData, TValue>;
120
120
  type ColumnDefResolved<TFeatures extends TableFeatures, TData extends RowData, TValue extends CellData = CellData> = Partial<UnionToIntersection<ColumnDef<TFeatures, TData, TValue>>> & {
121
- accessorKey?: string;
121
+ accessorKey?: (string & {}) | keyof TData;
122
122
  };
123
123
  //#endregion
124
124
  export { AccessorColumnDef, AccessorFn, AccessorFnColumnDef, AccessorFnColumnDefBase, AccessorKeyColumnDef, AccessorKeyColumnDefBase, ColumnDef, ColumnDefBase, ColumnDefBase_All, ColumnDefResolved, ColumnDefTemplate, ColumnDef_FeatureMap, ColumnMeta, DisplayColumnDef, ExtractColumnMeta, GroupColumnDef, IdIdentifier, IdentifiedColumnDef, StringHeaderIdentifier, StringOrTemplateHeader };
@@ -21,7 +21,7 @@ type IsTuple<T> = T extends ReadonlyArray<any> & {
21
21
  type AllowedIndexes<Tuple extends ReadonlyArray<any>, Keys extends number = never> = Tuple extends readonly [] ? Keys : Tuple extends readonly [infer _, ...infer Tail] ? AllowedIndexes<Tail, Keys | Tail['length']> : Keys;
22
22
  type DeepKeys<T, TDepth extends Array<any> = []> = TDepth['length'] extends 5 ? never : unknown extends T ? string : T extends ReadonlyArray<any> & IsTuple<T> ? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>, TDepth> : T extends Array<any> ? DeepKeys<T[number], [...TDepth, any]> : T extends Date ? never : T extends object ? (keyof T & string) | DeepKeysPrefix<T, keyof T, TDepth> : never;
23
23
  type DeepKeysPrefix<T, TPrefix, TDepth extends Array<any>> = TPrefix extends keyof T & (number | string) ? `${TPrefix}.${DeepKeys<T[TPrefix], [...TDepth, any]> & string}` : never;
24
- type DeepValue<T, TProp> = T extends Record<string | number, any> ? TProp extends `${infer TBranch}.${infer TDeepProp}` ? DeepValue<T[TBranch], TDeepProp> : T[TProp & string] : never;
24
+ type DeepValue<T, TProp> = T extends Record<string | number, any> ? TProp extends `${infer TBranch}.${infer TDeepProp}` ? DeepValue<T[TBranch], TDeepProp> : T[TProp & keyof T] : never;
25
25
  type NoInfer<T> = [T][T extends any ? 0 : never];
26
26
  type Getter<TValue> = <TTValue = TValue>() => NoInfer<TTValue>;
27
27
  type Prettify<T> = { [K in keyof T]: T[K] } & unknown;
@@ -54,7 +54,7 @@ function initTableWorker(config) {
54
54
  },
55
55
  data: message.data
56
56
  });
57
- aggregateColumnIds = flattenColumnDefs(config.columns).filter((def) => def.aggregationFn != null || def.aggregatedCell != null).map((def) => def.id ?? (typeof def.accessorKey === "string" ? def.accessorKey.replaceAll(".", "_") : void 0)).filter((id) => id != null);
57
+ aggregateColumnIds = flattenColumnDefs(config.columns).filter((def) => def.aggregationFn != null || def.aggregatedCell != null).map((def) => def.id ?? (def.accessorKey === void 0 ? void 0 : String(def.accessorKey).replaceAll(".", "_"))).filter((id) => id != null);
58
58
  } else table.setOptions((prev) => ({
59
59
  ...prev,
60
60
  data: message.data
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/table-core",
3
- "version": "9.0.0-beta.53",
3
+ "version": "9.0.0-beta.55",
4
4
  "description": "Headless UI for building powerful tables & datagrids for TS/JS.",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features']
12
12
  sources:
@@ -5,7 +5,7 @@ description: >
5
5
  metadata:
6
6
  type: sub-skill
7
7
  library: '@tanstack/table-core'
8
- library_version: '9.0.0-beta.53'
8
+ library_version: '9.0.0-beta.55'
9
9
  requires: ['core', 'table-features']
10
10
  sources:
11
11
  - 'TanStack/table:packages/table-core/src/index.ts'
@@ -5,7 +5,7 @@ description: >
5
5
  metadata:
6
6
  type: sub-skill
7
7
  library: '@tanstack/table-core'
8
- library_version: '9.0.0-beta.53'
8
+ library_version: '9.0.0-beta.55'
9
9
  requires: ['core', 'table-features']
10
10
  sources:
11
11
  - 'TanStack/table:docs/guide/row-models.md'
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features', 'column-filtering']
12
12
  sources:
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features', 'client-vs-server']
12
12
  sources:
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features']
12
12
  sources:
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features', 'column-sizing']
12
12
  sources:
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features', 'column-sizing']
12
12
  sources:
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features']
12
12
  sources:
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features']
12
12
  sources:
@@ -5,7 +5,7 @@ description: >
5
5
  metadata:
6
6
  type: core
7
7
  library: '@tanstack/table-core'
8
- library_version: '9.0.0-beta.53'
8
+ library_version: '9.0.0-beta.55'
9
9
  sources:
10
10
  - 'TanStack/table:docs/overview.md'
11
11
  - 'TanStack/table:docs/guide/tables.md'
@@ -5,7 +5,7 @@ description: >
5
5
  metadata:
6
6
  type: sub-skill
7
7
  library: '@tanstack/table-core'
8
- library_version: '9.0.0-beta.53'
8
+ library_version: '9.0.0-beta.55'
9
9
  requires: ['core', 'table-features', 'typescript']
10
10
  sources:
11
11
  - 'TanStack/table:docs/framework/react/guide/custom-features.md'
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features', 'client-vs-server']
12
12
  sources:
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features', 'client-vs-server', 'column-filtering']
12
12
  sources:
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features', 'client-vs-server']
12
12
  sources:
@@ -5,7 +5,7 @@ description: >
5
5
  metadata:
6
6
  type: lifecycle
7
7
  library: '@tanstack/table-core'
8
- library_version: '9.0.0-beta.53'
8
+ library_version: '9.0.0-beta.55'
9
9
  requires: ['core', 'table-features', 'typescript']
10
10
  sources:
11
11
  - 'TanStack/table:docs/framework/react/guide/migrating.md'
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features', 'client-vs-server']
12
12
  sources:
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features']
12
12
  sources:
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features']
12
12
  sources:
@@ -6,7 +6,7 @@ metadata:
6
6
  {
7
7
  type: sub-skill,
8
8
  library: '@tanstack/table-core',
9
- library_version: '9.0.0-beta.53',
9
+ library_version: '9.0.0-beta.55',
10
10
  }
11
11
  requires: ['core', 'table-features', 'client-vs-server']
12
12
  sources:
@@ -5,7 +5,7 @@ description: >
5
5
  metadata:
6
6
  type: sub-skill
7
7
  library: '@tanstack/table-core'
8
- library_version: '9.0.0-beta.53'
8
+ library_version: '9.0.0-beta.55'
9
9
  requires: ['core']
10
10
  sources:
11
11
  - 'TanStack/table:docs/guide/row-models.md'
@@ -5,7 +5,7 @@ description: >
5
5
  metadata:
6
6
  type: sub-skill
7
7
  library: '@tanstack/table-core'
8
- library_version: '9.0.0-beta.53'
8
+ library_version: '9.0.0-beta.55'
9
9
  requires: ['core', 'table-features']
10
10
  sources:
11
11
  - 'TanStack/table:docs/guide/helpers.md'