@svgrid/enterprise 2.5.2 → 2.6.0
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/dist/SvAlertRuleEditor.svelte.d.ts +13 -0
- package/dist/SvAlertsManager.svelte.d.ts +14 -0
- package/dist/SvAlertsPanel.svelte.d.ts +9 -0
- package/dist/SvAuthGate.svelte.d.ts +22 -0
- package/dist/SvBoard.svelte.d.ts +35 -0
- package/dist/SvExportMenu.svelte.d.ts +61 -0
- package/dist/SvExpressionEditor.svelte.d.ts +12 -0
- package/dist/SvFileInput.svelte.d.ts +20 -0
- package/dist/SvGridAlerts.svelte.d.ts +77 -0
- package/dist/SvGridBoard.svelte.d.ts +30 -0
- package/dist/SvGridEditPanel.svelte.d.ts +73 -0
- package/dist/SvGridMasterDetail.svelte.d.ts +49 -0
- package/dist/SvGridScheduler.svelte.d.ts +30 -0
- package/dist/SvImportDialog.svelte.d.ts +88 -0
- package/dist/SvLookupInput.svelte.d.ts +21 -0
- package/dist/SvPivotDesigner.svelte.d.ts +176 -0
- package/dist/SvRecordDetail.svelte.d.ts +58 -0
- package/dist/SvSchedule.svelte.d.ts +29 -0
- package/dist/SvSchemaChart.svelte.d.ts +61 -0
- package/dist/SvSchemaDashboard.svelte.d.ts +46 -0
- package/dist/alerts/alert-engine-attach.d.ts +79 -0
- package/dist/alerts/alert-engine-attach.js +106 -0
- package/dist/alerts/alert-engine.d.ts +42 -0
- package/dist/alerts/alert-engine.js +196 -0
- package/dist/alerts/alert-formats.d.ts +26 -0
- package/dist/alerts/alert-formats.js +58 -0
- package/dist/alerts/alert-observer.d.ts +54 -0
- package/dist/alerts/alert-observer.js +156 -0
- package/dist/alerts/alert-scheduler.d.ts +30 -0
- package/dist/alerts/alert-scheduler.js +54 -0
- package/dist/alerts/alert-storage.d.ts +31 -0
- package/dist/alerts/alert-storage.js +92 -0
- package/dist/alerts/alert-store.svelte.d.ts +24 -0
- package/dist/alerts/alert-store.svelte.js +69 -0
- package/dist/alerts/alert-types.d.ts +86 -0
- package/dist/alerts/alert-types.js +1 -0
- package/dist/alerts.d.ts +2 -0
- package/{src/alerts.ts → dist/alerts.js} +9 -9
- package/dist/board.d.ts +7 -0
- package/{src/board.ts → dist/board.js} +13 -14
- package/dist/cdn/svgrid-enterprise.svelte-external.js +2987 -2981
- package/dist/designer/assets/{index-CM5xvaOy.js → index-BF0UH638.js} +3 -3
- package/dist/designer/assets/{src-D-ET9Mmo.js → src-BPJruwB9.js} +184 -184
- package/dist/designer/index.html +2 -2
- package/dist/edit-panel.d.ts +105 -0
- package/dist/edit-panel.js +350 -0
- package/dist/export-conditional.d.ts +31 -0
- package/dist/export-conditional.js +65 -0
- package/dist/export-ooxml.d.ts +93 -0
- package/dist/export-ooxml.js +385 -0
- package/dist/export-pdf.d.ts +107 -0
- package/dist/export-pdf.js +144 -0
- package/dist/export-print.d.ts +55 -0
- package/dist/export-print.js +91 -0
- package/{src/export-serialize.ts → dist/export-serialize.d.ts} +11 -24
- package/dist/export-serialize.js +11 -0
- package/dist/export-xls.d.ts +26 -0
- package/dist/export-xls.js +157 -0
- package/dist/export.d.ts +323 -0
- package/dist/export.js +1021 -0
- package/dist/expressions/evaluate.d.ts +17 -0
- package/dist/expressions/evaluate.js +214 -0
- package/dist/expressions/expression-columns.d.ts +61 -0
- package/dist/expressions/expression-columns.js +72 -0
- package/dist/expressions/expression-types.d.ts +125 -0
- package/dist/expressions/expression-types.js +1 -0
- package/dist/expressions/parse.d.ts +25 -0
- package/dist/expressions/parse.js +537 -0
- package/dist/import.d.ts +232 -0
- package/dist/import.js +846 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.js +91 -0
- package/dist/install.d.ts +70 -0
- package/dist/install.js +61 -0
- package/dist/license-core.d.ts +37 -0
- package/dist/license-core.js +81 -0
- package/dist/license.d.ts +30 -0
- package/dist/license.js +139 -0
- package/dist/master-detail.d.ts +23 -0
- package/dist/master-detail.js +35 -0
- package/dist/node/studio.js +1 -1
- package/dist/pivot-chart.d.ts +28 -0
- package/dist/pivot-chart.js +71 -0
- package/dist/pivot-designer.d.ts +69 -0
- package/dist/pivot-designer.js +38 -0
- package/dist/pivot-enable.d.ts +6 -0
- package/{src/pivot-enable.ts → dist/pivot-enable.js} +13 -18
- package/dist/pivot.d.ts +111 -0
- package/dist/pivot.js +353 -0
- package/dist/print.d.ts +33 -0
- package/dist/print.js +61 -0
- package/dist/revoked.d.ts +1 -0
- package/{src/revoked.ts → dist/revoked.js} +5 -6
- package/dist/scheduler-assignments.d.ts +64 -0
- package/dist/scheduler-assignments.js +92 -0
- package/dist/scheduler-axis.d.ts +81 -0
- package/dist/scheduler-axis.js +180 -0
- package/{src/scheduler-booking.ts → dist/scheduler-booking.d.ts} +10 -43
- package/dist/scheduler-booking.js +50 -0
- package/dist/scheduler-config.d.ts +177 -0
- package/dist/scheduler-config.js +1 -0
- package/dist/scheduler-dependencies.d.ts +89 -0
- package/dist/scheduler-dependencies.js +179 -0
- package/dist/scheduler-freebusy.d.ts +19 -0
- package/{src/scheduler-freebusy.ts → dist/scheduler-freebusy.js} +9 -19
- package/{src/scheduler-heatmap.ts → dist/scheduler-heatmap.d.ts} +12 -35
- package/dist/scheduler-heatmap.js +41 -0
- package/dist/scheduler-resource-tree.d.ts +48 -0
- package/dist/scheduler-resource-tree.js +78 -0
- package/dist/scheduler-slots.d.ts +37 -0
- package/dist/scheduler-slots.js +80 -0
- package/dist/scheduler-summary.d.ts +41 -0
- package/dist/scheduler-summary.js +54 -0
- package/dist/scheduler.d.ts +7 -0
- package/{src/scheduler.ts → dist/scheduler.js} +13 -14
- package/dist/scheduling.d.ts +132 -0
- package/dist/scheduling.js +228 -0
- package/dist/schema-designer.d.ts +42 -0
- package/dist/schema-designer.js +117 -0
- package/dist/schema.d.ts +369 -0
- package/dist/schema.js +216 -0
- package/dist/smart-shim.d.ts +62 -0
- package/dist/smart-shim.js +34 -0
- package/dist/sources/aggregate.d.ts +43 -0
- package/dist/sources/aggregate.js +60 -0
- package/dist/sources/auth-supabase.d.ts +69 -0
- package/dist/sources/auth-supabase.js +39 -0
- package/dist/sources/dashboard.d.ts +65 -0
- package/dist/sources/dashboard.js +95 -0
- package/dist/sources/field-inference.d.ts +23 -0
- package/dist/sources/field-inference.js +52 -0
- package/dist/sources/filters.d.ts +35 -0
- package/dist/sources/filters.js +52 -0
- package/dist/sources/index.d.ts +18 -0
- package/dist/sources/index.js +18 -0
- package/dist/sources/introspect-supabase.d.ts +30 -0
- package/dist/sources/introspect-supabase.js +134 -0
- package/dist/sources/realtime-supabase.d.ts +37 -0
- package/dist/sources/realtime-supabase.js +52 -0
- package/dist/sources/relation-lookup.d.ts +50 -0
- package/dist/sources/relation-lookup.js +77 -0
- package/dist/sources/rest-adapters.d.ts +48 -0
- package/dist/sources/rest-adapters.js +85 -0
- package/dist/sources/rest.d.ts +38 -0
- package/dist/sources/rest.js +86 -0
- package/dist/sources/schema-from-columns.d.ts +37 -0
- package/dist/sources/schema-from-columns.js +48 -0
- package/dist/sources/supabase.d.ts +33 -0
- package/dist/sources/supabase.js +74 -0
- package/dist/sources/with-entity-rules.d.ts +25 -0
- package/dist/sources/with-entity-rules.js +47 -0
- package/dist/sources/with-relation-labels.d.ts +26 -0
- package/dist/sources/with-relation-labels.js +38 -0
- package/dist/staged-editing.d.ts +85 -0
- package/dist/staged-editing.js +0 -0
- package/dist/studio/bug-report.d.ts +61 -0
- package/dist/studio/bug-report.js +126 -0
- package/dist/studio/cli.d.ts +56 -0
- package/dist/studio/cli.js +70 -0
- package/dist/studio/copilot-core.d.ts +22 -0
- package/{src/studio/copilot-core.ts → dist/studio/copilot-core.js} +34 -38
- package/dist/studio/csv.d.ts +36 -0
- package/dist/studio/csv.js +173 -0
- package/dist/studio/db-connect-string.d.ts +45 -0
- package/dist/studio/db-connect-string.js +113 -0
- package/dist/studio/deploy-cli.d.ts +35 -0
- package/dist/studio/deploy-cli.js +81 -0
- package/dist/studio/emit-project.d.ts +77 -0
- package/dist/studio/emit-project.js +5389 -0
- package/dist/studio/emit-schema.d.ts +110 -0
- package/dist/studio/emit-schema.js +1128 -0
- package/dist/studio/index.d.ts +35 -0
- package/dist/studio/index.js +38 -0
- package/dist/studio/init-flow.d.ts +58 -0
- package/dist/studio/init-flow.js +451 -0
- package/dist/studio/introspect-db.d.ts +47 -0
- package/dist/studio/introspect-db.js +255 -0
- package/dist/studio/introspect-openapi.d.ts +19 -0
- package/dist/studio/introspect-openapi.js +244 -0
- package/dist/studio/introspect-prisma.d.ts +25 -0
- package/dist/studio/introspect-prisma.js +164 -0
- package/dist/studio/introspect.d.ts +35 -0
- package/dist/studio/introspect.js +306 -0
- package/dist/studio/project.d.ts +1327 -0
- package/dist/studio/project.js +1798 -0
- package/dist/studio/sample-data.d.ts +19 -0
- package/dist/studio/sample-data.js +207 -0
- package/dist/studio/samples/ats.d.ts +2 -0
- package/dist/studio/samples/ats.js +194 -0
- package/dist/studio/samples/clinic.d.ts +2 -0
- package/dist/studio/samples/clinic.js +171 -0
- package/dist/studio/samples/crm.d.ts +2 -0
- package/dist/studio/samples/crm.js +280 -0
- package/dist/studio/samples/datasets.d.ts +38 -0
- package/dist/studio/samples/datasets.js +296 -0
- package/dist/studio/samples/ecommerce.d.ts +2 -0
- package/dist/studio/samples/ecommerce.js +178 -0
- package/dist/studio/samples/events.d.ts +2 -0
- package/dist/studio/samples/events.js +192 -0
- package/dist/studio/samples/fleet.d.ts +2 -0
- package/dist/studio/samples/fleet.js +203 -0
- package/dist/studio/samples/gym.d.ts +2 -0
- package/dist/studio/samples/gym.js +205 -0
- package/dist/studio/samples/hr.d.ts +2 -0
- package/dist/studio/samples/hr.js +186 -0
- package/dist/studio/samples/index.d.ts +13 -0
- package/dist/studio/samples/index.js +44 -0
- package/dist/studio/samples/insurance.d.ts +2 -0
- package/dist/studio/samples/insurance.js +220 -0
- package/dist/studio/samples/inventory.d.ts +2 -0
- package/dist/studio/samples/inventory.js +204 -0
- package/dist/studio/samples/invoicing.d.ts +2 -0
- package/dist/studio/samples/invoicing.js +154 -0
- package/dist/studio/samples/library.d.ts +2 -0
- package/dist/studio/samples/library.js +171 -0
- package/dist/studio/samples/live-data.d.ts +5 -0
- package/dist/studio/samples/live-data.js +261 -0
- package/dist/studio/samples/projects.d.ts +2 -0
- package/dist/studio/samples/projects.js +203 -0
- package/dist/studio/samples/realestate.d.ts +2 -0
- package/dist/studio/samples/realestate.js +187 -0
- package/dist/studio/samples/restaurant.d.ts +2 -0
- package/dist/studio/samples/restaurant.js +180 -0
- package/dist/studio/samples/school.d.ts +2 -0
- package/dist/studio/samples/school.js +188 -0
- package/dist/studio/samples/shared.d.ts +142 -0
- package/dist/studio/samples/shared.js +164 -0
- package/dist/studio/samples/starter.d.ts +4 -0
- package/dist/studio/samples/starter.js +237 -0
- package/dist/studio/samples/subscriptions.d.ts +2 -0
- package/dist/studio/samples/subscriptions.js +175 -0
- package/dist/studio/samples/support.d.ts +2 -0
- package/dist/studio/samples/support.js +209 -0
- package/dist/studio/scaffold-app.d.ts +22 -0
- package/{src/studio/scaffold-app.ts → dist/studio/scaffold-app.js} +45 -63
- package/dist/studio/scaffold.d.ts +63 -0
- package/dist/studio/scaffold.js +346 -0
- package/dist/studio/screen-suites.d.ts +193 -0
- package/dist/studio/screen-suites.js +297 -0
- package/dist/studio/themes.d.ts +34 -0
- package/dist/studio/themes.js +41 -0
- package/dist/studio/ui-components.d.ts +89 -0
- package/dist/studio/ui-components.generated.d.ts +29 -0
- package/dist/studio/ui-components.generated.js +7139 -0
- package/dist/studio/ui-components.js +673 -0
- package/dist/studio/user-error.d.ts +23 -0
- package/{src/studio/user-error.ts → dist/studio/user-error.js} +10 -13
- package/dist/studio/verify.d.ts +34 -0
- package/dist/studio/verify.js +47 -0
- package/dist/sveltekit/in-memory.d.ts +14 -0
- package/dist/sveltekit/in-memory.js +113 -0
- package/dist/sveltekit/index.d.ts +6 -0
- package/dist/sveltekit/index.js +5 -0
- package/dist/sveltekit/query-plan.d.ts +44 -0
- package/dist/sveltekit/query-plan.js +76 -0
- package/dist/sveltekit/sql-source.d.ts +47 -0
- package/dist/sveltekit/sql-source.js +106 -0
- package/dist/sveltekit/sql.d.ts +48 -0
- package/dist/sveltekit/sql.js +73 -0
- package/dist/sveltekit/transport.d.ts +209 -0
- package/dist/sveltekit/transport.js +219 -0
- package/{src/sveltekit/types.ts → dist/sveltekit/types.d.ts} +8 -11
- package/dist/sveltekit/types.js +1 -0
- package/dist/upgrade-prompt.d.ts +16 -0
- package/dist/upgrade-prompt.js +141 -0
- package/dist/version.d.ts +13 -0
- package/{src/version.ts → dist/version.js} +1 -1
- package/dist/watermark.d.ts +2 -0
- package/dist/watermark.js +146 -0
- package/package.json +26 -24
- package/src/SvBoard.dom.test.ts +0 -67
- package/src/SvGridAlerts.dom.test.ts +0 -113
- package/src/SvGridEditPanel.dom.test.ts +0 -320
- package/src/SvRecordDetail.dom.test.ts +0 -137
- package/src/SvSchedule.dom.test.ts +0 -57
- package/src/ai-export-pdf.dom.test.ts +0 -77
- package/src/ai-export-xlsx.dom.test.ts +0 -90
- package/src/ai-export.dom.test.ts +0 -114
- package/src/alerts/alert-engine-attach.ts +0 -165
- package/src/alerts/alert-engine.test.ts +0 -135
- package/src/alerts/alert-engine.ts +0 -260
- package/src/alerts/alert-formats.test.ts +0 -87
- package/src/alerts/alert-formats.ts +0 -77
- package/src/alerts/alert-observer.test.ts +0 -189
- package/src/alerts/alert-observer.ts +0 -208
- package/src/alerts/alert-scheduler.ts +0 -96
- package/src/alerts/alert-storage.test.ts +0 -54
- package/src/alerts/alert-storage.ts +0 -116
- package/src/alerts/alert-store.svelte.ts +0 -80
- package/src/alerts/alert-types.ts +0 -94
- package/src/board.dom.test.ts +0 -941
- package/src/edit-panel.test.ts +0 -322
- package/src/edit-panel.ts +0 -379
- package/src/export-conditional.test.ts +0 -60
- package/src/export-conditional.ts +0 -94
- package/src/export-ooxml.test.ts +0 -152
- package/src/export-ooxml.ts +0 -489
- package/src/export-pdf.test.ts +0 -138
- package/src/export-pdf.ts +0 -245
- package/src/export-print.test.ts +0 -66
- package/src/export-print.ts +0 -132
- package/src/export-serialize.test.ts +0 -56
- package/src/export-xls.ts +0 -199
- package/src/export-xlsx-roundtrip.test.ts +0 -120
- package/src/export-xlsx.test.ts +0 -150
- package/src/export.test.ts +0 -349
- package/src/export.ts +0 -1464
- package/src/expressions/evaluate.test.ts +0 -111
- package/src/expressions/evaluate.ts +0 -237
- package/src/expressions/expression-columns.ts +0 -133
- package/src/expressions/expression-types.ts +0 -84
- package/src/expressions/parse.test.ts +0 -106
- package/src/expressions/parse.ts +0 -610
- package/src/import-automap.test.ts +0 -131
- package/src/import-hardening.test.ts +0 -158
- package/src/import.test.ts +0 -415
- package/src/import.ts +0 -1044
- package/src/index.ts +0 -569
- package/src/install.ts +0 -154
- package/src/license-core.test.ts +0 -23
- package/src/license-core.ts +0 -107
- package/src/license-expiry.test.ts +0 -127
- package/src/license.ts +0 -137
- package/src/master-detail.test.ts +0 -61
- package/src/master-detail.ts +0 -42
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/_metadata.json +0 -178
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/attachments-ZrPsKxob.js +0 -3875
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/attachments-ZrPsKxob.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/constants-ACqvWGE2.js +0 -21
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/constants-ACqvWGE2.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/dev-D3w5jt92.js +0 -1938
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/dev-D3w5jt92.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/events-CC2V3H0y.js +0 -205
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/events-CC2V3H0y.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/flags-BXP37tAa.js +0 -18
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/flags-BXP37tAa.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/hydration-DwubnU5b.js +0 -264
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/hydration-DwubnU5b.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/legacy-client-hD7f6PUz.js +0 -697
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/legacy-client-hD7f6PUz.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte.js +0 -134
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_animate.js +0 -55
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_animate.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_attachments.js +0 -2
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_compiler.js +0 -46843
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_compiler.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_easing.js +0 -237
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_easing.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_events.js +0 -2
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal.js +0 -4
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_client.js +0 -7
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_disclose-version.js +0 -4
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_disclose-version.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_async.js +0 -5
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_async.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_legacy.js +0 -5
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_legacy.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_tracing.js +0 -5
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_tracing.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_server.js +0 -6
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_legacy.js +0 -83
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_legacy.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_motion.js +0 -559
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_motion.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity.js +0 -24
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity_window.js +0 -122
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity_window.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_server.js +0 -2
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_store.js +0 -89
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_store.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_transition.js +0 -241
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_transition.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-DBx1SCN6.js +0 -4938
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-DBx1SCN6.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-gjfpSTFS.js +0 -495
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-gjfpSTFS.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/validate-DKoOKg8S.js +0 -190
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/validate-DKoOKg8S.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/version-C0MiR7eR.js +0 -8
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/version-C0MiR7eR.js.map +0 -1
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/warnings-B6Y7P0Q-.js +0 -138
- package/src/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/warnings-B6Y7P0Q-.js.map +0 -1
- package/src/pivot-chart.test.ts +0 -86
- package/src/pivot-chart.ts +0 -112
- package/src/pivot-designer.ts +0 -101
- package/src/pivot.test.ts +0 -335
- package/src/pivot.ts +0 -578
- package/src/print.ts +0 -107
- package/src/scheduler-assignments.test.ts +0 -97
- package/src/scheduler-assignments.ts +0 -134
- package/src/scheduler-axis.test.ts +0 -108
- package/src/scheduler-axis.ts +0 -238
- package/src/scheduler-booking.test.ts +0 -57
- package/src/scheduler-config.ts +0 -179
- package/src/scheduler-dependencies.test.ts +0 -155
- package/src/scheduler-dependencies.ts +0 -223
- package/src/scheduler-freebusy.test.ts +0 -41
- package/src/scheduler-heatmap.test.ts +0 -39
- package/src/scheduler-resource-tree.test.ts +0 -84
- package/src/scheduler-resource-tree.ts +0 -107
- package/src/scheduler-slots.test.ts +0 -53
- package/src/scheduler-slots.ts +0 -94
- package/src/scheduler-summary.test.ts +0 -47
- package/src/scheduler-summary.ts +0 -81
- package/src/scheduling.test.ts +0 -194
- package/src/scheduling.ts +0 -293
- package/src/schema-designer.test.ts +0 -121
- package/src/schema-designer.ts +0 -142
- package/src/schema.test.ts +0 -268
- package/src/schema.ts +0 -562
- package/src/smart-shim.ts +0 -107
- package/src/sources/aggregate.test.ts +0 -79
- package/src/sources/aggregate.ts +0 -102
- package/src/sources/auth-supabase.test.ts +0 -80
- package/src/sources/auth-supabase.ts +0 -87
- package/src/sources/dashboard.kpi.test.ts +0 -50
- package/src/sources/dashboard.test.ts +0 -61
- package/src/sources/dashboard.ts +0 -136
- package/src/sources/field-inference.test.ts +0 -60
- package/src/sources/field-inference.ts +0 -63
- package/src/sources/filters.test.ts +0 -58
- package/src/sources/filters.ts +0 -70
- package/src/sources/index.ts +0 -67
- package/src/sources/introspect-supabase.test.ts +0 -112
- package/src/sources/introspect-supabase.ts +0 -139
- package/src/sources/realtime-supabase.test.ts +0 -93
- package/src/sources/realtime-supabase.ts +0 -99
- package/src/sources/relation-lookup.test.ts +0 -99
- package/src/sources/relation-lookup.ts +0 -128
- package/src/sources/rest-adapters.test.ts +0 -95
- package/src/sources/rest-adapters.ts +0 -120
- package/src/sources/rest.test.ts +0 -104
- package/src/sources/rest.ts +0 -129
- package/src/sources/schema-from-columns.test.ts +0 -106
- package/src/sources/schema-from-columns.ts +0 -88
- package/src/sources/supabase.test.ts +0 -110
- package/src/sources/supabase.ts +0 -99
- package/src/sources/with-entity-rules.test.ts +0 -104
- package/src/sources/with-entity-rules.ts +0 -78
- package/src/sources/with-relation-labels.test.ts +0 -75
- package/src/sources/with-relation-labels.ts +0 -73
- package/src/staged-editing.ts +0 -0
- package/src/studio/bug-report.test.ts +0 -101
- package/src/studio/bug-report.ts +0 -165
- package/src/studio/cli.test.ts +0 -187
- package/src/studio/cli.ts +0 -117
- package/src/studio/copilot-core.test.ts +0 -45
- package/src/studio/csv.test.ts +0 -90
- package/src/studio/csv.ts +0 -165
- package/src/studio/db-connect-string.test.ts +0 -94
- package/src/studio/db-connect-string.ts +0 -128
- package/src/studio/deploy-cli.test.ts +0 -56
- package/src/studio/deploy-cli.ts +0 -100
- package/src/studio/emit-project.test.ts +0 -3324
- package/src/studio/emit-project.ts +0 -5377
- package/src/studio/emit-schema.test.ts +0 -111
- package/src/studio/emit-schema.ts +0 -1181
- package/src/studio/index.ts +0 -380
- package/src/studio/init-flow.test.ts +0 -514
- package/src/studio/init-flow.ts +0 -556
- package/src/studio/introspect-db.test.ts +0 -186
- package/src/studio/introspect-db.ts +0 -312
- package/src/studio/introspect-openapi.test.ts +0 -84
- package/src/studio/introspect-openapi.ts +0 -252
- package/src/studio/introspect-prisma.test.ts +0 -99
- package/src/studio/introspect-prisma.ts +0 -175
- package/src/studio/introspect.test.ts +0 -172
- package/src/studio/introspect.ts +0 -310
- package/src/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/_svelte_metadata.json +0 -1
- package/src/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/package.json +0 -3
- package/src/studio/pipeline.test.ts +0 -42
- package/src/studio/project-robust.test.ts +0 -157
- package/src/studio/project.test.ts +0 -929
- package/src/studio/project.ts +0 -2394
- package/src/studio/sample-data.test.ts +0 -58
- package/src/studio/sample-data.ts +0 -203
- package/src/studio/samples/ats.ts +0 -202
- package/src/studio/samples/clinic.ts +0 -179
- package/src/studio/samples/crm.ts +0 -291
- package/src/studio/samples/datasets.test.ts +0 -84
- package/src/studio/samples/datasets.ts +0 -340
- package/src/studio/samples/ecommerce.ts +0 -187
- package/src/studio/samples/events.ts +0 -201
- package/src/studio/samples/fleet.ts +0 -213
- package/src/studio/samples/gym.ts +0 -215
- package/src/studio/samples/hr.ts +0 -195
- package/src/studio/samples/index.ts +0 -55
- package/src/studio/samples/insurance.ts +0 -229
- package/src/studio/samples/inventory.ts +0 -213
- package/src/studio/samples/invoicing.ts +0 -162
- package/src/studio/samples/library.ts +0 -180
- package/src/studio/samples/live-data.test.ts +0 -99
- package/src/studio/samples/live-data.ts +0 -306
- package/src/studio/samples/projects.ts +0 -212
- package/src/studio/samples/realestate.ts +0 -196
- package/src/studio/samples/restaurant.ts +0 -189
- package/src/studio/samples/samples.test.ts +0 -304
- package/src/studio/samples/school.ts +0 -197
- package/src/studio/samples/seed-floor.test.ts +0 -25
- package/src/studio/samples/shared.ts +0 -237
- package/src/studio/samples/starter.ts +0 -251
- package/src/studio/samples/subscriptions.ts +0 -183
- package/src/studio/samples/support.ts +0 -216
- package/src/studio/scaffold-app.test.ts +0 -91
- package/src/studio/scaffold.test.ts +0 -192
- package/src/studio/scaffold.ts +0 -390
- package/src/studio/screen-suites.test.ts +0 -269
- package/src/studio/screen-suites.ts +0 -448
- package/src/studio/themes.ts +0 -62
- package/src/studio/ui-components-surface.test.ts +0 -185
- package/src/studio/ui-components.generated.ts +0 -7154
- package/src/studio/ui-components.ts +0 -742
- package/src/studio/verify.test.ts +0 -47
- package/src/studio/verify.ts +0 -79
- package/src/sveltekit/in-memory.test.ts +0 -104
- package/src/sveltekit/in-memory.ts +0 -129
- package/src/sveltekit/index.ts +0 -24
- package/src/sveltekit/query-plan.test.ts +0 -109
- package/src/sveltekit/query-plan.ts +0 -125
- package/src/sveltekit/sql-source.test.ts +0 -198
- package/src/sveltekit/sql-source.ts +0 -171
- package/src/sveltekit/sql.test.ts +0 -80
- package/src/sveltekit/sql.ts +0 -131
- package/src/sveltekit/transport-scope.test.ts +0 -125
- package/src/sveltekit/transport.test.ts +0 -201
- package/src/sveltekit/transport.ts +0 -373
- package/src/upgrade-prompt.test.ts +0 -71
- package/src/upgrade-prompt.ts +0 -162
- package/src/version.test.ts +0 -17
- package/src/watermark.test.ts +0 -97
- package/src/watermark.ts +0 -156
- /package/{src → dist}/SvAlertRuleEditor.svelte +0 -0
- /package/{src → dist}/SvAlertsManager.svelte +0 -0
- /package/{src → dist}/SvAlertsPanel.svelte +0 -0
- /package/{src → dist}/SvAuthGate.svelte +0 -0
- /package/{src → dist}/SvBoard.svelte +0 -0
- /package/{src → dist}/SvExportMenu.svelte +0 -0
- /package/{src → dist}/SvExpressionEditor.svelte +0 -0
- /package/{src → dist}/SvFileInput.svelte +0 -0
- /package/{src → dist}/SvGridAlerts.svelte +0 -0
- /package/{src → dist}/SvGridBoard.svelte +0 -0
- /package/{src → dist}/SvGridEditPanel.svelte +0 -0
- /package/{src → dist}/SvGridMasterDetail.svelte +0 -0
- /package/{src → dist}/SvGridScheduler.svelte +0 -0
- /package/{src → dist}/SvImportDialog.svelte +0 -0
- /package/{src → dist}/SvLookupInput.svelte +0 -0
- /package/{src → dist}/SvPivotDesigner.svelte +0 -0
- /package/{src → dist}/SvRecordDetail.svelte +0 -0
- /package/{src → dist}/SvSchedule.svelte +0 -0
- /package/{src → dist}/SvSchemaChart.svelte +0 -0
- /package/{src → dist}/SvSchemaDashboard.svelte +0 -0
- /package/{src → dist}/pdfmake-shims.d.ts +0 -0
- /package/{src → dist}/smart.export.d.ts +0 -0
- /package/{src → dist}/smart.export.js +0 -0
- /package/{src → dist}/studio/HANDLERS-DESIGN.md +0 -0
- /package/{src → dist/studio}/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/_svelte_metadata.json +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/_metadata.json +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/attachments-BOv1rBKp.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/attachments-BOv1rBKp.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/constants-B9vgIdCd.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/constants-B9vgIdCd.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/dev-T1qbW_qD.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/dev-T1qbW_qD.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/events-Bo11SfVK.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/events-Bo11SfVK.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/flags-X7D4vfrZ.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/flags-X7D4vfrZ.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/hydration-oyUje5i1.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/hydration-oyUje5i1.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/legacy-client-DeSQgSFm.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/legacy-client-DeSQgSFm.js.map +0 -0
- /package/{src → dist/studio}/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/package.json +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_animate.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_animate.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_attachments.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_compiler.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_compiler.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_easing.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_easing.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_events.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_client.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_disclose-version.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_disclose-version.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_async.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_async.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_legacy.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_legacy.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_tracing.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_tracing.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_server.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_legacy.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_legacy.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_motion.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_motion.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity_window.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity_window.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_server.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_store.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_store.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_transition.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_transition.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-BbWyXNk1.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-BbWyXNk1.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-DI_fC7vt.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-DI_fC7vt.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/validate-Dyr3lQv9.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/validate-Dyr3lQv9.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/version-_9FHH-LF.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/version-_9FHH-LF.js.map +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/warnings-CUbSPnyP.js +0 -0
- /package/{src → dist}/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/warnings-CUbSPnyP.js.map +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Master-detail logic. The testable core behind `SvGridMasterDetail.svelte`:
|
|
3
|
+
* track which parent rows are expanded and splice a synthetic "detail" row in
|
|
4
|
+
* after each expanded parent, so a single `<SvGrid>` renders both the master
|
|
5
|
+
* rows and a full-width detail region (via the grid's `isDetailRow` /
|
|
6
|
+
* `renderDetailRow`). Pure - no Svelte, no DOM.
|
|
7
|
+
*/
|
|
8
|
+
/** True for the synthetic detail rows produced by `buildDisplayRows`. */
|
|
9
|
+
export function isDetailRow(row) {
|
|
10
|
+
return !!row && typeof row === 'object' && row.__svgridDetail === true;
|
|
11
|
+
}
|
|
12
|
+
/** Toggle a parent id in the expanded set, returning a new set (immutable). */
|
|
13
|
+
export function toggleExpanded(expanded, id) {
|
|
14
|
+
const next = new Set(expanded);
|
|
15
|
+
if (next.has(id))
|
|
16
|
+
next.delete(id);
|
|
17
|
+
else
|
|
18
|
+
next.add(id);
|
|
19
|
+
return next;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Weave detail rows into the master rows: each expanded parent is followed by a
|
|
23
|
+
* `DetailRow` marker. Order is otherwise preserved, so the grid renders parents
|
|
24
|
+
* in place with their detail region directly beneath.
|
|
25
|
+
*/
|
|
26
|
+
export function buildDisplayRows(parents, expanded, getRowId) {
|
|
27
|
+
const out = [];
|
|
28
|
+
for (const parent of parents) {
|
|
29
|
+
out.push(parent);
|
|
30
|
+
const id = getRowId(parent);
|
|
31
|
+
if (expanded.has(id))
|
|
32
|
+
out.push({ __svgridDetail: true, parent, parentId: id });
|
|
33
|
+
}
|
|
34
|
+
return out;
|
|
35
|
+
}
|
package/dist/node/studio.js
CHANGED
|
@@ -15130,7 +15130,7 @@ function hasFieldConditions(schema) {
|
|
|
15130
15130
|
*
|
|
15131
15131
|
* `version.test.ts` asserts this matches `package.json`, so the two cannot drift.
|
|
15132
15132
|
*/
|
|
15133
|
-
var SVGRID_VERSION = "2.
|
|
15133
|
+
var SVGRID_VERSION = "2.6.0";
|
|
15134
15134
|
//#endregion
|
|
15135
15135
|
//#region src/studio/emit-project.ts
|
|
15136
15136
|
var has = (blocks, kind) => blocks.some((b) => b.config.kind === kind);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pivot -> chart bridge.
|
|
3
|
+
*
|
|
4
|
+
* Turns a computed {@link PivotResult} (the row/column/value matrix the pivot
|
|
5
|
+
* engine produces) into a core {@link ChartSpec} the free `SvGridChart` can
|
|
6
|
+
* render - so one pivot layout drives both a table and a chart (the Excel
|
|
7
|
+
* PivotTable <-> PivotChart pairing).
|
|
8
|
+
*
|
|
9
|
+
* Mapping:
|
|
10
|
+
* - categories = the row-axis LEAF rows (deepest grouping; subtotals and the
|
|
11
|
+
* grand-total row are skipped). With no row dims, the single total row.
|
|
12
|
+
* - series = the column-axis leaf value columns (one per col-path x
|
|
13
|
+
* measure). The grand-total column is excluded unless `includeTotals`.
|
|
14
|
+
* - values = each leaf row's aggregated cell for that series column.
|
|
15
|
+
*/
|
|
16
|
+
import type { ChartSpec, ChartType, TableFeatures } from '@svgrid/grid';
|
|
17
|
+
import type { PivotResult } from './pivot';
|
|
18
|
+
export type PivotChartOptions = {
|
|
19
|
+
/** Chart type. Default `'bar'`. */
|
|
20
|
+
type?: ChartType;
|
|
21
|
+
/** Stack the series. Default false. */
|
|
22
|
+
stacked?: boolean;
|
|
23
|
+
/** Include the grand-total column / row as a series / category. Default false. */
|
|
24
|
+
includeTotals?: boolean;
|
|
25
|
+
/** Cap the number of categories (row leaves) charted. */
|
|
26
|
+
maxCategories?: number;
|
|
27
|
+
};
|
|
28
|
+
export declare function pivotToChartSpec<TFeatures extends TableFeatures>(result: PivotResult<TFeatures>, opts?: PivotChartOptions): ChartSpec;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export function pivotToChartSpec(result, opts = {}) {
|
|
2
|
+
const type = opts.type ?? 'bar';
|
|
3
|
+
// Category rows: the row-axis leaves. Fall back to the grand-total (single
|
|
4
|
+
// "All") row when no row dims are configured, then to every row.
|
|
5
|
+
let catRows = result.rows.filter((r) => r.__pivotKind === 'leaf');
|
|
6
|
+
if (!catRows.length)
|
|
7
|
+
catRows = result.rows.filter((r) => r.__pivotKind === 'grandTotal');
|
|
8
|
+
if (!catRows.length)
|
|
9
|
+
catRows = result.rows.slice();
|
|
10
|
+
if (opts.maxCategories && catRows.length > opts.maxCategories) {
|
|
11
|
+
catRows = catRows.slice(0, opts.maxCategories);
|
|
12
|
+
}
|
|
13
|
+
// Categories are the leaf's OWN label; when rows are nested, emit a parent
|
|
14
|
+
// tier (categoryGroups) so the axis reads "Americas | Canada · USA ..." as a
|
|
15
|
+
// grouped axis rather than colliding on a bare repeated leaf label.
|
|
16
|
+
const byId = new Map(result.rows.map((r) => [r.__pivotId, r]));
|
|
17
|
+
const ownLabel = (r) => String(r.__pivotLabel ?? '').trim() || '(blank)';
|
|
18
|
+
const categories = catRows.map(ownLabel);
|
|
19
|
+
const parentOf = (r) => r.__pivotParentId ? byId.get(r.__pivotParentId) : undefined;
|
|
20
|
+
const nested = catRows.length > 0 && catRows.every((r) => parentOf(r) !== undefined);
|
|
21
|
+
let categoryGroups;
|
|
22
|
+
if (nested) {
|
|
23
|
+
categoryGroups = [];
|
|
24
|
+
let prevId;
|
|
25
|
+
for (const r of catRows) {
|
|
26
|
+
const pid = r.__pivotParentId;
|
|
27
|
+
const last = categoryGroups[categoryGroups.length - 1];
|
|
28
|
+
if (last && pid === prevId)
|
|
29
|
+
last.span += 1;
|
|
30
|
+
else {
|
|
31
|
+
categoryGroups.push({ label: ownLabel(parentOf(r)), span: 1 });
|
|
32
|
+
prevId = pid;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const leaves = [];
|
|
37
|
+
const walk = (cols, path) => {
|
|
38
|
+
for (const c of cols ?? []) {
|
|
39
|
+
if (!c || c.id === '__pivotRowHeader')
|
|
40
|
+
continue;
|
|
41
|
+
// Skip the grand-total column group (and its leaves) unless asked for.
|
|
42
|
+
if (!opts.includeTotals && typeof c.id === 'string' && c.id.startsWith('pv_group__grand'))
|
|
43
|
+
continue;
|
|
44
|
+
if (Array.isArray(c.columns))
|
|
45
|
+
walk(c.columns, [...path, String(c.header ?? '')]);
|
|
46
|
+
else if (typeof c.id === 'string')
|
|
47
|
+
leaves.push({ id: c.id, path, header: String(c.header ?? '') });
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
walk(result.columns, []);
|
|
51
|
+
const filtered = opts.includeTotals ? leaves : leaves.filter((l) => !l.id.includes('__total'));
|
|
52
|
+
const uniqueHeaders = new Set(filtered.map((l) => l.header));
|
|
53
|
+
const series = filtered.map((l) => ({
|
|
54
|
+
label: l.path.length === 0
|
|
55
|
+
? l.header
|
|
56
|
+
: uniqueHeaders.size > 1
|
|
57
|
+
? [...l.path, l.header].join(' · ')
|
|
58
|
+
: l.path.join(' · '),
|
|
59
|
+
values: catRows.map((r) => {
|
|
60
|
+
const v = r[l.id];
|
|
61
|
+
return typeof v === 'number' ? v : Number(v) || 0;
|
|
62
|
+
}),
|
|
63
|
+
}));
|
|
64
|
+
return {
|
|
65
|
+
type,
|
|
66
|
+
categories,
|
|
67
|
+
series,
|
|
68
|
+
...(categoryGroups && categoryGroups.length > 1 ? { categoryGroups } : {}),
|
|
69
|
+
...(opts.stacked ? { stacked: true } : {}),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types + helpers for the SvPivotDesigner component.
|
|
3
|
+
*
|
|
4
|
+
* Why a separate module: the component file (.svelte) imports these,
|
|
5
|
+
* and so do consumers wiring up custom presets, formatters, or wells.
|
|
6
|
+
* Keeping the pure-TS surface here also lets us unit-test the layout
|
|
7
|
+
* normalisation + serialisation without instantiating the component.
|
|
8
|
+
*/
|
|
9
|
+
import type { CellFormatConfig } from '@svgrid/grid';
|
|
10
|
+
import type { PivotAggregatorId } from './pivot';
|
|
11
|
+
/** One field the designer offers in its left-rail picker.
|
|
12
|
+
* Dimensions land in Rows by default; measures land in Values. */
|
|
13
|
+
export type PivotField<T extends Record<string, unknown> = Record<string, unknown>> = {
|
|
14
|
+
field: keyof T & string;
|
|
15
|
+
/** Display name shown in the picker + on chips. */
|
|
16
|
+
label: string;
|
|
17
|
+
/** Default well: 'dimension' -> Rows, 'measure' -> Values. */
|
|
18
|
+
kind: 'dimension' | 'measure';
|
|
19
|
+
/** Optional group name for the field picker (e.g. 'Demographics'). */
|
|
20
|
+
group?: string;
|
|
21
|
+
/** Optional formatter applied to value-well chips by default. */
|
|
22
|
+
format?: CellFormatConfig;
|
|
23
|
+
/** Optional default aggregator when added to Values (default 'sum'). */
|
|
24
|
+
defaultAgg?: PivotAggregatorId;
|
|
25
|
+
};
|
|
26
|
+
/** A single chip in the Values well. */
|
|
27
|
+
export type PivotValueChip = {
|
|
28
|
+
field: string;
|
|
29
|
+
agg: PivotAggregatorId;
|
|
30
|
+
label?: string;
|
|
31
|
+
format?: CellFormatConfig;
|
|
32
|
+
};
|
|
33
|
+
/** A single chip in the Filters well. `allowed === null` => all values pass. */
|
|
34
|
+
export type PivotFilterChip = {
|
|
35
|
+
field: string;
|
|
36
|
+
/** Distinct values that pass the filter. `null` means no restriction. */
|
|
37
|
+
allowed: string[] | null;
|
|
38
|
+
};
|
|
39
|
+
/** The full pivot layout. The designer is a controlled component that
|
|
40
|
+
* reads + writes this single shape via `bind:layout`. */
|
|
41
|
+
export type PivotLayout = {
|
|
42
|
+
rows: string[];
|
|
43
|
+
cols: string[];
|
|
44
|
+
values: PivotValueChip[];
|
|
45
|
+
filters: PivotFilterChip[];
|
|
46
|
+
/** Hide subtotal rows between groups. Default false. */
|
|
47
|
+
hideSubtotals?: boolean;
|
|
48
|
+
/** Hide grand-total row + column. Default false. */
|
|
49
|
+
hideGrandTotals?: boolean;
|
|
50
|
+
};
|
|
51
|
+
/** A saved layout the user can pick from the toolbar's preset menu. */
|
|
52
|
+
export type PivotPreset = {
|
|
53
|
+
name: string;
|
|
54
|
+
layout: PivotLayout;
|
|
55
|
+
};
|
|
56
|
+
/** A built-in aggregator option. Consumers can pass a subset to
|
|
57
|
+
* `aggregators` to restrict the chip menu (e.g. 'count' only). */
|
|
58
|
+
export declare const ALL_AGGREGATORS: PivotAggregatorId[];
|
|
59
|
+
/** Empty layout used by Reset + the initial state. */
|
|
60
|
+
export declare const EMPTY_LAYOUT: PivotLayout;
|
|
61
|
+
/** Build an initial layout from a field list - useful when the
|
|
62
|
+
* consumer just wants "throw the first dimension in Rows + first
|
|
63
|
+
* measure in Values" defaults. */
|
|
64
|
+
export declare function defaultLayoutFor<T extends Record<string, unknown>>(fields: ReadonlyArray<PivotField<T>>): PivotLayout;
|
|
65
|
+
/** Move / add / remove a chip across the four wells. The well names
|
|
66
|
+
* match the layout shape. */
|
|
67
|
+
export type Well = 'rows' | 'cols' | 'values' | 'filters';
|
|
68
|
+
/** Pretty label for an aggregator id. */
|
|
69
|
+
export declare const AGG_LABEL: Record<PivotAggregatorId, string>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types + helpers for the SvPivotDesigner component.
|
|
3
|
+
*
|
|
4
|
+
* Why a separate module: the component file (.svelte) imports these,
|
|
5
|
+
* and so do consumers wiring up custom presets, formatters, or wells.
|
|
6
|
+
* Keeping the pure-TS surface here also lets us unit-test the layout
|
|
7
|
+
* normalisation + serialisation without instantiating the component.
|
|
8
|
+
*/
|
|
9
|
+
/** A built-in aggregator option. Consumers can pass a subset to
|
|
10
|
+
* `aggregators` to restrict the chip menu (e.g. 'count' only). */
|
|
11
|
+
export const ALL_AGGREGATORS = [
|
|
12
|
+
'sum', 'avg', 'min', 'max', 'count', 'countDistinct', 'first', 'last',
|
|
13
|
+
];
|
|
14
|
+
/** Empty layout used by Reset + the initial state. */
|
|
15
|
+
export const EMPTY_LAYOUT = {
|
|
16
|
+
rows: [], cols: [], values: [], filters: [],
|
|
17
|
+
};
|
|
18
|
+
/** Build an initial layout from a field list - useful when the
|
|
19
|
+
* consumer just wants "throw the first dimension in Rows + first
|
|
20
|
+
* measure in Values" defaults. */
|
|
21
|
+
export function defaultLayoutFor(fields) {
|
|
22
|
+
const dim = fields.find((f) => f.kind === 'dimension');
|
|
23
|
+
const meas = fields.find((f) => f.kind === 'measure');
|
|
24
|
+
return {
|
|
25
|
+
rows: dim ? [dim.field] : [],
|
|
26
|
+
cols: [],
|
|
27
|
+
values: meas
|
|
28
|
+
? [{ field: meas.field, agg: meas.defaultAgg ?? 'sum', label: meas.label, format: meas.format }]
|
|
29
|
+
: [],
|
|
30
|
+
filters: [],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** Pretty label for an aggregator id. */
|
|
34
|
+
export const AGG_LABEL = {
|
|
35
|
+
sum: 'Sum', avg: 'Average', min: 'Min', max: 'Max',
|
|
36
|
+
count: 'Count', countDistinct: 'Distinct count',
|
|
37
|
+
first: 'First', last: 'Last',
|
|
38
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register the Enterprise pivot engine. Idempotent - safe to call from every
|
|
3
|
+
* component that uses `pivot`, or once at app start. Also invoked by
|
|
4
|
+
* {@link installEnterprise} so wiring the Pro API turns pivot on too.
|
|
5
|
+
*/
|
|
6
|
+
export declare function enablePivot(): void;
|
|
@@ -16,29 +16,24 @@
|
|
|
16
16
|
* // then: <SvGrid {data} {columns} pivot={{ rows: ['region'], cols: ['quarter'], values: [{ field: 'sales', agg: 'sum' }] }} />
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
import { registerPivotEngine
|
|
20
|
-
import { isLicenseKeySet } from './license'
|
|
21
|
-
import { emitUnlicensedNudge } from './watermark'
|
|
22
|
-
import { createPivotModel
|
|
23
|
-
|
|
24
|
-
let enabled = false
|
|
25
|
-
|
|
19
|
+
import { registerPivotEngine } from '@svgrid/grid';
|
|
20
|
+
import { isLicenseKeySet } from './license';
|
|
21
|
+
import { emitUnlicensedNudge } from './watermark';
|
|
22
|
+
import { createPivotModel } from './pivot';
|
|
23
|
+
let enabled = false;
|
|
26
24
|
// The grid's `PivotEngine` seam is generic over row type; `createPivotModel` is
|
|
27
25
|
// the concrete implementation. Bridge them with a single boundary cast.
|
|
28
|
-
const pivotEngine
|
|
29
|
-
createPivotModel(
|
|
30
|
-
data as ReadonlyArray<Record<string, unknown>>,
|
|
31
|
-
config as unknown as PivotConfig<Record<string, unknown>>,
|
|
32
|
-
) as never
|
|
33
|
-
|
|
26
|
+
const pivotEngine = (data, config) => createPivotModel(data, config);
|
|
34
27
|
/**
|
|
35
28
|
* Register the Enterprise pivot engine. Idempotent - safe to call from every
|
|
36
29
|
* component that uses `pivot`, or once at app start. Also invoked by
|
|
37
30
|
* {@link installEnterprise} so wiring the Pro API turns pivot on too.
|
|
38
31
|
*/
|
|
39
|
-
export function enablePivot()
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
export function enablePivot() {
|
|
33
|
+
if (enabled)
|
|
34
|
+
return;
|
|
35
|
+
enabled = true;
|
|
36
|
+
registerPivotEngine(pivotEngine);
|
|
37
|
+
if (!isLicenseKeySet())
|
|
38
|
+
emitUnlicensedNudge();
|
|
44
39
|
}
|
package/dist/pivot.d.ts
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pivot table (@svgrid/enterprise).
|
|
3
|
+
*
|
|
4
|
+
* Turns a flat array of rows + a pivot config into:
|
|
5
|
+
* - `rows`: a flat array of pivot rows (group, subtotal, leaf, grand
|
|
6
|
+
* total) suitable for `<SvGrid data={rows} />`.
|
|
7
|
+
* - `columns`: a nested-header column tree suitable for
|
|
8
|
+
* `<SvGrid columns={columns} />` - one column per (col-axis path
|
|
9
|
+
* × value-measure) plus the row-axis "Header" first column.
|
|
10
|
+
*
|
|
11
|
+
* No DOM, no rendering. The grid renders the result with its
|
|
12
|
+
* `columns: ColumnDef[]` + `data: PivotRow[]` like any other dataset.
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { createPivotModel } from '@svgrid/enterprise'
|
|
18
|
+
*
|
|
19
|
+
* const pivot = createPivotModel(orders, {
|
|
20
|
+
* rows: ['region', 'salesPerson'],
|
|
21
|
+
* cols: ['quarter'],
|
|
22
|
+
* values: [
|
|
23
|
+
* { field: 'amount', agg: 'sum', label: 'Total', format: { type: 'currency', currency: 'USD' } },
|
|
24
|
+
* { field: 'amount', agg: 'avg', label: 'Avg' },
|
|
25
|
+
* ],
|
|
26
|
+
* })
|
|
27
|
+
*
|
|
28
|
+
* // then:
|
|
29
|
+
* <SvGrid data={pivot.rows} columns={pivot.columns} features={features} />
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
import type { ColumnDef, CellFormatConfig, RowData, TableFeatures } from '@svgrid/grid';
|
|
33
|
+
export type PivotAggregatorId = 'sum' | 'avg' | 'min' | 'max' | 'count' | 'countDistinct' | 'first' | 'last';
|
|
34
|
+
export type PivotAggregator = (values: ReadonlyArray<unknown>) => unknown;
|
|
35
|
+
export type PivotValueConfig<TData> = {
|
|
36
|
+
/** Row field whose values get aggregated. */
|
|
37
|
+
field: keyof TData & string;
|
|
38
|
+
/** Built-in aggregator id, or a custom reducer. */
|
|
39
|
+
agg: PivotAggregatorId | PivotAggregator;
|
|
40
|
+
/** Display name in the column header. Defaults to `${field} (${agg})`. */
|
|
41
|
+
label?: string;
|
|
42
|
+
/** Optional cell formatter. */
|
|
43
|
+
format?: CellFormatConfig;
|
|
44
|
+
};
|
|
45
|
+
export type PivotConfig<TData> = {
|
|
46
|
+
/** Outer-most first. Each entry becomes one level of row grouping. */
|
|
47
|
+
rows: ReadonlyArray<keyof TData & string>;
|
|
48
|
+
/** Outer-most first. Each entry becomes one level of column grouping. */
|
|
49
|
+
cols: ReadonlyArray<keyof TData & string>;
|
|
50
|
+
/** One or more measures aggregated under each column-axis leaf. */
|
|
51
|
+
values: ReadonlyArray<PivotValueConfig<TData>>;
|
|
52
|
+
/** Grand-total row at the bottom. Default `true`. */
|
|
53
|
+
grandTotalRow?: boolean;
|
|
54
|
+
/** Grand-total column on the right. Default `true`. */
|
|
55
|
+
grandTotalCol?: boolean;
|
|
56
|
+
/** Subtotal rows between row groups. Default `true`. */
|
|
57
|
+
rowSubtotals?: boolean;
|
|
58
|
+
/** Optional sort for column-axis values per dim level (defaults to alpha). */
|
|
59
|
+
colSort?: (a: unknown, b: unknown, level: number) => number;
|
|
60
|
+
/** Optional sort for row-axis values per dim level (defaults to alpha). */
|
|
61
|
+
rowSort?: (a: unknown, b: unknown, level: number) => number;
|
|
62
|
+
};
|
|
63
|
+
export type PivotRowKind = 'group' | 'subtotal' | 'leaf' | 'grandTotal';
|
|
64
|
+
/**
|
|
65
|
+
* Shape of one entry in `result.rows`. The first-column label lives at
|
|
66
|
+
* `__pivotLabel`; every value cell lives at the column id matching the
|
|
67
|
+
* leaf column generated for its (col-path × measure).
|
|
68
|
+
*
|
|
69
|
+
* `__pivotParentId` is the `__pivotId` of the row's row-axis parent
|
|
70
|
+
* (or `null` for top-level groups, the grand-total row, and the one
|
|
71
|
+
* synthetic "All" row when no row dims are configured). Use it with
|
|
72
|
+
* `filterCollapsedPivotRows` to hide leaves whose ancestor is
|
|
73
|
+
* collapsed - that's how expandable pivots are built on top of the
|
|
74
|
+
* model.
|
|
75
|
+
*
|
|
76
|
+
* `__pivotExpandable` is `true` for `group` rows that have at least
|
|
77
|
+
* one descendant. A renderer uses this to decide whether to show a
|
|
78
|
+
* chevron next to the label.
|
|
79
|
+
*/
|
|
80
|
+
export type PivotRow = {
|
|
81
|
+
__pivotId: string;
|
|
82
|
+
__pivotKind: PivotRowKind;
|
|
83
|
+
__pivotDepth: number;
|
|
84
|
+
__pivotLabel: string;
|
|
85
|
+
__pivotParentId: string | null;
|
|
86
|
+
__pivotExpandable: boolean;
|
|
87
|
+
/** Aggregated value cells - keyed by leaf column id. */
|
|
88
|
+
[columnId: string]: unknown;
|
|
89
|
+
};
|
|
90
|
+
export type PivotResult<TFeatures extends TableFeatures> = {
|
|
91
|
+
rows: PivotRow[];
|
|
92
|
+
columns: Array<ColumnDef<TFeatures, PivotRow>>;
|
|
93
|
+
};
|
|
94
|
+
export declare function createPivotModel<TFeatures extends TableFeatures, TData extends RowData>(data: ReadonlyArray<TData>, config: PivotConfig<TData>): PivotResult<TFeatures>;
|
|
95
|
+
/**
|
|
96
|
+
* Public registry of built-in aggregators. Useful for surfacing the
|
|
97
|
+
* available options in a pivot designer UI.
|
|
98
|
+
*/
|
|
99
|
+
export declare const pivotAggregators: Record<PivotAggregatorId, PivotAggregator>;
|
|
100
|
+
/**
|
|
101
|
+
* Filter a `result.rows` array down to only the rows the user should
|
|
102
|
+
* see given the current expansion state. A row stays in the output if
|
|
103
|
+
* its entire ancestor chain (via `__pivotParentId`) is in `expandedIds`.
|
|
104
|
+
*
|
|
105
|
+
* Pass `true` to bypass filtering (everything visible - the default
|
|
106
|
+
* shape `createPivotModel` already returns). Pass an empty array /
|
|
107
|
+
* empty Set to collapse every group to its subtotal row.
|
|
108
|
+
*
|
|
109
|
+
* The result is a new array; the input is not mutated.
|
|
110
|
+
*/
|
|
111
|
+
export declare function filterCollapsedPivotRows(rows: ReadonlyArray<PivotRow>, expandedIds: ReadonlyArray<string> | Set<string> | true): PivotRow[];
|