@tanstack/table-core 9.0.0-alpha.33 → 9.0.0-alpha.34

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 (182) hide show
  1. package/dist/core/columns/coreColumnsFeature.cjs +18 -12
  2. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  3. package/dist/core/columns/coreColumnsFeature.js +18 -12
  4. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  5. package/dist/core/headers/coreHeadersFeature.cjs +11 -8
  6. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  7. package/dist/core/headers/coreHeadersFeature.js +11 -8
  8. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  9. package/dist/core/headers/coreHeadersFeature.utils.cjs +2 -1
  10. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  11. package/dist/core/headers/coreHeadersFeature.utils.js +2 -1
  12. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  13. package/dist/core/table/constructTable.cjs +19 -10
  14. package/dist/core/table/constructTable.cjs.map +1 -1
  15. package/dist/core/table/constructTable.d.cts +1 -3
  16. package/dist/core/table/constructTable.d.ts +1 -3
  17. package/dist/core/table/constructTable.js +21 -11
  18. package/dist/core/table/constructTable.js.map +1 -1
  19. package/dist/core/table/coreTablesFeature.types.d.cts +54 -10
  20. package/dist/core/table/coreTablesFeature.types.d.ts +54 -10
  21. package/dist/core/table/coreTablesFeature.utils.cjs +5 -1
  22. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  23. package/dist/core/table/coreTablesFeature.utils.js +5 -1
  24. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  25. package/dist/features/column-faceting/columnFacetingFeature.cjs +18 -12
  26. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  27. package/dist/features/column-faceting/columnFacetingFeature.js +18 -12
  28. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  29. package/dist/features/column-faceting/createFacetedRowModel.cjs +9 -6
  30. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  31. package/dist/features/column-faceting/createFacetedRowModel.js +9 -6
  32. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  33. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +4 -4
  34. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  35. package/dist/features/column-filtering/columnFilteringFeature.utils.js +4 -4
  36. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  37. package/dist/features/column-filtering/createFilteredRowModel.cjs +11 -6
  38. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  39. package/dist/features/column-filtering/createFilteredRowModel.js +11 -6
  40. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  41. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +4 -4
  42. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -1
  43. package/dist/features/column-grouping/columnGroupingFeature.utils.js +4 -4
  44. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -1
  45. package/dist/features/column-grouping/createGroupedRowModel.cjs +6 -2
  46. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  47. package/dist/features/column-grouping/createGroupedRowModel.js +6 -2
  48. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  49. package/dist/features/column-ordering/columnOrderingFeature.cjs +17 -11
  50. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  51. package/dist/features/column-ordering/columnOrderingFeature.js +17 -11
  52. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  53. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +5 -3
  54. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -1
  55. package/dist/features/column-ordering/columnOrderingFeature.utils.js +5 -3
  56. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -1
  57. package/dist/features/column-pinning/columnPinningFeature.cjs +72 -45
  58. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  59. package/dist/features/column-pinning/columnPinningFeature.js +72 -45
  60. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  61. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +24 -13
  62. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  63. package/dist/features/column-pinning/columnPinningFeature.utils.js +24 -13
  64. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  65. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +2 -2
  66. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -1
  67. package/dist/features/column-resizing/columnResizingFeature.utils.js +2 -2
  68. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -1
  69. package/dist/features/column-sizing/columnSizingFeature.cjs +16 -10
  70. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  71. package/dist/features/column-sizing/columnSizingFeature.js +16 -10
  72. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  73. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +2 -2
  74. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -1
  75. package/dist/features/column-sizing/columnSizingFeature.utils.js +2 -2
  76. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -1
  77. package/dist/features/column-visibility/columnVisibilityFeature.cjs +28 -16
  78. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  79. package/dist/features/column-visibility/columnVisibilityFeature.js +28 -16
  80. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  81. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +2 -2
  82. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -1
  83. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +2 -2
  84. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -1
  85. package/dist/features/row-expanding/createExpandedRowModel.cjs +10 -6
  86. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  87. package/dist/features/row-expanding/createExpandedRowModel.js +10 -6
  88. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  89. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +8 -5
  90. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -1
  91. package/dist/features/row-expanding/rowExpandingFeature.utils.js +8 -5
  92. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -1
  93. package/dist/features/row-pagination/createPaginatedRowModel.cjs +10 -6
  94. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  95. package/dist/features/row-pagination/createPaginatedRowModel.js +10 -6
  96. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  97. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +6 -6
  98. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -1
  99. package/dist/features/row-pagination/rowPaginationFeature.utils.js +6 -6
  100. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -1
  101. package/dist/features/row-pinning/rowPinningFeature.cjs +12 -6
  102. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  103. package/dist/features/row-pinning/rowPinningFeature.js +12 -6
  104. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  105. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +8 -5
  106. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -1
  107. package/dist/features/row-pinning/rowPinningFeature.utils.js +8 -5
  108. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -1
  109. package/dist/features/row-selection/rowSelectionFeature.cjs +12 -3
  110. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  111. package/dist/features/row-selection/rowSelectionFeature.js +12 -3
  112. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  113. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +1 -1
  114. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +1 -1
  115. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +14 -7
  116. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -1
  117. package/dist/features/row-selection/rowSelectionFeature.utils.js +14 -7
  118. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -1
  119. package/dist/features/row-sorting/createSortedRowModel.cjs +6 -2
  120. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  121. package/dist/features/row-sorting/createSortedRowModel.js +6 -2
  122. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  123. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +4 -4
  124. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  125. package/dist/features/row-sorting/rowSortingFeature.utils.js +4 -4
  126. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  127. package/dist/features/table-reactivity/tableReactivityFeature.cjs +23 -1
  128. package/dist/features/table-reactivity/tableReactivityFeature.cjs.map +1 -1
  129. package/dist/features/table-reactivity/tableReactivityFeature.js +23 -1
  130. package/dist/features/table-reactivity/tableReactivityFeature.js.map +1 -1
  131. package/dist/index.cjs +1 -261
  132. package/dist/index.d.cts +3 -23
  133. package/dist/index.d.ts +3 -23
  134. package/dist/index.js +2 -22
  135. package/dist/static-functions.cjs +261 -0
  136. package/dist/static-functions.d.cts +21 -0
  137. package/dist/static-functions.d.ts +21 -0
  138. package/dist/static-functions.js +22 -0
  139. package/dist/types/Table.d.cts +5 -3
  140. package/dist/types/Table.d.ts +5 -3
  141. package/dist/utils.cjs +2 -6
  142. package/dist/utils.cjs.map +1 -1
  143. package/dist/utils.js +2 -6
  144. package/dist/utils.js.map +1 -1
  145. package/package.json +5 -1
  146. package/src/core/columns/coreColumnsFeature.ts +4 -4
  147. package/src/core/headers/coreHeadersFeature.ts +4 -4
  148. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  149. package/src/core/table/constructTable.ts +31 -15
  150. package/src/core/table/coreTablesFeature.types.ts +69 -9
  151. package/src/core/table/coreTablesFeature.utils.ts +7 -1
  152. package/src/features/column-faceting/columnFacetingFeature.ts +4 -4
  153. package/src/features/column-faceting/createFacetedRowModel.ts +2 -2
  154. package/src/features/column-filtering/columnFilteringFeature.utils.ts +6 -5
  155. package/src/features/column-filtering/createFilteredRowModel.ts +4 -3
  156. package/src/features/column-grouping/columnGroupingFeature.utils.ts +2 -2
  157. package/src/features/column-grouping/createGroupedRowModel.ts +2 -2
  158. package/src/features/column-ordering/columnOrderingFeature.ts +5 -5
  159. package/src/features/column-ordering/columnOrderingFeature.utils.ts +3 -3
  160. package/src/features/column-pinning/columnPinningFeature.ts +22 -21
  161. package/src/features/column-pinning/columnPinningFeature.utils.ts +12 -12
  162. package/src/features/column-resizing/columnResizingFeature.utils.ts +3 -1
  163. package/src/features/column-sizing/columnSizingFeature.ts +2 -2
  164. package/src/features/column-sizing/columnSizingFeature.utils.ts +1 -1
  165. package/src/features/column-visibility/columnVisibilityFeature.ts +6 -6
  166. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +1 -1
  167. package/src/features/row-expanding/createExpandedRowModel.ts +2 -2
  168. package/src/features/row-expanding/rowExpandingFeature.utils.ts +5 -5
  169. package/src/features/row-pagination/createPaginatedRowModel.ts +3 -3
  170. package/src/features/row-pagination/rowPaginationFeature.utils.ts +3 -3
  171. package/src/features/row-pinning/rowPinningFeature.ts +4 -4
  172. package/src/features/row-pinning/rowPinningFeature.utils.ts +4 -4
  173. package/src/features/row-selection/rowSelectionFeature.ts +3 -3
  174. package/src/features/row-selection/rowSelectionFeature.types.ts +1 -1
  175. package/src/features/row-selection/rowSelectionFeature.utils.ts +10 -8
  176. package/src/features/row-sorting/createSortedRowModel.ts +5 -2
  177. package/src/features/row-sorting/rowSortingFeature.utils.ts +5 -4
  178. package/src/features/table-reactivity/tableReactivityFeature.ts +46 -1
  179. package/src/index.ts +0 -20
  180. package/src/static-functions.ts +31 -0
  181. package/src/types/Table.ts +10 -3
  182. package/src/utils.ts +3 -8
