@svgrid/enterprise 3.0.2 → 3.1.0

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 (364) 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 +94 -20
  10. package/dist/SvFormulaBar.svelte.d.ts +7 -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 +198 -40
  18. package/dist/SvPivotDesigner.svelte.d.ts +27 -20
  19. package/dist/SvSheet.svelte +4043 -243
  20. package/dist/SvSheet.svelte.d.ts +76 -3
  21. package/dist/SvSheetChartSetup.svelte +151 -0
  22. package/dist/SvSheetChartSetup.svelte.d.ts +18 -0
  23. package/dist/SvSheetComment.svelte +216 -31
  24. package/dist/SvSheetComment.svelte.d.ts +11 -11
  25. package/dist/SvSheetConditionalFormat.svelte +28 -31
  26. package/dist/SvSheetDataValidation.svelte +66 -42
  27. package/dist/SvSheetEditRanges.svelte +217 -0
  28. package/dist/SvSheetEditRanges.svelte.d.ts +15 -0
  29. package/dist/SvSheetErrors.svelte +125 -0
  30. package/dist/SvSheetErrors.svelte.d.ts +20 -0
  31. package/dist/SvSheetEvaluate.svelte +133 -0
  32. package/dist/SvSheetEvaluate.svelte.d.ts +15 -0
  33. package/dist/SvSheetFilterMenu.svelte +137 -34
  34. package/dist/SvSheetFilterMenu.svelte.d.ts +5 -0
  35. package/dist/SvSheetFindReplace.svelte +19 -19
  36. package/dist/SvSheetFormatCells.svelte +125 -81
  37. package/dist/SvSheetGoalSeek.svelte +17 -16
  38. package/dist/SvSheetInsertFunction.svelte +15 -13
  39. package/dist/SvSheetIteration.svelte +81 -0
  40. package/dist/SvSheetIteration.svelte.d.ts +10 -0
  41. package/dist/SvSheetLink.svelte +99 -0
  42. package/dist/SvSheetLink.svelte.d.ts +17 -0
  43. package/dist/SvSheetListPicker.svelte +4 -2
  44. package/dist/SvSheetListPicker.svelte.d.ts +0 -6
  45. package/dist/SvSheetManageRules.svelte +20 -18
  46. package/dist/SvSheetNameManager.svelte +17 -15
  47. package/dist/SvSheetPageSetup.svelte +159 -0
  48. package/dist/SvSheetPageSetup.svelte.d.ts +13 -0
  49. package/dist/SvSheetPasteSpecial.svelte +22 -20
  50. package/dist/SvSheetPivot.svelte +220 -0
  51. package/dist/SvSheetPivot.svelte.d.ts +21 -0
  52. package/dist/SvSheetProtectSheet.svelte +81 -0
  53. package/dist/SvSheetProtectSheet.svelte.d.ts +11 -0
  54. package/dist/SvSheetRemoveDuplicates.svelte +13 -10
  55. package/dist/SvSheetRibbon.svelte +104 -51
  56. package/dist/SvSheetSizeDialog.svelte +4 -2
  57. package/dist/SvSheetSort.svelte +218 -0
  58. package/dist/SvSheetSort.svelte.d.ts +28 -0
  59. package/dist/SvSheetSparklines.svelte +135 -0
  60. package/dist/SvSheetSparklines.svelte.d.ts +14 -0
  61. package/dist/SvSheetTable.svelte +160 -0
  62. package/dist/SvSheetTable.svelte.d.ts +24 -0
  63. package/dist/SvSheetTabs.svelte +161 -31
  64. package/dist/SvSheetTabs.svelte.d.ts +22 -8
  65. package/dist/SvSheetTextToColumns.svelte +20 -20
  66. package/dist/SvSheetValidationAlert.svelte +8 -6
  67. package/dist/advanced-filter-enable.js +1 -1
  68. package/dist/alerts/alert-engine.d.ts +6 -0
  69. package/dist/alerts/alert-engine.js +21 -4
  70. package/dist/alerts/alert-formats.js +2 -0
  71. package/dist/alerts/alert-types.d.ts +1 -1
  72. package/dist/alerts.d.ts +1 -1
  73. package/dist/alerts.js +2 -2
  74. package/dist/board.js +2 -2
  75. package/dist/bulk-edit.d.ts +3 -1
  76. package/dist/bulk-edit.js +1 -1
  77. package/dist/cdn/svgrid-enterprise.svelte-external.js +39827 -16429
  78. package/dist/designer/assets/GridMenus-8gTNssgV.js +8 -0
  79. package/dist/designer/assets/{SvChartMenu-D9hEeHar.js → SvChartMenu-BDoeqGz6.js} +1 -1
  80. package/dist/designer/assets/{SvDateTimePicker-DARvKUL2.js → SvDateTimePicker-DCPg7WGN.js} +1 -1
  81. package/dist/designer/assets/SvGridCellEditor-DMoWJjEI.js +4 -0
  82. package/dist/designer/assets/{SvGridChart-B8j1SSy3.js → SvGridChart-Cy1ATrWh.js} +2 -2
  83. package/dist/designer/assets/SvGridChartBuilder-eQ3mn0L9.js +1 -0
  84. package/dist/designer/assets/{SvGridChartPanel-pT6ITc2P.js → SvGridChartPanel-CATdVc9X.js} +3 -3
  85. package/dist/designer/assets/{SvGridChartView-bg281UA1.js → SvGridChartView-CmsZtCED.js} +1 -1
  86. package/dist/designer/assets/SvGridDropdown-Cjz0H-fI.js +1 -0
  87. package/dist/designer/assets/{SvTabs-UFCMTHXS.js → SvTabs-2mHC6oaz.js} +1 -1
  88. package/dist/designer/assets/cell-formatting-BbubJTVz.js +1 -0
  89. package/dist/designer/assets/{chart-cIPUsbM5.js → chart-Cn7MnNqA.js} +1 -1
  90. package/dist/designer/assets/{chart-panel-messages-DtTxpBUU.js → chart-panel-messages-Dz7PTIqT.js} +1 -1
  91. package/dist/designer/assets/{chart-summary-Czu_5epb.js → chart-summary-BD1qYB2R.js} +1 -1
  92. package/dist/designer/assets/{chart-trend-D5I5VEe8.js → chart-trend-B8xr5LuD.js} +1 -1
  93. package/dist/designer/assets/{dismissable-BO547MH9.js → dismissable-ChWRPkoa.js} +1 -1
  94. package/dist/designer/assets/{export-format-D-eP4b2l.js → export-format-DGckmgKr.js} +1 -1
  95. package/dist/designer/assets/{focus-trap-CAreAhlU.js → focus-trap-V2-6Fy9I.js} +1 -1
  96. package/dist/designer/assets/{index-DwU7CAMm.js → index-BSjv6Qec.js} +317 -315
  97. package/dist/designer/assets/index-_JVFxt02.css +1 -0
  98. package/dist/designer/assets/row-resize-BInFWCpr.js +1 -0
  99. package/dist/designer/assets/server-block-cache-CXJKkJpy.js +1 -0
  100. package/dist/designer/assets/src-DUQ4xE3x.js +58 -0
  101. package/dist/designer/assets/validate-C3B8QKsM.js +1 -0
  102. package/dist/designer/index.html +17 -16
  103. package/dist/export-pdf.d.ts +75 -0
  104. package/dist/export-pdf.js +216 -15
  105. package/dist/export.js +10 -2
  106. package/dist/gantt/SvGridGantt.svelte +2890 -0
  107. package/dist/gantt/SvGridGantt.svelte.d.ts +30 -0
  108. package/dist/gantt/gantt-config.d.ts +73 -0
  109. package/dist/gantt/gantt-config.js +1 -0
  110. package/dist/gantt/gantt-critical-path.d.ts +67 -0
  111. package/dist/gantt/gantt-critical-path.js +207 -0
  112. package/dist/gantt/gantt-model.d.ts +257 -0
  113. package/dist/gantt/gantt-model.js +651 -0
  114. package/dist/gantt/gantt-resources.d.ts +59 -0
  115. package/dist/gantt/gantt-resources.js +71 -0
  116. package/dist/gantt/gantt.d.ts +7 -0
  117. package/dist/gantt/gantt.js +36 -0
  118. package/dist/gantt/index.d.ts +15 -0
  119. package/dist/gantt/index.js +22 -0
  120. package/dist/gantt/timeline-arrows.d.ts +102 -0
  121. package/dist/gantt/timeline-arrows.js +181 -0
  122. package/dist/import.d.ts +2 -2
  123. package/dist/import.js +1 -1
  124. package/dist/index.d.ts +34 -7
  125. package/dist/index.js +44 -7
  126. package/dist/install.js +8 -1
  127. package/dist/license-core.d.ts +17 -1
  128. package/dist/license-core.js +16 -5
  129. package/dist/license.d.ts +18 -2
  130. package/dist/license.js +71 -6
  131. package/dist/node/studio.js +140 -8
  132. package/dist/pivot-enable.js +2 -2
  133. package/dist/scheduler-dependencies.d.ts +35 -0
  134. package/dist/scheduler-dependencies.js +36 -1
  135. package/dist/scheduler.js +2 -2
  136. package/dist/selection-bar.js +2 -2
  137. package/dist/server/SvGroupCell.svelte +213 -0
  138. package/dist/server/SvGroupCell.svelte.d.ts +62 -0
  139. package/dist/server/SvRowGroupPanel.svelte +322 -0
  140. package/dist/server/SvRowGroupPanel.svelte.d.ts +37 -0
  141. package/dist/server/enable.d.ts +17 -0
  142. package/dist/server/enable.js +49 -0
  143. package/dist/server/index.d.ts +22 -0
  144. package/dist/server/index.js +24 -0
  145. package/dist/server/messages.d.ts +45 -0
  146. package/dist/server/messages.js +35 -0
  147. package/dist/server/server-group-model.d.ts +104 -0
  148. package/dist/server/server-group-model.js +272 -0
  149. package/dist/server/server-pivot.d.ts +46 -0
  150. package/dist/server/server-pivot.js +57 -0
  151. package/dist/server/server-row-model.d.ts +547 -0
  152. package/dist/server/server-row-model.js +1551 -0
  153. package/dist/server/server-selection.d.ts +99 -0
  154. package/dist/server/server-selection.js +215 -0
  155. package/dist/server/svgrid-adapter.d.ts +155 -0
  156. package/dist/server/svgrid-adapter.js +202 -0
  157. package/dist/sheet/ast.d.ts +45 -1
  158. package/dist/sheet/ast.js +14 -0
  159. package/dist/sheet/auto-filter.d.ts +58 -4
  160. package/dist/sheet/auto-filter.js +159 -11
  161. package/dist/sheet/autocomplete.d.ts +9 -0
  162. package/dist/sheet/autocomplete.js +90 -4
  163. package/dist/sheet/cell-images.d.ts +39 -0
  164. package/dist/sheet/cell-images.js +90 -0
  165. package/dist/sheet/cell-types.d.ts +58 -0
  166. package/dist/sheet/cell-types.js +96 -0
  167. package/dist/sheet/coerce.d.ts +40 -0
  168. package/dist/sheet/coerce.js +170 -3
  169. package/dist/sheet/comments.d.ts +43 -9
  170. package/dist/sheet/comments.js +85 -27
  171. package/dist/sheet/conditional-formats.d.ts +29 -6
  172. package/dist/sheet/conditional-formats.js +37 -12
  173. package/dist/sheet/csv.d.ts +32 -0
  174. package/dist/sheet/csv.js +158 -0
  175. package/dist/sheet/culture.d.ts +87 -0
  176. package/dist/sheet/culture.js +247 -0
  177. package/dist/sheet/delta.d.ts +102 -0
  178. package/dist/sheet/delta.js +203 -0
  179. package/dist/sheet/deps.d.ts +45 -1
  180. package/dist/sheet/deps.js +77 -2
  181. package/dist/sheet/document.d.ts +106 -4
  182. package/dist/sheet/document.js +204 -3
  183. package/dist/sheet/engine.d.ts +67 -0
  184. package/dist/sheet/engine.js +19 -0
  185. package/dist/sheet/entry.d.ts +8 -4
  186. package/dist/sheet/entry.js +171 -21
  187. package/dist/sheet/error-check.d.ts +49 -0
  188. package/dist/sheet/error-check.js +83 -0
  189. package/dist/sheet/evaluate-steps.d.ts +48 -0
  190. package/dist/sheet/evaluate-steps.js +196 -0
  191. package/dist/sheet/evaluate.d.ts +67 -0
  192. package/dist/sheet/evaluate.js +725 -13
  193. package/dist/sheet/filter-files.d.ts +37 -0
  194. package/dist/sheet/filter-files.js +465 -0
  195. package/dist/sheet/format-store.d.ts +15 -0
  196. package/dist/sheet/format-store.js +11 -1
  197. package/dist/sheet/from-rows.d.ts +14 -0
  198. package/dist/sheet/from-rows.js +50 -0
  199. package/dist/sheet/function-catalog.d.ts +1 -1
  200. package/dist/sheet/function-catalog.js +296 -5
  201. package/dist/sheet/functions.js +363 -91
  202. package/dist/sheet/index.d.ts +35 -8
  203. package/dist/sheet/index.js +35 -8
  204. package/dist/sheet/links.d.ts +57 -0
  205. package/dist/sheet/links.js +174 -0
  206. package/dist/sheet/messages.d.ts +778 -0
  207. package/dist/sheet/messages.js +806 -0
  208. package/dist/sheet/number-format.d.ts +52 -5
  209. package/dist/sheet/number-format.js +465 -68
  210. package/dist/sheet/objects.d.ts +106 -0
  211. package/dist/sheet/objects.js +149 -0
  212. package/dist/sheet/ods-document.d.ts +44 -0
  213. package/dist/sheet/ods-document.js +1275 -0
  214. package/dist/sheet/open-file.d.ts +26 -0
  215. package/dist/sheet/open-file.js +56 -0
  216. package/dist/sheet/outline.d.ts +82 -0
  217. package/dist/sheet/outline.js +228 -0
  218. package/dist/sheet/packs/array.d.ts +16 -0
  219. package/dist/sheet/packs/array.js +172 -0
  220. package/dist/sheet/packs/database.d.ts +42 -0
  221. package/dist/sheet/packs/database.js +142 -0
  222. package/dist/sheet/packs/engineering.d.ts +2 -0
  223. package/dist/sheet/packs/engineering.js +296 -0
  224. package/dist/sheet/packs/financial.d.ts +5 -0
  225. package/dist/sheet/packs/financial.js +220 -0
  226. package/dist/sheet/packs/math-stats.d.ts +2 -0
  227. package/dist/sheet/packs/math-stats.js +372 -0
  228. package/dist/sheet/packs/special.d.ts +44 -0
  229. package/dist/sheet/packs/special.js +187 -0
  230. package/dist/sheet/packs/stats-dist.d.ts +2 -0
  231. package/dist/sheet/packs/stats-dist.js +785 -0
  232. package/dist/sheet/packs/text-date.d.ts +2 -0
  233. package/dist/sheet/packs/text-date.js +332 -0
  234. package/dist/sheet/packs/trig.d.ts +2 -0
  235. package/dist/sheet/packs/trig.js +73 -0
  236. package/dist/sheet/page-setup.d.ts +73 -0
  237. package/dist/sheet/page-setup.js +73 -0
  238. package/dist/sheet/parse.js +42 -10
  239. package/dist/sheet/paste-special.d.ts +22 -0
  240. package/dist/sheet/paste-special.js +14 -5
  241. package/dist/sheet/pivot-range.d.ts +160 -0
  242. package/dist/sheet/pivot-range.js +333 -0
  243. package/dist/sheet/presence.d.ts +73 -0
  244. package/dist/sheet/presence.js +79 -0
  245. package/dist/sheet/print.d.ts +104 -0
  246. package/dist/sheet/print.js +169 -0
  247. package/dist/sheet/protection.d.ts +55 -1
  248. package/dist/sheet/protection.js +55 -2
  249. package/dist/sheet/rects.d.ts +1 -1
  250. package/dist/sheet/refs.d.ts +48 -0
  251. package/dist/sheet/refs.js +155 -8
  252. package/dist/sheet/ribbon-icons.d.ts +1 -1
  253. package/dist/sheet/ribbon-icons.js +186 -0
  254. package/dist/sheet/ribbon.d.ts +1 -1
  255. package/dist/sheet/ribbon.js +324 -23
  256. package/dist/sheet/sheet-kinds.d.ts +74 -0
  257. package/dist/sheet/sheet-kinds.js +91 -0
  258. package/dist/sheet/shortcuts.d.ts +13 -3
  259. package/dist/sheet/shortcuts.js +63 -12
  260. package/dist/sheet/sort.d.ts +51 -0
  261. package/dist/sheet/sort.js +107 -0
  262. package/dist/sheet/sparklines.d.ts +111 -0
  263. package/dist/sheet/sparklines.js +204 -0
  264. package/dist/sheet/table-styles.d.ts +74 -0
  265. package/dist/sheet/table-styles.js +152 -0
  266. package/dist/sheet/tables.d.ts +19 -0
  267. package/dist/sheet/tables.js +31 -0
  268. package/dist/sheet/tokenize.d.ts +18 -1
  269. package/dist/sheet/tokenize.js +60 -9
  270. package/dist/sheet/validation.d.ts +16 -0
  271. package/dist/sheet/validation.js +37 -0
  272. package/dist/sheet/workbook.d.ts +148 -3
  273. package/dist/sheet/workbook.js +742 -31
  274. package/dist/sheet/xls-cfb.d.ts +32 -0
  275. package/dist/sheet/xls-cfb.js +290 -0
  276. package/dist/sheet/xls-document.d.ts +10 -0
  277. package/dist/sheet/xls-document.js +1243 -0
  278. package/dist/sheet/xls-formula.d.ts +40 -0
  279. package/dist/sheet/xls-formula.js +569 -0
  280. package/dist/sheet/xlsx-document.d.ts +108 -0
  281. package/dist/sheet/xlsx-document.js +1849 -0
  282. package/dist/sheet/xlsx-drawing.d.ts +99 -0
  283. package/dist/sheet/xlsx-drawing.js +420 -0
  284. package/dist/sheet-enable.js +6 -7
  285. package/dist/sheet-text.d.ts +7 -0
  286. package/dist/sheet-text.js +29 -0
  287. package/dist/sources/auth-supabase.js +2 -2
  288. package/dist/sources/realtime-supabase.js +2 -2
  289. package/dist/sources/rest.d.ts +6 -2
  290. package/dist/sources/rest.js +42 -7
  291. package/dist/sources/supabase.d.ts +10 -1
  292. package/dist/sources/supabase.js +73 -40
  293. package/dist/studio/emit-project.js +14 -1
  294. package/dist/studio/index.js +1 -1
  295. package/dist/studio/project.d.ts +11 -2
  296. package/dist/studio/project.js +5 -2
  297. package/dist/studio/ui-components.generated.js +107 -2
  298. package/dist/sveltekit/in-memory.d.ts +2 -2
  299. package/dist/sveltekit/in-memory.js +125 -4
  300. package/dist/sveltekit/index.d.ts +1 -1
  301. package/dist/sveltekit/index.js +1 -1
  302. package/dist/sveltekit/query-plan.d.ts +50 -4
  303. package/dist/sveltekit/query-plan.js +25 -3
  304. package/dist/sveltekit/sql-source.d.ts +6 -0
  305. package/dist/sveltekit/sql-source.js +34 -6
  306. package/dist/sveltekit/sql.d.ts +31 -0
  307. package/dist/sveltekit/sql.js +135 -25
  308. package/dist/sveltekit/transport.d.ts +10 -2
  309. package/dist/sveltekit/transport.js +30 -6
  310. package/dist/upgrade-prompt.d.ts +1 -1
  311. package/dist/version.d.ts +1 -1
  312. package/dist/version.js +1 -1
  313. package/dist/watermark.js +35 -2
  314. package/dist/wc/GridMenus-By9vPuq0.js +1088 -0
  315. package/dist/wc/SvChartMenu-CQNrQGT2.js +308 -0
  316. package/dist/wc/SvDateRangeInput-DR6m7bSM.js +199 -0
  317. package/dist/wc/SvDateTimePicker-D-vRnaMo.js +771 -0
  318. package/dist/wc/SvField-B_kurx_P.js +149 -0
  319. package/dist/wc/SvGrid.helpers-BdVDtjUm.js +135 -0
  320. package/dist/wc/SvGridCellEditor-Bnf1Kr5C.js +560 -0
  321. package/dist/wc/SvGridChart-BqUJh2pG.js +3572 -0
  322. package/dist/wc/SvGridChartBuilder-CGycC5cn.js +988 -0
  323. package/dist/wc/SvGridChartPanel-CRnizsHD.js +1746 -0
  324. package/dist/wc/SvGridChartView-D1pa_xMy.js +47 -0
  325. package/dist/wc/SvGridDropdown-45WsObLL.js +259 -0
  326. package/dist/wc/SvModal-DrfOYYyX.js +189 -0
  327. package/dist/wc/cell-formatting-CBfgahv1.js +86 -0
  328. package/dist/wc/chart-6OXlybVT.js +4341 -0
  329. package/dist/wc/chart-export-CeSADGfi.js +135 -0
  330. package/dist/wc/chart-export-pdf-BGko7MER.js +104 -0
  331. package/dist/wc/chart-summary-2m3ia1-n.js +137 -0
  332. package/dist/wc/chart-trend-CQOQtTMl.js +50 -0
  333. package/dist/wc/chart-validate-CD6ptiwg.js +180 -0
  334. package/dist/wc/client-DQIzjDBG.js +3064 -0
  335. package/dist/wc/column-resize-DUPgynvc.js +101 -0
  336. package/dist/wc/date-format-DS-z_h9v.js +1130 -0
  337. package/dist/wc/dismissable-CQ6XFXsk.js +45 -0
  338. package/dist/wc/editor-contract-peBDxir_.js +22 -0
  339. package/dist/wc/editor-registry-DxGKqcvx.js +24 -0
  340. package/dist/wc/focus-trap-Dbb2tJxb.js +65 -0
  341. package/dist/wc/list-option-DrRyivWp.js +82 -0
  342. package/dist/wc/popover-WsGlvtQv.js +69 -0
  343. package/dist/wc/positioning-BiKLfu1E.js +112 -0
  344. package/dist/wc/react.d.ts +41 -0
  345. package/dist/wc/react.js +90 -0
  346. package/dist/wc/rolldown-runtime-Dy4uBu1J.js +11 -0
  347. package/dist/wc/row-drag-touch-CycRR65n.js +93 -0
  348. package/dist/wc/row-resize-limG_N1z.js +111 -0
  349. package/dist/wc/sv-sheet-element.d.ts +97 -0
  350. package/dist/wc/sv-sheet-element.js +44213 -0
  351. package/dist/wc/svelte-virtualizer.svelte-CXtQy2TQ.js +530 -0
  352. package/dist/wc/validate-BqDthkNr.js +88 -0
  353. package/dist/wc/vue.d.ts +31 -0
  354. package/dist/wc/vue.js +75 -0
  355. package/package.json +30 -5
  356. package/dist/designer/assets/GridMenus-BlsvL_aU.js +0 -8
  357. package/dist/designer/assets/SvGridCellEditor-C7uQXYds.js +0 -4
  358. package/dist/designer/assets/SvGridChartBuilder-kvyIU_Rl.js +0 -1
  359. package/dist/designer/assets/SvGridDropdown-Bb3HH2Aj.js +0 -1
  360. package/dist/designer/assets/cell-formatting-wr5wm7US.js +0 -1
  361. package/dist/designer/assets/index-CMFgAoVV.css +0 -1
  362. package/dist/designer/assets/row-resize-DLktcqUK.js +0 -1
  363. package/dist/designer/assets/src-EdI3Xqds.js +0 -58
  364. package/dist/designer/assets/validate-h-aslRV9.js +0 -1
