@tanstack/svelte-table 9.0.0-beta.58 → 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.
- package/dist/FlexRender.svelte +15 -1
- package/dist/createTable.svelte.js +8 -7
- package/package.json +6 -3
- package/skills/create-table-hook/SKILL.md +1 -1
- package/skills/getting-started/SKILL.md +1 -1
- package/skills/migrate-v8-to-v9/SKILL.md +1 -1
- package/skills/table-state/SKILL.md +1 -1
- package/skills/with-tanstack-query/SKILL.md +1 -1
- package/skills/with-tanstack-virtual/SKILL.md +1 -1
package/dist/FlexRender.svelte
CHANGED
|
@@ -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
|
|
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
|
-
//
|
|
51
|
-
//
|
|
52
|
-
//
|
|
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
|
-
//
|
|
55
|
-
|
|
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,
|
|
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.
|
|
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.
|
|
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"
|