@@ -16,11 +16,11 @@ export function constructReactivityFeature<
16
16
  }): TableFeature<TableReactivityFeatureConstructors<TFeatures, TData>> {
17
17
  return {
18
18
  constructTableAPIs: (table) => {
19
- table.store = bindStore(table.store, bindings.stateNotifier)
20
19
  table.optionsStore = bindStore(
21
20
  table.optionsStore,
22
21
  bindings.optionsNotifier,
23
22
  )
23
+ table.atoms = bindAtoms(table.atoms, bindings.stateNotifier)
24
24
  },
25
25
  }
26
26
  }
@@ -45,3 +45,48 @@ const bindStore = <T extends Store<any> | ReadonlyStore<any>>(
45
45
 
46
46
  return store
47
47
  }
48
+
49
+ // Wraps an atoms/baseAtoms map so that `.get()` on any individual atom
50
+ // calls the framework notifier first — matching how `bindStore` wraps
51
+ // `store.state`. The proxy also transparently forwards missing slices
52
+ // (atoms for features not registered on this table) as `undefined`.
53
+ const bindAtoms = <T extends object>(atoms: T, notifier?: () => unknown): T => {
54
+ if (!notifier) return atoms
55
+ // Cache wrapped atoms so referential identity is stable per slice.
56
+ const wrappedCache = new Map<PropertyKey, any>()
57
+ return new Proxy(atoms, {
58
+ get(target, prop, receiver) {
59
+ const atom = Reflect.get(target, prop, receiver) as unknown
60
+ if (!atom || typeof prop !== 'string' || !isAtomLike(atom)) {
61
+ return atom
62
+ }
63
+ if (wrappedCache.has(prop)) return wrappedCache.get(prop)
64
+ const originalGet = atom.get.bind(atom)
65
+ const wrapped = new Proxy(atom, {
66
+ get(atomTarget, atomProp, atomReceiver) {
67
+ if (atomProp === 'get') {
68
+ return () => {
69
+ notifier()
70
+ return originalGet()
71
+ }
72
+ }
73
+ return Reflect.get(atomTarget, atomProp, atomReceiver)
74
+ },
75
+ })
76
+ wrappedCache.set(prop, wrapped)
77
+ return wrapped
78
+ },
79
+ })
80
+ }
81
+
82
+ interface AtomLike {
83
+ get: () => unknown
84
+ }
85
+
86
+ function isAtomLike(value: unknown): value is AtomLike {
87
+ return (
88
+ typeof value === 'object' &&
89
+ value !== null &&
90
+ typeof (value as { get?: unknown }).get === 'function'
91
+ )
92
+ }
package/src/index.ts CHANGED
@@ -31,38 +31,32 @@ export * from './utils'
31
31
  export * from './core/cells/constructCell'
