@svgrid/enterprise 3.0.0 → 3.0.2
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.
- package/README.md +95 -95
- package/dist/ExpressionEditorHarness.svelte.d.ts +2 -2
- package/dist/SvAdvancedFilter.svelte.d.ts +2 -2
- package/dist/SvAlertRuleEditor.svelte.d.ts +2 -2
- package/dist/SvAlertsManager.svelte.d.ts +3 -3
- package/dist/SvAlertsPanel.svelte.d.ts +1 -1
- package/dist/SvAuthGate.svelte +115 -115
- package/dist/SvAuthGate.svelte.d.ts +1 -1
- package/dist/SvBoard.svelte.d.ts +1 -1
- package/dist/SvExportMenu.svelte +553 -553
- package/dist/SvExportMenu.svelte.d.ts +2 -2
- package/dist/SvExpressionEditor.svelte.d.ts +2 -2
- package/dist/SvFileInput.svelte +113 -113
- package/dist/SvFormulaBar.svelte +606 -0
- package/dist/SvFormulaBar.svelte.d.ts +62 -0
- package/dist/SvGridAlerts.svelte.d.ts +2 -2
- package/dist/SvGridBoard.svelte +2358 -2358
- package/dist/SvGridBulkEditDrawer.svelte.d.ts +1 -1
- package/dist/SvGridEditPanel.svelte +1157 -1157
- package/dist/SvGridEditPanel.svelte.d.ts +3 -3
- package/dist/SvGridMasterDetail.svelte +116 -116
- package/dist/SvGridMasterDetail.svelte.d.ts +1 -1
- package/dist/SvGridScheduler.svelte +5358 -5358
- package/dist/SvImportDialog.svelte +1020 -1020
- package/dist/SvImportDialog.svelte.d.ts +2 -2
- package/dist/SvLookupInput.svelte +180 -180
- package/dist/SvLookupInput.svelte.d.ts +1 -1
- package/dist/SvPivotDesigner.svelte +2041 -1990
- package/dist/SvPivotDesigner.svelte.d.ts +2 -2
- package/dist/SvRecordDetail.svelte.d.ts +1 -1
- package/dist/SvRibbonIcon.svelte +46 -0
- package/dist/SvRibbonIcon.svelte.d.ts +17 -0
- package/dist/SvSchedule.svelte.d.ts +1 -1
- package/dist/SvSchemaChart.svelte +236 -234
- package/dist/SvSchemaChart.svelte.d.ts +2 -2
- package/dist/SvSchemaDashboard.svelte +130 -130
- package/dist/SvSchemaDashboard.svelte.d.ts +3 -3
- package/dist/SvSheet.svelte +4114 -0
- package/dist/SvSheet.svelte.d.ts +142 -0
- package/dist/SvSheetComment.svelte +98 -0
- package/dist/SvSheetComment.svelte.d.ts +22 -0
- package/dist/SvSheetConditionalFormat.svelte +162 -0
- package/dist/SvSheetConditionalFormat.svelte.d.ts +14 -0
- package/dist/SvSheetDataValidation.svelte +249 -0
- package/dist/SvSheetDataValidation.svelte.d.ts +14 -0
- package/dist/SvSheetFilterMenu.svelte +217 -0
- package/dist/SvSheetFilterMenu.svelte.d.ts +17 -0
- package/dist/SvSheetFindReplace.svelte +132 -0
- package/dist/SvSheetFindReplace.svelte.d.ts +10 -0
- package/dist/SvSheetFormatCells.svelte +421 -0
- package/dist/SvSheetFormatCells.svelte.d.ts +17 -0
- package/dist/SvSheetGoalSeek.svelte +144 -0
- package/dist/SvSheetGoalSeek.svelte.d.ts +12 -0
- package/dist/SvSheetInsertFunction.svelte +147 -0
- package/dist/SvSheetInsertFunction.svelte.d.ts +8 -0
- package/dist/SvSheetListPicker.svelte +89 -0
- package/dist/SvSheetListPicker.svelte.d.ts +16 -0
- package/dist/SvSheetManageRules.svelte +185 -0
- package/dist/SvSheetManageRules.svelte.d.ts +16 -0
- package/dist/SvSheetNameManager.svelte +225 -0
- package/dist/SvSheetNameManager.svelte.d.ts +11 -0
- package/dist/SvSheetPasteSpecial.svelte +105 -0
- package/dist/SvSheetPasteSpecial.svelte.d.ts +12 -0
- package/dist/SvSheetRemoveDuplicates.svelte +149 -0
- package/dist/SvSheetRemoveDuplicates.svelte.d.ts +12 -0
- package/dist/SvSheetRibbon.svelte +1201 -0
- package/dist/SvSheetRibbon.svelte.d.ts +34 -0
- package/dist/SvSheetSizeDialog.svelte +58 -0
- package/dist/SvSheetSizeDialog.svelte.d.ts +11 -0
- package/dist/SvSheetTabs.svelte +441 -0
- package/dist/SvSheetTabs.svelte.d.ts +36 -0
- package/dist/SvSheetTabs.test-harness.svelte.d.ts +17 -0
- package/dist/SvSheetTabs.test-harness.svelte.js +22 -0
- package/dist/SvSheetTextToColumns.svelte +172 -0
- package/dist/SvSheetTextToColumns.svelte.d.ts +13 -0
- package/dist/SvSheetValidationAlert.svelte +83 -0
- package/dist/SvSheetValidationAlert.svelte.d.ts +15 -0
- package/dist/advanced-filter/expr-columns-from-grid.d.ts +1 -1
- package/dist/advanced-filter-enable.js +3 -3
- package/dist/alerts/alert-engine-attach.d.ts +2 -2
- package/dist/alerts/alert-engine-attach.js +3 -3
- package/dist/alerts/alert-engine.d.ts +1 -1
- package/dist/alerts/alert-engine.js +2 -2
- package/dist/alerts/alert-formats.d.ts +1 -1
- package/dist/alerts/alert-formats.js +1 -1
- package/dist/alerts/alert-observer.d.ts +3 -3
- package/dist/alerts/alert-observer.js +1 -1
- package/dist/alerts/alert-storage.d.ts +1 -1
- package/dist/alerts/alert-store.svelte.d.ts +1 -1
- package/dist/alerts/alert-types.d.ts +2 -2
- package/dist/alerts.js +2 -2
- package/dist/board.js +2 -2
- package/dist/cdn/svgrid-enterprise.svelte-external.js +19046 -5428
- package/dist/designer/assets/GridMenus-BlsvL_aU.js +8 -0
- package/dist/designer/assets/SvChartMenu-BYO9cYdy.css +1 -0
- package/dist/designer/assets/SvChartMenu-D9hEeHar.js +1 -0
- package/dist/designer/assets/SvDateRangeInput-BBRzrQeg.js +1 -0
- package/dist/designer/assets/SvDateRangeInput-C0iCCZ8o.css +1 -0
- package/dist/designer/assets/SvDateTimePicker-DARvKUL2.js +1 -0
- package/dist/designer/assets/SvDateTimePicker-DPv09DIT.css +1 -0
- package/dist/designer/assets/{preload-helper-CG0n22O7.js → SvGrid.helpers-BgT-gnCo.js} +1 -1
- package/dist/designer/assets/SvGridCellEditor-C7uQXYds.js +4 -0
- package/dist/designer/assets/SvGridChart-B8j1SSy3.js +3 -0
- package/dist/designer/assets/SvGridChart-BgLuPO7I.css +1 -0
- package/dist/designer/assets/SvGridChartBuilder-08YWWeqY.css +1 -0
- package/dist/designer/assets/SvGridChartBuilder-kvyIU_Rl.js +1 -0
- package/dist/designer/assets/SvGridChartPanel-4Pc8y5yO.css +1 -0
- package/dist/designer/assets/SvGridChartPanel-pT6ITc2P.js +4 -0
- package/dist/designer/assets/SvGridChartView-7msfnWZT.css +1 -0
- package/dist/designer/assets/SvGridChartView-bg281UA1.js +1 -0
- package/dist/designer/assets/SvGridDropdown-Bb3HH2Aj.js +1 -0
- package/dist/designer/assets/SvGridDropdown-CcidB3rm.css +1 -0
- package/dist/designer/assets/SvListBox-BDS66lmZ.js +110 -0
- package/dist/designer/assets/SvListBox-BXfyqy4a.css +1 -0
- package/dist/designer/assets/SvMenuList-DJ47ba1h.css +1 -0
- package/dist/designer/assets/SvMenuList-Dgq2D5VN.js +1 -0
- package/dist/designer/assets/SvTabs-DKmwb5p1.css +1 -0
- package/dist/designer/assets/SvTabs-UFCMTHXS.js +1 -0
- package/dist/designer/assets/cell-formatting-wr5wm7US.js +1 -0
- package/dist/designer/assets/chart-cIPUsbM5.js +1 -0
- package/dist/designer/assets/chart-export-B6bkQ3X8.js +11 -0
- package/dist/designer/assets/chart-export-pdf-BbA28-gt.js +11 -0
- package/dist/designer/assets/chart-panel-messages-DtTxpBUU.js +1 -0
- package/dist/designer/assets/chart-summary-Czu_5epb.js +1 -0
- package/dist/designer/assets/chart-trend-D5I5VEe8.js +1 -0
- package/dist/designer/assets/chart-validate-BMqM-qkF.js +1 -0
- package/dist/designer/assets/column-resize-BYDzR1Ve.js +1 -0
- package/dist/designer/assets/date-format-B8JbEtIG.js +1 -0
- package/dist/designer/assets/date-format-DKS-z0xS.css +1 -0
- package/dist/designer/assets/editor-contract-Bpoa7A5g.js +1 -0
- package/dist/designer/assets/export-format-D-eP4b2l.js +6 -0
- package/dist/designer/assets/focus-trap-CAreAhlU.js +1 -0
- package/dist/designer/assets/index-CMFgAoVV.css +1 -0
- package/dist/designer/assets/{index-zUBix-JQ.js → index-DwU7CAMm.js} +2985 -141
- package/dist/designer/assets/list-option-BP_dWS66.js +1 -0
- package/dist/designer/assets/preload-helper-HclGiUj8.js +1 -0
- package/dist/designer/assets/row-resize-DLktcqUK.js +1 -0
- package/dist/designer/assets/src-CITpcm6b.js +1 -0
- package/dist/designer/assets/src-EdI3Xqds.js +58 -0
- package/dist/designer/index.html +32 -23
- package/dist/export-conditional.d.ts +1 -1
- package/dist/export-pdf.d.ts +89 -0
- package/dist/export-pdf.js +130 -0
- package/dist/export-print.js +19 -19
- package/dist/export-xls.d.ts +2 -2
- package/dist/export.d.ts +2 -2
- package/dist/export.js +23 -16
- package/dist/expressions/builder-tree.d.ts +2 -2
- package/dist/expressions/builder-tree.js +1 -1
- package/dist/expressions/compile.d.ts +1 -1
- package/dist/import.js +1 -1
- package/dist/index.d.ts +116 -53
- package/dist/index.js +117 -50
- package/dist/install.d.ts +4 -4
- package/dist/install.js +16 -11
- package/dist/license.d.ts +3 -2
- package/dist/license.js +9 -4
- package/dist/node/studio.js +187 -116
- package/dist/pivot-chart.d.ts +26 -2
- package/dist/pivot-chart.js +25 -69
- package/dist/pivot-designer.d.ts +1 -1
- package/dist/pivot-enable.js +3 -3
- package/dist/print.d.ts +1 -1
- package/dist/print.js +4 -4
- package/dist/scheduler-config.d.ts +5 -5
- package/dist/scheduler-freebusy.d.ts +1 -1
- package/dist/scheduler-freebusy.js +1 -1
- package/dist/scheduler.js +2 -2
- package/dist/schema-designer.d.ts +1 -1
- package/dist/schema-designer.js +2 -2
- package/dist/selection-bar.js +2 -2
- package/dist/sheet/address.d.ts +43 -0
- package/dist/sheet/address.js +81 -0
- package/dist/sheet/ast.d.ts +94 -0
- package/dist/sheet/ast.js +56 -0
- package/dist/sheet/auto-filter.d.ts +66 -0
- package/dist/sheet/auto-filter.js +147 -0
- package/dist/sheet/autocomplete.d.ts +42 -0
- package/dist/sheet/autocomplete.js +162 -0
- package/dist/sheet/coerce.d.ts +31 -0
- package/dist/sheet/coerce.js +122 -0
- package/dist/sheet/commands.d.ts +89 -0
- package/dist/sheet/commands.js +230 -0
- package/dist/sheet/comments.d.ts +29 -0
- package/dist/sheet/comments.js +73 -0
- package/dist/sheet/conditional-formats.d.ts +144 -0
- package/dist/sheet/conditional-formats.js +316 -0
- package/dist/sheet/deps.d.ts +60 -0
- package/dist/sheet/deps.js +199 -0
- package/dist/sheet/document.d.ts +150 -0
- package/dist/sheet/document.js +264 -0
- package/dist/sheet/edit-keys.d.ts +14 -0
- package/dist/sheet/edit-keys.js +40 -0
- package/dist/sheet/entry.d.ts +31 -0
- package/dist/sheet/entry.js +76 -0
- package/dist/sheet/evaluate.d.ts +61 -0
- package/dist/sheet/evaluate.js +337 -0
- package/dist/sheet/find-replace.d.ts +62 -0
- package/dist/sheet/find-replace.js +152 -0
- package/dist/sheet/format-store.d.ts +99 -0
- package/dist/sheet/format-store.js +233 -0
- package/dist/sheet/freeze.d.ts +54 -0
- package/dist/sheet/freeze.js +58 -0
- package/dist/sheet/function-catalog.d.ts +10 -0
- package/dist/sheet/function-catalog.js +94 -0
- package/dist/sheet/functions.d.ts +28 -0
- package/dist/sheet/functions.js +362 -0
- package/dist/sheet/goal-seek.d.ts +73 -0
- package/dist/sheet/goal-seek.js +153 -0
- package/dist/sheet/index.d.ts +53 -0
- package/dist/sheet/index.js +53 -0
- package/dist/sheet/merges.d.ts +71 -0
- package/dist/sheet/merges.js +137 -0
- package/dist/sheet/names.d.ts +31 -0
- package/dist/sheet/names.js +87 -0
- package/dist/sheet/navigate.d.ts +52 -0
- package/dist/sheet/navigate.js +135 -0
- package/dist/sheet/number-format.d.ts +63 -0
- package/dist/sheet/number-format.js +508 -0
- package/dist/sheet/palette.d.ts +19 -0
- package/dist/sheet/palette.js +84 -0
- package/dist/sheet/parse.d.ts +13 -0
- package/dist/sheet/parse.js +108 -0
- package/dist/sheet/paste-special.d.ts +164 -0
- package/dist/sheet/paste-special.js +592 -0
- package/dist/sheet/protection.d.ts +21 -0
- package/dist/sheet/protection.js +48 -0
- package/dist/sheet/rects.d.ts +45 -0
- package/dist/sheet/rects.js +112 -0
- package/dist/sheet/refs.d.ts +82 -0
- package/dist/sheet/refs.js +266 -0
- package/dist/sheet/ribbon-icons.d.ts +31 -0
- package/dist/sheet/ribbon-icons.js +350 -0
- package/dist/sheet/ribbon.d.ts +173 -0
- package/dist/sheet/ribbon.js +753 -0
- package/dist/sheet/shortcuts.d.ts +164 -0
- package/dist/sheet/shortcuts.js +623 -0
- package/dist/sheet/structure.d.ts +87 -0
- package/dist/sheet/structure.js +166 -0
- package/dist/sheet/tables.d.ts +70 -0
- package/dist/sheet/tables.js +147 -0
- package/dist/sheet/tokenize.d.ts +54 -0
- package/dist/sheet/tokenize.js +304 -0
- package/dist/sheet/transforms.d.ts +76 -0
- package/dist/sheet/transforms.js +154 -0
- package/dist/sheet/validation.d.ts +92 -0
- package/dist/sheet/validation.js +241 -0
- package/dist/sheet/workbook.d.ts +72 -0
- package/dist/sheet/workbook.js +409 -0
- package/dist/sheet-enable.d.ts +6 -0
- package/dist/sheet-enable.js +46 -0
- package/dist/sources/aggregate.d.ts +1 -1
- package/dist/sources/auth-supabase.js +1 -1
- package/dist/sources/dashboard.d.ts +2 -2
- package/dist/sources/dashboard.js +1 -1
- package/dist/sources/index.d.ts +13 -13
- package/dist/sources/index.js +13 -13
- package/dist/sources/realtime-supabase.js +1 -1
- package/dist/sources/relation-lookup.d.ts +1 -1
- package/dist/sources/relation-lookup.js +1 -1
- package/dist/sources/rest-adapters.d.ts +1 -1
- package/dist/sources/rest-adapters.js +1 -1
- package/dist/sources/rest.d.ts +2 -2
- package/dist/sources/rest.js +3 -3
- package/dist/sources/supabase.d.ts +2 -2
- package/dist/sources/supabase.js +3 -3
- package/dist/sources/with-entity-rules.d.ts +1 -1
- package/dist/sources/with-entity-rules.js +1 -1
- package/dist/sources/with-relation-labels.d.ts +1 -1
- package/dist/studio/emit-project.js +2161 -2127
- package/dist/studio/emit-schema.js +369 -369
- package/dist/studio/index.d.ts +1 -1
- package/dist/studio/index.js +1 -1
- package/dist/studio/introspect-db.js +45 -45
- package/dist/studio/project.d.ts +10 -0
- package/dist/studio/samples/crm.js +6 -6
- package/dist/studio/samples/fleet.js +7 -7
- package/dist/studio/samples/insurance.js +9 -9
- package/dist/studio/samples/inventory.js +12 -12
- package/dist/studio/samples/projects.js +5 -5
- package/dist/studio/samples/support.js +8 -8
- package/dist/studio/scaffold-app.js +104 -104
- package/dist/studio/scaffold.js +151 -151
- package/dist/studio/ui-components.d.ts +7 -0
- package/dist/studio/ui-components.generated.js +63 -1
- package/dist/studio/ui-components.js +35 -0
- package/dist/sveltekit/in-memory.d.ts +3 -3
- package/dist/sveltekit/in-memory.js +4 -4
- package/dist/sveltekit/index.d.ts +6 -6
- package/dist/sveltekit/index.js +5 -5
- package/dist/sveltekit/query-plan.d.ts +1 -1
- package/dist/sveltekit/sql-source.d.ts +4 -4
- package/dist/sveltekit/sql-source.js +4 -4
- package/dist/sveltekit/sql.d.ts +1 -1
- package/dist/sveltekit/transport.d.ts +2 -2
- package/dist/sveltekit/transport.js +1 -1
- package/dist/upgrade-prompt.js +25 -25
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +12 -4
- package/dist/designer/assets/GridMenus-Cgilexpk.js +0 -8
- package/dist/designer/assets/SvDateRangeInput-BV5OXYQ2.css +0 -1
- package/dist/designer/assets/SvDateRangeInput-CVn-yqrQ.js +0 -1
- package/dist/designer/assets/SvDateTimePicker-BdioTrJQ.js +0 -1
- package/dist/designer/assets/SvDateTimePicker-CY8TK4BT.css +0 -1
- package/dist/designer/assets/SvField-BF-9TJSd.css +0 -1
- package/dist/designer/assets/SvField-BsqiA5me.js +0 -1
- package/dist/designer/assets/SvGridCellEditor-dLY7_kk9.js +0 -2
- package/dist/designer/assets/SvGridChart-BEDNTdc5.js +0 -2
- package/dist/designer/assets/SvGridChart-Vu4Nvjiv.css +0 -1
- package/dist/designer/assets/SvGridChartPanel-x3lzSxuf.js +0 -10
- package/dist/designer/assets/SvGridChartView-CAKhPELi.js +0 -1
- package/dist/designer/assets/SvGridChartView-DX9HfkBR.css +0 -1
- package/dist/designer/assets/SvGridDropdown-CAYG7Y-O.js +0 -1
- package/dist/designer/assets/SvGridDropdown-Crwb2P3Q.css +0 -1
- package/dist/designer/assets/SvListBox-CVYQcLX9.js +0 -1
- package/dist/designer/assets/SvListBox-DgN8kvjt.css +0 -1
- package/dist/designer/assets/chart-DHEgt4lN.js +0 -1
- package/dist/designer/assets/column-resize-C_inr5zT.js +0 -1
- package/dist/designer/assets/date-format-4DJvNtG2.js +0 -1
- package/dist/designer/assets/date-format-Dzy4mTGh.css +0 -1
- package/dist/designer/assets/easing-zaypKrr0.js +0 -3
- package/dist/designer/assets/export-format-DwjuTfrQ.js +0 -6
- package/dist/designer/assets/index-Cp7fDJ3b.css +0 -1
- package/dist/designer/assets/js-scroller.svelte-Bhxqb3-c.js +0 -110
- package/dist/designer/assets/row-resize-B0FWHcNr.js +0 -1
- package/dist/designer/assets/src-B7DNcoQK.css +0 -1
- package/dist/designer/assets/src-BoYyigAC.js +0 -2896
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/_svelte_metadata.json +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/_metadata.json +0 -178
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/attachments-BOv1rBKp.js +0 -3875
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/attachments-BOv1rBKp.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/constants-B9vgIdCd.js +0 -21
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/constants-B9vgIdCd.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/dev-T1qbW_qD.js +0 -1938
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/dev-T1qbW_qD.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/events-Bo11SfVK.js +0 -205
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/events-Bo11SfVK.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/flags-X7D4vfrZ.js +0 -18
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/flags-X7D4vfrZ.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/hydration-oyUje5i1.js +0 -264
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/hydration-oyUje5i1.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/legacy-client-DeSQgSFm.js +0 -697
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/legacy-client-DeSQgSFm.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/package.json +0 -3
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte.js +0 -134
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_animate.js +0 -55
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_animate.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_attachments.js +0 -2
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_compiler.js +0 -46843
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_compiler.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_easing.js +0 -237
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_easing.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_events.js +0 -2
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal.js +0 -4
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_client.js +0 -7
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_disclose-version.js +0 -4
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_disclose-version.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_async.js +0 -5
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_async.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_legacy.js +0 -5
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_legacy.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_tracing.js +0 -5
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_tracing.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_server.js +0 -6
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_legacy.js +0 -83
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_legacy.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_motion.js +0 -559
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_motion.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity.js +0 -24
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity_window.js +0 -122
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity_window.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_server.js +0 -2
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_store.js +0 -89
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_store.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_transition.js +0 -241
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_transition.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-BbWyXNk1.js +0 -4938
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-BbWyXNk1.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-DI_fC7vt.js +0 -495
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-DI_fC7vt.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/validate-Dyr3lQv9.js +0 -190
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/validate-Dyr3lQv9.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/version-_9FHH-LF.js +0 -8
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/version-_9FHH-LF.js.map +0 -1
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/warnings-CUbSPnyP.js +0 -138
- package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/warnings-CUbSPnyP.js.map +0 -1
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data validation, Excel's: a rule over some cells says what may be typed
|
|
3
|
+
* into them, and an entry that breaks it is stopped (or warned about)
|
|
4
|
+
* before it lands. Only typed entries are checked, as in Excel: paste, fill
|
|
5
|
+
* and the commands write what they are given.
|
|
6
|
+
*
|
|
7
|
+
* Rules keep their rectangles by position and move with an insert or
|
|
8
|
+
* delete; the last rule that covers a cell is the one that applies, which
|
|
9
|
+
* is what lets a later rule over a smaller block override an earlier one.
|
|
10
|
+
* Bounds and custom rules are text (a literal or a formula) evaluated in
|
|
11
|
+
* the sheet through the context the shell supplies, so `=$B$1` as a
|
|
12
|
+
* maximum follows B1.
|
|
13
|
+
*/
|
|
14
|
+
import { isError } from './ast.js';
|
|
15
|
+
import { toText } from './coerce.js';
|
|
16
|
+
import { parseEntry } from './entry.js';
|
|
17
|
+
import { translateFormula } from './refs.js';
|
|
18
|
+
import { rectContains, shiftRects, subtractRect, rectsIntersect } from './rects.js';
|
|
19
|
+
/** Excel's own words when a rule has no message of its own. */
|
|
20
|
+
export const DEFAULT_ALERT_MESSAGE = "This value doesn't match the data validation restrictions defined for this cell.";
|
|
21
|
+
export const OPERATOR_LABELS = {
|
|
22
|
+
between: 'between',
|
|
23
|
+
notBetween: 'not between',
|
|
24
|
+
equal: 'equal to',
|
|
25
|
+
notEqual: 'not equal to',
|
|
26
|
+
greater: 'greater than',
|
|
27
|
+
less: 'less than',
|
|
28
|
+
greaterOrEqual: 'greater than or equal to',
|
|
29
|
+
lessOrEqual: 'less than or equal to',
|
|
30
|
+
};
|
|
31
|
+
let nextId = 1;
|
|
32
|
+
export function validationId() {
|
|
33
|
+
nextId += 1;
|
|
34
|
+
return `v${Date.now().toString(36)}${nextId}`;
|
|
35
|
+
}
|
|
36
|
+
/** The rule that applies to (r, c): the last one covering it. */
|
|
37
|
+
export function ruleAt(rules, r, c) {
|
|
38
|
+
for (let i = rules.length - 1; i >= 0; i -= 1) {
|
|
39
|
+
const rule = rules[i];
|
|
40
|
+
if (rule.rects.some((rect) => rectContains(rect, r, c)))
|
|
41
|
+
return rule;
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
/** The rules touching any of the rectangles. */
|
|
46
|
+
export function rulesIn(rules, rects) {
|
|
47
|
+
return rules.filter((rule) => rule.rects.some((a) => rects.some((b) => rectsIntersect(a, b))));
|
|
48
|
+
}
|
|
49
|
+
/** What the typed text is worth: a formula's result, or the literal coerced. */
|
|
50
|
+
function entered(text, ctx) {
|
|
51
|
+
const t = text.trim();
|
|
52
|
+
if (t.startsWith('='))
|
|
53
|
+
return ctx.evaluate(t);
|
|
54
|
+
const parsed = parseEntry(t);
|
|
55
|
+
const plain = parsed ? parsed.value : t;
|
|
56
|
+
const n = Number(plain);
|
|
57
|
+
if (plain !== '' && Number.isFinite(n))
|
|
58
|
+
return n;
|
|
59
|
+
const upper = plain.toUpperCase();
|
|
60
|
+
if (upper === 'TRUE')
|
|
61
|
+
return true;
|
|
62
|
+
if (upper === 'FALSE')
|
|
63
|
+
return false;
|
|
64
|
+
return plain;
|
|
65
|
+
}
|
|
66
|
+
/** A date as milliseconds: an ISO text, or an Excel serial. Null otherwise. */
|
|
67
|
+
export function dateValue(v) {
|
|
68
|
+
if (typeof v === 'number')
|
|
69
|
+
return Date.UTC(1899, 11, 30) + v * 86400000;
|
|
70
|
+
if (typeof v !== 'string' || !v.trim())
|
|
71
|
+
return null;
|
|
72
|
+
if (!/^\d{4}-\d{2}-\d{2}/.test(v.trim()))
|
|
73
|
+
return null;
|
|
74
|
+
const ms = Date.parse(v.trim().length === 10 ? `${v.trim()}T00:00:00Z` : v.trim());
|
|
75
|
+
return Number.isNaN(ms) ? null : ms;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A bound or a source, moved from the rule's top-left cell to the cell being
|
|
79
|
+
* checked, as Excel moves a relative reference in a rule: `=A2` as the
|
|
80
|
+
* minimum of G2:G17 reads A5 on G5, while `=$B$1` stays put.
|
|
81
|
+
*/
|
|
82
|
+
function relative(text, rule, at) {
|
|
83
|
+
if (text === undefined || !text.trim().startsWith('='))
|
|
84
|
+
return text;
|
|
85
|
+
const origin = rule.rects[0];
|
|
86
|
+
if (!origin)
|
|
87
|
+
return text;
|
|
88
|
+
return String(translateFormula(text.trim(), at.row - origin[0], at.col - origin[1]));
|
|
89
|
+
}
|
|
90
|
+
function bound(text, ctx, as) {
|
|
91
|
+
if (text === undefined || text.trim() === '')
|
|
92
|
+
return null;
|
|
93
|
+
const v = ctx.evaluate(text);
|
|
94
|
+
if (isError(v))
|
|
95
|
+
return null;
|
|
96
|
+
if (as === 'date')
|
|
97
|
+
return dateValue(v);
|
|
98
|
+
if (typeof v === 'boolean')
|
|
99
|
+
return null;
|
|
100
|
+
const n = typeof v === 'number' ? v : Number(v);
|
|
101
|
+
return Number.isFinite(n) ? n : null;
|
|
102
|
+
}
|
|
103
|
+
function compareTo(x, op, a, b) {
|
|
104
|
+
if (a === null)
|
|
105
|
+
return false;
|
|
106
|
+
switch (op) {
|
|
107
|
+
case 'between': return b !== null && x >= Math.min(a, b) && x <= Math.max(a, b);
|
|
108
|
+
case 'notBetween': return b !== null && (x < Math.min(a, b) || x > Math.max(a, b));
|
|
109
|
+
case 'equal': return x === a;
|
|
110
|
+
case 'notEqual': return x !== a;
|
|
111
|
+
case 'greater': return x > a;
|
|
112
|
+
case 'less': return x < a;
|
|
113
|
+
case 'greaterOrEqual': return x >= a;
|
|
114
|
+
case 'lessOrEqual': return x <= a;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* The choices a list rule offers: a comma list as written, or the cells of
|
|
119
|
+
* a range (or a name for one), blanks left out, as text.
|
|
120
|
+
*/
|
|
121
|
+
export function listChoices(rule, ctx) {
|
|
122
|
+
const source = (rule.value1 ?? '').trim();
|
|
123
|
+
if (!source)
|
|
124
|
+
return [];
|
|
125
|
+
if (source.startsWith('=')) {
|
|
126
|
+
const grid = ctx.range(source);
|
|
127
|
+
if (grid) {
|
|
128
|
+
const out = [];
|
|
129
|
+
for (const row of grid)
|
|
130
|
+
for (const v of row) {
|
|
131
|
+
if (v === '' || v == null)
|
|
132
|
+
continue;
|
|
133
|
+
out.push(isError(v) ? v.error : toText(v));
|
|
134
|
+
}
|
|
135
|
+
return out;
|
|
136
|
+
}
|
|
137
|
+
const v = ctx.evaluate(source);
|
|
138
|
+
return isError(v) ? [] : [toText(v)];
|
|
139
|
+
}
|
|
140
|
+
return source.split(',').map((s) => s.trim()).filter((s) => s !== '');
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Whether `text`, typed into (row, col), passes the rule. The verdict
|
|
144
|
+
* carries the alert to show when it does not.
|
|
145
|
+
*/
|
|
146
|
+
export function checkEntry(rule, text, at, ctx) {
|
|
147
|
+
const fail = () => ({
|
|
148
|
+
ok: false,
|
|
149
|
+
style: rule.alert.style,
|
|
150
|
+
title: rule.alert.title?.trim() || 'Data validation',
|
|
151
|
+
message: rule.alert.message?.trim() || DEFAULT_ALERT_MESSAGE,
|
|
152
|
+
});
|
|
153
|
+
if (rule.allow === 'any')
|
|
154
|
+
return { ok: true };
|
|
155
|
+
const trimmed = text.trim();
|
|
156
|
+
if (trimmed === '')
|
|
157
|
+
return rule.ignoreBlank ? { ok: true } : fail();
|
|
158
|
+
const op = rule.operator ?? 'between';
|
|
159
|
+
switch (rule.allow) {
|
|
160
|
+
case 'whole':
|
|
161
|
+
case 'decimal': {
|
|
162
|
+
const v = entered(text, ctx);
|
|
163
|
+
if (typeof v !== 'number' || !Number.isFinite(v))
|
|
164
|
+
return fail();
|
|
165
|
+
if (rule.allow === 'whole' && !Number.isInteger(v))
|
|
166
|
+
return fail();
|
|
167
|
+
return compareTo(v, op, bound(relative(rule.value1, rule, at), ctx, 'number'), bound(relative(rule.value2, rule, at), ctx, 'number')) ? { ok: true } : fail();
|
|
168
|
+
}
|
|
169
|
+
case 'date': {
|
|
170
|
+
const ms = dateValue(entered(text, ctx));
|
|
171
|
+
if (ms === null)
|
|
172
|
+
return fail();
|
|
173
|
+
return compareTo(ms, op, bound(relative(rule.value1, rule, at), ctx, 'date'), bound(relative(rule.value2, rule, at), ctx, 'date')) ? { ok: true } : fail();
|
|
174
|
+
}
|
|
175
|
+
case 'textLength': {
|
|
176
|
+
const v = entered(text, ctx);
|
|
177
|
+
const length = isError(v) ? 0 : toText(v).length;
|
|
178
|
+
return compareTo(length, op, bound(relative(rule.value1, rule, at), ctx, 'number'), bound(relative(rule.value2, rule, at), ctx, 'number')) ? { ok: true } : fail();
|
|
179
|
+
}
|
|
180
|
+
case 'list': {
|
|
181
|
+
// Excel matches a list entry without regard to case.
|
|
182
|
+
const v = entered(text, ctx);
|
|
183
|
+
const shown = isError(v) ? v.error : toText(v);
|
|
184
|
+
const needle = shown.toLowerCase();
|
|
185
|
+
return listChoices(rule, ctx).some((choice) => choice.toLowerCase() === needle) ? { ok: true } : fail();
|
|
186
|
+
}
|
|
187
|
+
case 'custom': {
|
|
188
|
+
const formula = (rule.value1 ?? '').trim();
|
|
189
|
+
if (!formula)
|
|
190
|
+
return fail();
|
|
191
|
+
// The formula is written for the rule's top-left cell and moves with
|
|
192
|
+
// the cell it checks, as a copied formula would.
|
|
193
|
+
const origin = rule.rects[0];
|
|
194
|
+
const source = formula.startsWith('=') ? formula : `=${formula}`;
|
|
195
|
+
const moved = origin
|
|
196
|
+
? String(translateFormula(source, at.row - origin[0], at.col - origin[1]))
|
|
197
|
+
: source;
|
|
198
|
+
const v = ctx.evaluate(moved, { row: at.row, col: at.col, text });
|
|
199
|
+
if (isError(v))
|
|
200
|
+
return fail();
|
|
201
|
+
const truthy = typeof v === 'boolean' ? v : typeof v === 'number' ? v !== 0 : false;
|
|
202
|
+
return truthy ? { ok: true } : fail();
|
|
203
|
+
}
|
|
204
|
+
default:
|
|
205
|
+
return { ok: true };
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/** The rules after an insert or delete. */
|
|
209
|
+
export function shiftValidation(rules, edit) {
|
|
210
|
+
return shiftRects(rules, edit);
|
|
211
|
+
}
|
|
212
|
+
/** The rules with the rectangles cut out of them: Excel's Clear All. */
|
|
213
|
+
export function removeValidation(rules, rects) {
|
|
214
|
+
const out = [];
|
|
215
|
+
for (const rule of rules) {
|
|
216
|
+
let kept = [...rule.rects];
|
|
217
|
+
for (const hole of rects)
|
|
218
|
+
kept = kept.flatMap((rect) => subtractRect(rect, hole));
|
|
219
|
+
if (kept.length)
|
|
220
|
+
out.push({ ...rule, rects: kept });
|
|
221
|
+
}
|
|
222
|
+
return out;
|
|
223
|
+
}
|
|
224
|
+
/** A short description for a rule, the way Excel's dialog title reads it. */
|
|
225
|
+
export function describeRule(rule) {
|
|
226
|
+
const op = OPERATOR_LABELS[rule.operator ?? 'between'];
|
|
227
|
+
const v1 = rule.value1 ?? '';
|
|
228
|
+
const v2 = rule.value2 ?? '';
|
|
229
|
+
const range = (rule.operator ?? 'between') === 'between' || rule.operator === 'notBetween'
|
|
230
|
+
? `${v1} and ${v2}`
|
|
231
|
+
: v1;
|
|
232
|
+
switch (rule.allow) {
|
|
233
|
+
case 'any': return 'Any value';
|
|
234
|
+
case 'whole': return `Whole number ${op} ${range}`;
|
|
235
|
+
case 'decimal': return `Decimal ${op} ${range}`;
|
|
236
|
+
case 'date': return `Date ${op} ${range}`;
|
|
237
|
+
case 'textLength': return `Text length ${op} ${range}`;
|
|
238
|
+
case 'list': return `List: ${v1}`;
|
|
239
|
+
case 'custom': return `Custom: ${v1}`;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type SheetFunction } from './functions.js';
|
|
2
|
+
import { isError, type CellValue } from './ast.js';
|
|
3
|
+
import { type SheetNames } from './names.js';
|
|
4
|
+
import { type StructuralEdit } from './refs.js';
|
|
5
|
+
export type SheetData = {
|
|
6
|
+
name: string;
|
|
7
|
+
/** Row-major raw text. Ragged is fine; a missing cell reads as empty. */
|
|
8
|
+
cells: string[][];
|
|
9
|
+
};
|
|
10
|
+
export type WorkbookOptions = {
|
|
11
|
+
/** Extra functions merged over the built-ins. */
|
|
12
|
+
functions?: Record<string, SheetFunction>;
|
|
13
|
+
/** Fires after a recalculation, with the cells whose value changed. */
|
|
14
|
+
onRecalc?(changed: ReadonlyArray<{
|
|
15
|
+
sheet: string;
|
|
16
|
+
row: number;
|
|
17
|
+
col: number;
|
|
18
|
+
value: CellValue;
|
|
19
|
+
}>): void;
|
|
20
|
+
};
|
|
21
|
+
/** One cell read as text that has not been written: what a validation rule checks. */
|
|
22
|
+
export type CellOverride = {
|
|
23
|
+
row: number;
|
|
24
|
+
col: number;
|
|
25
|
+
text: string;
|
|
26
|
+
};
|
|
27
|
+
export type Workbook = {
|
|
28
|
+
readonly sheets: ReadonlyArray<string>;
|
|
29
|
+
readonly active: string;
|
|
30
|
+
readonly names: SheetNames;
|
|
31
|
+
setActive(name: string): void;
|
|
32
|
+
addSheet(name?: string, at?: number): string;
|
|
33
|
+
removeSheet(name: string): boolean;
|
|
34
|
+
renameSheet(from: string, to: string): boolean;
|
|
35
|
+
moveSheet(name: string, to: number): boolean;
|
|
36
|
+
/** The raw text of a cell: the formula as typed, or the literal. */
|
|
37
|
+
getRaw(sheet: string, row: number, col: number): string;
|
|
38
|
+
/** Write raw text and recalculate whatever depends on it. */
|
|
39
|
+
setRaw(sheet: string, row: number, col: number, text: string): void;
|
|
40
|
+
/** The computed value. */
|
|
41
|
+
getValue(sheet: string, row: number, col: number): CellValue;
|
|
42
|
+
/** Every cell of a sheet, computed. */
|
|
43
|
+
snapshot(sheet: string): CellValue[][];
|
|
44
|
+
/**
|
|
45
|
+
* What `text` would be worth in a cell of `sheet`, without putting it in
|
|
46
|
+
* one: a formula is evaluated there (names and other sheets included), a
|
|
47
|
+
* literal is coerced the way a typed one is. Data validation checks its
|
|
48
|
+
* bounds and custom rules through this.
|
|
49
|
+
*/
|
|
50
|
+
evaluateText(sheet: string, text: string, override?: CellOverride): CellValue;
|
|
51
|
+
/**
|
|
52
|
+
* The values of a range reference, or of a name that refers to one, as a
|
|
53
|
+
* grid; null when `text` is not a reference. A list source.
|
|
54
|
+
*/
|
|
55
|
+
evaluateRange(sheet: string, text: string): CellValue[][] | null;
|
|
56
|
+
/** Apply a structural edit to one sheet, rewriting every formula in the
|
|
57
|
+
* WORKBOOK that pointed into it. */
|
|
58
|
+
applyStructuralEdit(sheet: string, edit: StructuralEdit): void;
|
|
59
|
+
/** Recompute everything. Rarely needed; `setRaw` keeps itself current. */
|
|
60
|
+
recalculate(): void;
|
|
61
|
+
rowCount(sheet: string): number;
|
|
62
|
+
colCount(sheet: string): number;
|
|
63
|
+
serialize(): {
|
|
64
|
+
sheets: SheetData[];
|
|
65
|
+
active: string;
|
|
66
|
+
names: Record<string, string>;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
/** A name Excel would accept for a sheet. */
|
|
70
|
+
export declare function isValidSheetName(name: string): boolean;
|
|
71
|
+
export declare function createWorkbook(initial?: ReadonlyArray<SheetData>, options?: WorkbookOptions): Workbook;
|
|
72
|
+
export { isError };
|