@sqlrooms/mosaic 0.29.0-rc.3 → 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 +90 -1
- package/dist/MosaicChartBuilder.d.ts +0 -4
- package/dist/MosaicChartBuilder.d.ts.map +1 -1
- package/dist/MosaicChartBuilder.js +0 -6
- package/dist/MosaicChartBuilder.js.map +1 -1
- package/dist/MosaicSlice.d.ts +17 -10
- package/dist/MosaicSlice.d.ts.map +1 -1
- package/dist/MosaicSlice.js +4 -1
- package/dist/MosaicSlice.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/{dashboard → chart}/chart-settings/ChartSettings.d.ts +12 -7
- 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.map +1 -0
- package/dist/{dashboard → chart}/chart-settings/useTableColumns.js +1 -1
- 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 +2 -2
- package/dist/chart-builders/ChartBuilderActions.d.ts.map +1 -1
- package/dist/chart-builders/ChartBuilderActions.js +24 -16
- package/dist/chart-builders/ChartBuilderActions.js.map +1 -1
- package/dist/chart-builders/ChartBuilderContent.d.ts +4 -6
- package/dist/chart-builders/ChartBuilderContent.d.ts.map +1 -1
- package/dist/chart-builders/ChartBuilderContent.js.map +1 -1
- package/dist/chart-builders/ChartBuilderContext.d.ts +5 -6
- package/dist/chart-builders/ChartBuilderContext.d.ts.map +1 -1
- package/dist/chart-builders/ChartBuilderContext.js.map +1 -1
- package/dist/chart-builders/ChartBuilderDialog.d.ts +7 -10
- package/dist/chart-builders/ChartBuilderDialog.d.ts.map +1 -1
- package/dist/chart-builders/ChartBuilderDialog.js +1 -1
- package/dist/chart-builders/ChartBuilderDialog.js.map +1 -1
- package/dist/chart-builders/ChartBuilderFields.d.ts +2 -2
- package/dist/chart-builders/ChartBuilderFields.d.ts.map +1 -1
- package/dist/chart-builders/ChartBuilderFields.js +28 -14
- package/dist/chart-builders/ChartBuilderFields.js.map +1 -1
- package/dist/chart-builders/ChartBuilderRoot.d.ts +4 -6
- package/dist/chart-builders/ChartBuilderRoot.d.ts.map +1 -1
- package/dist/chart-builders/ChartBuilderRoot.js +9 -28
- package/dist/chart-builders/ChartBuilderRoot.js.map +1 -1
- 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 +1 -1
- package/dist/chart-builders/chartSpecTitle.d.ts.map +1 -1
- package/dist/chart-builders/chartSpecTitle.js.map +1 -1
- package/dist/chart-builders/chartTypeUtils.d.ts +5 -9
- package/dist/chart-builders/chartTypeUtils.d.ts.map +1 -1
- package/dist/chart-builders/chartTypeUtils.js +24 -32
- package/dist/chart-builders/chartTypeUtils.js.map +1 -1
- package/dist/chart-builders/constants.d.ts +5 -0
- package/dist/chart-builders/constants.d.ts.map +1 -1
- package/dist/chart-builders/constants.js +13 -0
- package/dist/chart-builders/constants.js.map +1 -1
- package/dist/chart-builders/createChartBuilderStore.d.ts +5 -5
- package/dist/chart-builders/createChartBuilderStore.d.ts.map +1 -1
- package/dist/chart-builders/createChartBuilderStore.js.map +1 -1
- package/dist/chart-types/base-types.d.ts +112 -18
- package/dist/chart-types/base-types.d.ts.map +1 -1
- package/dist/chart-types/base-types.js +6 -1
- package/dist/chart-types/base-types.js.map +1 -1
- 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 +3 -3
- package/dist/chart-types/box-plot/definition.d.ts.map +1 -1
- package/dist/chart-types/box-plot/definition.js +10 -36
- package/dist/chart-types/box-plot/definition.js.map +1 -1
- 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 +4 -5
- package/dist/chart-types/box-plot/schema.d.ts.map +1 -1
- package/dist/chart-types/box-plot/schema.js +2 -3
- package/dist/chart-types/box-plot/schema.js.map +1 -1
- 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 +3 -3
- package/dist/chart-types/bubble-chart/definition.d.ts.map +1 -1
- package/dist/chart-types/bubble-chart/definition.js +10 -39
- package/dist/chart-types/bubble-chart/definition.js.map +1 -1
- package/dist/chart-types/bubble-chart/schema.d.ts +2 -1
- package/dist/chart-types/bubble-chart/schema.d.ts.map +1 -1
- package/dist/chart-types/bubble-chart/schema.js +6 -3
- package/dist/chart-types/bubble-chart/schema.js.map +1 -1
- 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 +3 -3
- package/dist/chart-types/count-plot/definition.d.ts.map +1 -1
- package/dist/chart-types/count-plot/definition.js +10 -41
- package/dist/chart-types/count-plot/definition.js.map +1 -1
- package/dist/chart-types/count-plot/schema.d.ts +0 -1
- package/dist/chart-types/count-plot/schema.d.ts.map +1 -1
- package/dist/chart-types/count-plot/schema.js +4 -2
- package/dist/chart-types/count-plot/schema.js.map +1 -1
- 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 +3 -3
- package/dist/chart-types/custom-spec/definition.d.ts.map +1 -1
- package/dist/chart-types/custom-spec/definition.js +8 -19
- package/dist/chart-types/custom-spec/definition.js.map +1 -1
- package/dist/chart-types/custom-spec/schema.d.ts +6 -3
- package/dist/chart-types/custom-spec/schema.d.ts.map +1 -1
- package/dist/chart-types/custom-spec/schema.js +3 -2
- package/dist/chart-types/custom-spec/schema.js.map +1 -1
- 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 +3 -3
- package/dist/chart-types/heatmap/definition.d.ts.map +1 -1
- package/dist/chart-types/heatmap/definition.js +10 -40
- package/dist/chart-types/heatmap/definition.js.map +1 -1
- package/dist/chart-types/heatmap/schema.d.ts +0 -1
- package/dist/chart-types/heatmap/schema.d.ts.map +1 -1
- package/dist/chart-types/heatmap/schema.js +2 -3
- package/dist/chart-types/heatmap/schema.js.map +1 -1
- 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 +3 -3
- package/dist/chart-types/histogram/definition.d.ts.map +1 -1
- package/dist/chart-types/histogram/definition.js +10 -40
- package/dist/chart-types/histogram/definition.js.map +1 -1
- package/dist/chart-types/histogram/schema.d.ts +0 -1
- package/dist/chart-types/histogram/schema.d.ts.map +1 -1
- package/dist/chart-types/histogram/schema.js +4 -2
- package/dist/chart-types/histogram/schema.js.map +1 -1
- 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 +102 -96
- package/dist/chart-types/index.d.ts.map +1 -1
- package/dist/chart-types/index.js +71 -41
- package/dist/chart-types/index.js.map +1 -1
- 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 +3 -3
- package/dist/chart-types/line-chart/definition.d.ts.map +1 -1
- package/dist/chart-types/line-chart/definition.js +10 -37
- package/dist/chart-types/line-chart/definition.js.map +1 -1
- package/dist/chart-types/line-chart/schema.d.ts +69 -3
- package/dist/chart-types/line-chart/schema.d.ts.map +1 -1
- package/dist/chart-types/line-chart/schema.js +30 -3
- package/dist/chart-types/line-chart/schema.js.map +1 -1
- 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/MosaicDashboard.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboard.js +7 -11
- package/dist/dashboard/MosaicDashboard.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/MosaicDashboardPanelLayout.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboardPanelLayout.js +23 -2
- package/dist/dashboard/MosaicDashboardPanelLayout.js.map +1 -1
- package/dist/dashboard/MosaicDashboardPanels.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboardPanels.js +2 -1
- package/dist/dashboard/MosaicDashboardPanels.js.map +1 -1
- package/dist/dashboard/MosaicDashboardSlice.d.ts +212 -87
- package/dist/dashboard/MosaicDashboardSlice.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboardSlice.js +65 -18
- package/dist/dashboard/MosaicDashboardSlice.js.map +1 -1
- package/dist/dashboard/MosaicDashboardToolbar.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboardToolbar.js +9 -4
- package/dist/dashboard/MosaicDashboardToolbar.js.map +1 -1
- package/dist/dashboard/defaultPanelRenderers.d.ts.map +1 -1
- package/dist/dashboard/defaultPanelRenderers.js +6 -4
- package/dist/dashboard/defaultPanelRenderers.js.map +1 -1
- 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/index.d.ts +6 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -7
- package/dist/index.js.map +1 -1
- package/dist/{dashboard → profiler}/MosaicDashboardProfilerPanelRenderer.d.ts +1 -1
- package/dist/profiler/MosaicDashboardProfilerPanelRenderer.d.ts.map +1 -0
- package/dist/{dashboard → profiler}/MosaicDashboardProfilerPanelRenderer.js +2 -2
- package/dist/profiler/MosaicDashboardProfilerPanelRenderer.js.map +1 -0
- 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/package.json +38 -35
- package/dist/chart-builders/builders.d.ts +0 -34
- package/dist/chart-builders/builders.d.ts.map +0 -1
- package/dist/chart-builders/builders.js +0 -51
- package/dist/chart-builders/builders.js.map +0 -1
- package/dist/chart-builders/describeChartSpecs.d.ts +0 -9
- package/dist/chart-builders/describeChartSpecs.d.ts.map +0 -1
- package/dist/chart-builders/describeChartSpecs.js +0 -41
- package/dist/chart-builders/describeChartSpecs.js.map +0 -1
- package/dist/chart-builders/hooks/useChartFieldForm.d.ts +0 -13
- package/dist/chart-builders/hooks/useChartFieldForm.d.ts.map +0 -1
- package/dist/chart-builders/hooks/useChartFieldForm.js +0 -12
- package/dist/chart-builders/hooks/useChartFieldForm.js.map +0 -1
- package/dist/chart-builders/types.d.ts +0 -23
- package/dist/chart-builders/types.d.ts.map +0 -1
- package/dist/chart-builders/types.js +0 -17
- package/dist/chart-builders/types.js.map +0 -1
- package/dist/chart-types/box-plot/index.d.ts +0 -3
- package/dist/chart-types/box-plot/index.d.ts.map +0 -1
- package/dist/chart-types/box-plot/index.js +0 -3
- package/dist/chart-types/box-plot/index.js.map +0 -1
- package/dist/chart-types/bubble-chart/index.d.ts +0 -3
- package/dist/chart-types/bubble-chart/index.d.ts.map +0 -1
- package/dist/chart-types/bubble-chart/index.js +0 -3
- package/dist/chart-types/bubble-chart/index.js.map +0 -1
- package/dist/chart-types/count-plot/index.d.ts +0 -3
- package/dist/chart-types/count-plot/index.d.ts.map +0 -1
- package/dist/chart-types/count-plot/index.js +0 -3
- package/dist/chart-types/count-plot/index.js.map +0 -1
- package/dist/chart-types/custom-spec/index.d.ts +0 -3
- package/dist/chart-types/custom-spec/index.d.ts.map +0 -1
- package/dist/chart-types/custom-spec/index.js +0 -3
- package/dist/chart-types/custom-spec/index.js.map +0 -1
- package/dist/chart-types/ecdf/definition.d.ts +0 -4
- package/dist/chart-types/ecdf/definition.d.ts.map +0 -1
- package/dist/chart-types/ecdf/definition.js +0 -47
- package/dist/chart-types/ecdf/definition.js.map +0 -1
- package/dist/chart-types/ecdf/index.d.ts +0 -3
- package/dist/chart-types/ecdf/index.d.ts.map +0 -1
- package/dist/chart-types/ecdf/index.js +0 -3
- package/dist/chart-types/ecdf/index.js.map +0 -1
- package/dist/chart-types/ecdf/schema.d.ts +0 -15
- package/dist/chart-types/ecdf/schema.d.ts.map +0 -1
- package/dist/chart-types/ecdf/schema.js +0 -11
- package/dist/chart-types/ecdf/schema.js.map +0 -1
- package/dist/chart-types/heatmap/index.d.ts +0 -3
- package/dist/chart-types/heatmap/index.d.ts.map +0 -1
- package/dist/chart-types/heatmap/index.js +0 -3
- package/dist/chart-types/heatmap/index.js.map +0 -1
- package/dist/chart-types/histogram/index.d.ts +0 -3
- package/dist/chart-types/histogram/index.d.ts.map +0 -1
- package/dist/chart-types/histogram/index.js +0 -3
- package/dist/chart-types/histogram/index.js.map +0 -1
- package/dist/chart-types/line-chart/index.d.ts +0 -3
- package/dist/chart-types/line-chart/index.d.ts.map +0 -1
- package/dist/chart-types/line-chart/index.js +0 -3
- package/dist/chart-types/line-chart/index.js.map +0 -1
- package/dist/chart-types/registry.d.ts +0 -5
- package/dist/chart-types/registry.d.ts.map +0 -1
- package/dist/chart-types/registry.js +0 -28
- package/dist/chart-types/registry.js.map +0 -1
- package/dist/dashboard/MosaicDashboardProfilerPanelRenderer.d.ts.map +0 -1
- package/dist/dashboard/MosaicDashboardProfilerPanelRenderer.js.map +0 -1
- package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.d.ts +0 -4
- package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.d.ts.map +0 -1
- package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.js +0 -29
- package/dist/dashboard/MosaicDashboardVgPlotHeaderActions.js.map +0 -1
- package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.d.ts +0 -3
- package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.d.ts.map +0 -1
- package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.js +0 -68
- package/dist/dashboard/MosaicDashboardVgPlotPanelRenderer.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/dashboard/chart-settings/ChartSettings.d.ts.map +0 -1
- package/dist/dashboard/chart-settings/ChartSettings.js +0 -90
- package/dist/dashboard/chart-settings/ChartSettings.js.map +0 -1
- package/dist/dashboard/chart-settings/ChartSettingsContext.d.ts +0 -20
- package/dist/dashboard/chart-settings/ChartSettingsContext.d.ts.map +0 -1
- package/dist/dashboard/chart-settings/ChartSettingsContext.js +0 -14
- package/dist/dashboard/chart-settings/ChartSettingsContext.js.map +0 -1
- package/dist/dashboard/chart-settings/ChartSettingsPanel.d.ts +0 -11
- package/dist/dashboard/chart-settings/ChartSettingsPanel.d.ts.map +0 -1
- package/dist/dashboard/chart-settings/ChartSettingsPanel.js +0 -8
- package/dist/dashboard/chart-settings/ChartSettingsPanel.js.map +0 -1
- package/dist/dashboard/chart-settings/ChartTypeSelector.d.ts +0 -11
- package/dist/dashboard/chart-settings/ChartTypeSelector.d.ts.map +0 -1
- package/dist/dashboard/chart-settings/ChartTypeSelector.js +0 -17
- package/dist/dashboard/chart-settings/ChartTypeSelector.js.map +0 -1
- package/dist/dashboard/chart-settings/DynamicChartSettings.d.ts +0 -11
- package/dist/dashboard/chart-settings/DynamicChartSettings.d.ts.map +0 -1
- package/dist/dashboard/chart-settings/DynamicChartSettings.js +0 -19
- package/dist/dashboard/chart-settings/DynamicChartSettings.js.map +0 -1
- package/dist/dashboard/chart-settings/index.d.ts +0 -6
- package/dist/dashboard/chart-settings/index.d.ts.map +0 -1
- package/dist/dashboard/chart-settings/index.js +0 -6
- package/dist/dashboard/chart-settings/index.js.map +0 -1
- package/dist/dashboard/chart-settings/useTableColumns.d.ts.map +0 -1
- package/dist/dashboard/chart-settings/useTableColumns.js.map +0 -1
- package/dist/dashboard/generateMosaicChartSpec.d.ts +0 -15
- package/dist/dashboard/generateMosaicChartSpec.d.ts.map +0 -1
- package/dist/dashboard/generateMosaicChartSpec.js +0 -30
- package/dist/dashboard/generateMosaicChartSpec.js.map +0 -1
- /package/dist/{dashboard → chart}/chart-settings/useTableColumns.d.ts +0 -0
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { useCallback } from 'react';
|
|
2
|
-
export function useChartFieldForm({ fields, values, onChange, }) {
|
|
3
|
-
const handleFieldChange = useCallback((fieldKey, value) => {
|
|
4
|
-
onChange(fieldKey, value);
|
|
5
|
-
}, [onChange]);
|
|
6
|
-
return {
|
|
7
|
-
fields,
|
|
8
|
-
values,
|
|
9
|
-
handleFieldChange,
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=useChartFieldForm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useChartFieldForm.js","sourceRoot":"","sources":["../../../src/chart-builders/hooks/useChartFieldForm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,OAAO,CAAC;AASlC,MAAM,UAAU,iBAAiB,CAAC,EAChC,MAAM,EACN,MAAM,EACN,QAAQ,GACe;IACvB,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,QAAgB,EAAE,KAAc,EAAE,EAAE;QACnC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO;QACL,MAAM;QACN,MAAM;QACN,iBAAiB;KAClB,CAAC;AACJ,CAAC","sourcesContent":["import {useCallback} from 'react';\nimport type {ChartBuilderField} from '../types';\n\ninterface UseChartFieldFormProps {\n fields: ChartBuilderField[];\n values: Record<string, unknown>;\n onChange: (key: string, value: unknown) => void;\n}\n\nexport function useChartFieldForm({\n fields,\n values,\n onChange,\n}: UseChartFieldFormProps) {\n const handleFieldChange = useCallback(\n (fieldKey: string, value: unknown) => {\n onChange(fieldKey, value);\n },\n [onChange],\n );\n\n return {\n fields,\n values,\n handleFieldChange,\n };\n}\n"]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { ComponentType } from 'react';
|
|
2
|
-
import type { ChartTypeDefinition, ChartBuilderField, ChartBuilderColumn } from '../chart-types/base-types';
|
|
3
|
-
export type { ChartTypeDefinition, ChartBuilderField, ChartBuilderColumn };
|
|
4
|
-
/**
|
|
5
|
-
* Describes a chart builder template that generates Mosaic JSON specs
|
|
6
|
-
* (includes an icon for the chart-type grid).
|
|
7
|
-
*/
|
|
8
|
-
export interface ChartBuilderTemplate extends ChartTypeDefinition {
|
|
9
|
-
/** Icon component */
|
|
10
|
-
icon: ComponentType<{
|
|
11
|
-
className?: string;
|
|
12
|
-
}>;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Backward-compatible alias for earlier chart-builder helper APIs.
|
|
16
|
-
* Prefer {@link ChartTypeDefinition} for new code.
|
|
17
|
-
*/
|
|
18
|
-
export type ChartSpec = ChartTypeDefinition;
|
|
19
|
-
/** Strip UI-only fields from a template for non-UI chart-type contexts. */
|
|
20
|
-
export declare function toChartTypeDefinition(template: ChartBuilderTemplate): ChartTypeDefinition;
|
|
21
|
-
/** Backward-compatible alias for earlier helper APIs. */
|
|
22
|
-
export declare const toChartSpec: typeof toChartTypeDefinition;
|
|
23
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/chart-builders/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EAAC,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,qBAAqB;IACrB,IAAI,EAAE,aAAa,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAE5C,2EAA2E;AAC3E,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,oBAAoB,GAC7B,mBAAmB,CAqBrB;AAED,yDAAyD;AACzD,eAAO,MAAM,WAAW,8BAAwB,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/** Strip UI-only fields from a template for non-UI chart-type contexts. */
|
|
2
|
-
export function toChartTypeDefinition(template) {
|
|
3
|
-
const { id, label, description, fields, createSpec, buildTitle, isAvailable, aiDescription, } = template;
|
|
4
|
-
return {
|
|
5
|
-
id,
|
|
6
|
-
label,
|
|
7
|
-
description,
|
|
8
|
-
fields,
|
|
9
|
-
createSpec,
|
|
10
|
-
buildTitle,
|
|
11
|
-
isAvailable,
|
|
12
|
-
aiDescription,
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
/** Backward-compatible alias for earlier helper APIs. */
|
|
16
|
-
export const toChartSpec = toChartTypeDefinition;
|
|
17
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/chart-builders/types.ts"],"names":[],"mappings":"AAyBA,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB,CACnC,QAA8B;IAE9B,MAAM,EACJ,EAAE,EACF,KAAK,EACL,WAAW,EACX,MAAM,EACN,UAAU,EACV,UAAU,EACV,WAAW,EACX,aAAa,GACd,GAAG,QAAQ,CAAC;IACb,OAAO;QACL,EAAE;QACF,KAAK;QACL,WAAW;QACX,MAAM;QACN,UAAU;QACV,UAAU;QACV,WAAW;QACX,aAAa;KACd,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAC","sourcesContent":["import type {ComponentType} from 'react';\nimport type {\n ChartTypeDefinition,\n ChartBuilderField,\n ChartBuilderColumn,\n} from '../chart-types/base-types';\n\n// Re-export for backward compatibility\nexport type {ChartTypeDefinition, ChartBuilderField, ChartBuilderColumn};\n\n/**\n * Describes a chart builder template that generates Mosaic JSON specs\n * (includes an icon for the chart-type grid).\n */\nexport interface ChartBuilderTemplate extends ChartTypeDefinition {\n /** Icon component */\n icon: ComponentType<{className?: string}>;\n}\n\n/**\n * Backward-compatible alias for earlier chart-builder helper APIs.\n * Prefer {@link ChartTypeDefinition} for new code.\n */\nexport type ChartSpec = ChartTypeDefinition;\n\n/** Strip UI-only fields from a template for non-UI chart-type contexts. */\nexport function toChartTypeDefinition(\n template: ChartBuilderTemplate,\n): ChartTypeDefinition {\n const {\n id,\n label,\n description,\n fields,\n createSpec,\n buildTitle,\n isAvailable,\n aiDescription,\n } = template;\n return {\n id,\n label,\n description,\n fields,\n createSpec,\n buildTitle,\n isAvailable,\n aiDescription,\n };\n}\n\n/** Backward-compatible alias for earlier helper APIs. */\nexport const toChartSpec = toChartTypeDefinition;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart-types/box-plot/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart-types/box-plot/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC","sourcesContent":["export * from './schema';\nexport * from './definition';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart-types/bubble-chart/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart-types/bubble-chart/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC","sourcesContent":["export * from './schema';\nexport * from './definition';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart-types/count-plot/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart-types/count-plot/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC","sourcesContent":["export * from './schema';\nexport * from './definition';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart-types/custom-spec/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart-types/custom-spec/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC","sourcesContent":["export * from './schema';\nexport * from './definition';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/chart-types/ecdf/definition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAOhD,eAAO,MAAM,aAAa,EAAE,mBAAmB,CAAC,iBAAiB,CA4ChE,CAAC"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { QUANTITATIVE_COLUMN_TYPES } from '../../chart-builders/constants';
|
|
2
|
-
import { titleFromDescription } from '../../chart-builders/chartTypeUtils';
|
|
3
|
-
const FG_COLOR = 'var(--color-chart-1)';
|
|
4
|
-
const DESCRIPTION = 'Create an eCDF chart of a field';
|
|
5
|
-
export const ecdfChartType = {
|
|
6
|
-
id: 'ecdf',
|
|
7
|
-
label: 'eCDF',
|
|
8
|
-
description: DESCRIPTION,
|
|
9
|
-
aiDescription: 'Use for a cumulative distribution curve over one numeric or temporal column.',
|
|
10
|
-
fields: [
|
|
11
|
-
{
|
|
12
|
-
key: 'field',
|
|
13
|
-
label: 'Field',
|
|
14
|
-
required: true,
|
|
15
|
-
types: [...QUANTITATIVE_COLUMN_TYPES],
|
|
16
|
-
description: 'Numeric or temporal column used to build the cumulative distribution.',
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
buildTitle: titleFromDescription(DESCRIPTION),
|
|
20
|
-
createSpec: (tableName, { field }) => ({
|
|
21
|
-
plot: [
|
|
22
|
-
{
|
|
23
|
-
mark: 'areaY',
|
|
24
|
-
data: { from: tableName, filterBy: '$brush' },
|
|
25
|
-
x: field,
|
|
26
|
-
y: { sum: field, cumulative: true },
|
|
27
|
-
fill: FG_COLOR,
|
|
28
|
-
fillOpacity: 0.3,
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
mark: 'lineY',
|
|
32
|
-
data: { from: tableName, filterBy: '$brush' },
|
|
33
|
-
x: field,
|
|
34
|
-
y: { sum: field, cumulative: true },
|
|
35
|
-
stroke: FG_COLOR,
|
|
36
|
-
},
|
|
37
|
-
{ select: 'intervalX', as: '$brush' },
|
|
38
|
-
],
|
|
39
|
-
xLabel: field,
|
|
40
|
-
yLabel: 'Cumulative',
|
|
41
|
-
height: 250,
|
|
42
|
-
width: 380,
|
|
43
|
-
margins: { left: 50, right: 20, top: 20, bottom: 50 },
|
|
44
|
-
params: { brush: { select: 'crossfilter' } },
|
|
45
|
-
}),
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=definition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/chart-types/ecdf/definition.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AAEzE,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AACxC,MAAM,WAAW,GAAG,iCAAiC,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAA2C;IACnE,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,WAAW;IACxB,aAAa,EACX,8EAA8E;IAChF,MAAM,EAAE;QACN;YACE,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,GAAG,yBAAyB,CAAC;YACrC,WAAW,EACT,uEAAuE;SAC1E;KACF;IACD,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC;IAC7C,UAAU,EAAE,CAAC,SAAS,EAAE,EAAC,KAAK,EAAC,EAAQ,EAAE,CACvC,CAAC;QACC,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAC;gBAC3C,CAAC,EAAE,KAAK;gBACR,CAAC,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAC;gBACjC,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,GAAG;aACjB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAC;gBAC3C,CAAC,EAAE,KAAK;gBACR,CAAC,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAC;gBACjC,MAAM,EAAE,QAAQ;aACjB;YACD,EAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAC;SACpC;QACD,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAC;QACnD,MAAM,EAAE,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,aAAa,EAAC,EAAC;KACzC,CAAS;CACb,CAAC","sourcesContent":["import type {Spec} from '@uwdata/mosaic-spec';\nimport type {ChartTypeDefinition} from '../base-types';\nimport type {EcdfChartSettings} from './schema';\nimport {QUANTITATIVE_COLUMN_TYPES} from '../../chart-builders/constants';\nimport {titleFromDescription} from '../../chart-builders/chartTypeUtils';\n\nconst FG_COLOR = 'var(--color-chart-1)';\nconst DESCRIPTION = 'Create an eCDF chart of a field';\n\nexport const ecdfChartType: ChartTypeDefinition<EcdfChartSettings> = {\n id: 'ecdf',\n label: 'eCDF',\n description: DESCRIPTION,\n aiDescription:\n 'Use for a cumulative distribution curve over one numeric or temporal column.',\n fields: [\n {\n key: 'field',\n label: 'Field',\n required: true,\n types: [...QUANTITATIVE_COLUMN_TYPES],\n description:\n 'Numeric or temporal column used to build the cumulative distribution.',\n },\n ],\n buildTitle: titleFromDescription(DESCRIPTION),\n createSpec: (tableName, {field}): Spec =>\n ({\n plot: [\n {\n mark: 'areaY',\n data: {from: tableName, filterBy: '$brush'},\n x: field,\n y: {sum: field, cumulative: true},\n fill: FG_COLOR,\n fillOpacity: 0.3,\n },\n {\n mark: 'lineY',\n data: {from: tableName, filterBy: '$brush'},\n x: field,\n y: {sum: field, cumulative: true},\n stroke: FG_COLOR,\n },\n {select: 'intervalX', as: '$brush'},\n ],\n xLabel: field,\n yLabel: 'Cumulative',\n height: 250,\n width: 380,\n margins: {left: 50, right: 20, top: 20, bottom: 50},\n params: {brush: {select: 'crossfilter'}},\n }) as Spec,\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart-types/ecdf/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart-types/ecdf/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC","sourcesContent":["export * from './schema';\nexport * from './definition';\n"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export declare const EcdfChartSettings: z.ZodObject<{
|
|
3
|
-
field: z.ZodOptional<z.ZodString>;
|
|
4
|
-
}, z.core.$strip>;
|
|
5
|
-
export type EcdfChartSettings = z.infer<typeof EcdfChartSettings>;
|
|
6
|
-
export declare const EcdfChartConfig: z.ZodObject<{
|
|
7
|
-
chartType: z.ZodLiteral<"ecdf">;
|
|
8
|
-
settings: z.ZodObject<{
|
|
9
|
-
field: z.ZodOptional<z.ZodString>;
|
|
10
|
-
}, z.core.$strip>;
|
|
11
|
-
vgplot: z.ZodUnknown;
|
|
12
|
-
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
13
|
-
}, z.core.$strip>;
|
|
14
|
-
export type EcdfChartConfig = z.infer<typeof EcdfChartConfig>;
|
|
15
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/chart-types/ecdf/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,eAAe;;;;;;;iBAK1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export const EcdfChartSettings = z.object({
|
|
3
|
-
field: z.string().optional(),
|
|
4
|
-
});
|
|
5
|
-
export const EcdfChartConfig = z.object({
|
|
6
|
-
chartType: z.literal('ecdf'),
|
|
7
|
-
settings: EcdfChartSettings,
|
|
8
|
-
vgplot: z.unknown(),
|
|
9
|
-
settingsOpen: z.boolean().optional(),
|
|
10
|
-
});
|
|
11
|
-
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/chart-types/ecdf/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC","sourcesContent":["import {z} from 'zod';\n\nexport const EcdfChartSettings = z.object({\n field: z.string().optional(),\n});\n\nexport type EcdfChartSettings = z.infer<typeof EcdfChartSettings>;\n\nexport const EcdfChartConfig = z.object({\n chartType: z.literal('ecdf'),\n settings: EcdfChartSettings,\n vgplot: z.unknown(),\n settingsOpen: z.boolean().optional(),\n});\n\nexport type EcdfChartConfig = z.infer<typeof EcdfChartConfig>;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart-types/heatmap/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart-types/heatmap/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC","sourcesContent":["export * from './schema';\nexport * from './definition';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart-types/histogram/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart-types/histogram/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC","sourcesContent":["export * from './schema';\nexport * from './definition';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chart-types/line-chart/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chart-types/line-chart/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC","sourcesContent":["export * from './schema';\nexport * from './definition';\n"]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { ChartTypeDefinition } from './base-types';
|
|
2
|
-
export declare function registerChartType(definition: ChartTypeDefinition): void;
|
|
3
|
-
export declare function getChartTypeDefinition(id: string): ChartTypeDefinition | undefined;
|
|
4
|
-
export declare function getAllChartTypes(): ChartTypeDefinition[];
|
|
5
|
-
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/chart-types/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAsBtD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,QAEhE;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,GACT,mBAAmB,GAAG,SAAS,CAEjC;AAED,wBAAgB,gBAAgB,IAAI,mBAAmB,EAAE,CAExD"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { histogramChartType } from './histogram';
|
|
2
|
-
import { lineChartChartType } from './line-chart';
|
|
3
|
-
import { countPlotChartType } from './count-plot';
|
|
4
|
-
import { ecdfChartType } from './ecdf';
|
|
5
|
-
import { heatmapChartType } from './heatmap';
|
|
6
|
-
import { boxPlotChartType } from './box-plot';
|
|
7
|
-
import { bubbleChartChartType } from './bubble-chart';
|
|
8
|
-
import { customSpecChartType } from './custom-spec';
|
|
9
|
-
const chartTypeRegistry = new Map();
|
|
10
|
-
// Register all chart types
|
|
11
|
-
registerChartType(histogramChartType);
|
|
12
|
-
registerChartType(lineChartChartType);
|
|
13
|
-
registerChartType(countPlotChartType);
|
|
14
|
-
registerChartType(ecdfChartType);
|
|
15
|
-
registerChartType(heatmapChartType);
|
|
16
|
-
registerChartType(boxPlotChartType);
|
|
17
|
-
registerChartType(bubbleChartChartType);
|
|
18
|
-
registerChartType(customSpecChartType);
|
|
19
|
-
export function registerChartType(definition) {
|
|
20
|
-
chartTypeRegistry.set(definition.id, definition);
|
|
21
|
-
}
|
|
22
|
-
export function getChartTypeDefinition(id) {
|
|
23
|
-
return chartTypeRegistry.get(id);
|
|
24
|
-
}
|
|
25
|
-
export function getAllChartTypes() {
|
|
26
|
-
return Array.from(chartTypeRegistry.values());
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/chart-types/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAChD,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAC,gBAAgB,EAAC,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAC,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAC,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AAElD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA+B,CAAC;AAEjE,2BAA2B;AAC3B,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AACtC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AACtC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AACtC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AACjC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;AACpC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;AACpC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AACxC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAEvC,MAAM,UAAU,iBAAiB,CAAC,UAA+B;IAC/D,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,EAAU;IAEV,OAAO,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;AAChD,CAAC","sourcesContent":["import type {ChartTypeDefinition} from './base-types';\nimport {histogramChartType} from './histogram';\nimport {lineChartChartType} from './line-chart';\nimport {countPlotChartType} from './count-plot';\nimport {ecdfChartType} from './ecdf';\nimport {heatmapChartType} from './heatmap';\nimport {boxPlotChartType} from './box-plot';\nimport {bubbleChartChartType} from './bubble-chart';\nimport {customSpecChartType} from './custom-spec';\n\nconst chartTypeRegistry = new Map<string, ChartTypeDefinition>();\n\n// Register all chart types\nregisterChartType(histogramChartType);\nregisterChartType(lineChartChartType);\nregisterChartType(countPlotChartType);\nregisterChartType(ecdfChartType);\nregisterChartType(heatmapChartType);\nregisterChartType(boxPlotChartType);\nregisterChartType(bubbleChartChartType);\nregisterChartType(customSpecChartType);\n\nexport function registerChartType(definition: ChartTypeDefinition) {\n chartTypeRegistry.set(definition.id, definition);\n}\n\nexport function getChartTypeDefinition(\n id: string,\n): ChartTypeDefinition | undefined {\n return chartTypeRegistry.get(id);\n}\n\nexport function getAllChartTypes(): ChartTypeDefinition[] {\n return Array.from(chartTypeRegistry.values());\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardProfilerPanelRenderer.d.ts","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardProfilerPanelRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,4BAA4B,EACjC,aAAa,EAGd,MAAM,wBAAwB,CAAC;AAyDhC,eAAO,MAAM,oCAAoC,EAAE,4BAA4B,CAAC,aAAa,CAI1F,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardProfilerPanelRenderer.js","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardProfilerPanelRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AACzC,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,EACL,cAAc,GAEf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAIL,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAEhC,SAAS,+BAA+B,CAAC,EACvC,KAAK,EACL,cAAc,EACd,aAAa,GACc;IAC3B,MAAM,UAAU,GAAG,2BAA2B,CAC5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CACnC,CAAC;IACF,MAAM,SAAS,GAAG,cAAc,EAAE,SAAS,CAAC;IAC5C,MAAM,QAAQ,GACZ,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACvC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ;QACvB,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CACL,cAAK,SAAS,EAAC,2EAA2E,wDAEpF,CACP,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,KAAC,WAAW,IAAC,SAAS,EAAC,eAAe,GAAG,CAAC;IACnD,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,CACL,cAAK,SAAS,EAAC,2EAA2E,gDAEpF,CACP,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG;QACpB,SAAS;QACT,QAAQ,EAAE,QAAQ,IAAI,EAAE;QACxB,aAAa;KACgB,CAAC;IAEhC,OAAO,CACL,KAAC,cAAc,OAAK,aAAa,YAC/B,eAAK,SAAS,EAAC,8BAA8B,aAC3C,cAAK,SAAS,EAAC,8BAA8B,YAC3C,MAAC,cAAc,CAAC,KAAK,eACnB,KAAC,cAAc,CAAC,MAAM,KAAG,EACzB,KAAC,cAAc,CAAC,IAAI,KAAG,IACF,GACnB,EACN,KAAC,cAAc,CAAC,SAAS,KAAG,IACxB,GACS,CAClB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,oCAAoC,GAC/C;IACE,SAAS,EAAE,+BAA+B;IAC1C,IAAI,EAAE,mBAAmB;CAC1B,CAAC","sourcesContent":["import {SpinnerPane} from '@sqlrooms/ui';\nimport {TablePropertiesIcon} from 'lucide-react';\nimport {\n MosaicProfiler,\n type MosaicProfilerProps,\n} from '../profiler/MosaicProfiler';\nimport {\n type MosaicDashboardPanelRenderer,\n ProfilerPanel,\n type ProfilerPanelRendererProps,\n useStoreWithMosaicDashboard,\n} from './MosaicDashboardSlice';\n\nfunction MosaicDashboardProfilerRenderer({\n panel,\n resolvedSource,\n selectionName,\n}: ProfilerPanelRendererProps) {\n const connection = useStoreWithMosaicDashboard(\n (state) => state.mosaic.connection,\n );\n const tableName = resolvedSource?.tableName;\n const pageSize =\n typeof panel.config.pageSize === 'number'\n ? panel.config.pageSize\n : undefined;\n\n if (!tableName) {\n return (\n <div className=\"text-muted-foreground flex h-full items-center justify-center p-4 text-sm\">\n Profiler panels require a table source.\n </div>\n );\n }\n\n if (connection.status === 'loading') {\n return <SpinnerPane className=\"h-full w-full\" />;\n }\n\n if (connection.status !== 'ready') {\n return (\n <div className=\"text-muted-foreground flex h-full items-center justify-center p-4 text-sm\">\n Mosaic connection is not ready.\n </div>\n );\n }\n\n const profilerProps = {\n tableName,\n pageSize: pageSize ?? 10,\n selectionName,\n } satisfies MosaicProfilerProps;\n\n return (\n <MosaicProfiler {...profilerProps}>\n <div className=\"flex h-full min-h-0 flex-col\">\n <div className=\"min-h-0 flex-1 overflow-auto\">\n <MosaicProfiler.Table>\n <MosaicProfiler.Header />\n <MosaicProfiler.Rows />\n </MosaicProfiler.Table>\n </div>\n <MosaicProfiler.StatusBar />\n </div>\n </MosaicProfiler>\n );\n}\n\nexport const mosaicDashboardProfilerPanelRenderer: MosaicDashboardPanelRenderer<ProfilerPanel> =\n {\n component: MosaicDashboardProfilerRenderer,\n icon: TablePropertiesIcon,\n };\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardVgPlotHeaderActions.d.ts","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardVgPlotHeaderActions.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAE,EAAc,MAAM,OAAO,CAAC;AAE3C,OAAO,EAEL,KAAK,wBAAwB,EAE9B,MAAM,wBAAwB,CAAC;AAShC,eAAO,MAAM,kCAAkC,EAAE,EAAE,CACjD,wBAAwB,CA6CzB,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Button, Tooltip, TooltipContent, TooltipTrigger } from '@sqlrooms/ui';
|
|
3
|
-
import { SettingsIcon } from 'lucide-react';
|
|
4
|
-
import { useCallback } from 'react';
|
|
5
|
-
import { VgPlotSpecPopoverEditor } from './VgPlotSpecPopoverEditor';
|
|
6
|
-
import { useStoreWithMosaicDashboard, } from './MosaicDashboardSlice';
|
|
7
|
-
function getVgPlotSpec(panel) {
|
|
8
|
-
const spec = panel.config.vgplot;
|
|
9
|
-
return spec && typeof spec === 'object' && !Array.isArray(spec)
|
|
10
|
-
? spec
|
|
11
|
-
: null;
|
|
12
|
-
}
|
|
13
|
-
export const MosaicDashboardVgPlotHeaderActions = ({ dashboardId, panel }) => {
|
|
14
|
-
const updatePanel = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.updatePanel);
|
|
15
|
-
const spec = getVgPlotSpec(panel);
|
|
16
|
-
const isSettingsOpen = Boolean(panel.config.settingsOpen);
|
|
17
|
-
const handleSpecApply = useCallback((newSpec) => {
|
|
18
|
-
updatePanel(dashboardId, panel.id, {
|
|
19
|
-
config: { ...panel.config, vgplot: newSpec },
|
|
20
|
-
});
|
|
21
|
-
}, [dashboardId, panel.config, panel.id, updatePanel]);
|
|
22
|
-
const handleToggleSettings = useCallback(() => {
|
|
23
|
-
updatePanel(dashboardId, panel.id, {
|
|
24
|
-
config: { ...panel.config, settingsOpen: !isSettingsOpen },
|
|
25
|
-
});
|
|
26
|
-
}, [dashboardId, isSettingsOpen, panel.config, panel.id, updatePanel]);
|
|
27
|
-
return (_jsxs(_Fragment, { children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", className: "data-[state=active]:bg-accent h-6 w-6", "aria-label": "Chart settings", onClick: handleToggleSettings, "data-state": isSettingsOpen ? 'active' : 'inactive', children: _jsx(SettingsIcon, { className: "h-3.5 w-3.5" }) }) }), _jsx(TooltipContent, { children: "Chart settings" })] }), spec ? (_jsx(VgPlotSpecPopoverEditor, { value: spec, onApply: handleSpecApply })) : null] }));
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=MosaicDashboardVgPlotHeaderActions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardVgPlotHeaderActions.js","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardVgPlotHeaderActions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAU,WAAW,EAAC,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAGL,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAEhC,SAAS,aAAa,CAAC,KAAwB;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IACjC,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7D,CAAC,CAAE,IAAgC;QACnC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,kCAAkC,GAE3C,CAAC,EAAC,WAAW,EAAE,KAAK,EAAC,EAAE,EAAE;IAC3B,MAAM,WAAW,GAAG,2BAA2B,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAC7C,CAAC;IACF,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAE1D,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,OAAgC,EAAE,EAAE;QACnC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE;YACjC,MAAM,EAAE,EAAC,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAC;SAC3C,CAAC,CAAC;IACL,CAAC,EACD,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CACnD,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE;YACjC,MAAM,EAAE,EAAC,GAAG,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,cAAc,EAAC;SACzD,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAEvE,OAAO,CACL,8BACE,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,uCAAuC,gBACtC,gBAAgB,EAC3B,OAAO,EAAE,oBAAoB,gBACjB,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,YAElD,KAAC,YAAY,IAAC,SAAS,EAAC,aAAa,GAAG,GACjC,GACM,EACjB,KAAC,cAAc,iCAAgC,IACvC,EACT,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,uBAAuB,IAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,GAAI,CACnE,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {Button, Tooltip, TooltipContent, TooltipTrigger} from '@sqlrooms/ui';\nimport {SettingsIcon} from 'lucide-react';\nimport {type FC, useCallback} from 'react';\nimport {VgPlotSpecPopoverEditor} from './VgPlotSpecPopoverEditor';\nimport {\n VgPlotPanelConfig,\n type VgPlotPanelRendererProps,\n useStoreWithMosaicDashboard,\n} from './MosaicDashboardSlice';\n\nfunction getVgPlotSpec(panel: VgPlotPanelConfig) {\n const spec = panel.config.vgplot;\n return spec && typeof spec === 'object' && !Array.isArray(spec)\n ? (spec as Record<string, unknown>)\n : null;\n}\n\nexport const MosaicDashboardVgPlotHeaderActions: FC<\n VgPlotPanelRendererProps\n> = ({dashboardId, panel}) => {\n const updatePanel = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.updatePanel,\n );\n const spec = getVgPlotSpec(panel);\n const isSettingsOpen = Boolean(panel.config.settingsOpen);\n\n const handleSpecApply = useCallback(\n (newSpec: Record<string, unknown>) => {\n updatePanel(dashboardId, panel.id, {\n config: {...panel.config, vgplot: newSpec},\n });\n },\n [dashboardId, panel.config, panel.id, updatePanel],\n );\n\n const handleToggleSettings = useCallback(() => {\n updatePanel(dashboardId, panel.id, {\n config: {...panel.config, settingsOpen: !isSettingsOpen},\n });\n }, [dashboardId, isSettingsOpen, panel.config, panel.id, updatePanel]);\n\n return (\n <>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"data-[state=active]:bg-accent h-6 w-6\"\n aria-label=\"Chart settings\"\n onClick={handleToggleSettings}\n data-state={isSettingsOpen ? 'active' : 'inactive'}\n >\n <SettingsIcon className=\"h-3.5 w-3.5\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Chart settings</TooltipContent>\n </Tooltip>\n {spec ? (\n <VgPlotSpecPopoverEditor value={spec} onApply={handleSpecApply} />\n ) : null}\n </>\n );\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardVgPlotPanelRenderer.d.ts","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardVgPlotPanelRenderer.tsx"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EAGvB,MAAM,wBAAwB,CAAC;AAwIhC,eAAO,MAAM,kCAAkC,EAAE,4BAA4B,CAAC,iBAAiB,CAK5F,CAAC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { SpinnerPane } from '@sqlrooms/ui';
|
|
3
|
-
import { BarChart3Icon } from 'lucide-react';
|
|
4
|
-
import { useCallback, useEffect, useMemo } from 'react';
|
|
5
|
-
import { VgPlotChart } from '../VgPlotChart';
|
|
6
|
-
import { ChartSettingsPanel } from './chart-settings';
|
|
7
|
-
import { MosaicDashboardPanelLayout } from './MosaicDashboardPanelLayout';
|
|
8
|
-
import { MosaicDashboardVgPlotHeaderActions } from './MosaicDashboardVgPlotHeaderActions';
|
|
9
|
-
import { useStoreWithMosaicDashboard, } from './MosaicDashboardSlice';
|
|
10
|
-
function toRenderableMosaicSpec(vgplot) {
|
|
11
|
-
try {
|
|
12
|
-
if (!vgplot || typeof vgplot !== 'object' || Array.isArray(vgplot)) {
|
|
13
|
-
return null;
|
|
14
|
-
}
|
|
15
|
-
const vgplotRecord = vgplot;
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
|
-
const { $schema, ...mosaicSpec } = vgplotRecord;
|
|
18
|
-
return mosaicSpec;
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
console.error('[toRenderableMosaicSpec] Failed to parse spec:', error);
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
const MosaicDashboardVgPlotRenderer = ({ dashboardId, panel, selectionName, }) => {
|
|
26
|
-
const connection = useStoreWithMosaicDashboard((state) => state.mosaic.connection);
|
|
27
|
-
const brushSelection = useStoreWithMosaicDashboard((state) => state.mosaic.selections[selectionName]);
|
|
28
|
-
const getSelection = useStoreWithMosaicDashboard((state) => state.mosaic.getSelection);
|
|
29
|
-
const retainedChart = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.getRetainedChart(dashboardId, panel.id));
|
|
30
|
-
const setRetainedChart = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.setRetainedChart);
|
|
31
|
-
const spec = useMemo(() => toRenderableMosaicSpec(panel.config.vgplot), [panel.config.vgplot]);
|
|
32
|
-
const updatePanel = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.updatePanel);
|
|
33
|
-
const isSettingsOpen = panel.config.settingsOpen;
|
|
34
|
-
const handleOpenChange = useCallback((isOpen) => {
|
|
35
|
-
updatePanel(dashboardId, panel.id, {
|
|
36
|
-
config: { ...panel.config, settingsOpen: isOpen },
|
|
37
|
-
});
|
|
38
|
-
}, [dashboardId, panel.config, panel.id, updatePanel]);
|
|
39
|
-
useEffect(() => {
|
|
40
|
-
if (!brushSelection) {
|
|
41
|
-
getSelection(selectionName, 'crossfilter');
|
|
42
|
-
}
|
|
43
|
-
}, [brushSelection, getSelection, selectionName]);
|
|
44
|
-
const params = useMemo(() => brushSelection
|
|
45
|
-
? new Map([['brush', brushSelection]])
|
|
46
|
-
: undefined, [brushSelection]);
|
|
47
|
-
const retention = useMemo(() => ({
|
|
48
|
-
chart: retainedChart,
|
|
49
|
-
setChart: (chart) => setRetainedChart(dashboardId, panel.id, chart),
|
|
50
|
-
}), [dashboardId, panel.id, retainedChart, setRetainedChart]);
|
|
51
|
-
const tableName = panel.source?.tableName;
|
|
52
|
-
const handleSettingsChange = useCallback((config) => {
|
|
53
|
-
updatePanel(dashboardId, panel.id, {
|
|
54
|
-
config,
|
|
55
|
-
});
|
|
56
|
-
}, [dashboardId, panel.id, updatePanel]);
|
|
57
|
-
const settingsContent = (_jsx(ChartSettingsPanel, { tableName: tableName, config: panel.config, onChange: handleSettingsChange, onClose: () => handleOpenChange(false) }));
|
|
58
|
-
const chartContent = (_jsx("div", { className: "h-full overflow-auto p-2", children: connection.status === 'loading' ? (_jsx(SpinnerPane, { className: "h-full w-full" })) : connection.status === 'ready' && spec && params ? (_jsx("div", { className: "bg-background text-foreground flex h-full w-full items-center justify-center rounded-md p-2", children: _jsx(VgPlotChart, { spec: spec, params: params, retention: retention }) })) : connection.status === 'ready' && spec ? (_jsx(SpinnerPane, { className: "h-full w-full" })) : (_jsx("div", { className: "text-muted-foreground flex h-full items-center justify-center text-sm", children: connection.status === 'error'
|
|
59
|
-
? 'Mosaic connection failed'
|
|
60
|
-
: 'No valid chart spec' })) }));
|
|
61
|
-
return (_jsx("div", { className: "h-full min-h-0", children: _jsx(MosaicDashboardPanelLayout, { isOpen: isSettingsOpen, onIsOpenChange: handleOpenChange, settings: settingsContent, content: chartContent }) }));
|
|
62
|
-
};
|
|
63
|
-
export const mosaicDashboardVgPlotPanelRenderer = {
|
|
64
|
-
component: MosaicDashboardVgPlotRenderer,
|
|
65
|
-
headerActions: MosaicDashboardVgPlotHeaderActions,
|
|
66
|
-
icon: BarChart3Icon,
|
|
67
|
-
};
|
|
68
|
-
//# sourceMappingURL=MosaicDashboardVgPlotPanelRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardVgPlotPanelRenderer.js","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardVgPlotPanelRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["import {SpinnerPane} from '@sqlrooms/ui';\nimport type {Selection} from '@uwdata/mosaic-core';\nimport type {Spec} from '@uwdata/mosaic-spec';\nimport {BarChart3Icon} from 'lucide-react';\nimport {type FC, useCallback, useEffect, useMemo} from 'react';\nimport {VgPlotChart} from '../VgPlotChart';\nimport {ChartSettingsPanel} from './chart-settings';\nimport {MosaicDashboardPanelLayout} from './MosaicDashboardPanelLayout';\nimport {MosaicDashboardVgPlotHeaderActions} from './MosaicDashboardVgPlotHeaderActions';\nimport {\n type MosaicDashboardPanelRenderer,\n type VgPlotPanelConfig,\n type VgPlotPanelRendererProps,\n useStoreWithMosaicDashboard,\n} from './MosaicDashboardSlice';\nimport {VgPlotChartConfig} from '../chart-types';\n\nfunction toRenderableMosaicSpec(vgplot: unknown): Spec | null {\n try {\n if (!vgplot || typeof vgplot !== 'object' || Array.isArray(vgplot)) {\n return null;\n }\n\n const vgplotRecord = vgplot as Spec;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {$schema, ...mosaicSpec} = vgplotRecord;\n\n return mosaicSpec;\n } catch (error) {\n console.error('[toRenderableMosaicSpec] Failed to parse spec:', error);\n return null;\n }\n}\n\nconst MosaicDashboardVgPlotRenderer: FC<VgPlotPanelRendererProps> = ({\n dashboardId,\n panel,\n selectionName,\n}) => {\n const connection = useStoreWithMosaicDashboard(\n (state) => state.mosaic.connection,\n );\n const brushSelection = useStoreWithMosaicDashboard(\n (state) => state.mosaic.selections[selectionName],\n );\n const getSelection = useStoreWithMosaicDashboard(\n (state) => state.mosaic.getSelection,\n );\n const retainedChart = useStoreWithMosaicDashboard((state) =>\n state.mosaicDashboard.getRetainedChart(dashboardId, panel.id),\n );\n const setRetainedChart = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.setRetainedChart,\n );\n\n const spec = useMemo(\n () => toRenderableMosaicSpec(panel.config.vgplot),\n [panel.config.vgplot],\n );\n\n const updatePanel = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.updatePanel,\n );\n const isSettingsOpen = panel.config.settingsOpen;\n\n const handleOpenChange = useCallback(\n (isOpen: boolean) => {\n updatePanel(dashboardId, panel.id, {\n config: {...panel.config, settingsOpen: isOpen},\n });\n },\n [dashboardId, panel.config, panel.id, updatePanel],\n );\n\n useEffect(() => {\n if (!brushSelection) {\n getSelection(selectionName, 'crossfilter');\n }\n }, [brushSelection, getSelection, selectionName]);\n\n const params = useMemo(\n () =>\n brushSelection\n ? new Map<string, Selection>([['brush', brushSelection]])\n : undefined,\n [brushSelection],\n );\n\n const retention = useMemo(\n () => ({\n chart: retainedChart,\n setChart: (chart: NonNullable<typeof retainedChart>) =>\n setRetainedChart(dashboardId, panel.id, chart),\n }),\n [dashboardId, panel.id, retainedChart, setRetainedChart],\n );\n\n const tableName = panel.source?.tableName;\n\n const handleSettingsChange = useCallback(\n (config: VgPlotChartConfig) => {\n updatePanel(dashboardId, panel.id, {\n config,\n });\n },\n [dashboardId, panel.id, updatePanel],\n );\n\n const settingsContent = (\n <ChartSettingsPanel\n tableName={tableName}\n config={panel.config}\n onChange={handleSettingsChange}\n onClose={() => handleOpenChange(false)}\n />\n );\n\n const chartContent = (\n <div className=\"h-full overflow-auto p-2\">\n {connection.status === 'loading' ? (\n <SpinnerPane className=\"h-full w-full\" />\n ) : connection.status === 'ready' && spec && params ? (\n <div className=\"bg-background text-foreground flex h-full w-full items-center justify-center rounded-md p-2\">\n <VgPlotChart spec={spec} params={params} retention={retention} />\n </div>\n ) : connection.status === 'ready' && spec ? (\n <SpinnerPane className=\"h-full w-full\" />\n ) : (\n <div className=\"text-muted-foreground flex h-full items-center justify-center text-sm\">\n {connection.status === 'error'\n ? 'Mosaic connection failed'\n : 'No valid chart spec'}\n </div>\n )}\n </div>\n );\n\n return (\n <div className=\"h-full min-h-0\">\n <MosaicDashboardPanelLayout\n isOpen={isSettingsOpen}\n onIsOpenChange={handleOpenChange}\n settings={settingsContent}\n content={chartContent}\n />\n </div>\n );\n};\n\nexport const mosaicDashboardVgPlotPanelRenderer: MosaicDashboardPanelRenderer<VgPlotPanelConfig> =\n {\n component: MosaicDashboardVgPlotRenderer,\n headerActions: MosaicDashboardVgPlotHeaderActions,\n icon: BarChart3Icon,\n };\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface VgPlotSpecPopoverEditorProps {
|
|
3
|
-
value: Record<string, unknown>;
|
|
4
|
-
onApply: (value: Record<string, unknown>) => void;
|
|
5
|
-
}
|
|
6
|
-
export declare const VgPlotSpecPopoverEditor: React.FC<VgPlotSpecPopoverEditorProps>;
|
|
7
|
-
export {};
|
|
8
|
-
//# sourceMappingURL=VgPlotSpecPopoverEditor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VgPlotSpecPopoverEditor.d.ts","sourceRoot":"","sources":["../../src/dashboard/VgPlotSpecPopoverEditor.tsx"],"names":[],"mappings":"AAUA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,4BAA4B;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAC5C,4BAA4B,CAuF7B,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Button, Popover, PopoverContent, PopoverTrigger, Tooltip, TooltipContent, TooltipTrigger, } from '@sqlrooms/ui';
|
|
3
|
-
import { PencilIcon } from 'lucide-react';
|
|
4
|
-
import { useCallback, useState } from 'react';
|
|
5
|
-
import { MosaicCodeMirrorEditor } from '../editor/MosaicCodeMirrorEditor';
|
|
6
|
-
export const VgPlotSpecPopoverEditor = ({ value, onApply }) => {
|
|
7
|
-
const [open, setOpen] = useState(false);
|
|
8
|
-
const [draft, setDraft] = useState(() => JSON.stringify(value, null, 2));
|
|
9
|
-
const handleOpenChange = useCallback((nextOpen) => {
|
|
10
|
-
setOpen(nextOpen);
|
|
11
|
-
if (nextOpen) {
|
|
12
|
-
setDraft(JSON.stringify(value, null, 2));
|
|
13
|
-
}
|
|
14
|
-
}, [value]);
|
|
15
|
-
const handleApply = useCallback(() => {
|
|
16
|
-
try {
|
|
17
|
-
const parsed = JSON.parse(draft);
|
|
18
|
-
onApply(parsed);
|
|
19
|
-
setOpen(false);
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
// Invalid JSON — keep the editor open.
|
|
23
|
-
}
|
|
24
|
-
}, [draft, onApply]);
|
|
25
|
-
const serializedValue = JSON.stringify(value, null, 2);
|
|
26
|
-
const isDirty = draft !== serializedValue;
|
|
27
|
-
let isValidJson = false;
|
|
28
|
-
try {
|
|
29
|
-
JSON.parse(draft);
|
|
30
|
-
isValidJson = true;
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
// ignore
|
|
34
|
-
}
|
|
35
|
-
return (_jsxs(Popover, { open: open, onOpenChange: handleOpenChange, children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", className: "h-6 w-6", "aria-label": "Edit spec", children: _jsx(PencilIcon, { className: "h-3.5 w-3.5" }) }) }) }), _jsx(TooltipContent, { children: "Edit spec" })] }), _jsx(PopoverContent, { side: "bottom", align: "end", className: "w-[500px] p-0", onInteractOutside: (event) => {
|
|
36
|
-
if (isDirty)
|
|
37
|
-
event.preventDefault();
|
|
38
|
-
}, children: _jsxs("div", { className: "flex flex-col", children: [_jsx("div", { className: "h-72 overflow-hidden", children: _jsx(MosaicCodeMirrorEditor, { value: draft, onChange: (nextValue) => setDraft(nextValue ?? ''), className: "h-full", enableSchemaValidation: true }) }), _jsxs("div", { className: "flex items-center justify-end gap-2 border-t p-2", children: [_jsx(Button, { variant: "outline", size: "sm", onClick: () => setOpen(false), children: "Cancel" }), _jsx(Button, { size: "sm", disabled: !isDirty || !isValidJson, onClick: handleApply, children: "Apply" })] })] }) })] }));
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=VgPlotSpecPopoverEditor.js.map
|