@tanstack/svelte-table 9.0.0-beta.56 → 9.0.0-beta.59

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.
@@ -61,8 +61,22 @@
61
61
  // or the legacy content/context props.
62
62
  const resolved = $derived.by(() => {
63
63
  if ('cell' in props && props.cell) {
64
+ const columnDef = props.cell.column.columnDef
65
+ const groupingCell = props.cell as typeof props.cell & {
66
+ getIsAggregated?: () => boolean
67
+ getIsPlaceholder?: () => boolean
68
+ }
69
+ const groupingColumnDef = columnDef as typeof columnDef & {
70
+ aggregatedCell?: typeof columnDef.cell
71
+ }
72
+ const content = groupingCell.getIsAggregated?.()
73
+ ? (groupingColumnDef.aggregatedCell ?? columnDef.cell)
74
+ : groupingCell.getIsPlaceholder?.()
75
+ ? undefined
76
+ : columnDef.cell
77
+
64
78
  return {
65
- content: props.cell.column.columnDef.cell,
79
+ content,
66
80
  context: props.cell.getContext(),
67
81
  }
68
82
  }
@@ -47,21 +47,22 @@ export function createTable(tableOptions, selector) {
47
47
  // inside createTableState), the effect re-runs and calls setOptions.
48
48
  // Use $effect.pre so the table sees updated options BEFORE the DOM renders,
49
49
  // ensuring getRowModel() returns current data (not stale, one-frame-behind data).
50
- // The reactive reads (state getters, data getter) happen OUTSIDE untrack
51
- // so they become dependencies. The setOptions call is INSIDE untrack so
52
- // option writes do not subscribe this effect to table internals.
50
+ // Reactive option getters and nested state keys are read OUTSIDE untrack so
51
+ // they become dependencies. The setOptions call is INSIDE untrack so option
52
+ // writes do not subscribe this effect to table internals.
53
53
  $effect.pre(() => {
54
- // Read reactive getters to create $effect dependencies on external state
55
- const state = mergedOptions.state;
54
+ // Resolve every option outside untrack so getter-backed data, columns,
55
+ // callbacks, metadata, and state become dependencies of this effect.
56
+ const nextOptions = flatMerge(mergedOptions);
57
+ const state = nextOptions.state;
56
58
  if (state) {
57
59
  for (const key in state) {
58
60
  void state[key];
59
61
  }
60
62
  }
61
- void mergedOptions.data;
62
63
  untrack(() => {
63
64
  table.setOptions((prev) => {
64
- return flatMerge(prev, mergedOptions);
65
+ return flatMerge(prev, nextOptions);
65
66
  });
66
67
  });
67
68
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/svelte-table",
3
- "version": "9.0.0-beta.56",
3
+ "version": "9.0.0-beta.59",
4
4
  "description": "Headless UI for building powerful tables & datagrids for Svelte.",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -57,11 +57,12 @@
57
57
  ],
58
58
  "dependencies": {
59
59
  "@tanstack/svelte-store": "^0.12.0",
60
- "@tanstack/table-core": "9.0.0-beta.56"
60
+ "@tanstack/table-core": "9.0.0-beta.59"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@sveltejs/package": "^2.5.8",
64
64
  "@sveltejs/vite-plugin-svelte": "^7.1.2",
65
+ "@testing-library/svelte": "^5.4.2",
65
66
  "eslint-plugin-svelte": "^3.19.0",
66
67
  "svelte": "^5.56.2",
67
68
  "svelte-check": "^4.6.0"
@@ -71,7 +72,9 @@
71
72
  },
72
73
  "scripts": {
73
74
  "clean": "rimraf ./build && rimraf ./dist",
74
- "test:eslint": "eslint ./src",
75
+ "test:eslint": "eslint ./src ./tests",
76
+ "test:lib": "vitest --passWithNoTests",
77
+ "test:lib:dev": "pnpm test:lib --watch",
75
78
  "test:types": "svelte-check --tsconfig ./tsconfig.json",
76
79
  "test:build": "publint --strict",
77
80
  "build": "svelte-package --input ./src --output ./dist"
@@ -6,7 +6,7 @@ metadata:
6
6
  type: framework
7
7
  library: '@tanstack/svelte-table'
8
8
  framework: svelte
9
- library_version: '9.0.0-beta.56'
9
+ library_version: '9.0.0-beta.59'
10
10
  requires:
11
11
  - '@tanstack/table-core#core'
12
12
  - getting-started
@@ -6,7 +6,7 @@ metadata:
6
6
  type: framework
7
7
  library: '@tanstack/svelte-table'
8
8
  framework: svelte
9
- library_version: '9.0.0-beta.56'
9
+ library_version: '9.0.0-beta.59'
10
10
  requires:
11
11
  - '@tanstack/table-core#core'
12
12
  - '@tanstack/table-core#table-features'
@@ -6,7 +6,7 @@ metadata:
6
6
  type: lifecycle
7
7
  library: '@tanstack/svelte-table'
8
8
  framework: svelte
9
- library_version: '9.0.0-beta.56'
9
+ library_version: '9.0.0-beta.59'
10
10
  requires:
11
11
  - '@tanstack/table-core#migrate-v8-to-v9'
12
12
  - getting-started
@@ -6,7 +6,7 @@ metadata:
6
6
  type: framework
7
7
  library: '@tanstack/svelte-table'
8
8
  framework: svelte
9
- library_version: '9.0.0-beta.56'
9
+ library_version: '9.0.0-beta.59'
10
10
  requires:
11
11
  - '@tanstack/table-core#core'
12
12
  - getting-started
@@ -6,7 +6,7 @@ metadata:
6
6
  type: composition
7
7
  library: '@tanstack/svelte-table'
8
8
  framework: svelte
9
- library_version: '9.0.0-beta.56'
9
+ library_version: '9.0.0-beta.59'
10
10
  requires:
11
11
  - '@tanstack/table-core#client-vs-server'
12
12
  - getting-started
@@ -6,7 +6,7 @@ metadata:
6
6
  type: composition
7
7
  library: '@tanstack/svelte-table'
8
8
  framework: svelte
9
- library_version: '9.0.0-beta.56'
9
+ library_version: '9.0.0-beta.59'
10
10
  requires:
11
11
  - '@tanstack/table-core#core'
12
12
  - getting-started