@sqlrooms/mosaic 0.29.0-rc.2 → 0.29.0-rc.4
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 +209 -0
- package/dist/MosaicChartBuilder.d.ts +44 -13
- package/dist/MosaicChartBuilder.d.ts.map +1 -1
- package/dist/MosaicChartBuilder.js +22 -30
- package/dist/MosaicChartBuilder.js.map +1 -1
- package/dist/MosaicSlice.d.ts +28 -10
- package/dist/MosaicSlice.d.ts.map +1 -1
- package/dist/MosaicSlice.js +77 -11
- 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/boxplot/BoxPlotClient.d.ts +58 -0
- package/dist/boxplot/BoxPlotClient.d.ts.map +1 -0
- package/dist/boxplot/BoxPlotClient.js +264 -0
- package/dist/boxplot/BoxPlotClient.js.map +1 -0
- package/dist/chart/MosaicDashboardChart.d.ts +14 -0
- package/dist/chart/MosaicDashboardChart.d.ts.map +1 -0
- package/dist/chart/MosaicDashboardChart.js +21 -0
- package/dist/chart/MosaicDashboardChart.js.map +1 -0
- package/dist/chart/MosaicDashboardChartContent.d.ts +16 -0
- package/dist/chart/MosaicDashboardChartContent.d.ts.map +1 -0
- package/dist/chart/MosaicDashboardChartContent.js +18 -0
- package/dist/chart/MosaicDashboardChartContent.js.map +1 -0
- package/dist/chart/MosaicDashboardChartHeaderActions.d.ts +4 -0
- package/dist/chart/MosaicDashboardChartHeaderActions.d.ts.map +1 -0
- package/dist/chart/MosaicDashboardChartHeaderActions.js +16 -0
- package/dist/chart/MosaicDashboardChartHeaderActions.js.map +1 -0
- package/dist/chart/MosaicDashboardChartRenderer.d.ts +3 -0
- package/dist/chart/MosaicDashboardChartRenderer.d.ts.map +1 -0
- package/dist/chart/MosaicDashboardChartRenderer.js +31 -0
- package/dist/chart/MosaicDashboardChartRenderer.js.map +1 -0
- package/dist/chart/MosaicDashboardComponentChart.d.ts +14 -0
- package/dist/chart/MosaicDashboardComponentChart.d.ts.map +1 -0
- package/dist/chart/MosaicDashboardComponentChart.js +11 -0
- package/dist/chart/MosaicDashboardComponentChart.js.map +1 -0
- package/dist/chart/MosaicDashboardVgPlotChart.d.ts +10 -0
- package/dist/chart/MosaicDashboardVgPlotChart.d.ts.map +1 -0
- package/dist/chart/MosaicDashboardVgPlotChart.js +10 -0
- package/dist/chart/MosaicDashboardVgPlotChart.js.map +1 -0
- package/dist/chart/MosaicDashboardVgPlotError.d.ts +8 -0
- package/dist/chart/MosaicDashboardVgPlotError.d.ts.map +1 -0
- package/dist/chart/MosaicDashboardVgPlotError.js +11 -0
- package/dist/chart/MosaicDashboardVgPlotError.js.map +1 -0
- package/dist/chart/chart-settings/ChartSettings.d.ts +44 -0
- package/dist/chart/chart-settings/ChartSettings.d.ts.map +1 -0
- package/dist/chart/chart-settings/ChartSettings.js +71 -0
- package/dist/chart/chart-settings/ChartSettings.js.map +1 -0
- package/dist/chart/chart-settings/ChartSettingsContent.d.ts +13 -0
- package/dist/chart/chart-settings/ChartSettingsContent.d.ts.map +1 -0
- package/dist/chart/chart-settings/ChartSettingsContent.js +18 -0
- package/dist/chart/chart-settings/ChartSettingsContent.js.map +1 -0
- package/dist/chart/chart-settings/ChartSettingsContext.d.ts +27 -0
- package/dist/chart/chart-settings/ChartSettingsContext.d.ts.map +1 -0
- package/dist/chart/chart-settings/ChartSettingsContext.js +35 -0
- package/dist/chart/chart-settings/ChartSettingsContext.js.map +1 -0
- package/dist/chart/chart-settings/ChartSettingsPanel.d.ts +14 -0
- package/dist/chart/chart-settings/ChartSettingsPanel.d.ts.map +1 -0
- package/dist/chart/chart-settings/ChartSettingsPanel.js +17 -0
- package/dist/chart/chart-settings/ChartSettingsPanel.js.map +1 -0
- package/dist/chart/chart-settings/ChartSpecViewerPanel.d.ts +9 -0
- package/dist/chart/chart-settings/ChartSpecViewerPanel.d.ts.map +1 -0
- package/dist/chart/chart-settings/ChartSpecViewerPanel.js +11 -0
- package/dist/chart/chart-settings/ChartSpecViewerPanel.js.map +1 -0
- package/dist/chart/chart-settings/ChartTypeSelector.d.ts +9 -0
- package/dist/chart/chart-settings/ChartTypeSelector.d.ts.map +1 -0
- package/dist/chart/chart-settings/ChartTypeSelector.js +16 -0
- package/dist/chart/chart-settings/ChartTypeSelector.js.map +1 -0
- package/dist/chart/chart-settings/useTableColumns.d.ts +3 -0
- package/dist/chart/chart-settings/useTableColumns.d.ts.map +1 -0
- package/dist/chart/chart-settings/useTableColumns.js +12 -0
- package/dist/chart/chart-settings/useTableColumns.js.map +1 -0
- package/dist/chart/useBrushSelectionParams.d.ts +3 -0
- package/dist/chart/useBrushSelectionParams.d.ts.map +1 -0
- package/dist/chart/useBrushSelectionParams.js +16 -0
- package/dist/chart/useBrushSelectionParams.js.map +1 -0
- package/dist/chart/useChartRetainer.d.ts +3 -0
- package/dist/chart/useChartRetainer.d.ts.map +1 -0
- package/dist/chart/useChartRetainer.js +11 -0
- package/dist/chart/useChartRetainer.js.map +1 -0
- package/dist/chart/useGenerateSpec.d.ts +13 -0
- package/dist/chart/useGenerateSpec.d.ts.map +1 -0
- package/dist/chart/useGenerateSpec.js +32 -0
- package/dist/chart/useGenerateSpec.js.map +1 -0
- package/dist/chart-builders/AggregationSelector.d.ts +11 -0
- package/dist/chart-builders/AggregationSelector.d.ts.map +1 -0
- package/dist/chart-builders/AggregationSelector.js +9 -0
- package/dist/chart-builders/AggregationSelector.js.map +1 -0
- 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 +36 -0
- package/dist/chart-builders/ChartBuilderActions.js.map +1 -0
- package/dist/chart-builders/ChartBuilderContent.d.ts +12 -12
- 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 +8 -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 +30 -8
- 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 +39 -0
- package/dist/chart-builders/ChartBuilderFields.js.map +1 -0
- package/dist/chart-builders/ChartBuilderRoot.d.ts +25 -0
- package/dist/chart-builders/ChartBuilderRoot.d.ts.map +1 -0
- package/dist/chart-builders/ChartBuilderRoot.js +42 -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/ColumnSelector.d.ts +15 -0
- package/dist/chart-builders/ColumnSelector.d.ts.map +1 -0
- package/dist/chart-builders/ColumnSelector.js +31 -0
- package/dist/chart-builders/ColumnSelector.js.map +1 -0
- package/dist/chart-builders/Field.d.ts +11 -0
- package/dist/chart-builders/Field.d.ts.map +1 -0
- package/dist/chart-builders/Field.js +9 -0
- package/dist/chart-builders/Field.js.map +1 -0
- package/dist/chart-builders/FieldSelectorInput.d.ts +2 -1
- package/dist/chart-builders/FieldSelectorInput.d.ts.map +1 -1
- package/dist/chart-builders/FieldSelectorInput.js +5 -5
- package/dist/chart-builders/FieldSelectorInput.js.map +1 -1
- package/dist/chart-builders/MultiFieldSelector.d.ts +14 -0
- package/dist/chart-builders/MultiFieldSelector.d.ts.map +1 -0
- package/dist/chart-builders/MultiFieldSelector.js +53 -0
- package/dist/chart-builders/MultiFieldSelector.js.map +1 -0
- package/dist/chart-builders/TemporalGranularitySelector.d.ts +10 -0
- package/dist/chart-builders/TemporalGranularitySelector.d.ts.map +1 -0
- package/dist/chart-builders/TemporalGranularitySelector.js +37 -0
- package/dist/chart-builders/TemporalGranularitySelector.js.map +1 -0
- 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 +13 -0
- package/dist/chart-builders/chartTypeUtils.d.ts.map +1 -0
- package/dist/chart-builders/chartTypeUtils.js +47 -0
- package/dist/chart-builders/chartTypeUtils.js.map +1 -0
- package/dist/chart-builders/constants.d.ts +12 -0
- package/dist/chart-builders/constants.d.ts.map +1 -0
- package/dist/chart-builders/constants.js +47 -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-types/base-types.d.ts +148 -0
- package/dist/chart-types/base-types.d.ts.map +1 -0
- package/dist/chart-types/base-types.js +11 -0
- package/dist/chart-types/base-types.js.map +1 -0
- package/dist/chart-types/box-plot/BoxPlotSettings.d.ts +3 -0
- package/dist/chart-types/box-plot/BoxPlotSettings.d.ts.map +1 -0
- package/dist/chart-types/box-plot/BoxPlotSettings.js +9 -0
- package/dist/chart-types/box-plot/BoxPlotSettings.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 +19 -0
- package/dist/chart-types/box-plot/definition.js.map +1 -0
- package/dist/chart-types/box-plot/renderer/BoxPlotErrorBoundary.d.ts +18 -0
- package/dist/chart-types/box-plot/renderer/BoxPlotErrorBoundary.d.ts.map +1 -0
- package/dist/chart-types/box-plot/renderer/BoxPlotErrorBoundary.js +28 -0
- package/dist/chart-types/box-plot/renderer/BoxPlotErrorBoundary.js.map +1 -0
- package/dist/chart-types/box-plot/renderer/BoxPlotPanelRenderer.d.ts +9 -0
- package/dist/chart-types/box-plot/renderer/BoxPlotPanelRenderer.d.ts.map +1 -0
- package/dist/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js +115 -0
- package/dist/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js.map +1 -0
- package/dist/chart-types/box-plot/renderer/constants.d.ts +24 -0
- package/dist/chart-types/box-plot/renderer/constants.d.ts.map +1 -0
- package/dist/chart-types/box-plot/renderer/constants.js +17 -0
- package/dist/chart-types/box-plot/renderer/constants.js.map +1 -0
- package/dist/chart-types/box-plot/renderer/plot.d.ts +14 -0
- package/dist/chart-types/box-plot/renderer/plot.d.ts.map +1 -0
- package/dist/chart-types/box-plot/renderer/plot.js +91 -0
- package/dist/chart-types/box-plot/renderer/plot.js.map +1 -0
- package/dist/chart-types/box-plot/renderer/useBoxPlotClient.d.ts +14 -0
- package/dist/chart-types/box-plot/renderer/useBoxPlotClient.d.ts.map +1 -0
- package/dist/chart-types/box-plot/renderer/useBoxPlotClient.js +45 -0
- package/dist/chart-types/box-plot/renderer/useBoxPlotClient.js.map +1 -0
- package/dist/chart-types/box-plot/renderer/utils.d.ts +6 -0
- package/dist/chart-types/box-plot/renderer/utils.d.ts.map +1 -0
- package/dist/chart-types/box-plot/renderer/utils.js +34 -0
- package/dist/chart-types/box-plot/renderer/utils.js.map +1 -0
- package/dist/chart-types/box-plot/schema.d.ts +16 -0
- package/dist/chart-types/box-plot/schema.d.ts.map +1 -0
- package/dist/chart-types/box-plot/schema.js +11 -0
- package/dist/chart-types/box-plot/schema.js.map +1 -0
- package/dist/chart-types/box-plot/tool.d.ts +44 -0
- package/dist/chart-types/box-plot/tool.d.ts.map +1 -0
- package/dist/chart-types/box-plot/tool.js +59 -0
- package/dist/chart-types/box-plot/tool.js.map +1 -0
- package/dist/chart-types/bubble-chart/BubbleChartSettings.d.ts +3 -0
- package/dist/chart-types/bubble-chart/BubbleChartSettings.d.ts.map +1 -0
- package/dist/chart-types/bubble-chart/BubbleChartSettings.js +9 -0
- package/dist/chart-types/bubble-chart/BubbleChartSettings.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 +19 -0
- package/dist/chart-types/bubble-chart/definition.js.map +1 -0
- package/dist/chart-types/bubble-chart/schema.d.ts +18 -0
- package/dist/chart-types/bubble-chart/schema.d.ts.map +1 -0
- package/dist/chart-types/bubble-chart/schema.js +15 -0
- package/dist/chart-types/bubble-chart/schema.js.map +1 -0
- package/dist/chart-types/bubble-chart/spec.d.ts +4 -0
- package/dist/chart-types/bubble-chart/spec.d.ts.map +1 -0
- package/dist/chart-types/bubble-chart/spec.js +31 -0
- package/dist/chart-types/bubble-chart/spec.js.map +1 -0
- package/dist/chart-types/bubble-chart/tool.d.ts +46 -0
- package/dist/chart-types/bubble-chart/tool.d.ts.map +1 -0
- package/dist/chart-types/bubble-chart/tool.js +58 -0
- package/dist/chart-types/bubble-chart/tool.js.map +1 -0
- package/dist/chart-types/chart-config.d.ts +92 -0
- package/dist/chart-types/chart-config.d.ts.map +1 -0
- package/dist/chart-types/chart-config.js +47 -0
- package/dist/chart-types/chart-config.js.map +1 -0
- package/dist/chart-types/count-plot/CountPlotSettings.d.ts +3 -0
- package/dist/chart-types/count-plot/CountPlotSettings.d.ts.map +1 -0
- package/dist/chart-types/count-plot/CountPlotSettings.js +9 -0
- package/dist/chart-types/count-plot/CountPlotSettings.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 +19 -0
- package/dist/chart-types/count-plot/definition.js.map +1 -0
- package/dist/chart-types/count-plot/schema.d.ts +14 -0
- package/dist/chart-types/count-plot/schema.d.ts.map +1 -0
- package/dist/chart-types/count-plot/schema.js +13 -0
- package/dist/chart-types/count-plot/schema.js.map +1 -0
- package/dist/chart-types/count-plot/spec.d.ts +4 -0
- package/dist/chart-types/count-plot/spec.d.ts.map +1 -0
- package/dist/chart-types/count-plot/spec.js +49 -0
- package/dist/chart-types/count-plot/spec.js.map +1 -0
- package/dist/chart-types/count-plot/tool.d.ts +42 -0
- package/dist/chart-types/count-plot/tool.d.ts.map +1 -0
- package/dist/chart-types/count-plot/tool.js +55 -0
- package/dist/chart-types/count-plot/tool.js.map +1 -0
- package/dist/chart-types/custom-spec/CustomSpecSettings.d.ts +7 -0
- package/dist/chart-types/custom-spec/CustomSpecSettings.d.ts.map +1 -0
- package/dist/chart-types/custom-spec/CustomSpecSettings.js +30 -0
- package/dist/chart-types/custom-spec/CustomSpecSettings.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 +17 -0
- package/dist/chart-types/custom-spec/definition.js.map +1 -0
- package/dist/chart-types/custom-spec/schema.d.ts +14 -0
- package/dist/chart-types/custom-spec/schema.d.ts.map +1 -0
- package/dist/chart-types/custom-spec/schema.js +10 -0
- package/dist/chart-types/custom-spec/schema.js.map +1 -0
- package/dist/chart-types/custom-spec/spec.d.ts +4 -0
- package/dist/chart-types/custom-spec/spec.d.ts.map +1 -0
- package/dist/chart-types/custom-spec/spec.js +24 -0
- package/dist/chart-types/custom-spec/spec.js.map +1 -0
- package/dist/chart-types/errors.d.ts +23 -0
- package/dist/chart-types/errors.d.ts.map +1 -0
- package/dist/chart-types/errors.js +26 -0
- package/dist/chart-types/errors.js.map +1 -0
- package/dist/chart-types/heatmap/HeatmapSettings.d.ts +3 -0
- package/dist/chart-types/heatmap/HeatmapSettings.d.ts.map +1 -0
- package/dist/chart-types/heatmap/HeatmapSettings.js +9 -0
- package/dist/chart-types/heatmap/HeatmapSettings.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 +19 -0
- package/dist/chart-types/heatmap/definition.js.map +1 -0
- package/dist/chart-types/heatmap/schema.d.ts +16 -0
- package/dist/chart-types/heatmap/schema.d.ts.map +1 -0
- package/dist/chart-types/heatmap/schema.js +11 -0
- package/dist/chart-types/heatmap/schema.js.map +1 -0
- package/dist/chart-types/heatmap/spec.d.ts +4 -0
- package/dist/chart-types/heatmap/spec.d.ts.map +1 -0
- package/dist/chart-types/heatmap/spec.js +32 -0
- package/dist/chart-types/heatmap/spec.js.map +1 -0
- package/dist/chart-types/heatmap/tool.d.ts +44 -0
- package/dist/chart-types/heatmap/tool.d.ts.map +1 -0
- package/dist/chart-types/heatmap/tool.js +59 -0
- package/dist/chart-types/heatmap/tool.js.map +1 -0
- package/dist/chart-types/histogram/HistogramSettings.d.ts +3 -0
- package/dist/chart-types/histogram/HistogramSettings.d.ts.map +1 -0
- package/dist/chart-types/histogram/HistogramSettings.js +9 -0
- package/dist/chart-types/histogram/HistogramSettings.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 +19 -0
- package/dist/chart-types/histogram/definition.js.map +1 -0
- package/dist/chart-types/histogram/schema.d.ts +14 -0
- package/dist/chart-types/histogram/schema.d.ts.map +1 -0
- package/dist/chart-types/histogram/schema.js +13 -0
- package/dist/chart-types/histogram/schema.js.map +1 -0
- package/dist/chart-types/histogram/spec.d.ts +4 -0
- package/dist/chart-types/histogram/spec.d.ts.map +1 -0
- package/dist/chart-types/histogram/spec.js +36 -0
- package/dist/chart-types/histogram/spec.js.map +1 -0
- package/dist/chart-types/histogram/tool.d.ts +42 -0
- package/dist/chart-types/histogram/tool.d.ts.map +1 -0
- package/dist/chart-types/histogram/tool.js +55 -0
- package/dist/chart-types/histogram/tool.js.map +1 -0
- package/dist/chart-types/index.d.ts +115 -0
- package/dist/chart-types/index.d.ts.map +1 -0
- package/dist/chart-types/index.js +100 -0
- package/dist/chart-types/index.js.map +1 -0
- package/dist/chart-types/line-chart/LineChartSettings.d.ts +7 -0
- package/dist/chart-types/line-chart/LineChartSettings.d.ts.map +1 -0
- package/dist/chart-types/line-chart/LineChartSettings.js +22 -0
- package/dist/chart-types/line-chart/LineChartSettings.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 +19 -0
- package/dist/chart-types/line-chart/definition.js.map +1 -0
- package/dist/chart-types/line-chart/schema.d.ts +83 -0
- package/dist/chart-types/line-chart/schema.d.ts.map +1 -0
- package/dist/chart-types/line-chart/schema.js +39 -0
- package/dist/chart-types/line-chart/schema.js.map +1 -0
- package/dist/chart-types/line-chart/spec.d.ts +4 -0
- package/dist/chart-types/line-chart/spec.d.ts.map +1 -0
- package/dist/chart-types/line-chart/spec.js +91 -0
- package/dist/chart-types/line-chart/spec.js.map +1 -0
- package/dist/chart-types/line-chart/tool.d.ts +68 -0
- package/dist/chart-types/line-chart/tool.d.ts.map +1 -0
- package/dist/chart-types/line-chart/tool.js +66 -0
- package/dist/chart-types/line-chart/tool.js.map +1 -0
- package/dist/chart-types/tool-schemas.d.ts +8 -0
- package/dist/chart-types/tool-schemas.d.ts.map +1 -0
- package/dist/chart-types/tool-schemas.js +18 -0
- package/dist/chart-types/tool-schemas.js.map +1 -0
- package/dist/chart-types/tool-types.d.ts +26 -0
- package/dist/chart-types/tool-types.d.ts.map +1 -0
- package/dist/chart-types/tool-types.js +2 -0
- package/dist/chart-types/tool-types.js.map +1 -0
- package/dist/chart-types/tool-validation.d.ts +3 -0
- package/dist/chart-types/tool-validation.d.ts.map +1 -0
- package/dist/chart-types/tool-validation.js +11 -0
- package/dist/chart-types/tool-validation.js.map +1 -0
- package/dist/chart-types/useChartTypeDefinition.d.ts +3 -0
- package/dist/chart-types/useChartTypeDefinition.d.ts.map +1 -0
- package/dist/chart-types/useChartTypeDefinition.js +8 -0
- package/dist/chart-types/useChartTypeDefinition.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 +38 -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/MosaicDashboardEmptyState.d.ts +2 -0
- package/dist/dashboard/MosaicDashboardEmptyState.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardEmptyState.js +50 -0
- package/dist/dashboard/MosaicDashboardEmptyState.js.map +1 -0
- 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 +46 -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 +53 -0
- package/dist/dashboard/MosaicDashboardPanels.js.map +1 -0
- package/dist/dashboard/MosaicDashboardSlice.d.ts +607 -27
- package/dist/dashboard/MosaicDashboardSlice.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboardSlice.js +525 -93
- package/dist/dashboard/MosaicDashboardSlice.js.map +1 -1
- package/dist/dashboard/MosaicDashboardToolbar.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboardToolbar.js +74 -7
- package/dist/dashboard/MosaicDashboardToolbar.js.map +1 -1
- package/dist/dashboard/defaultPanelRenderers.d.ts +3 -0
- package/dist/dashboard/defaultPanelRenderers.d.ts.map +1 -0
- package/dist/dashboard/defaultPanelRenderers.js +13 -0
- package/dist/dashboard/defaultPanelRenderers.js.map +1 -0
- package/dist/dashboard/utils.d.ts +3 -0
- package/dist/dashboard/utils.d.ts.map +1 -0
- package/dist/dashboard/utils.js +16 -0
- package/dist/dashboard/utils.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 +28 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -3
- package/dist/index.js.map +1 -1
- package/dist/profiler/MosaicDashboardProfilerPanelRenderer.d.ts +3 -0
- package/dist/profiler/MosaicDashboardProfilerPanelRenderer.d.ts.map +1 -0
- package/dist/profiler/MosaicDashboardProfilerPanelRenderer.js +32 -0
- package/dist/profiler/MosaicDashboardProfilerPanelRenderer.js.map +1 -0
- 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/text/MosaicDashboardTextRenderer.d.ts +3 -0
- package/dist/text/MosaicDashboardTextRenderer.d.ts.map +1 -0
- package/dist/text/MosaicDashboardTextRenderer.js +46 -0
- package/dist/text/MosaicDashboardTextRenderer.js.map +1 -0
- 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 +40 -31
- package/dist/chart-builders/builders.d.ts +0 -7
- package/dist/chart-builders/builders.d.ts.map +0 -1
- package/dist/chart-builders/builders.js +0 -280
- package/dist/chart-builders/builders.js.map +0 -1
- 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/chart-builders/describeChartSpecs.d.ts +0 -7
- package/dist/chart-builders/describeChartSpecs.d.ts.map +0 -1
- package/dist/chart-builders/describeChartSpecs.js +0 -38
- package/dist/chart-builders/describeChartSpecs.js.map +0 -1
- package/dist/chart-builders/types.d.ts +0 -40
- package/dist/chart-builders/types.d.ts.map +0 -1
- package/dist/chart-builders/types.js +0 -2
- package/dist/chart-builders/types.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/dashboard/VgPlotSpecPopoverEditor.d.ts +0 -8
- package/dist/dashboard/VgPlotSpecPopoverEditor.d.ts.map +0 -1
- package/dist/dashboard/VgPlotSpecPopoverEditor.js +0 -40
- package/dist/dashboard/VgPlotSpecPopoverEditor.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,55 @@
|
|
|
1
|
+
import { tool } from 'ai';
|
|
2
|
+
import { HistogramChartSettings } from './schema';
|
|
3
|
+
import { BaseChartToolParameters } from '../tool-schemas';
|
|
4
|
+
import { validateColumnExists } from '../tool-validation';
|
|
5
|
+
import { QUANTITATIVE_COLUMN_TYPES } from '../../chart-builders/constants';
|
|
6
|
+
export const HistogramToolParameters = BaseChartToolParameters.extend({
|
|
7
|
+
settings: HistogramChartSettings.required(),
|
|
8
|
+
});
|
|
9
|
+
export function createHistogramAiTool(deps) {
|
|
10
|
+
return tool({
|
|
11
|
+
description: `Histogram: shows distribution of numeric values by automatically grouping data into bins/ranges.
|
|
12
|
+
|
|
13
|
+
Use when: user asks about "distribution of [numeric column]", "spread of", "range of", "how values are distributed", "show histogram".
|
|
14
|
+
Example queries: "distribution of population density", "show elevation distribution", "histogram of parcel areas", "how are building heights spread", "temperature range distribution".
|
|
15
|
+
|
|
16
|
+
Required: field must be quantitative not text/categorical: (${QUANTITATIVE_COLUMN_TYPES.join(', ')}).
|
|
17
|
+
|
|
18
|
+
CRITICAL: Only for quantitative continuous data to see distribution shape, outliers, skewness.
|
|
19
|
+
Do NOT use for: categorical data (use count-plot), relationships between columns (use bubble-chart), time series trends (use line-chart).`,
|
|
20
|
+
inputSchema: HistogramToolParameters,
|
|
21
|
+
execute: async (params, context) => {
|
|
22
|
+
try {
|
|
23
|
+
const { artifactId, tableName, columns } = deps.resolveResources(params, context);
|
|
24
|
+
// Validate settings
|
|
25
|
+
validateColumnExists(params.settings.field, QUANTITATIVE_COLUMN_TYPES, columns, 'field');
|
|
26
|
+
const title = `Histogram of ${params.settings.field}`;
|
|
27
|
+
const result = deps.createChart({
|
|
28
|
+
artifactId,
|
|
29
|
+
tableName,
|
|
30
|
+
config: {
|
|
31
|
+
chartType: 'histogram',
|
|
32
|
+
settings: params.settings,
|
|
33
|
+
},
|
|
34
|
+
title,
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
llmResult: {
|
|
38
|
+
success: true,
|
|
39
|
+
details: `Created histogram "${result.title}".`,
|
|
40
|
+
data: result,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
return {
|
|
46
|
+
llmResult: {
|
|
47
|
+
success: false,
|
|
48
|
+
errorMessage: error instanceof Error ? error.message : String(error),
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/chart-types/histogram/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAExB,OAAO,EAAC,sBAAsB,EAAC,MAAM,UAAU,CAAC;AAChD,OAAO,EAAC,uBAAuB,EAAC,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AAEzE,MAAM,CAAC,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACpE,QAAQ,EAAE,sBAAsB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAIH,MAAM,UAAU,qBAAqB,CAAC,IAAmB;IACvD,OAAO,IAAI,CAAC;QACV,WAAW,EAAE;;;;;8DAK6C,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;;;0IAGwC;QACtI,WAAW,EAAE,uBAAuB;QACpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;YACjC,IAAI,CAAC;gBACH,MAAM,EAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,gBAAgB,CAC5D,MAAM,EACN,OAAO,CACR,CAAC;gBAEF,oBAAoB;gBACpB,oBAAoB,CAClB,MAAM,CAAC,QAAQ,CAAC,KAAK,EACrB,yBAAyB,EACzB,OAAO,EACP,OAAO,CACR,CAAC;gBAEF,MAAM,KAAK,GAAG,gBAAgB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAEtD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC9B,UAAU;oBACV,SAAS;oBACT,MAAM,EAAE;wBACN,SAAS,EAAE,WAAW;wBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B;oBACD,KAAK;iBACN,CAAC,CAAC;gBAEH,OAAO;oBACL,SAAS,EAAE;wBACT,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,sBAAsB,MAAM,CAAC,KAAK,IAAI;wBAC/C,IAAI,EAAE,MAAM;qBACb;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,SAAS,EAAE;wBACT,OAAO,EAAE,KAAK;wBACd,YAAY,EACV,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBACzD;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {tool} from 'ai';\nimport {z} from 'zod';\nimport {HistogramChartSettings} from './schema';\nimport {BaseChartToolParameters} from '../tool-schemas';\nimport type {ChartToolDeps} from '../base-types';\nimport {validateColumnExists} from '../tool-validation';\nimport {QUANTITATIVE_COLUMN_TYPES} from '../../chart-builders/constants';\n\nexport const HistogramToolParameters = BaseChartToolParameters.extend({\n settings: HistogramChartSettings.required(),\n});\n\nexport type HistogramToolParams = z.infer<typeof HistogramToolParameters>;\n\nexport function createHistogramAiTool(deps: ChartToolDeps) {\n return tool({\n description: `Histogram: shows distribution of numeric values by automatically grouping data into bins/ranges.\n\nUse when: user asks about \"distribution of [numeric column]\", \"spread of\", \"range of\", \"how values are distributed\", \"show histogram\".\nExample queries: \"distribution of population density\", \"show elevation distribution\", \"histogram of parcel areas\", \"how are building heights spread\", \"temperature range distribution\".\n\nRequired: field must be quantitative not text/categorical: (${QUANTITATIVE_COLUMN_TYPES.join(', ')}).\n\nCRITICAL: Only for quantitative continuous data to see distribution shape, outliers, skewness.\nDo NOT use for: categorical data (use count-plot), relationships between columns (use bubble-chart), time series trends (use line-chart).`,\n inputSchema: HistogramToolParameters,\n execute: async (params, context) => {\n try {\n const {artifactId, tableName, columns} = deps.resolveResources(\n params,\n context,\n );\n\n // Validate settings\n validateColumnExists(\n params.settings.field,\n QUANTITATIVE_COLUMN_TYPES,\n columns,\n 'field',\n );\n\n const title = `Histogram of ${params.settings.field}`;\n\n const result = deps.createChart({\n artifactId,\n tableName,\n config: {\n chartType: 'histogram',\n settings: params.settings,\n },\n title,\n });\n\n return {\n llmResult: {\n success: true,\n details: `Created histogram \"${result.title}\".`,\n data: result,\n },\n };\n } catch (error) {\n return {\n llmResult: {\n success: false,\n errorMessage:\n error instanceof Error ? error.message : String(error),\n },\n };\n }\n },\n });\n}\n"]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
export * from './base-types';
|
|
2
|
+
import type { Tool } from 'ai';
|
|
3
|
+
export * from './errors';
|
|
4
|
+
import type { ChartTypeDefinition } from './base-types';
|
|
5
|
+
export { ChartConfig, type ChartSettings, type ChartType } from './chart-config';
|
|
6
|
+
export * from './histogram/schema';
|
|
7
|
+
export * from './line-chart/schema';
|
|
8
|
+
export * from './count-plot/schema';
|
|
9
|
+
export * from './heatmap/schema';
|
|
10
|
+
export * from './box-plot/schema';
|
|
11
|
+
export * from './bubble-chart/schema';
|
|
12
|
+
export * from './custom-spec/schema';
|
|
13
|
+
export { HistogramSettingsComponent } from './histogram/HistogramSettings';
|
|
14
|
+
export { LineChartSettingsComponent } from './line-chart/LineChartSettings';
|
|
15
|
+
export { CountPlotSettingsComponent } from './count-plot/CountPlotSettings';
|
|
16
|
+
export { HeatmapSettingsComponent } from './heatmap/HeatmapSettings';
|
|
17
|
+
export { BoxPlotSettingsComponent } from './box-plot/BoxPlotSettings';
|
|
18
|
+
export { BubbleChartSettingsComponent } from './bubble-chart/BubbleChartSettings';
|
|
19
|
+
export { CustomSpecSettingsComponent } from './custom-spec/CustomSpecSettings';
|
|
20
|
+
export * from './histogram/definition';
|
|
21
|
+
export * from './line-chart/definition';
|
|
22
|
+
export * from './count-plot/definition';
|
|
23
|
+
export * from './heatmap/definition';
|
|
24
|
+
export * from './box-plot/definition';
|
|
25
|
+
export * from './bubble-chart/definition';
|
|
26
|
+
export * from './custom-spec/definition';
|
|
27
|
+
export * from './tool-types';
|
|
28
|
+
export * from './tool-schemas';
|
|
29
|
+
export * from './tool-validation';
|
|
30
|
+
export * from './histogram/tool';
|
|
31
|
+
export * from './line-chart/tool';
|
|
32
|
+
export * from './count-plot/tool';
|
|
33
|
+
export * from './heatmap/tool';
|
|
34
|
+
export * from './bubble-chart/tool';
|
|
35
|
+
export * from './box-plot/tool';
|
|
36
|
+
import type { ChartToolDeps } from './base-types';
|
|
37
|
+
export declare const mosaicChartTypes: {
|
|
38
|
+
readonly histogram: import("./base-types").SpecChartTypeDefinition<{
|
|
39
|
+
chartType: "histogram";
|
|
40
|
+
settings: {
|
|
41
|
+
field?: string | undefined;
|
|
42
|
+
};
|
|
43
|
+
settingsOpen?: boolean | undefined;
|
|
44
|
+
}>;
|
|
45
|
+
readonly countPlot: import("./base-types").SpecChartTypeDefinition<{
|
|
46
|
+
chartType: "count-plot";
|
|
47
|
+
settings: {
|
|
48
|
+
field?: string | undefined;
|
|
49
|
+
};
|
|
50
|
+
settingsOpen?: boolean | undefined;
|
|
51
|
+
}>;
|
|
52
|
+
readonly lineChart: import("./base-types").SpecChartTypeDefinition<{
|
|
53
|
+
chartType: "line-chart";
|
|
54
|
+
settings: {
|
|
55
|
+
x?: string | undefined;
|
|
56
|
+
xInterval?: "second" | "minute" | "hour" | "day" | "week" | "month" | "quarter" | "year" | undefined;
|
|
57
|
+
yFields?: {
|
|
58
|
+
field: string;
|
|
59
|
+
aggregate: "sum" | "max" | "min" | "avg";
|
|
60
|
+
color?: string | undefined;
|
|
61
|
+
}[] | undefined;
|
|
62
|
+
};
|
|
63
|
+
settingsOpen?: boolean | undefined;
|
|
64
|
+
}>;
|
|
65
|
+
readonly heatmap: import("./base-types").SpecChartTypeDefinition<{
|
|
66
|
+
chartType: "heatmap";
|
|
67
|
+
settings: {
|
|
68
|
+
x?: string | undefined;
|
|
69
|
+
y?: string | undefined;
|
|
70
|
+
};
|
|
71
|
+
settingsOpen?: boolean | undefined;
|
|
72
|
+
}>;
|
|
73
|
+
readonly boxPlot: import("./base-types").ComponentChartTypeDefinition<{
|
|
74
|
+
chartType: "box-plot";
|
|
75
|
+
settings: {
|
|
76
|
+
x: string;
|
|
77
|
+
y: string;
|
|
78
|
+
};
|
|
79
|
+
settingsOpen?: boolean | undefined;
|
|
80
|
+
}>;
|
|
81
|
+
readonly bubbleChart: import("./base-types").SpecChartTypeDefinition<{
|
|
82
|
+
chartType: "bubble-chart";
|
|
83
|
+
settings: {
|
|
84
|
+
x?: string | undefined;
|
|
85
|
+
y?: string | undefined;
|
|
86
|
+
size?: string | undefined;
|
|
87
|
+
};
|
|
88
|
+
settingsOpen?: boolean | undefined;
|
|
89
|
+
}>;
|
|
90
|
+
readonly customSpec: import("./base-types").SpecChartTypeDefinition<{
|
|
91
|
+
chartType: "custom-spec";
|
|
92
|
+
settings: {
|
|
93
|
+
vgPlotSpec?: unknown;
|
|
94
|
+
};
|
|
95
|
+
settingsOpen?: boolean | undefined;
|
|
96
|
+
}>;
|
|
97
|
+
};
|
|
98
|
+
export declare function createDefaultChartTypes(options?: {
|
|
99
|
+
includeCustomSpec?: boolean;
|
|
100
|
+
}): ChartTypeDefinition<any>[];
|
|
101
|
+
/**
|
|
102
|
+
* Dynamically generate AI tools from chart type definitions.
|
|
103
|
+
*
|
|
104
|
+
* @param chartTypes Array of chart type definitions
|
|
105
|
+
* @param deps Dependencies needed by tool creators (resolveResources, createChart)
|
|
106
|
+
* @param toolNamePrefix Prefix for generated tool names (default: 'create_dashboard_')
|
|
107
|
+
* @returns Record mapping tool names to tool instances
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* const chartTypes = createDefaultChartTypes({includeCustomSpec: false});
|
|
111
|
+
* const tools = createChartTools(chartTypes, deps);
|
|
112
|
+
* // Returns: { create_dashboard_histogram: ..., create_dashboard_line_chart: ..., ... }
|
|
113
|
+
*/
|
|
114
|
+
export declare function createChartTools(chartTypes: ChartTypeDefinition<any>[], deps: ChartToolDeps, toolNamePrefix?: string): Record<string, Tool>;
|
|
115
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chart-types/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAG7B,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAG7B,cAAc,UAAU,CAAC;AAGzB,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAMtD,OAAO,EAAC,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG/E,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EAAC,0BAA0B,EAAC,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAC,0BAA0B,EAAC,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAC,0BAA0B,EAAC,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAC,wBAAwB,EAAC,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAC,4BAA4B,EAAC,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAC,2BAA2B,EAAC,MAAM,kCAAkC,CAAC;AAG7E,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAGzC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAUhC,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAGhD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQnB,CAAC;AAEX,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IAChD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAgB7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,EACtC,IAAI,EAAE,aAAa,EACnB,cAAc,GAAE,MAA4B,GAC3C,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAWtB"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Re-export base types
|
|
2
|
+
export * from './base-types';
|
|
3
|
+
// Re-export error classes for chart definitions
|
|
4
|
+
export * from './errors';
|
|
5
|
+
// CRITICAL: Export ChartConfig FIRST, before importing Settings components
|
|
6
|
+
// Export ChartConfig from separate file to avoid circular dependencies
|
|
7
|
+
// (chart-types/index imports Settings components, which import ChartSettingsContext,
|
|
8
|
+
// which imports ChartConfig)
|
|
9
|
+
export { ChartConfig } from './chart-config';
|
|
10
|
+
// Re-export schemas
|
|
11
|
+
export * from './histogram/schema';
|
|
12
|
+
export * from './line-chart/schema';
|
|
13
|
+
export * from './count-plot/schema';
|
|
14
|
+
export * from './heatmap/schema';
|
|
15
|
+
export * from './box-plot/schema';
|
|
16
|
+
export * from './bubble-chart/schema';
|
|
17
|
+
export * from './custom-spec/schema';
|
|
18
|
+
// Re-export Settings components
|
|
19
|
+
export { HistogramSettingsComponent } from './histogram/HistogramSettings';
|
|
20
|
+
export { LineChartSettingsComponent } from './line-chart/LineChartSettings';
|
|
21
|
+
export { CountPlotSettingsComponent } from './count-plot/CountPlotSettings';
|
|
22
|
+
export { HeatmapSettingsComponent } from './heatmap/HeatmapSettings';
|
|
23
|
+
export { BoxPlotSettingsComponent } from './box-plot/BoxPlotSettings';
|
|
24
|
+
export { BubbleChartSettingsComponent } from './bubble-chart/BubbleChartSettings';
|
|
25
|
+
export { CustomSpecSettingsComponent } from './custom-spec/CustomSpecSettings';
|
|
26
|
+
// Re-export definitions
|
|
27
|
+
export * from './histogram/definition';
|
|
28
|
+
export * from './line-chart/definition';
|
|
29
|
+
export * from './count-plot/definition';
|
|
30
|
+
export * from './heatmap/definition';
|
|
31
|
+
export * from './box-plot/definition';
|
|
32
|
+
export * from './bubble-chart/definition';
|
|
33
|
+
export * from './custom-spec/definition';
|
|
34
|
+
// Re-export tool types, schemas, validation, and AI tool creators
|
|
35
|
+
export * from './tool-types';
|
|
36
|
+
export * from './tool-schemas';
|
|
37
|
+
export * from './tool-validation';
|
|
38
|
+
export * from './histogram/tool';
|
|
39
|
+
export * from './line-chart/tool';
|
|
40
|
+
export * from './count-plot/tool';
|
|
41
|
+
export * from './heatmap/tool';
|
|
42
|
+
export * from './bubble-chart/tool';
|
|
43
|
+
export * from './box-plot/tool';
|
|
44
|
+
// Import chart type definitions for legacy exports
|
|
45
|
+
import { histogramChartType } from './histogram/definition';
|
|
46
|
+
import { lineChartChartType } from './line-chart/definition';
|
|
47
|
+
import { countPlotChartType } from './count-plot/definition';
|
|
48
|
+
import { heatmapChartType } from './heatmap/definition';
|
|
49
|
+
import { boxPlotChartType } from './box-plot/definition';
|
|
50
|
+
import { bubbleChartChartType } from './bubble-chart/definition';
|
|
51
|
+
import { customSpecChartType } from './custom-spec/definition';
|
|
52
|
+
// Legacy compatibility exports
|
|
53
|
+
export const mosaicChartTypes = {
|
|
54
|
+
histogram: histogramChartType,
|
|
55
|
+
countPlot: countPlotChartType,
|
|
56
|
+
lineChart: lineChartChartType,
|
|
57
|
+
heatmap: heatmapChartType,
|
|
58
|
+
boxPlot: boxPlotChartType,
|
|
59
|
+
bubbleChart: bubbleChartChartType,
|
|
60
|
+
customSpec: customSpecChartType,
|
|
61
|
+
};
|
|
62
|
+
export function createDefaultChartTypes(options) {
|
|
63
|
+
const includeCustomSpec = options?.includeCustomSpec ?? true;
|
|
64
|
+
const chartTypes = [
|
|
65
|
+
histogramChartType,
|
|
66
|
+
countPlotChartType,
|
|
67
|
+
lineChartChartType,
|
|
68
|
+
heatmapChartType,
|
|
69
|
+
boxPlotChartType,
|
|
70
|
+
bubbleChartChartType,
|
|
71
|
+
];
|
|
72
|
+
if (includeCustomSpec) {
|
|
73
|
+
chartTypes.push(customSpecChartType);
|
|
74
|
+
}
|
|
75
|
+
return chartTypes;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Dynamically generate AI tools from chart type definitions.
|
|
79
|
+
*
|
|
80
|
+
* @param chartTypes Array of chart type definitions
|
|
81
|
+
* @param deps Dependencies needed by tool creators (resolveResources, createChart)
|
|
82
|
+
* @param toolNamePrefix Prefix for generated tool names (default: 'create_dashboard_')
|
|
83
|
+
* @returns Record mapping tool names to tool instances
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* const chartTypes = createDefaultChartTypes({includeCustomSpec: false});
|
|
87
|
+
* const tools = createChartTools(chartTypes, deps);
|
|
88
|
+
* // Returns: { create_dashboard_histogram: ..., create_dashboard_line_chart: ..., ... }
|
|
89
|
+
*/
|
|
90
|
+
export function createChartTools(chartTypes, deps, toolNamePrefix = 'create_dashboard_') {
|
|
91
|
+
const tools = {};
|
|
92
|
+
for (const chartType of chartTypes) {
|
|
93
|
+
if (chartType.createTool) {
|
|
94
|
+
const toolName = `${toolNamePrefix}${chartType.id.replace(/-/g, '_')}`;
|
|
95
|
+
tools[toolName] = chartType.createTool(deps);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return tools;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chart-types/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,cAAc,cAAc,CAAC;AAK7B,gDAAgD;AAChD,cAAc,UAAU,CAAC;AAKzB,2EAA2E;AAC3E,uEAAuE;AACvE,qFAAqF;AACrF,6BAA6B;AAC7B,OAAO,EAAC,WAAW,EAAqC,MAAM,gBAAgB,CAAC;AAE/E,oBAAoB;AACpB,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAErC,gCAAgC;AAChC,OAAO,EAAC,0BAA0B,EAAC,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAC,0BAA0B,EAAC,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAC,0BAA0B,EAAC,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAC,wBAAwB,EAAC,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAC,4BAA4B,EAAC,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAC,2BAA2B,EAAC,MAAM,kCAAkC,CAAC;AAE7E,wBAAwB;AACxB,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,kEAAkE;AAClE,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAEhC,mDAAmD;AACnD,OAAO,EAAC,kBAAkB,EAAC,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAG7D,+BAA+B;AAC/B,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,kBAAkB;IAC7B,OAAO,EAAE,gBAAgB;IACzB,OAAO,EAAE,gBAAgB;IACzB,WAAW,EAAE,oBAAoB;IACjC,UAAU,EAAE,mBAAmB;CACvB,CAAC;AAEX,MAAM,UAAU,uBAAuB,CAAC,OAEvC;IACC,MAAM,iBAAiB,GAAG,OAAO,EAAE,iBAAiB,IAAI,IAAI,CAAC;IAC7D,MAAM,UAAU,GAA+B;QAC7C,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,gBAAgB;QAChB,gBAAgB;QAChB,oBAAoB;KACrB,CAAC;IAEF,IAAI,iBAAiB,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,mBAA+C,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAsC,EACtC,IAAmB,EACnB,iBAAyB,mBAAmB;IAE5C,MAAM,KAAK,GAAyB,EAAE,CAAC;IAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,GAAG,cAAc,GAAG,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACvE,KAAK,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["// Re-export base types\nexport * from './base-types';\n\n// Import Tool type for createChartTools function\nimport type {Tool} from 'ai';\n\n// Re-export error classes for chart definitions\nexport * from './errors';\n\n// Import specific types needed before re-exports\nimport type {ChartTypeDefinition} from './base-types';\n\n// CRITICAL: Export ChartConfig FIRST, before importing Settings components\n// Export ChartConfig from separate file to avoid circular dependencies\n// (chart-types/index imports Settings components, which import ChartSettingsContext,\n// which imports ChartConfig)\nexport {ChartConfig, type ChartSettings, type ChartType} from './chart-config';\n\n// Re-export schemas\nexport * from './histogram/schema';\nexport * from './line-chart/schema';\nexport * from './count-plot/schema';\nexport * from './heatmap/schema';\nexport * from './box-plot/schema';\nexport * from './bubble-chart/schema';\nexport * from './custom-spec/schema';\n\n// Re-export Settings components\nexport {HistogramSettingsComponent} from './histogram/HistogramSettings';\nexport {LineChartSettingsComponent} from './line-chart/LineChartSettings';\nexport {CountPlotSettingsComponent} from './count-plot/CountPlotSettings';\nexport {HeatmapSettingsComponent} from './heatmap/HeatmapSettings';\nexport {BoxPlotSettingsComponent} from './box-plot/BoxPlotSettings';\nexport {BubbleChartSettingsComponent} from './bubble-chart/BubbleChartSettings';\nexport {CustomSpecSettingsComponent} from './custom-spec/CustomSpecSettings';\n\n// Re-export definitions\nexport * from './histogram/definition';\nexport * from './line-chart/definition';\nexport * from './count-plot/definition';\nexport * from './heatmap/definition';\nexport * from './box-plot/definition';\nexport * from './bubble-chart/definition';\nexport * from './custom-spec/definition';\n\n// Re-export tool types, schemas, validation, and AI tool creators\nexport * from './tool-types';\nexport * from './tool-schemas';\nexport * from './tool-validation';\nexport * from './histogram/tool';\nexport * from './line-chart/tool';\nexport * from './count-plot/tool';\nexport * from './heatmap/tool';\nexport * from './bubble-chart/tool';\nexport * from './box-plot/tool';\n\n// Import chart type definitions for legacy exports\nimport {histogramChartType} from './histogram/definition';\nimport {lineChartChartType} from './line-chart/definition';\nimport {countPlotChartType} from './count-plot/definition';\nimport {heatmapChartType} from './heatmap/definition';\nimport {boxPlotChartType} from './box-plot/definition';\nimport {bubbleChartChartType} from './bubble-chart/definition';\nimport {customSpecChartType} from './custom-spec/definition';\nimport type {ChartToolDeps} from './base-types';\n\n// Legacy compatibility exports\nexport const mosaicChartTypes = {\n histogram: histogramChartType,\n countPlot: countPlotChartType,\n lineChart: lineChartChartType,\n heatmap: heatmapChartType,\n boxPlot: boxPlotChartType,\n bubbleChart: bubbleChartChartType,\n customSpec: customSpecChartType,\n} as const;\n\nexport function createDefaultChartTypes(options?: {\n includeCustomSpec?: boolean;\n}): ChartTypeDefinition<any>[] {\n const includeCustomSpec = options?.includeCustomSpec ?? true;\n const chartTypes: ChartTypeDefinition<any>[] = [\n histogramChartType,\n countPlotChartType,\n lineChartChartType,\n heatmapChartType,\n boxPlotChartType,\n bubbleChartChartType,\n ];\n\n if (includeCustomSpec) {\n chartTypes.push(customSpecChartType as ChartTypeDefinition<any>);\n }\n\n return chartTypes;\n}\n\n/**\n * Dynamically generate AI tools from chart type definitions.\n *\n * @param chartTypes Array of chart type definitions\n * @param deps Dependencies needed by tool creators (resolveResources, createChart)\n * @param toolNamePrefix Prefix for generated tool names (default: 'create_dashboard_')\n * @returns Record mapping tool names to tool instances\n *\n * @example\n * const chartTypes = createDefaultChartTypes({includeCustomSpec: false});\n * const tools = createChartTools(chartTypes, deps);\n * // Returns: { create_dashboard_histogram: ..., create_dashboard_line_chart: ..., ... }\n */\nexport function createChartTools(\n chartTypes: ChartTypeDefinition<any>[],\n deps: ChartToolDeps,\n toolNamePrefix: string = 'create_dashboard_',\n): Record<string, Tool> {\n const tools: Record<string, Tool> = {};\n\n for (const chartType of chartTypes) {\n if (chartType.createTool) {\n const toolName = `${toolNamePrefix}${chartType.id.replace(/-/g, '_')}`;\n tools[toolName] = chartType.createTool(deps);\n }\n }\n\n return tools;\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Explicit settings component for line chart.
|
|
4
|
+
* Composes primitive and compound components for full control over the UI.
|
|
5
|
+
*/
|
|
6
|
+
export declare const LineChartSettingsComponent: FC;
|
|
7
|
+
//# sourceMappingURL=LineChartSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineChartSettings.d.ts","sourceRoot":"","sources":["../../../src/chart-types/line-chart/LineChartSettings.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAC,MAAM,OAAO,CAAC;AAS9B;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,EAyCxC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Field } from '../../chart-builders/Field';
|
|
3
|
+
import { ColumnSelector } from '../../chart-builders/ColumnSelector';
|
|
4
|
+
import { TemporalGranularitySelector } from '../../chart-builders/TemporalGranularitySelector';
|
|
5
|
+
import { useChartSettingsContext } from '../../chart/chart-settings/ChartSettingsContext';
|
|
6
|
+
import { MultiFieldSelector } from '../../chart-builders/MultiFieldSelector';
|
|
7
|
+
import { isTemporalType } from '../../chart-builders/constants';
|
|
8
|
+
/**
|
|
9
|
+
* Explicit settings component for line chart.
|
|
10
|
+
* Composes primitive and compound components for full control over the UI.
|
|
11
|
+
*/
|
|
12
|
+
export const LineChartSettingsComponent = () => {
|
|
13
|
+
const { columns, onChangeConfig, config } = useChartSettingsContext('line-chart');
|
|
14
|
+
const xField = columns.find((c) => c.name === config.settings.x);
|
|
15
|
+
const isXFieldTemporal = xField && isTemporalType(xField.type);
|
|
16
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsx(Field, { label: "X Axis", required: true, children: _jsxs("div", { className: "grid items-end gap-2", style: {
|
|
17
|
+
gridTemplateColumns: isXFieldTemporal
|
|
18
|
+
? 'minmax(120px, 1fr) 100px'
|
|
19
|
+
: '1fr',
|
|
20
|
+
}, children: [_jsx(ColumnSelector.Quantitative, { value: config.settings.x, onChange: (x) => onChangeConfig('x', x) }), isXFieldTemporal && (_jsx(TemporalGranularitySelector, { value: config.settings.xInterval, onChange: (xInterval) => onChangeConfig('xInterval', xInterval), xFieldType: xField.type }))] }) }), _jsx(Field, { label: "Y Axis", required: true, children: _jsx(MultiFieldSelector.Numeric, { value: config.settings.yFields ?? [], onChange: (yFields) => onChangeConfig('yFields', yFields), showAggregation: Boolean(config.settings.xInterval) }) })] }));
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=LineChartSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineChartSettings.js","sourceRoot":"","sources":["../../../src/chart-types/line-chart/LineChartSettings.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,KAAK,EAAC,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAC,cAAc,EAAC,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAC,2BAA2B,EAAC,MAAM,kDAAkD,CAAC;AAC7F,OAAO,EAAC,uBAAuB,EAAC,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAC,kBAAkB,EAAC,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAO,GAAG,EAAE;IACjD,MAAM,EAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAC,GACrC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,gBAAgB,GAAG,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/D,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,KAAK,IAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,kBAC5B,eACE,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE;wBACL,mBAAmB,EAAE,gBAAgB;4BACnC,CAAC,CAAC,0BAA0B;4BAC5B,CAAC,CAAC,KAAK;qBACV,aAED,KAAC,cAAc,CAAC,YAAY,IAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,GACvC,EACD,gBAAgB,IAAI,CACnB,KAAC,2BAA2B,IAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,EAChC,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,EAC/D,UAAU,EAAE,MAAM,CAAC,IAAI,GACvB,CACH,IACG,GACA,EAER,KAAC,KAAK,IAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,kBAC5B,KAAC,kBAAkB,CAAC,OAAO,IACzB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,EACpC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,EACzD,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GACnD,GACI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC} from 'react';\nimport {Field} from '../../chart-builders/Field';\nimport {ColumnSelector} from '../../chart-builders/ColumnSelector';\n\nimport {TemporalGranularitySelector} from '../../chart-builders/TemporalGranularitySelector';\nimport {useChartSettingsContext} from '../../chart/chart-settings/ChartSettingsContext';\nimport {MultiFieldSelector} from '../../chart-builders/MultiFieldSelector';\nimport {isTemporalType} from '../../chart-builders/constants';\n\n/**\n * Explicit settings component for line chart.\n * Composes primitive and compound components for full control over the UI.\n */\nexport const LineChartSettingsComponent: FC = () => {\n const {columns, onChangeConfig, config} =\n useChartSettingsContext('line-chart');\n\n const xField = columns.find((c) => c.name === config.settings.x);\n const isXFieldTemporal = xField && isTemporalType(xField.type);\n\n return (\n <div className=\"space-y-4\">\n <Field label=\"X Axis\" required>\n <div\n className=\"grid items-end gap-2\"\n style={{\n gridTemplateColumns: isXFieldTemporal\n ? 'minmax(120px, 1fr) 100px'\n : '1fr',\n }}\n >\n <ColumnSelector.Quantitative\n value={config.settings.x}\n onChange={(x) => onChangeConfig('x', x)}\n />\n {isXFieldTemporal && (\n <TemporalGranularitySelector\n value={config.settings.xInterval}\n onChange={(xInterval) => onChangeConfig('xInterval', xInterval)}\n xFieldType={xField.type}\n />\n )}\n </div>\n </Field>\n\n <Field label=\"Y Axis\" required>\n <MultiFieldSelector.Numeric\n value={config.settings.yFields ?? []}\n onChange={(yFields) => onChangeConfig('yFields', yFields)}\n showAggregation={Boolean(config.settings.xInterval)}\n />\n </Field>\n </div>\n );\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/chart-types/line-chart/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAoB,MAAM,UAAU,CAAC;AAS5D,eAAO,MAAM,kBAAkB,EAAE,uBAAuB,CAAC,eAAe,CAUvE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { LineChartSettings } from './schema';
|
|
2
|
+
import { titleFromDescription } from '../../chart-builders/chartTypeUtils';
|
|
3
|
+
import { LineChartSettingsComponent } from './LineChartSettings';
|
|
4
|
+
import { createLineChartAiTool } from './tool';
|
|
5
|
+
import { LineChart } from 'lucide-react';
|
|
6
|
+
import { createLineChartSpec } from './spec';
|
|
7
|
+
const DESCRIPTION = 'Create a line chart of two fields';
|
|
8
|
+
export const lineChartChartType = {
|
|
9
|
+
id: 'line-chart',
|
|
10
|
+
label: 'Line Chart',
|
|
11
|
+
description: DESCRIPTION,
|
|
12
|
+
icon: LineChart,
|
|
13
|
+
schema: LineChartSettings,
|
|
14
|
+
settingsComponent: LineChartSettingsComponent,
|
|
15
|
+
buildTitle: titleFromDescription(DESCRIPTION),
|
|
16
|
+
createTool: createLineChartAiTool,
|
|
17
|
+
createSpec: createLineChartSpec,
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/chart-types/line-chart/definition.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAC,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AACvC,OAAO,EAAC,mBAAmB,EAAC,MAAM,QAAQ,CAAC;AAE3C,MAAM,WAAW,GAAG,mCAAmC,CAAC;AAExD,MAAM,CAAC,MAAM,kBAAkB,GAA6C;IAC1E,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,WAAW;IACxB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,iBAAiB;IACzB,iBAAiB,EAAE,0BAA0B;IAC7C,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC;IAC7C,UAAU,EAAE,qBAAqB;IACjC,UAAU,EAAE,mBAAmB;CAChC,CAAC","sourcesContent":["import type {SpecChartTypeDefinition} from '../base-types';\nimport {LineChartConfig, LineChartSettings} from './schema';\nimport {titleFromDescription} from '../../chart-builders/chartTypeUtils';\nimport {LineChartSettingsComponent} from './LineChartSettings';\nimport {createLineChartAiTool} from './tool';\nimport {LineChart} from 'lucide-react';\nimport {createLineChartSpec} from './spec';\n\nconst DESCRIPTION = 'Create a line chart of two fields';\n\nexport const lineChartChartType: SpecChartTypeDefinition<LineChartConfig> = {\n id: 'line-chart',\n label: 'Line Chart',\n description: DESCRIPTION,\n icon: LineChart,\n schema: LineChartSettings,\n settingsComponent: LineChartSettingsComponent,\n buildTitle: titleFromDescription(DESCRIPTION),\n createTool: createLineChartAiTool,\n createSpec: createLineChartSpec,\n};\n"]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const TemporalInterval: z.ZodEnum<{
|
|
3
|
+
second: "second";
|
|
4
|
+
minute: "minute";
|
|
5
|
+
hour: "hour";
|
|
6
|
+
day: "day";
|
|
7
|
+
week: "week";
|
|
8
|
+
month: "month";
|
|
9
|
+
quarter: "quarter";
|
|
10
|
+
year: "year";
|
|
11
|
+
}>;
|
|
12
|
+
export type TemporalInterval = z.infer<typeof TemporalInterval>;
|
|
13
|
+
export declare const AggregateFunction: z.ZodEnum<{
|
|
14
|
+
sum: "sum";
|
|
15
|
+
max: "max";
|
|
16
|
+
min: "min";
|
|
17
|
+
avg: "avg";
|
|
18
|
+
}>;
|
|
19
|
+
export type AggregateFunction = z.infer<typeof AggregateFunction>;
|
|
20
|
+
export declare const YFieldConfig: z.ZodObject<{
|
|
21
|
+
field: z.ZodString;
|
|
22
|
+
color: z.ZodOptional<z.ZodString>;
|
|
23
|
+
aggregate: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
24
|
+
sum: "sum";
|
|
25
|
+
max: "max";
|
|
26
|
+
min: "min";
|
|
27
|
+
avg: "avg";
|
|
28
|
+
}>>>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type YFieldConfig = z.infer<typeof YFieldConfig>;
|
|
31
|
+
export declare const LineChartSettings: z.ZodObject<{
|
|
32
|
+
x: z.ZodOptional<z.ZodString>;
|
|
33
|
+
xInterval: z.ZodOptional<z.ZodEnum<{
|
|
34
|
+
second: "second";
|
|
35
|
+
minute: "minute";
|
|
36
|
+
hour: "hour";
|
|
37
|
+
day: "day";
|
|
38
|
+
week: "week";
|
|
39
|
+
month: "month";
|
|
40
|
+
quarter: "quarter";
|
|
41
|
+
year: "year";
|
|
42
|
+
}>>;
|
|
43
|
+
yFields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
44
|
+
field: z.ZodString;
|
|
45
|
+
color: z.ZodOptional<z.ZodString>;
|
|
46
|
+
aggregate: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
47
|
+
sum: "sum";
|
|
48
|
+
max: "max";
|
|
49
|
+
min: "min";
|
|
50
|
+
avg: "avg";
|
|
51
|
+
}>>>;
|
|
52
|
+
}, z.core.$strip>>>;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
export type LineChartSettings = z.infer<typeof LineChartSettings>;
|
|
55
|
+
export declare const LineChartConfig: z.ZodObject<{
|
|
56
|
+
chartType: z.ZodLiteral<"line-chart">;
|
|
57
|
+
settings: z.ZodObject<{
|
|
58
|
+
x: z.ZodOptional<z.ZodString>;
|
|
59
|
+
xInterval: z.ZodOptional<z.ZodEnum<{
|
|
60
|
+
second: "second";
|
|
61
|
+
minute: "minute";
|
|
62
|
+
hour: "hour";
|
|
63
|
+
day: "day";
|
|
64
|
+
week: "week";
|
|
65
|
+
month: "month";
|
|
66
|
+
quarter: "quarter";
|
|
67
|
+
year: "year";
|
|
68
|
+
}>>;
|
|
69
|
+
yFields: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
70
|
+
field: z.ZodString;
|
|
71
|
+
color: z.ZodOptional<z.ZodString>;
|
|
72
|
+
aggregate: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
73
|
+
sum: "sum";
|
|
74
|
+
max: "max";
|
|
75
|
+
min: "min";
|
|
76
|
+
avg: "avg";
|
|
77
|
+
}>>>;
|
|
78
|
+
}, z.core.$strip>>>;
|
|
79
|
+
}, z.core.$strip>;
|
|
80
|
+
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
81
|
+
}, z.core.$strip>;
|
|
82
|
+
export type LineChartConfig = z.infer<typeof LineChartConfig>;
|
|
83
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/chart-types/line-chart/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,eAAO,MAAM,gBAAgB;;;;;;;;;EAS3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAGhE,eAAO,MAAM,iBAAiB;;;;;EAAuC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAGlE,eAAO,MAAM,YAAY;;;;;;;;;iBAMvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;iBAY5B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;iBAI1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// Temporal interval enum
|
|
3
|
+
export const TemporalInterval = z.enum([
|
|
4
|
+
'year',
|
|
5
|
+
'quarter',
|
|
6
|
+
'month',
|
|
7
|
+
'week',
|
|
8
|
+
'day',
|
|
9
|
+
'hour',
|
|
10
|
+
'minute',
|
|
11
|
+
'second',
|
|
12
|
+
]);
|
|
13
|
+
// Aggregate function enum
|
|
14
|
+
export const AggregateFunction = z.enum(['sum', 'avg', 'min', 'max']);
|
|
15
|
+
// Y-field configuration
|
|
16
|
+
export const YFieldConfig = z.object({
|
|
17
|
+
field: z.string().describe('Numeric column name to plot on Y axis'),
|
|
18
|
+
color: z.string().optional().describe('Optional color for this line'),
|
|
19
|
+
aggregate: AggregateFunction.optional()
|
|
20
|
+
.default('sum')
|
|
21
|
+
.describe('Aggregation function: sum, avg, min, or max'),
|
|
22
|
+
});
|
|
23
|
+
export const LineChartSettings = z.object({
|
|
24
|
+
x: z
|
|
25
|
+
.string()
|
|
26
|
+
.optional()
|
|
27
|
+
.describe('Column for X axis, typically temporal (date/time)'),
|
|
28
|
+
xInterval: TemporalInterval.optional().describe('Temporal binning interval: year, month, day, hour, etc.'),
|
|
29
|
+
yFields: z
|
|
30
|
+
.array(YFieldConfig)
|
|
31
|
+
.optional()
|
|
32
|
+
.describe('Array of Y fields to plot, supports multiple lines'),
|
|
33
|
+
});
|
|
34
|
+
export const LineChartConfig = z.object({
|
|
35
|
+
chartType: z.literal('line-chart'),
|
|
36
|
+
settings: LineChartSettings,
|
|
37
|
+
settingsOpen: z.boolean().optional(),
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/chart-types/line-chart/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,yBAAyB;AACzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;CACT,CAAC,CAAC;AAGH,0BAA0B;AAC1B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAGtE,wBAAwB;AACxB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACrE,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE;SACpC,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,6CAA6C,CAAC;CAC3D,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,CAAC,EAAE,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC7C,yDAAyD,CAC1D;IACD,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,YAAY,CAAC;SACnB,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;CAClE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAClC,QAAQ,EAAE,iBAAiB;IAC3B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC","sourcesContent":["import {z} from 'zod';\n\n// Temporal interval enum\nexport const TemporalInterval = z.enum([\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n]);\nexport type TemporalInterval = z.infer<typeof TemporalInterval>;\n\n// Aggregate function enum\nexport const AggregateFunction = z.enum(['sum', 'avg', 'min', 'max']);\nexport type AggregateFunction = z.infer<typeof AggregateFunction>;\n\n// Y-field configuration\nexport const YFieldConfig = z.object({\n field: z.string().describe('Numeric column name to plot on Y axis'),\n color: z.string().optional().describe('Optional color for this line'),\n aggregate: AggregateFunction.optional()\n .default('sum')\n .describe('Aggregation function: sum, avg, min, or max'),\n});\nexport type YFieldConfig = z.infer<typeof YFieldConfig>;\n\nexport const LineChartSettings = z.object({\n x: z\n .string()\n .optional()\n .describe('Column for X axis, typically temporal (date/time)'),\n xInterval: TemporalInterval.optional().describe(\n 'Temporal binning interval: year, month, day, hour, etc.',\n ),\n yFields: z\n .array(YFieldConfig)\n .optional()\n .describe('Array of Y fields to plot, supports multiple lines'),\n});\n\nexport type LineChartSettings = z.infer<typeof LineChartSettings>;\n\nexport const LineChartConfig = z.object({\n chartType: z.literal('line-chart'),\n settings: LineChartSettings,\n settingsOpen: z.boolean().optional(),\n});\n\nexport type LineChartConfig = z.infer<typeof LineChartConfig>;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../src/chart-types/line-chart/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAuB3C,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,EAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAC,EAAE,iBAAiB,GACzC,IAAI,CAkFN"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { SpecGenerationError } from '../errors';
|
|
2
|
+
// Chart color palette matching theme colors from tailwind-preset.css
|
|
3
|
+
const CHART_COLORS = [
|
|
4
|
+
'#ea7c5c', // chart-1: hsl(12, 76%, 61%)
|
|
5
|
+
'#2a9d8f', // chart-2: hsl(173, 58%, 39%)
|
|
6
|
+
'#264653', // chart-3: hsl(197, 37%, 24%)
|
|
7
|
+
'#e9c46a', // chart-4: hsl(43, 74%, 66%)
|
|
8
|
+
'#f4a261', // chart-5: hsl(27, 87%, 67%)
|
|
9
|
+
];
|
|
10
|
+
function getLineColor(fieldConfig, index) {
|
|
11
|
+
if (fieldConfig.color) {
|
|
12
|
+
return fieldConfig.color;
|
|
13
|
+
}
|
|
14
|
+
// CHART_COLORS is non-empty, so this is always defined
|
|
15
|
+
return CHART_COLORS[index % CHART_COLORS.length];
|
|
16
|
+
}
|
|
17
|
+
export function createLineChartSpec(tableName, { x, yFields, xInterval }) {
|
|
18
|
+
if (!x) {
|
|
19
|
+
throw new SpecGenerationError('X field is required for line chart');
|
|
20
|
+
}
|
|
21
|
+
if (!yFields || yFields.length === 0) {
|
|
22
|
+
throw new SpecGenerationError('At least one Y field is required for line chart');
|
|
23
|
+
}
|
|
24
|
+
const plotMarks = [];
|
|
25
|
+
// When temporal aggregation is active, use SQL binning
|
|
26
|
+
const dataSource = xInterval
|
|
27
|
+
? {
|
|
28
|
+
from: tableName,
|
|
29
|
+
filterBy: '$brush',
|
|
30
|
+
}
|
|
31
|
+
: { from: tableName, filterBy: '$brush' };
|
|
32
|
+
// Generate lineY and text marks for each Y field
|
|
33
|
+
yFields.forEach((fieldConfig, index) => {
|
|
34
|
+
const color = getLineColor(fieldConfig, index);
|
|
35
|
+
const aggregate = fieldConfig.aggregate || 'sum';
|
|
36
|
+
// When temporal aggregation is active, use bin for X and aggregation for Y
|
|
37
|
+
if (xInterval) {
|
|
38
|
+
// Use bin syntax for temporal aggregation
|
|
39
|
+
plotMarks.push({
|
|
40
|
+
mark: 'lineY',
|
|
41
|
+
data: dataSource,
|
|
42
|
+
x: { bin: x, interval: xInterval },
|
|
43
|
+
y: { [aggregate]: fieldConfig.field },
|
|
44
|
+
stroke: color,
|
|
45
|
+
});
|
|
46
|
+
// Text label with aggregation info
|
|
47
|
+
plotMarks.push({
|
|
48
|
+
mark: 'text',
|
|
49
|
+
data: dataSource,
|
|
50
|
+
x: { bin: x, interval: xInterval },
|
|
51
|
+
y: { [aggregate]: fieldConfig.field },
|
|
52
|
+
text: [`${fieldConfig.field} (${aggregate})`],
|
|
53
|
+
fill: color,
|
|
54
|
+
dx: 5,
|
|
55
|
+
dy: -5,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// No aggregation - direct field references
|
|
60
|
+
plotMarks.push({
|
|
61
|
+
mark: 'lineY',
|
|
62
|
+
data: dataSource,
|
|
63
|
+
x,
|
|
64
|
+
y: fieldConfig.field,
|
|
65
|
+
stroke: color,
|
|
66
|
+
});
|
|
67
|
+
plotMarks.push({
|
|
68
|
+
mark: 'text',
|
|
69
|
+
data: dataSource,
|
|
70
|
+
x,
|
|
71
|
+
y: fieldConfig.field,
|
|
72
|
+
text: [fieldConfig.field],
|
|
73
|
+
fill: color,
|
|
74
|
+
dx: 5,
|
|
75
|
+
dy: -5,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
// Add brush
|
|
80
|
+
plotMarks.push({ select: 'intervalX', as: '$brush' });
|
|
81
|
+
return {
|
|
82
|
+
plot: plotMarks,
|
|
83
|
+
xLabel: x,
|
|
84
|
+
yLabel: undefined,
|
|
85
|
+
height: 250,
|
|
86
|
+
width: 380,
|
|
87
|
+
margins: { left: 50, right: 20, top: 20, bottom: 50 },
|
|
88
|
+
params: { brush: { select: 'crossfilter' } },
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=spec.js.map
|