@affino/datagrid-vue 0.3.2 → 0.3.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.
Files changed (544) hide show
  1. package/README.md +170 -195
  2. package/dist/advanced/clipboard.d.ts +5 -0
  3. package/dist/advanced/clipboard.d.ts.map +1 -0
  4. package/dist/advanced/clipboard.js +4 -0
  5. package/dist/advanced/editing.d.ts +22 -0
  6. package/dist/advanced/editing.d.ts.map +1 -0
  7. package/dist/advanced/editing.js +20 -0
  8. package/dist/advanced/filtering.d.ts +16 -0
  9. package/dist/advanced/filtering.d.ts.map +1 -0
  10. package/dist/advanced/filtering.js +15 -0
  11. package/dist/advanced/history.d.ts +3 -0
  12. package/dist/advanced/history.d.ts.map +1 -0
  13. package/dist/advanced/history.js +2 -0
  14. package/dist/advanced/index.d.ts +8 -0
  15. package/dist/advanced/index.d.ts.map +1 -0
  16. package/dist/advanced/index.js +7 -0
  17. package/dist/advanced/layout.d.ts +16 -0
  18. package/dist/advanced/layout.d.ts.map +1 -0
  19. package/dist/advanced/layout.js +14 -0
  20. package/dist/advanced/pointer.d.ts +12 -0
  21. package/dist/advanced/pointer.d.ts.map +1 -0
  22. package/dist/advanced/pointer.js +11 -0
  23. package/dist/advanced/selection.d.ts +13 -0
  24. package/dist/advanced/selection.d.ts.map +1 -0
  25. package/dist/advanced/selection.js +12 -0
  26. package/dist/advanced.d.ts +2 -136
  27. package/dist/advanced.d.ts.map +1 -1
  28. package/dist/advanced.js +2 -206
  29. package/dist/app/advancedFilterPanel.types.d.ts +18 -0
  30. package/dist/app/advancedFilterPanel.types.d.ts.map +1 -0
  31. package/dist/app/columnLayoutPanel.types.d.ts +18 -0
  32. package/dist/app/columnLayoutPanel.types.d.ts.map +1 -0
  33. package/dist/app/dataGridRowHeightMetrics.d.ts +19 -0
  34. package/dist/app/dataGridRowHeightMetrics.d.ts.map +1 -0
  35. package/dist/app/dataGridRowHeightMetrics.js +119 -0
  36. package/dist/app/index.d.ts +24 -0
  37. package/dist/app/index.d.ts.map +1 -0
  38. package/dist/app/index.js +21 -0
  39. package/dist/app/useDataGridAppActiveCellViewport.d.ts +19 -0
  40. package/dist/app/useDataGridAppActiveCellViewport.d.ts.map +1 -0
  41. package/dist/app/useDataGridAppActiveCellViewport.js +139 -0
  42. package/dist/app/useDataGridAppAdvancedFilterBuilder.d.ts +24 -0
  43. package/dist/app/useDataGridAppAdvancedFilterBuilder.d.ts.map +1 -0
  44. package/dist/app/useDataGridAppAdvancedFilterBuilder.js +139 -0
  45. package/dist/app/useDataGridAppCellSelection.d.ts +40 -0
  46. package/dist/app/useDataGridAppCellSelection.d.ts.map +1 -0
  47. package/dist/app/useDataGridAppCellSelection.js +290 -0
  48. package/dist/app/useDataGridAppClipboard.d.ts +49 -0
  49. package/dist/app/useDataGridAppClipboard.d.ts.map +1 -0
  50. package/dist/app/useDataGridAppClipboard.js +258 -0
  51. package/dist/app/useDataGridAppColumnLayoutPanel.d.ts +19 -0
  52. package/dist/app/useDataGridAppColumnLayoutPanel.d.ts.map +1 -0
  53. package/dist/app/useDataGridAppColumnLayoutPanel.js +75 -0
  54. package/dist/app/useDataGridAppControls.d.ts +88 -0
  55. package/dist/app/useDataGridAppControls.d.ts.map +1 -0
  56. package/dist/app/useDataGridAppControls.js +396 -0
  57. package/dist/app/useDataGridAppDiagnosticsPanel.d.ts +14 -0
  58. package/dist/app/useDataGridAppDiagnosticsPanel.d.ts.map +1 -0
  59. package/dist/app/useDataGridAppDiagnosticsPanel.js +23 -0
  60. package/dist/app/useDataGridAppFill.d.ts +33 -0
  61. package/dist/app/useDataGridAppFill.d.ts.map +1 -0
  62. package/dist/app/useDataGridAppFill.js +97 -0
  63. package/dist/app/useDataGridAppHeaderResize.d.ts +29 -0
  64. package/dist/app/useDataGridAppHeaderResize.d.ts.map +1 -0
  65. package/dist/app/useDataGridAppHeaderResize.js +57 -0
  66. package/dist/app/useDataGridAppInlineEditing.d.ts +47 -0
  67. package/dist/app/useDataGridAppInlineEditing.d.ts.map +1 -0
  68. package/dist/app/useDataGridAppInlineEditing.js +301 -0
  69. package/dist/app/useDataGridAppIntentHistory.d.ts +23 -0
  70. package/dist/app/useDataGridAppIntentHistory.d.ts.map +1 -0
  71. package/dist/app/useDataGridAppIntentHistory.js +37 -0
  72. package/dist/app/useDataGridAppInteractionController.d.ts +96 -0
  73. package/dist/app/useDataGridAppInteractionController.d.ts.map +1 -0
  74. package/dist/app/useDataGridAppInteractionController.js +1448 -0
  75. package/dist/app/useDataGridAppModeMeta.d.ts +11 -0
  76. package/dist/app/useDataGridAppModeMeta.d.ts.map +1 -0
  77. package/dist/app/useDataGridAppModeMeta.js +31 -0
  78. package/dist/app/useDataGridAppRowPresentation.d.ts +19 -0
  79. package/dist/app/useDataGridAppRowPresentation.d.ts.map +1 -0
  80. package/dist/app/useDataGridAppRowPresentation.js +106 -0
  81. package/dist/app/useDataGridAppRowSelection.d.ts +17 -0
  82. package/dist/app/useDataGridAppRowSelection.d.ts.map +1 -0
  83. package/dist/app/useDataGridAppRowSelection.js +85 -0
  84. package/dist/app/useDataGridAppRowSizing.d.ts +24 -0
  85. package/dist/app/useDataGridAppRowSizing.d.ts.map +1 -0
  86. package/dist/app/useDataGridAppRowSizing.js +215 -0
  87. package/dist/app/useDataGridAppRuntime.d.ts +32 -0
  88. package/dist/app/useDataGridAppRuntime.d.ts.map +1 -0
  89. package/dist/app/useDataGridAppRuntime.js +137 -0
  90. package/dist/app/useDataGridAppRuntimeSync.d.ts +21 -0
  91. package/dist/app/useDataGridAppRuntimeSync.d.ts.map +1 -0
  92. package/dist/app/useDataGridAppRuntimeSync.js +30 -0
  93. package/dist/app/useDataGridAppSelection.d.ts +24 -0
  94. package/dist/app/useDataGridAppSelection.d.ts.map +1 -0
  95. package/dist/app/useDataGridAppSelection.js +191 -0
  96. package/dist/app/useDataGridAppViewport.d.ts +57 -0
  97. package/dist/app/useDataGridAppViewport.d.ts.map +1 -0
  98. package/dist/app/useDataGridAppViewport.js +387 -0
  99. package/dist/app/useDataGridAppViewportLifecycle.d.ts +12 -0
  100. package/dist/app/useDataGridAppViewportLifecycle.d.ts.map +1 -0
  101. package/dist/app/useDataGridAppViewportLifecycle.js +33 -0
  102. package/dist/app/worker.d.ts +2 -0
  103. package/dist/app/worker.d.ts.map +1 -0
  104. package/dist/app/worker.js +1 -0
  105. package/dist/composables/dataGridFillBehavior.d.ts +2 -0
  106. package/dist/composables/dataGridFillBehavior.d.ts.map +1 -0
  107. package/dist/composables/dataGridFillBehavior.js +1 -0
  108. package/dist/composables/useAffinoGrid.d.ts +20 -0
  109. package/dist/composables/useAffinoGrid.d.ts.map +1 -0
  110. package/dist/composables/useAffinoGrid.js +17 -0
  111. package/dist/composables/useDataGridContext.d.ts +9 -0
  112. package/dist/composables/useDataGridContext.d.ts.map +1 -0
  113. package/dist/composables/useDataGridContext.js +12 -0
  114. package/dist/composables/useDataGridEngine.d.ts +18 -0
  115. package/dist/composables/useDataGridEngine.d.ts.map +1 -0
  116. package/dist/composables/useDataGridEngine.js +12 -0
  117. package/dist/composables/useDataGridEngineContext.d.ts +8 -0
  118. package/dist/composables/useDataGridEngineContext.d.ts.map +1 -0
  119. package/dist/composables/useDataGridEngineContext.js +15 -0
  120. package/dist/composables/useDataGridEventBridge.d.ts +27 -0
  121. package/dist/composables/useDataGridEventBridge.d.ts.map +1 -0
  122. package/dist/composables/useDataGridEventBridge.js +24 -0
  123. package/dist/composables/useDataGridManagedWheelScroll.d.ts +1 -1
  124. package/dist/composables/useDataGridManagedWheelScroll.d.ts.map +1 -1
  125. package/dist/composables/useDataGridManagedWheelScroll.js +1 -1
  126. package/dist/composables/useDataGridOverlayScrollState.d.ts +2 -2
  127. package/dist/composables/useDataGridRuntime.d.ts +74 -3
  128. package/dist/composables/useDataGridRuntime.d.ts.map +1 -1
  129. package/dist/composables/useDataGridRuntime.js +337 -21
  130. package/dist/composables/useDataGridTheme.d.ts +7 -0
  131. package/dist/composables/useDataGridTheme.d.ts.map +1 -0
  132. package/dist/composables/useDataGridTheme.js +10 -0
  133. package/dist/composables/useDataGridViewContext.d.ts +11 -0
  134. package/dist/composables/useDataGridViewContext.d.ts.map +1 -0
  135. package/dist/composables/useDataGridViewContext.js +12 -0
  136. package/dist/composables/useDataGridViewModel.d.ts +48 -0
  137. package/dist/composables/useDataGridViewModel.d.ts.map +1 -0
  138. package/dist/composables/useDataGridViewModel.js +40 -0
  139. package/dist/grid/createGrid.d.ts +3 -0
  140. package/dist/grid/createGrid.d.ts.map +1 -0
  141. package/dist/grid/createGrid.js +92 -0
  142. package/dist/grid/eventBus.d.ts +9 -0
  143. package/dist/grid/eventBus.d.ts.map +1 -0
  144. package/dist/grid/eventBus.js +39 -0
  145. package/dist/grid/types.d.ts +45 -0
  146. package/dist/grid/types.d.ts.map +1 -0
  147. package/dist/public.d.ts +12 -7
  148. package/dist/public.d.ts.map +1 -1
  149. package/dist/public.js +8 -5
  150. package/dist/worker.d.ts +3 -0
  151. package/dist/worker.d.ts.map +1 -0
  152. package/dist/worker.js +1 -0
  153. package/package.json +50 -15
  154. package/dist/adapters/adapterLifecycle.d.ts +0 -12
  155. package/dist/adapters/adapterLifecycle.d.ts.map +0 -1
  156. package/dist/adapters/clipboardAdapter.d.ts +0 -3
  157. package/dist/adapters/clipboardAdapter.d.ts.map +0 -1
  158. package/dist/adapters/clipboardAdapter.js +0 -38
  159. package/dist/adapters/columnPinNormalization.d.ts +0 -14
  160. package/dist/adapters/columnPinNormalization.d.ts.map +0 -1
  161. package/dist/adapters/columnPinNormalization.js +0 -55
  162. package/dist/adapters/hoverEnvironment.d.ts +0 -3
  163. package/dist/adapters/hoverEnvironment.d.ts.map +0 -1
  164. package/dist/adapters/hoverEnvironment.js +0 -24
  165. package/dist/adapters/selectionControllerAdapter.d.ts +0 -30
  166. package/dist/adapters/selectionControllerAdapter.d.ts.map +0 -1
  167. package/dist/adapters/selectionControllerAdapter.js +0 -77
  168. package/dist/adapters/selectionEnvironment.d.ts +0 -41
  169. package/dist/adapters/selectionEnvironment.d.ts.map +0 -1
  170. package/dist/adapters/selectionEnvironment.js +0 -188
  171. package/dist/adapters/selectionHeadlessAdapter.d.ts +0 -48
  172. package/dist/adapters/selectionHeadlessAdapter.d.ts.map +0 -1
  173. package/dist/adapters/selectionHeadlessAdapter.js +0 -160
  174. package/dist/adapters/sharedState.d.ts +0 -4
  175. package/dist/adapters/sharedState.d.ts.map +0 -1
  176. package/dist/adapters/sharedState.js +0 -27
  177. package/dist/adapters/viewportHostEnvironment.d.ts +0 -3
  178. package/dist/adapters/viewportHostEnvironment.d.ts.map +0 -1
  179. package/dist/adapters/viewportHostEnvironment.js +0 -46
  180. package/dist/cells/cellUtils.d.ts +0 -95
  181. package/dist/cells/cellUtils.d.ts.map +0 -1
  182. package/dist/cells/cellUtils.js +0 -20
  183. package/dist/cells/index.d.ts +0 -5
  184. package/dist/cells/index.d.ts.map +0 -1
  185. package/dist/cells/index.js +0 -4
  186. package/dist/cells/useCellEditing.d.ts +0 -42
  187. package/dist/cells/useCellEditing.d.ts.map +0 -1
  188. package/dist/cells/useCellEditing.js +0 -194
  189. package/dist/cells/useCellSelection.d.ts +0 -7
  190. package/dist/cells/useCellSelection.d.ts.map +0 -1
  191. package/dist/cells/useCellSelection.js +0 -48
  192. package/dist/cells/useCellStyle.d.ts +0 -22
  193. package/dist/cells/useCellStyle.d.ts.map +0 -1
  194. package/dist/cells/useCellStyle.js +0 -128
  195. package/dist/components/AffinoDataGridSimple.d.ts +0 -107
  196. package/dist/components/AffinoDataGridSimple.d.ts.map +0 -1
  197. package/dist/components/AffinoDataGridSimple.js +0 -349
  198. package/dist/components/DataGrid.d.ts +0 -57
  199. package/dist/components/DataGrid.d.ts.map +0 -1
  200. package/dist/components/DataGrid.js +0 -68
  201. package/dist/components/index.d.ts +0 -3
  202. package/dist/components/index.d.ts.map +0 -1
  203. package/dist/components/index.js +0 -2
  204. package/dist/components/overlayRenderer.d.ts +0 -36
  205. package/dist/components/overlayRenderer.d.ts.map +0 -1
  206. package/dist/components/overlayRenderer.js +0 -169
  207. package/dist/components/ui/VirtualList.types.d.ts +0 -5
  208. package/dist/components/ui/VirtualList.types.d.ts.map +0 -1
  209. package/dist/composables/internal/useAffinoDataGrid/index.d.ts +0 -16
  210. package/dist/composables/internal/useAffinoDataGrid/index.d.ts.map +0 -1
  211. package/dist/composables/internal/useAffinoDataGrid/index.js +0 -15
  212. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridActionRunner.d.ts +0 -34
  213. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridActionRunner.d.ts.map +0 -1
  214. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridActionRunner.js +0 -181
  215. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridBaseBindings.d.ts +0 -99
  216. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridBaseBindings.d.ts.map +0 -1
  217. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridBaseBindings.js +0 -316
  218. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridBindingSuite.d.ts +0 -40
  219. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridBindingSuite.d.ts.map +0 -1
  220. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridBindingSuite.js +0 -68
  221. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridClipboardFeature.d.ts +0 -37
  222. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridClipboardFeature.d.ts.map +0 -1
  223. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridClipboardFeature.js +0 -148
  224. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridContextMenuFeature.d.ts +0 -92
  225. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridContextMenuFeature.d.ts.map +0 -1
  226. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridContextMenuFeature.js +0 -91
  227. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridEditingFeature.d.ts +0 -81
  228. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridEditingFeature.d.ts.map +0 -1
  229. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridEditingFeature.js +0 -144
  230. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridEventHub.d.ts +0 -16
  231. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridEventHub.d.ts.map +0 -1
  232. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridEventHub.js +0 -105
  233. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridFeatureNormalization.d.ts +0 -74
  234. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridFeatureNormalization.d.ts.map +0 -1
  235. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridFeatureNormalization.js +0 -123
  236. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridFeatureSuite.d.ts +0 -32
  237. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridFeatureSuite.d.ts.map +0 -1
  238. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridFeatureSuite.js +0 -196
  239. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridFilteringFeature.d.ts +0 -25
  240. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridFilteringFeature.d.ts.map +0 -1
  241. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridFilteringFeature.js +0 -51
  242. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridHeaderFilters.d.ts +0 -65
  243. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridHeaderFilters.d.ts.map +0 -1
  244. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridHeaderFilters.js +0 -251
  245. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridIdentity.d.ts +0 -5
  246. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridIdentity.d.ts.map +0 -1
  247. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridIdentity.js +0 -30
  248. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridKeyboardDispatcher.d.ts +0 -22
  249. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridKeyboardDispatcher.d.ts.map +0 -1
  250. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridKeyboardDispatcher.js +0 -74
  251. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridLayoutProfiles.d.ts +0 -31
  252. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridLayoutProfiles.d.ts.map +0 -1
  253. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridLayoutProfiles.js +0 -64
  254. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridPointerLifecycle.d.ts +0 -9
  255. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridPointerLifecycle.d.ts.map +0 -1
  256. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridPointerLifecycle.js +0 -15
  257. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridRangeClipboard.d.ts +0 -61
  258. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridRangeClipboard.d.ts.map +0 -1
  259. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridRangeClipboard.js +0 -470
  260. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridResultAssembly.d.ts +0 -23
  261. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridResultAssembly.d.ts.map +0 -1
  262. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridResultAssembly.js +0 -131
  263. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridRowHeightFeature.d.ts +0 -30
  264. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridRowHeightFeature.d.ts.map +0 -1
  265. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridRowHeightFeature.js +0 -82
  266. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridRuntimeBootstrap.d.ts +0 -20
  267. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridRuntimeBootstrap.d.ts.map +0 -1
  268. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridRuntimeBootstrap.js +0 -66
  269. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSelectionEngine.d.ts +0 -56
  270. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSelectionEngine.d.ts.map +0 -1
  271. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSelectionEngine.js +0 -365
  272. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSelectionFeature.d.ts +0 -38
  273. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSelectionFeature.d.ts.map +0 -1
  274. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSelectionFeature.js +0 -170
  275. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSortActionSuite.d.ts +0 -30
  276. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSortActionSuite.d.ts.map +0 -1
  277. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSortActionSuite.js +0 -36
  278. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSortingFeature.d.ts +0 -15
  279. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSortingFeature.d.ts.map +0 -1
  280. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSortingFeature.js +0 -42
  281. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridStatusBar.d.ts +0 -32
  282. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridStatusBar.d.ts.map +0 -1
  283. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridStatusBar.js +0 -73
  284. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSummaryFeature.d.ts +0 -27
  285. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSummaryFeature.d.ts.map +0 -1
  286. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridSummaryFeature.js +0 -39
  287. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridTreeFeature.d.ts +0 -35
  288. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridTreeFeature.d.ts.map +0 -1
  289. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridTreeFeature.js +0 -220
  290. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridVisibilityFeature.d.ts +0 -28
  291. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridVisibilityFeature.d.ts.map +0 -1
  292. package/dist/composables/internal/useAffinoDataGrid/useAffinoDataGridVisibilityFeature.js +0 -59
  293. package/dist/composables/selection/selectionControllerStateScheduler.d.ts +0 -13
  294. package/dist/composables/selection/selectionControllerStateScheduler.d.ts.map +0 -1
  295. package/dist/composables/selection/selectionControllerStateScheduler.js +0 -48
  296. package/dist/composables/selection/selectionGeometry.d.ts +0 -47
  297. package/dist/composables/selection/selectionGeometry.d.ts.map +0 -1
  298. package/dist/composables/selection/selectionGeometry.js +0 -84
  299. package/dist/composables/selection/selectionInput.d.ts +0 -6
  300. package/dist/composables/selection/selectionInput.d.ts.map +0 -1
  301. package/dist/composables/selection/selectionInput.js +0 -6
  302. package/dist/composables/selection/selectionOverlayUpdateScheduler.d.ts +0 -21
  303. package/dist/composables/selection/selectionOverlayUpdateScheduler.d.ts.map +0 -1
  304. package/dist/composables/selection/selectionOverlayUpdateScheduler.js +0 -65
  305. package/dist/composables/selection/selectionStateSync.d.ts +0 -55
  306. package/dist/composables/selection/selectionStateSync.d.ts.map +0 -1
  307. package/dist/composables/selection/selectionStateSync.js +0 -30
  308. package/dist/composables/useAffinoDataGrid.d.ts +0 -4
  309. package/dist/composables/useAffinoDataGrid.d.ts.map +0 -1
  310. package/dist/composables/useAffinoDataGrid.js +0 -1556
  311. package/dist/composables/useAffinoDataGrid.types.d.ts +0 -706
  312. package/dist/composables/useAffinoDataGrid.types.d.ts.map +0 -1
  313. package/dist/composables/useAffinoDataGridClipboardFeature.d.ts +0 -37
  314. package/dist/composables/useAffinoDataGridClipboardFeature.d.ts.map +0 -1
  315. package/dist/composables/useAffinoDataGridClipboardFeature.js +0 -135
  316. package/dist/composables/useAffinoDataGridEditingFeature.d.ts +0 -50
  317. package/dist/composables/useAffinoDataGridEditingFeature.d.ts.map +0 -1
  318. package/dist/composables/useAffinoDataGridEditingFeature.js +0 -94
  319. package/dist/composables/useAffinoDataGridFilteringFeature.d.ts +0 -25
  320. package/dist/composables/useAffinoDataGridFilteringFeature.d.ts.map +0 -1
  321. package/dist/composables/useAffinoDataGridFilteringFeature.js +0 -51
  322. package/dist/composables/useAffinoDataGridMinimal.d.ts +0 -3
  323. package/dist/composables/useAffinoDataGridMinimal.d.ts.map +0 -1
  324. package/dist/composables/useAffinoDataGridMinimal.js +0 -6
  325. package/dist/composables/useAffinoDataGridSelectionFeature.d.ts +0 -38
  326. package/dist/composables/useAffinoDataGridSelectionFeature.d.ts.map +0 -1
  327. package/dist/composables/useAffinoDataGridSelectionFeature.js +0 -160
  328. package/dist/composables/useAffinoDataGridSummaryFeature.d.ts +0 -27
  329. package/dist/composables/useAffinoDataGridSummaryFeature.d.ts.map +0 -1
  330. package/dist/composables/useAffinoDataGridSummaryFeature.js +0 -39
  331. package/dist/composables/useAffinoDataGridTreeFeature.d.ts +0 -31
  332. package/dist/composables/useAffinoDataGridTreeFeature.d.ts.map +0 -1
  333. package/dist/composables/useAffinoDataGridTreeFeature.js +0 -183
  334. package/dist/composables/useAffinoDataGridUi.d.ts +0 -36
  335. package/dist/composables/useAffinoDataGridUi.d.ts.map +0 -1
  336. package/dist/composables/useAffinoDataGridUi.js +0 -81
  337. package/dist/composables/useAffinoDataGridVisibilityFeature.d.ts +0 -28
  338. package/dist/composables/useAffinoDataGridVisibilityFeature.d.ts.map +0 -1
  339. package/dist/composables/useAffinoDataGridVisibilityFeature.js +0 -59
  340. package/dist/composables/useAutoResizeColumn.d.ts +0 -14
  341. package/dist/composables/useAutoResizeColumn.d.ts.map +0 -1
  342. package/dist/composables/useAutoResizeColumn.js +0 -64
  343. package/dist/composables/useAxisVirtualizer.d.ts +0 -25
  344. package/dist/composables/useAxisVirtualizer.d.ts.map +0 -1
  345. package/dist/composables/useAxisVirtualizer.js +0 -41
  346. package/dist/composables/useColumnGroups.d.ts +0 -15
  347. package/dist/composables/useColumnGroups.d.ts.map +0 -1
  348. package/dist/composables/useColumnGroups.js +0 -35
  349. package/dist/composables/useColumnHeaderInteractions.d.ts +0 -38
  350. package/dist/composables/useColumnHeaderInteractions.d.ts.map +0 -1
  351. package/dist/composables/useColumnHeaderInteractions.js +0 -471
  352. package/dist/composables/useColumnVisibility.d.ts +0 -31
  353. package/dist/composables/useColumnVisibility.d.ts.map +0 -1
  354. package/dist/composables/useColumnVisibility.js +0 -124
  355. package/dist/composables/useDomSampling.d.ts +0 -17
  356. package/dist/composables/useDomSampling.d.ts.map +0 -1
  357. package/dist/composables/useDomSampling.js +0 -66
  358. package/dist/composables/useHorizontalViewport.d.ts +0 -35
  359. package/dist/composables/useHorizontalViewport.d.ts.map +0 -1
  360. package/dist/composables/useHorizontalViewport.js +0 -167
  361. package/dist/composables/useSelectableRows.d.ts +0 -24
  362. package/dist/composables/useSelectableRows.d.ts.map +0 -1
  363. package/dist/composables/useSelectableRows.js +0 -108
  364. package/dist/composables/useSelectionOverlayAdapter.d.ts +0 -34
  365. package/dist/composables/useSelectionOverlayAdapter.d.ts.map +0 -1
  366. package/dist/composables/useSelectionOverlayAdapter.js +0 -159
  367. package/dist/composables/useServerRowModel.d.ts +0 -30
  368. package/dist/composables/useServerRowModel.d.ts.map +0 -1
  369. package/dist/composables/useServerRowModel.js +0 -44
  370. package/dist/composables/useTableAdvancedFilterModal.d.ts +0 -30
  371. package/dist/composables/useTableAdvancedFilterModal.d.ts.map +0 -1
  372. package/dist/composables/useTableAdvancedFilterModal.js +0 -78
  373. package/dist/composables/useTableAutoColumnScheduler.d.ts +0 -26
  374. package/dist/composables/useTableAutoColumnScheduler.d.ts.map +0 -1
  375. package/dist/composables/useTableAutoColumnScheduler.js +0 -59
  376. package/dist/composables/useTableAutoScroll.d.ts +0 -18
  377. package/dist/composables/useTableAutoScroll.d.ts.map +0 -1
  378. package/dist/composables/useTableAutoScroll.js +0 -167
  379. package/dist/composables/useTableClipboardBridge.d.ts +0 -45
  380. package/dist/composables/useTableClipboardBridge.d.ts.map +0 -1
  381. package/dist/composables/useTableClipboardBridge.js +0 -185
  382. package/dist/composables/useTableColumnBindings.d.ts +0 -25
  383. package/dist/composables/useTableColumnBindings.d.ts.map +0 -1
  384. package/dist/composables/useTableColumnBindings.js +0 -72
  385. package/dist/composables/useTableColumnPinning.d.ts +0 -17
  386. package/dist/composables/useTableColumnPinning.d.ts.map +0 -1
  387. package/dist/composables/useTableColumnPinning.js +0 -49
  388. package/dist/composables/useTableDataModel.d.ts +0 -46
  389. package/dist/composables/useTableDataModel.d.ts.map +0 -1
  390. package/dist/composables/useTableDataModel.js +0 -411
  391. package/dist/composables/useTableEditing.d.ts +0 -67
  392. package/dist/composables/useTableEditing.d.ts.map +0 -1
  393. package/dist/composables/useTableEditing.js +0 -321
  394. package/dist/composables/useTableFilters.d.ts +0 -55
  395. package/dist/composables/useTableFilters.d.ts.map +0 -1
  396. package/dist/composables/useTableFilters.js +0 -723
  397. package/dist/composables/useTableFindReplaceBridge.d.ts +0 -27
  398. package/dist/composables/useTableFindReplaceBridge.d.ts.map +0 -1
  399. package/dist/composables/useTableFindReplaceBridge.js +0 -84
  400. package/dist/composables/useTableFocusManagement.d.ts +0 -35
  401. package/dist/composables/useTableFocusManagement.d.ts.map +0 -1
  402. package/dist/composables/useTableFocusManagement.js +0 -106
  403. package/dist/composables/useTableGridLayout.d.ts +0 -17
  404. package/dist/composables/useTableGridLayout.d.ts.map +0 -1
  405. package/dist/composables/useTableGridLayout.js +0 -47
  406. package/dist/composables/useTableGrouping.d.ts +0 -54
  407. package/dist/composables/useTableGrouping.d.ts.map +0 -1
  408. package/dist/composables/useTableGrouping.js +0 -255
  409. package/dist/composables/useTableHeaderLayout.d.ts +0 -33
  410. package/dist/composables/useTableHeaderLayout.d.ts.map +0 -1
  411. package/dist/composables/useTableHeaderLayout.js +0 -84
  412. package/dist/composables/useTableHistory.d.ts +0 -16
  413. package/dist/composables/useTableHistory.d.ts.map +0 -1
  414. package/dist/composables/useTableHistory.js +0 -37
  415. package/dist/composables/useTableHoverOverlay.d.ts +0 -36
  416. package/dist/composables/useTableHoverOverlay.d.ts.map +0 -1
  417. package/dist/composables/useTableHoverOverlay.js +0 -323
  418. package/dist/composables/useTableImperativeRendering.d.ts +0 -44
  419. package/dist/composables/useTableImperativeRendering.d.ts.map +0 -1
  420. package/dist/composables/useTableImperativeRendering.js +0 -82
  421. package/dist/composables/useTableLocalColumns.d.ts +0 -23
  422. package/dist/composables/useTableLocalColumns.d.ts.map +0 -1
  423. package/dist/composables/useTableLocalColumns.js +0 -40
  424. package/dist/composables/useTableOverlayController.d.ts +0 -14
  425. package/dist/composables/useTableOverlayController.d.ts.map +0 -1
  426. package/dist/composables/useTableOverlayController.js +0 -97
  427. package/dist/composables/useTableOverlayScrollState.d.ts +0 -17
  428. package/dist/composables/useTableOverlayScrollState.d.ts.map +0 -1
  429. package/dist/composables/useTableOverlayScrollState.js +0 -26
  430. package/dist/composables/useTablePanels.d.ts +0 -17
  431. package/dist/composables/useTablePanels.d.ts.map +0 -1
  432. package/dist/composables/useTablePanels.js +0 -60
  433. package/dist/composables/useTableRecalcWatcher.d.ts +0 -24
  434. package/dist/composables/useTableRecalcWatcher.d.ts.map +0 -1
  435. package/dist/composables/useTableRecalcWatcher.js +0 -30
  436. package/dist/composables/useTableRuntime.d.ts +0 -18
  437. package/dist/composables/useTableRuntime.d.ts.map +0 -1
  438. package/dist/composables/useTableRuntime.js +0 -43
  439. package/dist/composables/useTableSearchHighlights.d.ts +0 -18
  440. package/dist/composables/useTableSearchHighlights.d.ts.map +0 -1
  441. package/dist/composables/useTableSearchHighlights.js +0 -45
  442. package/dist/composables/useTableSelection.d.ts +0 -204
  443. package/dist/composables/useTableSelection.d.ts.map +0 -1
  444. package/dist/composables/useTableSelection.js +0 -3080
  445. package/dist/composables/useTableServerSync.d.ts +0 -35
  446. package/dist/composables/useTableServerSync.d.ts.map +0 -1
  447. package/dist/composables/useTableServerSync.js +0 -130
  448. package/dist/composables/useTableSorting.d.ts +0 -29
  449. package/dist/composables/useTableSorting.d.ts.map +0 -1
  450. package/dist/composables/useTableSorting.js +0 -84
  451. package/dist/composables/useTableStatusMetrics.d.ts +0 -22
  452. package/dist/composables/useTableStatusMetrics.d.ts.map +0 -1
  453. package/dist/composables/useTableStatusMetrics.js +0 -25
  454. package/dist/composables/useTableStickyColumns.d.ts +0 -39
  455. package/dist/composables/useTableStickyColumns.d.ts.map +0 -1
  456. package/dist/composables/useTableStickyColumns.js +0 -244
  457. package/dist/composables/useTableTheme.d.ts +0 -30
  458. package/dist/composables/useTableTheme.d.ts.map +0 -1
  459. package/dist/composables/useTableTheme.js +0 -207
  460. package/dist/composables/useTableViewport.d.ts +0 -103
  461. package/dist/composables/useTableViewport.d.ts.map +0 -1
  462. package/dist/composables/useTableViewport.js +0 -298
  463. package/dist/composables/useTableViewportMetrics.d.ts +0 -12
  464. package/dist/composables/useTableViewportMetrics.d.ts.map +0 -1
  465. package/dist/composables/useTableViewportMetrics.js +0 -179
  466. package/dist/composables/useTableZoom.d.ts +0 -16
  467. package/dist/composables/useTableZoom.d.ts.map +0 -1
  468. package/dist/composables/useTableZoom.js +0 -68
  469. package/dist/composables/useVerticalViewport.d.ts +0 -34
  470. package/dist/composables/useVerticalViewport.d.ts.map +0 -1
  471. package/dist/composables/useVerticalViewport.js +0 -210
  472. package/dist/composables/useVirtualDebug.d.ts +0 -169
  473. package/dist/composables/useVirtualDebug.d.ts.map +0 -1
  474. package/dist/composables/useVirtualDebug.js +0 -206
  475. package/dist/composables/useVirtualList.d.ts +0 -25
  476. package/dist/composables/useVirtualList.d.ts.map +0 -1
  477. package/dist/composables/useVirtualList.js +0 -54
  478. package/dist/context.d.ts +0 -463
  479. package/dist/context.d.ts.map +0 -1
  480. package/dist/context.js +0 -5
  481. package/dist/core/api/useUiTableApi.d.ts +0 -51
  482. package/dist/core/api/useUiTableApi.d.ts.map +0 -1
  483. package/dist/core/api/useUiTableApi.js +0 -103
  484. package/dist/core/columns/columnGroup.d.ts +0 -2
  485. package/dist/core/columns/columnGroup.d.ts.map +0 -1
  486. package/dist/core/columns/columnGroup.js +0 -1
  487. package/dist/core/columns/measurement.d.ts +0 -3
  488. package/dist/core/columns/measurement.d.ts.map +0 -1
  489. package/dist/core/columns/measurement.js +0 -132
  490. package/dist/core/virtualization/types.d.ts +0 -8
  491. package/dist/core/virtualization/types.d.ts.map +0 -1
  492. package/dist/core/virtualization/types.js +0 -4
  493. package/dist/core/virtualization/viewportConfig.d.ts +0 -6
  494. package/dist/core/virtualization/viewportConfig.d.ts.map +0 -1
  495. package/dist/core/virtualization/viewportConfig.js +0 -20
  496. package/dist/imperative/createDomControllerSuite.d.ts +0 -3
  497. package/dist/imperative/createDomControllerSuite.d.ts.map +0 -1
  498. package/dist/imperative/createDomControllerSuite.js +0 -24
  499. package/dist/imperative/selectionDomAdapter.d.ts +0 -54
  500. package/dist/imperative/selectionDomAdapter.d.ts.map +0 -1
  501. package/dist/imperative/selectionDomAdapter.js +0 -466
  502. package/dist/imperative/useImperativeTableAdapter.d.ts +0 -12
  503. package/dist/imperative/useImperativeTableAdapter.d.ts.map +0 -1
  504. package/dist/imperative/useImperativeTableAdapter.js +0 -80
  505. package/dist/piniaTableSettingsAdapter.d.ts +0 -5
  506. package/dist/piniaTableSettingsAdapter.d.ts.map +0 -1
  507. package/dist/piniaTableSettingsAdapter.js +0 -45
  508. package/dist/src/index.d.ts +0 -2
  509. package/dist/src/index.d.ts.map +0 -1
  510. package/dist/src/index.js +0 -1
  511. package/dist/src/piniaTableSettingsAdapter.d.ts +0 -4
  512. package/dist/src/piniaTableSettingsAdapter.d.ts.map +0 -1
  513. package/dist/src/piniaTableSettingsAdapter.js +0 -37
  514. package/dist/src/public.d.ts +0 -7
  515. package/dist/src/public.d.ts.map +0 -1
  516. package/dist/src/public.js +0 -6
  517. package/dist/src/tableSettingsStore.d.ts +0 -13
  518. package/dist/src/tableSettingsStore.d.ts.map +0 -1
  519. package/dist/src/tableSettingsStore.js +0 -134
  520. package/dist/stores/useFindReplaceStore.d.ts +0 -52
  521. package/dist/stores/useFindReplaceStore.d.ts.map +0 -1
  522. package/dist/stores/useFindReplaceStore.js +0 -237
  523. package/dist/tableSettingsStore.d.ts +0 -27
  524. package/dist/tableSettingsStore.d.ts.map +0 -1
  525. package/dist/tableSettingsStore.js +0 -154
  526. package/dist/tsconfig.public.tsbuildinfo +0 -1
  527. package/dist/types/overlay.d.ts +0 -26
  528. package/dist/types/overlay.d.ts.map +0 -1
  529. package/dist/types/overlay.js +0 -1
  530. package/dist/types/piniaPersist.d.ts +0 -11
  531. package/dist/types/piniaPersist.d.ts.map +0 -1
  532. package/dist/types/piniaPersist.js +0 -2
  533. package/dist/utils/columnStorage.d.ts +0 -9
  534. package/dist/utils/columnStorage.d.ts.map +0 -1
  535. package/dist/utils/columnStorage.js +0 -136
  536. package/dist/utils/createWheelAccumulator.d.ts +0 -22
  537. package/dist/utils/createWheelAccumulator.d.ts.map +0 -1
  538. package/dist/utils/createWheelAccumulator.js +0 -70
  539. package/dist/utils/sortStateAdapter.d.ts +0 -5
  540. package/dist/utils/sortStateAdapter.d.ts.map +0 -1
  541. package/dist/utils/sortStateAdapter.js +0 -24
  542. /package/dist/{adapters/adapterLifecycle.js → app/advancedFilterPanel.types.js} +0 -0
  543. /package/dist/{components/ui/VirtualList.types.js → app/columnLayoutPanel.types.js} +0 -0
  544. /package/dist/{composables/useAffinoDataGrid.types.js → grid/types.js} +0 -0
