@sqlrooms/mosaic 0.29.0-rc.7 → 0.29.0-rc.9
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/LICENSE.md +2 -1
- package/README.md +179 -35
- package/dist/MosaicSlice.d.ts +1 -0
- package/dist/MosaicSlice.d.ts.map +1 -1
- package/dist/MosaicSlice.js.map +1 -1
- package/dist/VgPlotChart.d.ts.map +1 -1
- package/dist/VgPlotChart.js +9 -3
- package/dist/VgPlotChart.js.map +1 -1
- package/dist/ai/agentIntent.d.ts +5 -0
- package/dist/ai/agentIntent.d.ts.map +1 -0
- package/dist/ai/agentIntent.js +8 -0
- package/dist/ai/agentIntent.js.map +1 -0
- package/dist/ai/block-document/constants.d.ts +9 -0
- package/dist/ai/block-document/constants.d.ts.map +1 -0
- package/dist/ai/block-document/constants.js +9 -0
- package/dist/ai/block-document/constants.js.map +1 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts +48 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts.map +1 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js +59 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js.map +1 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.d.ts +19 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.d.ts.map +1 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.js +37 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.js.map +1 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts +32 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts.map +1 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js +37 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js.map +1 -0
- package/dist/ai/constants.d.ts +3 -0
- package/dist/ai/constants.d.ts.map +1 -0
- package/dist/ai/constants.js +3 -0
- package/dist/ai/constants.js.map +1 -0
- package/dist/ai/createDataTableExplorerTool.d.ts +69 -0
- package/dist/ai/createDataTableExplorerTool.d.ts.map +1 -0
- package/dist/ai/createDataTableExplorerTool.js +68 -0
- package/dist/ai/createDataTableExplorerTool.js.map +1 -0
- package/dist/ai/dashboard/constants.d.ts +6 -0
- package/dist/ai/dashboard/constants.d.ts.map +1 -0
- package/dist/ai/dashboard/constants.js +6 -0
- package/dist/ai/dashboard/constants.js.map +1 -0
- package/dist/ai/dashboard/createDashboardAgentTool.d.ts +17 -0
- package/dist/ai/dashboard/createDashboardAgentTool.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardAgentTool.js +205 -0
- package/dist/ai/dashboard/createDashboardAgentTool.js.map +1 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.d.ts +14 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.js +75 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.js.map +1 -0
- package/dist/ai/dashboard/createDashboardAiTools.d.ts +26 -0
- package/dist/ai/dashboard/createDashboardAiTools.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardAiTools.js +40 -0
- package/dist/ai/dashboard/createDashboardAiTools.js.map +1 -0
- package/dist/ai/dashboard/createDashboardChartTools.d.ts +27 -0
- package/dist/ai/dashboard/createDashboardChartTools.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardChartTools.js +55 -0
- package/dist/ai/dashboard/createDashboardChartTools.js.map +1 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts +23 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js +29 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js.map +1 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts +28 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts.map +1 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.js +54 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.js.map +1 -0
- package/dist/ai/dashboard/dashboard-types.d.ts +59 -0
- package/dist/ai/dashboard/dashboard-types.d.ts.map +1 -0
- package/dist/ai/dashboard/dashboard-types.js +2 -0
- package/dist/ai/dashboard/dashboard-types.js.map +1 -0
- package/dist/ai/database-types.d.ts +12 -0
- package/dist/ai/database-types.d.ts.map +1 -0
- package/dist/ai/database-types.js +2 -0
- package/dist/ai/database-types.js.map +1 -0
- package/dist/ai/errors.d.ts +8 -0
- package/dist/ai/errors.d.ts.map +1 -0
- package/dist/ai/errors.js +11 -0
- package/dist/ai/errors.js.map +1 -0
- package/dist/ai/tool-helpers.d.ts +28 -29
- package/dist/ai/tool-helpers.d.ts.map +1 -1
- package/dist/ai/tool-helpers.js +38 -76
- package/dist/ai/tool-helpers.js.map +1 -1
- package/dist/ai/tool-schemas.d.ts +9 -4
- package/dist/ai/tool-schemas.d.ts.map +1 -1
- package/dist/ai/tool-schemas.js +12 -12
- package/dist/ai/tool-schemas.js.map +1 -1
- package/dist/ai/tool-types.d.ts +19 -1
- package/dist/ai/tool-types.d.ts.map +1 -1
- package/dist/ai/tool-types.js.map +1 -1
- package/dist/ai/types.d.ts +64 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +2 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/ai.d.ts +16 -2
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +14 -5
- package/dist/ai.js.map +1 -1
- package/dist/charts/MosaicChart.d.ts +3 -1
- package/dist/charts/MosaicChart.d.ts.map +1 -1
- package/dist/charts/MosaicChart.js +2 -2
- package/dist/charts/MosaicChart.js.map +1 -1
- package/dist/charts/MosaicChartError.d.ts +8 -2
- package/dist/charts/MosaicChartError.d.ts.map +1 -1
- package/dist/charts/MosaicChartError.js +29 -3
- package/dist/charts/MosaicChartError.js.map +1 -1
- package/dist/charts/MosaicChartSettingsButton.d.ts +15 -0
- package/dist/charts/MosaicChartSettingsButton.d.ts.map +1 -0
- package/dist/charts/MosaicChartSettingsButton.js +7 -0
- package/dist/charts/MosaicChartSettingsButton.js.map +1 -0
- package/dist/charts/MosaicChartView.d.ts +2 -0
- package/dist/charts/MosaicChartView.d.ts.map +1 -1
- package/dist/charts/MosaicChartView.js +19 -7
- package/dist/charts/MosaicChartView.js.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSettings.d.ts.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSettings.js +3 -3
- package/dist/charts/chart-settings/MosaicChartSettings.js.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSettingsPanel.js +1 -1
- package/dist/charts/chart-settings/MosaicChartSettingsPanel.js.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.d.ts.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js +2 -1
- package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js.map +1 -1
- package/dist/charts/chart-settings/MosaicChartTypeSelector.d.ts.map +1 -1
- package/dist/charts/chart-settings/MosaicChartTypeSelector.js +3 -3
- package/dist/charts/chart-settings/MosaicChartTypeSelector.js.map +1 -1
- package/dist/charts/chart-types/base-types.d.ts +40 -25
- package/dist/charts/chart-types/base-types.d.ts.map +1 -1
- package/dist/charts/chart-types/base-types.js +5 -0
- package/dist/charts/chart-types/base-types.js.map +1 -1
- package/dist/charts/chart-types/box-plot/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/definition.js +1 -0
- package/dist/charts/chart-types/box-plot/definition.js.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts +37 -3
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js +28 -13
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js +2 -2
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts +12 -1
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js +13 -3
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js.map +1 -1
- package/dist/charts/chart-types/box-plot/tool.d.ts +20 -24
- package/dist/charts/chart-types/box-plot/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/tool.js +25 -33
- package/dist/charts/chart-types/box-plot/tool.js.map +1 -1
- package/dist/charts/chart-types/box-plot/validation.d.ts +9 -0
- package/dist/charts/chart-types/box-plot/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/box-plot/validation.js +32 -0
- package/dist/charts/chart-types/box-plot/validation.js.map +1 -0
- package/dist/charts/chart-types/chart-config.d.ts +3 -1
- package/dist/charts/chart-types/chart-config.d.ts.map +1 -1
- package/dist/charts/chart-types/chart-config.js +2 -2
- package/dist/charts/chart-types/chart-config.js.map +1 -1
- package/dist/charts/chart-types/column-types.d.ts +8 -0
- package/dist/charts/chart-types/column-types.d.ts.map +1 -0
- package/dist/charts/chart-types/column-types.js +2 -0
- package/dist/charts/chart-types/column-types.js.map +1 -0
- package/dist/charts/chart-types/count-plot/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/count-plot/definition.js +1 -0
- package/dist/charts/chart-types/count-plot/definition.js.map +1 -1
- package/dist/charts/chart-types/count-plot/spec.d.ts +2 -1
- package/dist/charts/chart-types/count-plot/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/count-plot/spec.js +47 -34
- package/dist/charts/chart-types/count-plot/spec.js.map +1 -1
- package/dist/charts/chart-types/count-plot/tool.d.ts +19 -24
- package/dist/charts/chart-types/count-plot/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/count-plot/tool.js +26 -33
- package/dist/charts/chart-types/count-plot/tool.js.map +1 -1
- package/dist/charts/chart-types/count-plot/validation.d.ts +8 -0
- package/dist/charts/chart-types/count-plot/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/count-plot/validation.js +20 -0
- package/dist/charts/chart-types/count-plot/validation.js.map +1 -0
- package/dist/charts/chart-types/createChartInstructions.d.ts +3 -0
- package/dist/charts/chart-types/createChartInstructions.d.ts.map +1 -0
- package/dist/charts/chart-types/createChartInstructions.js +12 -0
- package/dist/charts/chart-types/createChartInstructions.js.map +1 -0
- package/dist/charts/chart-types/createChartTools.d.ts +15 -9
- package/dist/charts/chart-types/createChartTools.d.ts.map +1 -1
- package/dist/charts/chart-types/createChartTools.js +16 -10
- package/dist/charts/chart-types/createChartTools.js.map +1 -1
- package/dist/charts/chart-types/createDefaultChartTypes.js +2 -2
- package/dist/charts/chart-types/createDefaultChartTypes.js.map +1 -1
- package/dist/charts/chart-types/custom-spec/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/custom-spec/definition.js +1 -0
- package/dist/charts/chart-types/custom-spec/definition.js.map +1 -1
- package/dist/charts/chart-types/custom-spec/spec.d.ts +2 -1
- package/dist/charts/chart-types/custom-spec/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/custom-spec/spec.js +16 -12
- package/dist/charts/chart-types/custom-spec/spec.js.map +1 -1
- package/dist/charts/chart-types/errors.d.ts +35 -0
- package/dist/charts/chart-types/errors.d.ts.map +1 -1
- package/dist/charts/chart-types/errors.js +56 -0
- package/dist/charts/chart-types/errors.js.map +1 -1
- package/dist/charts/chart-types/heatmap/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/heatmap/definition.js +1 -0
- package/dist/charts/chart-types/heatmap/definition.js.map +1 -1
- package/dist/charts/chart-types/heatmap/spec.d.ts +2 -1
- package/dist/charts/chart-types/heatmap/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/heatmap/spec.js +21 -21
- package/dist/charts/chart-types/heatmap/spec.js.map +1 -1
- package/dist/charts/chart-types/heatmap/tool.d.ts +20 -24
- package/dist/charts/chart-types/heatmap/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/heatmap/tool.js +27 -37
- package/dist/charts/chart-types/heatmap/tool.js.map +1 -1
- package/dist/charts/chart-types/heatmap/validation.d.ts +9 -0
- package/dist/charts/chart-types/heatmap/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/heatmap/validation.js +34 -0
- package/dist/charts/chart-types/heatmap/validation.js.map +1 -0
- package/dist/charts/chart-types/histogram/HistogramSettings.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/HistogramSettings.js +3 -1
- package/dist/charts/chart-types/histogram/HistogramSettings.js.map +1 -1
- package/dist/charts/chart-types/histogram/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/definition.js +1 -0
- package/dist/charts/chart-types/histogram/definition.js.map +1 -1
- package/dist/charts/chart-types/histogram/schema.d.ts +2 -0
- package/dist/charts/chart-types/histogram/schema.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/schema.js +1 -0
- package/dist/charts/chart-types/histogram/schema.js.map +1 -1
- package/dist/charts/chart-types/histogram/spec.d.ts +2 -1
- package/dist/charts/chart-types/histogram/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/spec.js +31 -28
- package/dist/charts/chart-types/histogram/spec.js.map +1 -1
- package/dist/charts/chart-types/histogram/tool.d.ts +39 -24
- package/dist/charts/chart-types/histogram/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/tool.js +39 -33
- package/dist/charts/chart-types/histogram/tool.js.map +1 -1
- package/dist/charts/chart-types/histogram/validation.d.ts +9 -0
- package/dist/charts/chart-types/histogram/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/histogram/validation.js +22 -0
- package/dist/charts/chart-types/histogram/validation.js.map +1 -0
- package/dist/charts/chart-types/index.d.ts +5 -11
- package/dist/charts/chart-types/index.d.ts.map +1 -1
- package/dist/charts/chart-types/index.js +6 -12
- package/dist/charts/chart-types/index.js.map +1 -1
- package/dist/charts/chart-types/line-chart/LineChartSettings.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/LineChartSettings.js +4 -13
- package/dist/charts/chart-types/line-chart/LineChartSettings.js.map +1 -1
- package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.d.ts +7 -0
- package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.d.ts.map +1 -0
- package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.js +22 -0
- package/dist/charts/chart-types/line-chart/LineChartXFieldSelector.js.map +1 -0
- package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.d.ts +7 -0
- package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.d.ts.map +1 -0
- package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.js +42 -0
- package/dist/charts/chart-types/line-chart/LineChartYFieldsSelector.js.map +1 -0
- package/dist/charts/chart-types/line-chart/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/definition.js +1 -0
- package/dist/charts/chart-types/line-chart/definition.js.map +1 -1
- package/dist/charts/chart-types/line-chart/schema.d.ts +2 -0
- package/dist/charts/chart-types/line-chart/schema.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/schema.js +5 -0
- package/dist/charts/chart-types/line-chart/schema.js.map +1 -1
- package/dist/charts/chart-types/line-chart/spec.d.ts +2 -1
- package/dist/charts/chart-types/line-chart/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/spec.js +56 -65
- package/dist/charts/chart-types/line-chart/spec.js.map +1 -1
- package/dist/charts/chart-types/line-chart/tool.d.ts +28 -24
- package/dist/charts/chart-types/line-chart/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/tool.js +27 -39
- package/dist/charts/chart-types/line-chart/tool.js.map +1 -1
- package/dist/charts/chart-types/line-chart/utils.d.ts +7 -0
- package/dist/charts/chart-types/line-chart/utils.d.ts.map +1 -0
- package/dist/charts/chart-types/line-chart/utils.js +17 -0
- package/dist/charts/chart-types/line-chart/utils.js.map +1 -0
- package/dist/charts/chart-types/line-chart/validation.d.ts +16 -0
- package/dist/charts/chart-types/line-chart/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/line-chart/validation.js +43 -0
- package/dist/charts/chart-types/line-chart/validation.js.map +1 -0
- package/dist/charts/chart-types/mosaicChartTypes.d.ts +4 -2
- package/dist/charts/chart-types/mosaicChartTypes.d.ts.map +1 -1
- package/dist/charts/chart-types/mosaicChartTypes.js +2 -2
- package/dist/charts/chart-types/mosaicChartTypes.js.map +1 -1
- package/dist/charts/chart-types/resolveChartTypes.d.ts +3 -0
- package/dist/charts/chart-types/resolveChartTypes.d.ts.map +1 -0
- package/dist/charts/chart-types/resolveChartTypes.js +8 -0
- package/dist/charts/chart-types/resolveChartTypes.js.map +1 -0
- package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.d.ts +3 -0
- package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.d.ts.map +1 -0
- package/dist/charts/chart-types/{bubble-chart/BubbleChartSettings.js → scatter-plot/ScatterPlotSettings.js} +4 -4
- package/dist/charts/chart-types/scatter-plot/ScatterPlotSettings.js.map +1 -0
- package/dist/charts/chart-types/scatter-plot/definition.d.ts +4 -0
- package/dist/charts/chart-types/scatter-plot/definition.d.ts.map +1 -0
- package/dist/charts/chart-types/scatter-plot/definition.js +25 -0
- package/dist/charts/chart-types/scatter-plot/definition.js.map +1 -0
- package/dist/charts/chart-types/{bubble-chart → scatter-plot}/schema.d.ts +5 -5
- package/dist/charts/chart-types/scatter-plot/schema.d.ts.map +1 -0
- package/dist/charts/chart-types/{bubble-chart → scatter-plot}/schema.js +5 -5
- package/dist/charts/chart-types/scatter-plot/schema.js.map +1 -0
- package/dist/charts/chart-types/scatter-plot/spec.d.ts +5 -0
- package/dist/charts/chart-types/scatter-plot/spec.d.ts.map +1 -0
- package/dist/charts/chart-types/scatter-plot/spec.js +37 -0
- package/dist/charts/chart-types/scatter-plot/spec.js.map +1 -0
- package/dist/charts/chart-types/scatter-plot/tool.d.ts +39 -0
- package/dist/charts/chart-types/scatter-plot/tool.d.ts.map +1 -0
- package/dist/charts/chart-types/scatter-plot/tool.js +57 -0
- package/dist/charts/chart-types/scatter-plot/tool.js.map +1 -0
- package/dist/charts/chart-types/scatter-plot/validation.d.ts +13 -0
- package/dist/charts/chart-types/scatter-plot/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/scatter-plot/validation.js +52 -0
- package/dist/charts/chart-types/scatter-plot/validation.js.map +1 -0
- package/dist/charts/chart-types/tool-types.d.ts +43 -0
- package/dist/charts/chart-types/tool-types.d.ts.map +1 -0
- package/dist/charts/chart-types/tool-types.js +2 -0
- package/dist/charts/chart-types/tool-types.js.map +1 -0
- package/dist/charts/chart-types/utils.d.ts +3 -0
- package/dist/charts/chart-types/utils.d.ts.map +1 -0
- package/dist/charts/chart-types/utils.js +4 -0
- package/dist/charts/chart-types/utils.js.map +1 -0
- package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.d.ts.map +1 -1
- package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js +12 -5
- package/dist/charts/dashboard/MosaicDashboardChartHeaderActions.js.map +1 -1
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.d.ts.map +1 -1
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.js +6 -4
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.js.map +1 -1
- package/dist/charts/useChartDataPolicy.d.ts.map +1 -1
- package/dist/charts/useChartDataPolicy.js +2 -1
- package/dist/charts/useChartDataPolicy.js.map +1 -1
- package/dist/charts/useChartPanelClients.d.ts +8 -0
- package/dist/charts/useChartPanelClients.d.ts.map +1 -0
- package/dist/charts/useChartPanelClients.js +22 -0
- package/dist/charts/useChartPanelClients.js.map +1 -0
- package/dist/charts/useMosaicChartRenderContext.d.ts +2 -3
- package/dist/charts/useMosaicChartRenderContext.d.ts.map +1 -1
- package/dist/charts/useMosaicChartRenderContext.js +15 -15
- package/dist/charts/useMosaicChartRenderContext.js.map +1 -1
- package/dist/charts/worksheet/ChartBlockHeader.d.ts.map +1 -1
- package/dist/charts/worksheet/ChartBlockHeader.js +4 -3
- package/dist/charts/worksheet/ChartBlockHeader.js.map +1 -1
- package/dist/charts/worksheet/ChartBlockRenderer.d.ts.map +1 -1
- package/dist/charts/worksheet/ChartBlockRenderer.js +3 -13
- package/dist/charts/worksheet/ChartBlockRenderer.js.map +1 -1
- package/dist/column-types-utils.d.ts.map +1 -1
- package/dist/column-types-utils.js +12 -4
- package/dist/column-types-utils.js.map +1 -1
- package/dist/components/AggregationSelector.d.ts.map +1 -1
- package/dist/components/AggregationSelector.js +9 -2
- package/dist/components/AggregationSelector.js.map +1 -1
- package/dist/components/BlockCaptionEditor.d.ts +20 -0
- package/dist/components/BlockCaptionEditor.d.ts.map +1 -0
- package/dist/components/BlockCaptionEditor.js +15 -0
- package/dist/components/BlockCaptionEditor.js.map +1 -0
- package/dist/components/ColorSelector.d.ts +12 -0
- package/dist/components/ColorSelector.d.ts.map +1 -0
- package/dist/components/ColorSelector.js +13 -0
- package/dist/components/ColorSelector.js.map +1 -0
- package/dist/components/ColumnSelector.d.ts +1 -0
- package/dist/components/ColumnSelector.d.ts.map +1 -1
- package/dist/components/ColumnSelector.js +2 -2
- package/dist/components/ColumnSelector.js.map +1 -1
- package/dist/components/FieldSelectorInput.d.ts +1 -0
- package/dist/components/FieldSelectorInput.d.ts.map +1 -1
- package/dist/components/FieldSelectorInput.js +4 -9
- package/dist/components/FieldSelectorInput.js.map +1 -1
- package/dist/components/MultiFieldSelector.d.ts +4 -1
- package/dist/components/MultiFieldSelector.d.ts.map +1 -1
- package/dist/components/MultiFieldSelector.js +4 -13
- package/dist/components/MultiFieldSelector.js.map +1 -1
- package/dist/components/TemporalGranularitySelector.d.ts.map +1 -1
- package/dist/components/TemporalGranularitySelector.js +13 -9
- package/dist/components/TemporalGranularitySelector.js.map +1 -1
- package/dist/constants/chart-colors.d.ts +3 -0
- package/dist/constants/chart-colors.d.ts.map +1 -0
- package/dist/constants/chart-colors.js +5 -0
- package/dist/constants/chart-colors.js.map +1 -0
- package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts +2 -1
- package/dist/dashboard/DefaultMosaicDashboardBlock.d.ts.map +1 -1
- package/dist/dashboard/DefaultMosaicDashboardBlock.js +1 -1
- package/dist/dashboard/DefaultMosaicDashboardBlock.js.map +1 -1
- package/dist/dashboard/MosaicDashboardCommands.d.ts +19 -0
- package/dist/dashboard/MosaicDashboardCommands.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardCommands.js +226 -0
- package/dist/dashboard/MosaicDashboardCommands.js.map +1 -0
- package/dist/dashboard/MosaicDashboardSlice.d.ts +22 -4
- package/dist/dashboard/MosaicDashboardSlice.d.ts.map +1 -1
- package/dist/dashboard/MosaicDashboardSlice.js +55 -0
- package/dist/dashboard/MosaicDashboardSlice.js.map +1 -1
- package/dist/dashboard/components/ResetFiltersButton.d.ts +14 -0
- package/dist/dashboard/components/ResetFiltersButton.d.ts.map +1 -0
- package/dist/dashboard/components/ResetFiltersButton.js +15 -0
- package/dist/dashboard/components/ResetFiltersButton.js.map +1 -0
- package/dist/dashboard/dashboard-types.d.ts +9 -3
- package/dist/dashboard/dashboard-types.d.ts.map +1 -1
- package/dist/dashboard/dashboard-types.js.map +1 -1
- package/dist/dashboard/hooks/useDashboardResetFilters.d.ts +14 -0
- package/dist/dashboard/hooks/useDashboardResetFilters.d.ts.map +1 -0
- package/dist/dashboard/hooks/useDashboardResetFilters.js +39 -0
- package/dist/dashboard/hooks/useDashboardResetFilters.js.map +1 -0
- package/dist/dashboard/hooks/usePanelResetFilters.d.ts +16 -0
- package/dist/dashboard/hooks/usePanelResetFilters.d.ts.map +1 -0
- package/dist/dashboard/hooks/usePanelResetFilters.js +47 -0
- package/dist/dashboard/hooks/usePanelResetFilters.js.map +1 -0
- package/dist/dashboard/panel/MosaicDashboardPanel.d.ts.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanel.js +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanel.js.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanelLayout.d.ts.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanelLayout.js +3 -3
- package/dist/dashboard/panel/MosaicDashboardPanelLayout.js.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanels.d.ts.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanels.js +4 -2
- package/dist/dashboard/panel/MosaicDashboardPanels.js.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.d.ts.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js +3 -3
- package/dist/dashboard/toolbar/MosaicDashboardAddPanelDropdown.js.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts +7 -0
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts.map +1 -0
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js +18 -0
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js.map +1 -0
- package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.d.ts.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js +4 -32
- package/dist/dashboard/toolbar/MosaicDashboardResetFiltersButton.js.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts +2 -2
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.js +14 -10
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.js.map +1 -1
- package/dist/dashboard/usePanelClientRegistration.d.ts +7 -0
- package/dist/dashboard/usePanelClientRegistration.d.ts.map +1 -0
- package/dist/dashboard/usePanelClientRegistration.js +30 -0
- package/dist/dashboard/usePanelClientRegistration.js.map +1 -0
- package/dist/dashboard/usePanelClients.d.ts +7 -0
- package/dist/dashboard/usePanelClients.d.ts.map +1 -0
- package/dist/dashboard/usePanelClients.js +13 -0
- package/dist/dashboard/usePanelClients.js.map +1 -0
- package/dist/dashboard/useSelectedOrFirstTable.d.ts +1 -1
- package/dist/dashboard/useSelectedOrFirstTable.d.ts.map +1 -1
- package/dist/dashboard/useSelectedOrFirstTable.js +10 -8
- package/dist/dashboard/useSelectedOrFirstTable.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorer.d.ts +4 -2
- package/dist/data-table-explorer/DataTableExplorer.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorer.js +4 -4
- package/dist/data-table-explorer/DataTableExplorer.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts +3 -2
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.js +4 -3
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts +3 -1
- package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCountClient.js +3 -3
- package/dist/data-table-explorer/DataTableExplorerCountClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts +3 -2
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.js +4 -4
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts +3 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.js +3 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts +3 -2
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js +3 -3
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js.map +1 -1
- package/dist/data-table-explorer/createDataTableExplorerStore.d.ts +3 -0
- package/dist/data-table-explorer/createDataTableExplorerStore.d.ts.map +1 -1
- package/dist/data-table-explorer/createDataTableExplorerStore.js +6 -0
- package/dist/data-table-explorer/createDataTableExplorerStore.js.map +1 -1
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.d.ts +4 -0
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.d.ts.map +1 -0
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.js +13 -0
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerHeaderActions.js.map +1 -0
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.d.ts.map +1 -1
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js +26 -8
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js.map +1 -1
- package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.d.ts +13 -0
- package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.d.ts.map +1 -0
- package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.js +32 -0
- package/dist/data-table-explorer/dashboard/useDataTableExplorerPanelClients.js.map +1 -0
- package/dist/data-table-explorer/dataTableExplorerController.d.ts +63 -3
- package/dist/data-table-explorer/dataTableExplorerController.d.ts.map +1 -1
- package/dist/data-table-explorer/dataTableExplorerController.js +73 -10
- package/dist/data-table-explorer/dataTableExplorerController.js.map +1 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.d.ts +12 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.js +19 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerColumns.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts +52 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js +153 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts +42 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js +43 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.d.ts +13 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.js +40 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerSelection.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.d.ts +18 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.js +23 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStatus.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.d.ts +27 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.js +28 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerStoreState.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.d.ts +15 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.js +21 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerVisiblePage.js.map +1 -0
- package/dist/data-table-explorer/types.d.ts +16 -3
- package/dist/data-table-explorer/types.d.ts.map +1 -1
- package/dist/data-table-explorer/types.js.map +1 -1
- package/dist/data-table-explorer/useDataTableExplorer.d.ts.map +1 -1
- package/dist/data-table-explorer/useDataTableExplorer.js +20 -279
- package/dist/data-table-explorer/useDataTableExplorer.js.map +1 -1
- package/dist/data-table-explorer/utils.d.ts +64 -6
- package/dist/data-table-explorer/utils.d.ts.map +1 -1
- package/dist/data-table-explorer/utils.js +58 -0
- package/dist/data-table-explorer/utils.js.map +1 -1
- package/dist/data-table-explorer/worksheet/DataTableBlockHeader.d.ts +1 -0
- package/dist/data-table-explorer/worksheet/DataTableBlockHeader.d.ts.map +1 -1
- package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js +4 -2
- package/dist/data-table-explorer/worksheet/DataTableBlockHeader.js.map +1 -1
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.d.ts.map +1 -1
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js +4 -4
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js.map +1 -1
- package/dist/index.d.ts +55 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -26
- package/dist/index.js.map +1 -1
- package/dist/mosaicTableReference.d.ts +59 -0
- package/dist/mosaicTableReference.d.ts.map +1 -0
- package/dist/mosaicTableReference.js +68 -0
- package/dist/mosaicTableReference.js.map +1 -0
- package/dist/useVgPlotChartRender.d.ts.map +1 -1
- package/dist/useVgPlotChartRender.js +151 -25
- package/dist/useVgPlotChartRender.js.map +1 -1
- package/dist/useVgPlotChartRetention.d.ts +11 -0
- package/dist/useVgPlotChartRetention.d.ts.map +1 -1
- package/dist/useVgPlotChartRetention.js.map +1 -1
- package/dist/utils/table-lookup.d.ts +7 -0
- package/dist/utils/table-lookup.d.ts.map +1 -0
- package/dist/utils/table-lookup.js +10 -0
- package/dist/utils/table-lookup.js.map +1 -0
- package/package.json +14 -14
- package/dist/ai/ai.d.ts +0 -103
- package/dist/ai/ai.d.ts.map +0 -1
- package/dist/ai/ai.js +0 -419
- package/dist/ai/ai.js.map +0 -1
- package/dist/ai/data-table-explorer-tool.d.ts +0 -40
- package/dist/ai/data-table-explorer-tool.d.ts.map +0 -1
- package/dist/ai/data-table-explorer-tool.js +0 -75
- package/dist/ai/data-table-explorer-tool.js.map +0 -1
- package/dist/ai/list-panels-tool.d.ts +0 -35
- package/dist/ai/list-panels-tool.d.ts.map +0 -1
- package/dist/ai/list-panels-tool.js +0 -66
- package/dist/ai/list-panels-tool.js.map +0 -1
- package/dist/ai/remove-panel-tool.d.ts +0 -31
- package/dist/ai/remove-panel-tool.d.ts.map +0 -1
- package/dist/ai/remove-panel-tool.js +0 -55
- package/dist/ai/remove-panel-tool.js.map +0 -1
- package/dist/ai/tool-validation.d.ts +0 -3
- package/dist/ai/tool-validation.d.ts.map +0 -1
- package/dist/ai/tool-validation.js +0 -11
- package/dist/ai/tool-validation.js.map +0 -1
- package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.d.ts +0 -3
- package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.d.ts.map +0 -1
- package/dist/charts/chart-types/bubble-chart/BubbleChartSettings.js.map +0 -1
- package/dist/charts/chart-types/bubble-chart/definition.d.ts +0 -4
- package/dist/charts/chart-types/bubble-chart/definition.d.ts.map +0 -1
- package/dist/charts/chart-types/bubble-chart/definition.js +0 -24
- package/dist/charts/chart-types/bubble-chart/definition.js.map +0 -1
- package/dist/charts/chart-types/bubble-chart/schema.d.ts.map +0 -1
- package/dist/charts/chart-types/bubble-chart/schema.js.map +0 -1
- package/dist/charts/chart-types/bubble-chart/spec.d.ts +0 -4
- package/dist/charts/chart-types/bubble-chart/spec.d.ts.map +0 -1
- package/dist/charts/chart-types/bubble-chart/spec.js +0 -31
- package/dist/charts/chart-types/bubble-chart/spec.js.map +0 -1
- package/dist/charts/chart-types/bubble-chart/tool.d.ts +0 -42
- package/dist/charts/chart-types/bubble-chart/tool.d.ts.map +0 -1
- package/dist/charts/chart-types/bubble-chart/tool.js +0 -66
- package/dist/charts/chart-types/bubble-chart/tool.js.map +0 -1
- package/dist/hooks/useDataTable.d.ts +0 -3
- package/dist/hooks/useDataTable.d.ts.map +0 -1
- package/dist/hooks/useDataTable.js +0 -28
- package/dist/hooks/useDataTable.js.map +0 -1
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ChartPanelConfig, DataTableExplorerPanel, MOSAIC_DASHBOARD_CHART_PANEL_TYPE, MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE, MosaicDashboardPanelConfig as MosaicDashboardPanelConfigSchema, } from './dashboard-types';
|
|
3
|
+
import { MosaicDashboardPanelSource } from './core-types';
|
|
4
|
+
export const MOSAIC_DASHBOARD_COMMAND_IDS = {
|
|
5
|
+
setSelectedTable: 'dashboard.set-selected-table',
|
|
6
|
+
addPanel: 'dashboard.add-panel',
|
|
7
|
+
updatePanel: 'dashboard.update-panel',
|
|
8
|
+
removePanel: 'dashboard.remove-panel',
|
|
9
|
+
};
|
|
10
|
+
const DashboardSetSelectedTableInput = z.object({
|
|
11
|
+
dashboardId: z.string().describe('Target dashboard ID.'),
|
|
12
|
+
tableName: z.string().min(1).describe('Selected Mosaic table name.'),
|
|
13
|
+
});
|
|
14
|
+
const DashboardAddPanelInput = z.object({
|
|
15
|
+
dashboardId: z.string().describe('Target dashboard ID.'),
|
|
16
|
+
panel: MosaicDashboardPanelConfigSchema.describe('Panel config to add.'),
|
|
17
|
+
});
|
|
18
|
+
const DashboardUpdatePanelInput = z.object({
|
|
19
|
+
dashboardId: z.string().describe('Target dashboard ID.'),
|
|
20
|
+
panelId: z.string().describe('Dashboard panel ID to update.'),
|
|
21
|
+
patch: z
|
|
22
|
+
.object({
|
|
23
|
+
title: z.string().optional(),
|
|
24
|
+
type: z.string().min(1).optional(),
|
|
25
|
+
source: MosaicDashboardPanelSource.optional(),
|
|
26
|
+
config: z.record(z.string(), z.unknown()).optional(),
|
|
27
|
+
})
|
|
28
|
+
.describe('Partial panel config patch.'),
|
|
29
|
+
});
|
|
30
|
+
const DashboardRemovePanelInput = z.object({
|
|
31
|
+
dashboardId: z.string().describe('Target dashboard ID.'),
|
|
32
|
+
panelId: z.string().describe('Dashboard panel ID to remove.'),
|
|
33
|
+
});
|
|
34
|
+
function dashboardMissing(commandId, dashboardId) {
|
|
35
|
+
return {
|
|
36
|
+
success: false,
|
|
37
|
+
commandId,
|
|
38
|
+
code: 'dashboard-not-found',
|
|
39
|
+
error: `Unknown dashboard "${dashboardId}".`,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function panelMissing(commandId, panelId) {
|
|
43
|
+
return {
|
|
44
|
+
success: false,
|
|
45
|
+
commandId,
|
|
46
|
+
code: 'dashboard-panel-not-found',
|
|
47
|
+
error: `Unknown dashboard panel "${panelId}".`,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function panelData(dashboardId, panel, selectedTable) {
|
|
51
|
+
return {
|
|
52
|
+
dashboardId,
|
|
53
|
+
panelId: panel.id,
|
|
54
|
+
panelType: panel.type,
|
|
55
|
+
title: panel.title,
|
|
56
|
+
selectedTable,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function getPanel(dashboard, panelId) {
|
|
60
|
+
return dashboard.panels.find((panel) => panel.id === panelId);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create reusable Mosaic dashboard commands for selected table and panel
|
|
64
|
+
* mutations.
|
|
65
|
+
*
|
|
66
|
+
* These commands delegate to the dashboard slice so UI code, agents, and
|
|
67
|
+
* future automation share the same persistence behavior.
|
|
68
|
+
*/
|
|
69
|
+
export function createMosaicDashboardCommands() {
|
|
70
|
+
return [
|
|
71
|
+
{
|
|
72
|
+
id: MOSAIC_DASHBOARD_COMMAND_IDS.setSelectedTable,
|
|
73
|
+
name: 'Set dashboard selected table',
|
|
74
|
+
description: 'Set the selected source table for a Mosaic dashboard.',
|
|
75
|
+
group: 'Dashboard',
|
|
76
|
+
keywords: ['dashboard', 'table', 'select', 'mosaic'],
|
|
77
|
+
inputSchema: DashboardSetSelectedTableInput,
|
|
78
|
+
inputDescription: 'Dashboard ID and table name.',
|
|
79
|
+
metadata: { readOnly: false, idempotent: true, riskLevel: 'low' },
|
|
80
|
+
execute: ({ getState }, input) => {
|
|
81
|
+
const { dashboardId, tableName } = input;
|
|
82
|
+
const state = getState();
|
|
83
|
+
const dashboard = state.mosaicDashboard.getDashboard(dashboardId);
|
|
84
|
+
const previousSelectedTable = dashboard?.selectedTable;
|
|
85
|
+
state.mosaicDashboard.setSelectedTable(dashboardId, tableName);
|
|
86
|
+
return {
|
|
87
|
+
success: true,
|
|
88
|
+
commandId: MOSAIC_DASHBOARD_COMMAND_IDS.setSelectedTable,
|
|
89
|
+
message: `Set dashboard "${dashboardId}" selected table to "${tableName}".`,
|
|
90
|
+
data: {
|
|
91
|
+
dashboardId,
|
|
92
|
+
selectedTable: tableName,
|
|
93
|
+
previousSelectedTable,
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
id: MOSAIC_DASHBOARD_COMMAND_IDS.addPanel,
|
|
100
|
+
name: 'Add dashboard panel',
|
|
101
|
+
description: 'Add a panel to a Mosaic dashboard.',
|
|
102
|
+
group: 'Dashboard',
|
|
103
|
+
keywords: ['dashboard', 'panel', 'add', 'chart', 'table'],
|
|
104
|
+
inputSchema: DashboardAddPanelInput,
|
|
105
|
+
inputDescription: 'Dashboard ID and panel config.',
|
|
106
|
+
metadata: { readOnly: false, idempotent: false, riskLevel: 'medium' },
|
|
107
|
+
execute: ({ getState }, input) => {
|
|
108
|
+
const { dashboardId, panel } = input;
|
|
109
|
+
const state = getState();
|
|
110
|
+
state.mosaicDashboard.addPanel(dashboardId, panel);
|
|
111
|
+
const dashboard = state.mosaicDashboard.getDashboard(dashboardId);
|
|
112
|
+
return {
|
|
113
|
+
success: true,
|
|
114
|
+
commandId: MOSAIC_DASHBOARD_COMMAND_IDS.addPanel,
|
|
115
|
+
message: `Added "${panel.title}" panel to dashboard "${dashboardId}".`,
|
|
116
|
+
data: panelData(dashboardId, panel, dashboard?.selectedTable),
|
|
117
|
+
};
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: MOSAIC_DASHBOARD_COMMAND_IDS.updatePanel,
|
|
122
|
+
name: 'Update dashboard panel',
|
|
123
|
+
description: 'Update an existing Mosaic dashboard panel.',
|
|
124
|
+
group: 'Dashboard',
|
|
125
|
+
keywords: ['dashboard', 'panel', 'update', 'chart'],
|
|
126
|
+
inputSchema: DashboardUpdatePanelInput,
|
|
127
|
+
inputDescription: 'Dashboard ID, panel ID, and partial panel patch.',
|
|
128
|
+
metadata: { readOnly: false, idempotent: false, riskLevel: 'medium' },
|
|
129
|
+
execute: ({ getState }, input) => {
|
|
130
|
+
const { dashboardId, panelId, patch } = input;
|
|
131
|
+
const state = getState();
|
|
132
|
+
const dashboard = state.mosaicDashboard.getDashboard(dashboardId);
|
|
133
|
+
if (!dashboard) {
|
|
134
|
+
return dashboardMissing(MOSAIC_DASHBOARD_COMMAND_IDS.updatePanel, dashboardId);
|
|
135
|
+
}
|
|
136
|
+
const existingPanel = getPanel(dashboard, panelId);
|
|
137
|
+
if (!existingPanel) {
|
|
138
|
+
return panelMissing(MOSAIC_DASHBOARD_COMMAND_IDS.updatePanel, panelId);
|
|
139
|
+
}
|
|
140
|
+
const panelValidation = validatePanelConfig({
|
|
141
|
+
...existingPanel,
|
|
142
|
+
...patch,
|
|
143
|
+
id: panelId,
|
|
144
|
+
});
|
|
145
|
+
if (!panelValidation.success) {
|
|
146
|
+
return {
|
|
147
|
+
success: false,
|
|
148
|
+
commandId: MOSAIC_DASHBOARD_COMMAND_IDS.updatePanel,
|
|
149
|
+
code: 'invalid-dashboard-panel-patch',
|
|
150
|
+
error: 'Dashboard panel patch does not match the panel type.',
|
|
151
|
+
data: {
|
|
152
|
+
dashboardId,
|
|
153
|
+
panelId,
|
|
154
|
+
issues: panelValidation.error.issues,
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
state.mosaicDashboard.updatePanel(dashboardId, panelId, stripPanelId(panelValidation.data));
|
|
159
|
+
const updatedDashboard = state.mosaicDashboard.getDashboard(dashboardId);
|
|
160
|
+
const updatedPanel = updatedDashboard
|
|
161
|
+
? getPanel(updatedDashboard, panelId)
|
|
162
|
+
: undefined;
|
|
163
|
+
return {
|
|
164
|
+
success: true,
|
|
165
|
+
commandId: MOSAIC_DASHBOARD_COMMAND_IDS.updatePanel,
|
|
166
|
+
message: `Updated dashboard panel "${panelId}".`,
|
|
167
|
+
data: updatedPanel
|
|
168
|
+
? {
|
|
169
|
+
...panelData(dashboardId, updatedPanel, updatedDashboard?.selectedTable),
|
|
170
|
+
previousTitle: existingPanel.title,
|
|
171
|
+
}
|
|
172
|
+
: { dashboardId, panelId },
|
|
173
|
+
};
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
id: MOSAIC_DASHBOARD_COMMAND_IDS.removePanel,
|
|
178
|
+
name: 'Remove dashboard panel',
|
|
179
|
+
description: 'Remove a panel from a Mosaic dashboard.',
|
|
180
|
+
group: 'Dashboard',
|
|
181
|
+
keywords: ['dashboard', 'panel', 'remove', 'delete'],
|
|
182
|
+
inputSchema: DashboardRemovePanelInput,
|
|
183
|
+
inputDescription: 'Dashboard ID and panel ID.',
|
|
184
|
+
metadata: { readOnly: false, idempotent: false, riskLevel: 'medium' },
|
|
185
|
+
execute: ({ getState }, input) => {
|
|
186
|
+
const { dashboardId, panelId } = input;
|
|
187
|
+
const state = getState();
|
|
188
|
+
const dashboard = state.mosaicDashboard.getDashboard(dashboardId);
|
|
189
|
+
if (!dashboard) {
|
|
190
|
+
return dashboardMissing(MOSAIC_DASHBOARD_COMMAND_IDS.removePanel, dashboardId);
|
|
191
|
+
}
|
|
192
|
+
const panel = getPanel(dashboard, panelId);
|
|
193
|
+
if (!panel) {
|
|
194
|
+
return panelMissing(MOSAIC_DASHBOARD_COMMAND_IDS.removePanel, panelId);
|
|
195
|
+
}
|
|
196
|
+
state.mosaicDashboard.removePanel(dashboardId, panelId);
|
|
197
|
+
return {
|
|
198
|
+
success: true,
|
|
199
|
+
commandId: MOSAIC_DASHBOARD_COMMAND_IDS.removePanel,
|
|
200
|
+
message: `Removed dashboard panel "${panelId}".`,
|
|
201
|
+
data: {
|
|
202
|
+
...panelData(dashboardId, panel, dashboard.selectedTable),
|
|
203
|
+
removedPanel: panel,
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
];
|
|
209
|
+
}
|
|
210
|
+
function stripPanelId(panel) {
|
|
211
|
+
const { id: _id, ...patch } = panel;
|
|
212
|
+
return patch;
|
|
213
|
+
}
|
|
214
|
+
function validatePanelConfig(panel) {
|
|
215
|
+
const panelType = typeof panel === 'object' && panel !== null && 'type' in panel
|
|
216
|
+
? panel.type
|
|
217
|
+
: undefined;
|
|
218
|
+
if (panelType === MOSAIC_DASHBOARD_CHART_PANEL_TYPE) {
|
|
219
|
+
return ChartPanelConfig.safeParse(panel);
|
|
220
|
+
}
|
|
221
|
+
if (panelType === MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE) {
|
|
222
|
+
return DataTableExplorerPanel.safeParse(panel);
|
|
223
|
+
}
|
|
224
|
+
return MosaicDashboardPanelConfigSchema.safeParse(panel);
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=MosaicDashboardCommands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicDashboardCommands.js","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardCommands.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAKtB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,iCAAiC,EACjC,+CAA+C,EAC/C,0BAA0B,IAAI,gCAAgC,GAC/D,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,0BAA0B,EAAC,MAAM,cAAc,CAAC;AAGxD,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,gBAAgB,EAAE,8BAA8B;IAChD,QAAQ,EAAE,qBAAqB;IAC/B,WAAW,EAAE,wBAAwB;IACrC,WAAW,EAAE,wBAAwB;CAC7B,CAAC;AAEX,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACxD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CACrE,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACxD,KAAK,EAAE,gCAAgC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CACzE,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACxD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC7D,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,EAAE;QAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;KACrD,CAAC;SACD,QAAQ,CAAC,6BAA6B,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACxD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CAC9D,CAAC,CAAC;AAIH,SAAS,gBAAgB,CAAC,SAAiB,EAAE,WAAmB;IAC9D,OAAO;QACL,OAAO,EAAE,KAAK;QACd,SAAS;QACT,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,sBAAsB,WAAW,IAAI;KAC7C,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,OAAe;IACtD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,SAAS;QACT,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,4BAA4B,OAAO,IAAI;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,WAAmB,EACnB,KAAiC,EACjC,aAAsB;IAEtB,OAAO;QACL,WAAW;QACX,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa;KACd,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CACf,SAA+B,EAC/B,OAAe;IAEf,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B;IAG3C,OAAO;QACL;YACE,EAAE,EAAE,4BAA4B,CAAC,gBAAgB;YACjD,IAAI,EAAE,8BAA8B;YACpC,WAAW,EAAE,uDAAuD;YACpE,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACpD,WAAW,EAAE,8BAA8B;YAC3C,gBAAgB,EAAE,8BAA8B;YAChD,QAAQ,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAC;YAC/D,OAAO,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,KAAK,EAAE,EAAE;gBAC7B,MAAM,EAAC,WAAW,EAAE,SAAS,EAAC,GAAG,KAEhC,CAAC;gBACF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAClE,MAAM,qBAAqB,GAAG,SAAS,EAAE,aAAa,CAAC;gBACvD,KAAK,CAAC,eAAe,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC/D,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,4BAA4B,CAAC,gBAAgB;oBACxD,OAAO,EAAE,kBAAkB,WAAW,wBAAwB,SAAS,IAAI;oBAC3E,IAAI,EAAE;wBACJ,WAAW;wBACX,aAAa,EAAE,SAAS;wBACxB,qBAAqB;qBACtB;iBACF,CAAC;YACJ,CAAC;SACF;QACD;YACE,EAAE,EAAE,4BAA4B,CAAC,QAAQ;YACzC,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,oCAAoC;YACjD,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;YACzD,WAAW,EAAE,sBAAsB;YACnC,gBAAgB,EAAE,gCAAgC;YAClD,QAAQ,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAC;YACnE,OAAO,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,KAAK,EAAE,EAAE;gBAC7B,MAAM,EAAC,WAAW,EAAE,KAAK,EAAC,GAAG,KAE5B,CAAC;gBACF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACzB,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACnD,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAClE,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,4BAA4B,CAAC,QAAQ;oBAChD,OAAO,EAAE,UAAU,KAAK,CAAC,KAAK,yBAAyB,WAAW,IAAI;oBACtE,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC;iBAC9D,CAAC;YACJ,CAAC;SACF;QACD;YACE,EAAE,EAAE,4BAA4B,CAAC,WAAW;YAC5C,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,4CAA4C;YACzD,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;YACnD,WAAW,EAAE,yBAAyB;YACtC,gBAAgB,EAAE,kDAAkD;YACpE,QAAQ,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAC;YACnE,OAAO,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,KAAK,EAAE,EAAE;gBAC7B,MAAM,EAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAC,GAAG,KAErC,CAAC;gBACF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAClE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,gBAAgB,CACrB,4BAA4B,CAAC,WAAW,EACxC,WAAW,CACZ,CAAC;gBACJ,CAAC;gBACD,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACnD,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO,YAAY,CACjB,4BAA4B,CAAC,WAAW,EACxC,OAAO,CACR,CAAC;gBACJ,CAAC;gBACD,MAAM,eAAe,GAAG,mBAAmB,CAAC;oBAC1C,GAAG,aAAa;oBAChB,GAAG,KAAK;oBACR,EAAE,EAAE,OAAO;iBACZ,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;oBAC7B,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,SAAS,EAAE,4BAA4B,CAAC,WAAW;wBACnD,IAAI,EAAE,+BAA+B;wBACrC,KAAK,EAAE,sDAAsD;wBAC7D,IAAI,EAAE;4BACJ,WAAW;4BACX,OAAO;4BACP,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM;yBACrC;qBACF,CAAC;gBACJ,CAAC;gBACD,KAAK,CAAC,eAAe,CAAC,WAAW,CAC/B,WAAW,EACX,OAAO,EACP,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CACnC,CAAC;gBACF,MAAM,gBAAgB,GACpB,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAClD,MAAM,YAAY,GAAG,gBAAgB;oBACnC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;oBACrC,CAAC,CAAC,SAAS,CAAC;gBACd,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,4BAA4B,CAAC,WAAW;oBACnD,OAAO,EAAE,4BAA4B,OAAO,IAAI;oBAChD,IAAI,EAAE,YAAY;wBAChB,CAAC,CAAC;4BACE,GAAG,SAAS,CACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAAE,aAAa,CAChC;4BACD,aAAa,EAAE,aAAa,CAAC,KAAK;yBACnC;wBACH,CAAC,CAAC,EAAC,WAAW,EAAE,OAAO,EAAC;iBAC3B,CAAC;YACJ,CAAC;SACF;QACD;YACE,EAAE,EAAE,4BAA4B,CAAC,WAAW;YAC5C,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,yCAAyC;YACtD,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACpD,WAAW,EAAE,yBAAyB;YACtC,gBAAgB,EAAE,4BAA4B;YAC9C,QAAQ,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAC;YACnE,OAAO,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE,KAAK,EAAE,EAAE;gBAC7B,MAAM,EAAC,WAAW,EAAE,OAAO,EAAC,GAAG,KAE9B,CAAC;gBACF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAClE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,gBAAgB,CACrB,4BAA4B,CAAC,WAAW,EACxC,WAAW,CACZ,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,YAAY,CACjB,4BAA4B,CAAC,WAAW,EACxC,OAAO,CACR,CAAC;gBACJ,CAAC;gBACD,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBACxD,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,4BAA4B,CAAC,WAAW;oBACnD,OAAO,EAAE,4BAA4B,OAAO,IAAI;oBAChD,IAAI,EAAE;wBACJ,GAAG,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC;wBACzD,YAAY,EAAE,KAAK;qBACpB;iBACF,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,KAAiC;IAEjC,MAAM,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,EAAC,GAAG,KAAK,CAAC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAc;IAId,MAAM,SAAS,GACb,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK;QAC5D,CAAC,CAAE,KAA0B,CAAC,IAAI;QAClC,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,SAAS,KAAK,iCAAiC,EAAE,CAAC;QACpD,OAAO,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,SAAS,KAAK,+CAA+C,EAAE,CAAC;QAClE,OAAO,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,gCAAgC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC","sourcesContent":["import type {BaseRoomStoreState, RoomCommand} from '@sqlrooms/room-store';\nimport {z} from 'zod';\nimport type {\n MosaicDashboardEntry,\n MosaicDashboardPanelConfig,\n} from './dashboard-types';\nimport {\n ChartPanelConfig,\n DataTableExplorerPanel,\n MOSAIC_DASHBOARD_CHART_PANEL_TYPE,\n MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE,\n MosaicDashboardPanelConfig as MosaicDashboardPanelConfigSchema,\n} from './dashboard-types';\nimport {MosaicDashboardPanelSource} from './core-types';\nimport type {MosaicDashboardSliceState} from './MosaicDashboardSlice';\n\nexport const MOSAIC_DASHBOARD_COMMAND_IDS = {\n setSelectedTable: 'dashboard.set-selected-table',\n addPanel: 'dashboard.add-panel',\n updatePanel: 'dashboard.update-panel',\n removePanel: 'dashboard.remove-panel',\n} as const;\n\nconst DashboardSetSelectedTableInput = z.object({\n dashboardId: z.string().describe('Target dashboard ID.'),\n tableName: z.string().min(1).describe('Selected Mosaic table name.'),\n});\n\nconst DashboardAddPanelInput = z.object({\n dashboardId: z.string().describe('Target dashboard ID.'),\n panel: MosaicDashboardPanelConfigSchema.describe('Panel config to add.'),\n});\n\nconst DashboardUpdatePanelInput = z.object({\n dashboardId: z.string().describe('Target dashboard ID.'),\n panelId: z.string().describe('Dashboard panel ID to update.'),\n patch: z\n .object({\n title: z.string().optional(),\n type: z.string().min(1).optional(),\n source: MosaicDashboardPanelSource.optional(),\n config: z.record(z.string(), z.unknown()).optional(),\n })\n .describe('Partial panel config patch.'),\n});\n\nconst DashboardRemovePanelInput = z.object({\n dashboardId: z.string().describe('Target dashboard ID.'),\n panelId: z.string().describe('Dashboard panel ID to remove.'),\n});\n\ntype DashboardCommandState = BaseRoomStoreState & MosaicDashboardSliceState;\n\nfunction dashboardMissing(commandId: string, dashboardId: string) {\n return {\n success: false,\n commandId,\n code: 'dashboard-not-found',\n error: `Unknown dashboard \"${dashboardId}\".`,\n };\n}\n\nfunction panelMissing(commandId: string, panelId: string) {\n return {\n success: false,\n commandId,\n code: 'dashboard-panel-not-found',\n error: `Unknown dashboard panel \"${panelId}\".`,\n };\n}\n\nfunction panelData(\n dashboardId: string,\n panel: MosaicDashboardPanelConfig,\n selectedTable?: string,\n) {\n return {\n dashboardId,\n panelId: panel.id,\n panelType: panel.type,\n title: panel.title,\n selectedTable,\n };\n}\n\nfunction getPanel(\n dashboard: MosaicDashboardEntry,\n panelId: string,\n): MosaicDashboardPanelConfig | undefined {\n return dashboard.panels.find((panel) => panel.id === panelId);\n}\n\n/**\n * Create reusable Mosaic dashboard commands for selected table and panel\n * mutations.\n *\n * These commands delegate to the dashboard slice so UI code, agents, and\n * future automation share the same persistence behavior.\n */\nexport function createMosaicDashboardCommands<\n TRoomState extends DashboardCommandState = DashboardCommandState,\n>(): RoomCommand<TRoomState>[] {\n return [\n {\n id: MOSAIC_DASHBOARD_COMMAND_IDS.setSelectedTable,\n name: 'Set dashboard selected table',\n description: 'Set the selected source table for a Mosaic dashboard.',\n group: 'Dashboard',\n keywords: ['dashboard', 'table', 'select', 'mosaic'],\n inputSchema: DashboardSetSelectedTableInput,\n inputDescription: 'Dashboard ID and table name.',\n metadata: {readOnly: false, idempotent: true, riskLevel: 'low'},\n execute: ({getState}, input) => {\n const {dashboardId, tableName} = input as z.infer<\n typeof DashboardSetSelectedTableInput\n >;\n const state = getState();\n const dashboard = state.mosaicDashboard.getDashboard(dashboardId);\n const previousSelectedTable = dashboard?.selectedTable;\n state.mosaicDashboard.setSelectedTable(dashboardId, tableName);\n return {\n success: true,\n commandId: MOSAIC_DASHBOARD_COMMAND_IDS.setSelectedTable,\n message: `Set dashboard \"${dashboardId}\" selected table to \"${tableName}\".`,\n data: {\n dashboardId,\n selectedTable: tableName,\n previousSelectedTable,\n },\n };\n },\n },\n {\n id: MOSAIC_DASHBOARD_COMMAND_IDS.addPanel,\n name: 'Add dashboard panel',\n description: 'Add a panel to a Mosaic dashboard.',\n group: 'Dashboard',\n keywords: ['dashboard', 'panel', 'add', 'chart', 'table'],\n inputSchema: DashboardAddPanelInput,\n inputDescription: 'Dashboard ID and panel config.',\n metadata: {readOnly: false, idempotent: false, riskLevel: 'medium'},\n execute: ({getState}, input) => {\n const {dashboardId, panel} = input as z.infer<\n typeof DashboardAddPanelInput\n >;\n const state = getState();\n state.mosaicDashboard.addPanel(dashboardId, panel);\n const dashboard = state.mosaicDashboard.getDashboard(dashboardId);\n return {\n success: true,\n commandId: MOSAIC_DASHBOARD_COMMAND_IDS.addPanel,\n message: `Added \"${panel.title}\" panel to dashboard \"${dashboardId}\".`,\n data: panelData(dashboardId, panel, dashboard?.selectedTable),\n };\n },\n },\n {\n id: MOSAIC_DASHBOARD_COMMAND_IDS.updatePanel,\n name: 'Update dashboard panel',\n description: 'Update an existing Mosaic dashboard panel.',\n group: 'Dashboard',\n keywords: ['dashboard', 'panel', 'update', 'chart'],\n inputSchema: DashboardUpdatePanelInput,\n inputDescription: 'Dashboard ID, panel ID, and partial panel patch.',\n metadata: {readOnly: false, idempotent: false, riskLevel: 'medium'},\n execute: ({getState}, input) => {\n const {dashboardId, panelId, patch} = input as z.infer<\n typeof DashboardUpdatePanelInput\n >;\n const state = getState();\n const dashboard = state.mosaicDashboard.getDashboard(dashboardId);\n if (!dashboard) {\n return dashboardMissing(\n MOSAIC_DASHBOARD_COMMAND_IDS.updatePanel,\n dashboardId,\n );\n }\n const existingPanel = getPanel(dashboard, panelId);\n if (!existingPanel) {\n return panelMissing(\n MOSAIC_DASHBOARD_COMMAND_IDS.updatePanel,\n panelId,\n );\n }\n const panelValidation = validatePanelConfig({\n ...existingPanel,\n ...patch,\n id: panelId,\n });\n if (!panelValidation.success) {\n return {\n success: false,\n commandId: MOSAIC_DASHBOARD_COMMAND_IDS.updatePanel,\n code: 'invalid-dashboard-panel-patch',\n error: 'Dashboard panel patch does not match the panel type.',\n data: {\n dashboardId,\n panelId,\n issues: panelValidation.error.issues,\n },\n };\n }\n state.mosaicDashboard.updatePanel(\n dashboardId,\n panelId,\n stripPanelId(panelValidation.data),\n );\n const updatedDashboard =\n state.mosaicDashboard.getDashboard(dashboardId);\n const updatedPanel = updatedDashboard\n ? getPanel(updatedDashboard, panelId)\n : undefined;\n return {\n success: true,\n commandId: MOSAIC_DASHBOARD_COMMAND_IDS.updatePanel,\n message: `Updated dashboard panel \"${panelId}\".`,\n data: updatedPanel\n ? {\n ...panelData(\n dashboardId,\n updatedPanel,\n updatedDashboard?.selectedTable,\n ),\n previousTitle: existingPanel.title,\n }\n : {dashboardId, panelId},\n };\n },\n },\n {\n id: MOSAIC_DASHBOARD_COMMAND_IDS.removePanel,\n name: 'Remove dashboard panel',\n description: 'Remove a panel from a Mosaic dashboard.',\n group: 'Dashboard',\n keywords: ['dashboard', 'panel', 'remove', 'delete'],\n inputSchema: DashboardRemovePanelInput,\n inputDescription: 'Dashboard ID and panel ID.',\n metadata: {readOnly: false, idempotent: false, riskLevel: 'medium'},\n execute: ({getState}, input) => {\n const {dashboardId, panelId} = input as z.infer<\n typeof DashboardRemovePanelInput\n >;\n const state = getState();\n const dashboard = state.mosaicDashboard.getDashboard(dashboardId);\n if (!dashboard) {\n return dashboardMissing(\n MOSAIC_DASHBOARD_COMMAND_IDS.removePanel,\n dashboardId,\n );\n }\n const panel = getPanel(dashboard, panelId);\n if (!panel) {\n return panelMissing(\n MOSAIC_DASHBOARD_COMMAND_IDS.removePanel,\n panelId,\n );\n }\n state.mosaicDashboard.removePanel(dashboardId, panelId);\n return {\n success: true,\n commandId: MOSAIC_DASHBOARD_COMMAND_IDS.removePanel,\n message: `Removed dashboard panel \"${panelId}\".`,\n data: {\n ...panelData(dashboardId, panel, dashboard.selectedTable),\n removedPanel: panel,\n },\n };\n },\n },\n ];\n}\n\nfunction stripPanelId(\n panel: MosaicDashboardPanelConfig,\n): Partial<Omit<MosaicDashboardPanelConfig, 'id'>> {\n const {id: _id, ...patch} = panel;\n return patch;\n}\n\nfunction validatePanelConfig(\n panel: unknown,\n):\n | {success: true; data: MosaicDashboardPanelConfig}\n | {success: false; error: z.ZodError} {\n const panelType =\n typeof panel === 'object' && panel !== null && 'type' in panel\n ? (panel as {type?: unknown}).type\n : undefined;\n if (panelType === MOSAIC_DASHBOARD_CHART_PANEL_TYPE) {\n return ChartPanelConfig.safeParse(panel);\n }\n if (panelType === MOSAIC_DASHBOARD_DATA_TABLE_EXPLORER_PANEL_TYPE) {\n return DataTableExplorerPanel.safeParse(panel);\n }\n return MosaicDashboardPanelConfigSchema.safeParse(panel);\n}\n"]}
|
|
@@ -11,6 +11,7 @@ import { type MosaicSliceState } from '../MosaicSlice';
|
|
|
11
11
|
import { type RetainedVgPlotChart } from '../VgPlotChart';
|
|
12
12
|
import type { MosaicDashboardAddPanelAction } from './action-types';
|
|
13
13
|
import type { ChartRuntimeIssue } from '../chart-runtime';
|
|
14
|
+
import type { MosaicClient } from '@uwdata/mosaic-core';
|
|
14
15
|
/**
|
|
15
16
|
* Panel key used for function-form panel definitions registered by
|
|
16
17
|
* `MosaicDashboardPanels`. Individual dashboard panels are represented as
|
|
@@ -38,6 +39,7 @@ export declare const ChartPanelConfig: z.ZodObject<{
|
|
|
38
39
|
settings: z.ZodObject<{
|
|
39
40
|
field: z.ZodOptional<z.ZodString>;
|
|
40
41
|
maxBins: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
42
|
+
color: z.ZodOptional<z.ZodString>;
|
|
41
43
|
}, z.core.$strip>;
|
|
42
44
|
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
43
45
|
dataPolicy: z.ZodOptional<z.ZodObject<{
|
|
@@ -80,6 +82,7 @@ export declare const ChartPanelConfig: z.ZodObject<{
|
|
|
80
82
|
avg: "avg";
|
|
81
83
|
}>>>;
|
|
82
84
|
}, z.core.$strip>>>;
|
|
85
|
+
showLegend: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
83
86
|
}, z.core.$strip>;
|
|
84
87
|
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
85
88
|
dataPolicy: z.ZodOptional<z.ZodObject<{
|
|
@@ -88,7 +91,7 @@ export declare const ChartPanelConfig: z.ZodObject<{
|
|
|
88
91
|
reason: z.ZodOptional<z.ZodString>;
|
|
89
92
|
}, z.core.$strip>>;
|
|
90
93
|
}, z.core.$strip>, z.ZodObject<{
|
|
91
|
-
chartType: z.ZodLiteral<"
|
|
94
|
+
chartType: z.ZodLiteral<"scatter-plot">;
|
|
92
95
|
settings: z.ZodObject<{
|
|
93
96
|
x: z.ZodOptional<z.ZodString>;
|
|
94
97
|
y: z.ZodOptional<z.ZodString>;
|
|
@@ -172,6 +175,7 @@ export declare const MosaicDashboardPanelConfig: z.ZodUnion<[z.ZodDiscriminatedU
|
|
|
172
175
|
settings: z.ZodObject<{
|
|
173
176
|
field: z.ZodOptional<z.ZodString>;
|
|
174
177
|
maxBins: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
178
|
+
color: z.ZodOptional<z.ZodString>;
|
|
175
179
|
}, z.core.$strip>;
|
|
176
180
|
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
177
181
|
dataPolicy: z.ZodOptional<z.ZodObject<{
|
|
@@ -214,6 +218,7 @@ export declare const MosaicDashboardPanelConfig: z.ZodUnion<[z.ZodDiscriminatedU
|
|
|
214
218
|
avg: "avg";
|
|
215
219
|
}>>>;
|
|
216
220
|
}, z.core.$strip>>>;
|
|
221
|
+
showLegend: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
217
222
|
}, z.core.$strip>;
|
|
218
223
|
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
219
224
|
dataPolicy: z.ZodOptional<z.ZodObject<{
|
|
@@ -222,7 +227,7 @@ export declare const MosaicDashboardPanelConfig: z.ZodUnion<[z.ZodDiscriminatedU
|
|
|
222
227
|
reason: z.ZodOptional<z.ZodString>;
|
|
223
228
|
}, z.core.$strip>>;
|
|
224
229
|
}, z.core.$strip>, z.ZodObject<{
|
|
225
|
-
chartType: z.ZodLiteral<"
|
|
230
|
+
chartType: z.ZodLiteral<"scatter-plot">;
|
|
226
231
|
settings: z.ZodObject<{
|
|
227
232
|
x: z.ZodOptional<z.ZodString>;
|
|
228
233
|
y: z.ZodOptional<z.ZodString>;
|
|
@@ -343,6 +348,7 @@ export declare const MosaicDashboardEntry: z.ZodObject<{
|
|
|
343
348
|
settings: z.ZodObject<{
|
|
344
349
|
field: z.ZodOptional<z.ZodString>;
|
|
345
350
|
maxBins: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
351
|
+
color: z.ZodOptional<z.ZodString>;
|
|
346
352
|
}, z.core.$strip>;
|
|
347
353
|
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
348
354
|
dataPolicy: z.ZodOptional<z.ZodObject<{
|
|
@@ -385,6 +391,7 @@ export declare const MosaicDashboardEntry: z.ZodObject<{
|
|
|
385
391
|
avg: "avg";
|
|
386
392
|
}>>>;
|
|
387
393
|
}, z.core.$strip>>>;
|
|
394
|
+
showLegend: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
388
395
|
}, z.core.$strip>;
|
|
389
396
|
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
390
397
|
dataPolicy: z.ZodOptional<z.ZodObject<{
|
|
@@ -393,7 +400,7 @@ export declare const MosaicDashboardEntry: z.ZodObject<{
|
|
|
393
400
|
reason: z.ZodOptional<z.ZodString>;
|
|
394
401
|
}, z.core.$strip>>;
|
|
395
402
|
}, z.core.$strip>, z.ZodObject<{
|
|
396
|
-
chartType: z.ZodLiteral<"
|
|
403
|
+
chartType: z.ZodLiteral<"scatter-plot">;
|
|
397
404
|
settings: z.ZodObject<{
|
|
398
405
|
x: z.ZodOptional<z.ZodString>;
|
|
399
406
|
y: z.ZodOptional<z.ZodString>;
|
|
@@ -486,6 +493,7 @@ export declare const MosaicDashboardSliceConfig: z.ZodObject<{
|
|
|
486
493
|
settings: z.ZodObject<{
|
|
487
494
|
field: z.ZodOptional<z.ZodString>;
|
|
488
495
|
maxBins: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
496
|
+
color: z.ZodOptional<z.ZodString>;
|
|
489
497
|
}, z.core.$strip>;
|
|
490
498
|
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
491
499
|
dataPolicy: z.ZodOptional<z.ZodObject<{
|
|
@@ -528,6 +536,7 @@ export declare const MosaicDashboardSliceConfig: z.ZodObject<{
|
|
|
528
536
|
avg: "avg";
|
|
529
537
|
}>>>;
|
|
530
538
|
}, z.core.$strip>>>;
|
|
539
|
+
showLegend: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
531
540
|
}, z.core.$strip>;
|
|
532
541
|
settingsOpen: z.ZodOptional<z.ZodBoolean>;
|
|
533
542
|
dataPolicy: z.ZodOptional<z.ZodObject<{
|
|
@@ -536,7 +545,7 @@ export declare const MosaicDashboardSliceConfig: z.ZodObject<{
|
|
|
536
545
|
reason: z.ZodOptional<z.ZodString>;
|
|
537
546
|
}, z.core.$strip>>;
|
|
538
547
|
}, z.core.$strip>, z.ZodObject<{
|
|
539
|
-
chartType: z.ZodLiteral<"
|
|
548
|
+
chartType: z.ZodLiteral<"scatter-plot">;
|
|
540
549
|
settings: z.ZodObject<{
|
|
541
550
|
x: z.ZodOptional<z.ZodString>;
|
|
542
551
|
y: z.ZodOptional<z.ZodString>;
|
|
@@ -628,6 +637,11 @@ export type MosaicDashboardSliceState = {
|
|
|
628
637
|
* These are live diagnostics for UI and AI tools, not persisted config.
|
|
629
638
|
*/
|
|
630
639
|
panelIssuesByPanelId: Record<string, ChartRuntimeIssue>;
|
|
640
|
+
/**
|
|
641
|
+
* Tracks Mosaic clients by panel ID for reset filter functionality.
|
|
642
|
+
* Key is `getMosaicDashboardPanelId(dashboardId, panelId)`.
|
|
643
|
+
*/
|
|
644
|
+
panelClients: Record<string, MosaicClient[]>;
|
|
631
645
|
};
|
|
632
646
|
chartTypes?: ChartTypeDefinition[];
|
|
633
647
|
addPanelActions: MosaicDashboardAddPanelAction[];
|
|
@@ -635,6 +649,7 @@ export type MosaicDashboardSliceState = {
|
|
|
635
649
|
ensureDashboard: (dashboardId: string, title?: string, layoutType?: MosaicDashboardLayoutType) => void;
|
|
636
650
|
removeDashboard: (dashboardId: string) => void;
|
|
637
651
|
getDashboard: (dashboardId: string) => MosaicDashboardEntry | undefined;
|
|
652
|
+
setDashboardTitle: (dashboardId: string, title: string) => void;
|
|
638
653
|
setSelectedTable: (dashboardId: string, tableName: string) => void;
|
|
639
654
|
setLastSelectedTable: (dashboardId: string, tableName: string) => void;
|
|
640
655
|
panelRenderers: PanelRenderersRecord;
|
|
@@ -660,6 +675,9 @@ export type MosaicDashboardSliceState = {
|
|
|
660
675
|
}) => void;
|
|
661
676
|
clearAllDashboardRuntime: () => void;
|
|
662
677
|
setLayout: (dashboardId: string, layout: LayoutNode | null) => void;
|
|
678
|
+
registerPanelClient: (dashboardId: string, panelId: string, client: MosaicClient) => void;
|
|
679
|
+
unregisterPanelClient: (dashboardId: string, panelId: string, client: MosaicClient) => void;
|
|
680
|
+
getPanelClients: (dashboardId: string, panelId: string) => MosaicClient[];
|
|
663
681
|
};
|
|
664
682
|
};
|
|
665
683
|
export type MosaicDashboardStoreState = BaseRoomStoreState & DbSliceState & DuckDbSliceState & LayoutSliceState & MosaicSliceState & MosaicDashboardSliceState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardSlice.d.ts","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardSlice.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAC,KAAK,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAGL,UAAU,EAMX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAElB,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AACzC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAC,WAAW,EAAC,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAC,KAAK,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAC,6BAA6B,EAAC,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"MosaicDashboardSlice.d.ts","sourceRoot":"","sources":["../../src/dashboard/MosaicDashboardSlice.ts"],"names":[],"mappings":"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"}
|
|
@@ -377,6 +377,7 @@ export function createMosaicDashboardSlice(props = {}) {
|
|
|
377
377
|
runtime: {
|
|
378
378
|
retainedChartsByPanelId: {},
|
|
379
379
|
panelIssuesByPanelId: {},
|
|
380
|
+
panelClients: {},
|
|
380
381
|
},
|
|
381
382
|
chartTypes: props.chartTypes,
|
|
382
383
|
addPanelActions: props.addPanelActions ?? [],
|
|
@@ -432,6 +433,16 @@ export function createMosaicDashboardSlice(props = {}) {
|
|
|
432
433
|
draft.mosaicDashboard.config = config;
|
|
433
434
|
}));
|
|
434
435
|
},
|
|
436
|
+
setDashboardTitle(dashboardId, title) {
|
|
437
|
+
get().mosaicDashboard.ensureDashboard(dashboardId);
|
|
438
|
+
set((state) => produce(state, (draft) => {
|
|
439
|
+
const dashboard = draft.mosaicDashboard.config.dashboardsById[dashboardId];
|
|
440
|
+
if (!dashboard)
|
|
441
|
+
return;
|
|
442
|
+
dashboard.title = title;
|
|
443
|
+
dashboard.updatedAt = Date.now();
|
|
444
|
+
}));
|
|
445
|
+
},
|
|
435
446
|
setSelectedTable(dashboardId, tableName) {
|
|
436
447
|
get().mosaicDashboard.ensureDashboard(dashboardId);
|
|
437
448
|
set((state) => produce(state, (draft) => {
|
|
@@ -499,6 +510,11 @@ export function createMosaicDashboardSlice(props = {}) {
|
|
|
499
510
|
}
|
|
500
511
|
},
|
|
501
512
|
removePanel(dashboardId, panelId) {
|
|
513
|
+
// Clean up panel clients
|
|
514
|
+
const key = getMosaicDashboardPanelId(dashboardId, panelId);
|
|
515
|
+
set(produce((state) => {
|
|
516
|
+
delete state.mosaicDashboard.runtime.panelClients[key];
|
|
517
|
+
}));
|
|
502
518
|
get().mosaicDashboard.evictPanelRuntime(dashboardId, panelId);
|
|
503
519
|
set((state) => produce(state, (draft) => {
|
|
504
520
|
const dashboard = draft.mosaicDashboard.config.dashboardsById[dashboardId];
|
|
@@ -613,6 +629,7 @@ export function createMosaicDashboardSlice(props = {}) {
|
|
|
613
629
|
const runtimePrefix = `dashboard:${dashboardId}:panel:`;
|
|
614
630
|
const existingEntries = Object.entries(get().mosaicDashboard.runtime.retainedChartsByPanelId).filter(([runtimePanelId]) => runtimePanelId.startsWith(runtimePrefix));
|
|
615
631
|
const existingIssueEntries = Object.keys(get().mosaicDashboard.runtime.panelIssuesByPanelId).filter((runtimePanelId) => runtimePanelId.startsWith(runtimePrefix));
|
|
632
|
+
const existingClientEntries = Object.keys(get().mosaicDashboard.runtime.panelClients).filter((runtimePanelId) => runtimePanelId.startsWith(runtimePrefix));
|
|
616
633
|
existingEntries.forEach(([, chart]) => {
|
|
617
634
|
destroyDashboardRuntimeChart(chart);
|
|
618
635
|
});
|
|
@@ -626,12 +643,18 @@ export function createMosaicDashboardSlice(props = {}) {
|
|
|
626
643
|
const nextPanelIssuesByPanelId = {
|
|
627
644
|
...state.mosaicDashboard.runtime.panelIssuesByPanelId,
|
|
628
645
|
};
|
|
646
|
+
const nextPanelClients = {
|
|
647
|
+
...state.mosaicDashboard.runtime.panelClients,
|
|
648
|
+
};
|
|
629
649
|
for (const [runtimePanelId] of existingEntries) {
|
|
630
650
|
delete nextRetainedChartsByPanelId[runtimePanelId];
|
|
631
651
|
}
|
|
632
652
|
for (const runtimePanelId of existingIssueEntries) {
|
|
633
653
|
delete nextPanelIssuesByPanelId[runtimePanelId];
|
|
634
654
|
}
|
|
655
|
+
for (const runtimePanelId of existingClientEntries) {
|
|
656
|
+
delete nextPanelClients[runtimePanelId];
|
|
657
|
+
}
|
|
635
658
|
return {
|
|
636
659
|
mosaicDashboard: {
|
|
637
660
|
...state.mosaicDashboard,
|
|
@@ -639,6 +662,7 @@ export function createMosaicDashboardSlice(props = {}) {
|
|
|
639
662
|
...state.mosaicDashboard.runtime,
|
|
640
663
|
retainedChartsByPanelId: nextRetainedChartsByPanelId,
|
|
641
664
|
panelIssuesByPanelId: nextPanelIssuesByPanelId,
|
|
665
|
+
panelClients: nextPanelClients,
|
|
642
666
|
},
|
|
643
667
|
},
|
|
644
668
|
};
|
|
@@ -655,6 +679,7 @@ export function createMosaicDashboardSlice(props = {}) {
|
|
|
655
679
|
...state.mosaicDashboard.runtime,
|
|
656
680
|
retainedChartsByPanelId: {},
|
|
657
681
|
panelIssuesByPanelId: {},
|
|
682
|
+
panelClients: {},
|
|
658
683
|
},
|
|
659
684
|
},
|
|
660
685
|
}));
|
|
@@ -671,6 +696,36 @@ export function createMosaicDashboardSlice(props = {}) {
|
|
|
671
696
|
dashboard.updatedAt = Date.now();
|
|
672
697
|
}));
|
|
673
698
|
},
|
|
699
|
+
registerPanelClient: (dashboardId, panelId, client) => {
|
|
700
|
+
set(produce((state) => {
|
|
701
|
+
const key = getMosaicDashboardPanelId(dashboardId, panelId);
|
|
702
|
+
if (!state.mosaicDashboard.runtime.panelClients[key]) {
|
|
703
|
+
state.mosaicDashboard.runtime.panelClients[key] = [];
|
|
704
|
+
}
|
|
705
|
+
if (!state.mosaicDashboard.runtime.panelClients[key].includes(client)) {
|
|
706
|
+
state.mosaicDashboard.runtime.panelClients[key].push(client);
|
|
707
|
+
}
|
|
708
|
+
}));
|
|
709
|
+
},
|
|
710
|
+
unregisterPanelClient: (dashboardId, panelId, client) => {
|
|
711
|
+
set(produce((state) => {
|
|
712
|
+
const key = getMosaicDashboardPanelId(dashboardId, panelId);
|
|
713
|
+
const clients = state.mosaicDashboard.runtime.panelClients[key];
|
|
714
|
+
if (clients) {
|
|
715
|
+
const index = clients.indexOf(client);
|
|
716
|
+
if (index > -1) {
|
|
717
|
+
clients.splice(index, 1);
|
|
718
|
+
}
|
|
719
|
+
if (clients.length === 0) {
|
|
720
|
+
delete state.mosaicDashboard.runtime.panelClients[key];
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
}));
|
|
724
|
+
},
|
|
725
|
+
getPanelClients: (dashboardId, panelId) => {
|
|
726
|
+
const key = getMosaicDashboardPanelId(dashboardId, panelId);
|
|
727
|
+
return get().mosaicDashboard.runtime.panelClients[key] ?? [];
|
|
728
|
+
},
|
|
674
729
|
},
|
|
675
730
|
}));
|
|
676
731
|
}
|