@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,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ribbon's icons, as path data on a 16 x 16 grid.
|
|
3
|
+
*
|
|
4
|
+
* Drawn here rather than pulled from an icon font or a package: the ribbon
|
|
5
|
+
* is the one place in the library that needs a coordinated set of command
|
|
6
|
+
* glyphs (a clipboard, scissors, a paint bucket, a funnel), and an icon set
|
|
7
|
+
* that is part of the source can be read, tested and tuned like anything
|
|
8
|
+
* else. `SvRibbonIcon.svelte` renders one by name; a large button draws the
|
|
9
|
+
* same paths at twice the size, which is why they are vectors.
|
|
10
|
+
*
|
|
11
|
+
* One style, one colour. These are line icons - a 1.4px stroke with round
|
|
12
|
+
* caps and joins, the way Excel's own monochrome set is drawn - and every
|
|
13
|
+
* one of them is `currentColor`, so they are black on a light ribbon and
|
|
14
|
+
* white on a dark one and never carry a colour of their own. The only fills
|
|
15
|
+
* are the small solid parts Excel also fills: a dot, a corner, the head of
|
|
16
|
+
* an arrow. Colour belongs to the colour bar under Fill Colour and Font
|
|
17
|
+
* Colour, which shows the colour the face will apply, not to the glyph.
|
|
18
|
+
*/
|
|
19
|
+
const SQUARE = 'M2.5 2.5h11v11h-11z';
|
|
20
|
+
const CROSS = 'M2.5 8h11M8 2.5v11';
|
|
21
|
+
const DASHED = '1.6 1.6';
|
|
22
|
+
/** A clipboard: the board, then the clip on top. */
|
|
23
|
+
const CLIPBOARD = [
|
|
24
|
+
{ d: 'M5.5 3H4.5A1.5 1.5 0 0 0 3 4.5v8A1.5 1.5 0 0 0 4.5 14h7a1.5 1.5 0 0 0 1.5-1.5v-8A1.5 1.5 0 0 0 11.5 3h-1' },
|
|
25
|
+
{ d: 'M6 1.5h4a.5.5 0 0 1 .5.5v1.5a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V2a.5.5 0 0 1 .5-.5z' },
|
|
26
|
+
];
|
|
27
|
+
/** A speech bubble with its tail at the bottom left. */
|
|
28
|
+
const BUBBLE = 'M3.5 2.5h9a1.5 1.5 0 0 1 1.5 1.5v6a1.5 1.5 0 0 1-1.5 1.5H7l-3 2.5v-2.5h-.5A1.5 1.5 0 0 1 2 10V4a1.5 1.5 0 0 1 1.5-1.5z';
|
|
29
|
+
/** A sheet of paper with a folded corner. */
|
|
30
|
+
const SHEET = [{ d: 'M4 1.5h5.5l3 3v10H4z' }, { d: 'M9.5 1.5v3h3' }];
|
|
31
|
+
export const RIBBON_ICONS = {
|
|
32
|
+
/* The curved arrows: an open arc, the head at its tip pointing back down
|
|
33
|
+
to the lower-left (or right); closing the arc any further reads as a
|
|
34
|
+
refresh glyph. */
|
|
35
|
+
undo: [
|
|
36
|
+
{ d: 'M3.3 6.6A5.6 5.6 0 1 1 9.6 13.9', width: 1.6 },
|
|
37
|
+
{ d: 'M3.3 6.6V2.8M3.3 6.6h3.8', width: 1.6 },
|
|
38
|
+
],
|
|
39
|
+
redo: [
|
|
40
|
+
{ d: 'M12.7 6.6A5.6 5.6 0 1 0 6.4 13.9', width: 1.6 },
|
|
41
|
+
{ d: 'M12.7 6.6V2.8M12.7 6.6h-3.8', width: 1.6 },
|
|
42
|
+
],
|
|
43
|
+
paste: [
|
|
44
|
+
...CLIPBOARD,
|
|
45
|
+
{ d: 'M6 7h4M6 9.5h4M6 12h2.5' },
|
|
46
|
+
],
|
|
47
|
+
cut: [
|
|
48
|
+
{ d: 'M4.5 14a2.2 2.2 0 1 0 0-4.4 2.2 2.2 0 0 0 0 4.4zM11.5 14a2.2 2.2 0 1 0 0-4.4 2.2 2.2 0 0 0 0 4.4z' },
|
|
49
|
+
{ d: 'M6.1 10.2L12.5 2M9.9 10.2L3.5 2' },
|
|
50
|
+
],
|
|
51
|
+
copy: [
|
|
52
|
+
{ d: 'M6 5.5h6.5a1 1 0 0 1 1 1v6.5a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6.5a1 1 0 0 1 1-1z' },
|
|
53
|
+
{ d: 'M10 5.5V3.5a1 1 0 0 0-1-1H3.5a1 1 0 0 0-1 1V9a1 1 0 0 0 1 1H5' },
|
|
54
|
+
],
|
|
55
|
+
'paste-special': [
|
|
56
|
+
...CLIPBOARD,
|
|
57
|
+
{ d: 'M8 6.5v5M5.5 9h5' },
|
|
58
|
+
],
|
|
59
|
+
// A brush: the head as a tilted block, the handle running down-left.
|
|
60
|
+
'format-painter': [
|
|
61
|
+
{ d: 'M9.2 2.4l4.4 4.4-3.2 3.2-4.4-4.4z' },
|
|
62
|
+
{ d: 'M6 5.6L3.2 8.4a1.6 1.6 0 0 0 0 2.3l2.1 2.1a1.6 1.6 0 0 0 2.3 0l2.8-2.8' },
|
|
63
|
+
],
|
|
64
|
+
'font-grow': [
|
|
65
|
+
{ d: 'M2 12.5L5.5 4l3.5 8.5M3.2 9.5h4.6' },
|
|
66
|
+
{ d: 'M12.5 3.5v7M10.5 5.5l2-2 2 2' },
|
|
67
|
+
],
|
|
68
|
+
'font-shrink': [
|
|
69
|
+
{ d: 'M2 12.5L5.5 4l3.5 8.5M3.2 9.5h4.6' },
|
|
70
|
+
{ d: 'M12.5 3.5v7M10.5 8.5l2 2 2-2' },
|
|
71
|
+
],
|
|
72
|
+
borders: [{ d: SQUARE, dash: DASHED }, { d: CROSS, dash: DASHED }, { d: 'M2.5 13.5h11', width: 2 }],
|
|
73
|
+
'border-none': [{ d: SQUARE, dash: DASHED }, { d: CROSS, dash: DASHED }],
|
|
74
|
+
'border-bottom': [{ d: SQUARE, dash: DASHED }, { d: CROSS, dash: DASHED }, { d: 'M2.5 13.5h11', width: 2 }],
|
|
75
|
+
'border-top': [{ d: SQUARE, dash: DASHED }, { d: CROSS, dash: DASHED }, { d: 'M2.5 2.5h11', width: 2 }],
|
|
76
|
+
'border-left': [{ d: SQUARE, dash: DASHED }, { d: CROSS, dash: DASHED }, { d: 'M2.5 2.5v11', width: 2 }],
|
|
77
|
+
'border-right': [{ d: SQUARE, dash: DASHED }, { d: CROSS, dash: DASHED }, { d: 'M13.5 2.5v11', width: 2 }],
|
|
78
|
+
'border-all': [{ d: SQUARE, width: 1.6 }, { d: CROSS, width: 1.6 }],
|
|
79
|
+
'border-outside': [{ d: SQUARE, width: 2 }, { d: CROSS, dash: DASHED }],
|
|
80
|
+
'border-thick-bottom': [{ d: SQUARE, dash: DASHED }, { d: CROSS, dash: DASHED }, { d: 'M2.5 13h11', width: 3 }],
|
|
81
|
+
'fill-colour': [
|
|
82
|
+
// A tipped paint bucket with a spilling drop, the shape Excel uses.
|
|
83
|
+
{ d: 'M7.5 2.5l5 5-4.3 4.3a1.5 1.5 0 0 1-2.1 0L3 8.7a1 1 0 0 1 0-1.4z' },
|
|
84
|
+
{ d: 'M3.2 8h8.6' },
|
|
85
|
+
{ d: 'M7.5 2.5L6 1' },
|
|
86
|
+
{ d: 'M13.2 9.3c.9 1.1 1.3 1.9 1.3 2.5a1.3 1.3 0 0 1-2.6 0c0-.6.4-1.4 1.3-2.5z', fill: true },
|
|
87
|
+
],
|
|
88
|
+
'font-colour': [
|
|
89
|
+
{ d: 'M3 12.5L7.5 2l4.5 10.5M4.6 9h5.8', width: 1.6 },
|
|
90
|
+
],
|
|
91
|
+
'align-left': [{ d: 'M2.5 3.5h11M2.5 6.5h7M2.5 9.5h11M2.5 12.5h7' }],
|
|
92
|
+
'align-center': [{ d: 'M2.5 3.5h11M4.5 6.5h7M2.5 9.5h11M4.5 12.5h7' }],
|
|
93
|
+
'align-right': [{ d: 'M2.5 3.5h11M6.5 6.5h7M2.5 9.5h11M6.5 12.5h7' }],
|
|
94
|
+
wrap: [
|
|
95
|
+
{ d: 'M2.5 4h11M2.5 8h8a2.25 2.25 0 0 1 0 4.5H8.5M2.5 12h3' },
|
|
96
|
+
{ d: 'M10 10.5l-2 2 2 2' },
|
|
97
|
+
],
|
|
98
|
+
'dec-more': [
|
|
99
|
+
{ d: 'M2.6 13h.01', width: 2.2 },
|
|
100
|
+
{ d: 'M6 13a1.6 2.2 0 1 0 0-.01M11.2 13a1.6 2.2 0 1 0 0-.01', width: 1.3 },
|
|
101
|
+
{ d: 'M7.5 4h6M11.5 2l2 2-2 2' },
|
|
102
|
+
],
|
|
103
|
+
'dec-less': [
|
|
104
|
+
{ d: 'M2.6 13h.01', width: 2.2 },
|
|
105
|
+
{ d: 'M6 13a1.6 2.2 0 1 0 0-.01', width: 1.3 },
|
|
106
|
+
{ d: 'M13.5 4h-6M9.5 2l-2 2 2 2' },
|
|
107
|
+
],
|
|
108
|
+
'insert-cells': [
|
|
109
|
+
{ d: 'M2.5 2.5h6M2.5 2.5v11h11V8' },
|
|
110
|
+
{ d: 'M2.5 8h11M8 2.5v11' },
|
|
111
|
+
{ d: 'M12.5 1.5v4M10.5 3.5h4', width: 1.7 },
|
|
112
|
+
],
|
|
113
|
+
'delete-cells': [
|
|
114
|
+
{ d: 'M2.5 2.5h6M2.5 2.5v11h11V6' },
|
|
115
|
+
{ d: 'M2.5 8h11M8 2.5v11' },
|
|
116
|
+
{ d: 'M10.5 3.5h4', width: 1.7 },
|
|
117
|
+
],
|
|
118
|
+
freeze: [
|
|
119
|
+
{ d: SQUARE },
|
|
120
|
+
{ d: 'M2.5 6h11M6 2.5v11', width: 1.6 },
|
|
121
|
+
{ d: 'M2.5 2.5h3.5v3.5H2.5z', fill: true },
|
|
122
|
+
],
|
|
123
|
+
/* An A, for the folded Font group. */
|
|
124
|
+
font: [{ d: 'M3 13.5L8 2.5l5 11M4.9 9.5h6.2' }],
|
|
125
|
+
/* A number sign, for the folded Number group. */
|
|
126
|
+
number: [{ d: 'M6 2.5L4.5 13.5M11.5 2.5L10 13.5M3 6h11M2 10.5h11' }],
|
|
127
|
+
/* A 3x3 of cells: the lines the Gridlines toggle shows and hides. */
|
|
128
|
+
gridlines: [
|
|
129
|
+
{ d: SQUARE },
|
|
130
|
+
{ d: 'M2.5 6.2h11M2.5 9.8h11M6.2 2.5v11M9.8 2.5v11', width: 1.1 },
|
|
131
|
+
],
|
|
132
|
+
/* The bar itself: a long box with fx in it. */
|
|
133
|
+
'formula-bar': [
|
|
134
|
+
{ d: 'M1.5 5h13v6h-13z' },
|
|
135
|
+
{ d: 'M4.8 9.6V7.4a1.1 1.1 0 0 1 1.1-1.1M3.9 8.2h2', width: 1.3 },
|
|
136
|
+
{ d: 'M8.3 6.9l3 2.8M11.3 6.9l-3 2.8', width: 1.1 },
|
|
137
|
+
],
|
|
138
|
+
/* The header band and the row gutter framing a sheet. */
|
|
139
|
+
headings: [
|
|
140
|
+
{ d: SQUARE },
|
|
141
|
+
{ d: 'M2.5 5.5h11M5.5 2.5v11' },
|
|
142
|
+
{ d: 'M7.5 4h.01M9.8 4h.01M12 4h.01M4 7.5h.01M4 9.8h.01M4 12h.01', width: 1.6 },
|
|
143
|
+
],
|
|
144
|
+
/* The frozen lines dotted, and struck through. */
|
|
145
|
+
unfreeze: [
|
|
146
|
+
{ d: SQUARE },
|
|
147
|
+
{ d: 'M2.5 6h11M6 2.5v11', dash: DASHED },
|
|
148
|
+
{ d: 'M3.5 12.5l9-9' },
|
|
149
|
+
],
|
|
150
|
+
autosum: [{ d: 'M12 3.5H4l4.5 4.5L4 12.5h8', width: 1.7 }],
|
|
151
|
+
'fill-down': [
|
|
152
|
+
{ d: 'M2.5 13.5h11' },
|
|
153
|
+
{ d: 'M8 2.5v8M5 7.5l3 3 3-3' },
|
|
154
|
+
],
|
|
155
|
+
'fill-right': [
|
|
156
|
+
{ d: 'M13.5 2.5v11' },
|
|
157
|
+
{ d: 'M2.5 8h8M7.5 5l3 3-3 3' },
|
|
158
|
+
],
|
|
159
|
+
clear: [
|
|
160
|
+
// An eraser on its side: the body, the split between rubber and grip,
|
|
161
|
+
// and the line it is wiping.
|
|
162
|
+
{ d: 'M9.5 2.5l4 4-6.5 6.5H4.5L2.5 11l7-8.5z' },
|
|
163
|
+
{ d: 'M6 6l4 4' },
|
|
164
|
+
{ d: 'M4 14.5h9.5' },
|
|
165
|
+
],
|
|
166
|
+
/* The eraser, smaller, over an A: formats wiped, the text kept. */
|
|
167
|
+
'clear-formats': [
|
|
168
|
+
{ d: 'M2.5 13.5L6 5l3.5 8.5M3.8 10.5h4.4' },
|
|
169
|
+
{ d: 'M11.5 2.5l2.5 2.5-4 4-2.5-2.5z' },
|
|
170
|
+
{ d: 'M9.5 6.5l2.5 2.5' },
|
|
171
|
+
],
|
|
172
|
+
/* A column's two edges and the arrow that sets the gap between them. */
|
|
173
|
+
'column-width': [
|
|
174
|
+
{ d: 'M4 2v12M12 2v12' },
|
|
175
|
+
{ d: 'M5 8h6M6.6 6.4L5 8l1.6 1.6M9.4 6.4L11 8l-1.6 1.6' },
|
|
176
|
+
],
|
|
177
|
+
'row-height': [
|
|
178
|
+
{ d: 'M2 4h12M2 12h12' },
|
|
179
|
+
{ d: 'M8 5v6M6.4 6.6L8 5l1.6 1.6M6.4 9.4L8 11l1.6-1.6' },
|
|
180
|
+
],
|
|
181
|
+
/* An eye, open for Unhide and struck through for Hide. */
|
|
182
|
+
hide: [
|
|
183
|
+
{ d: 'M1.8 8s2.3-4 6.2-4 6.2 4 6.2 4-2.3 4-6.2 4-6.2-4-6.2-4z' },
|
|
184
|
+
{ d: 'M8 9.8a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6z' },
|
|
185
|
+
{ d: 'M3 13L13 3' },
|
|
186
|
+
],
|
|
187
|
+
unhide: [
|
|
188
|
+
{ d: 'M1.8 8s2.3-4 6.2-4 6.2 4 6.2 4-2.3 4-6.2 4-6.2-4-6.2-4z' },
|
|
189
|
+
{ d: 'M8 9.8a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6z' },
|
|
190
|
+
],
|
|
191
|
+
find: [
|
|
192
|
+
{ d: 'M7 11.5a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9z' },
|
|
193
|
+
{ d: 'M10.3 10.3L14 14', width: 1.8 },
|
|
194
|
+
],
|
|
195
|
+
filter: [
|
|
196
|
+
{ d: 'M2.5 3h11l-4.3 5.3v3.9L6.8 13.5V8.3z' },
|
|
197
|
+
],
|
|
198
|
+
'sort-asc': [
|
|
199
|
+
{ d: 'M3 6.5l2-4 2 4M3.6 5.3h2.8', width: 1.2 },
|
|
200
|
+
{ d: 'M3.2 9.5h3.6l-3.6 4h3.6', width: 1.2 },
|
|
201
|
+
{ d: 'M12 2.5v11M9.5 11l2.5 2.5 2.5-2.5' },
|
|
202
|
+
],
|
|
203
|
+
'sort-desc': [
|
|
204
|
+
{ d: 'M3.2 2.5h3.6l-3.6 4h3.6', width: 1.2 },
|
|
205
|
+
{ d: 'M3 13.5l2-4 2 4M3.6 12.3h2.8', width: 1.2 },
|
|
206
|
+
{ d: 'M12 2.5v11M9.5 11l2.5 2.5 2.5-2.5' },
|
|
207
|
+
],
|
|
208
|
+
chart: [
|
|
209
|
+
{ d: 'M2.5 2.5v11h11' },
|
|
210
|
+
{ d: 'M4.5 13.5V8h2.5v5.5M8 13.5V4.5h2.5v9M11.5 13.5V10h2v3.5' },
|
|
211
|
+
],
|
|
212
|
+
/* A table: the header row is the one drawn heavier. */
|
|
213
|
+
table: [
|
|
214
|
+
{ d: 'M2.5 3h11v10h-11z' },
|
|
215
|
+
{ d: 'M2.5 9.5h11M6.2 6.5v6.5M9.8 6.5v6.5' },
|
|
216
|
+
{ d: 'M2.5 6.5h11', width: 2 },
|
|
217
|
+
],
|
|
218
|
+
function: [
|
|
219
|
+
{ d: 'M2.5 3h11v10h-11z' },
|
|
220
|
+
{ d: 'M6.8 11V6.5a1.4 1.4 0 0 1 1.4-1.4M5.6 8h2.6', width: 1.5 },
|
|
221
|
+
{ d: 'M9 8l2.7 3M11.7 8L9 11', width: 1.3 },
|
|
222
|
+
],
|
|
223
|
+
'new-sheet': [
|
|
224
|
+
...SHEET,
|
|
225
|
+
{ d: 'M8.2 6.5v5M5.7 9h5', width: 1.7 },
|
|
226
|
+
],
|
|
227
|
+
'name-manager': [
|
|
228
|
+
{ d: 'M2.5 3.5A1 1 0 0 1 3.5 2.5h4.6l5.4 5.4-4.9 4.9L3.5 8.4a1 1 0 0 1-1-1z' },
|
|
229
|
+
{ d: 'M5.6 5.6h.01', width: 2.2 },
|
|
230
|
+
],
|
|
231
|
+
'show-formulas': [
|
|
232
|
+
{ d: 'M2.5 3.5h11v9h-11z' },
|
|
233
|
+
{ d: 'M6.3 10.5V7a1.2 1.2 0 0 1 1.2-1.2M5.2 8h2.4', width: 1.4 },
|
|
234
|
+
{ d: 'M8.6 8l2.4 2.5M11 8l-2.4 2.5', width: 1.2 },
|
|
235
|
+
],
|
|
236
|
+
calculate: [
|
|
237
|
+
{ d: 'M4 1.5h8a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-11a1 1 0 0 1 1-1z' },
|
|
238
|
+
{ d: 'M5 3.5h6v2.5H5z' },
|
|
239
|
+
{ d: 'M5.5 8.5h.01M8 8.5h.01M10.5 8.5h.01M5.5 11h.01M8 11h.01M10.5 11h.01', width: 1.8 },
|
|
240
|
+
],
|
|
241
|
+
'goal-seek': [
|
|
242
|
+
{ d: 'M8 14a6 6 0 1 0 0-12 6 6 0 0 0 0 12z' },
|
|
243
|
+
{ d: 'M8 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6z' },
|
|
244
|
+
{ d: 'M8 8h.01', width: 2.4 },
|
|
245
|
+
],
|
|
246
|
+
'text-to-columns': [
|
|
247
|
+
{ d: 'M2.5 3.5h11v9h-11z' },
|
|
248
|
+
{ d: 'M8 3.5v9', dash: DASHED },
|
|
249
|
+
{ d: 'M6.5 8H4M5 6.5L3.5 8 5 9.5M9.5 8H12M11 6.5L12.5 8 11 9.5' },
|
|
250
|
+
],
|
|
251
|
+
/* Two rows the same, the second crossed out. */
|
|
252
|
+
'remove-duplicates': [
|
|
253
|
+
{ d: 'M2.5 3h11v3.5h-11zM2.5 9.5h11v3.5h-11z' },
|
|
254
|
+
{ d: 'M5 4.75h6M5 11.25h6', width: 1.2 },
|
|
255
|
+
{ d: 'M11 8.5l3 3M14 8.5l-3 3', width: 1.5 },
|
|
256
|
+
],
|
|
257
|
+
'chevron-down': [{ d: 'M4 6.5l4 4 4-4' }],
|
|
258
|
+
/* Four cells, one of them shaded by hatching rather than a slab. */
|
|
259
|
+
'format-cells': [
|
|
260
|
+
{ d: SQUARE },
|
|
261
|
+
{ d: CROSS },
|
|
262
|
+
{ d: 'M9.5 11.5l2-2M9.5 13.5l4-4M11.5 13.5l2-2', width: 1 },
|
|
263
|
+
],
|
|
264
|
+
// A padlock: the body, the shackle, the keyhole dot.
|
|
265
|
+
lock: [
|
|
266
|
+
{ d: 'M3.5 7.5h9v6.5h-9z' },
|
|
267
|
+
{ d: 'M5.5 7.5V5a2.5 2.5 0 0 1 5 0v2.5' },
|
|
268
|
+
{ d: 'M8 10.2a.7.7 0 1 0 0 .1z', fill: true },
|
|
269
|
+
],
|
|
270
|
+
// A sheet with a padlock over its corner: locked cells hold.
|
|
271
|
+
protect: [
|
|
272
|
+
{ d: 'M2.5 2.5h7v3h-7zM2.5 5.5v8h5' },
|
|
273
|
+
{ d: 'M2.5 5.5h7M5.5 2.5v11' },
|
|
274
|
+
{ d: 'M9 10h5v4H9z' },
|
|
275
|
+
{ d: 'M10 10V8.8a1.5 1.5 0 0 1 3 0V10' },
|
|
276
|
+
],
|
|
277
|
+
// The same sheet, the shackle open.
|
|
278
|
+
unprotect: [
|
|
279
|
+
{ d: 'M2.5 2.5h7v3h-7zM2.5 5.5v8h5' },
|
|
280
|
+
{ d: 'M2.5 5.5h7M5.5 2.5v11' },
|
|
281
|
+
{ d: 'M9 10h5v4H9z' },
|
|
282
|
+
{ d: 'M10 10V8.8a1.5 1.5 0 0 1 3 0' },
|
|
283
|
+
],
|
|
284
|
+
// A speech bubble, and the same bubble with a mark inside or beside it.
|
|
285
|
+
comment: [
|
|
286
|
+
{ d: BUBBLE },
|
|
287
|
+
{ d: 'M8 5v3', width: 1.5 },
|
|
288
|
+
{ d: 'M8 10.5a.5.5 0 1 0 0 .1z', fill: true },
|
|
289
|
+
],
|
|
290
|
+
'comment-delete': [
|
|
291
|
+
{ d: BUBBLE },
|
|
292
|
+
{ d: 'M6 5.5l4 4M10 5.5l-4 4' },
|
|
293
|
+
],
|
|
294
|
+
'comment-prev': [
|
|
295
|
+
{ d: BUBBLE },
|
|
296
|
+
{ d: 'M9.5 5l-3 2.5 3 2.5' },
|
|
297
|
+
],
|
|
298
|
+
'comment-next': [
|
|
299
|
+
{ d: BUBBLE },
|
|
300
|
+
{ d: 'M6.5 5l3 2.5-3 2.5' },
|
|
301
|
+
],
|
|
302
|
+
'comments-all': [
|
|
303
|
+
{ d: 'M2.5 2.5h7a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H6l-2 2v-2H2.5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z' },
|
|
304
|
+
{ d: 'M12 6.5h1.5a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H13v2l-2-2H7.5a1 1 0 0 1-1-1v-1' },
|
|
305
|
+
],
|
|
306
|
+
// Conditional formatting: a table with its bottom-right cell filled.
|
|
307
|
+
/* Conditional formatting: cells, one of them carrying a bar. */
|
|
308
|
+
cf: [
|
|
309
|
+
{ d: SQUARE },
|
|
310
|
+
{ d: CROSS },
|
|
311
|
+
{ d: 'M3.8 4.5h2.4M3.8 6h1.4M9.3 10h3.4M9.3 11.5h2', width: 1.6 },
|
|
312
|
+
],
|
|
313
|
+
'cf-greater': [{ d: 'M4 3.5l7 4.5-7 4.5' }],
|
|
314
|
+
'cf-less': [{ d: 'M12 3.5L5 8l7 4.5' }],
|
|
315
|
+
'cf-between': [{ d: 'M3 4v8M13 4v8M5.5 8h5' }, { d: 'M5.5 8l2-2M5.5 8l2 2M10.5 8l-2-2M10.5 8l-2 2' }],
|
|
316
|
+
'cf-equal': [{ d: 'M3.5 6h9M3.5 10h9' }],
|
|
317
|
+
'cf-text': [{ d: 'M3 12.5L6.5 3.5l3.5 9M4.2 9.5h4.6' }, { d: 'M12.5 8v4.5' }],
|
|
318
|
+
'cf-duplicates': [{ d: 'M2.5 2.5h7v7h-7z' }, { d: 'M6.5 6.5h7v7h-7z' }],
|
|
319
|
+
'cf-top': [{ d: 'M8 13V4M4.5 7.5L8 4l3.5 3.5' }, { d: 'M3 2.5h10' }],
|
|
320
|
+
'cf-bottom': [{ d: 'M8 3v9M4.5 8.5L8 12l3.5-3.5' }, { d: 'M3 13.5h10' }],
|
|
321
|
+
'cf-above': [{ d: 'M2.5 9.5h11', dash: '2 1.5' }, { d: 'M8 8V3M5.5 5.5L8 3l2.5 2.5' }],
|
|
322
|
+
'cf-below': [{ d: 'M2.5 6.5h11', dash: '2 1.5' }, { d: 'M8 8v5M5.5 10.5L8 13l2.5-2.5' }],
|
|
323
|
+
/* Data bars: three rows, the bar in each a heavier stroke. */
|
|
324
|
+
'cf-bar': [{ d: SQUARE }, { d: 'M2.5 6.2h11M2.5 9.8h11' }, { d: 'M4 4.3h7M4 8h3.5M4 11.7h8.5', width: 2 }],
|
|
325
|
+
/* Colour scale: three rows, dotted more densely down the stack. */
|
|
326
|
+
'cf-scale': [{ d: SQUARE }, { d: 'M2.5 6.2h11M2.5 9.8h11' }, { d: 'M6 4.3h.01M10 4.3h.01M4.7 8h.01M8 8h.01M11.3 8h.01M4 11.7h.01M6.5 11.7h.01M9.5 11.7h.01M12 11.7h.01', width: 1.6 }],
|
|
327
|
+
/* Icon set: a circle, a triangle, a diamond, in outline. */
|
|
328
|
+
'cf-icons': [{ d: 'M4.5 5.6a1.7 1.7 0 1 0 0-.01' }, { d: 'M8 3.6l1.9 3.4H6.1z' }, { d: 'M11.6 3.5l1.9 2.1-1.9 2.1-1.9-2.1z' }, { d: 'M3 12.5h10', width: 1 }],
|
|
329
|
+
// Merge: a table whose middle cells have become one, arrows meeting.
|
|
330
|
+
merge: [
|
|
331
|
+
{ d: SQUARE },
|
|
332
|
+
{ d: 'M2.5 6h11M2.5 10h11' },
|
|
333
|
+
{ d: 'M5 8h6M5 8l1.5-1.5M5 8l1.5 1.5M11 8l-1.5-1.5M11 8l-1.5 1.5' },
|
|
334
|
+
],
|
|
335
|
+
// Unmerge: the same table, the middle cell split again, arrows parting.
|
|
336
|
+
unmerge: [
|
|
337
|
+
{ d: SQUARE },
|
|
338
|
+
{ d: 'M2.5 6h11M2.5 10h11M8 6v4' },
|
|
339
|
+
{ d: 'M3.5 8h2.5M6 8L4.8 6.8M6 8l-1.2 1.2M12.5 8H10M10 8l1.2-1.2M10 8l1.2 1.2' },
|
|
340
|
+
],
|
|
341
|
+
// A cell with a tick and a cross beside it: what passes, what does not.
|
|
342
|
+
validation: [
|
|
343
|
+
{ d: SQUARE },
|
|
344
|
+
{ d: 'M2.5 6.5h11M8 2.5v11' },
|
|
345
|
+
{ d: 'M3.8 10.3l1.4 1.4 2.2-2.6' },
|
|
346
|
+
{ d: 'M9.6 9.1l2.3 2.3M11.9 9.1l-2.3 2.3' },
|
|
347
|
+
],
|
|
348
|
+
};
|
|
349
|
+
/** The names, for tests and for anyone building their own toolbar. */
|
|
350
|
+
export const RIBBON_ICON_NAMES = Object.keys(RIBBON_ICONS);
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ribbon, as data.
|
|
3
|
+
*
|
|
4
|
+
* Same shape of decision as SHEET_BINDINGS: a table that can be read in one
|
|
5
|
+
* screen and tested without mounting anything. `SvSheetRibbon.svelte` is only
|
|
6
|
+
* a renderer for it.
|
|
7
|
+
*
|
|
8
|
+
* Every item that acts on the sheet runs one of the action functions
|
|
9
|
+
* `shortcuts.ts` exports - the same ones the keymap binds. That is the whole
|
|
10
|
+
* point of the indirection: Ctrl+B and the Bold button are literally the same
|
|
11
|
+
* call, so they cannot come to disagree about what "bold the selection" means,
|
|
12
|
+
* and neither can drift when the format store changes underneath them.
|
|
13
|
+
*
|
|
14
|
+
* Items that need chrome the keyboard layer deliberately does not ship (a
|
|
15
|
+
* function picker, a Goal Seek dialog, Text to Columns options) carry no `run`
|
|
16
|
+
* and set `emits` instead. The renderer reports those through `onAction` and
|
|
17
|
+
* the host decides what a dialog looks like, which is the same split
|
|
18
|
+
* `setFormatDialogHandler` already makes.
|
|
19
|
+
*
|
|
20
|
+
* Layout is Excel's, and it is in the data too. A group is a block three
|
|
21
|
+
* rows high: a LARGE button (icon over label) takes a whole column, SMALL
|
|
22
|
+
* buttons stack three to a column, and each small item says which row it
|
|
23
|
+
* sits on. The renderer lays that out on a grid, which is what makes Cut /
|
|
24
|
+
* Copy / Paste Special line up under each other beside a tall Paste, the
|
|
25
|
+
* way they do in Excel, without per-group pixel widths.
|
|
26
|
+
*/
|
|
27
|
+
import type { GridCommandContext } from '@svgrid/grid/shortcuts';
|
|
28
|
+
export { FONT_SIZES, applyBorders, type BorderPreset } from './shortcuts.js';
|
|
29
|
+
import type { RibbonIconName } from './ribbon-icons.js';
|
|
30
|
+
/** What the host has to render for one control. */
|
|
31
|
+
export type RibbonItemKind =
|
|
32
|
+
/** Runs and forgets. */
|
|
33
|
+
'button'
|
|
34
|
+
/** Runs, and paints itself on when `isOn` reports true for the selection. */
|
|
35
|
+
| 'toggle'
|
|
36
|
+
/** A dropdown showing the selection's current value; `run` receives the pick. */
|
|
37
|
+
| 'select'
|
|
38
|
+
/**
|
|
39
|
+
* Excel's split button: the face applies the last value picked (or
|
|
40
|
+
* `initial`), the arrow opens a menu of `options`. A `palette` menu is
|
|
41
|
+
* the colour picker; otherwise it is a list, with an icon per entry.
|
|
42
|
+
*/
|
|
43
|
+
| 'menu'
|
|
44
|
+
/**
|
|
45
|
+
* Excel's plain menu button (Format, Sort & Filter): the face opens the
|
|
46
|
+
* list and each entry is an action of its own, raised through `emits`
|
|
47
|
+
* or run through `run(cmd, value)`. Entries with `heading` are the
|
|
48
|
+
* section labels Excel prints between the groups.
|
|
49
|
+
*/
|
|
50
|
+
| 'dropdown';
|
|
51
|
+
export type RibbonOption = {
|
|
52
|
+
value: string;
|
|
53
|
+
label: string;
|
|
54
|
+
/** List menus: the glyph beside the label. */
|
|
55
|
+
icon?: RibbonIconName;
|
|
56
|
+
/** Dropdowns: the entry raises this action rather than running the item. */
|
|
57
|
+
emits?: RibbonActionId;
|
|
58
|
+
/** Dropdowns: printed after the label, the way Excel prints Ctrl+1. */
|
|
59
|
+
keys?: string;
|
|
60
|
+
/** Dropdowns: a section label, not an entry. */
|
|
61
|
+
heading?: boolean;
|
|
62
|
+
/** Dropdowns: the entry is a toggle, lit while its action is active. */
|
|
63
|
+
toggle?: boolean;
|
|
64
|
+
};
|
|
65
|
+
export type RibbonItem = {
|
|
66
|
+
id: string;
|
|
67
|
+
/** The button face, or the label under a large button. */
|
|
68
|
+
label: string;
|
|
69
|
+
/** Long form for the tooltip and the accessible name. */
|
|
70
|
+
title: string;
|
|
71
|
+
/** Drawn on the face. Without one the face prints `label`, which is what
|
|
72
|
+
* Bold, Italic and the number-format buttons want: B, I, $, %. */
|
|
73
|
+
icon?: RibbonIconName;
|
|
74
|
+
/** Shown after the title in the tooltip, the way Excel does it. */
|
|
75
|
+
keys?: string;
|
|
76
|
+
kind: RibbonItemKind;
|
|
77
|
+
/**
|
|
78
|
+
* Excel's two button sizes. A large button is an icon over a label and
|
|
79
|
+
* fills the group's height; a small one is a 24px strip. Large is the
|
|
80
|
+
* command a group exists for (Paste, Sort & Filter, Text to Columns);
|
|
81
|
+
* everything else is small.
|
|
82
|
+
*/
|
|
83
|
+
size?: 'large' | 'small';
|
|
84
|
+
/** Small buttons only: which of the group's three rows this sits on. */
|
|
85
|
+
row?: 1 | 2 | 3;
|
|
86
|
+
/** Small buttons only: print the label beside the icon. */
|
|
87
|
+
wide?: boolean;
|
|
88
|
+
/** Run the action. Returns false when it declined (nothing selected, no
|
|
89
|
+
* store attached), which the renderer uses to avoid claiming it worked. */
|
|
90
|
+
run?: (cmd: GridCommandContext, value?: string) => boolean;
|
|
91
|
+
/** Toggles only. */
|
|
92
|
+
isOn?: (cmd: GridCommandContext) => boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Lit while this action is among the shell's active actions, for an item
|
|
95
|
+
* that runs rather than emits: Merge & Center's face lights while the
|
|
96
|
+
* active cell is merged, as Excel's does.
|
|
97
|
+
*/
|
|
98
|
+
lit?: RibbonActionId;
|
|
99
|
+
/** Defaults to enabled. Reports false when the action has nothing to act
|
|
100
|
+
* on, so the button greys out rather than doing nothing on click. */
|
|
101
|
+
isEnabled?: (cmd: GridCommandContext) => boolean;
|
|
102
|
+
/** `select` and `menu` only. */
|
|
103
|
+
options?: ReadonlyArray<RibbonOption>;
|
|
104
|
+
/** `select` only: the value the selection currently has, so the control
|
|
105
|
+
* reads "Calibri" or "General" for the active cell rather than a blank. */
|
|
106
|
+
current?: (cmd: GridCommandContext) => string;
|
|
107
|
+
/** `menu` only: render `options` as Excel's colour grid. */
|
|
108
|
+
palette?: boolean;
|
|
109
|
+
/** Palette menus: the "No Fill" / "Automatic" entry at the top. */
|
|
110
|
+
none?: RibbonOption;
|
|
111
|
+
/** Menus: the value the face applies before anything has been picked.
|
|
112
|
+
* Excel starts Fill Colour on yellow and Font Colour on red. */
|
|
113
|
+
initial?: string;
|
|
114
|
+
/** Set instead of `run` when the action needs chrome this layer does not
|
|
115
|
+
* own. The renderer calls `onAction(emits, cmd)`. */
|
|
116
|
+
emits?: RibbonActionId;
|
|
117
|
+
/**
|
|
118
|
+
* Dropdowns only: Excel's split button. The face runs the item (Paste
|
|
119
|
+
* pastes) and the arrow opens the entries, each an action of its own;
|
|
120
|
+
* an entry without `emits` runs the item with its value.
|
|
121
|
+
*/
|
|
122
|
+
split?: boolean;
|
|
123
|
+
};
|
|
124
|
+
/** Actions the ribbon delegates to the host rather than running itself. */
|
|
125
|
+
export type RibbonActionId = 'paste-special' | 'format-cells' | 'find-replace' | 'insert-function' | 'name-manager' | 'text-to-columns' | 'remove-duplicates' | 'goal-seek' | 'insert-chart' | 'insert-table' | 'recalculate' | 'toggle-formulas' | 'sort-asc' | 'sort-desc' | 'toggle-filter' | 'freeze-panes' | 'unfreeze-panes' | 'hide-rows' | 'hide-columns' | 'unhide-rows' | 'unhide-columns' | 'row-height' | 'column-width' | 'autofit-rows' | 'autofit-columns' | 'paste-values' | 'paste-formulas' | 'paste-formats' | 'paste-transpose' | 'format-painter' | 'protect-sheet' | 'unprotect-sheet' | 'toggle-lock' | 'new-comment' | 'edit-comment' | 'delete-comment' | 'prev-comment' | 'next-comment' | 'toggle-comments' | 'data-validation' | 'open-list' | 'freeze-top-row' | 'freeze-first-column' | 'toggle-gridlines' | 'toggle-formula-bar' | 'toggle-headings' | 'toggle-ribbon' | 'cf-greater' | 'cf-less' | 'cf-between' | 'cf-equal' | 'cf-text' | 'cf-duplicates' | 'cf-top10' | 'cf-bottom10' | 'cf-above-average' | 'cf-below-average' | 'cf-data-bar' | 'cf-color-scale-3' | 'cf-color-scale-2' | 'cf-icon-set' | 'cf-clear-selection' | 'cf-clear-sheet' | 'cf-manage' | 'merge-center' | 'merge-across' | 'merge-cells' | 'unmerge-cells';
|
|
126
|
+
export type RibbonGroup = {
|
|
127
|
+
id: string;
|
|
128
|
+
/** Printed under the group, which is what makes a ribbon a ribbon. */
|
|
129
|
+
label: string;
|
|
130
|
+
/** What the group's one button shows once the band has folded it. */
|
|
131
|
+
icon?: RibbonIconName;
|
|
132
|
+
/**
|
|
133
|
+
* How the small items are arranged.
|
|
134
|
+
*
|
|
135
|
+
* `grid` (the default) is Excel's column model: items on the same row
|
|
136
|
+
* line up in columns, so a stack of Cut / Copy / Paste Special is one
|
|
137
|
+
* neat column and AutoSum / Fill / Clear another. `flow` lets each row
|
|
138
|
+
* run freely, which is what the Font group needs: a wide font box next
|
|
139
|
+
* to a size box on row one, and a run of narrow B I U buttons under it,
|
|
140
|
+
* with nothing forcing the two rows into shared columns.
|
|
141
|
+
*/
|
|
142
|
+
layout?: 'grid' | 'flow';
|
|
143
|
+
/** Excel's dialog box launcher: the small arrow in the group's corner
|
|
144
|
+
* that opens the full dialog for what the group does. */
|
|
145
|
+
launcher?: RibbonActionId;
|
|
146
|
+
items: ReadonlyArray<RibbonItem>;
|
|
147
|
+
};
|
|
148
|
+
export type RibbonTab = {
|
|
149
|
+
id: string;
|
|
150
|
+
label: string;
|
|
151
|
+
groups: ReadonlyArray<RibbonGroup>;
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* Move the decimal count of a number-format pattern by `delta`.
|
|
155
|
+
*
|
|
156
|
+
* Exported because it is the fiddly part and deserves its own tests: the
|
|
157
|
+
* pattern can have a prefix and a suffix (`$#,##0.00`, `0.0%`), can have no
|
|
158
|
+
* decimal section at all, and must not go below zero or run away past the 30
|
|
159
|
+
* places Excel allows.
|
|
160
|
+
*/
|
|
161
|
+
export declare function withDecimals(pattern: string, delta: number): string | null;
|
|
162
|
+
/**
|
|
163
|
+
* The fonts a spreadsheet user reaches for, with the stacks that make each
|
|
164
|
+
* render on a machine that lacks it. The empty value is the theme's own
|
|
165
|
+
* font, which is what "Default" means here and what a fresh cell has.
|
|
166
|
+
*/
|
|
167
|
+
export declare const FONT_FAMILIES: ReadonlyArray<{
|
|
168
|
+
value: string;
|
|
169
|
+
label: string;
|
|
170
|
+
}>;
|
|
171
|
+
export declare const RIBBON_TABS: ReadonlyArray<RibbonTab>;
|
|
172
|
+
/** Every item across every tab, for tests and for a command palette. */
|
|
173
|
+
export declare function ribbonItems(): ReadonlyArray<RibbonItem>;
|