@@ -239,3 +239,40 @@ export function describeRule(rule) {
239
239
  case 'custom': return `Custom: ${v1}`;
240
240
  }
241
241
  }
242
+ /**
243
+ * Excel's Circle Invalid Data: every cell under a rule whose current text
244
+ * breaks it. Blank cells count when the rule says they do. The rectangles
245
+ * are clipped to `rows` by `cols`, the sheet's used extent, so a rule over
246
+ * a whole column costs the cells that hold something.
247
+ */
248
+ export function invalidCells(rules, ctx, rawAt, rows, cols) {
249
+ const out = [];
250
+ const seen = new Set();
251
+ for (const rule of rules) {
252
+ if (rule.allow === 'any')
253
+ continue;
254
+ for (const [r1, c1, r2, c2] of rule.rects) {
255
+ const rowEnd = Math.min(r2, rows - 1);
256
+ const colEnd = Math.min(c2, cols - 1);
257
+ for (let r = Math.max(0, r1); r <= rowEnd; r += 1) {
258
+ for (let c = Math.max(0, c1); c <= colEnd; c += 1) {
259
+ const key = r * 1048576 + c;
260
+ if (seen.has(key))
261
+ continue;
262
+ seen.add(key);
263
+ // The rule that applies is the last one covering the cell, which
264
+ // may not be this one.
265
+ const applies = ruleAt(rules, r, c);
266
+ if (!applies || applies.allow === 'any')
267
+ continue;
268
+ const text = rawAt(r, c);
269
+ if (text.trim() === '' && applies.ignoreBlank)
270
+ continue;
271
+ if (!checkEntry(applies, text, { row: r, col: c }, ctx).ok)
272
+ out.push({ row: r, col: c });
273
+ }
274
+ }
275
+ }
276
+ }
277
+ return out;
278
+ }
@@ -1,12 +1,40 @@
1
1
  import { type SheetFunction } from './functions.js';