32
32
  export * from './core/cells/coreCellsFeature'
33
33
  export * from './core/cells/coreCellsFeature.types'
34
- export * from './core/cells/coreCellsFeature.utils'
35
34
 
36
35
  // Columns
37
36
  export * from './core/columns/constructColumn'
38
37
  export * from './core/columns/coreColumnsFeature'
39
38
  export * from './core/columns/coreColumnsFeature.types'
40
- export * from './core/columns/coreColumnsFeature.utils'
41
39
 
42
40
  // Headers
43
41
  export * from './core/headers/buildHeaderGroups'
44
42
  export * from './core/headers/constructHeader'
45
43
  export * from './core/headers/coreHeadersFeature'
46
44
  export * from './core/headers/coreHeadersFeature.types'
47
- export * from './core/headers/coreHeadersFeature.utils'
48
45
 
49
46
  // Rows
50
47
  export * from './core/rows/constructRow'
51
48
  export * from './core/rows/coreRowsFeature'
52
49
  export * from './core/rows/coreRowsFeature.types'
53
- export * from './core/rows/coreRowsFeature.utils'
54
50
 
55
51
  // Row Models
56
52
  export * from './core/row-models/coreRowModelsFeature'
57
53
  export * from './core/row-models/coreRowModelsFeature.types'
58
- export * from './core/row-models/coreRowModelsFeature.utils'
59
54
  export * from './core/row-models/createCoreRowModel'
60
55
 
61
56
  // Tables
62
57
  export * from './core/table/constructTable'
