@svgrid/enterprise 3.0.1 → 3.0.3

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 (445) hide show
  1. package/LICENSE +94 -24
  2. package/README.md +36 -4
  3. package/dist/SvAdvancedFilter.svelte +1 -1
  4. package/dist/SvAlertsManager.svelte +2 -1
  5. package/dist/SvBoard.svelte +2 -1
  6. package/dist/SvExportMenu.svelte +4 -1
  7. package/dist/SvExportMenu.svelte.d.ts +0 -13
  8. package/dist/SvExpressionEditor.svelte +3 -3
  9. package/dist/SvFormulaBar.svelte +680 -0
  10. package/dist/SvFormulaBar.svelte.d.ts +69 -0
  11. package/dist/SvGridAlerts.svelte +49 -9
  12. package/dist/SvGridBoard.svelte +13 -8
  13. package/dist/SvGridBulkEditDrawer.svelte +26 -2
  14. package/dist/SvGridEditPanel.svelte +3 -0
  15. package/dist/SvGridScheduler.svelte +69 -40
  16. package/dist/SvGridSelectionBar.svelte +10 -3
  17. package/dist/SvPivotDesigner.svelte +263 -54
  18. package/dist/SvPivotDesigner.svelte.d.ts +27 -20
  19. package/dist/SvRibbonIcon.svelte +46 -0
  20. package/dist/SvRibbonIcon.svelte.d.ts +17 -0
  21. package/dist/SvSchemaChart.svelte +4 -2
  22. package/dist/SvSheet.svelte +7914 -0
  23. package/dist/SvSheet.svelte.d.ts +215 -0
  24. package/dist/SvSheetChartSetup.svelte +151 -0
  25. package/dist/SvSheetChartSetup.svelte.d.ts +18 -0
  26. package/dist/SvSheetComment.svelte +283 -0
  27. package/dist/SvSheetComment.svelte.d.ts +22 -0
  28. package/dist/SvSheetConditionalFormat.svelte +159 -0
  29. package/dist/SvSheetConditionalFormat.svelte.d.ts +14 -0
  30. package/dist/SvSheetDataValidation.svelte +273 -0
  31. package/dist/SvSheetDataValidation.svelte.d.ts +14 -0
  32. package/dist/SvSheetEditRanges.svelte +217 -0
  33. package/dist/SvSheetEditRanges.svelte.d.ts +15 -0
  34. package/dist/SvSheetErrors.svelte +125 -0
  35. package/dist/SvSheetErrors.svelte.d.ts +20 -0
  36. package/dist/SvSheetEvaluate.svelte +133 -0
  37. package/dist/SvSheetEvaluate.svelte.d.ts +15 -0
  38. package/dist/SvSheetFilterMenu.svelte +320 -0
  39. package/dist/SvSheetFilterMenu.svelte.d.ts +22 -0
  40. package/dist/SvSheetFindReplace.svelte +132 -0
  41. package/dist/SvSheetFindReplace.svelte.d.ts +10 -0
  42. package/dist/SvSheetFormatCells.svelte +465 -0
  43. package/dist/SvSheetFormatCells.svelte.d.ts +17 -0
  44. package/dist/SvSheetGoalSeek.svelte +145 -0
  45. package/dist/SvSheetGoalSeek.svelte.d.ts +12 -0
  46. package/dist/SvSheetInsertFunction.svelte +149 -0
  47. package/dist/SvSheetInsertFunction.svelte.d.ts +8 -0
  48. package/dist/SvSheetIteration.svelte +81 -0
  49. package/dist/SvSheetIteration.svelte.d.ts +10 -0
  50. package/dist/SvSheetLink.svelte +99 -0
  51. package/dist/SvSheetLink.svelte.d.ts +17 -0
  52. package/dist/SvSheetListPicker.svelte +91 -0
  53. package/dist/SvSheetListPicker.svelte.d.ts +10 -0
  54. package/dist/SvSheetManageRules.svelte +187 -0
  55. package/dist/SvSheetManageRules.svelte.d.ts +16 -0
  56. package/dist/SvSheetNameManager.svelte +227 -0
  57. package/dist/SvSheetNameManager.svelte.d.ts +11 -0
  58. package/dist/SvSheetPageSetup.svelte +159 -0
  59. package/dist/SvSheetPageSetup.svelte.d.ts +13 -0
  60. package/dist/SvSheetPasteSpecial.svelte +107 -0
  61. package/dist/SvSheetPasteSpecial.svelte.d.ts +12 -0
  62. package/dist/SvSheetPivot.svelte +220 -0
  63. package/dist/SvSheetPivot.svelte.d.ts +21 -0
  64. package/dist/SvSheetProtectSheet.svelte +81 -0
  65. package/dist/SvSheetProtectSheet.svelte.d.ts +11 -0
  66. package/dist/SvSheetRemoveDuplicates.svelte +152 -0
  67. package/dist/SvSheetRemoveDuplicates.svelte.d.ts +12 -0
  68. package/dist/SvSheetRibbon.svelte +1254 -0
  69. package/dist/SvSheetRibbon.svelte.d.ts +34 -0
  70. package/dist/SvSheetSizeDialog.svelte +60 -0
  71. package/dist/SvSheetSizeDialog.svelte.d.ts +11 -0
  72. package/dist/SvSheetSort.svelte +218 -0
  73. package/dist/SvSheetSort.svelte.d.ts +28 -0
  74. package/dist/SvSheetSparklines.svelte +135 -0
  75. package/dist/SvSheetSparklines.svelte.d.ts +14 -0
  76. package/dist/SvSheetTable.svelte +160 -0
  77. package/dist/SvSheetTable.svelte.d.ts +24 -0
  78. package/dist/SvSheetTabs.svelte +571 -0
  79. package/dist/SvSheetTabs.svelte.d.ts +50 -0
  80. package/dist/SvSheetTabs.test-harness.svelte.d.ts +17 -0
  81. package/dist/SvSheetTabs.test-harness.svelte.js +22 -0
  82. package/dist/SvSheetTextToColumns.svelte +172 -0
  83. package/dist/SvSheetTextToColumns.svelte.d.ts +13 -0
  84. package/dist/SvSheetValidationAlert.svelte +85 -0
  85. package/dist/SvSheetValidationAlert.svelte.d.ts +15 -0
  86. package/dist/advanced-filter-enable.js +1 -1
  87. package/dist/alerts/alert-engine.d.ts +6 -0
  88. package/dist/alerts/alert-engine.js +21 -4
  89. package/dist/alerts/alert-formats.js +2 -0
  90. package/dist/alerts/alert-types.d.ts +1 -1
  91. package/dist/alerts.d.ts +1 -1
  92. package/dist/alerts.js +2 -2
  93. package/dist/board.js +2 -2
  94. package/dist/bulk-edit.d.ts +3 -1
  95. package/dist/bulk-edit.js +1 -1
  96. package/dist/cdn/svgrid-enterprise.svelte-external.js +43538 -6539
  97. package/dist/designer/assets/GridMenus-8gTNssgV.js +8 -0
  98. package/dist/designer/assets/SvChartMenu-BDoeqGz6.js +1 -0
  99. package/dist/designer/assets/SvChartMenu-BYO9cYdy.css +1 -0
  100. package/dist/designer/assets/SvDateRangeInput-BBRzrQeg.js +1 -0
  101. package/dist/designer/assets/SvDateTimePicker-DCPg7WGN.js +1 -0
  102. package/dist/designer/assets/SvGridCellEditor-DMoWJjEI.js +4 -0
  103. package/dist/designer/assets/SvGridChart-BgLuPO7I.css +1 -0
  104. package/dist/designer/assets/SvGridChart-Cy1ATrWh.js +3 -0
  105. package/dist/designer/assets/SvGridChartBuilder-08YWWeqY.css +1 -0
  106. package/dist/designer/assets/SvGridChartBuilder-eQ3mn0L9.js +1 -0
  107. package/dist/designer/assets/SvGridChartPanel-4Pc8y5yO.css +1 -0
  108. package/dist/designer/assets/SvGridChartPanel-CATdVc9X.js +4 -0
  109. package/dist/designer/assets/{SvGridChartView-DUc-1RUf.css → SvGridChartView-7msfnWZT.css} +1 -1
  110. package/dist/designer/assets/SvGridChartView-CmsZtCED.js +1 -0
  111. package/dist/designer/assets/SvGridDropdown-Cjz0H-fI.js +1 -0
  112. package/dist/designer/assets/SvListBox-BDS66lmZ.js +110 -0
  113. package/dist/designer/assets/SvMenuList-DJ47ba1h.css +1 -0
  114. package/dist/designer/assets/SvMenuList-Dgq2D5VN.js +1 -0
  115. package/dist/designer/assets/SvTabs-2mHC6oaz.js +1 -0
  116. package/dist/designer/assets/SvTabs-DKmwb5p1.css +1 -0
  117. package/dist/designer/assets/cell-formatting-BbubJTVz.js +1 -0
  118. package/dist/designer/assets/chart-Cn7MnNqA.js +1 -0
  119. package/dist/designer/assets/chart-export-B6bkQ3X8.js +11 -0
  120. package/dist/designer/assets/chart-export-pdf-BbA28-gt.js +11 -0
  121. package/dist/designer/assets/chart-panel-messages-Dz7PTIqT.js +1 -0
  122. package/dist/designer/assets/chart-summary-BD1qYB2R.js +1 -0
  123. package/dist/designer/assets/chart-trend-B8xr5LuD.js +1 -0
  124. package/dist/designer/assets/chart-validate-BMqM-qkF.js +1 -0
  125. package/dist/designer/assets/column-resize-BYDzR1Ve.js +1 -0
  126. package/dist/designer/assets/date-format-B8JbEtIG.js +1 -0
  127. package/dist/designer/assets/date-format-DKS-z0xS.css +1 -0
  128. package/dist/designer/assets/{dismissable-BO547MH9.js → dismissable-ChWRPkoa.js} +1 -1
  129. package/dist/designer/assets/editor-contract-Bpoa7A5g.js +1 -0
  130. package/dist/designer/assets/{export-format-D-eP4b2l.js → export-format-DGckmgKr.js} +1 -1
  131. package/dist/designer/assets/focus-trap-V2-6Fy9I.js +1 -0
  132. package/dist/designer/assets/{index-C_a9Cj8Y.js → index-D5bVbuzI.js} +318 -315
  133. package/dist/designer/assets/index-_JVFxt02.css +1 -0
  134. package/dist/designer/assets/list-option-BP_dWS66.js +1 -0
  135. package/dist/designer/assets/row-resize-BInFWCpr.js +1 -0
  136. package/dist/designer/assets/server-block-cache-CXJKkJpy.js +1 -0
  137. package/dist/designer/assets/src-CITpcm6b.js +1 -0
  138. package/dist/designer/assets/src-DUQ4xE3x.js +58 -0
  139. package/dist/designer/assets/validate-C3B8QKsM.js +1 -0
  140. package/dist/designer/index.html +29 -19
  141. package/dist/export-pdf.d.ts +164 -0
  142. package/dist/export-pdf.js +346 -15
  143. package/dist/export.js +25 -10
  144. package/dist/gantt/SvGridGantt.svelte +2890 -0
  145. package/dist/gantt/SvGridGantt.svelte.d.ts +30 -0
  146. package/dist/gantt/gantt-config.d.ts +73 -0
  147. package/dist/gantt/gantt-config.js +1 -0
  148. package/dist/gantt/gantt-critical-path.d.ts +67 -0
  149. package/dist/gantt/gantt-critical-path.js +207 -0
  150. package/dist/gantt/gantt-model.d.ts +257 -0
  151. package/dist/gantt/gantt-model.js +651 -0
  152. package/dist/gantt/gantt-resources.d.ts +59 -0
  153. package/dist/gantt/gantt-resources.js +71 -0
  154. package/dist/gantt/gantt.d.ts +7 -0
  155. package/dist/gantt/gantt.js +36 -0
  156. package/dist/gantt/index.d.ts +15 -0
  157. package/dist/gantt/index.js +22 -0
  158. package/dist/gantt/timeline-arrows.d.ts +102 -0
  159. package/dist/gantt/timeline-arrows.js +181 -0
  160. package/dist/import.d.ts +2 -2
  161. package/dist/import.js +1 -1
  162. package/dist/index.d.ts +93 -3
  163. package/dist/index.js +107 -3
  164. package/dist/install.js +13 -1
  165. package/dist/license-core.d.ts +17 -1
  166. package/dist/license-core.js +16 -5
  167. package/dist/license.d.ts +18 -2
  168. package/dist/license.js +71 -6
  169. package/dist/node/studio.js +203 -9
  170. package/dist/pivot-chart.d.ts +25 -1
  171. package/dist/pivot-chart.js +25 -69
  172. package/dist/pivot-enable.js +2 -2
  173. package/dist/scheduler-dependencies.d.ts +35 -0
  174. package/dist/scheduler-dependencies.js +36 -1
  175. package/dist/scheduler.js +2 -2
  176. package/dist/selection-bar.js +2 -2
  177. package/dist/server/SvGroupCell.svelte +213 -0
  178. package/dist/server/SvGroupCell.svelte.d.ts +62 -0
  179. package/dist/server/SvRowGroupPanel.svelte +322 -0
  180. package/dist/server/SvRowGroupPanel.svelte.d.ts +37 -0
  181. package/dist/server/enable.d.ts +17 -0
  182. package/dist/server/enable.js +49 -0
  183. package/dist/server/index.d.ts +22 -0
  184. package/dist/server/index.js +24 -0
  185. package/dist/server/messages.d.ts +45 -0
  186. package/dist/server/messages.js +35 -0
  187. package/dist/server/server-group-model.d.ts +104 -0
  188. package/dist/server/server-group-model.js +272 -0
  189. package/dist/server/server-pivot.d.ts +46 -0
  190. package/dist/server/server-pivot.js +57 -0
  191. package/dist/server/server-row-model.d.ts +547 -0
  192. package/dist/server/server-row-model.js +1551 -0
  193. package/dist/server/server-selection.d.ts +99 -0
  194. package/dist/server/server-selection.js +215 -0
  195. package/dist/server/svgrid-adapter.d.ts +155 -0
  196. package/dist/server/svgrid-adapter.js +202 -0
  197. package/dist/sheet/address.d.ts +43 -0
  198. package/dist/sheet/address.js +81 -0
  199. package/dist/sheet/ast.d.ts +138 -0
  200. package/dist/sheet/ast.js +70 -0
  201. package/dist/sheet/auto-filter.d.ts +120 -0
  202. package/dist/sheet/auto-filter.js +295 -0
  203. package/dist/sheet/autocomplete.d.ts +51 -0
  204. package/dist/sheet/autocomplete.js +248 -0
  205. package/dist/sheet/cell-images.d.ts +39 -0
  206. package/dist/sheet/cell-images.js +90 -0
  207. package/dist/sheet/cell-types.d.ts +58 -0
  208. package/dist/sheet/cell-types.js +96 -0
  209. package/dist/sheet/coerce.d.ts +71 -0
  210. package/dist/sheet/coerce.js +289 -0
  211. package/dist/sheet/commands.d.ts +89 -0
  212. package/dist/sheet/commands.js +230 -0
  213. package/dist/sheet/comments.d.ts +63 -0
  214. package/dist/sheet/comments.js +131 -0
  215. package/dist/sheet/conditional-formats.d.ts +167 -0
  216. package/dist/sheet/conditional-formats.js +341 -0
  217. package/dist/sheet/csv.d.ts +32 -0
  218. package/dist/sheet/csv.js +158 -0
  219. package/dist/sheet/culture.d.ts +87 -0
  220. package/dist/sheet/culture.js +247 -0
  221. package/dist/sheet/delta.d.ts +102 -0
  222. package/dist/sheet/delta.js +203 -0
  223. package/dist/sheet/deps.d.ts +104 -0
  224. package/dist/sheet/deps.js +274 -0
  225. package/dist/sheet/document.d.ts +252 -0
  226. package/dist/sheet/document.js +465 -0
  227. package/dist/sheet/edit-keys.d.ts +14 -0
  228. package/dist/sheet/edit-keys.js +40 -0
  229. package/dist/sheet/engine.d.ts +67 -0
  230. package/dist/sheet/engine.js +19 -0
  231. package/dist/sheet/entry.d.ts +35 -0
  232. package/dist/sheet/entry.js +226 -0
  233. package/dist/sheet/error-check.d.ts +49 -0
  234. package/dist/sheet/error-check.js +83 -0
  235. package/dist/sheet/evaluate-steps.d.ts +48 -0
  236. package/dist/sheet/evaluate-steps.js +196 -0
  237. package/dist/sheet/evaluate.d.ts +128 -0
  238. package/dist/sheet/evaluate.js +1049 -0
  239. package/dist/sheet/filter-files.d.ts +37 -0
  240. package/dist/sheet/filter-files.js +465 -0
  241. package/dist/sheet/find-replace.d.ts +62 -0
  242. package/dist/sheet/find-replace.js +152 -0
  243. package/dist/sheet/format-store.d.ts +114 -0
  244. package/dist/sheet/format-store.js +243 -0
  245. package/dist/sheet/freeze.d.ts +54 -0
  246. package/dist/sheet/freeze.js +58 -0
  247. package/dist/sheet/from-rows.d.ts +14 -0
  248. package/dist/sheet/from-rows.js +50 -0
  249. package/dist/sheet/function-catalog.d.ts +10 -0
  250. package/dist/sheet/function-catalog.js +385 -0
  251. package/dist/sheet/functions.d.ts +28 -0
  252. package/dist/sheet/functions.js +634 -0
  253. package/dist/sheet/goal-seek.d.ts +73 -0
  254. package/dist/sheet/goal-seek.js +153 -0
  255. package/dist/sheet/index.d.ts +80 -0
  256. package/dist/sheet/index.js +80 -0
  257. package/dist/sheet/links.d.ts +57 -0
  258. package/dist/sheet/links.js +174 -0
  259. package/dist/sheet/merges.d.ts +71 -0
  260. package/dist/sheet/merges.js +137 -0
  261. package/dist/sheet/messages.d.ts +778 -0
  262. package/dist/sheet/messages.js +806 -0
  263. package/dist/sheet/names.d.ts +31 -0
  264. package/dist/sheet/names.js +87 -0
  265. package/dist/sheet/navigate.d.ts +52 -0
  266. package/dist/sheet/navigate.js +135 -0
  267. package/dist/sheet/number-format.d.ts +110 -0
  268. package/dist/sheet/number-format.js +905 -0
  269. package/dist/sheet/objects.d.ts +106 -0
  270. package/dist/sheet/objects.js +149 -0
  271. package/dist/sheet/ods-document.d.ts +44 -0
  272. package/dist/sheet/ods-document.js +1275 -0
  273. package/dist/sheet/open-file.d.ts +26 -0
  274. package/dist/sheet/open-file.js +56 -0
  275. package/dist/sheet/outline.d.ts +82 -0
  276. package/dist/sheet/outline.js +228 -0
  277. package/dist/sheet/packs/array.d.ts +16 -0
  278. package/dist/sheet/packs/array.js +172 -0
  279. package/dist/sheet/packs/database.d.ts +42 -0
  280. package/dist/sheet/packs/database.js +142 -0
  281. package/dist/sheet/packs/engineering.d.ts +2 -0
  282. package/dist/sheet/packs/engineering.js +296 -0
  283. package/dist/sheet/packs/financial.d.ts +5 -0
  284. package/dist/sheet/packs/financial.js +220 -0
  285. package/dist/sheet/packs/math-stats.d.ts +2 -0
  286. package/dist/sheet/packs/math-stats.js +372 -0
  287. package/dist/sheet/packs/special.d.ts +44 -0
  288. package/dist/sheet/packs/special.js +187 -0
  289. package/dist/sheet/packs/stats-dist.d.ts +2 -0
  290. package/dist/sheet/packs/stats-dist.js +785 -0
  291. package/dist/sheet/packs/text-date.d.ts +2 -0
  292. package/dist/sheet/packs/text-date.js +332 -0
  293. package/dist/sheet/packs/trig.d.ts +2 -0
  294. package/dist/sheet/packs/trig.js +73 -0
  295. package/dist/sheet/page-setup.d.ts +73 -0
  296. package/dist/sheet/page-setup.js +73 -0
  297. package/dist/sheet/palette.d.ts +19 -0
  298. package/dist/sheet/palette.js +84 -0
  299. package/dist/sheet/parse.d.ts +13 -0
  300. package/dist/sheet/parse.js +140 -0
  301. package/dist/sheet/paste-special.d.ts +186 -0
  302. package/dist/sheet/paste-special.js +601 -0
  303. package/dist/sheet/pivot-range.d.ts +160 -0
  304. package/dist/sheet/pivot-range.js +333 -0
  305. package/dist/sheet/presence.d.ts +73 -0
  306. package/dist/sheet/presence.js +79 -0
  307. package/dist/sheet/print.d.ts +104 -0
  308. package/dist/sheet/print.js +169 -0
  309. package/dist/sheet/protection.d.ts +75 -0
  310. package/dist/sheet/protection.js +101 -0
  311. package/dist/sheet/rects.d.ts +45 -0
  312. package/dist/sheet/rects.js +112 -0
  313. package/dist/sheet/refs.d.ts +130 -0
  314. package/dist/sheet/refs.js +413 -0
  315. package/dist/sheet/ribbon-icons.d.ts +31 -0
  316. package/dist/sheet/ribbon-icons.js +536 -0
  317. package/dist/sheet/ribbon.d.ts +173 -0
  318. package/dist/sheet/ribbon.js +1054 -0
  319. package/dist/sheet/sheet-kinds.d.ts +74 -0
  320. package/dist/sheet/sheet-kinds.js +91 -0
  321. package/dist/sheet/shortcuts.d.ts +174 -0
  322. package/dist/sheet/shortcuts.js +674 -0
  323. package/dist/sheet/sort.d.ts +51 -0
  324. package/dist/sheet/sort.js +107 -0
  325. package/dist/sheet/sparklines.d.ts +111 -0
  326. package/dist/sheet/sparklines.js +204 -0
  327. package/dist/sheet/structure.d.ts +87 -0
  328. package/dist/sheet/structure.js +166 -0
  329. package/dist/sheet/table-styles.d.ts +74 -0
  330. package/dist/sheet/table-styles.js +152 -0
  331. package/dist/sheet/tables.d.ts +89 -0
  332. package/dist/sheet/tables.js +178 -0
  333. package/dist/sheet/tokenize.d.ts +71 -0
  334. package/dist/sheet/tokenize.js +355 -0
  335. package/dist/sheet/transforms.d.ts +76 -0
  336. package/dist/sheet/transforms.js +154 -0
  337. package/dist/sheet/validation.d.ts +108 -0
  338. package/dist/sheet/validation.js +278 -0
  339. package/dist/sheet/workbook.d.ts +217 -0
  340. package/dist/sheet/workbook.js +1120 -0
  341. package/dist/sheet/xls-cfb.d.ts +32 -0
  342. package/dist/sheet/xls-cfb.js +290 -0
  343. package/dist/sheet/xls-document.d.ts +10 -0
  344. package/dist/sheet/xls-document.js +1243 -0
  345. package/dist/sheet/xls-formula.d.ts +40 -0
  346. package/dist/sheet/xls-formula.js +569 -0
  347. package/dist/sheet/xlsx-document.d.ts +108 -0
  348. package/dist/sheet/xlsx-document.js +1849 -0
  349. package/dist/sheet/xlsx-drawing.d.ts +99 -0
  350. package/dist/sheet/xlsx-drawing.js +420 -0
  351. package/dist/sheet-enable.d.ts +6 -0
  352. package/dist/sheet-enable.js +45 -0
  353. package/dist/sheet-text.d.ts +7 -0
  354. package/dist/sheet-text.js +29 -0
  355. package/dist/sources/auth-supabase.js +2 -2
  356. package/dist/sources/realtime-supabase.js +2 -2
  357. package/dist/sources/rest.d.ts +6 -2
  358. package/dist/sources/rest.js +42 -7
  359. package/dist/sources/supabase.d.ts +10 -1
  360. package/dist/sources/supabase.js +73 -40
  361. package/dist/studio/emit-project.js +14 -1
  362. package/dist/studio/index.js +1 -1
  363. package/dist/studio/project.d.ts +11 -2
  364. package/dist/studio/project.js +5 -2
  365. package/dist/studio/ui-components.generated.js +170 -3
  366. package/dist/sveltekit/in-memory.d.ts +2 -2
  367. package/dist/sveltekit/in-memory.js +125 -4
  368. package/dist/sveltekit/index.d.ts +1 -1
  369. package/dist/sveltekit/index.js +1 -1
  370. package/dist/sveltekit/query-plan.d.ts +50 -4
  371. package/dist/sveltekit/query-plan.js +25 -3
  372. package/dist/sveltekit/sql-source.d.ts +6 -0
  373. package/dist/sveltekit/sql-source.js +34 -6
  374. package/dist/sveltekit/sql.d.ts +31 -0
  375. package/dist/sveltekit/sql.js +135 -25
  376. package/dist/sveltekit/transport.d.ts +10 -2
  377. package/dist/sveltekit/transport.js +30 -6
  378. package/dist/upgrade-prompt.d.ts +1 -1
  379. package/dist/version.d.ts +1 -1
  380. package/dist/version.js +1 -1
  381. package/dist/watermark.js +35 -2
  382. package/dist/wc/GridMenus-By9vPuq0.js +1088 -0
  383. package/dist/wc/SvChartMenu-CQNrQGT2.js +308 -0
  384. package/dist/wc/SvDateRangeInput-DR6m7bSM.js +199 -0
  385. package/dist/wc/SvDateTimePicker-D-vRnaMo.js +771 -0
  386. package/dist/wc/SvField-B_kurx_P.js +149 -0
  387. package/dist/wc/SvGrid.helpers-BdVDtjUm.js +135 -0
  388. package/dist/wc/SvGridCellEditor-Bnf1Kr5C.js +560 -0
  389. package/dist/wc/SvGridChart-BqUJh2pG.js +3572 -0
  390. package/dist/wc/SvGridChartBuilder-CGycC5cn.js +988 -0
  391. package/dist/wc/SvGridChartPanel-CRnizsHD.js +1746 -0
  392. package/dist/wc/SvGridChartView-D1pa_xMy.js +47 -0
  393. package/dist/wc/SvGridDropdown-45WsObLL.js +259 -0
  394. package/dist/wc/SvModal-DrfOYYyX.js +189 -0
  395. package/dist/wc/cell-formatting-CBfgahv1.js +86 -0
  396. package/dist/wc/chart-6OXlybVT.js +4341 -0
  397. package/dist/wc/chart-export-CeSADGfi.js +135 -0
  398. package/dist/wc/chart-export-pdf-BGko7MER.js +104 -0
  399. package/dist/wc/chart-summary-2m3ia1-n.js +137 -0
  400. package/dist/wc/chart-trend-CQOQtTMl.js +50 -0
  401. package/dist/wc/chart-validate-CD6ptiwg.js +180 -0
  402. package/dist/wc/client-DQIzjDBG.js +3064 -0
  403. package/dist/wc/column-resize-DUPgynvc.js +101 -0
  404. package/dist/wc/date-format-DS-z_h9v.js +1130 -0
  405. package/dist/wc/dismissable-CQ6XFXsk.js +45 -0
  406. package/dist/wc/editor-contract-peBDxir_.js +22 -0
  407. package/dist/wc/editor-registry-DxGKqcvx.js +24 -0
  408. package/dist/wc/focus-trap-Dbb2tJxb.js +65 -0
  409. package/dist/wc/list-option-DrRyivWp.js +82 -0
  410. package/dist/wc/popover-WsGlvtQv.js +69 -0
  411. package/dist/wc/positioning-BiKLfu1E.js +112 -0
  412. package/dist/wc/react.d.ts +41 -0
  413. package/dist/wc/react.js +90 -0
  414. package/dist/wc/rolldown-runtime-Dy4uBu1J.js +11 -0
  415. package/dist/wc/row-drag-touch-CycRR65n.js +93 -0
  416. package/dist/wc/row-resize-limG_N1z.js +111 -0
  417. package/dist/wc/sv-sheet-element.d.ts +97 -0
  418. package/dist/wc/sv-sheet-element.js +44213 -0
  419. package/dist/wc/svelte-virtualizer.svelte-CXtQy2TQ.js +530 -0
  420. package/dist/wc/validate-BqDthkNr.js +88 -0
  421. package/dist/wc/vue.d.ts +31 -0
  422. package/dist/wc/vue.js +75 -0
  423. package/package.json +36 -6
  424. package/dist/designer/assets/GridMenus-B1JtIN21.js +0 -8
  425. package/dist/designer/assets/SvDateRangeInput-CjO7nn_x.js +0 -1
  426. package/dist/designer/assets/SvDateTimePicker-ByBD_ov6.js +0 -1
  427. package/dist/designer/assets/SvField-YDLipR6O.css +0 -1
  428. package/dist/designer/assets/SvField-cj1PFNgZ.js +0 -1
  429. package/dist/designer/assets/SvGridCellEditor-0W1L2hJ1.js +0 -2
  430. package/dist/designer/assets/SvGridChart-DBOR4xcz.js +0 -2
  431. package/dist/designer/assets/SvGridChart-fkMWeh1J.css +0 -1
  432. package/dist/designer/assets/SvGridChartPanel-symrhNnR.js +0 -11
  433. package/dist/designer/assets/SvGridChartView-BmRxq6mU.js +0 -1
  434. package/dist/designer/assets/SvGridDropdown-Bb3HH2Aj.js +0 -1
  435. package/dist/designer/assets/SvListBox-1oUF6Iav.js +0 -110
  436. package/dist/designer/assets/cell-formatting-wr5wm7US.js +0 -1
  437. package/dist/designer/assets/chart-DXFganU8.js +0 -1
  438. package/dist/designer/assets/column-resize-C_inr5zT.js +0 -1
  439. package/dist/designer/assets/date-format-DGagAqRc.css +0 -1
  440. package/dist/designer/assets/date-format-onlYDsrY.js +0 -1
  441. package/dist/designer/assets/easing-zaypKrr0.js +0 -3
  442. package/dist/designer/assets/index-k2stW6L8.css +0 -1
  443. package/dist/designer/assets/row-resize-B0FWHcNr.js +0 -1
  444. package/dist/designer/assets/src-D9p27OGC.js +0 -58
  445. package/dist/designer/assets/validate-h-aslRV9.js +0 -1