2
2
  import { isError, type CellValue } from './ast.js';
3
+ import { type TableRegion, type TableRegistry } from './tables.js';
3
4
  import { type SheetNames } from './names.js';
4
- import { type StructuralEdit } from './refs.js';
5
+ import { type CellMove, type StructuralEdit } from './refs.js';
6
+ import { type SheetEngine } from './engine.js';
5
7
  export type SheetData = {
6
8
  name: string;
7
9
  /** Row-major raw text. Ragged is fine; a missing cell reads as empty. */
8
10
  cells: string[][];
9
11
  };
12
+ /**
13
+ * Excel's Enable iterative calculation, under File > Options > Formulas.
14
+ *
15
+ * A circular reference is normally an error: every cell in the loop shows
16
+ * #CYCLE!. Some models are written as one on purpose, though, because the
17
+ * answer is a fixed point rather than a mistake: a bonus that is a share of
18
+ * the profit the bonus is subtracted from, an interest charge on a balance
19
+ * the charge is added to. Excel solves those by running the loop over and
20
+ * over from the values it last had, and stopping when either the answer
21
+ * stops moving or the passes run out.
22
+ */
23
+ export type IterationSettings = {
24
+ /** Off by default, which is Excel's default and keeps a cycle an error. */
25
+ enabled: boolean;
26
+ /** Passes before the answer is taken as it stands. Excel's default is 100. */
27
+ maxIterations: number;
28
+ /** The largest move that still counts as settled. Excel's default is 0.001. */
29
+ maxChange: number;
30
+ };
31
+ export declare const DEFAULT_ITERATION: IterationSettings;
32
+ /** Excel's text prefix. A cell typed as `'007` holds the text `007`: the
33
+ * apostrophe says "what follows is text", and it is not part of the value,
34
+ * so it is never displayed, printed, exported or compared. */
35
+ export declare const TEXT_PREFIX = "'";
36
+ /** The value a typed text stands for once the prefix is taken off. */
37
+ export declare const withoutTextPrefix: (text: string) => string;
10
38
  export type WorkbookOptions = {
11
39
  /** Extra functions merged over the built-ins. */
12
40
  functions?: Record<string, SheetFunction>;
@@ -17,6 +45,30 @@ export type WorkbookOptions = {
17
45
  col: number;
18
46
  value: CellValue;
19
47
  }>): void;
