@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,172 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
/**
|
|
3
|
+
* Excel's Convert Text to Columns Wizard, the delimited page: pick the
|
|
4
|
+
* delimiter (guessed from the column first), see the split in a preview,
|
|
5
|
+
* Finish writes the fields into the columns to the right of the source
|
|
6
|
+
* inside one batch, so the whole split is one Ctrl+Z.
|
|
7
|
+
*/
|
|
8
|
+
import { untrack } from 'svelte'
|
|
9
|
+
import { SvModal } from '@svgrid/grid'
|
|
10
|
+
import type { GridCommandContext } from '@svgrid/grid/shortcuts'
|
|
11
|
+
import type { Workbook } from './sheet/workbook'
|
|
12
|
+
import { textToColumns, guessDelimiter } from './sheet/transforms'
|
|
13
|
+
import { colToLetters } from './sheet/address'
|
|
14
|
+
|
|
15
|
+
type Props = {
|
|
16
|
+
open?: boolean
|
|
17
|
+
workbook: Workbook
|
|
18
|
+
cmd: () => GridCommandContext | null
|
|
19
|
+
/** Called after the split, so the shell repaints and refocuses. */
|
|
20
|
+
onDone: (message: string) => void
|
|
21
|
+
onClose?: () => void
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
let { open = $bindable(false), workbook, cmd, onDone, onClose }: Props = $props()
|
|
25
|
+
|
|
26
|
+
const DELIMITERS = [
|
|
27
|
+
{ id: 'tab', label: 'Tab', sep: '\t' },
|
|
28
|
+
{ id: 'semicolon', label: 'Semicolon', sep: ';' },
|
|
29
|
+
{ id: 'comma', label: 'Comma', sep: ',' },
|
|
30
|
+
{ id: 'space', label: 'Space', sep: ' ' },
|
|
31
|
+
{ id: 'other', label: 'Other', sep: '' },
|
|
32
|
+
] as const
|
|
33
|
+
type DelimiterId = (typeof DELIMITERS)[number]['id']
|
|
34
|
+
|
|
35
|
+
let delimiter = $state<DelimiterId>('comma')
|
|
36
|
+
let other = $state('|')
|
|
37
|
+
let collapse = $state(false)
|
|
38
|
+
let trim = $state(true)
|
|
39
|
+
let column = $state<{ index: number; top: number; texts: string[] }>({ index: 0, top: 0, texts: [] })
|
|
40
|
+
|
|
41
|
+
const separator = $derived(
|
|
42
|
+
delimiter === 'other' ? other : DELIMITERS.find((d) => d.id === delimiter)!.sep,
|
|
43
|
+
)
|
|
44
|
+
const preview = $derived.by(() =>
|
|
45
|
+
textToColumns(column.texts.slice(0, 6), {
|
|
46
|
+
delimiters: separator ? [separator] : [','],
|
|
47
|
+
collapse,
|
|
48
|
+
trim,
|
|
49
|
+
}),
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The column under the selection, from the selection's first row (a
|
|
54
|
+
* whole-column selection starts at the top) down to the last used row.
|
|
55
|
+
*/
|
|
56
|
+
$effect(() => {
|
|
57
|
+
if (!open) return
|
|
58
|
+
untrack(prepare)
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
function prepare() {
|
|
62
|
+
const c = cmd()
|
|
63
|
+
const range = c?.ranges[c.ranges.length - 1]
|
|
64
|
+
const left = range ? range[1] : (c?.activeCell?.colIndex ?? 0)
|
|
65
|
+
const top = range ? range[0] : (c?.activeCell?.rowIndex ?? 0)
|
|
66
|
+
const bottom = Math.max(workbook.rowCount(workbook.active) - 1, top)
|
|
67
|
+
const texts = Array.from({ length: bottom - top + 1 }, (_, i) => workbook.getRaw(workbook.active, top + i, left))
|
|
68
|
+
column = { index: left, top, texts }
|
|
69
|
+
const guess = guessDelimiter(texts.filter((t) => t !== ''))
|
|
70
|
+
const known = DELIMITERS.find((d) => d.sep === guess && d.id !== 'other')
|
|
71
|
+
if (known) delimiter = known.id
|
|
72
|
+
else if (guess) { delimiter = 'other'; other = guess }
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function finish() {
|
|
76
|
+
const c = cmd()
|
|
77
|
+
if (!c) return
|
|
78
|
+
const { rows, width } = textToColumns(column.texts, {
|
|
79
|
+
delimiters: separator ? [separator] : [','],
|
|
80
|
+
collapse,
|
|
81
|
+
trim,
|
|
82
|
+
})
|
|
83
|
+
c.batch(() => {
|
|
84
|
+
rows.forEach((fields, r) => {
|
|
85
|
+
for (let i = 0; i < width; i += 1) {
|
|
86
|
+
c.setCellValue(column.top + r, column.index + i, fields[i] ?? '')
|
|
87
|
+
}
|
|
88
|
+
})
|
|
89
|
+
})
|
|
90
|
+
open = false
|
|
91
|
+
c.setSelection(column.top, column.index)
|
|
92
|
+
c.extendSelection(column.top + rows.length - 1, column.index + width - 1)
|
|
93
|
+
onDone(`Split ${rows.length} rows into ${width} columns.`)
|
|
94
|
+
onClose?.()
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function close() {
|
|
98
|
+
open = false
|
|
99
|
+
onClose?.()
|
|
100
|
+
}
|
|
101
|
+
</script>
|
|
102
|
+
|
|
103
|
+
<SvModal bind:open onClose={onClose} title="Convert Text to Columns Wizard" size="md">
|
|
104
|
+
<div class="sv-sheet-dialog" role="group" aria-label="Convert Text to Columns">
|
|
105
|
+
<p class="lead">Choose the delimiter your data contains. The preview shows how it splits.</p>
|
|
106
|
+
<fieldset class="group">
|
|
107
|
+
<legend>Delimiters</legend>
|
|
108
|
+
{#each DELIMITERS as d (d.id)}
|
|
109
|
+
<label class="check">
|
|
110
|
+
<input type="radio" name="sheet-delimiter" value={d.id} bind:group={delimiter} />
|
|
111
|
+
{d.label}
|
|
112
|
+
{#if d.id === 'other'}
|
|
113
|
+
<input class="other" type="text" maxlength="1" bind:value={other} aria-label="Other delimiter" />
|
|
114
|
+
{/if}
|
|
115
|
+
</label>
|
|
116
|
+
{/each}
|
|
117
|
+
</fieldset>
|
|
118
|
+
<div class="checks">
|
|
119
|
+
<label class="check"><input type="checkbox" bind:checked={collapse} /> Treat consecutive delimiters as one</label>
|
|
120
|
+
<label class="check"><input type="checkbox" bind:checked={trim} /> Trim spaces around each field</label>
|
|
121
|
+
</div>
|
|
122
|
+
<div class="preview" aria-label="Data preview">
|
|
123
|
+
<table>
|
|
124
|
+
<tbody>
|
|
125
|
+
{#each preview.rows as fields, i (i)}
|
|
126
|
+
<tr>{#each fields as field, j (j)}<td>{field}</td>{/each}</tr>
|
|
127
|
+
{/each}
|
|
128
|
+
</tbody>
|
|
129
|
+
</table>
|
|
130
|
+
</div>
|
|
131
|
+
<p class="status">
|
|
132
|
+
{column.texts.length} rows in column {colToLetters(column.index)}
|
|
133
|
+
become {preview.width} column{preview.width === 1 ? '' : 's'} from column {colToLetters(column.index)}.
|
|
134
|
+
Anything already in those columns is replaced.
|
|
135
|
+
</p>
|
|
136
|
+
</div>
|
|
137
|
+
{#snippet footer()}
|
|
138
|
+
<div class="sv-sheet-dialog-buttons">
|
|
139
|
+
<button type="button" class="btn primary" onclick={finish} disabled={column.texts.length === 0}>Finish</button>
|
|
140
|
+
<button type="button" class="btn" onclick={close}>Cancel</button>
|
|
141
|
+
</div>
|
|
142
|
+
{/snippet}
|
|
143
|
+
</SvModal>
|
|
144
|
+
|
|
145
|
+
<style>
|
|
146
|
+
.lead { margin: 0; }
|
|
147
|
+
.group {
|
|
148
|
+
display: flex;
|
|
149
|
+
flex-wrap: wrap;
|
|
150
|
+
gap: 6px 16px;
|
|
151
|
+
margin: 0;
|
|
152
|
+
padding: 6px 10px 8px;
|
|
153
|
+
border: 1px solid var(--sg-border, #d1d1d1);
|
|
154
|
+
border-radius: var(--sg-radius, 3px);
|
|
155
|
+
}
|
|
156
|
+
.group legend { padding: 0 4px; font-weight: 600; }
|
|
157
|
+
.other { width: 32px !important; height: 22px !important; padding: 0 4px !important; text-align: center; }
|
|
158
|
+
.preview {
|
|
159
|
+
max-height: 150px;
|
|
160
|
+
overflow: auto;
|
|
161
|
+
border: 1px solid var(--sg-border, #d1d1d1);
|
|
162
|
+
border-radius: var(--sg-radius, 3px);
|
|
163
|
+
background: var(--sg-bg, #fff);
|
|
164
|
+
}
|
|
165
|
+
.preview table { border-collapse: collapse; font-size: 12px; }
|
|
166
|
+
.preview td {
|
|
167
|
+
padding: 3px 8px;
|
|
168
|
+
border-right: 1px solid var(--sg-border, #e5e5e5);
|
|
169
|
+
border-bottom: 1px solid var(--sg-border, #e5e5e5);
|
|
170
|
+
white-space: nowrap;
|
|
171
|
+
}
|
|
172
|
+
</style>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { GridCommandContext } from '@svgrid/grid/shortcuts';
|
|
2
|
+
import type { Workbook } from './sheet/workbook.js';
|
|
3
|
+
type Props = {
|
|
4
|
+
open?: boolean;
|
|
5
|
+
workbook: Workbook;
|
|
6
|
+
cmd: () => GridCommandContext | null;
|
|
7
|
+
/** Called after the split, so the shell repaints and refocuses. */
|
|
8
|
+
onDone: (message: string) => void;
|
|
9
|
+
onClose?: () => void;
|
|
10
|
+
};
|
|
11
|
+
declare const SvSheetTextToColumns: import("svelte").Component<Props, {}, "open">;
|
|
12
|
+
type SvSheetTextToColumns = ReturnType<typeof SvSheetTextToColumns>;
|
|
13
|
+
export default SvSheetTextToColumns;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
/**
|
|
3
|
+
* The box Excel shows when an entry breaks a validation rule. Stop: the
|
|
4
|
+
* message, Retry (the cell reopens with the entry) and Cancel. Warning:
|
|
5
|
+
* the message, "Continue?", Yes (the entry lands anyway), No (retry) and
|
|
6
|
+
* Cancel. Enter takes the first button, Escape cancels.
|
|
7
|
+
*/
|
|
8
|
+
import { SvModal } from '@svgrid/grid'
|
|
9
|
+
|
|
10
|
+
type Props = {
|
|
11
|
+
open?: boolean
|
|
12
|
+
alert: { style: 'stop' | 'warning'; title: string; message: string } | null
|
|
13
|
+
onRetry: () => void
|
|
14
|
+
/** Warning only: keep the entry. */
|
|
15
|
+
onAccept: () => void
|
|
16
|
+
onCancel: () => void
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
let { open = $bindable(false), alert, onRetry, onAccept, onCancel }: Props = $props()
|
|
20
|
+
let first = $state<HTMLButtonElement | null>(null)
|
|
21
|
+
|
|
22
|
+
$effect(() => {
|
|
23
|
+
if (!open) return
|
|
24
|
+
queueMicrotask(() => first?.focus())
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
function done(fn: () => void) {
|
|
28
|
+
open = false
|
|
29
|
+
fn()
|
|
30
|
+
}
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<SvModal bind:open onClose={onCancel} title={alert?.title ?? 'Data validation'} size="sm">
|
|
34
|
+
<div class="sv-sheet-dialog alert" role="alertdialog" aria-describedby="sv-sheet-validation-message">
|
|
35
|
+
<span class="mark" class:warning={alert?.style === 'warning'} aria-hidden="true">{alert?.style === 'warning' ? '!' : '×'}</span>
|
|
36
|
+
<div>
|
|
37
|
+
<p id="sv-sheet-validation-message" class="message">{alert?.message}</p>
|
|
38
|
+
{#if alert?.style === 'warning'}<p class="message">Continue?</p>{/if}
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
{#snippet footer()}
|
|
42
|
+
<div class="sv-sheet-dialog-buttons">
|
|
43
|
+
{#if alert?.style === 'warning'}
|
|
44
|
+
<button bind:this={first} type="button" class="btn primary" onclick={() => done(onAccept)}>Yes</button>
|
|
45
|
+
<button type="button" class="btn" onclick={() => done(onRetry)}>No</button>
|
|
46
|
+
{:else}
|
|
47
|
+
<button bind:this={first} type="button" class="btn primary" onclick={() => done(onRetry)}>Retry</button>
|
|
48
|
+
{/if}
|
|
49
|
+
<button type="button" class="btn" onclick={() => done(onCancel)}>Cancel</button>
|
|
50
|
+
</div>
|
|
51
|
+
{/snippet}
|
|
52
|
+
</SvModal>
|
|
53
|
+
|
|
54
|
+
<style>
|
|
55
|
+
.alert {
|
|
56
|
+
flex-direction: row;
|
|
57
|
+
align-items: flex-start;
|
|
58
|
+
gap: 14px;
|
|
59
|
+
min-width: 300px;
|
|
60
|
+
max-width: 420px;
|
|
61
|
+
}
|
|
62
|
+
.mark {
|
|
63
|
+
flex: 0 0 auto;
|
|
64
|
+
width: 32px;
|
|
65
|
+
height: 32px;
|
|
66
|
+
display: grid;
|
|
67
|
+
place-items: center;
|
|
68
|
+
font-size: 20px;
|
|
69
|
+
font-weight: 700;
|
|
70
|
+
line-height: 1;
|
|
71
|
+
color: var(--sg-on-accent, #fff);
|
|
72
|
+
background: var(--sg-danger, #c42b1c);
|
|
73
|
+
border-radius: 50%;
|
|
74
|
+
}
|
|
75
|
+
.mark.warning {
|
|
76
|
+
color: #242424;
|
|
77
|
+
background: var(--sg-warning, #f2c811);
|
|
78
|
+
}
|
|
79
|
+
.message {
|
|
80
|
+
margin: 0 0 6px;
|
|
81
|
+
white-space: pre-wrap;
|
|
82
|
+
}
|
|
83
|
+
</style>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type Props = {
|
|
2
|
+
open?: boolean;
|
|
3
|
+
alert: {
|
|
4
|
+
style: 'stop' | 'warning';
|
|
5
|
+
title: string;
|
|
6
|
+
message: string;
|
|
7
|
+
} | null;
|
|
8
|
+
onRetry: () => void;
|
|
9
|
+
/** Warning only: keep the entry. */
|
|
10
|
+
onAccept: () => void;
|
|
11
|
+
onCancel: () => void;
|
|
12
|
+
};
|
|
13
|
+
declare const SvSheetValidationAlert: import("svelte").Component<Props, {}, "open">;
|
|
14
|
+
type SvSheetValidationAlert = ReturnType<typeof SvSheetValidationAlert>;
|
|
15
|
+
export default SvSheetValidationAlert;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Saves every consumer from hand-writing an `ExprColumn[]` that mirrors their
|
|
5
5
|
* column defs and then drifting from it.
|
|
6
6
|
*/
|
|
7
|
-
import type { ExprColumn } from '../expressions/expression-columns';
|
|
7
|
+
import type { ExprColumn } from '../expressions/expression-columns.js';
|
|
8
8
|
/** Grid columns as `api.getColumns()` reports them. */
|
|
9
9
|
type GridColumnInfo = {
|
|
10
10
|
id: string;
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* compiler that turns an expression into a row predicate.
|
|
7
7
|
*/
|
|
8
8
|
import { registerAdvancedFilterEngine } from '@svgrid/grid';
|
|
9
|
-
import { isLicenseKeySet } from './license';
|
|
10
|
-
import { emitUnlicensedNudge } from './watermark';
|
|
11
|
-
import { compilePredicate } from './expressions/compile';
|
|
9
|
+
import { isLicenseKeySet } from './license.js';
|
|
10
|
+
import { emitUnlicensedNudge } from './watermark.js';
|
|
11
|
+
import { compilePredicate } from './expressions/compile.js';
|
|
12
12
|
let enabled = false;
|
|
13
13
|
const advancedFilterEngine = (expr, ctx) => {
|
|
14
14
|
// The grid treats null as "do not filter" and never surfaces a partially
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
* same as a plain-JS interval poll for non-Svelte hosts.
|
|
13
13
|
*/
|
|
14
14
|
import type { ConditionalFormat } from '@svgrid/grid/format';
|
|
15
|
-
import { type AlertEngine } from './alert-engine';
|
|
16
|
-
import type { AlertEvent, AlertRule } from './alert-types';
|
|
15
|
+
import { type AlertEngine } from './alert-engine.js';
|
|
16
|
+
import type { AlertEvent, AlertRule } from './alert-types.js';
|
|
17
17
|
export type FlashTarget = {
|
|
18
18
|
rowId: string;
|
|
19
19
|
columnId?: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { toast } from '@svgrid/grid';
|
|
2
|
-
import { alertStore } from './alert-store.svelte';
|
|
3
|
-
import { toConditionalFormats } from './alert-formats';
|
|
4
|
-
import { createAlertEngine } from './alert-engine';
|
|
2
|
+
import { alertStore } from './alert-store.svelte.js';
|
|
3
|
+
import { toConditionalFormats } from './alert-formats.js';
|
|
4
|
+
import { createAlertEngine } from './alert-engine.js';
|
|
5
5
|
/**
|
|
6
6
|
* Perform the side effects of a batch of fired events and return the visual
|
|
7
7
|
* output: every event is recorded in the log (so the badge/panel stay accurate),
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* once when a row starts matching (not on every re-evaluation while it keeps
|
|
5
5
|
* matching). The reactive/observing wrapper lives in `alert-engine-attach.ts`.
|
|
6
6
|
*/
|
|
7
|
-
import { evaluateChange, evaluatePredicate } from '../expressions/evaluate';
|
|
8
|
-
import { collectColumnRefs } from '../expressions/parse';
|
|
7
|
+
import { evaluateChange, evaluatePredicate } from '../expressions/evaluate.js';
|
|
8
|
+
import { collectColumnRefs } from '../expressions/parse.js';
|
|
9
9
|
const AGG_ROW_KEY = '*';
|
|
10
10
|
/** Fill message-template tokens from the firing context. */
|
|
11
11
|
export function renderTemplate(template, ctx) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* already uses for color scales and data bars. No new rendering path.
|
|
6
6
|
*/
|
|
7
7
|
import type { ConditionalFormat } from '@svgrid/grid/format';
|
|
8
|
-
import type { AlertEvent, AlertRule } from './alert-types';
|
|
8
|
+
import type { AlertEvent, AlertRule } from './alert-types.js';
|
|
9
9
|
export type StylingContext<TData> = {
|
|
10
10
|
getValue?: (row: TData, columnId: string) => unknown;
|
|
11
11
|
locale?: string | ReadonlyArray<string>;
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
* instance to a scheduler and an `onEvents` sink; `attachAlertEngine` wraps it
|
|
26
26
|
* for non-Svelte hosts.
|
|
27
27
|
*/
|
|
28
|
-
import type { AlertEngine } from './alert-engine';
|
|
29
|
-
import type { AlertEvent, AlertRule } from './alert-types';
|
|
30
|
-
import { type AlertScheduler, type AlertSchedulerMode } from './alert-scheduler';
|
|
28
|
+
import type { AlertEngine } from './alert-engine.js';
|
|
29
|
+
import type { AlertEvent, AlertRule } from './alert-types.js';
|
|
30
|
+
import { type AlertScheduler, type AlertSchedulerMode } from './alert-scheduler.js';
|
|
31
31
|
export type AlertObserverOptions<TData> = {
|
|
32
32
|
engine: AlertEngine<TData>;
|
|
33
33
|
getRowId: (row: TData) => string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createAlertScheduler } from './alert-scheduler';
|
|
1
|
+
import { createAlertScheduler } from './alert-scheduler.js';
|
|
2
2
|
const clone = (r) => r && typeof r === 'object' ? { ...r } : r;
|
|
3
3
|
export function createAlertObserver(opts) {
|
|
4
4
|
const { engine, getRowId, onEvents } = opts;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* a small CRUD manager. `export()` / `import()` make a rule set shareable as
|
|
5
5
|
* JSON, so a team lead can hand round a set of alerts.
|
|
6
6
|
*/
|
|
7
|
-
import type { AlertRule } from './alert-types';
|
|
7
|
+
import type { AlertRule } from './alert-types.js';
|
|
8
8
|
export type AlertRulesStorage = {
|
|
9
9
|
read(): AlertRule[];
|
|
10
10
|
write(rules: AlertRule[]): void;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* `pushMany` (not one reassignment per event), and `activeCount` is a maintained
|
|
9
9
|
* counter - not an O(n) reduce recomputed on every render.
|
|
10
10
|
*/
|
|
11
|
-
import type { AlertEvent } from './alert-types';
|
|
11
|
+
import type { AlertEvent } from './alert-types.js';
|
|
12
12
|
/** The shared alerts log. Read `.events` / `.activeCount` inside a component. */
|
|
13
13
|
export declare const alertStore: {
|
|
14
14
|
readonly events: AlertEvent[];
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Predicates and change tests come from the expression layer (`../expressions`).
|
|
11
11
|
*/
|
|
12
|
-
import type { ChangeExpr, PredicateExpr } from '../expressions/expression-types';
|
|
13
|
-
import type { Schedule } from '../scheduling';
|
|
12
|
+
import type { ChangeExpr, PredicateExpr } from '../expressions/expression-types.js';
|
|
13
|
+
import type { Schedule } from '../scheduling.js';
|
|
14
14
|
/** Maps onto the toast variants + conditional-format intent. */
|
|
15
15
|
export type AlertSeverity = 'info' | 'success' | 'warning' | 'error';
|
|
16
16
|
/** What the rule watches over. */
|
package/dist/alerts.js
CHANGED
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
* // spread `formats` into <SvGrid conditionalFormats={[...base, ...formats]} />
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
|
-
import { isLicenseKeySet } from './license';
|
|
19
|
-
import { emitUnlicensedNudge } from './watermark';
|
|
18
|
+
import { isLicenseKeySet } from './license.js';
|
|
19
|
+
import { emitUnlicensedNudge } from './watermark.js';
|
|
20
20
|
let enabled = false;
|
|
21
21
|
/** Turn on the alerts feature (soft-gated). Idempotent. */
|
|
22
22
|
export function enableAlerts() {
|
package/dist/board.js
CHANGED
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
17
|
import { registerBoardView } from '@svgrid/grid';
|
|
18
|
-
import { isLicenseKeySet } from './license';
|
|
19
|
-
import { emitUnlicensedNudge } from './watermark';
|
|
18
|
+
import { isLicenseKeySet } from './license.js';
|
|
19
|
+
import { emitUnlicensedNudge } from './watermark.js';
|
|
20
20
|
import SvGridBoard from './SvGridBoard.svelte';
|
|
21
21
|
let enabled = false;
|
|
22
22
|
/**
|