63
58
  export * from './core/table/coreTablesFeature'
64
59
  export * from './core/table/coreTablesFeature.types'
65
- export * from './core/table/coreTablesFeature.utils'
66
60
 
67
61
  /**
68
62
  * RowModelFns
@@ -84,7 +78,6 @@ export * from './features/table-reactivity/tableReactivityFeature'
84
78
  // columnFacetingFeature
85
79
  export * from './features/column-faceting/columnFacetingFeature'
86
80
  export * from './features/column-faceting/columnFacetingFeature.types'
87
- export * from './features/column-faceting/columnFacetingFeature.utils'
88
81
  export * from './features/column-faceting/createFacetedMinMaxValues'
89
82
  export * from './features/column-faceting/createFacetedRowModel'
90
83
  export * from './features/column-faceting/createFacetedUniqueValues'
@@ -92,71 +85,58 @@ export * from './features/column-faceting/createFacetedUniqueValues'
92
85
  // columnFilteringFeature
93
86
  export * from './features/column-filtering/columnFilteringFeature'
94
87
  export * from './features/column-filtering/columnFilteringFeature.types'
95
- export * from './features/column-filtering/columnFilteringFeature.utils'
96
88
  export * from './features/column-filtering/createFilteredRowModel'
97
89
 
98
90
  // columnGroupingFeature
99
91
  export * from './features/column-grouping/columnGroupingFeature'
100
92
  export * from './features/column-grouping/columnGroupingFeature.types'
101
- export * from './features/column-grouping/columnGroupingFeature.utils'
102
93
  export * from './features/column-grouping/createGroupedRowModel'
103
94
 
104
95
  // columnOrderingFeature
105
96
  export * from './features/column-ordering/columnOrderingFeature'
106
97
  export * from './features/column-ordering/columnOrderingFeature.types'
107
- export * from './features/column-ordering/columnOrderingFeature.utils'
108
98
 
109
99
  // columnPinningFeature
110
100
  export * from './features/column-pinning/columnPinningFeature'
111
101
  export * from './features/column-pinning/columnPinningFeature.types'
112
- export * from './features/column-pinning/columnPinningFeature.utils'
113
102
 
114
103
  // columnResizingFeature
115
104
  export * from './features/column-resizing/columnResizingFeature'
116
105
  export * from './features/column-resizing/columnResizingFeature.types'
117
- export * from './features/column-resizing/columnResizingFeature.utils'
118
106
 
119
107
  // columnSizingFeature
120
108
  export * from './features/column-sizing/columnSizingFeature'
121
109
  export * from './features/column-sizing/columnSizingFeature.types'
122
- export * from './features/column-sizing/columnSizingFeature.utils'
123
110
 
124
111
  // columnVisibilityFeature
125
112
  export * from './features/column-visibility/columnVisibilityFeature'
126
113
  export * from './features/column-visibility/columnVisibilityFeature.types'
127
- export * from './features/column-visibility/columnVisibilityFeature.utils'
128
114
 
129
115
  // globalFilteringFeature
130
116
  export * from './features/global-filtering/globalFilteringFeature'
131
117
  export * from './features/global-filtering/globalFilteringFeature.types'
132
- export * from './features/global-filtering/globalFilteringFeature.utils'
133
118
 
134
119
  // rowExpandingFeature
135
120
  export * from './features/row-expanding/rowExpandingFeature'
136
121
  export * from './features/row-expanding/rowExpandingFeature.types'
137
- export * from './features/row-expanding/rowExpandingFeature.utils'
138
122
  export * from './features/row-expanding/createExpandedRowModel'
139
123
 
140
124
  // rowPaginationFeature
141
125
  export * from './features/row-pagination/rowPaginationFeature'
142
126
  export * from './features/row-pagination/rowPaginationFeature.types'
143
- export * from './features/row-pagination/rowPaginationFeature.utils'
144
127
  export * from './features/row-pagination/createPaginatedRowModel'
145
128
 
146
129
  // rowPinningFeature
147
130
  export * from './features/row-pinning/rowPinningFeature'
148
131
  export * from './features/row-pinning/rowPinningFeature.types'
149
- export * from './features/row-pinning/rowPinningFeature.utils'
150
132
 
151
133
  // rowSelectionFeature
152
134
  export * from './features/row-selection/rowSelectionFeature'
153
135
  export * from './features/row-selection/rowSelectionFeature.types'
154
- export * from './features/row-selection/rowSelectionFeature.utils'
155
136
 
156
137
  // rowSortingFeature
157
138
  export * from './features/row-sorting/rowSortingFeature'
158
139
  export * from './features/row-sorting/rowSortingFeature.types'
159
- export * from './features/row-sorting/rowSortingFeature.utils'
160
140
  export * from './features/row-sorting/createSortedRowModel'
161
141
 
162
142
  // force
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Static utility functions sub-entry.
3
+ *
4
+ * Re-exports all standalone utility functions from each feature's `.utils.ts`
5
+ * module so consumers that want the functions (without constructing a table)
6
+ * can grab them from a single path.
7
+ */
8
+
9
+ // Core
10
+ export * from './core/cells/coreCellsFeature.utils'
11
+ export * from './core/columns/coreColumnsFeature.utils'
12
+ export * from './core/headers/coreHeadersFeature.utils'
13
+ export * from './core/rows/coreRowsFeature.utils'
14
+ export * from './core/row-models/coreRowModelsFeature.utils'
15
+ export * from './core/table/coreTablesFeature.utils'
16
+
17
+ // Features
18
+ export * from './features/column-faceting/columnFacetingFeature.utils'
19
+ export * from './features/column-filtering/columnFilteringFeature.utils'
20
+ export * from './features/column-grouping/columnGroupingFeature.utils'
21
+ export * from './features/column-ordering/columnOrderingFeature.utils'
22
+ export * from './features/column-pinning/columnPinningFeature.utils'
23
+ export * from './features/column-resizing/columnResizingFeature.utils'
24
+ export * from './features/column-sizing/columnSizingFeature.utils'
25
+ export * from './features/column-visibility/columnVisibilityFeature.utils'
26
+ export * from './features/global-filtering/globalFilteringFeature.utils'
27
+ export * from './features/row-expanding/rowExpandingFeature.utils'
28
+ export * from './features/row-pagination/rowPaginationFeature.utils'
29
+ export * from './features/row-pinning/rowPinningFeature.utils'
30
+ export * from './features/row-selection/rowSelectionFeature.utils'
31
+ export * from './features/row-sorting/rowSortingFeature.utils'
@@ -1,4 +1,4 @@
1
- import type { ReadonlyStore, Store } from '@tanstack/store'
1
+ import type { ReadonlyStore } from '@tanstack/store'
2
2
  import type { Table_ColumnFaceting } from '../features/column-faceting/columnFacetingFeature.types'
