@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,74 @@
1
+ /**
2
+ * What kind of thing a sheet tab is.
3
+ *
4
+ * A workbook's tabs have always been cell grids. A `grid` tab is the other
5
+ * thing a business workbook wants: a data-bound table, backed by records
6
+ * rather than by cells, sorted and filtered and edited as a grid rather
7
+ * than as a sheet.
8
+ *
9
+ * The trick that makes this cheap rather than a second engine: **a grid
10
+ * sheet PROJECTS its records into the workbook's cells.** The records are
11
+ * the truth, and after every change they are written into the same
12
+ * `string[][]` a cell sheet keeps, header row included. So
13
+ * `=SUM(Orders!D2:D99)` on a cell sheet reads a grid sheet with no new
14
+ * machinery at all: the formula engine, the dependency graph, the file
15
+ * writers and the printer never learn that this tab is different.
16
+ *
17
+ * The projection runs through `setRaw`, which ignores a write that changes
18
+ * nothing, so editing one field of one record rewrites one cell and
19
+ * recalculates what depended on it, not the sheet.
20
+ *
21
+ * What a grid sheet deliberately does NOT do: hold a formula of its own.
22
+ * Its cells are a rendering of its records, so anything typed into them
23
+ * would be overwritten by the next projection. A sheet that needs formulas
24
+ * beside the data is a cell sheet reading the grid one across.
25
+ */
26
+ import { type SheetField } from './from-rows.js';
27
+ export type SheetKind = 'cells' | 'grid';
28
+ /** One column of a grid sheet, as the sheet describes it. */
29
+ export type GridSheetField = SheetField & {
30
+ /** Narrow the editor and the alignment, as the grid's own columns do. */
31
+ type?: 'text' | 'number' | 'date' | 'boolean';
32
+ width?: number;
33
+ editable?: boolean;
34
+ };
35
+ export type GridSheetSpec = {
36
+ fields: GridSheetField[];
37
+ /** The records. A grid sheet's truth; the cells are made from these. */
38
+ rows: Array<Record<string, unknown>>;
39
+ /** Rows may be edited in place. Off by default, as a report would want. */
40
+ editable?: boolean;
41
+ /** A totals row under the records, summing every numeric column. */
42
+ totals?: boolean;
43
+ };
44
+ export declare const emptyGridSheet: () => GridSheetSpec;
45
+ /** The cells a grid sheet stands for: the header, the records, the totals. */
46
+ export declare function projectGridSheet(spec: GridSheetSpec): string[][];
47
+ /**
48
+ * Where a record sits in the projection.
49
+ *
50
+ * Row 0 is the header, so record `i` is at row `i + 1`. Kept as a function
51
+ * rather than inlined so the offset is named in one place: getting it
52
+ * wrong reads the header as a record and is silent.
53
+ */
54
+ export declare const rowOfRecord: (index: number) => number;
55
+ export declare const recordOfRow: (row: number) => number;
56
+ /** Is this row of the projection a record, rather than a header or total? */
57
+ export declare const isRecordRow: (spec: GridSheetSpec, row: number) => boolean;
58
+ /**
59
+ * A field's column in the projection, or -1.
60
+ *
61
+ * Matched on the field name rather than the label, since two columns may
62
+ * share a label and the name is what the record is keyed by.
63
+ */
64
+ export declare const columnOfField: (spec: GridSheetSpec, field: string) => number;
65
+ /** A deep-enough copy for a document snapshot. */
66
+ export declare const copyGridSheet: (spec: GridSheetSpec) => GridSheetSpec;
67
+ /**
68
+ * A value typed into a grid sheet, coerced to the field's type.
69
+ *
70
+ * The grid hands back whatever its editor produced, which for a number
71
+ * column typed into by hand is a string. Storing that would make the
72
+ * record's shape depend on how it was edited, so it is narrowed here once.
73
+ */
74
+ export declare function coerceFieldValue(field: GridSheetField, value: unknown): unknown;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * What kind of thing a sheet tab is.
3
+ *
4
+ * A workbook's tabs have always been cell grids. A `grid` tab is the other
5
+ * thing a business workbook wants: a data-bound table, backed by records
6
+ * rather than by cells, sorted and filtered and edited as a grid rather
7
+ * than as a sheet.
8
+ *
9
+ * The trick that makes this cheap rather than a second engine: **a grid
10
+ * sheet PROJECTS its records into the workbook's cells.** The records are
11
+ * the truth, and after every change they are written into the same
12
+ * `string[][]` a cell sheet keeps, header row included. So
13
+ * `=SUM(Orders!D2:D99)` on a cell sheet reads a grid sheet with no new
14
+ * machinery at all: the formula engine, the dependency graph, the file
15
+ * writers and the printer never learn that this tab is different.
16
+ *
17
+ * The projection runs through `setRaw`, which ignores a write that changes
18
+ * nothing, so editing one field of one record rewrites one cell and
19
+ * recalculates what depended on it, not the sheet.
20
+ *
21
+ * What a grid sheet deliberately does NOT do: hold a formula of its own.
22
+ * Its cells are a rendering of its records, so anything typed into them
23
+ * would be overwritten by the next projection. A sheet that needs formulas
24
+ * beside the data is a cell sheet reading the grid one across.
25
+ */
26
+ import { sheetCellsFromRows } from './from-rows.js';
27
+ export const emptyGridSheet = () => ({ fields: [], rows: [] });
28
+ /** The cells a grid sheet stands for: the header, the records, the totals. */
29
+ export function projectGridSheet(spec) {
30
+ return sheetCellsFromRows(spec.rows, spec.fields, spec.totals ? { totals: true } : {});
31
+ }
32
+ /**
33
+ * Where a record sits in the projection.
34
+ *
35
+ * Row 0 is the header, so record `i` is at row `i + 1`. Kept as a function
36
+ * rather than inlined so the offset is named in one place: getting it
37
+ * wrong reads the header as a record and is silent.
38
+ */
39
+ export const rowOfRecord = (index) => index + 1;
40
+ export const recordOfRow = (row) => row - 1;
41
+ /** Is this row of the projection a record, rather than a header or total? */
42
+ export const isRecordRow = (spec, row) => row >= 1 && row <= spec.rows.length;
43
+ /**
44
+ * A field's column in the projection, or -1.
45
+ *
46
+ * Matched on the field name rather than the label, since two columns may
47
+ * share a label and the name is what the record is keyed by.
48
+ */
49
+ export const columnOfField = (spec, field) => spec.fields.findIndex((f) => f.field === field);
50
+ /** A deep-enough copy for a document snapshot. */
51
+ export const copyGridSheet = (spec) => ({
52
+ fields: spec.fields.map((f) => ({ ...f })),
53
+ rows: spec.rows.map((r) => ({ ...r })),
54
+ ...(spec.editable !== undefined ? { editable: spec.editable } : {}),
55
+ ...(spec.totals !== undefined ? { totals: spec.totals } : {}),
56
+ });
57
+ /**
58
+ * A value typed into a grid sheet, coerced to the field's type.
59
+ *
60
+ * The grid hands back whatever its editor produced, which for a number
61
+ * column typed into by hand is a string. Storing that would make the
62
+ * record's shape depend on how it was edited, so it is narrowed here once.
63
+ */
64
+ export function coerceFieldValue(field, value) {
65
+ if (value === null || value === undefined || value === '')
66
+ return value === '' ? '' : null;
67
+ switch (field.type) {
68
+ case 'number': {
69
+ const n = typeof value === 'number' ? value : Number(String(value).trim());
70
+ return Number.isFinite(n) ? n : value;
71
+ }
72
+ case 'boolean': {
73
+ if (typeof value === 'boolean')
74
+ return value;
75
+ const text = String(value).trim().toLowerCase();
76
+ if (text === 'true' || text === 'yes' || text === '1')
77
+ return true;
78
+ if (text === 'false' || text === 'no' || text === '0')
79
+ return false;
80
+ return value;
81
+ }
82
+ case 'date': {
83
+ if (value instanceof Date)
84
+ return value;
85
+ const text = String(value).trim();
86
+ return text === '' ? null : text;
87
+ }
88
+ default:
89
+ return typeof value === 'string' ? value : String(value);
90
+ }
91
+ }
@@ -0,0 +1,174 @@
1
+ /**
2
+ * The Excel keymap, as a table rather than an if-chain, so the bindings can be
3
+ * read in one screen and tested as data.
4
+ *
5
+ * Matching is exact on modifiers: a binding that does not ask for shift will
6
+ * not fire when shift is held. Without that, Ctrl+Shift+Arrow would match the
7
+ * Ctrl+Arrow binding and the extend-selection variant would be unreachable.
8
+ */
9
+ import type { GridCommandContext } from '@svgrid/grid/shortcuts';
10
+ import { type Direction, type Grid, type Rect } from './navigate.js';
11
+ import { type FormatPresetName } from './number-format.js';
12
+ import type { SheetFormatStore, CellAddressLookup, CellFormatEntry } from './format-store.js';
13
+ import type { Workbook } from './workbook.js';
14
+ export type SheetCommand = (cmd: GridCommandContext, event: KeyboardEvent) => boolean;
15
+ /**
16
+ * What the formatting commands write to, and how they turn a display position
17
+ * into the stable ids the store keys on.
18
+ *
19
+ * Optional because the shortcuts are useful without it: a grid that only wants
20
+ * navigation and fill never sets one up, and the format bindings decline
21
+ * rather than half-working.
22
+ */
23
+ export type SheetFormatTarget = {
24
+ store: SheetFormatStore;
25
+ lookup: CellAddressLookup;
26
+ /** Called after a change so the consumer can re-render. */
27
+ onChange?(): void;
28
+ /**
29
+ * Whether the rectangles may be formatted. A protected sheet says no for
30
+ * a selection with a locked cell in it; the ribbon greys its buttons on
31
+ * the same answer, so it must be cheap and must not talk to the user.
32
+ */
33
+ guard?(rects: ReadonlyArray<Rect>): boolean;
34
+ /** Called when a change was refused by `guard`: the place to say why. */
35
+ refused?(): void;
36
+ };
37
+ /** The guard's answer, with the refusal reported when it is no. */
38
+ export declare function formatAllowed(target: SheetFormatTarget, rects: ReadonlyArray<Rect>): boolean;
39
+ /** Attach the store the formatting shortcuts write to. */
40
+ export declare function setFormatTarget(target: SheetFormatTarget | null): void;
41
+ export declare function getFormatTarget(): SheetFormatTarget | null;
42
+ export declare function setWorkbook(next: Workbook | null, onChange?: () => void, isHidden?: (name: string) => boolean): void;
43
+ export declare function getWorkbook(): Workbook | null;
44
+ /** Move `delta` sheets from the active one. Excel does NOT wrap at the ends,
45
+ * so neither does this: hitting the last sheet and pressing again should
46
+ * leave you there rather than teleport you to the first. */
47
+ export declare function switchSheet(delta: number): boolean;
48
+ export declare function setPasteSpecialHandler(fn: ((cmd: GridCommandContext) => void) | null): void;
49
+ export declare function setFindReplaceHandler(fn: ((cmd: GridCommandContext) => void) | null): void;
50
+ /** Called when Ctrl+1 fires, so a consumer can open its own dialog. The
51
+ * shortcut layer does not ship one: what a Format Cells dialog should look
52
+ * like is a design decision, not a keyboard one. */
53
+ /**
54
+ * Ribbon actions a key raises: F9 recalculates, Ctrl+` shows formulas,
55
+ * Ctrl+Shift+L toggles the filter, Shift+F3 and Ctrl+F3 open Insert
56
+ * Function and the Name Manager, Ctrl+T formats as a table. The shell
57
+ * answers them the way it answers the ribbon button; returning false means
58
+ * nothing is behind the action and the key falls through.
59
+ */
60
+ export type RibbonKeyAction = 'file-open' | 'file-save-xlsx' | 'file-print' | 'recalculate' | 'toggle-formulas' | 'toggle-filter' | 'insert-function' | 'name-manager' | 'insert-table' | 'hide-rows' | 'hide-columns' | 'unhide-rows' | 'unhide-columns' | 'edit-comment' | 'open-list' | 'toggle-ribbon' | 'insert-link' | 'merge-center' | 'merge-across' | 'merge-cells' | 'unmerge-cells' | 'cut';
61
+ export declare function setRibbonActionHandler(fn: ((action: RibbonKeyAction, cmd: GridCommandContext) => boolean) | null): void;
62
+ /** Raise a ribbon action from a button whose face is not an entry of its own. */
63
+ export declare function raiseRibbonAction(action: RibbonKeyAction, cmd: GridCommandContext): boolean;
64
+ /** Excel's size ladder. Pixels here, since that is what the cell renders. */
65
+ export declare const FONT_SIZES: number[];
66
+ /** A cell with no size of its own renders at the grid's 13px. */
67
+ export declare const DEFAULT_FONT_SIZE = 13;
68
+ /** The format entry under the active cell, or undefined. */
69
+ export declare function activeEntry(cmd: GridCommandContext): CellFormatEntry | undefined;
70
+ /** Excel's Increase / Decrease Font Size: the next rung of the ladder. */
71
+ export declare function nudgeFontSize(direction: 1 | -1): SheetCommand;
72
+ export declare function setFormatDialogHandler(fn: ((cmd: GridCommandContext) => void) | null): void;
73
+ export declare function setShortcutOwner(token: object | null): void;
74
+ export declare function getShortcutOwner(): object | null;
75
+ export type SheetBinding = {
76
+ /** Matched case-insensitively against `event.key`. */
77
+ key: string;
78
+ /**
79
+ * Matched against `event.code` INSTEAD of `key`, for bindings where shift
80
+ * changes the character. Pressing Ctrl+Shift+1 reports `event.key` as '!'
81
+ * on a US layout, ':' for Ctrl+Shift+; and '~' for Ctrl+Shift+`, so a
82
+ * binding spelling the unshifted character can never fire in a browser.
83
+ * `code` is the physical key and does not move.
84
+ */
85
+ code?: string;
86
+ /** Ctrl on Windows/Linux, Cmd on macOS. Both are accepted for either. */
87
+ mod?: boolean;
88
+ shift?: boolean;
89
+ alt?: boolean;
90
+ /**
91
+ * Runs while a cell is being edited, and only then. The other bindings
92
+ * act on the selection and stay out of the editor, where Ctrl+D is a
93
+ * keystroke the user meant for the text.
94
+ */
95
+ editing?: boolean;
96
+ run: SheetCommand;
97
+ /** For docs and the demo's cheat sheet. */
98
+ label: string;
99
+ };
100
+ /** Read the grid through the command context as a blank-aware matrix. */
101
+ export declare function gridOf(cmd: GridCommandContext): Grid;
102
+ /**
103
+ * Ctrl+End: the bottom-right corner of what has been typed, as in Excel,
104
+ * rather than the grid's last cell. A sheet has thousands of empty rows
105
+ * below the data, and the last of them is never where the user wanted to
106
+ * go. Ctrl+Home is the grid's own and already lands on A1.
107
+ */
108
+ export declare function lastUsedCell(cmd: GridCommandContext): {
109
+ row: number;
110
+ col: number;
111
+ };
112
+ export declare const goToLastUsed: SheetCommand;
113
+ /** F4 while editing: turn the reference at the caret through its anchorings. */
114
+ export declare const pinReference: SheetCommand;
115
+ export declare function move(dir: Direction, extend: boolean): SheetCommand;
116
+ /** Ctrl+A: the current region, then the whole sheet on a second press. */
117
+ export declare const selectRegion: SheetCommand;
118
+ /**
119
+ * Ctrl+Space / Shift+Space: the whole columns or rows the selection
120
+ * touches (B2:C3 gives rows 2:3), as in Excel; the active cell stays.
121
+ */
122
+ export declare function selectLine(axis: 'column' | 'row'): SheetCommand;
123
+ /** Ctrl+Shift+8 (Ctrl+*): the current region, and only that. */
124
+ export declare const selectCurrentRegion: SheetCommand;
125
+ /**
126
+ * Run a format change over `rects` as ONE undo step.
127
+ *
128
+ * The format store is not the grid's data, so a write to it is invisible
129
+ * to Ctrl+Z on its own: Bold would land and the Undo button would stay
130
+ * grey, which is not how a spreadsheet behaves. This snapshots every cell
131
+ * the change touches before and after, and hands the grid a step that puts
132
+ * either snapshot back. A cell's whole entry is restored rather than the
133
+ * one field, so undoing "bold" on a cell that was also made red does not
134
+ * have to know which of the two the press was about.
135
+ */
136
+ export declare function withFormatUndo(cmd: GridCommandContext, target: SheetFormatTarget, rects: ReadonlyArray<Rect>, mutate: () => void): void;
137
+ /** Apply a patch to the selection through the attached store. */
138
+ export declare function applyFormat(cmd: GridCommandContext, patch: CellFormatEntry): boolean;
139
+ export declare function toggleFormat(cmd: GridCommandContext, field: 'bold' | 'italic' | 'underline' | 'strike'): boolean;
140
+ export type BorderPreset = 'none' | 'bottom' | 'top' | 'left' | 'right' | 'all' | 'outside' | 'thick-bottom';
141
+ /**
142
+ * Excel's Borders menu, applied the way Excel applies it: "Bottom Border"
143
+ * puts a line under the bottom edge of the SELECTION, not under every
144
+ * cell; "All Borders" lines every cell; "Outside" frames the block. Sides
145
+ * merge with what a cell already has, so a top border does not erase a
146
+ * bottom one, and "No Border" clears all four.
147
+ */
148
+ export declare function applyBorders(cmd: GridCommandContext, preset: BorderPreset): boolean;
149
+ /** Excel's Clear Formats: drop every format on the selection, keep the values. */
150
+ export declare function clearFormats(cmd: GridCommandContext): boolean;
151
+ export declare function preset(name: FormatPresetName): SheetCommand;
152
+ /**
153
+ * Alt+=. Proposes =SUM(range) over the run Excel would guess. With one cell
154
+ * selected the formula is opened in the cell's editor rather than written,
155
+ * as Excel's AutoSum does: the guess is often a row short, and the editor is
156
+ * where it gets corrected before Enter takes it. A wider selection has the
157
+ * sum written into the active cell outright.
158
+ */
159
+ export declare const autoSum: SheetCommand;
160
+ export declare const SHEET_BINDINGS: ReadonlyArray<SheetBinding>;
161
+ /** Shift+F11 and the ribbon's Insert Sheet: a new sheet after the last, made active. */
162
+ export declare function newSheet(): boolean;
163
+ export declare function structural(cmd: GridCommandContext, kind: 'insert' | 'delete'): boolean;
164
+ /**
165
+ * The handler registered with the grid. Returns true when a binding ran, which
166
+ * is what tells the grid to stop and not interpret the key itself.
167
+ *
168
+ * A binding marked `editing` runs only inside the editor and the others
169
+ * only outside it: Ctrl+D while someone is typing in a cell is a keystroke
170
+ * they meant for the text, and F4 on the grid root has nothing to pin.
171
+ * Alt+Enter needs no binding: the grid's multiline text editor takes it as
172
+ * a line break itself.
173
+ */
174
+ export declare function handleSheetKey(event: KeyboardEvent, cmd: GridCommandContext): boolean;