@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,43 @@
1
+ /**
2
+ * A1 addressing, with absolute and relative parts kept apart.
3
+ *
4
+ * Every demo copy of this engine does `part.replace(/\$/g, '')` and then treats
5
+ * what is left as relative, so `$A$1` parses and evaluates as `A1`. Nothing
6
+ * notices while nothing translates a formula. The moment fill-down, copy/paste
7
+ * or insert-row exists, `=$A$1*B2` copied down starts reading the wrong cell
8
+ * and quietly returns a plausible wrong number, which is the worst failure mode
9
+ * a spreadsheet has.
10
+ *
11
+ * So `$` is structure here, not noise: `parseA1` reports which halves were
12
+ * pinned, and `refs.ts` is the only module allowed to move the unpinned ones.
13
+ *
14
+ * Rows and columns are 0-based internally (`A1` is `{ row: 0, col: 0 }`) and
15
+ * 1-based on the wire, which is the same convention the grid's selection model
16
+ * uses so nothing has to convert at the boundary.
17
+ */
18
+ /** A parsed cell reference. `row: null` means a whole-column ref (`A:A`). */
19
+ export type CellRef = {
20
+ col: number;
21
+ colAbs: boolean;
22
+ /** null for a column-only reference. */
23
+ row: number | null;
24
+ rowAbs: boolean;
25
+ /** null means "the sheet the formula lives on". */
26
+ sheet: string | null;
27
+ };
28
+ /** 0-based column index to letters: 0 -> A, 25 -> Z, 26 -> AA. */
29
+ export declare function colToLetters(col: number): string;
30
+ /** Letters to a 0-based column index. Returns -1 for anything unparseable. */
31
+ export declare function lettersToCol(letters: string): number;
32
+ /**
33
+ * Parse one reference part: `A1`, `$A$1`, `A$1`, `$A1`, or a bare column `A`.
34
+ * Returns null when the text is not a reference at all, which is how the
35
+ * tokenizer tells a reference from a bare name.
36
+ */
37
+ export declare function parseA1(text: string, sheet?: string | null): CellRef | null;
38
+ /** Render a reference back to A1, `$` included, sheet prefix and all. */
39
+ export declare function formatA1(ref: CellRef): string;
40
+ /** A sheet name needs quoting unless it is a bare word. */
41
+ export declare function quoteSheet(name: string): string;
42
+ /** True when the reference points outside a sheet of this size. */
43
+ export declare function isOutOfBounds(ref: CellRef, rowCount: number, colCount: number): boolean;
@@ -0,0 +1,81 @@
1
+ /**
2
+ * A1 addressing, with absolute and relative parts kept apart.
3
+ *
4
+ * Every demo copy of this engine does `part.replace(/\$/g, '')` and then treats
5
+ * what is left as relative, so `$A$1` parses and evaluates as `A1`. Nothing
6
+ * notices while nothing translates a formula. The moment fill-down, copy/paste
7
+ * or insert-row exists, `=$A$1*B2` copied down starts reading the wrong cell
8
+ * and quietly returns a plausible wrong number, which is the worst failure mode
9
+ * a spreadsheet has.
10
+ *
11
+ * So `$` is structure here, not noise: `parseA1` reports which halves were
12
+ * pinned, and `refs.ts` is the only module allowed to move the unpinned ones.
13
+ *
14
+ * Rows and columns are 0-based internally (`A1` is `{ row: 0, col: 0 }`) and
15
+ * 1-based on the wire, which is the same convention the grid's selection model
16
+ * uses so nothing has to convert at the boundary.
17
+ */
18
+ /** 0-based column index to letters: 0 -> A, 25 -> Z, 26 -> AA. */
19
+ export function colToLetters(col) {
20
+ if (!Number.isInteger(col) || col < 0)
21
+ return '';
22
+ let n = col;
23
+ let out = '';
24
+ while (n >= 0) {
25
+ out = String.fromCharCode(65 + (n % 26)) + out;
26
+ n = Math.floor(n / 26) - 1;
27
+ }
28
+ return out;
29
+ }
30
+ /** Letters to a 0-based column index. Returns -1 for anything unparseable. */
31
+ export function lettersToCol(letters) {
32
+ if (!letters || !/^[A-Za-z]+$/.test(letters))
33
+ return -1;
34
+ let col = 0;
35
+ for (const ch of letters.toUpperCase())
36
+ col = col * 26 + (ch.charCodeAt(0) - 64);
37
+ return col - 1;
38
+ }
39
+ const REF_RE = /^(\$?)([A-Za-z]+)(?:(\$?)(\d+))?$/;
40
+ /**
41
+ * Parse one reference part: `A1`, `$A$1`, `A$1`, `$A1`, or a bare column `A`.
42
+ * Returns null when the text is not a reference at all, which is how the
43
+ * tokenizer tells a reference from a bare name.
44
+ */
45
+ export function parseA1(text, sheet = null) {
46
+ const m = REF_RE.exec(text);
47
+ if (!m)
48
+ return null;
49
+ const col = lettersToCol(m[2]);
50
+ if (col < 0)
51
+ return null;
52
+ const rowText = m[4];
53
+ if (rowText === undefined) {
54
+ return { col, colAbs: m[1] === '$', row: null, rowAbs: false, sheet };
55
+ }
56
+ const row = Number(rowText) - 1;
57
+ // Row 0 does not exist in A1 notation; `A0` is a name, not a reference.
58
+ if (!Number.isInteger(row) || row < 0)
59
+ return null;
60
+ return { col, colAbs: m[1] === '$', row, rowAbs: m[3] === '$', sheet };
61
+ }
62
+ /** Render a reference back to A1, `$` included, sheet prefix and all. */
63
+ export function formatA1(ref) {
64
+ const col = `${ref.colAbs ? '$' : ''}${colToLetters(ref.col)}`;
65
+ const cell = ref.row === null ? col : `${col}${ref.rowAbs ? '$' : ''}${ref.row + 1}`;
66
+ if (ref.sheet === null)
67
+ return cell;
68
+ return `${quoteSheet(ref.sheet)}!${cell}`;
69
+ }
70
+ /** A sheet name needs quoting unless it is a bare word. */
71
+ export function quoteSheet(name) {
72
+ return /^[A-Za-z_][A-Za-z0-9_.]*$/.test(name) ? name : `'${name.replace(/'/g, "''")}'`;
73
+ }
74
+ /** True when the reference points outside a sheet of this size. */
75
+ export function isOutOfBounds(ref, rowCount, colCount) {
76
+ if (ref.col < 0 || ref.col >= colCount)
77
+ return true;
78
+ if (ref.row === null)
79
+ return false;
80
+ return ref.row < 0 || ref.row >= rowCount;
81
+ }
@@ -0,0 +1,138 @@
1
+ /**
2
+ * The formula AST and the error vocabulary, in their own module so the
3
+ * tokenizer, parser, evaluator and the reference rewriter can all import the
4
+ * shapes without importing each other.
5
+ */
6
+ import type { CellRef } from './address.js';
7
+ export type SheetError = '#REF!' | '#CYCLE!' | '#DIV/0!' | '#VALUE!' | '#NAME?' | '#NUM!' | '#N/A' | '#PARSE!' | '#SPILL!' | '#CALC!'
8
+ /** Excel's empty intersection. Nothing here produces it; a file can
9
+ * carry it, and a formula can name it, so it is one of the values. */
10
+ | '#NULL!';
11
+ /** A computed cell value. Errors are values, not exceptions, once evaluation
12
+ * finishes - that is what lets `=IFERROR(A1, 0)` see one. */
13
+ export type CellValue = string | number | boolean | {
14
+ error: SheetError;
15
+ };
16
+ export declare function isError(v: CellValue): v is {
17
+ error: SheetError;
18
+ };
19
+ export declare function err(code: SheetError): {
20
+ error: SheetError;
21
+ };
22
+ /** The error a typed text stands for, or null when it is ordinary text. */
23
+ export declare function typedError(text: string): {
24
+ error: SheetError;
25
+ } | null;
26
+ /** Thrown during evaluation and caught at the boundary, where it becomes a
27
+ * value. Carrying the code on a real Error keeps stack traces useful in dev
28
+ * without the evaluator having to thread a result type through every branch. */
29
+ export declare class FormulaError extends Error {
30
+ readonly code: SheetError;
31
+ constructor(code: SheetError);
32
+ }
33
+ export type Node = {
34
+ k: 'num';
35
+ v: number;
36
+ } | {
37
+ k: 'str';
38
+ v: string;
39
+ } | {
40
+ k: 'bool';
41
+ v: boolean;
42
+ }
43
+ /** An error written INTO a formula: `=#N/A`, `=IFERROR(A1, #N/A)`. Excel
44
+ * takes one as a value, and a file from Excel, Google Sheets or
45
+ * LibreOffice can carry an error cell as a formula that is only this. */
46
+ | {
47
+ k: 'err';
48
+ v: SheetError;
49
+ }
50
+ /** A single cell. `ref.row` is never null here; a column-only reference
51
+ * parses as a range instead. */
52
+ | {
53
+ k: 'ref';
54
+ ref: CellRef;
55
+ }
56
+ /**
57
+ * The spilled-range operator, `A1#`: the rectangle a dynamic array
58
+ * anchored at `ref` currently spills into. Like a table reference, it is
59
+ * NOT resolved to a range here - the rectangle depends on how far the
60
+ * array spills right now, which changes as the array grows, so it is
61
+ * resolved against the workbook at evaluation. `ref.row` is never null.
62
+ */
63
+ | {
64
+ k: 'spill';
65
+ ref: CellRef;
66
+ }
67
+ /** A rectangle. Either end's row may be null, meaning a whole-column ref
68
+ * that runs to the last used row of the sheet. */
69
+ | {
70
+ k: 'range';
71
+ from: CellRef;
72
+ to: CellRef;
73
+ }
74
+ /**
75
+ * A 3D reference: `Sheet1:Sheet3!A1` or `Jan:Dec!B5:B10`. The same cell or
76
+ * rectangle on every sheet from `sheetFrom` to `sheetTo` in tab order,
77
+ * inclusive. `from`/`to` carry no sheet of their own (the sheets are the
78
+ * range); resolved against the workbook's sheet order at evaluation, so a
79
+ * tab inserted between the two joins the sum, as Excel's does. */
80
+ | {
81
+ k: 'ref3d';
82
+ sheetFrom: string;
83
+ sheetTo: string;
84
+ from: CellRef;
85
+ to: CellRef;
86
+ }
87
+ /** A defined name (`=Tax`), resolved against the workbook at evaluation. */
88
+ | {
89
+ k: 'name';
90
+ name: string;
91
+ }
92
+ /**
93
+ * A structured reference: `Orders[Amount]`, `[@Amount]`, `Orders[#Totals]`.
94
+ *
95
+ * Deliberately NOT resolved to a range here. The range a table reference
96
+ * means depends on how many rows the table has right now, and the AST is
97
+ * cached across the edits that change that. Resolving at parse time is how
98
+ * a total silently stops covering rows added after it was typed, which is
99
+ * the exact problem tables exist to fix.
100
+ */
101
+ | {
102
+ k: 'table';
103
+ /** null for the unqualified `[Amount]` form, which only means
104
+ * something inside a table. */
105
+ table: string | null;
106
+ /** null when the reference names no column, e.g. `Orders[#All]`. */
107
+ column: string | null;
108
+ /** The far end of a column span: `Orders[[Qty]:[Amount]]`. */
109
+ columnTo?: string | null;
110
+ specifier: '#All' | '#Data' | '#Headers' | '#Totals' | '#ThisRow';
111
+ } | {
112
+ k: 'unary';
113
+ op: '-' | '+' | '%';
114
+ arg: Node;
115
+ } | {
116
+ k: 'binary';
117
+ op: BinaryOp;
118
+ left: Node;
119
+ right: Node;
120
+ } | {
121
+ k: 'fn';
122
+ name: string;
123
+ args: Node[];
124
+ }
125
+ /** An omitted argument: the gap in `PMT(rate, nper, pv, , 1)`. Reads as a
126
+ * blank, so a function sees its default the way it does when the
127
+ * argument is simply left off the end. */
128
+ | {
129
+ k: 'empty';
130
+ };
131
+ export type BinaryOp = '+' | '-' | '*' | '/' | '^' | '&' | '=' | '<>' | '<' | '>' | '<=' | '>=';
132
+ /** Binding power. Comparison loosest, then concat, then arithmetic. */
133
+ export declare const PRECEDENCE: Record<BinaryOp, number>;
134
+ /** Walk every node, parents before children. */
135
+ export declare function visit(node: Node, fn: (n: Node) => void): void;
136
+ /** Rebuild the tree with `fn` applied to every node, deepest first. Used by
137
+ * the reference rewriter, which must not mutate a cached AST in place. */
138
+ export declare function mapNode(node: Node, fn: (n: Node) => Node): Node;
@@ -0,0 +1,70 @@
1
+ export function isError(v) {
2
+ return typeof v === 'object' && v !== null && 'error' in v;
3
+ }
4
+ export function err(code) {
5
+ return { error: code };
6
+ }
7
+ /** The error codes a user can type into a cell. Excel stores what is typed
8
+ * as the error itself, so =ISNA(A1) over a cell holding #N/A is TRUE.
9
+ * #PARSE! is ours, not Excel's, and no one types it. */
10
+ const TYPED_ERRORS = [
11
+ '#REF!', '#DIV/0!', '#VALUE!', '#NAME?', '#NUM!', '#N/A', '#SPILL!', '#CALC!', '#CYCLE!', '#NULL!',
12
+ ];
13
+ /** The error a typed text stands for, or null when it is ordinary text. */
14
+ export function typedError(text) {
15
+ if (!text.startsWith('#'))
16
+ return null;
17
+ const upper = text.toUpperCase();
18
+ const found = TYPED_ERRORS.find((code) => code === upper);
19
+ return found ? { error: found } : null;
20
+ }
21
+ /** Thrown during evaluation and caught at the boundary, where it becomes a
22
+ * value. Carrying the code on a real Error keeps stack traces useful in dev
23
+ * without the evaluator having to thread a result type through every branch. */
24
+ export class FormulaError extends Error {
25
+ constructor(code) {
26
+ super(code);
27
+ this.name = 'FormulaError';
28
+ this.code = code;
29
+ }
30
+ }
31
+ /** Binding power. Comparison loosest, then concat, then arithmetic. */
32
+ export const PRECEDENCE = {
33
+ '=': 1, '<>': 1, '<': 1, '>': 1, '<=': 1, '>=': 1,
34
+ '&': 2,
35
+ '+': 3, '-': 3,
36
+ '*': 4, '/': 4,
37
+ '^': 5,
38
+ };
39
+ /** Walk every node, parents before children. */
40
+ export function visit(node, fn) {
41
+ fn(node);
42
+ switch (node.k) {
43
+ case 'unary':
44
+ visit(node.arg, fn);
45
+ break;
46
+ case 'binary':
47
+ visit(node.left, fn);
48
+ visit(node.right, fn);
49
+ break;
50
+ case 'fn':
51
+ for (const a of node.args)
52
+ visit(a, fn);
53
+ break;
54
+ default: break;
55
+ }
56
+ }
57
+ /** Rebuild the tree with `fn` applied to every node, deepest first. Used by
58
+ * the reference rewriter, which must not mutate a cached AST in place. */
59
+ export function mapNode(node, fn) {
60
+ switch (node.k) {
61
+ case 'unary':
62
+ return fn({ ...node, arg: mapNode(node.arg, fn) });
63
+ case 'binary':
64
+ return fn({ ...node, left: mapNode(node.left, fn), right: mapNode(node.right, fn) });
65
+ case 'fn':
66
+ return fn({ ...node, args: node.args.map((a) => mapNode(a, fn)) });
67
+ default:
68
+ return fn(node);
69
+ }
70
+ }
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Excel's AutoFilter: arrows on the header row of a region, each opening a
3
+ * menu of the column's values to tick and untick, or a condition (equals,
4
+ * greater than, contains, between...), and the rows that fail fold away.
5
+ * The rows are hidden through the grid's collapsed rows, kept apart from
6
+ * the rows the user hid by hand so Unhide and the saved document see
7
+ * only those.
8
+ *
9
+ * This module is the pure part: the state, the values a column offers,
10
+ * which rows a state hides, and how the state moves with an insert or
11
+ * delete. Conditions run through the grid's own Excel-filter compiler, so
12
+ * the operator semantics are the ones the grid's filter row has.
13
+ */
14
+ import { type ExcelFilterOperator } from '@svgrid/grid/filtering';
15
+ import { type CellValue } from './ast.js';
16
+ import type { StructuralEdit } from './refs.js';
17
+ import { type Rect } from './rects.js';
18
+ export type FilterCondition = {
19
+ op: ExcelFilterOperator;
20
+ value?: string;
21
+ valueTo?: string;
22
+ };
23
+ /** Excel's Date Filters: a period around today, or a bound typed as a date. */
24
+ export type DatePeriod = 'equals' | 'before' | 'after' | 'between' | 'tomorrow' | 'today' | 'yesterday' | 'nextWeek' | 'thisWeek' | 'lastWeek' | 'nextMonth' | 'thisMonth' | 'lastMonth' | 'nextQuarter' | 'thisQuarter' | 'lastQuarter' | 'nextYear' | 'thisYear' | 'lastYear' | 'yearToDate';
25
+ export type ColumnFilter = {
26
+ kind: 'values';
27
+ /** Display texts left unticked; '' stands for the blanks. */
28
+ excluded: string[];
29
+ /** The texts ticked, from a file that lists what is IN (Excel and ODF
30
+ * both do): wins over `excluded` while set. The menu writes the
31
+ * exclusion form back the next time the filter is applied. */
32
+ included?: string[];
33
+ } | {
34
+ kind: 'condition';
35
+ first: FilterCondition;
36
+ join?: 'and' | 'or';
37
+ second?: FilterCondition;
38
+ }
39
+ /** A date period; `value` and `valueTo` are `yyyy-mm-dd` for the typed bounds. */
40
+ | {
41
+ kind: 'date';
42
+ period: DatePeriod;
43
+ value?: string;
44
+ valueTo?: string;
45
+ }
46
+ /** Excel's Filter by Color: the cell's fill, or null for the cells with none. */
47
+ | {
48
+ kind: 'color';
49
+ fill: string | null;
50
+ }
51
+ /** Excel's Top 10: the `count` largest (or smallest) values, or that percent of the rows. */
52
+ | {
53
+ kind: 'top';
54
+ top: boolean;
55
+ count: number;
56
+ percent?: boolean;
57
+ };
58
+ /** What a filter reads beside the cell's value and text. */
59
+ export type FilterContext = {
60
+ /** The cell's fill, its own or a conditional format's; null when none. */
61
+ fillAt?: (r: number, c: number) => string | null;
62
+ /** The day the date periods count from. */
63
+ today?: Date;
64
+ };
65
+ export type AutoFilterState = {
66
+ /** The region, header row first. */
67
+ range: Rect;
68
+ /** Filters by column index; a column absent here shows every row. */
69
+ filters: Record<number, ColumnFilter>;
70
+ };
71
+ export type FilterValue = {
72
+ text: string;
73
+ count: number;
74
+ numeric: number | null;
75
+ };
76
+ /**
77
+ * The values a column offers, each once with its count: numbers first
78
+ * in order, then text A to Z, the blanks last. `rowVisible` leaves out the
79
+ * rows other columns' filters hide, as Excel's list does.
80
+ */
81
+ export declare function distinctValues(state: AutoFilterState, col: number, valueAt: (r: number, c: number) => CellValue, displayAt: (r: number, c: number) => string, rowVisible?: (r: number) => boolean): FilterValue[];
82
+ /**
83
+ * The first and last day of a period, as UTC day-start milliseconds,
84
+ * counted from `today`. Weeks run Sunday to Saturday; quarters are the
85
+ * calendar's. The typed periods read `value` and `valueTo`.
86
+ */
87
+ export declare function datePeriodBounds(filter: Extract<ColumnFilter, {
88
+ kind: 'date';
89
+ }>, today?: Date): [from: number, to: number] | null;
90
+ /**
91
+ * Whether a row passes one column's filter. A Top 10 filter needs the
92
+ * whole column to know its threshold, which `hiddenRowsFor` works out and
93
+ * passes as `topPasses`; on its own the filter passes everything.
94
+ */
95
+ export declare function passesFilter(filter: ColumnFilter, value: CellValue, display: string, extra?: {
96
+ fill?: string | null;
97
+ today?: Date;
98
+ topPasses?: (value: CellValue) => boolean;
99
+ }): boolean;
100
+ /**
101
+ * The rows the state hides: every row of the region under the header
102
+ * that fails a column's filter. Blanks past the region's edge are not in
103
+ * it, as Excel's region is what was filtered.
104
+ */
105
+ export declare function hiddenRowsFor(state: AutoFilterState | null, valueAt: (r: number, c: number) => CellValue, displayAt: (r: number, c: number) => string, ctx?: FilterContext): Set<number>;
106
+ /** The fills a column's cells carry, each once, first seen first; null
107
+ * stands for the cells with none. Excel's Filter by Color list. */
108
+ export declare function distinctFills(state: AutoFilterState, col: number, fillAt: (r: number, c: number) => string | null): Array<string | null>;
109
+ /** Whether a column reads as dates: every cell with something in it holds one. */
110
+ export declare function isDateColumn(values: ReadonlyArray<FilterValue>): boolean;
111
+ /** Whether any column is filtered. */
112
+ export declare function isFiltering(state: AutoFilterState | null): boolean;
113
+ /** The state with one column's filter set, or cleared with null. */
114
+ export declare function withColumnFilter(state: AutoFilterState, col: number, filter: ColumnFilter | null): AutoFilterState;
115
+ /** A values filter from the ticked list, or null when everything is ticked. */
116
+ export declare function valuesFilter(all: ReadonlyArray<string>, ticked: ReadonlySet<string>): ColumnFilter | null;
117
+ /** The state after an insert or delete: the region moves, the filters follow their columns. */
118
+ export declare function shiftAutoFilter(state: AutoFilterState | null, edit: StructuralEdit): AutoFilterState | null;
119
+ /** A filter in words, for the menu's heading. */
120
+ export declare function describeFilter(filter: ColumnFilter): string;