@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
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Objects on a sheet: the things that float over the cells rather than
3
+ * living in them. A chart drawn from a range, and a picture.
4
+ *
5
+ * Excel anchors an object to a cell and an offset inside it, and that is
6
+ * what this keeps: the object moves when rows or columns are inserted
7
+ * above or to the left of it, and goes when the cell it hangs from is
8
+ * deleted. Its size is in pixels rather than a second anchor cell, so
9
+ * resizing a column under a chart moves it without reshaping it, which is
10
+ * Excel's "move but don't size with cells".
11
+ *
12
+ * A chart holds the range it reads rather than a copy of the numbers, so
13
+ * editing a cell redraws it. `chartSpecOf` turns the range into the spec
14
+ * `<SvChart>` takes, reading through whatever the caller supplies, which
15
+ * is how the same function serves the shell and a test.
16
+ */
17
+ import type { ChartSpec } from '@svgrid/grid';
18
+ import type { Rect } from './format-store.js';
19
+ import type { StructuralEdit } from './refs.js';
20
+ import type { CellValue } from './ast.js';
21
+ /** Where an object hangs: a cell, an offset inside it, and a size in pixels. */
22
+ export type ObjectAnchor = {
23
+ row: number;
24
+ col: number;
25
+ /** Offset from the cell's top-left corner, in pixels. */
26
+ dx: number;
27
+ dy: number;
28
+ width: number;
29
+ height: number;
30
+ };
31
+ /** The chart kinds the sheet offers, a subset of what `<SvChart>` draws. */
32
+ export declare const SHEET_CHART_TYPES: readonly ["bar", "line", "area", "pie", "scatter"];
33
+ export type SheetChartType = (typeof SHEET_CHART_TYPES)[number];
34
+ export type SheetChartObject = {
35
+ id: string;
36
+ kind: 'chart';
37
+ anchor: ObjectAnchor;
38
+ /** The cells the chart reads, on the sheet it sits on. */
39
+ range: Rect;
40
+ type: SheetChartType;
41
+ /** The range's first row holds the series labels, its first column the categories. */
42
+ headers: boolean;
43
+ /** Each column of the range is a series (Excel's default), or each row. */
44
+ series: 'columns' | 'rows';
45
+ title?: string;
46
+ stacked?: boolean;
47
+ /**
48
+ * A trend line over every series: Excel's Add Trendline, in the two
49
+ * shapes people actually pick. Drawn by the chart's own overlay, so it
50
+ * follows the data rather than being a second set of numbers.
51
+ */
52
+ trend?: SheetChartTrend;
53
+ /**
54
+ * The series plotted against a second value axis on the right, by its
55
+ * label. Excel's "Plot series on secondary axis", which is what makes a
56
+ * revenue-and-margin chart readable when the two are orders of magnitude
57
+ * apart. Unknown labels are ignored.
58
+ */
59
+ secondary?: string;
60
+ };
61
+ /** The trend lines the sheet offers: a straight fit, or a moving average. */
62
+ export declare const SHEET_CHART_TRENDS: readonly ["linear", "sma3"];
63
+ export type SheetChartTrend = (typeof SHEET_CHART_TRENDS)[number];
64
+ export type SheetImageObject = {
65
+ id: string;
66
+ kind: 'image';
67
+ anchor: ObjectAnchor;
68
+ /** A `data:` or `http(s):` URL. The document carries it as it is. */
69
+ src: string;
70
+ alt?: string;
71
+ };
72
+ export type SheetObject = SheetChartObject | SheetImageObject;
73
+ /** An id no other object of this session carries. */
74
+ export declare const objectId: () => string;
75
+ /** A copy safe to hand out or save. */
76
+ export declare function copyObject(object: SheetObject): SheetObject;
77
+ /**
78
+ * The object after an insert or delete: its anchor cell moves with its
79
+ * line and a chart's range moves with its cells. Null when the edit
80
+ * deleted the cell it hangs from, or every cell a chart read.
81
+ */
82
+ export declare function shiftObject(object: SheetObject, edit: StructuralEdit): SheetObject | null;
83
+ /** The objects of a sheet after an insert or delete, the gone ones dropped. */
84
+ export declare function shiftObjects(objects: ReadonlyArray<SheetObject>, edit: StructuralEdit): SheetObject[];
85
+ /** The object at a point, topmost first: what a click on the layer hits. */
86
+ export declare function objectAt(objects: ReadonlyArray<SheetObject>, point: {
87
+ x: number;
88
+ y: number;
89
+ }, boxOf: (object: SheetObject) => {
90
+ left: number;
91
+ top: number;
92
+ width: number;
93
+ height: number;
94
+ } | null): SheetObject | null;
95
+ /**
96
+ * The chart's spec, read from its range through `valueAt` (the computed
97
+ * value) and `textAt` (what the cell shows, for the labels). A chart of a
98
+ * range with no numbers in it draws nothing rather than throwing.
99
+ */
100
+ export declare function chartSpecOf(object: SheetChartObject, valueAt: (row: number, col: number) => CellValue, textAt: (row: number, col: number) => string): ChartSpec;
101
+ /**
102
+ * A chart over a selected block, the way Insert > Chart guesses it: a
103
+ * header row when the first row is text over numbers, series down the
104
+ * columns, anchored just below the block.
105
+ */
106
+ export declare function chartFromRange(range: Rect, valueAt: (row: number, col: number) => CellValue, anchor?: Partial<ObjectAnchor>): SheetChartObject;
@@ -0,0 +1,149 @@
1
+ import { shiftRect, lineShift } from './rects.js';
2
+ import { colToLetters } from './address.js';
3
+ /** The chart kinds the sheet offers, a subset of what `<SvChart>` draws. */
4
+ export const SHEET_CHART_TYPES = ['bar', 'line', 'area', 'pie', 'scatter'];
5
+ /** The trend lines the sheet offers: a straight fit, or a moving average. */
6
+ export const SHEET_CHART_TRENDS = ['linear', 'sma3'];
7
+ let nextObjectId = 1;
8
+ /** An id no other object of this session carries. */
9
+ export const objectId = () => `obj-${Date.now().toString(36)}-${(nextObjectId += 1).toString(36)}`;
10
+ /** A copy safe to hand out or save. */
11
+ export function copyObject(object) {
12
+ return object.kind === 'chart'
13
+ ? { ...object, anchor: { ...object.anchor }, range: [...object.range] }
14
+ : { ...object, anchor: { ...object.anchor } };
15
+ }
16
+ /**
17
+ * The object after an insert or delete: its anchor cell moves with its
18
+ * line and a chart's range moves with its cells. Null when the edit
19
+ * deleted the cell it hangs from, or every cell a chart read.
20
+ */
21
+ export function shiftObject(object, edit) {
22
+ const shift = lineShift(edit);
23
+ const rows = edit.kind === 'insertRows' || edit.kind === 'deleteRows';
24
+ const at = rows ? shift(object.anchor.row) : shift(object.anchor.col);
25
+ if (at === null)
26
+ return null;
27
+ const out = copyObject(object);
28
+ out.anchor = { ...out.anchor, ...(rows ? { row: at } : { col: at }) };
29
+ if (out.kind === 'chart') {
30
+ const range = shiftRect(out.range, edit);
31
+ if (!range)
32
+ return null;
33
+ out.range = range;
34
+ }
35
+ return out;
36
+ }
37
+ /** The objects of a sheet after an insert or delete, the gone ones dropped. */
38
+ export function shiftObjects(objects, edit) {
39
+ return objects.map((o) => shiftObject(o, edit)).filter((o) => o !== null);
40
+ }
41
+ /** The object at a point, topmost first: what a click on the layer hits. */
42
+ export function objectAt(objects, point, boxOf) {
43
+ for (let i = objects.length - 1; i >= 0; i -= 1) {
44
+ const box = boxOf(objects[i]);
45
+ if (!box)
46
+ continue;
47
+ if (point.x >= box.left && point.x <= box.left + box.width && point.y >= box.top && point.y <= box.top + box.height)
48
+ return objects[i];
49
+ }
50
+ return null;
51
+ }
52
+ /** A cell's value as a number, or null when it is not one. */
53
+ function numberOf(value) {
54
+ if (typeof value === 'number')
55
+ return Number.isFinite(value) ? value : null;
56
+ if (typeof value === 'boolean')
57
+ return value ? 1 : 0;
58
+ if (typeof value === 'string' && value.trim() !== '') {
59
+ const n = Number(value);
60
+ return Number.isFinite(n) ? n : null;
61
+ }
62
+ return null;
63
+ }
64
+ /**
65
+ * The chart's spec, read from its range through `valueAt` (the computed
66
+ * value) and `textAt` (what the cell shows, for the labels). A chart of a
67
+ * range with no numbers in it draws nothing rather than throwing.
68
+ */
69
+ export function chartSpecOf(object, valueAt, textAt) {
70
+ const [r1, c1, r2, c2] = object.range;
71
+ const byColumns = object.series === 'columns';
72
+ // Along the series, and across each one.
73
+ const seriesFrom = byColumns ? c1 : r1;
74
+ const seriesTo = byColumns ? c2 : r2;
75
+ const pointFrom = byColumns ? r1 : c1;
76
+ const pointTo = byColumns ? r2 : c2;
77
+ // With headers, the first line across is the labels and the first line
78
+ // along is the categories.
79
+ const firstSeries = object.headers ? seriesFrom + 1 : seriesFrom;
80
+ const firstPoint = object.headers ? pointFrom + 1 : pointFrom;
81
+ const cellAt = (s, p) => (byColumns ? { row: p, col: s } : { row: s, col: p });
82
+ const categories = [];
83
+ for (let p = firstPoint; p <= pointTo; p += 1) {
84
+ const at = cellAt(seriesFrom, p);
85
+ const label = object.headers ? textAt(at.row, at.col) : '';
86
+ categories.push(label.trim() === '' ? (byColumns ? String(p + 1) : colToLetters(p)) : label);
87
+ }
88
+ const series = [];
89
+ for (let s = firstSeries; s <= seriesTo; s += 1) {
90
+ const head = cellAt(s, pointFrom);
91
+ const label = object.headers ? textAt(head.row, head.col) : '';
92
+ const values = [];
93
+ let numeric = false;
94
+ for (let p = firstPoint; p <= pointTo; p += 1) {
95
+ const at = cellAt(s, p);
96
+ const n = numberOf(valueAt(at.row, at.col));
97
+ if (n !== null)
98
+ numeric = true;
99
+ values.push(n ?? 0);
100
+ }
101
+ if (!numeric)
102
+ continue;
103
+ const name = label.trim() === '' ? (byColumns ? colToLetters(s) : String(s + 1)) : label;
104
+ series.push({
105
+ label: name,
106
+ values,
107
+ // The trend line and the second axis are per series in the chart, and
108
+ // a sheet says them once: over everything, and for one series.
109
+ ...(object.trend ? { overlay: object.trend === 'sma3' ? 'sma:3' : 'linear' } : {}),
110
+ ...(object.secondary && object.secondary === name ? { axis: 'right' } : {}),
111
+ });
112
+ }
113
+ return {
114
+ type: object.type,
115
+ categories,
116
+ series,
117
+ ...(object.stacked ? { stacked: true } : {}),
118
+ };
119
+ }
120
+ /**
121
+ * A chart over a selected block, the way Insert > Chart guesses it: a
122
+ * header row when the first row is text over numbers, series down the
123
+ * columns, anchored just below the block.
124
+ */
125
+ export function chartFromRange(range, valueAt, anchor) {
126
+ const [r1, c1, r2, c2] = range;
127
+ // A header row: the first row is text and the second has a number under it.
128
+ let headers = false;
129
+ if (r2 > r1) {
130
+ let text = 0;
131
+ let numbers = 0;
132
+ for (let c = c1; c <= c2; c += 1) {
133
+ if (typeof valueAt(r1, c) === 'string' && String(valueAt(r1, c)).trim() !== '')
134
+ text += 1;
135
+ if (numberOf(valueAt(r1 + 1, c)) !== null)
136
+ numbers += 1;
137
+ }
138
+ headers = text > 0 && numbers > 0;
139
+ }
140
+ return {
141
+ id: objectId(),
142
+ kind: 'chart',
143
+ anchor: { row: r2 + 1, col: c1, dx: 8, dy: 8, width: 420, height: 260, ...anchor },
144
+ range: [r1, c1, r2, c2],
145
+ type: 'bar',
146
+ headers,
147
+ series: 'columns',
148
+ };
149
+ }
@@ -0,0 +1,44 @@
1
+ import { type TableRefToken } from './tokenize.js';
2
+ import type { SheetDocument, SheetState } from './document.js';
3
+ import { type ZipCtor } from './xlsx-document.js';
4
+ /** A length as CSS writes it (`1.9445in`, `2.54cm`, `12pt`) in pixels. */
5
+ export declare function odfLength(text: string | null): number | null;
6
+ /**
7
+ * An ODF formula as A1.
8
+ *
9
+ * `of:=SUM([.A1:.A3])` is `=SUM(A1:A3)`; a reference into another sheet is
10
+ * `[$Sheet2.A1]` or `[$'Price list'.A1]`; arguments are separated by `;`.
11
+ * The newer functions carry a vendor prefix, which is the same function
12
+ * under a longer name.
13
+ */
14
+ export declare function formulaFromOdf(text: string): string;
15
+ /**
16
+ * What a structured reference points at, for a writer that has a workbook:
17
+ * ODF has no `Orders[Amount]`, so one has to become the rectangle it names
18
+ * or the formula cannot be written at all.
19
+ */
20
+ export type TableResolver = (token: TableRefToken) => {
21
+ sheet: string | null;
22
+ r1: number;
23
+ c1: number;
24
+ r2: number;
25
+ c2: number;
26
+ } | null;
27
+ /**
28
+ * An A1 formula as ODF writes one: every reference in brackets, `;` between
29
+ * arguments. Rebuilt from the tokens rather than by substitution, so a comma
30
+ * inside a string stays a comma and `A1` inside one is not a reference.
31
+ *
32
+ * Returns null when the formula cannot be spelled in ODF - a structured
33
+ * reference with no workbook to resolve it - so the caller can write the
34
+ * cell's value on its own rather than a formula the reader would refuse.
35
+ */
36
+ export declare function formulaToOdf(text: string, resolve?: TableResolver): string | null;
37
+ /** The document an .ods holds, from its unzipped parts. */
38
+ export declare function sheetStateFromOds(parts: Record<string, string>): SheetState;
39
+ /** The document an .ods file holds, as a saved state. */
40
+ export declare function documentFromOds(file: Blob | ArrayBuffer | Uint8Array, JSZip?: ZipCtor): Promise<SheetState>;
41
+ /** The parts of an .ods package, as text. */
42
+ export declare function documentToOdsParts(doc: SheetDocument): Record<string, string>;
43
+ /** The document as an .ods Blob: what File > Save As writes for LibreOffice. */
44
+ export declare function documentToOds(doc: SheetDocument, JSZip?: ZipCtor): Promise<Blob>;