@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,31 @@
1
+ import type { Node } from './ast.js';
2
+ export type DefinedName = {
3
+ name: string;
4
+ /** What it refers to, e.g. `=Sheet1!$B$1` or `=$A$1:$C$9`. */
5
+ refersTo: string;
6
+ };
7
+ export type SheetNames = {
8
+ define(name: string, refersTo: string): void;
9
+ remove(name: string): void;
10
+ has(name: string): boolean;
11
+ /** The parsed reference behind a name, or null when undefined or unparseable. */
12
+ resolve(name: string): Node | null;
13
+ list(): DefinedName[];
14
+ serialize(): Record<string, string>;
15
+ hydrate(entries: Record<string, string>): void;
16
+ clear(): void;
17
+ };
18
+ /**
19
+ * Excel's rules, and the ones worth enforcing because a name that looks like a
20
+ * reference makes every formula containing it ambiguous:
21
+ * - starts with a letter or underscore
22
+ * - letters, digits, underscores and dots after that
23
+ * - not something that reads as a CELL reference (`A1`, `$A$1`)
24
+ * - not `R` or `C`, which Excel reserves for R1C1 notation
25
+ *
26
+ * A bare word like `Tax` is fine even though `TAX` is a valid column label:
27
+ * the tokenizer only reads a word as a column when it is qualified by a sheet
28
+ * or followed by a colon, so `=Tax` is never ambiguous.
29
+ */
30
+ export declare function isValidName(name: string): boolean;
31
+ export declare function createNames(initial?: Record<string, string>): SheetNames;
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Defined names: `Tax` resolving to `Sheet1!$B$1`, so a formula can say
3
+ * `=Subtotal*Tax` instead of `=D5*$B$1`.
4
+ *
5
+ * Names are stored as the TEXT they refer to rather than a parsed reference,
6
+ * because that is what the user typed and what round-trips to xlsx. Resolution
7
+ * parses on demand and caches nothing: names change rarely and resolving is
8
+ * cheap next to evaluating the formula that asked.
9
+ */
10
+ import { parseFormula } from './parse.js';
11
+ /**
12
+ * Excel's rules, and the ones worth enforcing because a name that looks like a
13
+ * reference makes every formula containing it ambiguous:
14
+ * - starts with a letter or underscore
15
+ * - letters, digits, underscores and dots after that
16
+ * - not something that reads as a CELL reference (`A1`, `$A$1`)
17
+ * - not `R` or `C`, which Excel reserves for R1C1 notation
18
+ *
19
+ * A bare word like `Tax` is fine even though `TAX` is a valid column label:
20
+ * the tokenizer only reads a word as a column when it is qualified by a sheet
21
+ * or followed by a colon, so `=Tax` is never ambiguous.
22
+ */
23
+ export function isValidName(name) {
24
+ if (!/^[A-Za-z_][A-Za-z0-9_.]*$/.test(name))
25
+ return false;
26
+ if (name.length > 255)
27
+ return false;
28
+ // Letters followed by digits is a cell reference, whatever else it spells.
29
+ if (/^\$?[A-Za-z]{1,3}\$?\d+$/.test(name))
30
+ return false;
31
+ if (/^[RC]$/i.test(name))
32
+ return false;
33
+ if (/^(TRUE|FALSE)$/i.test(name))
34
+ return false;
35
+ return true;
36
+ }
37
+ export function createNames(initial) {
38
+ // Names are case-insensitive in Excel but keep the case they were defined
39
+ // with, so the map keys on the uppercase form and the entry holds the
40
+ // original.
41
+ const byUpper = new Map();
42
+ const api = {
43
+ define(name, refersTo) {
44
+ if (!isValidName(name)) {
45
+ throw new Error(`"${name}" is not a valid defined name: it must start with a letter ` +
46
+ 'or underscore and must not look like a cell reference.');
47
+ }
48
+ byUpper.set(name.toUpperCase(), { name, refersTo });
49
+ },
50
+ remove(name) {
51
+ byUpper.delete(name.toUpperCase());
52
+ },
53
+ has(name) {
54
+ return byUpper.has(name.toUpperCase());
55
+ },
56
+ resolve(name) {
57
+ const entry = byUpper.get(name.toUpperCase());
58
+ if (!entry)
59
+ return null;
60
+ try {
61
+ return parseFormula(entry.refersTo);
62
+ }
63
+ catch {
64
+ return null;
65
+ }
66
+ },
67
+ list() {
68
+ return [...byUpper.values()].sort((a, b) => a.name.localeCompare(b.name));
69
+ },
70
+ serialize() {
71
+ return Object.fromEntries([...byUpper.values()].map((e) => [e.name, e.refersTo]));
72
+ },
73
+ hydrate(entries) {
74
+ byUpper.clear();
75
+ for (const [name, refersTo] of Object.entries(entries)) {
76
+ if (isValidName(name))
77
+ byUpper.set(name.toUpperCase(), { name, refersTo });
78
+ }
79
+ },
80
+ clear() {
81
+ byUpper.clear();
82
+ },
83
+ };
84
+ if (initial)
85
+ api.hydrate(initial);
86
+ return api;
87
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Excel's jump-to-edge navigation, as pure functions over a cell-value lookup.
3
+ *
4
+ * `Ctrl+Arrow` is not "move a long way". It is a run-boundary search, and the
5
+ * rule flips depending on what you are standing on:
6
+ *
7
+ * - Standing on a FILLED cell with a filled neighbour: run to the LAST filled
8
+ * cell before the next blank. This is how you get from the top of a column
9
+ * to its bottom in one press.
10
+ * - Standing on a FILLED cell whose neighbour is blank: skip the blank run
11
+ * and land on the NEXT filled cell. This is how you hop between blocks.
12
+ * - Standing on a BLANK cell: skip to the next filled cell.
13
+ * - Nothing filled ahead in either case: land on the last cell of the sheet
14
+ * in that direction, which is what Ctrl+Down does on an empty column.
15
+ *
16
+ * Getting this wrong in the obvious way (always run to the end of the filled
17
+ * block) means the shortcut stops working the moment there is a gap, which is
18
+ * most real spreadsheets.
19
+ */
20
+ /** What counts as empty. Excel treats a cell holding an empty string as blank
21
+ * for navigation, and so does this: a column of `''` should not trap the
22
+ * cursor. A zero, a `false` and a whitespace-only string are all content. */
23
+ export declare function isBlankValue(value: unknown): boolean;
24
+ export type Direction = 'up' | 'down' | 'left' | 'right';
25
+ export type Grid = {
26
+ rowCount: number;
27
+ colCount: number;
28
+ isBlank(row: number, col: number): boolean;
29
+ };
30
+ export type Cell = {
31
+ row: number;
32
+ col: number;
33
+ };
34
+ /**
35
+ * Where `Ctrl+Arrow` lands from `from`, going `dir`. Never returns a cell off
36
+ * the sheet, and returns `from` unchanged when it is already on the edge.
37
+ */
38
+ export declare function edgeOfRegion(grid: Grid, from: Cell, dir: Direction): Cell;
39
+ export type Rect = readonly [minRow: number, minCol: number, maxRow: number, maxCol: number];
40
+ /**
41
+ * Excel's `Ctrl+A` first press: the contiguous block of non-blank cells around
42
+ * `from`, grown outward until every bounding edge is blank.
43
+ *
44
+ * Grown as a rectangle rather than flood-filled, because that is what Excel
45
+ * selects: a block with a notch in it still comes back as the rectangle that
46
+ * encloses it. Returns the single cell when `from` sits alone in white space.
47
+ */
48
+ export declare function currentRegion(grid: Grid, from: Cell): Rect;
49
+ /** Whether `rect` already covers every cell, so `Ctrl+A` should stop growing. */
50
+ export declare function isWholeSheet(grid: Grid, rect: Rect): boolean;
51
+ /** The whole sheet as a rectangle. */
52
+ export declare function wholeSheet(grid: Grid): Rect;
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Excel's jump-to-edge navigation, as pure functions over a cell-value lookup.
3
+ *
4
+ * `Ctrl+Arrow` is not "move a long way". It is a run-boundary search, and the
5
+ * rule flips depending on what you are standing on:
6
+ *
7
+ * - Standing on a FILLED cell with a filled neighbour: run to the LAST filled
8
+ * cell before the next blank. This is how you get from the top of a column
9
+ * to its bottom in one press.
10
+ * - Standing on a FILLED cell whose neighbour is blank: skip the blank run
11
+ * and land on the NEXT filled cell. This is how you hop between blocks.
12
+ * - Standing on a BLANK cell: skip to the next filled cell.
13
+ * - Nothing filled ahead in either case: land on the last cell of the sheet
14
+ * in that direction, which is what Ctrl+Down does on an empty column.
15
+ *
16
+ * Getting this wrong in the obvious way (always run to the end of the filled
17
+ * block) means the shortcut stops working the moment there is a gap, which is
18
+ * most real spreadsheets.
19
+ */
20
+ /** What counts as empty. Excel treats a cell holding an empty string as blank
21
+ * for navigation, and so does this: a column of `''` should not trap the
22
+ * cursor. A zero, a `false` and a whitespace-only string are all content. */
23
+ export function isBlankValue(value) {
24
+ return value === null || value === undefined || value === '';
25
+ }
26
+ const STEP = {
27
+ up: { row: -1, col: 0 },
28
+ down: { row: 1, col: 0 },
29
+ left: { row: 0, col: -1 },
30
+ right: { row: 0, col: 1 },
31
+ };
32
+ function inBounds(grid, row, col) {
33
+ return row >= 0 && row < grid.rowCount && col >= 0 && col < grid.colCount;
34
+ }
35
+ /** The last cell in `dir` that is still on the sheet. */
36
+ function lastInDirection(grid, from, dir) {
37
+ switch (dir) {
38
+ case 'up': return { row: 0, col: from.col };
39
+ case 'down': return { row: Math.max(grid.rowCount - 1, 0), col: from.col };
40
+ case 'left': return { row: from.row, col: 0 };
41
+ case 'right': return { row: from.row, col: Math.max(grid.colCount - 1, 0) };
42
+ }
43
+ }
44
+ /**
45
+ * Where `Ctrl+Arrow` lands from `from`, going `dir`. Never returns a cell off
46
+ * the sheet, and returns `from` unchanged when it is already on the edge.
47
+ */
48
+ export function edgeOfRegion(grid, from, dir) {
49
+ if (grid.rowCount === 0 || grid.colCount === 0)
50
+ return from;
51
+ const step = STEP[dir];
52
+ const first = { row: from.row + step.row, col: from.col + step.col };
53
+ if (!inBounds(grid, first.row, first.col))
54
+ return from;
55
+ const startFilled = !grid.isBlank(from.row, from.col);
56
+ const nextFilled = !grid.isBlank(first.row, first.col);
57
+ if (startFilled && nextFilled) {
58
+ // Run to the last filled cell before the next blank.
59
+ let cur = first;
60
+ for (;;) {
61
+ const ahead = { row: cur.row + step.row, col: cur.col + step.col };
62
+ if (!inBounds(grid, ahead.row, ahead.col) || grid.isBlank(ahead.row, ahead.col))
63
+ return cur;
64
+ cur = ahead;
65
+ }
66
+ }
67
+ // Otherwise skip ahead to the next filled cell.
68
+ let cur = first;
69
+ for (;;) {
70
+ if (!grid.isBlank(cur.row, cur.col))
71
+ return cur;
72
+ const ahead = { row: cur.row + step.row, col: cur.col + step.col };
73
+ // Nothing filled the whole way: Excel parks you on the last cell.
74
+ if (!inBounds(grid, ahead.row, ahead.col))
75
+ return lastInDirection(grid, from, dir);
76
+ cur = ahead;
77
+ }
78
+ }
79
+ /**
80
+ * Excel's `Ctrl+A` first press: the contiguous block of non-blank cells around
81
+ * `from`, grown outward until every bounding edge is blank.
82
+ *
83
+ * Grown as a rectangle rather than flood-filled, because that is what Excel
84
+ * selects: a block with a notch in it still comes back as the rectangle that
85
+ * encloses it. Returns the single cell when `from` sits alone in white space.
86
+ */
87
+ export function currentRegion(grid, from) {
88
+ if (grid.rowCount === 0 || grid.colCount === 0)
89
+ return [0, 0, 0, 0];
90
+ let minRow = from.row;
91
+ let maxRow = from.row;
92
+ let minCol = from.col;
93
+ let maxCol = from.col;
94
+ const edgeHasContent = (r0, r1, c0, c1) => {
95
+ for (let r = r0; r <= r1; r += 1) {
96
+ for (let c = c0; c <= c1; c += 1) {
97
+ if (inBounds(grid, r, c) && !grid.isBlank(r, c))
98
+ return true;
99
+ }
100
+ }
101
+ return false;
102
+ };
103
+ // Keep growing while any bounding edge still touches content. One side
104
+ // growing can expose content on another, so this repeats until stable.
105
+ for (let grew = true; grew;) {
106
+ grew = false;
107
+ if (minRow > 0 && edgeHasContent(minRow - 1, minRow - 1, minCol, maxCol)) {
108
+ minRow -= 1;
109
+ grew = true;
110
+ }
111
+ if (maxRow < grid.rowCount - 1 && edgeHasContent(maxRow + 1, maxRow + 1, minCol, maxCol)) {
112
+ maxRow += 1;
113
+ grew = true;
114
+ }
115
+ if (minCol > 0 && edgeHasContent(minRow, maxRow, minCol - 1, minCol - 1)) {
116
+ minCol -= 1;
117
+ grew = true;
118
+ }
119
+ if (maxCol < grid.colCount - 1 && edgeHasContent(minRow, maxRow, maxCol + 1, maxCol + 1)) {
120
+ maxCol += 1;
121
+ grew = true;
122
+ }
123
+ }
124
+ return [minRow, minCol, maxRow, maxCol];
125
+ }
126
+ /** Whether `rect` already covers every cell, so `Ctrl+A` should stop growing. */
127
+ export function isWholeSheet(grid, rect) {
128
+ return (rect[0] === 0 && rect[1] === 0 &&
129
+ rect[2] === Math.max(grid.rowCount - 1, 0) &&
130
+ rect[3] === Math.max(grid.colCount - 1, 0));
131
+ }
132
+ /** The whole sheet as a rectangle. */
133
+ export function wholeSheet(grid) {
134
+ return [0, 0, Math.max(grid.rowCount - 1, 0), Math.max(grid.colCount - 1, 0)];
135
+ }
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Excel number-format strings, compiled once and applied many times.
3
+ *
4
+ * The grammar is small but full of traps, so this file is explicit about the
5
+ * ones that bite:
6
+ *
7
+ * - A pattern has up to four sections separated by `;`:
8
+ * positive;negative;zero;text. With two, the second covers negatives AND
9
+ * zero. With one, it covers everything. A negative rendered by section two
10
+ * uses its ABSOLUTE value, which is why `0.00;(0.00)` shows `(1.50)` and
11
+ * not `(-1.50)`.
12
+ * - `,` means two different things. Between placeholders it is a thousands
13
+ * separator; immediately before the decimal point (or at the end) it scales
14
+ * the number down by a thousand per comma.
15
+ * - `%` scales UP by 100 and prints a literal percent.
16
+ * - `0` prints a digit or a zero, `#` prints a digit or nothing, `?` prints a
17
+ * digit or a space. They can be mixed: `#,##0.0#` keeps one decimal always
18
+ * and a second only when it is there.
19
+ * - Anything in quotes, after a backslash, or in the set of always-literal
20
+ * characters is emitted as-is.
21
+ * - `[Red]` and friends set a colour rather than printing.
22
+ * - `@` is the text placeholder and only appears in the fourth section.
23
+ *
24
+ * Dates are detected rather than configured: a pattern containing date tokens
25
+ * outside quotes is a date pattern. `m` is minutes when it follows an hour
26
+ * token and months otherwise, which is the one piece of context the token
27
+ * scanner has to carry.
28
+ */
29
+ export type CompiledFormat = {
30
+ /** Render a value. `color` is set when the matching section named one. */
31
+ format(value: unknown): {
32
+ text: string;
33
+ color?: string;
34
+ };
35
+ /** The pattern this was compiled from, for round-tripping to xlsx. */
36
+ readonly pattern: string;
37
+ };
38
+ /**
39
+ * The marks a rendered number carries.
40
+ *
41
+ * The PATTERN is always written the invariant way, `#,##0.00`, whatever
42
+ * the locale: that is how Excel stores one and how the file carries it.
43
+ * These are what the pattern's `,` and `.` come out AS.
44
+ */
45
+ export type NumberMarks = {
46
+ decimal: string;
47
+ group: string;
48
+ };
49
+ export declare const INVARIANT_MARKS: NumberMarks;
50
+ export declare function compileNumberFormat(pattern: string, marks?: NumberMarks): CompiledFormat;
51
+ /** Format one value against a pattern. Convenience over compile-then-call. */
52
+ export declare function formatWithPattern(value: unknown, pattern: string): string;
53
+ /** The presets behind Ctrl+Shift+1 through 6 and the ribbon's $ % , buttons.
54
+ * Percent is Excel's Percent Style, no decimals: 0.425 reads 43%. */
55
+ export declare const FORMAT_PRESETS: {
56
+ readonly general: "General";
57
+ readonly number: "#,##0.00";
58
+ readonly time: "h:mm AM/PM";
59
+ readonly date: "yyyy-mm-dd";
60
+ readonly currency: "$#,##0.00;($#,##0.00)";
61
+ readonly accounting: "_($* #,##0.00_);_($* (#,##0.00);_($* \"-\"??_);_(@_)";
62
+ readonly percent: "0%";
63
+ readonly scientific: "0.00E+00";
64
+ };
65
+ /** What the ribbon's Number Format combo applies for a category. Excel's
66
+ * "Percentage" there carries two decimals where its % button carries none;
67
+ * the other entries are the presets. */
68
+ export declare const FORMAT_CATEGORY_PATTERNS: Record<keyof typeof FORMAT_PRESETS, string>;
69
+ /** Excel's Special category: fixed-shape numbers laid into a mask. */
70
+ export declare const SPECIAL_FORMATS: {
71
+ readonly zip: {
72
+ readonly label: "Zip Code";
73
+ readonly pattern: "00000";
74
+ };
75
+ readonly zip4: {
76
+ readonly label: "Zip Code + 4";
77
+ readonly pattern: "00000-0000";
78
+ };
79
+ readonly phone: {
80
+ readonly label: "Phone Number";
81
+ readonly pattern: "[<=9999999]###-####;(###) ###-####";
82
+ };
83
+ readonly ssn: {
84
+ readonly label: "Social Security Number";
85
+ readonly pattern: "000-00-0000";
86
+ };
87
+ };
88
+ export type SpecialFormatName = keyof typeof SPECIAL_FORMATS;
89
+ /** The pattern Excel's Accounting category spells for a symbol and a
90
+ * number of decimals; an empty symbol is its "None". */
91
+ export declare function accountingPattern(symbol: string, decimals: number): string;
92
+ /** The symbol and decimals an accounting pattern was built from, or null
93
+ * when the pattern is not one `accountingPattern` would spell. */
94
+ export declare function accountingParts(fmt: string | undefined): {
95
+ symbol: string;
96
+ decimals: number;
97
+ } | null;
98
+ export type FormatPresetName = keyof typeof FORMAT_PRESETS;
99
+ /**
100
+ * Which of Excel's categories a pattern belongs to, with the decimals and
101
+ * separator it carries, so the ribbon's combo can say "Percentage" for a
102
+ * cell holding `0%` (a typed 12%) as well as for the combo's `0.00%`, and
103
+ * Format Cells can open on the right category. A pattern that is none of
104
+ * them is 'custom'.
105
+ */
106
+ export declare function formatCategory(fmt: string | undefined): {
107
+ category: FormatPresetName | 'special' | 'custom';
108
+ decimals: number;
109
+ thousands: boolean;
110
+ };