@@ -0,0 +1,547 @@
1
+ /**
2
+ * The Server-Side Row Model.
3
+ *
4
+ * One `getRows` contract, any depth of grouping or tree, and every level
5
+ * scrolls: the top level is one block cache, each expanded group is another,
6
+ * and the rows the user has not scrolled to are placeholders that cost
7
+ * nothing to hold. Sorting, filtering, expanding, refreshing, transactions
8
+ * (Phase 4) and selection across rows that were never loaded (Phase 5) all
9
+ * hang off this one object, and `<SvGrid rowModel={ctl} />` wires the lot.
10
+ *
11
+ * What the free grid gives it: the datasource contract (`ServerRequest` /
12
+ * `ServerResult`), the block cache (`createBlockCache`), the placeholder mark
13
+ * (`createRowPlaceholder`) and the four seams `rowModel` plugs into. What this
14
+ * file adds is the TREE: a store per route, a flatten that splices expanded
15
+ * groups' children into one display list, and the rules for which stores a
16
+ * sort, a filter or a refresh actually touches.
17
+ *
18
+ * Headless and framework-agnostic on purpose. Nothing here imports Svelte;
19
+ * `onChange` and `subscribe` are how the outside learns anything changed.
20
+ *
21
+ * `createServerGroupModel` (the previous model, block-append with a "Load N
22
+ * more" button) is still exported for anyone on it; this one supersedes it.
23
+ */
24
+ import { type BlockState, type GridFilterState, type GridRowModel, type ServerAggregation, type ServerDataSource, type ServerDisplayRow, type ServerFilterModel, type ServerGroupRow, type ServerLeafRow, type ServerPlaceholderRow, type ServerSortModel } from '@svgrid/grid/server';
25
+ import { type PivotResultColumnOptions } from './server-pivot.js';
26
+ import { type ServerGroupMessages } from './messages.js';
27
+ import { type ServerGroupSelectionNode, type ServerSelectionGroupMode, type ServerSelectionModel, type ServerSelectionState } from './server-selection.js';
28
+ import { type CallbackGroupSelectionState, type CallbackSelectionState } from './svgrid-adapter.js';
29
+ /** Per-level cache settings, from `levelParams`. */
30
+ export type ServerLevelParams = {
31
+ /** Rows per request at this level. Default: the model's `blockSize`. */
32
+ blockSize?: number;
33
+ /** Loaded blocks to keep at this level. Default: the model's `maxBlocksInCache`. */
34
+ maxBlocksInCache?: number;
35
+ /**
36
+ * `false` loads the whole level as soon as it opens (block by block, still
37
+ * under the concurrency cap) instead of waiting for the viewport. A level
38
+ * that is fully loaded can also be sorted in the browser - see
39
+ * `clientSideSort`.
40
+ */
41
+ infinite?: boolean;
42
+ /**
43
+ * Children arrive one block at a time behind a "Load N more" row instead
44
+ * of by scroll: the level shows what it has loaded, then a `more` row
45
+ * while the server holds more. `loadMoreChildren(route)` - or the row's
46
+ * own toggle - fetches the next block. Wins over `infinite`.
47
+ */
48
+ loadMore?: boolean;
49
+ /**
50
+ * Rows this level claims before its first block lands, as placeholders.
51
+ * Default: the model's `skeletonRows`. Set it to the count you expect at
52
+ * the root of flat data and `api.scrollToRow(900000)` works before
53
+ * anything has loaded: the scrollbar is already the right length, the
54
+ * rows there are placeholders, and the block under them is what loads.
55
+ */
56
+ initialRowCount?: number;
57
+ };
58
+ /** Paging the top level instead of scrolling it. See `ServerRowModelOptions.pagination`. */
59
+ export type ServerRowModelPaginationOptions = {
60
+ /** Rows per page. Default 100. */
61
+ pageSize?: number;
62
+ /** Choices for the footer's page-size selector. */
63
+ pageSizes?: number[];
64
+ /**
65
+ * Fit the page to the grid: as many rows as its body shows without
66
+ * scrolling, re-measured when the grid resizes. `pageSize` is then the
67
+ * size until the first measurement.
68
+ */
69
+ autoPageSize?: boolean;
70
+ /**
71
+ * Count every row of the flattened tree towards the page, children
72
+ * included. Off, a page is `pageSize` top-level rows, each shown with
73
+ * whatever is open beneath it.
74
+ */
75
+ paginateChildRows?: boolean;
76
+ };
77
+ /** Where the pager stands. */
78
+ export type ServerRowModelPagination = {
79
+ pageIndex: number;
80
+ pageSize: number;
81
+ /** Top-level rows, or flattened rows with `paginateChildRows`. */
82
+ rowCount: number;
83
+ pageCount: number;
84
+ };
85
+ /** Where a route's rows stand, for diagnostics. */
86
+ export type ServerLevelState = {
87
+ route: string[];
88
+ level: number;
89
+ rowCount: number | null;
90
+ lastRowKnown: boolean;
91
+ loading: boolean;
92
+ failedBlocks: number[];
93
+ blocks: BlockState[];
94
+ };
95
+ /** Everything `createServerRowModel` is built from: grouping, tree, pivot, blocks per level, totals, paging, selection, transactions and events. */
96
+ export type ServerRowModelOptions<TData> = {
97
+ /** Columns to group on, outer to inner. Leave empty for a flat list or a tree. */
98
+ groupBy?: string[];
99
+ /** Value columns to roll up per group. */
100
+ aggregations?: ServerAggregation[];
101
+ /**
102
+ * Server-side pivot: the columns whose distinct values become columns.
103
+ * Takes effect with `pivotMode`; see `setPivot`.
104
+ */
105
+ pivotBy?: string[];
106
+ pivotMode?: boolean;
107
+ /**
108
+ * In pivot mode, a `Total` header group after the pivot keys with the
109
+ * row's plain aggregates (`amount` beside `2024_amount`, `2025_amount`).
110
+ * The backend puts those fields on every group row and on the grand
111
+ * total in pivot mode; the reference sources do. A string is the label.
112
+ */
113
+ pivotRowTotals?: boolean | string;
114
+ /** How a backend joins pivot keys and the value column into a field name. Default `_`. */
115
+ pivotFieldSeparator?: string;
116
+ /** Post-process each generated pivot value column. */
117
+ pivotResultColumn?: PivotResultColumnOptions['pivotResultColumn'];
118
+ /**
119
+ * Columns to put BEFORE the generated pivot columns in pivot mode -
120
+ * the group column with its expander, typically. The pivot columns
121
+ * replace the grid's `columns` wholesale, so this is where the
122
+ * app's own leading columns come back in.
123
+ */
124
+ pivotLeadingColumns?: ReadonlyArray<unknown>;
125
+ /**
126
+ * Self-referential tree: each row is a node whose children load on expand.
127
+ * Needs `getRowId` (the node id, which builds the `groupKeys` path) and
128
+ * `hasChildren`.
129
+ */
130
+ treeData?: boolean;
131
+ /** Stable row id. Needed for tree data, selection and transactions. */
132
+ getRowId?: (row: TData) => string;
133
+ /** Tree data: whether a node can be expanded. */
134
+ hasChildren?: (row: TData) => boolean;
135
+ /**
136
+ * How many rows a group holds, read off its response row. Shown beside the
137
+ * key, and used to size the group's scrollbar before its first block lands.
138
+ */
139
+ childCount?: (row: TData) => number | undefined;
140
+ /** Open a group as soon as it arrives. Receives the route and the row. */
141
+ isGroupOpenByDefault?: (route: string[], row: TData) => boolean;
142
+ /** Per-level cache settings. Called once per route when its store is created. */
143
+ levelParams?: (level: number, route: string[]) => ServerLevelParams;
144
+ /** Rows per request, unless `levelParams` says otherwise. Default 100. */
145
+ blockSize?: number;
146
+ /** Loaded blocks to keep per level, unless `levelParams` says otherwise. Unlimited by default. */
147
+ maxBlocksInCache?: number;
148
+ /** Requests open at once, across every level. Default 2. */
149
+ maxConcurrentRequests?: number;
150
+ /** Wait for the scroll to settle this long before fetching. Default 0. */
151
+ blockLoadDebounceMs?: number;
152
+ /**
153
+ * Placeholder rows shown for a level before its first block lands - so an
154
+ * expand never opens onto nothing. Default 3.
155
+ */
156
+ skeletonRows?: number;
157
+ /**
158
+ * Page the top level instead of scrolling it. Blocks stay independent of
159
+ * pages: a page of 20 over blocks of 100 costs one request per five
160
+ * pages. Omit for infinite scrolling.
161
+ */
162
+ pagination?: ServerRowModelPaginationOptions;
163
+ /** Emit a subtotal "footer" row after each expanded group's children. */
164
+ groupFooters?: boolean;
165
+ /**
166
+ * A grand-total row across the whole result. The root request then carries
167
+ * `needsGrandTotal` and the source answers with `grandTotal`. `top` /
168
+ * `bottom` put it in the scrolling list; the pinned variants hand it to the
169
+ * grid's pinned rows so it stays in view.
170
+ */
171
+ grandTotalRow?: 'top' | 'bottom' | 'pinnedTop' | 'pinnedBottom';
172
+ /** Drop a group's cached children when it is collapsed. Default false. */
173
+ purgeClosedGroups?: boolean;
174
+ /**
175
+ * Hide a group row once it is open, so its children stand at its level.
176
+ * The classic "multi-column group" look.
177
+ */
178
+ hideOpenParents?: boolean;
179
+ /**
180
+ * Treat a group whose key is empty as unbalanced: always open, its group
181
+ * row hidden, its rows shown among the siblings. Costs one extra request
182
+ * per such group.
183
+ */
184
+ allowUnbalancedGroups?: boolean;
185
+ /**
186
+ * Which levels a sort re-fetches. The default is selective: a column that
187
+ * is neither grouped nor aggregated only re-orders leaves; a grouped column
188
+ * re-fetches its own level; an aggregated column re-fetches everything.
189
+ * `true` always re-fetches everything.
190
+ */
191
+ sortAllLevels?: boolean;
192
+ /**
193
+ * Sort a fully loaded level in the browser instead of asking the server.
194
+ * Plain type-aware comparison; a backend with collation rules of its own
195
+ * should leave this off.
196
+ */
197
+ clientSideSort?: boolean;
198
+ /**
199
+ * Re-fetch only the levels a filter touches instead of everything. Cheaper,
200
+ * but the levels above keep their old counts and aggregates, so a group can
201
+ * end up showing zero children. A filter on an aggregated column always
202
+ * re-fetches everything.
203
+ */
204
+ onlyRefreshFilteredGroups?: boolean;
205
+ /**
206
+ * Row selection as a RULE rather than a list of ids, so "select all" can
207
+ * mean a million rows the grid never loaded. `self` treats a group row as
208
+ * one row; `descendants` makes ticking a group select everything beneath
209
+ * it. Off by default; the grid then keeps selection itself, over loaded
210
+ * rows only. See `ctl.selection`, `getSelectionState`, `bulkUpdate`.
211
+ */
212
+ selection?: {
213
+ groupSelects?: ServerSelectionGroupMode;
214
+ };
215
+ /**
216
+ * Apply `updateRow` and `deleteRow` to the loaded rows before the server
217
+ * answers, and put them back if it rejects: the same contract as the
218
+ * free controller's `optimistic`. A create waits for the server either
219
+ * way, since the row has no id until then. Off by default, so a cell
220
+ * shows a new value only once the server has it.
221
+ */
222
+ optimistic?: boolean;
223
+ /** Forwarded on every request as `ServerRequest.context`. Keep it serialisable. */
224
+ context?: unknown;
225
+ /** Distinct values for a column's set filter, for `<SvGrid rowModel>` to use. */
226
+ filterValues?: (columnId: string) => Promise<Array<string>>;
227
+ /** Log every block requested, loaded, failed and evicted, with its route. */
228
+ debug?: boolean;
229
+ /**
230
+ * Veto a transaction. Return false and it is reported `cancelled` and
231
+ * nothing changes - the hook for "a refresh is in flight, drop this".
232
+ */
233
+ isApplyTransaction?: (transaction: ServerTransaction<TData>) => boolean;
234
+ /** How long `applyTransactionAsync` batches before flushing. Default 50 ms. */
235
+ asyncTransactionWaitMs?: number;
236
+ onChange?: (state: ServerRowModelState<TData>) => void;
237
+ /** A batch of async transactions was applied, in order. */
238
+ onAsyncTransactionsFlushed?: (results: ServerTransactionResult[]) => void;
239
+ /** A level finished re-fetching after `refresh()` (not after a purge). */
240
+ onStoreRefreshed?: (route: string[]) => void;
241
+ /** A group was opened, by the user or by `isGroupOpenByDefault`. */
242
+ onGroupOpened?: (route: string[]) => void;
243
+ /** A block failed to load. The row shows a Retry; this is for logging. */
244
+ onLoadError?: (route: string[], error: unknown) => void;
245
+ };
246
+ /** What this model puts on screen: every shared display row, plus placeholders. */
247
+ export type ServerRowModelDisplayRow<TData> = ServerDisplayRow<TData> | ServerPlaceholderRow;
248
+ /** What the model emits on every change: the flattened display list, the grid rows, the counts and the current layout. */
249
+ export type ServerRowModelState<TData> = {
250
+ /**
251
+ * The flattened tree, one entry per row the grid shows: groups with their
252
+ * expanded children spliced in, footers, the grand total, and a shared
253
+ * placeholder object for every row not yet loaded.
254
+ */
255
+ displayRows: ReadonlyArray<ServerRowModelDisplayRow<TData>>;
256
+ /** `displayRows` mapped to grid rows - each row's data spread, plus `__group`. */
257
+ gridRows: ReadonlyArray<ServerRowModelGridRow<TData>>;
258
+ groupBy: string[];
259
+ aggregations: ServerAggregation[];
260
+ /** Rows at the top level, or null until the root has answered. */
261
+ rowCount: number | null;
262
+ /** True while the root has never loaded. */
263
+ loading: boolean;
264
+ /** True while a `createRow`, `updateRow` or `deleteRow` is in flight. */
265
+ saving: boolean;
266
+ /** The rejection from the last failed top-level fetch, else null. */
267
+ error: unknown;
268
+ sortModel: ServerSortModel;
269
+ filterModel: ServerFilterModel;
270
+ /** Ids (JSON of the route) of the expanded groups. */
271
+ expandedGroups: string[];
272
+ /** Ids (by `getRowId`) of the leaves whose detail panel is open. */
273
+ openDetails: string[];
274
+ /** The grand-total row, when one is configured and has arrived. */
275
+ grandTotal: TData | null;
276
+ pivotBy: string[];
277
+ pivotMode: boolean;
278
+ /** The pivoted value fields the backend has reported so far, in pivot mode. */
279
+ pivotResultFields: string[];
280
+ /** The pager, or null when the top level scrolls. */
281
+ pagination: ServerRowModelPagination | null;
282
+ };
283
+ /**
284
+ * What the grid renders: the row's own fields at the top level (so a plain
285
+ * `field` column shows a subtotal on a group row and the value on a leaf)
286
+ * plus the display row under `__group`. Placeholders carry only the marker.
287
+ */
288
+ export type ServerRowModelGridRow<TData> = (TData | Record<string, never>) & {
289
+ __group: ServerRowModelDisplayRow<TData>;
290
+ };
291
+ /**
292
+ * Add, update and remove rows in one level without a request.
293
+ *
294
+ * Rows are matched by `getRowId` at a leaf level, and by the group column's
295
+ * value at a group level (a group row IS its key). The grand total answers
296
+ * to the fixed id `sv-grand-total`.
297
+ */
298
+ export type ServerTransaction<TData> = {
299
+ /** The level to apply to. Omit for the top level. */
300
+ route?: string[];
301
+ add?: ReadonlyArray<TData>;
302
+ /** Where `add` goes. Default: the end of the level. */
303
+ addIndex?: number;
304
+ update?: ReadonlyArray<TData>;
305
+ /** Rows to remove, or their ids. */
306
+ remove?: ReadonlyArray<TData | string>;
307
+ /**
308
+ * The level's row count afterwards, when you know it better than the
309
+ * arithmetic does - a delete that also removed rows outside the cache,
310
+ * say. Applied last.
311
+ */
312
+ rowCount?: number;
313
+ };
314
+ /**
315
+ * How a transaction went. `applied`: every part that could be applied was.
316
+ * `storeNotFound`: no level exists for `route` (nothing has been expanded
317
+ * there). `cancelled`: `isApplyTransaction` said no. `storeLoading`: the
318
+ * level's first block is still in flight. `storeWaitingToLoad`: the level
319
+ * exists but nothing has been requested from it yet. `storeLoadingFailed`:
320
+ * the level's load failed; retry it before applying.
321
+ */
322
+ export type ServerTransactionStatus = 'applied' | 'storeNotFound' | 'cancelled' | 'storeLoading' | 'storeWaitingToLoad' | 'storeLoadingFailed';
323
+ /** What `applyTransaction` returns: the status and the ids it placed, patched and removed. */
324
+ export type ServerTransactionResult = {
325
+ status: ServerTransactionStatus;
326
+ /** Ids of the rows placed in the cache. */
327
+ add: string[];
328
+ /** Ids of the rows found and updated. */
329
+ update: string[];
330
+ /** Ids of the rows found and removed. */
331
+ remove: string[];
332
+ };
333
+ /** What `refresh` takes: the level to re-read (`[]` is the root) and whether to drop its cache first. */
334
+ export type RefreshOptions = {
335
+ /** The group whose children to reload. Omit for the top level. */
336
+ route?: string[];
337
+ /**
338
+ * Drop the cache for that level and everything beneath it and start over.
339
+ * Without it the loaded blocks re-fetch in place: the count, the scroll
340
+ * position and every expanded descendant survive.
341
+ */
342
+ purge?: boolean;
343
+ };
344
+ /** The Server-Side Row Model: the controller surface plus the `GridRowModel` shape, so one object drives the grid through `rowModel`. */
345
+ export type ServerRowModel<TData> = GridRowModel<ServerRowModelGridRow<TData>> & {
346
+ /** The group accessors the grid's treegrid keyboard and `SvGroupCell` use. Always present on this model. */
347
+ group: NonNullable<GridRowModel<ServerRowModelGridRow<TData>>['group']>;
348
+ /** Load the top level, or reload a level. See {@link RefreshOptions}. */
349
+ refresh(options?: RefreshOptions): void;
350
+ /** Re-fetch every block that failed, at every level. */
351
+ retryLoads(): void;
352
+ /** Replace the sort and re-fetch the levels it affects. Takes either filter shape. */
353
+ setSort(sortModel: ServerSortModel): void;
354
+ setFilter(filterModel: ServerFilterModel | GridFilterState): void;
355
+ /** Change the grouping. Collapses everything and reloads the top level. */
356
+ setGroupBy(groupBy: string[]): void;
357
+ /** Change the aggregations. Reloads every level. */
358
+ setAggregations(aggregations: ServerAggregation[]): void;
359
+ /**
360
+ * Change the pivot columns and / or switch pivot mode. Reloads every
361
+ * level. In pivot mode the innermost group level cannot be opened: its
362
+ * rows are the pivoted aggregates, and there are no leaves under them.
363
+ */
364
+ setPivot(pivot: {
365
+ pivotBy?: string[];
366
+ pivotMode?: boolean;
367
+ }): void;
368
+ /**
369
+ * Change any of group-by, aggregations and pivot in one go, with ONE
370
+ * reload - what a designer sends on Apply. A field left out keeps its
371
+ * value; a layout equal to the current one does nothing at all.
372
+ */
373
+ setLayout(layout: {
374
+ groupBy?: string[];
375
+ aggregations?: ServerAggregation[];
376
+ pivotBy?: string[];
377
+ pivotMode?: boolean;
378
+ pivotRowTotals?: boolean | string;
379
+ }): void;
380
+ /** Go to a page (clamped to what exists). No-op without `pagination`. */
381
+ setPage(pageIndex: number): void;
382
+ /** Change the page size; the current first row stays on screen. */
383
+ setPageSize(pageSize: number): void;
384
+ /** Fetch the next block of a `loadMore` level (the "Load N more" row). */
385
+ loadMoreChildren(route: string[]): void;
386
+ toggleGroup(row: ServerGroupRow<TData>): void;
387
+ expandGroup(route: string[]): void;
388
+ collapseGroup(route: string[]): void;
389
+ /**
390
+ * Open every group. With `includeUnloaded`, groups that arrive later open
391
+ * on arrival too, until the next `collapseAll()`.
392
+ */
393
+ expandAll(options?: {
394
+ includeUnloaded?: boolean;
395
+ }): void;
396
+ collapseAll(): void;
397
+ isExpanded(route: string[]): boolean;
398
+ /**
399
+ * Master-detail: open or close the detail panel under a leaf, by the id
400
+ * `getRowId` gives it. The panel is a display row of kind `detail` right
401
+ * under its leaf, carrying the leaf as `master`; mark it for the grid
402
+ * with `isDetailRow: (row) => row.__group?.kind === 'detail'` and draw
403
+ * it with `renderDetailRow` (give `detailRowHeight` under
404
+ * virtualization). Closes with the group that holds the leaf, and goes
405
+ * when the leaf is removed.
406
+ */
407
+ toggleDetail(id: string, open?: boolean): void;
408
+ isDetailOpen(id: string): boolean;
409
+ /** Close every open detail panel. */
410
+ closeAllDetails(): void;
411
+ /**
412
+ * Write rows straight into a level, bypassing the datasource: children
413
+ * that came with their parent, a socket that pushed a whole level. Creates
414
+ * the level's store if it does not exist. `startRow` must sit on a block
415
+ * boundary for that level.
416
+ */
417
+ applyRowData(input: {
418
+ route?: string[];
419
+ rows: ReadonlyArray<TData>;
420
+ rowCount?: number;
421
+ startRow?: number;
422
+ }): void;
423
+ /** Apply a transaction now. See {@link ServerTransaction}. */
424
+ applyTransaction(transaction: ServerTransaction<TData>): ServerTransactionResult;
425
+ /**
426
+ * Queue a transaction and apply it with whatever else arrives within
427
+ * `asyncTransactionWaitMs`, so a burst of updates re-renders once. A
428
+ * transaction whose level is still loading waits for it. The callback
429
+ * gets that transaction's result when the batch flushes.
430
+ */
431
+ applyTransactionAsync(transaction: ServerTransaction<TData>, callback?: (result: ServerTransactionResult) => void): void;
432
+ /** Apply every queued async transaction now. */
433
+ flushAsyncTransactions(): void;
434
+ /**
435
+ * Patch one loaded row in place, on whatever level holds it, without a
436
+ * request and without changing its id. The path for a socket-driven
437
+ * tick; `applyTransaction` is for adding and removing. `replace` swaps
438
+ * the whole row instead of merging the patch. Returns whether it was found.
439
+ */
440
+ updateRowData(id: string, patch: Partial<TData>, options?: {
441
+ replace?: boolean;
442
+ }): boolean;
443
+ /**
444
+ * Write through the source, then update the cache with what it returned
445
+ * (no refetch). Throws when the source lacks the method. Aggregates are
446
+ * NOT recomputed - `refresh({ route })` the parent when a subtotal must
447
+ * follow. A created row lands at `addIndex` within its level, else at the
448
+ * end, which in a level of thousands is out of sight: pass `0` for the
449
+ * top, or the index a deleted row had to put it back where it was.
450
+ */
451
+ createRow(input: Partial<TData>, route?: string[], addIndex?: number): Promise<TData>;
452
+ updateRow(id: string, patch: Partial<TData>): Promise<TData>;
453
+ deleteRow(id: string): Promise<void>;
454
+ /**
455
+ * Move a loaded row to another level: a file dragged into a folder, an
456
+ * order into another region. With `patch` the move is written through
457
+ * `source.updateRow` first (the parent field, typically) and the saved
458
+ * row is what lands; without it the cache alone moves. The row leaves
459
+ * its level as a transaction and joins `toRoute` at `addIndex` (the end
460
+ * by default). A group takes its open children with it in the sense
461
+ * that their cached level is dropped: they are read again under the
462
+ * new route. A target level nothing has opened reports `storeNotFound`
463
+ * and holds the row once it opens; the parent counts follow either way.
464
+ */
465
+ moveRow(id: string, toRoute: string[], options?: {
466
+ patch?: Partial<TData>;
467
+ addIndex?: number;
468
+ }): Promise<{
469
+ row: TData;
470
+ status: ServerTransactionStatus;
471
+ }>;
472
+ /** Tell the model which display rows are on screen. `<SvGrid rowModel>` does this. */
473
+ setViewport(startIndex: number, endIndex: number): void;
474
+ /** The selection rule, when `selection` was configured. */
475
+ readonly selectionModel: ServerSelectionModel | null;
476
+ /** The rule as plain data, for saving or for sending to a bulk endpoint. */
477
+ getSelectionState(): ServerSelectionState | ServerGroupSelectionNode | null;
478
+ /**
479
+ * Restore a saved rule. The callback-style shape (`toggledNodes`) is
480
+ * accepted as it is, with group ids read as group keys; pass it through
481
+ * `fromCallbackSelectionState(state, mapping)` first when they differ.
482
+ */
483
+ setSelectionState(state: ServerSelectionState | ServerGroupSelectionNode | CallbackSelectionState | CallbackGroupSelectionState): void;
484
+ /**
485
+ * Apply one patch to every selected row, loaded or not, through the
486
+ * datasource's `updateWhere`, then reload every level so the rows and
487
+ * their aggregates reflect it. Resolves with how many rows changed.
488
+ * Throws when the source has no `updateWhere` - a bulk edit is refused
489
+ * rather than silently applied to the loaded rows only.
490
+ */
491
+ bulkUpdate(patch: Partial<TData>): Promise<number>;
492
+ getLevelState(route?: string[]): ServerLevelState | null;
493
+ levelStates(): ServerLevelState[];
494
+ /** Every block at every level, for logging and tests. */
495
+ getCacheState(): Array<BlockState & {
496
+ route: string[];
497
+ }>;
498
+ getState(): ServerRowModelState<TData>;
499
+ /** Abort what is in flight, close the source, stop emitting. Call on unmount. */
500
+ dispose(): void;
501
+ /** The grand-total row for `pinnedTop` / `pinnedBottom`, or nothing. */
502
+ readonly pinnedTopRows: ReadonlyArray<ServerRowModelGridRow<TData>> | undefined;
503
+ readonly pinnedBottomRows: ReadonlyArray<ServerRowModelGridRow<TData>> | undefined;
504
+ };
505
+ /** The fixed id of the grand-total display row, so a transaction can address it. */
506
+ export declare const GRAND_TOTAL_ROW_ID: "sv-grand-total";
507
+ /** The prefix of a group footer's id; the rest is the group route. */
508
+ export declare const GROUP_TOTAL_ROW_ID_PREFIX: "sv-group-total:";
509
+ /**
510
+ * Build the Server-Side Row Model over a `ServerDataSource`: lazy grouping
511
+ * and tree data one level at a time, a block cache per level, aggregates,
512
+ * child counts, grand totals, pivot, paging, transactions and a selection
513
+ * that reaches rows the grid never loaded. Hand the result to
514
+ * `<SvGrid rowModel>`. Enterprise: nudges when no licence key is set.
515
+ */
516
+ export declare function createServerRowModel<TData>(source: ServerDataSource<TData>, options: ServerRowModelOptions<TData>): ServerRowModel<TData>;
517
+ /**
518
+ * Map a state's display rows to grid rows. `state.gridRows` already holds
519
+ * this; the function exists for parity with `serverGroupRows` and for code
520
+ * that keeps its own display list.
521
+ */
522
+ export declare function serverRowModelRows<TData>(state: ServerRowModelState<TData> | null | undefined): ReadonlyArray<ServerRowModelGridRow<TData>>;
523
+ /** The `serverGroup` prop for a grid driven by hand rather than by `rowModel`. */
524
+ export declare function serverRowModelNav<TData>(ctl: ServerRowModel<TData>): {
525
+ isGroup: (row: ServerRowModelGridRow<TData>) => boolean;
526
+ level: (row: ServerRowModelGridRow<TData>) => number;
527
+ expanded?: ((row: ServerRowModelGridRow<TData>) => boolean) | undefined;
528
+ onToggle: (row: ServerRowModelGridRow<TData>) => void;
529
+ toggleDetail?: ((row: ServerRowModelGridRow<TData>) => void) | undefined;
530
+ detailOpen?: ((row: ServerRowModelGridRow<TData>) => boolean) | undefined;
531
+ hasDetail?: ((row: ServerRowModelGridRow<TData>) => boolean) | undefined;
532
+ };
533
+ /**
534
+ * The group column's text for one grid row: a group's key (or its
535
+ * `leafField` under `treeData`, where a node's key is its id), `Total` for a
536
+ * footer, `Grand total` for the grand total, the `leafField` value of a leaf,
537
+ * and nothing for the rows that carry no data (placeholders, skeletons, the
538
+ * "load more" row). `SvGroupCell` draws the expander, the count and the
539
+ * spinner; this is the value behind it, so give the group column
540
+ * `fieldFn: (row) => serverGroupText(row, leafField)` and copy, export, the
541
+ * clipboard and a `pinnedTop` / `pinnedBottom` grand total (which the grid
542
+ * formats from the accessor, not from the cell renderer) all read the same
543
+ * text. `messages` is the map `SvGroupCell` takes, so a localized footer
544
+ * and grand total read the same in the cell and in a copy.
545
+ */
546
+ export declare function serverGroupText<TData>(row: ServerRowModelGridRow<TData>, leafField?: keyof TData & string, messages?: Partial<ServerGroupMessages>): string;
547
+ export type { ServerLeafRow };