@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,90 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Chart settings compound component for configuring chart types and their parameters.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* <ChartSettings.Root
|
|
8
|
+
* tableName={tableName}
|
|
9
|
+
* config={config}
|
|
10
|
+
* columns={columns}
|
|
11
|
+
* onChange={handleChange}
|
|
12
|
+
* >
|
|
13
|
+
* <ChartSettings.TypeSelector />
|
|
14
|
+
* <ChartSettings.Fields />
|
|
15
|
+
* </ChartSettings.Root>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
import { useCallback, useMemo } from 'react';
|
|
19
|
+
import { DynamicChartSettings } from './DynamicChartSettings';
|
|
20
|
+
import { ChartTypeSelector } from './ChartTypeSelector';
|
|
21
|
+
import { ChartSettingsProvider, useChartSettingsContext, } from './ChartSettingsContext';
|
|
22
|
+
import { generateMosaicChartSpec } from '../generateMosaicChartSpec';
|
|
23
|
+
import { getChartTypeDefinition } from '../../chart-types/registry';
|
|
24
|
+
import { Button } from '@sqlrooms/ui';
|
|
25
|
+
import { XIcon } from 'lucide-react';
|
|
26
|
+
const ChartSettingsRoot = ({ tableName, config, columns, onChange, children, }) => {
|
|
27
|
+
return (_jsx(ChartSettingsProvider, { tableName: tableName, config: config, columns: columns, onChange: onChange, children: children }));
|
|
28
|
+
};
|
|
29
|
+
const ChartSettingsHeader = ({ children, onClose, }) => {
|
|
30
|
+
return (_jsxs("div", { className: "flex items-center justify-between border-b px-3 py-1.5 text-xs font-medium", children: [children, onClose && (_jsx(Button, { variant: "ghost", size: "icon", className: "h-5 w-5", onClick: onClose, children: _jsx(XIcon, { className: "h-3.5 w-3.5" }) }))] }));
|
|
31
|
+
};
|
|
32
|
+
const ChartSettingsContent = ({ children }) => {
|
|
33
|
+
return _jsx("div", { className: "flex flex-col gap-2 p-2", children: children });
|
|
34
|
+
};
|
|
35
|
+
const ChartSettingsTypeSelector = () => {
|
|
36
|
+
const { config, columns, onChange } = useChartSettingsContext();
|
|
37
|
+
const handleChartTypeChange = (newChartType) => {
|
|
38
|
+
// When changing chart type, clear settings and don't show chart
|
|
39
|
+
// until user selects all required fields
|
|
40
|
+
onChange({
|
|
41
|
+
chartType: newChartType,
|
|
42
|
+
settings: {},
|
|
43
|
+
vgplot: null,
|
|
44
|
+
settingsOpen: config.settingsOpen,
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
return (_jsx(ChartTypeSelector, { value: config.chartType, columns: columns, onChange: handleChartTypeChange }));
|
|
48
|
+
};
|
|
49
|
+
const ChartSettingsFields = () => {
|
|
50
|
+
const { tableName, config, columns, onChange } = useChartSettingsContext();
|
|
51
|
+
const chartTypeDef = getChartTypeDefinition(config.chartType);
|
|
52
|
+
// Memoize columns mapping
|
|
53
|
+
const mappedColumns = useMemo(() => columns.map((col) => ({ name: col.name, type: col.type })), [columns]);
|
|
54
|
+
const handleSettingsChange = useCallback((newSettings) => {
|
|
55
|
+
if (!chartTypeDef)
|
|
56
|
+
return;
|
|
57
|
+
// Check if all required fields are filled
|
|
58
|
+
const allRequiredFieldsFilled = chartTypeDef.fields
|
|
59
|
+
.filter((field) => field.required !== false)
|
|
60
|
+
.every((field) => {
|
|
61
|
+
const value = newSettings[field.key];
|
|
62
|
+
return value !== undefined && value !== null && value !== '';
|
|
63
|
+
});
|
|
64
|
+
// Generate spec
|
|
65
|
+
const vgplot = allRequiredFieldsFilled
|
|
66
|
+
? generateMosaicChartSpec(tableName, config.chartType, newSettings)
|
|
67
|
+
: null;
|
|
68
|
+
onChange({
|
|
69
|
+
...config,
|
|
70
|
+
settings: newSettings,
|
|
71
|
+
vgplot,
|
|
72
|
+
});
|
|
73
|
+
}, [chartTypeDef, config, onChange, tableName]);
|
|
74
|
+
if (!chartTypeDef) {
|
|
75
|
+
console.error(`[ChartSettings] Unknown chart type: ${config.chartType}`);
|
|
76
|
+
return (_jsxs("div", { className: "text-muted-foreground flex h-full items-center justify-center p-4 text-sm", children: ["Unknown chart type: ", config.chartType] }));
|
|
77
|
+
}
|
|
78
|
+
if (columns.length === 0) {
|
|
79
|
+
return (_jsx("div", { className: "text-muted-foreground flex h-full items-center justify-center p-4 text-sm", children: "No columns available" }));
|
|
80
|
+
}
|
|
81
|
+
return (_jsx(DynamicChartSettings, { chartTypeDefinition: chartTypeDef, columns: mappedColumns, values: config.settings, onChange: handleSettingsChange }));
|
|
82
|
+
};
|
|
83
|
+
export const ChartSettings = {
|
|
84
|
+
Root: ChartSettingsRoot,
|
|
85
|
+
Header: ChartSettingsHeader,
|
|
86
|
+
Content: ChartSettingsContent,
|
|
87
|
+
TypeSelector: ChartSettingsTypeSelector,
|
|
88
|
+
Fields: ChartSettingsFields,
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=ChartSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartSettings.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartSettings.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Chart settings compound component for configuring chart types and their parameters.\n *\n * @example\n * ```tsx\n * <ChartSettings.Root\n * tableName={tableName}\n * config={config}\n * columns={columns}\n * onChange={handleChange}\n * >\n * <ChartSettings.TypeSelector />\n * <ChartSettings.Fields />\n * </ChartSettings.Root>\n * ```\n */\nimport {type FC, type PropsWithChildren, useCallback, useMemo} from 'react';\nimport {DynamicChartSettings} from './DynamicChartSettings';\nimport {ChartTypeSelector} from './ChartTypeSelector';\nimport {\n ChartSettingsProvider,\n useChartSettingsContext,\n} from './ChartSettingsContext';\nimport type {TableColumn} from '@sqlrooms/duckdb';\nimport {type VgPlotChartConfig, type VgPlotChartType} from '../../chart-types';\nimport {generateMosaicChartSpec} from '../generateMosaicChartSpec';\nimport {getChartTypeDefinition} from '../../chart-types/registry';\nimport {Button} from '@sqlrooms/ui';\nimport {XIcon} from 'lucide-react';\n\ninterface ChartSettingsRootProps {\n tableName?: string;\n config: VgPlotChartConfig;\n columns: TableColumn[];\n onChange: (config: VgPlotChartConfig) => void;\n}\n\nconst ChartSettingsRoot: FC<PropsWithChildren<ChartSettingsRootProps>> = ({\n tableName,\n config,\n columns,\n onChange,\n children,\n}) => {\n return (\n <ChartSettingsProvider\n tableName={tableName}\n config={config}\n columns={columns}\n onChange={onChange}\n >\n {children}\n </ChartSettingsProvider>\n );\n};\n\ntype ChartSettingsHeaderProps = PropsWithChildren<{\n onClose?: () => void;\n}>;\n\nconst ChartSettingsHeader: FC<ChartSettingsHeaderProps> = ({\n children,\n onClose,\n}) => {\n return (\n <div className=\"flex items-center justify-between border-b px-3 py-1.5 text-xs font-medium\">\n {children}\n {onClose && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-5 w-5\"\n onClick={onClose}\n >\n <XIcon className=\"h-3.5 w-3.5\" />\n </Button>\n )}\n </div>\n );\n};\n\nconst ChartSettingsContent: FC<PropsWithChildren> = ({children}) => {\n return <div className=\"flex flex-col gap-2 p-2\">{children}</div>;\n};\n\nconst ChartSettingsTypeSelector: FC = () => {\n const {config, columns, onChange} = useChartSettingsContext();\n\n const handleChartTypeChange = (newChartType: VgPlotChartType) => {\n // When changing chart type, clear settings and don't show chart\n // until user selects all required fields\n onChange({\n chartType: newChartType,\n settings: {},\n vgplot: null,\n settingsOpen: config.settingsOpen,\n });\n };\n\n return (\n <ChartTypeSelector\n value={config.chartType}\n columns={columns}\n onChange={handleChartTypeChange}\n />\n );\n};\n\nconst ChartSettingsFields: FC = () => {\n const {tableName, config, columns, onChange} = useChartSettingsContext();\n const chartTypeDef = getChartTypeDefinition(config.chartType);\n\n // Memoize columns mapping\n const mappedColumns = useMemo(\n () => columns.map((col) => ({name: col.name, type: col.type})),\n [columns],\n );\n\n const handleSettingsChange = useCallback(\n (newSettings: Record<string, unknown>) => {\n if (!chartTypeDef) return;\n\n // Check if all required fields are filled\n const allRequiredFieldsFilled = chartTypeDef.fields\n .filter((field) => field.required !== false)\n .every((field) => {\n const value = newSettings[field.key];\n return value !== undefined && value !== null && value !== '';\n });\n\n // Generate spec\n const vgplot = allRequiredFieldsFilled\n ? generateMosaicChartSpec(tableName, config.chartType, newSettings)\n : null;\n\n onChange({\n ...config,\n settings: newSettings,\n vgplot,\n });\n },\n [chartTypeDef, config, onChange, tableName],\n );\n\n if (!chartTypeDef) {\n console.error(`[ChartSettings] Unknown chart type: ${config.chartType}`);\n return (\n <div className=\"text-muted-foreground flex h-full items-center justify-center p-4 text-sm\">\n Unknown chart type: {config.chartType}\n </div>\n );\n }\n\n if (columns.length === 0) {\n return (\n <div className=\"text-muted-foreground flex h-full items-center justify-center p-4 text-sm\">\n No columns available\n </div>\n );\n }\n\n return (\n <DynamicChartSettings\n chartTypeDefinition={chartTypeDef}\n columns={mappedColumns}\n values={config.settings}\n onChange={handleSettingsChange}\n />\n );\n};\n\nexport const ChartSettings = {\n Root: ChartSettingsRoot,\n Header: ChartSettingsHeader,\n Content: ChartSettingsContent,\n TypeSelector: ChartSettingsTypeSelector,\n Fields: ChartSettingsFields,\n};\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { TableColumn } from '@sqlrooms/duckdb';
|
|
3
|
+
import type { VgPlotChartConfig } from '../../chart-types';
|
|
4
|
+
interface ChartSettingsContextValue {
|
|
5
|
+
tableName?: string;
|
|
6
|
+
config: VgPlotChartConfig;
|
|
7
|
+
columns: TableColumn[];
|
|
8
|
+
onChange: (config: VgPlotChartConfig) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function useChartSettingsContext(): ChartSettingsContextValue;
|
|
11
|
+
interface ChartSettingsProviderProps {
|
|
12
|
+
tableName?: string;
|
|
13
|
+
config: VgPlotChartConfig;
|
|
14
|
+
columns: TableColumn[];
|
|
15
|
+
onChange: (config: VgPlotChartConfig) => void;
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
}
|
|
18
|
+
export declare function ChartSettingsProvider({ tableName, config, columns, onChange, children, }: ChartSettingsProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=ChartSettingsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartSettingsContext.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartSettingsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,SAAS,EAAa,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEzD,UAAU,yBAAyB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C;AAMD,wBAAgB,uBAAuB,8BAQtC;AAED,UAAU,0BAA0B;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,GACT,EAAE,0BAA0B,2CAQ5B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext } from 'react';
|
|
3
|
+
const ChartSettingsContext = createContext(null);
|
|
4
|
+
export function useChartSettingsContext() {
|
|
5
|
+
const context = useContext(ChartSettingsContext);
|
|
6
|
+
if (!context) {
|
|
7
|
+
throw new Error('ChartSettings compound components must be used within ChartSettings.Root');
|
|
8
|
+
}
|
|
9
|
+
return context;
|
|
10
|
+
}
|
|
11
|
+
export function ChartSettingsProvider({ tableName, config, columns, onChange, children, }) {
|
|
12
|
+
return (_jsx(ChartSettingsContext.Provider, { value: { tableName, config, columns, onChange }, children: children }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ChartSettingsContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartSettingsContext.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartSettingsContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,aAAa,EAAkB,UAAU,EAAC,MAAM,OAAO,CAAC;AAWhE,MAAM,oBAAoB,GAAG,aAAa,CACxC,IAAI,CACL,CAAC;AAEF,MAAM,UAAU,uBAAuB;IACrC,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAUD,MAAM,UAAU,qBAAqB,CAAC,EACpC,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,GACmB;IAC3B,OAAO,CACL,KAAC,oBAAoB,CAAC,QAAQ,IAC5B,KAAK,EAAE,EAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAC,YAE5C,QAAQ,GACqB,CACjC,CAAC;AACJ,CAAC","sourcesContent":["import {createContext, type ReactNode, useContext} from 'react';\nimport type {TableColumn} from '@sqlrooms/duckdb';\nimport type {VgPlotChartConfig} from '../../chart-types';\n\ninterface ChartSettingsContextValue {\n tableName?: string;\n config: VgPlotChartConfig;\n columns: TableColumn[];\n onChange: (config: VgPlotChartConfig) => void;\n}\n\nconst ChartSettingsContext = createContext<ChartSettingsContextValue | null>(\n null,\n);\n\nexport function useChartSettingsContext() {\n const context = useContext(ChartSettingsContext);\n if (!context) {\n throw new Error(\n 'ChartSettings compound components must be used within ChartSettings.Root',\n );\n }\n return context;\n}\n\ninterface ChartSettingsProviderProps {\n tableName?: string;\n config: VgPlotChartConfig;\n columns: TableColumn[];\n onChange: (config: VgPlotChartConfig) => void;\n children: ReactNode;\n}\n\nexport function ChartSettingsProvider({\n tableName,\n config,\n columns,\n onChange,\n children,\n}: ChartSettingsProviderProps) {\n return (\n <ChartSettingsContext.Provider\n value={{tableName, config, columns, onChange}}\n >\n {children}\n </ChartSettingsContext.Provider>\n );\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { VgPlotChartConfig } from '../../chart-types';
|
|
3
|
+
interface ChartSettingsPanelProps {
|
|
4
|
+
tableName?: string;
|
|
5
|
+
config: VgPlotChartConfig;
|
|
6
|
+
onChange: (settings: VgPlotChartConfig) => void;
|
|
7
|
+
onClose?: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const ChartSettingsPanel: FC<ChartSettingsPanelProps>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=ChartSettingsPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartSettingsPanel.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartSettingsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,OAAO,CAAC;AAEzB,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAGpD,UAAU,uBAAuB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAwB1D,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ChartSettings } from './ChartSettings';
|
|
3
|
+
import { useTableColumns } from './useTableColumns';
|
|
4
|
+
export const ChartSettingsPanel = ({ tableName, config, onChange, onClose, }) => {
|
|
5
|
+
const columns = useTableColumns(tableName);
|
|
6
|
+
return (_jsxs(ChartSettings.Root, { tableName: tableName, config: config, columns: columns, onChange: onChange, children: [_jsx(ChartSettings.Header, { onClose: onClose, children: "Chart settings" }), _jsxs(ChartSettings.Content, { children: [_jsx(ChartSettings.TypeSelector, {}), _jsx(ChartSettings.Fields, {})] })] }));
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=ChartSettingsPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartSettingsPanel.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartSettingsPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AASlD,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAC9D,SAAS,EACT,MAAM,EACN,QAAQ,EACR,OAAO,GACR,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAE3C,OAAO,CACL,MAAC,aAAa,CAAC,IAAI,IACjB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,aAElB,KAAC,aAAa,CAAC,MAAM,IAAC,OAAO,EAAE,OAAO,+BAEf,EACvB,MAAC,aAAa,CAAC,OAAO,eACpB,KAAC,aAAa,CAAC,YAAY,KAAG,EAC9B,KAAC,aAAa,CAAC,MAAM,KAAG,IACF,IACL,CACtB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {FC} from 'react';\nimport {ChartSettings} from './ChartSettings';\nimport {VgPlotChartConfig} from '../../chart-types';\nimport {useTableColumns} from './useTableColumns';\n\ninterface ChartSettingsPanelProps {\n tableName?: string;\n config: VgPlotChartConfig;\n onChange: (settings: VgPlotChartConfig) => void;\n onClose?: () => void;\n}\n\nexport const ChartSettingsPanel: FC<ChartSettingsPanelProps> = ({\n tableName,\n config,\n onChange,\n onClose,\n}) => {\n const columns = useTableColumns(tableName);\n\n return (\n <ChartSettings.Root\n tableName={tableName}\n config={config}\n columns={columns}\n onChange={onChange}\n >\n <ChartSettings.Header onClose={onClose}>\n Chart settings\n </ChartSettings.Header>\n <ChartSettings.Content>\n <ChartSettings.TypeSelector />\n <ChartSettings.Fields />\n </ChartSettings.Content>\n </ChartSettings.Root>\n );\n};\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import type { TableColumn } from '@sqlrooms/duckdb';
|
|
3
|
+
import { VgPlotChartType } from '../../chart-types';
|
|
4
|
+
interface ChartTypeSelectorProps {
|
|
5
|
+
value: VgPlotChartType;
|
|
6
|
+
columns: TableColumn[];
|
|
7
|
+
onChange: (chartType: VgPlotChartType) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const ChartTypeSelector: FC<ChartTypeSelectorProps>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=ChartTypeSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartTypeSelector.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartTypeSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAgB,MAAM,OAAO,CAAC;AAS7C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAC,eAAe,EAA0B,MAAM,mBAAmB,CAAC;AAG3E,UAAU,sBAAsB;IAC9B,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAuDxD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useMemo } from 'react';
|
|
3
|
+
import { Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@sqlrooms/ui';
|
|
4
|
+
import { isChartTypeAvailable } from '../../chart-builders/chartTypeUtils';
|
|
5
|
+
import { createChartBuilderTemplates } from '../../chart-builders/builders';
|
|
6
|
+
import { createDefaultChartTypes } from '../../chart-types';
|
|
7
|
+
import { useStoreWithMosaicDashboard } from '../MosaicDashboardSlice';
|
|
8
|
+
export const ChartTypeSelector = memo(({ value, columns, onChange }) => {
|
|
9
|
+
const chartTypesFromStore = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.chartTypes);
|
|
10
|
+
const chartTypes = useMemo(() => chartTypesFromStore || createDefaultChartTypes(), [chartTypesFromStore]);
|
|
11
|
+
const templates = useMemo(() => createChartBuilderTemplates(chartTypes), [chartTypes]);
|
|
12
|
+
const availableTemplates = useMemo(() => templates.filter((template) => isChartTypeAvailable(template, columns)), [columns, templates]);
|
|
13
|
+
const selectedTemplate = useMemo(() => availableTemplates.find((template) => template.id === value), [availableTemplates, value]);
|
|
14
|
+
return (_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { className: "text-xs", children: "Chart Type" }), _jsxs(Select, { value: value, onValueChange: onChange, children: [_jsx(SelectTrigger, { className: "h-8 text-xs", children: selectedTemplate ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(selectedTemplate.icon, { className: "h-3.5 w-3.5" }), _jsx("span", { children: selectedTemplate.label })] })) : (_jsx(SelectValue, { placeholder: "Select chart type" })) }), _jsx(SelectContent, { className: "text-xs", children: availableTemplates.map((template) => (_jsx(SelectItem, { value: template.id, children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(template.icon, { className: "h-3.5 w-3.5" }), _jsx("span", { children: template.label })] }) }, template.id))) })] })] }));
|
|
15
|
+
});
|
|
16
|
+
ChartTypeSelector.displayName = 'ChartTypeSelector';
|
|
17
|
+
//# sourceMappingURL=ChartTypeSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartTypeSelector.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/ChartTypeSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,IAAI,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAC7C,OAAO,EACL,KAAK,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAkB,uBAAuB,EAAC,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAC,2BAA2B,EAAC,MAAM,yBAAyB,CAAC;AAQpE,MAAM,CAAC,MAAM,iBAAiB,GAA+B,IAAI,CAC/D,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAC,EAAE,EAAE;IAC7B,MAAM,mBAAmB,GAAG,2BAA2B,CACrD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,UAAU,CAC5C,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,mBAAmB,IAAI,uBAAuB,EAAE,EACtD,CAAC,mBAAmB,CAAC,CACtB,CAAC;IAEF,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,2BAA2B,CAAC,UAAU,CAAC,EAC7C,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CACH,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EACzE,CAAC,OAAO,EAAE,SAAS,CAAC,CACrB,CAAC;IAEF,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,EAClE,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAC5B,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,2BAAmB,EAC7C,MAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,aAC3C,KAAC,aAAa,IAAC,SAAS,EAAC,aAAa,YACnC,gBAAgB,CAAC,CAAC,CAAC,CAClB,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,gBAAgB,CAAC,IAAI,IAAC,SAAS,EAAC,aAAa,GAAG,EACjD,yBAAO,gBAAgB,CAAC,KAAK,GAAQ,IACjC,CACP,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,WAAW,EAAC,mBAAmB,GAAG,CAChD,GACa,EAChB,KAAC,aAAa,IAAC,SAAS,EAAC,SAAS,YAC/B,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACpC,KAAC,UAAU,IAAmB,KAAK,EAAE,QAAQ,CAAC,EAAE,YAC9C,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,QAAQ,CAAC,IAAI,IAAC,SAAS,EAAC,aAAa,GAAG,EACzC,yBAAO,QAAQ,CAAC,KAAK,GAAQ,IACzB,IAJS,QAAQ,CAAC,EAAE,CAKf,CACd,CAAC,GACY,IACT,IACL,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,iBAAiB,CAAC,WAAW,GAAG,mBAAmB,CAAC","sourcesContent":["import {type FC, memo, useMemo} from 'react';\nimport {\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@sqlrooms/ui';\nimport type {TableColumn} from '@sqlrooms/duckdb';\nimport {isChartTypeAvailable} from '../../chart-builders/chartTypeUtils';\nimport {createChartBuilderTemplates} from '../../chart-builders/builders';\nimport {VgPlotChartType, createDefaultChartTypes} from '../../chart-types';\nimport {useStoreWithMosaicDashboard} from '../MosaicDashboardSlice';\n\ninterface ChartTypeSelectorProps {\n value: VgPlotChartType;\n columns: TableColumn[];\n onChange: (chartType: VgPlotChartType) => void;\n}\n\nexport const ChartTypeSelector: FC<ChartTypeSelectorProps> = memo(\n ({value, columns, onChange}) => {\n const chartTypesFromStore = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.chartTypes,\n );\n\n const chartTypes = useMemo(\n () => chartTypesFromStore || createDefaultChartTypes(),\n [chartTypesFromStore],\n );\n\n const templates = useMemo(\n () => createChartBuilderTemplates(chartTypes),\n [chartTypes],\n );\n\n const availableTemplates = useMemo(\n () =>\n templates.filter((template) => isChartTypeAvailable(template, columns)),\n [columns, templates],\n );\n\n const selectedTemplate = useMemo(\n () => availableTemplates.find((template) => template.id === value),\n [availableTemplates, value],\n );\n\n return (\n <div className=\"space-y-2\">\n <Label className=\"text-xs\">Chart Type</Label>\n <Select value={value} onValueChange={onChange}>\n <SelectTrigger className=\"h-8 text-xs\">\n {selectedTemplate ? (\n <div className=\"flex items-center gap-2\">\n <selectedTemplate.icon className=\"h-3.5 w-3.5\" />\n <span>{selectedTemplate.label}</span>\n </div>\n ) : (\n <SelectValue placeholder=\"Select chart type\" />\n )}\n </SelectTrigger>\n <SelectContent className=\"text-xs\">\n {availableTemplates.map((template) => (\n <SelectItem key={template.id} value={template.id}>\n <div className=\"flex items-center gap-2\">\n <template.icon className=\"h-3.5 w-3.5\" />\n <span>{template.label}</span>\n </div>\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n );\n },\n);\n\nChartTypeSelector.displayName = 'ChartTypeSelector';\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import type { ChartTypeDefinition, ChartBuilderColumn } from '../../chart-builders/types';
|
|
3
|
+
interface DynamicChartSettingsProps {
|
|
4
|
+
chartTypeDefinition: ChartTypeDefinition;
|
|
5
|
+
columns: ChartBuilderColumn[];
|
|
6
|
+
values: Record<string, unknown>;
|
|
7
|
+
onChange: (values: Record<string, unknown>) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const DynamicChartSettings: FC<DynamicChartSettingsProps>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=DynamicChartSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicChartSettings.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/DynamicChartSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAO,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AAEpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACrD;AAED,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CAgC9D,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { memo } from 'react';
|
|
3
|
+
import { useChartFieldForm } from '../../chart-builders/hooks/useChartFieldForm';
|
|
4
|
+
import { FieldSelectorInput } from '../../chart-builders/FieldSelectorInput';
|
|
5
|
+
export const DynamicChartSettings = memo(({ chartTypeDefinition, columns, values, onChange }) => {
|
|
6
|
+
const { fields, handleFieldChange } = useChartFieldForm({
|
|
7
|
+
fields: chartTypeDefinition.fields,
|
|
8
|
+
values,
|
|
9
|
+
onChange: (key, value) => {
|
|
10
|
+
onChange({ ...values, [key]: value });
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
if (fields.length === 0) {
|
|
14
|
+
return (_jsx("div", { className: "text-muted-foreground text-sm", children: "No settings available for this chart type" }));
|
|
15
|
+
}
|
|
16
|
+
return (_jsx("div", { className: "space-y-4", children: fields.map((field) => (_jsx(FieldSelectorInput, { field: field, columns: columns, value: values[field.key], onChange: (value) => handleFieldChange(field.key, value) }, field.key))) }));
|
|
17
|
+
});
|
|
18
|
+
DynamicChartSettings.displayName = 'DynamicChartSettings';
|
|
19
|
+
//# sourceMappingURL=DynamicChartSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicChartSettings.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/DynamicChartSettings.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,IAAI,EAAC,MAAM,OAAO,CAAC;AACpC,OAAO,EAAC,iBAAiB,EAAC,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAC,kBAAkB,EAAC,MAAM,yCAAyC,CAAC;AAa3E,MAAM,CAAC,MAAM,oBAAoB,GAAkC,IAAI,CACrE,CAAC,EAAC,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAC,EAAE,EAAE;IACnD,MAAM,EAAC,MAAM,EAAE,iBAAiB,EAAC,GAAG,iBAAiB,CAAC;QACpD,MAAM,EAAE,mBAAmB,CAAC,MAAM;QAClC,MAAM;QACN,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACvB,QAAQ,CAAC,EAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAC,CAAC,CAAC;QACtC,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CACL,cAAK,SAAS,EAAC,+BAA+B,0DAExC,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACvB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,KAAC,kBAAkB,IAEjB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAW,EAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAJnD,KAAK,CAAC,GAAG,CAKd,CACH,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,oBAAoB,CAAC,WAAW,GAAG,sBAAsB,CAAC","sourcesContent":["import {type FC, memo} from 'react';\nimport {useChartFieldForm} from '../../chart-builders/hooks/useChartFieldForm';\nimport {FieldSelectorInput} from '../../chart-builders/FieldSelectorInput';\nimport type {\n ChartTypeDefinition,\n ChartBuilderColumn,\n} from '../../chart-builders/types';\n\ninterface DynamicChartSettingsProps {\n chartTypeDefinition: ChartTypeDefinition;\n columns: ChartBuilderColumn[];\n values: Record<string, unknown>;\n onChange: (values: Record<string, unknown>) => void;\n}\n\nexport const DynamicChartSettings: FC<DynamicChartSettingsProps> = memo(\n ({chartTypeDefinition, columns, values, onChange}) => {\n const {fields, handleFieldChange} = useChartFieldForm({\n fields: chartTypeDefinition.fields,\n values,\n onChange: (key, value) => {\n onChange({...values, [key]: value});\n },\n });\n\n if (fields.length === 0) {\n return (\n <div className=\"text-muted-foreground text-sm\">\n No settings available for this chart type\n </div>\n );\n }\n\n return (\n <div className=\"space-y-4\">\n {fields.map((field) => (\n <FieldSelectorInput\n key={field.key}\n field={field}\n columns={columns}\n value={values[field.key] as string}\n onChange={(value) => handleFieldChange(field.key, value)}\n />\n ))}\n </div>\n );\n },\n);\n\nDynamicChartSettings.displayName = 'DynamicChartSettings';\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ChartSettingsPanel } from './ChartSettingsPanel';
|
|
2
|
+
export { ChartSettings } from './ChartSettings';
|
|
3
|
+
export { ChartTypeSelector } from './ChartTypeSelector';
|
|
4
|
+
export { DynamicChartSettings } from './DynamicChartSettings';
|
|
5
|
+
export { useChartSettingsContext } from './ChartSettingsContext';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { ChartSettingsPanel } from './ChartSettingsPanel';
|
|
2
|
+
export { ChartSettings } from './ChartSettings';
|
|
3
|
+
export { ChartTypeSelector } from './ChartTypeSelector';
|
|
4
|
+
export { DynamicChartSettings } from './DynamicChartSettings';
|
|
5
|
+
export { useChartSettingsContext } from './ChartSettingsContext';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC","sourcesContent":["export {ChartSettingsPanel} from './ChartSettingsPanel';\nexport {ChartSettings} from './ChartSettings';\nexport {ChartTypeSelector} from './ChartTypeSelector';\nexport {DynamicChartSettings} from './DynamicChartSettings';\nexport {useChartSettingsContext} from './ChartSettingsContext';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTableColumns.d.ts","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/useTableColumns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAEzC,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAQjE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import { useStoreWithMosaicDashboard } from '../MosaicDashboardSlice';
|
|
3
|
+
export function useTableColumns(tableName) {
|
|
4
|
+
const tables = useStoreWithMosaicDashboard((state) => state.db.tables);
|
|
5
|
+
return useMemo(() => {
|
|
6
|
+
if (!tableName)
|
|
7
|
+
return [];
|
|
8
|
+
const resolvedTable = tables.find((t) => t.table.table === tableName);
|
|
9
|
+
return resolvedTable?.columns || [];
|
|
10
|
+
}, [tableName, tables]);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=useTableColumns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTableColumns.js","sourceRoot":"","sources":["../../../src/dashboard/chart-settings/useTableColumns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAC,2BAA2B,EAAC,MAAM,yBAAyB,CAAC;AAGpE,MAAM,UAAU,eAAe,CAAC,SAAkB;IAChD,MAAM,MAAM,GAAG,2BAA2B,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAEvE,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QACtE,OAAO,aAAa,EAAE,OAAO,IAAI,EAAE,CAAC;IACtC,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1B,CAAC","sourcesContent":["import {useMemo} from 'react';\nimport {useStoreWithMosaicDashboard} from '../MosaicDashboardSlice';\nimport {TableColumn} from '@sqlrooms/db';\n\nexport function useTableColumns(tableName?: string): TableColumn[] {\n const tables = useStoreWithMosaicDashboard((state) => state.db.tables);\n\n return useMemo(() => {\n if (!tableName) return [];\n const resolvedTable = tables.find((t) => t.table.table === tableName);\n return resolvedTable?.columns || [];\n }, [tableName, tables]);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultPanelRenderers.d.ts","sourceRoot":"","sources":["../../src/dashboard/defaultPanelRenderers.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAIhC,wBAAgB,0CAA0C,CACxD,cAAc,GAAE,oBAAyB,GACxC,oBAAoB,CAQtB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE, MOSAIC_DASHBOARD_VGPLOT_PANEL_TYPE, } from './MosaicDashboardSlice';
|
|
2
|
+
import { mosaicDashboardProfilerPanelRenderer } from './MosaicDashboardProfilerPanelRenderer';
|
|
3
|
+
import { mosaicDashboardVgPlotPanelRenderer } from './MosaicDashboardVgPlotPanelRenderer';
|
|
4
|
+
export function createDefaultMosaicDashboardPanelRenderers(extraRenderers = {}) {
|
|
5
|
+
return {
|
|
6
|
+
[MOSAIC_DASHBOARD_VGPLOT_PANEL_TYPE]: mosaicDashboardVgPlotPanelRenderer,
|
|
7
|
+
[MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE]: mosaicDashboardProfilerPanelRenderer,
|
|
8
|
+
...extraRenderers,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=defaultPanelRenderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultPanelRenderers.js","sourceRoot":"","sources":["../../src/dashboard/defaultPanelRenderers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,kCAAkC,GAGnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,oCAAoC,EAAC,MAAM,wCAAwC,CAAC;AAC5F,OAAO,EAAC,kCAAkC,EAAC,MAAM,sCAAsC,CAAC;AAExF,MAAM,UAAU,0CAA0C,CACxD,iBAAuC,EAAE;IAEzC,OAAO;QACL,CAAC,kCAAkC,CAAC,EAClC,kCAAsD;QACxD,CAAC,oCAAoC,CAAC,EACpC,oCAAwD;QAC1D,GAAG,cAAc;KAClB,CAAC;AACJ,CAAC","sourcesContent":["import {\n MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE,\n MOSAIC_DASHBOARD_VGPLOT_PANEL_TYPE,\n type AnyPanelRenderer,\n type PanelRenderersRecord,\n} from './MosaicDashboardSlice';\nimport {mosaicDashboardProfilerPanelRenderer} from './MosaicDashboardProfilerPanelRenderer';\nimport {mosaicDashboardVgPlotPanelRenderer} from './MosaicDashboardVgPlotPanelRenderer';\n\nexport function createDefaultMosaicDashboardPanelRenderers(\n extraRenderers: PanelRenderersRecord = {},\n): PanelRenderersRecord {\n return {\n [MOSAIC_DASHBOARD_VGPLOT_PANEL_TYPE]:\n mosaicDashboardVgPlotPanelRenderer as AnyPanelRenderer,\n [MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE]:\n mosaicDashboardProfilerPanelRenderer as AnyPanelRenderer,\n ...extraRenderers,\n };\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Spec } from '@uwdata/mosaic-spec';
|
|
2
|
+
import { type VgPlotChartSettings, type VgPlotChartType } from '../chart-types';
|
|
3
|
+
/**
|
|
4
|
+
* Generates a Mosaic chart specification from chart settings.
|
|
5
|
+
*
|
|
6
|
+
* @param tableName - The source table name. Returns null if undefined.
|
|
7
|
+
* @param chartType - The type of chart to generate (histogram, line, etc.)
|
|
8
|
+
* @param settings - Chart-specific settings matching the chart type
|
|
9
|
+
* @returns A Mosaic Spec object or null if generation fails
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const spec = generateMosaicChartSpec('sales', 'histogram', { field: 'amount' });
|
|
13
|
+
*/
|
|
14
|
+
export declare function generateMosaicChartSpec(tableName: string | undefined, chartType: VgPlotChartType, settings: VgPlotChartSettings | Record<string, unknown>): Spec | null;
|
|
15
|
+
//# sourceMappingURL=generateMosaicChartSpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateMosaicChartSpec.d.ts","sourceRoot":"","sources":["../../src/dashboard/generateMosaicChartSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtD,IAAI,GAAG,IAAI,CAuBb"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { mosaicChartTypes, } from '../chart-types';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a Mosaic chart specification from chart settings.
|
|
4
|
+
*
|
|
5
|
+
* @param tableName - The source table name. Returns null if undefined.
|
|
6
|
+
* @param chartType - The type of chart to generate (histogram, line, etc.)
|
|
7
|
+
* @param settings - Chart-specific settings matching the chart type
|
|
8
|
+
* @returns A Mosaic Spec object or null if generation fails
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* const spec = generateMosaicChartSpec('sales', 'histogram', { field: 'amount' });
|
|
12
|
+
*/
|
|
13
|
+
export function generateMosaicChartSpec(tableName, chartType, settings) {
|
|
14
|
+
if (!tableName) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const chartTypeDef = Object.values(mosaicChartTypes).find(({ id }) => id === chartType);
|
|
18
|
+
if (!chartTypeDef) {
|
|
19
|
+
console.error(`[generateMosaicChartSpec] Unknown chart type: ${chartType}`);
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
return chartTypeDef.createSpec(tableName, settings);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
console.error(`[generateMosaicChartSpec] Failed to generate spec for chart type "${chartType}":`, error);
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=generateMosaicChartSpec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateMosaicChartSpec.js","sourceRoot":"","sources":["../../src/dashboard/generateMosaicChartSpec.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,GAGjB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAA6B,EAC7B,SAA0B,EAC1B,QAAuD;IAEvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACvD,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAC3B,CAAC;IAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,iDAAiD,SAAS,EAAE,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,qEAAqE,SAAS,IAAI,EAClF,KAAK,CACN,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import type {Spec} from '@uwdata/mosaic-spec';\nimport {\n mosaicChartTypes,\n type VgPlotChartSettings,\n type VgPlotChartType,\n} from '../chart-types';\n\n/**\n * Generates a Mosaic chart specification from chart settings.\n *\n * @param tableName - The source table name. Returns null if undefined.\n * @param chartType - The type of chart to generate (histogram, line, etc.)\n * @param settings - Chart-specific settings matching the chart type\n * @returns A Mosaic Spec object or null if generation fails\n *\n * @example\n * const spec = generateMosaicChartSpec('sales', 'histogram', { field: 'amount' });\n */\nexport function generateMosaicChartSpec(\n tableName: string | undefined,\n chartType: VgPlotChartType,\n settings: VgPlotChartSettings | Record<string, unknown>,\n): Spec | null {\n if (!tableName) {\n return null;\n }\n\n const chartTypeDef = Object.values(mosaicChartTypes).find(\n ({id}) => id === chartType,\n );\n\n if (!chartTypeDef) {\n console.error(`[generateMosaicChartSpec] Unknown chart type: ${chartType}`);\n return null;\n }\n\n try {\n return chartTypeDef.createSpec(tableName, settings);\n } catch (error) {\n console.error(\n `[generateMosaicChartSpec] Failed to generate spec for chart type \"${chartType}\":`,\n error,\n );\n return null;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicChartDisplay.d.ts","sourceRoot":"","sources":["../../src/editor/MosaicChartDisplay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgB,MAAM,OAAO,CAAC;AAIrC,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"MosaicChartDisplay.d.ts","sourceRoot":"","sources":["../../src/editor/MosaicChartDisplay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgB,MAAM,OAAO,CAAC;AAIrC,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAoBhE,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { cn } from '@sqlrooms/ui';
|
|
|
3
3
|
import React, { useMemo } from 'react';
|
|
4
4
|
import { VgPlotChart } from '../VgPlotChart';
|
|
5
5
|
import { useMosaicEditorContext } from './MosaicEditorContext';
|
|
6
|
+
const DEFAULT_CHART_HEIGHT = 200;
|
|
6
7
|
/**
|
|
7
8
|
* Chart display subcomponent for MosaicChart.Container.
|
|
8
9
|
* Renders the VgPlotChart with the current spec from editor context.
|
|
@@ -15,7 +16,11 @@ import { useMosaicEditorContext } from './MosaicEditorContext';
|
|
|
15
16
|
export const MosaicChartDisplay = React.memo(({ className }) => {
|
|
16
17
|
const { state, params } = useMosaicEditorContext();
|
|
17
18
|
const spec = useMemo(() => state.parsedSpec ?? state.lastValidSpec, [state.parsedSpec, state.lastValidSpec]);
|
|
18
|
-
|
|
19
|
+
const height = useMemo(() => {
|
|
20
|
+
const h = spec && typeof spec === 'object' ? spec.height : null;
|
|
21
|
+
return typeof h === 'number' && h > 0 ? h : DEFAULT_CHART_HEIGHT;
|
|
22
|
+
}, [spec]);
|
|
23
|
+
return (_jsx("div", { className: cn('relative', className), style: { height }, children: _jsx(VgPlotChart, { spec: spec, params: params }) }));
|
|
19
24
|
});
|
|
20
25
|
MosaicChartDisplay.displayName = 'MosaicChartDisplay';
|
|
21
26
|
//# sourceMappingURL=MosaicChartDisplay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicChartDisplay.js","sourceRoot":"","sources":["../../src/editor/MosaicChartDisplay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,cAAc,CAAC;AAChC,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAS7D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsC,KAAK,CAAC,IAAI,CAC7E,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE;IACd,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,sBAAsB,EAAE,CAAC;IAEjD,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,EAC7C,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CACxC,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"MosaicChartDisplay.js","sourceRoot":"","sources":["../../src/editor/MosaicChartDisplay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,cAAc,CAAC;AAChC,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AAS7D,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsC,KAAK,CAAC,IAAI,CAC7E,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE;IACd,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,sBAAsB,EAAE,CAAC;IAEjD,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,EAC7C,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CACxC,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,MAAM,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACnE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,EAAC,MAAM,EAAC,YACxD,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAI,GACvC,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC","sourcesContent":["import {cn} from '@sqlrooms/ui';\nimport React, {useMemo} from 'react';\nimport {VgPlotChart} from '../VgPlotChart';\nimport {useMosaicEditorContext} from './MosaicEditorContext';\n\nexport interface MosaicChartDisplayProps {\n /**\n * Custom class name for the chart container\n */\n className?: string;\n}\n\nconst DEFAULT_CHART_HEIGHT = 200;\n\n/**\n * Chart display subcomponent for MosaicChart.Container.\n * Renders the VgPlotChart with the current spec from editor context.\n *\n * Uses the last valid spec for rendering, so the chart keeps\n * displaying even during typing with invalid JSON.\n *\n * Must be used within a MosaicChart.Container component.\n */\nexport const MosaicChartDisplay: React.FC<MosaicChartDisplayProps> = React.memo(\n ({className}) => {\n const {state, params} = useMosaicEditorContext();\n\n const spec = useMemo(\n () => state.parsedSpec ?? state.lastValidSpec,\n [state.parsedSpec, state.lastValidSpec],\n );\n\n const height = useMemo(() => {\n const h = spec && typeof spec === 'object' ? (spec as any).height : null;\n return typeof h === 'number' && h > 0 ? h : DEFAULT_CHART_HEIGHT;\n }, [spec]);\n\n return (\n <div className={cn('relative', className)} style={{height}}>\n <VgPlotChart spec={spec} params={params} />\n </div>\n );\n },\n);\n\nMosaicChartDisplay.displayName = 'MosaicChartDisplay';\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,14 +7,21 @@ export { astToDOM, astToESM, parseSpec } from '@uwdata/mosaic-spec';
|
|
|
7
7
|
export type { Spec } from '@uwdata/mosaic-spec';
|
|
8
8
|
export { asc, column, desc, Query, sql } from '@uwdata/mosaic-sql';
|
|
9
9
|
export * as vg from '@uwdata/vgplot';
|
|
10
|
-
export {
|
|
10
|
+
export { MosaicDashboard, MosaicDashboardRoot, type MosaicDashboardProps, type MosaicDashboardRootProps, } from './dashboard/MosaicDashboard';
|
|
11
|
+
export { useMosaicDashboardContext } from './dashboard/MosaicDashboardContext';
|
|
12
|
+
export { DashboardPanelErrorBoundary } from './dashboard/DashboardPanelErrorBoundary';
|
|
13
|
+
export { createDefaultMosaicDashboardPanelRenderers } from './dashboard/defaultPanelRenderers';
|
|
14
|
+
export { createMosaicDashboardProfilerPanelConfig, createMosaicDashboardVgPlotPanelConfig, createDefaultMosaicDashboardConfig, createMosaicDashboardSlice, getMosaicDashboardDockId, getMosaicDashboardGridId, getMosaicDashboardPanelId, getMosaicDashboardSelectionName, isVgPlotPanelConfig, MOSAIC_DASHBOARD_PANEL, MOSAIC_DASHBOARD_PROFILER_PANEL_TYPE, MOSAIC_DASHBOARD_VGPLOT_PANEL_TYPE, MosaicDashboardEntry, MosaicDashboardLayoutType, MosaicDashboardPanelConfig, MosaicDashboardPanelSource, MosaicDashboardSliceConfig, resolveMosaicDashboardPanelSource, useStoreWithMosaicDashboard, } from './dashboard/MosaicDashboardSlice';
|
|
15
|
+
export type { MosaicDashboardAddPanelAction, MosaicDashboardAddPanelActionContext, CreateMosaicDashboardSliceProps, MosaicDashboardEntry as MosaicDashboardEntryType, MosaicDashboardPanelConfig as MosaicDashboardPanelConfigType, MosaicDashboardPanelRenderer, MosaicDashboardPanelRendererProps, MosaicDashboardPanelSource as MosaicDashboardPanelSourceType, MosaicDashboardSliceConfig as MosaicDashboardSliceConfigType, MosaicDashboardSliceState, MosaicDashboardStoreState, VgPlotPanelConfig, } from './dashboard/MosaicDashboardSlice';
|
|
16
|
+
export { createMosaicColorLegendPlot, MosaicColorLegend, type MosaicColorLegendProps, } from './MosaicColorLegend';
|
|
17
|
+
export { createDefaultMosaicConfig, createMosaicSlice, MosaicSliceConfig, type CreateMosaicSliceProps, type MosaicClientOptions, type MosaicPreAggregateOptions, type MosaicSliceState, type TrackedClient, } from './MosaicSlice';
|
|
11
18
|
export { MosaicProfiler, type MosaicProfilerCompoundHeaderProps, type MosaicProfilerCompoundRowsProps, type MosaicProfilerCompoundStatusBarProps, type MosaicProfilerCompoundTableProps, type MosaicProfilerProps, type MosaicProfilerRootProps, } from './profiler/MosaicProfiler';
|
|
12
19
|
export { MosaicProfilerHeader, type MosaicProfilerHeaderProps, } from './profiler/MosaicProfilerHeader';
|
|
13
20
|
export { MosaicProfilerRows, type MosaicProfilerRowsProps, } from './profiler/MosaicProfilerRows';
|
|
14
21
|
export { MosaicProfilerStatusBar, type MosaicProfilerStatusBarProps, } from './profiler/MosaicProfilerStatusBar';
|
|
15
22
|
export { useMosaicProfiler } from './profiler/useMosaicProfiler';
|
|
23
|
+
export { ResponsivePlot, type PlotSize, type ResponsivePlotProps, } from './ResponsivePlot';
|
|
16
24
|
export { useMosaicClient, type UseMosaicClientOptions } from './useMosaicClient';
|
|
17
|
-
export { createMosaicColorLegendPlot, MosaicColorLegend, type MosaicColorLegendProps, } from './MosaicColorLegend';
|
|
18
25
|
export { VgPlotChart } from './VgPlotChart';
|
|
19
26
|
export { MosaicChart } from './MosaicChart';
|
|
20
27
|
export { MosaicChartBuilder } from './MosaicChartBuilder';
|
|
@@ -29,9 +36,28 @@ export type { MosaicSpecEditorPanelProps } from './editor/MosaicSpecEditorPanel'
|
|
|
29
36
|
export type { MosaicEditorActions, MosaicEditorContextValue, MosaicEditorState, OnMosaicSpecChange, UseMosaicChartEditorOptions, UseMosaicChartEditorReturn, } from './editor/types';
|
|
30
37
|
export { getProfilerTableWidth, PROFILER_DEFAULT_COLUMN_WIDTH_PX, PROFILER_ROW_NUMBER_COLUMN_WIDTH_PX, PROFILER_UNSUPPORTED_COLUMN_WIDTH_PX, } from './profiler/layout';
|
|
31
38
|
export type { MosaicProfilerCategoryBucket, MosaicProfilerCategorySummary, MosaicProfilerColumnKind, MosaicProfilerColumnState, MosaicProfilerHistogramSummary, MosaicProfilerOptions, MosaicProfilerPaginationState, MosaicProfilerSorting, MosaicProfilerSummaryState, UseMosaicProfilerReturn, } from './profiler/types';
|
|
32
|
-
export { createDefaultChartBuilders } from './chart-builders/builders';
|
|
39
|
+
export { boxPlotBuilder, bubbleChartBuilder, countPlotBuilder, createChartBuilderTemplate, createChartBuilderTemplates, createDefaultChartBuilders, customSpecBuilder, ecdfBuilder, heatmapBuilder, histogramBuilder, lineChartBuilder, mosaicChartBuilders, } from './chart-builders/builders';
|
|
40
|
+
export type { ChartBuilderActionsProps } from './chart-builders/ChartBuilderActions';
|
|
41
|
+
export { ChartBuilderActions } from './chart-builders/ChartBuilderActions';
|
|
33
42
|
export type { ChartBuilderContentProps } from './chart-builders/ChartBuilderContent';
|
|
34
|
-
export
|
|
43
|
+
export { ChartBuilderContent } from './chart-builders/ChartBuilderContent';
|
|
44
|
+
export { useChartBuilderContext, useChartBuilderStore, } from './chart-builders/ChartBuilderContext';
|
|
45
|
+
export type { ChartBuilderContextValue } from './chart-builders/ChartBuilderContext';
|
|
46
|
+
export type { ChartBuilderDialogContentProps, ChartBuilderDialogProps, ChartBuilderTriggerProps, } from './chart-builders/ChartBuilderDialog';
|
|
47
|
+
export { ChartBuilderDialogContent, ChartBuilderTrigger, } from './chart-builders/ChartBuilderDialog';
|
|
48
|
+
export type { ChartBuilderRootProps } from './chart-builders/ChartBuilderRoot';
|
|
49
|
+
export { ChartBuilderRoot } from './chart-builders/ChartBuilderRoot';
|
|
50
|
+
export type { ChartBuilderFieldsProps } from './chart-builders/ChartBuilderFields';
|
|
51
|
+
export { ChartBuilderFields } from './chart-builders/ChartBuilderFields';
|
|
52
|
+
export type { ChartBuilderTypeGridProps } from './chart-builders/ChartBuilderTypeGrid';
|
|
53
|
+
export { ChartBuilderTypeGrid } from './chart-builders/ChartBuilderTypeGrid';
|
|
54
|
+
export { buildChartTitleForSpec } from './chart-builders/chartSpecTitle';
|
|
55
|
+
export { boxPlotChartType, bubbleChartChartType, countPlotChartType, createDefaultChartTypes, customSpecChartType, ecdfChartType, heatmapChartType, histogramChartType, lineChartChartType, mosaicChartTypes, } from './chart-types';
|
|
56
|
+
export type { VgPlotChartConfig, VgPlotChartSettings, VgPlotChartType, } from './chart-types';
|
|
57
|
+
export { buildChartTypeTitle, canCreateChartFromType, columnMatchesFieldTypes, getAvailableChartTypes, getCompatibleColumns, isChartTypeAvailable, NUMERIC_COLUMN_TYPES, QUANTITATIVE_COLUMN_TYPES, TEMPORAL_COLUMN_TYPES, } from './chart-builders/chartTypeUtils';
|
|
58
|
+
export { describeChartSpecs, describeChartTypes, } from './chart-builders/describeChartSpecs';
|
|
35
59
|
export type { FieldSelectorInputProps } from './chart-builders/FieldSelectorInput';
|
|
36
|
-
export
|
|
60
|
+
export { toChartSpec, toChartTypeDefinition } from './chart-builders/types';
|
|
61
|
+
export type { ChartBuilderColumn, ChartBuilderField, ChartBuilderTemplate, ChartSpec, ChartTypeDefinition, } from './chart-builders/types';
|
|
62
|
+
export { MosaicCodeMirrorEditor } from './editor/MosaicCodeMirrorEditor';
|
|
37
63
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,OAAO,EACP,WAAW,EACX,UAAU,EACV,KAAK,EACL,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAClE,YAAY,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAC,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,KAAK,iCAAiC,EACtC,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EACzC,KAAK,gCAAgC,EACrC,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,OAAO,EACP,WAAW,EACX,UAAU,EACV,KAAK,EACL,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAClE,YAAY,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAC,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,GAC9B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,yBAAyB,EAAC,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAC,2BAA2B,EAAC,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAC,0CAA0C,EAAC,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EACL,wCAAwC,EACxC,sCAAsC,EACtC,kCAAkC,EAClC,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,+BAA+B,EAC/B,mBAAmB,EACnB,sBAAsB,EACtB,oCAAoC,EACpC,kCAAkC,EAClC,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,iCAAiC,EACjC,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,6BAA6B,EAC7B,oCAAoC,EACpC,+BAA+B,EAC/B,oBAAoB,IAAI,wBAAwB,EAChD,0BAA0B,IAAI,8BAA8B,EAC5D,4BAA4B,EAC5B,iCAAiC,EACjC,0BAA0B,IAAI,8BAA8B,EAC5D,0BAA0B,IAAI,8BAA8B,EAC5D,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,KAAK,iCAAiC,EACtC,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EACzC,KAAK,gCAAgC,EACrC,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAE,KAAK,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AACpE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAC;AAGnE,YAAY,EAAC,yBAAyB,EAAC,MAAM,+BAA+B,CAAC;AAC7E,YAAY,EAAC,uBAAuB,EAAC,MAAM,6BAA6B,CAAC;AACzE,YAAY,EAAC,6BAA6B,EAAC,MAAM,mCAAmC,CAAC;AACrF,YAAY,EAAC,2BAA2B,EAAC,MAAM,iCAAiC,CAAC;AACjF,YAAY,EAAC,0BAA0B,EAAC,MAAM,gCAAgC,CAAC;AAC/E,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,gCAAgC,EAChC,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,4BAA4B,EAC5B,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAC,wBAAwB,EAAC,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,YAAY,EAAC,wBAAwB,EAAC,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAC,wBAAwB,EAAC,MAAM,sCAAsC,CAAC;AACnF,YAAY,EACV,8BAA8B,EAC9B,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAC,qBAAqB,EAAC,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AACnE,YAAY,EAAC,uBAAuB,EAAC,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AACvE,YAAY,EAAC,yBAAyB,EAAC,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAC,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAC,sBAAsB,EAAC,MAAM,iCAAiC,CAAC;AACvE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EAAC,uBAAuB,EAAC,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAC,WAAW,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AAC1E,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACT,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,sBAAsB,EAAC,MAAM,iCAAiC,CAAC"}
|