3
3
  import type { Table_ColumnResizing } from '../features/column-resizing/columnResizingFeature.types'
4
4
  import type { Table_ColumnFiltering } from '../features/column-filtering/columnFilteringFeature.types'
@@ -22,7 +22,12 @@ import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
22
22
  import type { Table_Columns } from '../core/columns/coreColumnsFeature.types'
23
23
  import type { Table_Headers } from '../core/headers/coreHeadersFeature.types'
24
24
  import type { Table_Rows } from '../core/rows/coreRowsFeature.types'
25
- import type { Table_Table } from '../core/table/coreTablesFeature.types'
25
+ import type {
26
+ Atoms_All,
27
+ BaseAtoms_All,
28
+ ExternalAtoms_All,
29
+ Table_Table,
30
+ } from '../core/table/coreTablesFeature.types'
26
31
  import type { TableOptions_All } from './TableOptions'
27
32
 
28
33
  /**
@@ -118,8 +123,10 @@ export type Table_Internal<
118
123
  _rowModels?: CreateRowModels_All<TFeatures, TData>
119
124
  state?: TableState_All
120
125
  initialState?: TableState_All
126
+ atoms?: ExternalAtoms_All
121
127
  }
122
128
  initialState: TableState_All
123
- baseStore: Store<TableState_All>
129
+ baseAtoms: BaseAtoms_All
130
+ atoms: Atoms_All
124
131
  store: ReadonlyStore<TableState_All>
125
132
  }
package/src/utils.ts CHANGED
@@ -16,14 +16,9 @@ export function makeStateUpdater<
16
16
  K extends (string & {}) | keyof TableState_All | keyof TableState<TFeatures>,
17
17
  >(key: K, instance: Table<TFeatures, any>) {
18
18
  return (updater: Updater<TableState<any>[K & keyof TableState<any>]>) => {
19
- instance.baseStore.setState(
20
- <TTableState extends TableState_All>(old: TTableState) => {
21
- return {
22
- ...old,
23
- [key]: functionalUpdate(updater, (old as any)[key]),
24
- }
25
- },
26
- )
19
+ const externalAtom = (instance.options as any).atoms?.[key]
20
+ const targetAtom = externalAtom ?? (instance.baseAtoms as any)[key]
21
+ targetAtom.set((old: any) => functionalUpdate(updater, old))
27
22
  }
28
23
  }
29
24