@sqlrooms/mosaic 0.29.0-rc.2 → 0.29.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +120 -0
- package/dist/MosaicChartBuilder.d.ts +48 -13
- package/dist/MosaicChartBuilder.d.ts.map +1 -1
- package/dist/MosaicChartBuilder.js +28 -30
- package/dist/MosaicChartBuilder.js.map +1 -1
- package/dist/MosaicSlice.d.ts +11 -0
- package/dist/MosaicSlice.d.ts.map +1 -1
- package/dist/MosaicSlice.js +73 -10
- package/dist/MosaicSlice.js.map +1 -1
- package/dist/ResponsivePlot.d.ts +23 -0
- package/dist/ResponsivePlot.d.ts.map +1 -0
- package/dist/ResponsivePlot.js +43 -0
- package/dist/ResponsivePlot.js.map +1 -0
- package/dist/VgPlotChart.d.ts +18 -2
- package/dist/VgPlotChart.d.ts.map +1 -1
- package/dist/VgPlotChart.js +112 -26
- package/dist/VgPlotChart.js.map +1 -1
- package/dist/chart-builders/ChartBuilderActions.d.ts +6 -0
- package/dist/chart-builders/ChartBuilderActions.d.ts.map +1 -0
- package/dist/chart-builders/ChartBuilderActions.js +28 -0
- package/dist/chart-builders/ChartBuilderActions.js.map +1 -0
- package/dist/chart-builders/ChartBuilderContent.d.ts +13 -11
- package/dist/chart-builders/ChartBuilderContent.d.ts.map +1 -1
- package/dist/chart-builders/ChartBuilderContent.js +21 -52
- package/dist/chart-builders/ChartBuilderContent.js.map +1 -1
- package/dist/chart-builders/ChartBuilderContext.d.ts +9 -4
- package/dist/chart-builders/ChartBuilderContext.d.ts.map +1 -1
- package/dist/chart-builders/ChartBuilderContext.js +5 -0
- package/dist/chart-builders/ChartBuilderContext.js.map +1 -1
- package/dist/chart-builders/ChartBuilderDialog.d.ts +31 -6
- package/dist/chart-builders/ChartBuilderDialog.d.ts.map +1 -1
- package/dist/chart-builders/ChartBuilderDialog.js +25 -10
- package/dist/chart-builders/ChartBuilderDialog.js.map +1 -1
- package/dist/chart-builders/ChartBuilderFields.d.ts +6 -0
- package/dist/chart-builders/ChartBuilderFields.d.ts.map +1 -0
- package/dist/chart-builders/ChartBuilderFields.js +25 -0
- package/dist/chart-builders/ChartBuilderFields.js.map +1 -0
- package/dist/chart-builders/ChartBuilderRoot.d.ts +27 -0
- package/dist/chart-builders/ChartBuilderRoot.d.ts.map +1 -0
- package/dist/chart-builders/ChartBuilderRoot.js +61 -0
- package/dist/chart-builders/ChartBuilderRoot.js.map +1 -0
- package/dist/chart-builders/ChartBuilderTypeGrid.d.ts +7 -0
- package/dist/chart-builders/ChartBuilderTypeGrid.d.ts.map +1 -0
- package/dist/chart-builders/ChartBuilderTypeGrid.js +23 -0
- package/dist/chart-builders/ChartBuilderTypeGrid.js.map +1 -0
- package/dist/chart-builders/FieldSelectorInput.d.ts.map +1 -1
- package/dist/chart-builders/FieldSelectorInput.js +2 -2
- package/dist/chart-builders/FieldSelectorInput.js.map +1 -1
- package/dist/chart-builders/builders.d.ts +28 -1
- package/dist/chart-builders/builders.d.ts.map +1 -1
- package/dist/chart-builders/builders.js +44 -273
- package/dist/chart-builders/builders.js.map +1 -1
- package/dist/chart-builders/chartSpecTitle.d.ts +3 -4
- package/dist/chart-builders/chartSpecTitle.d.ts.map +1 -1
- package/dist/chart-builders/chartSpecTitle.js +3 -5
- package/dist/chart-builders/chartSpecTitle.js.map +1 -1
- package/dist/chart-builders/chartTypeUtils.d.ts +17 -0
- package/dist/chart-builders/chartTypeUtils.d.ts.map +1 -0
- package/dist/chart-builders/chartTypeUtils.js +55 -0
- package/dist/chart-builders/chartTypeUtils.js.map +1 -0
- package/dist/chart-builders/constants.d.ts +7 -0
- package/dist/chart-builders/constants.d.ts.map +1 -0
- package/dist/chart-builders/constants.js +34 -0
- package/dist/chart-builders/constants.js.map +1 -0
- package/dist/chart-builders/createChartBuilderStore.d.ts +11 -0
- package/dist/chart-builders/createChartBuilderStore.d.ts.map +1 -0
- package/dist/chart-builders/createChartBuilderStore.js +26 -0
- package/dist/chart-builders/createChartBuilderStore.js.map +1 -0
- package/dist/chart-builders/describeChartSpecs.d.ts +5 -3
- package/dist/chart-builders/describeChartSpecs.d.ts.map +1 -1
- package/dist/chart-builders/describeChartSpecs.js +11 -8
- package/dist/chart-builders/describeChartSpecs.js.map +1 -1
- package/dist/chart-builders/hooks/useChartFieldForm.d.ts +13 -0
- package/dist/chart-builders/hooks/useChartFieldForm.d.ts.map +1 -0
- package/dist/chart-builders/hooks/useChartFieldForm.js +12 -0
- package/dist/chart-builders/hooks/useChartFieldForm.js.map +1 -0
- package/dist/chart-builders/types.d.ts +12 -29
- package/dist/chart-builders/types.d.ts.map +1 -1
- package/dist/chart-builders/types.js +16 -1
- package/dist/chart-builders/types.js.map +1 -1
- package/dist/chart-types/base-types.d.ts +54 -0
- package/dist/chart-types/base-types.d.ts.map +1 -0
- package/dist/chart-types/base-types.js +6 -0
- package/dist/chart-types/base-types.js.map +1 -0
- package/dist/chart-types/box-plot/definition.d.ts +4 -0
- package/dist/chart-types/box-plot/definition.d.ts.map +1 -0
- package/dist/chart-types/box-plot/definition.js +45 -0
- package/dist/chart-types/box-plot/definition.js.map +1 -0
- package/dist/chart-types/box-plot/index.d.ts +3 -0
- package/dist/chart-types/box-plot/index.d.ts.map +1 -0
- package/dist/chart-types/box-plot/index.js +3 -0
- package/dist/chart-types/box-plot/index.js.map +1 -0
- package/dist/chart-types/box-plot/schema.d.ts +17 -0
- package/dist/chart-types/box-plot/schema.d.ts.map +1 -0
- package/dist/chart-types/box-plot/schema.js +12 -0
- package/dist/chart-types/box-plot/schema.js.map +1 -0
- package/dist/chart-types/bubble-chart/definition.d.ts +4 -0
- package/dist/chart-types/bubble-chart/definition.d.ts.map +1 -0
- package/dist/chart-types/bubble-chart/definition.js +48 -0
- package/dist/chart-types/bubble-chart/definition.js.map +1 -0
- package/dist/chart-types/bubble-chart/index.d.ts +3 -0
- package/dist/chart-types/bubble-chart/index.d.ts.map +1 -0
- package/dist/chart-types/bubble-chart/index.js +3 -0
- package/dist/chart-types/bubble-chart/index.js.map +1 -0
- package/dist/chart-types/bubble-chart/schema.d.ts +17 -0
- package/dist/chart-types/bubble-chart/schema.d.ts.map +1 -0
- package/dist/chart-types/bubble-chart/schema.js +12 -0
- package/dist/chart-types/bubble-chart/schema.js.map +1 -0
- package/dist/chart-types/count-plot/definition.d.ts +4 -0
- package/dist/chart-types/count-plot/definition.d.ts.map +1 -0
- package/dist/chart-types/count-plot/definition.js +50 -0
- package/dist/chart-types/count-plot/definition.js.map +1 -0
- package/dist/chart-types/count-plot/index.d.ts +3 -0
- package/dist/chart-types/count-plot/index.d.ts.map +1 -0
- package/dist/chart-types/count-plot/index.js +3 -0
- package/dist/chart-types/count-plot/index.js.map +1 -0
- package/dist/chart-types/count-plot/schema.d.ts +15 -0
- package/dist/chart-types/count-plot/schema.d.ts.map +1 -0
- package/dist/chart-types/count-plot/schema.js +11 -0
- package/dist/chart-types/count-plot/schema.js.map +1 -0
- package/dist/chart-types/custom-spec/definition.d.ts +4 -0
- package/dist/chart-types/custom-spec/definition.d.ts.map +1 -0
- package/dist/chart-types/custom-spec/definition.js +28 -0
- package/dist/chart-types/custom-spec/definition.js.map +1 -0
- package/dist/chart-types/custom-spec/index.d.ts +3 -0
- package/dist/chart-types/custom-spec/index.d.ts.map +1 -0
- package/dist/chart-types/custom-spec/index.js +3 -0
- package/dist/chart-types/custom-spec/index.js.map +1 -0
- package/dist/chart-types/custom-spec/schema.d.ts +11 -0
- package/dist/chart-types/custom-spec/schema.d.ts.map +1 -0
- package/dist/chart-types/custom-spec/schema.js +9 -0
- package/dist/chart-types/custom-spec/schema.js.map +1 -0
- package/dist/chart-types/ecdf/definition.d.ts +4 -0
- package/dist/chart-types/ecdf/definition.d.ts.map +1 -0
- package/dist/chart-types/ecdf/definition.js +47 -0
- package/dist/chart-types/ecdf/definition.js.map +1 -0
- package/dist/chart-types/ecdf/index.d.ts +3 -0
- package/dist/chart-types/ecdf/index.d.ts.map +1 -0
- package/dist/chart-types/ecdf/index.js +3 -0
- package/dist/chart-types/ecdf/index.js.map +1 -0
- package/dist/chart-types/ecdf/schema.d.ts +15 -0
- package/dist/chart-types/ecdf/schema.d.ts.map +1 -0
- package/dist/chart-types/ecdf/schema.js +11 -0
- package/dist/chart-types/ecdf/schema.js.map +1 -0
- package/dist/chart-types/heatmap/definition.d.ts +4 -0
- package/dist/chart-types/heatmap/definition.d.ts.map +1 -0
- package/dist/chart-types/heatmap/definition.js +49 -0
- package/dist/chart-types/heatmap/definition.js.map +1 -0
- package/dist/chart-types/heatmap/index.d.ts +3 -0
- package/dist/chart-types/heatmap/index.d.ts.map +1 -0
- package/dist/chart-types/heatmap/index.js +3 -0
- package/dist/chart-types/heatmap/index.js.map +1 -0
- package/dist/chart-types/heatmap/schema.d.ts +17 -0
- package/dist/chart-types/heatmap/schema.d.ts.map +1 -0
- package/dist/chart-types/heatmap/schema.js +12 -0
- package/dist/chart-types/heatmap/schema.js.map +1 -0
- package/dist/chart-types/histogram/definition.d.ts +4 -0
- package/dist/chart-types/histogram/definition.d.ts.map +1 -0
- package/dist/chart-types/histogram/definition.js +49 -0
- package/dist/chart-types/histogram/definition.js.map +1 -0
- package/dist/chart-types/histogram/index.d.ts +3 -0
- package/dist/chart-types/histogram/index.d.ts.map +1 -0
- package/dist/chart-types/histogram/index.js +3 -0
- package/dist/chart-types/histogram/index.js.map +1 -0
- package/dist/chart-types/histogram/schema.d.ts +15 -0
- package/dist/chart-types/histogram/schema.d.ts.map +1 -0
- package/dist/chart-types/histogram/schema.js +11 -0
- package/dist/chart-types/histogram/schema.js.map +1 -0
- package/dist/chart-types/index.d.ts +109 -0
- package/dist/chart-types/index.d.ts.map +1 -0
- package/dist/chart-types/index.js +70 -0
- package/dist/chart-types/index.js.map +1 -0
- package/dist/chart-types/line-chart/definition.d.ts +4 -0
- package/dist/chart-types/line-chart/definition.d.ts.map +1 -0
- package/dist/chart-types/line-chart/definition.js +46 -0
- package/dist/chart-types/line-chart/definition.js.map +1 -0
- package/dist/chart-types/line-chart/index.d.ts +3 -0
- package/dist/chart-types/line-chart/index.d.ts.map +1 -0
- package/dist/chart-types/line-chart/index.js +3 -0
- package/dist/chart-types/line-chart/index.js.map +1 -0
- package/dist/chart-types/line-chart/schema.d.ts +17 -0
- package/dist/chart-types/line-chart/schema.d.ts.map +1 -0
- package/dist/chart-types/line-chart/schema.js +12 -0
- package/dist/chart-types/line-chart/schema.js.map +1 -0
- package/dist/chart-types/registry.d.ts +5 -0
- package/dist/chart-types/registry.d.ts.map +1 -0
- package/dist/chart-types/registry.js +28 -0
- package/dist/chart-types/registry.js.map +1 -0
- package/dist/dashboard/DashboardPanelErrorBoundary.d.ts +17 -0
- package/dist/dashboard/DashboardPanelErrorBoundary.d.ts.map +1 -0
- package/dist/dashboard/DashboardPanelErrorBoundary.js +21 -0
- package/dist/dashboard/DashboardPanelErrorBoundary.js.map +1 -0
- package/dist/dashboard/MosaicDashboard.d.ts +2 -4
- package/dist/dashboard/MosaicDashboard.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboard.js +42 -19
- package/dist/dashboard/MosaicDashboard.js.map +1 -1
- package/dist/dashboard/MosaicDashboardContext.d.ts +1 -0
- package/dist/dashboard/MosaicDashboardContext.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboardContext.js.map +1 -1
- package/dist/dashboard/MosaicDashboardPanel.d.ts +3 -0
- package/dist/dashboard/MosaicDashboardPanel.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardPanel.js +26 -0
- package/dist/dashboard/MosaicDashboardPanel.js.map +1 -0
- package/dist/dashboard/MosaicDashboardPanelDragOverlay.d.ts +8 -0
- package/dist/dashboard/MosaicDashboardPanelDragOverlay.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardPanelDragOverlay.js +17 -0
- package/dist/dashboard/MosaicDashboardPanelDragOverlay.js.map +1 -0
- package/dist/dashboard/MosaicDashboardPanelHeader.d.ts +13 -0
- package/dist/dashboard/MosaicDashboardPanelHeader.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardPanelHeader.js +30 -0
- package/dist/dashboard/MosaicDashboardPanelHeader.js.map +1 -0
- package/dist/dashboard/MosaicDashboardPanelLayout.d.ts +10 -0
- package/dist/dashboard/MosaicDashboardPanelLayout.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardPanelLayout.js +25 -0
- package/dist/dashboard/MosaicDashboardPanelLayout.js.map +1 -0
- package/dist/dashboard/MosaicDashboardPanels.d.ts +2 -0
- package/dist/dashboard/MosaicDashboardPanels.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardPanels.js +52 -0
- package/dist/dashboard/MosaicDashboardPanels.js.map +1 -0
- package/dist/dashboard/MosaicDashboardProfilerPanelRenderer.d.ts +3 -0
- package/dist/dashboard/MosaicDashboardProfilerPanelRenderer.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardProfilerPanelRenderer.js +32 -0
- package/dist/dashboard/MosaicDashboardProfilerPanelRenderer.js.map +1 -0
- package/dist/dashboard/MosaicDashboardSlice.d.ts +482 -27
- package/dist/dashboard/MosaicDashboardSlice.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboardSlice.js +478 -93
- package/dist/dashboard/MosaicDashboardSlice.js.map +1 -1
- package/dist/dashboard/MosaicDashboardToolbar.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboardToolbar.js +69 -7
- package/dist/dashboard/MosaicDashboardToolbar.js.map +1 -1
- package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.d.ts +4 -0
- package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.js +29 -0
- package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.js.map +1 -0
- package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.d.ts +3 -0
- package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.js +68 -0
- package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.js.map +1 -0
- package/dist/dashboard/VgPlotSpecPopoverEditor.d.ts.map +1 -1
- package/dist/dashboard/VgPlotSpecPopoverEditor.js +2 -2
- package/dist/dashboard/VgPlotSpecPopoverEditor.js.map +1 -1
- package/dist/dashboard/chart-settings/ChartSettings.d.ts +39 -0
- package/dist/dashboard/chart-settings/ChartSettings.d.ts.map +1 -0
- package/dist/dashboard/chart-settings/ChartSettings.js +90 -0
- package/dist/dashboard/chart-settings/ChartSettings.js.map +1 -0
- package/dist/dashboard/chart-settings/ChartSettingsContext.d.ts +20 -0
- package/dist/dashboard/chart-settings/ChartSettingsContext.d.ts.map +1 -0
- package/dist/dashboard/chart-settings/ChartSettingsContext.js +14 -0
- package/dist/dashboard/chart-settings/ChartSettingsContext.js.map +1 -0
- package/dist/dashboard/chart-settings/ChartSettingsPanel.d.ts +11 -0
- package/dist/dashboard/chart-settings/ChartSettingsPanel.d.ts.map +1 -0
- package/dist/dashboard/chart-settings/ChartSettingsPanel.js +8 -0
- package/dist/dashboard/chart-settings/ChartSettingsPanel.js.map +1 -0
- package/dist/dashboard/chart-settings/ChartTypeSelector.d.ts +11 -0
- package/dist/dashboard/chart-settings/ChartTypeSelector.d.ts.map +1 -0
- package/dist/dashboard/chart-settings/ChartTypeSelector.js +17 -0
- package/dist/dashboard/chart-settings/ChartTypeSelector.js.map +1 -0
- package/dist/dashboard/chart-settings/DynamicChartSettings.d.ts +11 -0
- package/dist/dashboard/chart-settings/DynamicChartSettings.d.ts.map +1 -0
- package/dist/dashboard/chart-settings/DynamicChartSettings.js +19 -0
- package/dist/dashboard/chart-settings/DynamicChartSettings.js.map +1 -0
- package/dist/dashboard/chart-settings/index.d.ts +6 -0
- package/dist/dashboard/chart-settings/index.d.ts.map +1 -0
- package/dist/dashboard/chart-settings/index.js +6 -0
- package/dist/dashboard/chart-settings/index.js.map +1 -0
- package/dist/dashboard/chart-settings/useTableColumns.d.ts +3 -0
- package/dist/dashboard/chart-settings/useTableColumns.d.ts.map +1 -0
- package/dist/dashboard/chart-settings/useTableColumns.js +12 -0
- package/dist/dashboard/chart-settings/useTableColumns.js.map +1 -0
- package/dist/dashboard/defaultPanelRenderers.d.ts +3 -0
- package/dist/dashboard/defaultPanelRenderers.d.ts.map +1 -0
- package/dist/dashboard/defaultPanelRenderers.js +11 -0
- package/dist/dashboard/defaultPanelRenderers.js.map +1 -0
- package/dist/dashboard/generateMosaicChartSpec.d.ts +15 -0
- package/dist/dashboard/generateMosaicChartSpec.d.ts.map +1 -0
- package/dist/dashboard/generateMosaicChartSpec.js +30 -0
- package/dist/dashboard/generateMosaicChartSpec.js.map +1 -0
- package/dist/editor/MosaicChartDisplay.d.ts.map +1 -1
- package/dist/editor/MosaicChartDisplay.js +6 -1
- package/dist/editor/MosaicChartDisplay.js.map +1 -1
- package/dist/index.d.ts +31 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -2
- package/dist/index.js.map +1 -1
- package/dist/profiler/useMosaicProfiler.d.ts.map +1 -1
- package/dist/profiler/useMosaicProfiler.js.map +1 -1
- package/dist/tableInterop.js.map +1 -1
- package/dist/useMosaicClient.d.ts +4 -15
- package/dist/useMosaicClient.d.ts.map +1 -1
- package/dist/useMosaicClient.js +10 -4
- package/dist/useMosaicClient.js.map +1 -1
- package/package.json +15 -9
- package/dist/chart-builders/createMosaicChartTool.d.ts +0 -45
- package/dist/chart-builders/createMosaicChartTool.d.ts.map +0 -1
- package/dist/chart-builders/createMosaicChartTool.js +0 -109
- package/dist/chart-builders/createMosaicChartTool.js.map +0 -1
- package/dist/dashboard/MosaicDashboardChartPanel.d.ts +0 -3
- package/dist/dashboard/MosaicDashboardChartPanel.d.ts.map +0 -1
- package/dist/dashboard/MosaicDashboardChartPanel.js +0 -49
- package/dist/dashboard/MosaicDashboardChartPanel.js.map +0 -1
- package/dist/dashboard/MosaicDashboardCharts.d.ts +0 -3
- package/dist/dashboard/MosaicDashboardCharts.d.ts.map +0 -1
- package/dist/dashboard/MosaicDashboardCharts.js +0 -45
- package/dist/dashboard/MosaicDashboardCharts.js.map +0 -1
- package/dist/dashboard/MosaicDashboardProfiler.d.ts +0 -3
- package/dist/dashboard/MosaicDashboardProfiler.d.ts.map +0 -1
- package/dist/dashboard/MosaicDashboardProfiler.js +0 -21
- package/dist/dashboard/MosaicDashboardProfiler.js.map +0 -1
- package/dist/use-mosaic.d.ts +0 -11
- package/dist/use-mosaic.d.ts.map +0 -1
- package/dist/use-mosaic.js +0 -42
- package/dist/use-mosaic.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createChartBuilderStore.js","sourceRoot":"","sources":["../../src/chart-builders/createChartBuilderStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAa5C,MAAM,UAAU,uBAAuB;IACrC,OAAO,WAAW,CAAyB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnD,kBAAkB,EAAE,SAAS;QAC7B,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,GAAG,EAAE;YACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,KAAK,CAAC,kBAAkB,GAAG,SAAS,CAAC;gBACrC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;YACzB,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QACD,cAAc,EAAE,CAAC,UAAU,EAAE,EAAE;YAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC;gBACtC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;YACzB,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QACD,aAAa,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YACtC,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {produce} from 'immer';\nimport {createStore} from 'zustand/vanilla';\nimport {VgPlotChartType} from '../chart-types';\n\nexport type ChartBuilderStoreState = {\n selectedTemplateId?: VgPlotChartType;\n fieldValues: Record<string, string>;\n reset: () => void;\n selectTemplate: (templateId: VgPlotChartType) => void;\n setFieldValue: (fieldKey: string, value: string) => void;\n};\n\nexport type ChartBuilderStore = ReturnType<typeof createChartBuilderStore>;\n\nexport function createChartBuilderStore() {\n return createStore<ChartBuilderStoreState>((set) => ({\n selectedTemplateId: undefined,\n fieldValues: {},\n reset: () => {\n set((state) =>\n produce(state, (draft) => {\n draft.selectedTemplateId = undefined;\n draft.fieldValues = {};\n }),\n );\n },\n selectTemplate: (templateId) => {\n set((state) =>\n produce(state, (draft) => {\n draft.selectedTemplateId = templateId;\n draft.fieldValues = {};\n }),\n );\n },\n setFieldValue: (fieldKey, value) => {\n set((state) =>\n produce(state, (draft) => {\n draft.fieldValues[fieldKey] = value;\n }),\n );\n },\n }));\n}\n"]}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { ChartBuilderColumn,
|
|
1
|
+
import type { ChartBuilderColumn, ChartTypeDefinition } from './types';
|
|
2
2
|
/**
|
|
3
|
-
* Serialize chart
|
|
3
|
+
* Serialize chart types and column metadata into a string suitable for LLM
|
|
4
4
|
* system prompts (e.g. alongside dashboard authoring instructions).
|
|
5
5
|
*/
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function describeChartTypes(chartTypes: ChartTypeDefinition[], tableName: string, columns: ChartBuilderColumn[]): string;
|
|
7
|
+
/** Backward-compatible alias for earlier helper APIs. */
|
|
8
|
+
export declare const describeChartSpecs: typeof describeChartTypes;
|
|
7
9
|
//# sourceMappingURL=describeChartSpecs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describeChartSpecs.d.ts","sourceRoot":"","sources":["../../src/chart-builders/describeChartSpecs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"describeChartSpecs.d.ts","sourceRoot":"","sources":["../../src/chart-builders/describeChartSpecs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AA2BjB;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,mBAAmB,EAAE,EACjC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB,EAAE,GAC5B,MAAM,CAeR;AAED,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,2BAAqB,CAAC"}
|
|
@@ -11,28 +11,31 @@ function formatFieldConstraints(field) {
|
|
|
11
11
|
}
|
|
12
12
|
return parts.join(', ');
|
|
13
13
|
}
|
|
14
|
-
function formatFieldsBlock(
|
|
15
|
-
if (
|
|
14
|
+
function formatFieldsBlock(chartType) {
|
|
15
|
+
if (chartType.fields.length === 0) {
|
|
16
16
|
return ' Fields: none (template spec only; edit manually after creation)';
|
|
17
17
|
}
|
|
18
|
-
const lines =
|
|
18
|
+
const lines = chartType.fields.map((f) => {
|
|
19
19
|
const req = f.required !== false ? 'required' : 'optional';
|
|
20
|
-
|
|
20
|
+
const suffix = f.description ? `; ${f.description}` : '';
|
|
21
|
+
return ` - ${f.key} (${f.label}): ${req}; ${formatFieldConstraints(f)}${suffix}`;
|
|
21
22
|
});
|
|
22
23
|
return ` Fields:\n${lines.join('\n')}`;
|
|
23
24
|
}
|
|
24
25
|
/**
|
|
25
|
-
* Serialize chart
|
|
26
|
+
* Serialize chart types and column metadata into a string suitable for LLM
|
|
26
27
|
* system prompts (e.g. alongside dashboard authoring instructions).
|
|
27
28
|
*/
|
|
28
|
-
export function
|
|
29
|
+
export function describeChartTypes(chartTypes, tableName, columns) {
|
|
29
30
|
const header = `Available chart templates for table "${tableName}":`;
|
|
30
|
-
const body =
|
|
31
|
-
.map((
|
|
31
|
+
const body = chartTypes
|
|
32
|
+
.map((chartType) => `- ${chartType.id}: ${chartType.label ?? chartType.description}\n Summary: ${chartType.aiDescription ?? chartType.description}\n${formatFieldsBlock(chartType)}`)
|
|
32
33
|
.join('\n');
|
|
33
34
|
const colLine = columns.length > 0
|
|
34
35
|
? columns.map((c) => `${c.name} (${c.type})`).join(', ')
|
|
35
36
|
: '(no columns provided)';
|
|
36
37
|
return `${header}\n${body}\n\nAvailable columns: ${colLine}`;
|
|
37
38
|
}
|
|
39
|
+
/** Backward-compatible alias for earlier helper APIs. */
|
|
40
|
+
export const describeChartSpecs = describeChartTypes;
|
|
38
41
|
//# sourceMappingURL=describeChartSpecs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describeChartSpecs.js","sourceRoot":"","sources":["../../src/chart-builders/describeChartSpecs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"describeChartSpecs.js","sourceRoot":"","sources":["../../src/chart-builders/describeChartSpecs.ts"],"names":[],"mappings":"AAMA,SAAS,sBAAsB,CAAC,KAAwB;IACtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,SAA8B;IACvD,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,mEAAmE,CAAC;IAC7E,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,MAAM,GAAG,KAAK,sBAAsB,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;IACtF,CAAC,CAAC,CAAC;IACH,OAAO,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAiC,EACjC,SAAiB,EACjB,OAA6B;IAE7B,MAAM,MAAM,GAAG,wCAAwC,SAAS,IAAI,CAAC;IACrE,MAAM,IAAI,GAAG,UAAU;SACpB,GAAG,CACF,CAAC,SAAS,EAAE,EAAE,CACZ,KAAK,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,WAAW,gBAAgB,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,WAAW,KAAK,iBAAiB,CAAC,SAAS,CAAC,EAAE,CACpK;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,OAAO,GACX,OAAO,CAAC,MAAM,GAAG,CAAC;QAChB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACxD,CAAC,CAAC,uBAAuB,CAAC;IAE9B,OAAO,GAAG,MAAM,KAAK,IAAI,0BAA0B,OAAO,EAAE,CAAC;AAC/D,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC","sourcesContent":["import type {\n ChartBuilderColumn,\n ChartBuilderField,\n ChartTypeDefinition,\n} from './types';\n\nfunction formatFieldConstraints(field: ChartBuilderField): string {\n const parts: string[] = [];\n if (field.types?.length) {\n parts.push(`columns typed ${field.types.join(' | ')}`);\n } else {\n parts.push('any column');\n }\n if (field.required === false) {\n parts.push('optional');\n }\n return parts.join(', ');\n}\n\nfunction formatFieldsBlock(chartType: ChartTypeDefinition): string {\n if (chartType.fields.length === 0) {\n return ' Fields: none (template spec only; edit manually after creation)';\n }\n const lines = chartType.fields.map((f) => {\n const req = f.required !== false ? 'required' : 'optional';\n const suffix = f.description ? `; ${f.description}` : '';\n return ` - ${f.key} (${f.label}): ${req}; ${formatFieldConstraints(f)}${suffix}`;\n });\n return ` Fields:\\n${lines.join('\\n')}`;\n}\n\n/**\n * Serialize chart types and column metadata into a string suitable for LLM\n * system prompts (e.g. alongside dashboard authoring instructions).\n */\nexport function describeChartTypes(\n chartTypes: ChartTypeDefinition[],\n tableName: string,\n columns: ChartBuilderColumn[],\n): string {\n const header = `Available chart templates for table \"${tableName}\":`;\n const body = chartTypes\n .map(\n (chartType) =>\n `- ${chartType.id}: ${chartType.label ?? chartType.description}\\n Summary: ${chartType.aiDescription ?? chartType.description}\\n${formatFieldsBlock(chartType)}`,\n )\n .join('\\n');\n\n const colLine =\n columns.length > 0\n ? columns.map((c) => `${c.name} (${c.type})`).join(', ')\n : '(no columns provided)';\n\n return `${header}\\n${body}\\n\\nAvailable columns: ${colLine}`;\n}\n\n/** Backward-compatible alias for earlier helper APIs. */\nexport const describeChartSpecs = describeChartTypes;\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ChartBuilderField } from '../types';
|
|
2
|
+
interface UseChartFieldFormProps {
|
|
3
|
+
fields: ChartBuilderField[];
|
|
4
|
+
values: Record<string, unknown>;
|
|
5
|
+
onChange: (key: string, value: unknown) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function useChartFieldForm({ fields, values, onChange, }: UseChartFieldFormProps): {
|
|
8
|
+
fields: ChartBuilderField[];
|
|
9
|
+
values: Record<string, unknown>;
|
|
10
|
+
handleFieldChange: (fieldKey: string, value: unknown) => void;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=useChartFieldForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChartFieldForm.d.ts","sourceRoot":"","sources":["../../../src/chart-builders/hooks/useChartFieldForm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAEhD,UAAU,sBAAsB;IAC9B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACjD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,MAAM,EACN,QAAQ,GACT,EAAE,sBAAsB;;;kCAEV,MAAM,SAAS,OAAO;EAWpC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
export function useChartFieldForm({ fields, values, onChange, }) {
|
|
3
|
+
const handleFieldChange = useCallback((fieldKey, value) => {
|
|
4
|
+
onChange(fieldKey, value);
|
|
5
|
+
}, [onChange]);
|
|
6
|
+
return {
|
|
7
|
+
fields,
|
|
8
|
+
values,
|
|
9
|
+
handleFieldChange,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=useChartFieldForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChartFieldForm.js","sourceRoot":"","sources":["../../../src/chart-builders/hooks/useChartFieldForm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,OAAO,CAAC;AASlC,MAAM,UAAU,iBAAiB,CAAC,EAChC,MAAM,EACN,MAAM,EACN,QAAQ,GACe;IACvB,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,QAAgB,EAAE,KAAc,EAAE,EAAE;QACnC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO;QACL,MAAM;QACN,MAAM;QACN,iBAAiB;KAClB,CAAC;AACJ,CAAC","sourcesContent":["import {useCallback} from 'react';\nimport type {ChartBuilderField} from '../types';\n\ninterface UseChartFieldFormProps {\n fields: ChartBuilderField[];\n values: Record<string, unknown>;\n onChange: (key: string, value: unknown) => void;\n}\n\nexport function useChartFieldForm({\n fields,\n values,\n onChange,\n}: UseChartFieldFormProps) {\n const handleFieldChange = useCallback(\n (fieldKey: string, value: unknown) => {\n onChange(fieldKey, value);\n },\n [onChange],\n );\n\n return {\n fields,\n values,\n handleFieldChange,\n };\n}\n"]}
|
|
@@ -1,40 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
* Describes a field selector in a chart builder UI
|
|
5
|
-
*/
|
|
6
|
-
export interface ChartBuilderField {
|
|
7
|
-
/** Unique key for this field */
|
|
8
|
-
key: string;
|
|
9
|
-
/** Display label */
|
|
10
|
-
label: string;
|
|
11
|
-
/** Whether the field is required */
|
|
12
|
-
required?: boolean;
|
|
13
|
-
/** Filter columns by DuckDB type (e.g. 'INTEGER', 'VARCHAR', 'DOUBLE') */
|
|
14
|
-
types?: string[];
|
|
15
|
-
}
|
|
1
|
+
import type { ComponentType } from 'react';
|
|
2
|
+
import type { ChartTypeDefinition, ChartBuilderField, ChartBuilderColumn } from '../chart-types/base-types';
|
|
3
|
+
export type { ChartTypeDefinition, ChartBuilderField, ChartBuilderColumn };
|
|
16
4
|
/**
|
|
17
5
|
* Describes a chart builder template that generates Mosaic JSON specs
|
|
6
|
+
* (includes an icon for the chart-type grid).
|
|
18
7
|
*/
|
|
19
|
-
export interface ChartBuilderTemplate {
|
|
20
|
-
/** Unique identifier */
|
|
21
|
-
id: string;
|
|
8
|
+
export interface ChartBuilderTemplate extends ChartTypeDefinition {
|
|
22
9
|
/** Icon component */
|
|
23
10
|
icon: ComponentType<{
|
|
24
11
|
className?: string;
|
|
25
12
|
}>;
|
|
26
|
-
/** Short description of what this builder creates */
|
|
27
|
-
description: string;
|
|
28
|
-
/** Field selectors the user must fill in */
|
|
29
|
-
fields: ChartBuilderField[];
|
|
30
|
-
/** Generate a Mosaic spec from table name and selected field values */
|
|
31
|
-
createSpec: (tableName: string, values: Record<string, string>) => Spec;
|
|
32
13
|
}
|
|
33
14
|
/**
|
|
34
|
-
*
|
|
15
|
+
* Backward-compatible alias for earlier chart-builder helper APIs.
|
|
16
|
+
* Prefer {@link ChartTypeDefinition} for new code.
|
|
35
17
|
*/
|
|
36
|
-
export
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
18
|
+
export type ChartSpec = ChartTypeDefinition;
|
|
19
|
+
/** Strip UI-only fields from a template for non-UI chart-type contexts. */
|
|
20
|
+
export declare function toChartTypeDefinition(template: ChartBuilderTemplate): ChartTypeDefinition;
|
|
21
|
+
/** Backward-compatible alias for earlier helper APIs. */
|
|
22
|
+
export declare const toChartSpec: typeof toChartTypeDefinition;
|
|
40
23
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/chart-builders/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/chart-builders/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EAAC,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,qBAAqB;IACrB,IAAI,EAAE,aAAa,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAE5C,2EAA2E;AAC3E,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,oBAAoB,GAC7B,mBAAmB,CAqBrB;AAED,yDAAyD;AACzD,eAAO,MAAM,WAAW,8BAAwB,CAAC"}
|
|
@@ -1,2 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
/** Strip UI-only fields from a template for non-UI chart-type contexts. */
|
|
2
|
+
export function toChartTypeDefinition(template) {
|
|
3
|
+
const { id, label, description, fields, createSpec, buildTitle, isAvailable, aiDescription, } = template;
|
|
4
|
+
return {
|
|
5
|
+
id,
|
|
6
|
+
label,
|
|
7
|
+
description,
|
|
8
|
+
fields,
|
|
9
|
+
createSpec,
|
|
10
|
+
buildTitle,
|
|
11
|
+
isAvailable,
|
|
12
|
+
aiDescription,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/** Backward-compatible alias for earlier helper APIs. */
|
|
16
|
+
export const toChartSpec = toChartTypeDefinition;
|
|
2
17
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/chart-builders/types.ts"],"names":[],"mappings":"","sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/chart-builders/types.ts"],"names":[],"mappings":"AAyBA,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB,CACnC,QAA8B;IAE9B,MAAM,EACJ,EAAE,EACF,KAAK,EACL,WAAW,EACX,MAAM,EACN,UAAU,EACV,UAAU,EACV,WAAW,EACX,aAAa,GACd,GAAG,QAAQ,CAAC;IACb,OAAO;QACL,EAAE;QACF,KAAK;QACL,WAAW;QACX,MAAM;QACN,UAAU;QACV,UAAU;QACV,WAAW;QACX,aAAa;KACd,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAC","sourcesContent":["import type {ComponentType} from 'react';\nimport type {\n ChartTypeDefinition,\n ChartBuilderField,\n ChartBuilderColumn,\n} from '../chart-types/base-types';\n\n// Re-export for backward compatibility\nexport type {ChartTypeDefinition, ChartBuilderField, ChartBuilderColumn};\n\n/**\n * Describes a chart builder template that generates Mosaic JSON specs\n * (includes an icon for the chart-type grid).\n */\nexport interface ChartBuilderTemplate extends ChartTypeDefinition {\n /** Icon component */\n icon: ComponentType<{className?: string}>;\n}\n\n/**\n * Backward-compatible alias for earlier chart-builder helper APIs.\n * Prefer {@link ChartTypeDefinition} for new code.\n */\nexport type ChartSpec = ChartTypeDefinition;\n\n/** Strip UI-only fields from a template for non-UI chart-type contexts. */\nexport function toChartTypeDefinition(\n template: ChartBuilderTemplate,\n): ChartTypeDefinition {\n const {\n id,\n label,\n description,\n fields,\n createSpec,\n buildTitle,\n isAvailable,\n aiDescription,\n } = template;\n return {\n id,\n label,\n description,\n fields,\n createSpec,\n buildTitle,\n isAvailable,\n aiDescription,\n };\n}\n\n/** Backward-compatible alias for earlier helper APIs. */\nexport const toChartSpec = toChartTypeDefinition;\n"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base types for chart configurations.
|
|
3
|
+
* Separated to avoid circular dependencies.
|
|
4
|
+
*/
|
|
5
|
+
import type { Spec } from '@uwdata/mosaic-spec';
|
|
6
|
+
/**
|
|
7
|
+
* Supported chart type identifiers
|
|
8
|
+
*/
|
|
9
|
+
export type VgPlotChartType = 'histogram' | 'count-plot' | 'ecdf' | 'line-chart' | 'bubble-chart' | 'heatmap' | 'box-plot' | 'custom-spec';
|
|
10
|
+
/**
|
|
11
|
+
* Describes a field selector in a chart builder UI
|
|
12
|
+
*/
|
|
13
|
+
export interface ChartBuilderField {
|
|
14
|
+
/** Unique key for this field */
|
|
15
|
+
key: string;
|
|
16
|
+
/** Display label */
|
|
17
|
+
label: string;
|
|
18
|
+
/** Whether the field is required */
|
|
19
|
+
required?: boolean;
|
|
20
|
+
/** Filter columns by DuckDB type (e.g. 'INTEGER', 'VARCHAR', 'DOUBLE') */
|
|
21
|
+
types?: string[];
|
|
22
|
+
/** Optional helper text for AI or custom UIs */
|
|
23
|
+
description?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Column info passed to chart builder UI
|
|
27
|
+
*/
|
|
28
|
+
export interface ChartBuilderColumn {
|
|
29
|
+
name: string;
|
|
30
|
+
type: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Shared chart-type definition used by both the chart-builder UI and
|
|
34
|
+
* assistant-driven chart creation.
|
|
35
|
+
*/
|
|
36
|
+
export interface ChartTypeDefinition<TSettings = any> {
|
|
37
|
+
/** Unique identifier */
|
|
38
|
+
id: VgPlotChartType;
|
|
39
|
+
/** Short human-friendly name used in chart-type grids and prompts */
|
|
40
|
+
label?: string;
|
|
41
|
+
/** Short description of what this builder creates */
|
|
42
|
+
description: string;
|
|
43
|
+
/** Field selectors the user must fill in */
|
|
44
|
+
fields: ChartBuilderField[];
|
|
45
|
+
/** Generate a Mosaic spec from table name and selected field values */
|
|
46
|
+
createSpec: (tableName: string, values: TSettings) => Spec;
|
|
47
|
+
/** Generate a chart title from selected field values */
|
|
48
|
+
buildTitle?: (fieldValues: Record<string, string>) => string;
|
|
49
|
+
/** Optional availability override for a given table schema */
|
|
50
|
+
isAvailable?: (columns: ChartBuilderColumn[]) => boolean;
|
|
51
|
+
/** Optional extra assistant-facing description */
|
|
52
|
+
aiDescription?: string;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=base-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-types.d.ts","sourceRoot":"","sources":["../../src/chart-types/base-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,WAAW,GACX,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,cAAc,GACd,SAAS,GACT,UAAU,GACV,aAAa,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,SAAS,GAAG,GAAG;IAClD,wBAAwB;IACxB,EAAE,EAAE,eAAe,CAAC;IACpB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,uEAAuE;IACvE,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3D,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;IAC7D,8DAA8D;IAC9D,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,OAAO,CAAC;IACzD,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-types.js","sourceRoot":"","sources":["../../src/chart-types/base-types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * Base types for chart configurations.\n * Separated to avoid circular dependencies.\n */\n\nimport type {Spec} from '@uwdata/mosaic-spec';\n\n/**\n * Supported chart type identifiers\n */\nexport type VgPlotChartType =\n | 'histogram'\n | 'count-plot'\n | 'ecdf'\n | 'line-chart'\n | 'bubble-chart'\n | 'heatmap'\n | 'box-plot'\n | 'custom-spec';\n\n/**\n * Describes a field selector in a chart builder UI\n */\nexport interface ChartBuilderField {\n /** Unique key for this field */\n key: string;\n /** Display label */\n label: string;\n /** Whether the field is required */\n required?: boolean;\n /** Filter columns by DuckDB type (e.g. 'INTEGER', 'VARCHAR', 'DOUBLE') */\n types?: string[];\n /** Optional helper text for AI or custom UIs */\n description?: string;\n}\n\n/**\n * Column info passed to chart builder UI\n */\nexport interface ChartBuilderColumn {\n name: string;\n type: string;\n}\n\n/**\n * Shared chart-type definition used by both the chart-builder UI and\n * assistant-driven chart creation.\n */\nexport interface ChartTypeDefinition<TSettings = any> {\n /** Unique identifier */\n id: VgPlotChartType;\n /** Short human-friendly name used in chart-type grids and prompts */\n label?: string;\n /** Short description of what this builder creates */\n description: string;\n /** Field selectors the user must fill in */\n fields: ChartBuilderField[];\n /** Generate a Mosaic spec from table name and selected field values */\n createSpec: (tableName: string, values: TSettings) => Spec;\n /** Generate a chart title from selected field values */\n buildTitle?: (fieldValues: Record<string, string>) => string;\n /** Optional availability override for a given table schema */\n isAvailable?: (columns: ChartBuilderColumn[]) => boolean;\n /** Optional extra assistant-facing description */\n aiDescription?: string;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/chart-types/box-plot/definition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAOnD,eAAO,MAAM,gBAAgB,EAAE,mBAAmB,CAAC,oBAAoB,CAyCtE,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NUMERIC_COLUMN_TYPES } from '../../chart-builders/constants';
|
|
2
|
+
import { titleFromDescription } from '../../chart-builders/chartTypeUtils';
|
|
3
|
+
const FG_COLOR = 'var(--color-chart-1)';
|
|
4
|
+
const DESCRIPTION = 'Create a box plot';
|
|
5
|
+
export const boxPlotChartType = {
|
|
6
|
+
id: 'box-plot',
|
|
7
|
+
label: 'Box Plot',
|
|
8
|
+
description: DESCRIPTION,
|
|
9
|
+
aiDescription: 'Use for comparing the distribution of a numeric measure across categories.',
|
|
10
|
+
fields: [
|
|
11
|
+
{
|
|
12
|
+
key: 'x',
|
|
13
|
+
label: 'X Field (categorical)',
|
|
14
|
+
required: true,
|
|
15
|
+
description: 'Grouping field that defines the categories.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
key: 'y',
|
|
19
|
+
label: 'Y Field (numeric)',
|
|
20
|
+
required: true,
|
|
21
|
+
types: [...NUMERIC_COLUMN_TYPES],
|
|
22
|
+
description: 'Numeric measure summarized within each category.',
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
buildTitle: titleFromDescription(DESCRIPTION),
|
|
26
|
+
createSpec: (tableName, { x, y }) => ({
|
|
27
|
+
plot: [
|
|
28
|
+
{
|
|
29
|
+
mark: 'boxY',
|
|
30
|
+
data: { from: tableName, filterBy: '$brush' },
|
|
31
|
+
x,
|
|
32
|
+
y,
|
|
33
|
+
fill: FG_COLOR,
|
|
34
|
+
},
|
|
35
|
+
{ select: 'intervalX', as: '$brush' },
|
|
36
|
+
],
|
|
37
|
+
xLabel: x,
|
|
38
|
+
yLabel: y,
|
|
39
|
+
height: 250,
|
|
40
|
+
width: 380,
|
|
41
|
+
margins: { left: 50, right: 20, top: 20, bottom: 50 },
|
|
42
|
+
params: { brush: { select: 'crossfilter' } },
|
|
43
|
+
}),
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/chart-types/box-plot/definition.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AAEzE,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AACxC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAA8C;IACzE,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,WAAW;IACxB,aAAa,EACX,4EAA4E;IAC9E,MAAM,EAAE;QACN;YACE,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,uBAAuB;YAC9B,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,6CAA6C;SAC3D;QACD;YACE,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,mBAAmB;YAC1B,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,GAAG,oBAAoB,CAAC;YAChC,WAAW,EAAE,kDAAkD;SAChE;KACF;IACD,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC;IAC7C,UAAU,EAAE,CAAC,SAAS,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAQ,EAAE,CACtC,CAAC;QACC,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAC;gBAC3C,CAAC;gBACD,CAAC;gBACD,IAAI,EAAE,QAAQ;aACf;YACD,EAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAC;SACpC;QACD,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAC;QACnD,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,aAAa,EAAC,EAAC;KACzC,CAAS;CACb,CAAC","sourcesContent":["import type {Spec} from '@uwdata/mosaic-spec';\nimport type {ChartTypeDefinition} from '../base-types';\nimport type {BoxPlotChartSettings} from './schema';\nimport {NUMERIC_COLUMN_TYPES} from '../../chart-builders/constants';\nimport {titleFromDescription} from '../../chart-builders/chartTypeUtils';\n\nconst FG_COLOR = 'var(--color-chart-1)';\nconst DESCRIPTION = 'Create a box plot';\n\nexport const boxPlotChartType: ChartTypeDefinition<BoxPlotChartSettings> = {\n id: 'box-plot',\n label: 'Box Plot',\n description: DESCRIPTION,\n aiDescription:\n 'Use for comparing the distribution of a numeric measure across categories.',\n fields: [\n {\n key: 'x',\n label: 'X Field (categorical)',\n required: true,\n description: 'Grouping field that defines the categories.',\n },\n {\n key: 'y',\n label: 'Y Field (numeric)',\n required: true,\n types: [...NUMERIC_COLUMN_TYPES],\n description: 'Numeric measure summarized within each category.',\n },\n ],\n buildTitle: titleFromDescription(DESCRIPTION),\n createSpec: (tableName, {x, y}): Spec =>\n ({\n plot: [\n {\n mark: 'boxY',\n data: {from: tableName, filterBy: '$brush'},\n x,\n y,\n fill: FG_COLOR,\n },\n {select: 'intervalX', as: '$brush'},\n ],\n xLabel: x,\n yLabel: y,\n height: 250,\n width: 380,\n margins: {left: 50, right: 20, top: 20, bottom: 50},\n params: {brush: {select: 'crossfilter'}},\n }) as Spec,\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart-types/box-plot/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart-types/box-plot/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC","sourcesContent":["export * from './schema';\nexport * from './definition';\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const BoxPlotChartSettings: z.ZodObject<{
|
|
3
|
+
x: z.ZodOptional<z.ZodString>;
|
|
4
|
+
y: z.ZodOptional<z.ZodString>;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export type BoxPlotChartSettings = z.infer<typeof BoxPlotChartSettings>;
|
|
7
|
+
export declare const BoxPlotChartConfig: z.ZodObject<{
|
|
8
|
+
chartType: z.ZodLiteral<"box-plot">;
|
|
9
|
+
settings: z.ZodObject<{
|
|
10
|
+
x: z.ZodOptional<z.ZodString>;
|
|
11
|
+
y: z.ZodOptional<z.ZodString>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
vgplot: z.ZodUnknown;
|
|
14
|
+
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
export type BoxPlotChartConfig = z.infer<typeof BoxPlotChartConfig>;
|
|
17
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/chart-types/box-plot/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,kBAAkB;;;;;;;;iBAK7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const BoxPlotChartSettings = z.object({
|
|
3
|
+
x: z.string().optional(),
|
|
4
|
+
y: z.string().optional(),
|
|
5
|
+
});
|
|
6
|
+
export const BoxPlotChartConfig = z.object({
|
|
7
|
+
chartType: z.literal('box-plot'),
|
|
8
|
+
settings: BoxPlotChartSettings,
|
|
9
|
+
vgplot: z.unknown(),
|
|
10
|
+
settingsOpen: z.boolean().optional(),
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/chart-types/box-plot/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAChC,QAAQ,EAAE,oBAAoB;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC","sourcesContent":["import {z} from 'zod';\n\nexport const BoxPlotChartSettings = z.object({\n x: z.string().optional(),\n y: z.string().optional(),\n});\n\nexport type BoxPlotChartSettings = z.infer<typeof BoxPlotChartSettings>;\n\nexport const BoxPlotChartConfig = z.object({\n chartType: z.literal('box-plot'),\n settings: BoxPlotChartSettings,\n vgplot: z.unknown(),\n settingsOpen: z.boolean().optional(),\n});\n\nexport type BoxPlotChartConfig = z.infer<typeof BoxPlotChartConfig>;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/chart-types/bubble-chart/definition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,UAAU,CAAC;AAOlD,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,CAAC,mBAAmB,CA2CzE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { NUMERIC_COLUMN_TYPES } from '../../chart-builders/constants';
|
|
2
|
+
import { titleFromDescription } from '../../chart-builders/chartTypeUtils';
|
|
3
|
+
const FG_COLOR = 'var(--color-chart-1)';
|
|
4
|
+
const DESCRIPTION = 'Create a bubble chart';
|
|
5
|
+
export const bubbleChartChartType = {
|
|
6
|
+
id: 'bubble-chart',
|
|
7
|
+
label: 'Bubble Chart',
|
|
8
|
+
description: DESCRIPTION,
|
|
9
|
+
aiDescription: 'Use for a simple scatterplot of two numeric columns.',
|
|
10
|
+
fields: [
|
|
11
|
+
{
|
|
12
|
+
key: 'x',
|
|
13
|
+
label: 'X Field',
|
|
14
|
+
required: true,
|
|
15
|
+
types: [...NUMERIC_COLUMN_TYPES],
|
|
16
|
+
description: 'Numeric column used on the x-axis.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
key: 'y',
|
|
20
|
+
label: 'Y Field',
|
|
21
|
+
required: true,
|
|
22
|
+
types: [...NUMERIC_COLUMN_TYPES],
|
|
23
|
+
description: 'Numeric column used on the y-axis.',
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
buildTitle: titleFromDescription(DESCRIPTION),
|
|
27
|
+
createSpec: (tableName, { x, y }) => ({
|
|
28
|
+
plot: [
|
|
29
|
+
{
|
|
30
|
+
mark: 'dot',
|
|
31
|
+
data: { from: tableName, filterBy: '$brush' },
|
|
32
|
+
x,
|
|
33
|
+
y,
|
|
34
|
+
fill: FG_COLOR,
|
|
35
|
+
fillOpacity: 0.5,
|
|
36
|
+
r: 3,
|
|
37
|
+
},
|
|
38
|
+
{ select: 'intervalXY', as: '$brush' },
|
|
39
|
+
],
|
|
40
|
+
xLabel: x,
|
|
41
|
+
yLabel: y,
|
|
42
|
+
height: 250,
|
|
43
|
+
width: 380,
|
|
44
|
+
margins: { left: 50, right: 20, top: 20, bottom: 50 },
|
|
45
|
+
params: { brush: { select: 'crossfilter' } },
|
|
46
|
+
}),
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/chart-types/bubble-chart/definition.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AAEzE,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AACxC,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAE5C,MAAM,CAAC,MAAM,oBAAoB,GAA6C;IAC5E,EAAE,EAAE,cAAc;IAClB,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,WAAW;IACxB,aAAa,EAAE,sDAAsD;IACrE,MAAM,EAAE;QACN;YACE,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,GAAG,oBAAoB,CAAC;YAChC,WAAW,EAAE,oCAAoC;SAClD;QACD;YACE,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,GAAG,oBAAoB,CAAC;YAChC,WAAW,EAAE,oCAAoC;SAClD;KACF;IACD,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC;IAC7C,UAAU,EAAE,CAAC,SAAS,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,EAAQ,EAAE,CACtC,CAAC;QACC,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAC;gBAC3C,CAAC;gBACD,CAAC;gBACD,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,GAAG;gBAChB,CAAC,EAAE,CAAC;aACL;YACD,EAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAC;SACrC;QACD,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAC;QACnD,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,aAAa,EAAC,EAAC;KACzC,CAAS;CACb,CAAC","sourcesContent":["import type {Spec} from '@uwdata/mosaic-spec';\nimport type {ChartTypeDefinition} from '../base-types';\nimport type {BubbleChartSettings} from './schema';\nimport {NUMERIC_COLUMN_TYPES} from '../../chart-builders/constants';\nimport {titleFromDescription} from '../../chart-builders/chartTypeUtils';\n\nconst FG_COLOR = 'var(--color-chart-1)';\nconst DESCRIPTION = 'Create a bubble chart';\n\nexport const bubbleChartChartType: ChartTypeDefinition<BubbleChartSettings> = {\n id: 'bubble-chart',\n label: 'Bubble Chart',\n description: DESCRIPTION,\n aiDescription: 'Use for a simple scatterplot of two numeric columns.',\n fields: [\n {\n key: 'x',\n label: 'X Field',\n required: true,\n types: [...NUMERIC_COLUMN_TYPES],\n description: 'Numeric column used on the x-axis.',\n },\n {\n key: 'y',\n label: 'Y Field',\n required: true,\n types: [...NUMERIC_COLUMN_TYPES],\n description: 'Numeric column used on the y-axis.',\n },\n ],\n buildTitle: titleFromDescription(DESCRIPTION),\n createSpec: (tableName, {x, y}): Spec =>\n ({\n plot: [\n {\n mark: 'dot',\n data: {from: tableName, filterBy: '$brush'},\n x,\n y,\n fill: FG_COLOR,\n fillOpacity: 0.5,\n r: 3,\n },\n {select: 'intervalXY', as: '$brush'},\n ],\n xLabel: x,\n yLabel: y,\n height: 250,\n width: 380,\n margins: {left: 50, right: 20, top: 20, bottom: 50},\n params: {brush: {select: 'crossfilter'}},\n }) as Spec,\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart-types/bubble-chart/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart-types/bubble-chart/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC","sourcesContent":["export * from './schema';\nexport * from './definition';\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const BubbleChartSettings: z.ZodObject<{
|
|
3
|
+
x: z.ZodOptional<z.ZodString>;
|
|
4
|
+
y: z.ZodOptional<z.ZodString>;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export type BubbleChartSettings = z.infer<typeof BubbleChartSettings>;
|
|
7
|
+
export declare const BubbleChartConfig: z.ZodObject<{
|
|
8
|
+
chartType: z.ZodLiteral<"bubble-chart">;
|
|
9
|
+
settings: z.ZodObject<{
|
|
10
|
+
x: z.ZodOptional<z.ZodString>;
|
|
11
|
+
y: z.ZodOptional<z.ZodString>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
vgplot: z.ZodUnknown;
|
|
14
|
+
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
export type BubbleChartConfig = z.infer<typeof BubbleChartConfig>;
|
|
17
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/chart-types/bubble-chart/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,eAAO,MAAM,iBAAiB;;;;;;;;iBAK5B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const BubbleChartSettings = z.object({
|
|
3
|
+
x: z.string().optional(),
|
|
4
|
+
y: z.string().optional(),
|
|
5
|
+
});
|
|
6
|
+
export const BubbleChartConfig = z.object({
|
|
7
|
+
chartType: z.literal('bubble-chart'),
|
|
8
|
+
settings: BubbleChartSettings,
|
|
9
|
+
vgplot: z.unknown(),
|
|
10
|
+
settingsOpen: z.boolean().optional(),
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/chart-types/bubble-chart/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACpC,QAAQ,EAAE,mBAAmB;IAC7B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC","sourcesContent":["import {z} from 'zod';\n\nexport const BubbleChartSettings = z.object({\n x: z.string().optional(),\n y: z.string().optional(),\n});\n\nexport type BubbleChartSettings = z.infer<typeof BubbleChartSettings>;\n\nexport const BubbleChartConfig = z.object({\n chartType: z.literal('bubble-chart'),\n settings: BubbleChartSettings,\n vgplot: z.unknown(),\n settingsOpen: z.boolean().optional(),\n});\n\nexport type BubbleChartConfig = z.infer<typeof BubbleChartConfig>;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/chart-types/count-plot/definition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,UAAU,CAAC;AAQrD,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,CAAC,sBAAsB,CA6C1E,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { QUANTITATIVE_COLUMN_TYPES } from '../../chart-builders/constants';
|
|
2
|
+
import { titleFromDescription } from '../../chart-builders/chartTypeUtils';
|
|
3
|
+
const BG_COLOR = 'var(--color-chart-overlay)';
|
|
4
|
+
const FG_COLOR = 'var(--color-chart-1)';
|
|
5
|
+
const DESCRIPTION = 'Create a count plot of a field';
|
|
6
|
+
export const countPlotChartType = {
|
|
7
|
+
id: 'count-plot',
|
|
8
|
+
label: 'Count Plot',
|
|
9
|
+
description: DESCRIPTION,
|
|
10
|
+
aiDescription: 'Use for a quick binned distribution of one numeric or temporal column.',
|
|
11
|
+
fields: [
|
|
12
|
+
{
|
|
13
|
+
key: 'field',
|
|
14
|
+
label: 'Field',
|
|
15
|
+
required: true,
|
|
16
|
+
types: [...QUANTITATIVE_COLUMN_TYPES],
|
|
17
|
+
description: 'Numeric or temporal column to bin along the x-axis.',
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
buildTitle: titleFromDescription(DESCRIPTION),
|
|
21
|
+
createSpec: (tableName, { field }) => ({
|
|
22
|
+
plot: [
|
|
23
|
+
{
|
|
24
|
+
mark: 'rectY',
|
|
25
|
+
data: { from: tableName },
|
|
26
|
+
x: { bin: field, maxbins: 25 },
|
|
27
|
+
y: { count: null },
|
|
28
|
+
fill: BG_COLOR,
|
|
29
|
+
inset: 0.5,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
mark: 'rectY',
|
|
33
|
+
data: { from: tableName, filterBy: '$brush' },
|
|
34
|
+
x: { bin: field, maxbins: 25 },
|
|
35
|
+
y: { count: null },
|
|
36
|
+
fill: FG_COLOR,
|
|
37
|
+
inset: 0.5,
|
|
38
|
+
},
|
|
39
|
+
{ select: 'intervalX', as: '$brush' },
|
|
40
|
+
],
|
|
41
|
+
xLabel: field,
|
|
42
|
+
yLabel: null,
|
|
43
|
+
yAxis: null,
|
|
44
|
+
height: 200,
|
|
45
|
+
width: 380,
|
|
46
|
+
margins: { left: 50, right: 20, top: 20, bottom: 50 },
|
|
47
|
+
params: { brush: { select: 'crossfilter' } },
|
|
48
|
+
}),
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=definition.js.map
|