48
+ /**
49
+ * Fires for every RAW WRITE, with the text as typed rather than the value
50
+ * it computes: one call per `setRaw` that changed something, and one per
51
+ * cell a structural edit rewrote. This is the seam a delta stream reads
52
+ * (`sheet/delta.ts`), since a collaborator has to receive `=SUM(A1:A9)`
53
+ * rather than 42.
54
+ */
55
+ onWrite?(change: {
56
+ sheet: string;
57
+ row: number;
58
+ col: number;
59
+ text: string;
60
+ }): void;
61
+ /**
62
+ * What works a formula out. The built-in parser and evaluator unless an
63
+ * application hands over an evaluator of its own. The workbook keeps the
64
+ * dependency graph, the cache, the cycles and the spills whichever engine
65
+ * answers.
66
+ */
67
+ engine?: SheetEngine;
68
+ /** Tables the workbook starts with, for a document being restored. */
69
+ tables?: ReadonlyArray<TableRegion>;
70
+ /** Iterative calculation, off unless a model needs it. */
71
+ iteration?: Partial<IterationSettings>;
20
72
  };
21
73
  /** One cell read as text that has not been written: what a validation rule checks. */
22
74
  export type CellOverride = {
@@ -28,11 +80,25 @@ export type Workbook = {
28
80
  readonly sheets: ReadonlyArray<string>;
29
81
  readonly active: string;
30
82
  readonly names: SheetNames;
83
+ /**
84
+ * Excel's tables, which is what a structured reference resolves through.
85
+ * Defining one here is what makes `=SUM(Orders[Amount])` mean anything;
86
+ * the shell's Insert > Table does it, and a document restores it.
87
+ */
88
+ readonly tables: TableRegistry;
31
89
  setActive(name: string): void;
32
90
  addSheet(name?: string, at?: number): string;
33
91
  removeSheet(name: string): boolean;
34
92
  renameSheet(from: string, to: string): boolean;
35
93
  moveSheet(name: string, to: number): boolean;
94
+ /**
95
+ * Copy a sheet's cells into a new sheet placed right after it, named
96
+ * `to` or Excel's "Name (2)", and make it active. The new sheet's
97
+ * formulas read their own sheet where the old ones read theirs, because
98
+ * an unqualified reference is relative to the sheet it sits on. Returns
99
+ * the new name, or null when `from` is unknown or `to` is taken.
100
+ */
101
+ copySheet(from: string, to?: string): string | null;
36
102
  /** The raw text of a cell: the formula as typed, or the literal. */
37
103
  getRaw(sheet: string, row: number, col: number): string;
38
104
  /** Write raw text and recalculate whatever depends on it. */
@@ -45,28 +111,107 @@ export type Workbook = {
45
111
  * What `text` would be worth in a cell of `sheet`, without putting it in
46
112
  * one: a formula is evaluated there (names and other sheets included), a
47
113
  * literal is coerced the way a typed one is. Data validation checks its
48
- * bounds and custom rules through this.
114
+ * bounds and custom rules through this, and conditional formatting its
115
+ * formula rules, with `at` naming the cell the text is read for.
49
116
  */
50
- evaluateText(sheet: string, text: string, override?: CellOverride): CellValue;
117
+ evaluateText(sheet: string, text: string, override?: CellOverride, at?: {
118
+ row: number;
119
+ col: number;
120
+ }): CellValue;
51
121
  /**
52
122
  * The values of a range reference, or of a name that refers to one, as a
53
123
  * grid; null when `text` is not a reference. A list source.
54
124
  */
55
125
  evaluateRange(sheet: string, text: string): CellValue[][] | null;
126
+ /**
127
+ * Tell the workbook which rows are folded away, and by what: `'filter'`
128
+ * for an AutoFilter, `'hand'` for Hide Rows, null for a row on the
129
+ * screen. Only `SUBTOTAL` reads it, which is how a total under a filtered
130
+ * list follows the filter. Pass null to forget the source again.
131
+ */
132
+ setHiddenRows(source: ((sheet: string, row: number) => 'filter' | 'hand' | null) | null): void;
56
133
  /** Apply a structural edit to one sheet, rewriting every formula in the
57
134
  * WORKBOOK that pointed into it. */
58
135
  applyStructuralEdit(sheet: string, edit: StructuralEdit): void;
136
+ /**
137
+ * A block of cells has been MOVED (cut and pasted, or dragged): point
138
+ * every reference to those cells at where they now are, across the whole
139
+ * workbook and the defined names, as Excel does. The cells themselves are
140
+ * moved by whoever did the moving; this is only the repointing.
141
+ */
142
+ repointAfterMove(move: CellMove): void;
143
+ /**
144
+ * Excel's Trace Precedents: the cells a formula reads directly, on any
145
+ * sheet. Empty for a literal. A whole-column reference contributes its
146
+ * used rows.
147
+ */
148
+ precedents(sheet: string, row: number, col: number): Array<{
149
+ sheet: string;
150
+ row: number;
151
+ col: number;
152
+ }>;
153
+ /**
154
+ * Excel's Trace Dependents: the formulas that read a cell directly. Every
155
+ * formula in the workbook is evaluated first, so a dependent that was
156
+ * never on screen is found too.
157
+ */
158
+ dependents(sheet: string, row: number, col: number): Array<{
159
+ sheet: string;
160
+ row: number;
161
+ col: number;
162
+ }>;
163
+ /**
164
+ * Hear about every raw write, with the text as typed. Returns the
165
+ * unsubscribe. The delta stream reads this; a mirror of the cells in
166
+ * another store can too.
167
+ */
168
+ subscribeWrites(listener: (change: {
169
+ sheet: string;
170
+ row: number;
171
+ col: number;
172
+ text: string;
173
+ }) => void): () => void;
59
174
  /** Recompute everything. Rarely needed; `setRaw` keeps itself current. */
60
175
  recalculate(): void;
176
+ /** How circular references are treated, as the Formulas tab sets it. */
177
+ readonly iteration: IterationSettings;
178
+ /**
179
+ * Turn iterative calculation on or off, or change its limits, and
180
+ * recalculate: the cells in a cycle go from #CYCLE! to their fixed point,
181
+ * or back.
182
+ */
183
+ setIteration(next: Partial<IterationSettings>): void;
184
+ /**
185
+ * The spill a cell belongs to: the anchor holding the array formula and
186
+ * the rectangle its answer covers, for the anchor itself and every cell
187
+ * it spills into; null for a cell that is neither.
188
+ */
189
+ spillOf(sheet: string, row: number, col: number): {
190
+ anchor: {
191
+ row: number;
192
+ col: number;
193
+ };
194
+ rect: readonly [number, number, number, number];
195
+ } | null;
196
+ /** Every spill on a sheet, anchors computed, for a writer that saves the ranges. */
197
+ spills(sheet: string): Array<{
198
+ row: number;
199
+ col: number;
200
+ rect: readonly [number, number, number, number];
201
+ }>;
61
202
  rowCount(sheet: string): number;
62
203
  colCount(sheet: string): number;
63
204
  serialize(): {
64
205
  sheets: SheetData[];
65
206
  active: string;
66
207
  names: Record<string, string>;
208
+ tables?: TableRegion[];
209
+ iteration?: IterationSettings;
67
210
  };
68
211
  };
69
212
  /** A name Excel would accept for a sheet. */
70
213
  export declare function isValidSheetName(name: string): boolean;
214
+ /** Iteration settings with the defaults filled in and the numbers sane. */
215
+ export declare function cleanIteration(next?: Partial<IterationSettings> | null): IterationSettings;
71
216
  export declare function createWorkbook(initial?: ReadonlyArray<SheetData>, options?: WorkbookOptions): Workbook;
72
217
  export { isError };