@@ -0,0 +1,290 @@
1
+ import { createGridSelectionRange } from "../advanced";
2
+ export function useDataGridAppCellSelection(options) {
3
+ const supportsCellSelectionMode = () => {
4
+ return options.mode.value === "base" || options.mode.value === "worker";
5
+ };
6
+ const resolveAnchorColumnIndex = (anchor) => {
7
+ return "columnIndex" in anchor ? anchor.columnIndex : anchor.colIndex;
8
+ };
9
+ const resolveSelectionAnchorCoord = () => {
10
+ const explicitAnchor = options.selectionAnchor.value;
11
+ if (explicitAnchor) {
12
+ return {
13
+ rowIndex: explicitAnchor.rowIndex,
14
+ columnIndex: resolveAnchorColumnIndex(explicitAnchor),
15
+ };
16
+ }
17
+ const snapshot = options.selectionSnapshot.value;
18
+ if (!snapshot || snapshot.ranges.length === 0) {
19
+ return null;
20
+ }
21
+ const activeIndex = snapshot.activeRangeIndex ?? 0;
22
+ const range = snapshot.ranges[activeIndex] ?? snapshot.ranges[0];
23
+ if (!range?.anchor) {
24
+ return null;
25
+ }
26
+ return {
27
+ rowIndex: range.anchor.rowIndex,
28
+ columnIndex: range.anchor.colIndex,
29
+ };
30
+ };
31
+ const buildSelectionContext = () => {
32
+ return {
33
+ grid: {
34
+ rowCount: options.totalRows.value,
35
+ colCount: options.visibleColumns.value.length,
36
+ },
37
+ getRowIdByIndex: (rowIndex) => options.runtime.getBodyRowAtIndex(rowIndex)?.rowId ?? null,
38
+ };
39
+ };
40
+ const buildSelectionSnapshot = (range, activeCell) => {
41
+ return {
42
+ ranges: [
43
+ {
44
+ startRow: range.startRow,
45
+ endRow: range.endRow,
46
+ startCol: range.startCol,
47
+ endCol: range.endCol,
48
+ startRowId: range.startRowId ?? null,
49
+ endRowId: range.endRowId ?? null,
50
+ anchor: {
51
+ rowIndex: range.anchor.rowIndex,
52
+ colIndex: range.anchor.colIndex,
53
+ rowId: range.anchor.rowId ?? null,
54
+ },
55
+ focus: {
56
+ rowIndex: range.focus.rowIndex,
57
+ colIndex: range.focus.colIndex,
58
+ rowId: range.focus.rowId ?? null,
59
+ },
60
+ },
61
+ ],
62
+ activeRangeIndex: 0,
63
+ activeCell: {
64
+ rowIndex: activeCell.rowIndex,
65
+ colIndex: activeCell.colIndex,
66
+ rowId: activeCell.rowId ?? null,
67
+ },
68
+ };
69
+ };
70
+ const normalizeRowId = (value) => {
71
+ return typeof value === "string" || typeof value === "number" ? value : null;
72
+ };
73
+ const normalizeCellCoord = (coord) => {
74
+ const rowCount = options.totalRows.value;
75
+ const colCount = options.visibleColumns.value.length;
76
+ if (rowCount <= 0 || colCount <= 0) {
77
+ return null;
78
+ }
79
+ const rowIndex = Math.max(0, Math.min(rowCount - 1, Math.trunc(coord.rowIndex)));
80
+ const columnIndex = Math.max(0, Math.min(colCount - 1, Math.trunc(coord.columnIndex)));
81
+ return {
82
+ rowIndex,
83
+ columnIndex,
84
+ rowId: options.runtime.getBodyRowAtIndex(rowIndex)?.rowId ?? null,
85
+ };
86
+ };
87
+ const normalizeSelectionRange = (range) => {
88
+ const rowCount = options.totalRows.value;
89
+ const columnCount = options.visibleColumns.value.length;
90
+ if (rowCount <= 0 || columnCount <= 0) {
91
+ return null;
92
+ }
93
+ const startRow = Math.max(0, Math.min(rowCount - 1, Math.trunc(Math.min(range.startRow, range.endRow))));
94
+ const endRow = Math.max(0, Math.min(rowCount - 1, Math.trunc(Math.max(range.startRow, range.endRow))));
95
+ const startColumn = Math.max(0, Math.min(columnCount - 1, Math.trunc(Math.min(range.startColumn, range.endColumn))));
96
+ const endColumn = Math.max(0, Math.min(columnCount - 1, Math.trunc(Math.max(range.startColumn, range.endColumn))));
97
+ if (startRow > endRow || startColumn > endColumn) {
98
+ return null;
99
+ }
100
+ return {
101
+ startRow,
102
+ endRow,
103
+ startColumn,
104
+ endColumn,
105
+ };
106
+ };
107
+ const resolveSelectionRange = () => {
108
+ const snapshot = options.selectionSnapshot.value;
109
+ if (!snapshot || snapshot.ranges.length === 0) {
110
+ return null;
111
+ }
112
+ const activeIndex = snapshot.activeRangeIndex ?? 0;
113
+ const range = snapshot.ranges[activeIndex] ?? snapshot.ranges[0];
114
+ if (!range) {
115
+ return null;
116
+ }
117
+ return normalizeSelectionRange({
118
+ startRow: range.startRow,
119
+ endRow: range.endRow,
120
+ startColumn: range.startCol,
121
+ endColumn: range.endCol,
122
+ });
123
+ };
124
+ const resolveCurrentCellCoord = () => {
125
+ const activeCell = options.selectionSnapshot.value?.activeCell;
126
+ if (!activeCell) {
127
+ return null;
128
+ }
129
+ const normalized = normalizeCellCoord({
130
+ rowIndex: activeCell.rowIndex,
131
+ columnIndex: activeCell.colIndex,
132
+ rowId: normalizeRowId(activeCell.rowId),
133
+ });
134
+ if (!normalized) {
135
+ return null;
136
+ }
137
+ return {
138
+ rowIndex: normalized.rowIndex,
139
+ columnIndex: normalized.columnIndex,
140
+ };
141
+ };
142
+ const applySelectionRange = (range) => {
143
+ const normalized = normalizeSelectionRange(range);
144
+ if (!normalized || !options.runtime.api.selection.hasSupport()) {
145
+ return;
146
+ }
147
+ const context = buildSelectionContext();
148
+ const anchor = {
149
+ rowIndex: normalized.startRow,
150
+ colIndex: normalized.startColumn,
151
+ rowId: options.runtime.getBodyRowAtIndex(normalized.startRow)?.rowId ?? null,
152
+ };
153
+ const focus = {
154
+ rowIndex: normalized.endRow,
155
+ colIndex: normalized.endColumn,
156
+ rowId: options.runtime.getBodyRowAtIndex(normalized.endRow)?.rowId ?? null,
157
+ };
158
+ const createdRange = createGridSelectionRange(anchor, focus, context);
159
+ const snapshot = buildSelectionSnapshot(createdRange, {
160
+ rowIndex: createdRange.focus.rowIndex,
161
+ colIndex: createdRange.focus.colIndex,
162
+ rowId: createdRange.focus.rowId ?? null,
163
+ });
164
+ options.selectionAnchor.value = {
165
+ rowIndex: createdRange.anchor.rowIndex,
166
+ colIndex: createdRange.anchor.colIndex,
167
+ rowId: createdRange.anchor.rowId ?? null,
168
+ };
169
+ options.selectionSnapshot.value = snapshot;
170
+ options.runtime.api.selection.setSnapshot(snapshot);
171
+ };
172
+ const applyCellSelectionByCoord = (coord, extend, fallbackAnchor) => {
173
+ if (!supportsCellSelectionMode() || !options.runtime.api.selection.hasSupport()) {
174
+ return;
175
+ }
176
+ const normalizedCoord = normalizeCellCoord(coord);
177
+ if (!normalizedCoord) {
178
+ return;
179
+ }
180
+ const context = buildSelectionContext();
181
+ const rawAnchor = extend
182
+ ? (options.selectionAnchor.value ?? fallbackAnchor ?? normalizedCoord)
183
+ : normalizedCoord;
184
+ const normalizedAnchor = normalizeCellCoord({
185
+ rowIndex: rawAnchor.rowIndex,
186
+ columnIndex: resolveAnchorColumnIndex(rawAnchor),
187
+ rowId: normalizeRowId(rawAnchor.rowId),
188
+ });
189
+ if (!normalizedAnchor) {
190
+ return;
191
+ }
192
+ const range = createGridSelectionRange({
193
+ rowIndex: normalizedAnchor.rowIndex,
194
+ colIndex: normalizedAnchor.columnIndex,
195
+ rowId: normalizedAnchor.rowId,
196
+ }, {
197
+ rowIndex: normalizedCoord.rowIndex,
198
+ colIndex: normalizedCoord.columnIndex,
199
+ rowId: normalizedCoord.rowId,
200
+ }, context);
201
+ const snapshot = buildSelectionSnapshot(range, {
202
+ rowIndex: normalizedCoord.rowIndex,
203
+ colIndex: normalizedCoord.columnIndex,
204
+ rowId: normalizedCoord.rowId,
205
+ });
206
+ options.selectionAnchor.value = {
207
+ rowIndex: range.anchor.rowIndex,
208
+ colIndex: range.anchor.colIndex,
209
+ rowId: range.anchor.rowId ?? null,
210
+ };
211
+ options.selectionSnapshot.value = snapshot;
212
+ options.runtime.api.selection.setSnapshot(snapshot);
213
+ };
214
+ const setCellSelection = (row, rowOffset, columnIndex, extend) => {
215
+ if (options.isEditingCell(row, options.visibleColumns.value[columnIndex]?.key ?? "")) {
216
+ return;
217
+ }
218
+ applyCellSelectionByCoord({
219
+ rowIndex: options.viewportRowStart.value + rowOffset,
220
+ columnIndex,
221
+ rowId: row.rowId ?? null,
222
+ }, extend);
223
+ };
224
+ const clearCellSelection = () => {
225
+ options.selectionAnchor.value = null;
226
+ options.selectionSnapshot.value = null;
227
+ options.runtime.api.selection.clear();
228
+ };
229
+ const isCellSelected = (rowOffset, columnIndex) => {
230
+ const range = resolveSelectionRange();
231
+ if (!range) {
232
+ return false;
233
+ }
234
+ const rowIndex = options.viewportRowStart.value + rowOffset;
235
+ return (rowIndex >= range.startRow
236
+ && rowIndex <= range.endRow
237
+ && columnIndex >= range.startColumn
238
+ && columnIndex <= range.endColumn);
239
+ };
240
+ const isSelectionAnchorCell = (rowOffset, columnIndex) => {
241
+ const anchor = resolveSelectionAnchorCoord();
242
+ if (!anchor) {
243
+ return false;
244
+ }
245
+ const rowIndex = options.viewportRowStart.value + rowOffset;
246
+ return rowIndex === anchor.rowIndex && columnIndex === anchor.columnIndex;
247
+ };
248
+ const shouldHighlightSelectedCell = (rowOffset, columnIndex) => {
249
+ const range = resolveSelectionRange();
250
+ if (!range || !isCellSelected(rowOffset, columnIndex)) {
251
+ return false;
252
+ }
253
+ const isSingleCell = range.startRow === range.endRow && range.startColumn === range.endColumn;
254
+ if (isSingleCell) {
255
+ return false;
256
+ }
257
+ return !isSelectionAnchorCell(rowOffset, columnIndex);
258
+ };
259
+ const isCellOnSelectionEdge = (rowOffset, columnIndex, edge) => {
260
+ const range = resolveSelectionRange();
261
+ if (!range || !isCellSelected(rowOffset, columnIndex)) {
262
+ return false;
263
+ }
264
+ const rowIndex = options.viewportRowStart.value + rowOffset;
265
+ switch (edge) {
266
+ case "top":
267
+ return rowIndex === range.startRow;
268
+ case "right":
269
+ return columnIndex === range.endColumn;
270
+ case "bottom":
271
+ return rowIndex === range.endRow;
272
+ case "left":
273
+ return columnIndex === range.startColumn;
274
+ }
275
+ };
276
+ return {
277
+ normalizeRowId,
278
+ normalizeCellCoord,
279
+ resolveSelectionRange,
280
+ resolveCurrentCellCoord,
281
+ applySelectionRange,
282
+ applyCellSelectionByCoord,
283
+ setCellSelection,
284
+ clearCellSelection,
285
+ isCellSelected,
286
+ isSelectionAnchorCell,
287
+ shouldHighlightSelectedCell,
288
+ isCellOnSelectionEdge,
289
+ };
290
+ }
@@ -0,0 +1,49 @@
1
+ import { type Ref } from "vue";
2
+ import type { DataGridColumnSnapshot, DataGridRowNode } from "@affino/datagrid-core";
3
+ import type { DataGridCopyRange } from "../advanced";
4
+ import type { UseDataGridRuntimeResult } from "../composables/useDataGridRuntime";
5
+ import type { DataGridAppMode } from "./useDataGridAppControls";
6
+ export type DataGridAppPendingClipboardOperation = "none" | "copy" | "cut";
7
+ export type DataGridAppPendingClipboardEdge = "top" | "right" | "bottom" | "left";
8
+ export interface UseDataGridAppClipboardOptions<TRow, TSnapshot> {
9
+ mode: Ref<DataGridAppMode>;
10
+ runtime: Pick<UseDataGridRuntimeResult<TRow>, "api" | "getBodyRowAtIndex">;
11
+ totalRows: Ref<number>;
12
+ visibleColumns: Ref<readonly DataGridColumnSnapshot[]>;
13
+ viewportRowStart: Ref<number>;
14
+ resolveSelectionRange: () => DataGridCopyRange | null;
15
+ resolveCurrentCellCoord: () => {
16
+ rowIndex: number;
17
+ columnIndex: number;
18
+ } | null;
19
+ applySelectionRange: (range: DataGridCopyRange) => void;
20
+ clearCellSelection: () => void;
21
+ captureRowsSnapshot: () => TSnapshot;
22
+ recordEditTransaction: (beforeSnapshot: TSnapshot) => void;
23
+ readCell: (row: DataGridRowNode<TRow>, columnKey: string) => string;
24
+ readClipboardCell?: (row: DataGridRowNode<TRow>, columnKey: string) => string;
25
+ isCellEditable: (row: DataGridRowNode<TRow>, rowIndex: number, columnKey: string, columnIndex: number) => boolean;
26
+ syncViewport: () => void;
27
+ applyClipboardEdits?: (range: DataGridCopyRange, matrix: string[][], options?: {
28
+ recordHistory?: boolean;
29
+ }) => number;
30
+ buildFillMatrixFromRange?: (range: DataGridCopyRange) => string[][];
31
+ }
32
+ export interface UseDataGridAppClipboardResult {
33
+ pendingClipboardOperation: Ref<DataGridAppPendingClipboardOperation>;
34
+ pendingClipboardRange: Ref<DataGridCopyRange | null>;
35
+ normalizeClipboardRange: (range: DataGridCopyRange) => DataGridCopyRange | null;
36
+ applyClipboardEdits: (range: DataGridCopyRange, matrix: string[][], options?: {
37
+ recordHistory?: boolean;
38
+ }) => number;
39
+ rangesEqual: (left: DataGridCopyRange | null, right: DataGridCopyRange | null) => boolean;
40
+ buildFillMatrixFromRange: (range: DataGridCopyRange) => string[][];
41
+ clearPendingClipboardOperation: (clearSelection: boolean, clearBufferedClipboardPayload?: boolean) => boolean;
42
+ copySelectedCells: (trigger?: "keyboard" | "context-menu") => Promise<boolean>;
43
+ pasteSelectedCells: (trigger?: "keyboard" | "context-menu") => Promise<boolean>;
44
+ cutSelectedCells: (trigger?: "keyboard" | "context-menu") => Promise<boolean>;
45
+ isCellInPendingClipboardRange: (rowOffset: number, columnIndex: number) => boolean;
46
+ isCellOnPendingClipboardEdge: (rowOffset: number, columnIndex: number, edge: DataGridAppPendingClipboardEdge) => boolean;
47
+ }
48
+ export declare function useDataGridAppClipboard<TRow, TSnapshot>(options: UseDataGridAppClipboardOptions<TRow, TSnapshot>): UseDataGridAppClipboardResult;
49
+ //# sourceMappingURL=useDataGridAppClipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDataGridAppClipboard.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppClipboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,258 @@
1
+ import { ref } from "vue";
2
+ import { useDataGridClipboardBridge, useDataGridCopyRangeHelpers } from "../advanced";
3
+ export function useDataGridAppClipboard(options) {
4
+ const getBodyRowAtIndex = (rowIndex) => {
5
+ const runtime = options.runtime;
6
+ return runtime.getBodyRowAtIndex?.(rowIndex) ?? options.runtime.api.rows.get(rowIndex) ?? undefined;
7
+ };
8
+ const copiedSelectionRange = ref(null);
9
+ const lastCopiedPayload = ref("");
10
+ const pendingClipboardOperation = ref("none");
11
+ const pendingClipboardRange = ref(null);
12
+ const normalizeClipboardRange = (range) => {
13
+ const rowCount = options.totalRows.value;
14
+ const columnCount = options.visibleColumns.value.length;
15
+ if (rowCount <= 0 || columnCount <= 0) {
16
+ return null;
17
+ }
18
+ const startRow = Math.max(0, Math.min(rowCount - 1, Math.trunc(Math.min(range.startRow, range.endRow))));
19
+ const endRow = Math.max(0, Math.min(rowCount - 1, Math.trunc(Math.max(range.startRow, range.endRow))));
20
+ const startColumn = Math.max(0, Math.min(columnCount - 1, Math.trunc(Math.min(range.startColumn, range.endColumn))));
21
+ const endColumn = Math.max(0, Math.min(columnCount - 1, Math.trunc(Math.max(range.startColumn, range.endColumn))));
22
+ if (startRow > endRow || startColumn > endColumn) {
23
+ return null;
24
+ }
25
+ return {
26
+ startRow,
27
+ endRow,
28
+ startColumn,
29
+ endColumn,
30
+ };
31
+ };
32
+ const copyRangeHelpers = useDataGridCopyRangeHelpers({
33
+ resolveSelectionRange: options.resolveSelectionRange,
34
+ resolveCurrentCellCoord: options.resolveCurrentCellCoord,
35
+ });
36
+ const clipboardBridge = useDataGridClipboardBridge({
37
+ copiedSelectionRange,
38
+ lastCopiedPayload,
39
+ resolveCopyRange: copyRangeHelpers.resolveCopyRange,
40
+ getRowAtIndex: rowIndex => getBodyRowAtIndex(rowIndex),
41
+ getColumnKeyAtIndex: columnIndex => options.visibleColumns.value[columnIndex]?.key ?? null,
42
+ getCellValue: (row, columnKey) => (options.readClipboardCell
43
+ ? options.readClipboardCell(row, columnKey)
44
+ : options.readCell(row, columnKey)),
45
+ setLastAction: () => undefined,
46
+ closeContextMenu: () => undefined,
47
+ });
48
+ const applyClipboardEdits = options.applyClipboardEdits ?? ((range, matrix, applyOptions = {}) => {
49
+ const normalized = normalizeClipboardRange(range);
50
+ if (!normalized) {
51
+ return 0;
52
+ }
53
+ const matrixHeight = Math.max(1, matrix.length);
54
+ const matrixWidth = Math.max(1, matrix[0]?.length ?? 1);
55
+ const editsByRowId = new Map();
56
+ for (let rowIndex = normalized.startRow; rowIndex <= normalized.endRow; rowIndex += 1) {
57
+ const row = getBodyRowAtIndex(rowIndex);
58
+ if (!row || row.rowId == null || row.kind === "group") {
59
+ continue;
60
+ }
61
+ for (let columnIndex = normalized.startColumn; columnIndex <= normalized.endColumn; columnIndex += 1) {
62
+ const columnKey = options.visibleColumns.value[columnIndex]?.key;
63
+ if (!columnKey) {
64
+ continue;
65
+ }
66
+ if (!options.isCellEditable(row, rowIndex, columnKey, columnIndex)) {
67
+ continue;
68
+ }
69
+ const rowOffset = rowIndex - normalized.startRow;
70
+ const columnOffset = columnIndex - normalized.startColumn;
71
+ const value = matrix[rowOffset % matrixHeight]?.[columnOffset % matrixWidth] ?? "";
72
+ const current = editsByRowId.get(row.rowId) ?? {};
73
+ current[columnKey] = value;
74
+ editsByRowId.set(row.rowId, current);
75
+ }
76
+ }
77
+ if (editsByRowId.size === 0) {
78
+ return 0;
79
+ }
80
+ const beforeSnapshot = applyOptions.recordHistory === false ? null : options.captureRowsSnapshot();
81
+ const updates = Array.from(editsByRowId.entries(), ([rowId, data]) => ({
82
+ rowId,
83
+ data: data,
84
+ }));
85
+ options.runtime.api.rows.applyEdits(updates);
86
+ options.applySelectionRange(normalized);
87
+ if (beforeSnapshot != null) {
88
+ options.recordEditTransaction(beforeSnapshot);
89
+ }
90
+ return editsByRowId.size;
91
+ });
92
+ const rangesEqual = (left, right) => {
93
+ if (!left || !right) {
94
+ return left === right;
95
+ }
96
+ return (left.startRow === right.startRow
97
+ && left.endRow === right.endRow
98
+ && left.startColumn === right.startColumn
99
+ && left.endColumn === right.endColumn);
100
+ };
101
+ const buildFillMatrixFromRange = options.buildFillMatrixFromRange ?? ((range) => {
102
+ const matrix = [];
103
+ for (let rowIndex = range.startRow; rowIndex <= range.endRow; rowIndex += 1) {
104
+ const row = getBodyRowAtIndex(rowIndex);
105
+ if (!row || row.kind === "group") {
106
+ matrix.push([]);
107
+ continue;
108
+ }
109
+ const rowValues = [];
110
+ for (let columnIndex = range.startColumn; columnIndex <= range.endColumn; columnIndex += 1) {
111
+ const columnKey = options.visibleColumns.value[columnIndex]?.key;
112
+ rowValues.push(columnKey ? options.readCell(row, columnKey) : "");
113
+ }
114
+ matrix.push(rowValues);
115
+ }
116
+ return matrix;
117
+ });
118
+ const clearPendingClipboardOperation = (clearSelection, clearBufferedClipboardPayload = false) => {
119
+ if (pendingClipboardOperation.value === "none" && !pendingClipboardRange.value) {
120
+ return false;
121
+ }
122
+ pendingClipboardOperation.value = "none";
123
+ pendingClipboardRange.value = null;
124
+ if (clearBufferedClipboardPayload) {
125
+ copiedSelectionRange.value = null;
126
+ lastCopiedPayload.value = "";
127
+ }
128
+ clipboardBridge.clearCopiedSelectionFlash();
129
+ if (clearSelection) {
130
+ options.clearCellSelection();
131
+ }
132
+ return true;
133
+ };
134
+ const stageClipboardOperation = async (operation, trigger) => {
135
+ if (options.mode.value !== "base") {
136
+ return false;
137
+ }
138
+ const copied = await clipboardBridge.copySelection(trigger);
139
+ if (!copied) {
140
+ return false;
141
+ }
142
+ const rawSourceRange = copyRangeHelpers.resolveCopyRange() ?? copiedSelectionRange.value;
143
+ const sourceRange = rawSourceRange ? normalizeClipboardRange(rawSourceRange) : null;
144
+ if (!sourceRange) {
145
+ return false;
146
+ }
147
+ pendingClipboardOperation.value = operation;
148
+ pendingClipboardRange.value = sourceRange;
149
+ return true;
150
+ };
151
+ const copySelectedCells = async (trigger = "keyboard") => {
152
+ return stageClipboardOperation("copy", trigger);
153
+ };
154
+ const pasteSelectedCells = async (trigger = "keyboard") => {
155
+ if (options.mode.value !== "base") {
156
+ return false;
157
+ }
158
+ const activeCoord = options.resolveCurrentCellCoord();
159
+ if (!activeCoord) {
160
+ return false;
161
+ }
162
+ const payload = await clipboardBridge.readClipboardPayload();
163
+ if (!payload.trim()) {
164
+ return false;
165
+ }
166
+ const matrix = clipboardBridge.parseClipboardMatrix(payload);
167
+ const matrixHeight = Math.max(1, matrix.length);
168
+ const matrixWidth = Math.max(1, matrix[0]?.length ?? 1);
169
+ const pendingOperation = pendingClipboardOperation.value;
170
+ const rawPendingSourceRange = pendingClipboardRange.value ?? copiedSelectionRange.value;
171
+ const pendingSourceRange = rawPendingSourceRange ? normalizeClipboardRange(rawPendingSourceRange) : null;
172
+ const selected = options.resolveSelectionRange();
173
+ const targetRange = selected && matrixHeight === 1 && matrixWidth === 1 && copyRangeHelpers.isMultiCellSelection(selected)
174
+ ? selected
175
+ : {
176
+ startRow: activeCoord.rowIndex,
177
+ endRow: activeCoord.rowIndex + matrixHeight - 1,
178
+ startColumn: activeCoord.columnIndex,
179
+ endColumn: activeCoord.columnIndex + matrixWidth - 1,
180
+ };
181
+ const normalizedTargetRange = normalizeClipboardRange(targetRange);
182
+ if (!normalizedTargetRange) {
183
+ return false;
184
+ }
185
+ if (pendingOperation === "cut" && pendingSourceRange && rangesEqual(pendingSourceRange, normalizedTargetRange)) {
186
+ clearPendingClipboardOperation(false);
187
+ void trigger;
188
+ return true;
189
+ }
190
+ const beforeSnapshot = options.captureRowsSnapshot();
191
+ if (pendingOperation === "cut" && pendingSourceRange) {
192
+ applyClipboardEdits(pendingSourceRange, [[""]], { recordHistory: false });
193
+ }
194
+ const appliedRows = applyClipboardEdits(targetRange, matrix, { recordHistory: false });
195
+ if (appliedRows <= 0) {
196
+ return false;
197
+ }
198
+ options.recordEditTransaction(beforeSnapshot);
199
+ if (pendingOperation !== "none") {
200
+ clearPendingClipboardOperation(false);
201
+ }
202
+ options.applySelectionRange(normalizedTargetRange);
203
+ options.syncViewport();
204
+ void trigger;
205
+ return true;
206
+ };
207
+ const cutSelectedCells = async (trigger = "keyboard") => {
208
+ return stageClipboardOperation("cut", trigger);
209
+ };
210
+ const isCellInPendingClipboardRange = (rowOffset, columnIndex) => {
211
+ if (options.mode.value !== "base" || pendingClipboardOperation.value === "none") {
212
+ return false;
213
+ }
214
+ const range = pendingClipboardRange.value;
215
+ if (!range) {
216
+ return false;
217
+ }
218
+ const rowIndex = options.viewportRowStart.value + rowOffset;
219
+ return (rowIndex >= range.startRow
220
+ && rowIndex <= range.endRow
221
+ && columnIndex >= range.startColumn
222
+ && columnIndex <= range.endColumn);
223
+ };
224
+ const isCellOnPendingClipboardEdge = (rowOffset, columnIndex, edge) => {
225
+ if (!isCellInPendingClipboardRange(rowOffset, columnIndex)) {
226
+ return false;
227
+ }
228
+ const range = pendingClipboardRange.value;
229
+ if (!range) {
230
+ return false;
231
+ }
232
+ const rowIndex = options.viewportRowStart.value + rowOffset;
233
+ if (edge === "top") {
234
+ return rowIndex === range.startRow;
235
+ }
236
+ if (edge === "right") {
237
+ return columnIndex === range.endColumn;
238
+ }
239
+ if (edge === "bottom") {
240
+ return rowIndex === range.endRow;
241
+ }
242
+ return columnIndex === range.startColumn;
243
+ };
244
+ return {
245
+ pendingClipboardOperation,
246
+ pendingClipboardRange,
247
+ normalizeClipboardRange,
248
+ applyClipboardEdits,
249
+ rangesEqual,
250
+ buildFillMatrixFromRange,
251
+ clearPendingClipboardOperation,
252
+ copySelectedCells,
253
+ pasteSelectedCells,
254
+ cutSelectedCells,
255
+ isCellInPendingClipboardRange,
256
+ isCellOnPendingClipboardEdge,
257
+ };
258
+ }
@@ -0,0 +1,19 @@
1
+ import { type ComputedRef } from "vue";
2
+ import type { DataGridAppApplyColumnLayoutPayload, DataGridAppColumnLayoutDraftColumn, DataGridAppColumnLayoutPanelItem, DataGridAppColumnLayoutVisibilityPatch } from "./columnLayoutPanel.types";
3
+ interface UseDataGridAppColumnLayoutPanelOptions {
4
+ resolveColumns: () => readonly DataGridAppColumnLayoutDraftColumn[];
5
+ applyColumnLayout: (payload: DataGridAppApplyColumnLayoutPayload) => void;
6
+ }
7
+ export interface UseDataGridAppColumnLayoutPanelResult {
8
+ isColumnLayoutPanelOpen: ComputedRef<boolean>;
9
+ columnLayoutPanelItems: ComputedRef<readonly DataGridAppColumnLayoutPanelItem[]>;
10
+ openColumnLayoutPanel: () => void;
11
+ cancelColumnLayoutPanel: () => void;
12
+ applyColumnLayoutPanel: () => void;
13
+ moveColumnUp: (key: string) => void;
14
+ moveColumnDown: (key: string) => void;
15
+ updateColumnVisibility: (patch: DataGridAppColumnLayoutVisibilityPatch) => void;
16
+ }
17
+ export declare function useDataGridAppColumnLayoutPanel(options: UseDataGridAppColumnLayoutPanelOptions): UseDataGridAppColumnLayoutPanelResult;
18
+ export {};
19
+ //# sourceMappingURL=useDataGridAppColumnLayoutPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDataGridAppColumnLayoutPanel.d.ts","sourceRoot":"","sources":["../../src/app/useDataGridAppColumnLayoutPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,KAAK,CAAA;AACrD,OAAO,KAAK,EACV,mCAAmC,EACnC,kCAAkC,EAClC,gCAAgC,EAChC,sCAAsC,EACvC,MAAM,2BAA2B,CAAA;AAElC,UAAU,sCAAsC;IAC9C,cAAc,EAAE,MAAM,SAAS,kCAAkC,EAAE,CAAA;IACnE,iBAAiB,EAAE,CAAC,OAAO,EAAE,mCAAmC,KAAK,IAAI,CAAA;CAC1E;AAED,MAAM,WAAW,qCAAqC;IACpD,uBAAuB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7C,sBAAsB,EAAE,WAAW,CAAC,SAAS,gCAAgC,EAAE,CAAC,CAAA;IAChF,qBAAqB,EAAE,MAAM,IAAI,CAAA;IACjC,uBAAuB,EAAE,MAAM,IAAI,CAAA;IACnC,sBAAsB,EAAE,MAAM,IAAI,CAAA;IAClC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,sBAAsB,EAAE,CAAC,KAAK,EAAE,sCAAsC,KAAK,IAAI,CAAA;CAChF;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,qCAAqC,CAqFvC"}