@sqlrooms/mosaic 0.29.0-rc.7 → 0.29.0-rc.8
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 +134 -0
- 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/ai.d.ts +9 -4
- package/dist/ai/ai.d.ts.map +1 -1
- package/dist/ai/ai.js +91 -49
- package/dist/ai/ai.js.map +1 -1
- package/dist/ai.d.ts.map +1 -1
- 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 +20 -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/MosaicChartTypeSelector.d.ts.map +1 -1
- package/dist/charts/chart-settings/MosaicChartTypeSelector.js +11 -4
- package/dist/charts/chart-settings/MosaicChartTypeSelector.js.map +1 -1
- package/dist/charts/chart-types/base-types.d.ts +17 -6
- package/dist/charts/chart-types/base-types.d.ts.map +1 -1
- package/dist/charts/chart-types/base-types.js +3 -0
- package/dist/charts/chart-types/base-types.js.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js +3 -8
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js.map +1 -1
- 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/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 +65 -34
- package/dist/charts/chart-types/count-plot/spec.js.map +1 -1
- package/dist/charts/chart-types/count-plot/tool.js +1 -1
- package/dist/charts/chart-types/count-plot/tool.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/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 +25 -0
- package/dist/charts/chart-types/errors.d.ts.map +1 -1
- package/dist/charts/chart-types/errors.js +38 -0
- package/dist/charts/chart-types/errors.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 +53 -21
- package/dist/charts/chart-types/heatmap/spec.js.map +1 -1
- package/dist/charts/chart-types/heatmap/tool.js +2 -2
- package/dist/charts/chart-types/heatmap/tool.js.map +1 -1
- 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/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 +50 -27
- package/dist/charts/chart-types/histogram/spec.js.map +1 -1
- package/dist/charts/chart-types/histogram/tool.d.ts +2 -0
- package/dist/charts/chart-types/histogram/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/tool.js +1 -1
- package/dist/charts/chart-types/histogram/tool.js.map +1 -1
- package/dist/charts/chart-types/index.d.ts +4 -4
- package/dist/charts/chart-types/index.js +4 -4
- 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/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 +97 -65
- package/dist/charts/chart-types/line-chart/spec.js.map +1 -1
- package/dist/charts/chart-types/line-chart/tool.d.ts +2 -0
- package/dist/charts/chart-types/line-chart/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/tool.js +1 -1
- 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/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/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 +24 -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 +81 -0
- package/dist/charts/chart-types/scatter-plot/spec.js.map +1 -0
- package/dist/charts/chart-types/{bubble-chart → scatter-plot}/tool.d.ts +3 -3
- package/dist/charts/chart-types/{bubble-chart → scatter-plot}/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/{bubble-chart → scatter-plot}/tool.js +17 -13
- package/dist/charts/chart-types/scatter-plot/tool.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 +2 -2
- 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 +14 -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/Combobox.d.ts +45 -0
- package/dist/components/Combobox.d.ts.map +1 -0
- package/dist/components/Combobox.js +58 -0
- package/dist/components/Combobox.js.map +1 -0
- 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/components/useCombobox.d.ts +23 -0
- package/dist/components/useCombobox.d.ts.map +1 -0
- package/dist/components/useCombobox.js +26 -0
- package/dist/components/useCombobox.js.map +1 -0
- 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/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/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/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 +12 -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/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.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.js +1 -0
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.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 +22 -7
- 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 +5 -1
- package/dist/data-table-explorer/dataTableExplorerController.d.ts.map +1 -1
- package/dist/data-table-explorer/dataTableExplorerController.js +5 -2
- 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 +30 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js +120 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts +28 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts.map +1 -0
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js +40 -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 +6 -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 +12 -275
- package/dist/data-table-explorer/useDataTableExplorer.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 +3 -3
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/useVgPlotChartRender.d.ts.map +1 -1
- package/dist/useVgPlotChartRender.js +125 -24
- 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/package.json +14 -14
- 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.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiFieldSelector.js","sourceRoot":"","sources":["../../src/components/MultiFieldSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,WAAW,EAAE,OAAO,EAAU,MAAM,OAAO,CAAC;AACpD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"MultiFieldSelector.js","sourceRoot":"","sources":["../../src/components/MultiFieldSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import {Button} from '@sqlrooms/ui';\nimport {Trash2} from 'lucide-react';\nimport {useCallback, useMemo, type FC} from 'react';\nimport {ColumnSelector} from './ColumnSelector';\nimport {ColumnsProvider, useColumnsContext} from './ColumnsContext';\nimport {\n NUMERIC_COLUMN_TYPES,\n QUANTITATIVE_COLUMN_TYPES,\n CATEGORICAL_COLUMN_TYPES,\n} from '../column-types-utils';\nimport type {YFieldConfig} from '../charts/chart-types/line-chart/schema';\n\ntype RenderItemFunction = (\n fieldConfig: YFieldConfig,\n index: number,\n handleUpdate: (index: number, updates: Partial<YFieldConfig>) => void,\n) => React.ReactNode;\n\nexport interface MultiFieldSelectorProps {\n types?: string[];\n value: YFieldConfig[];\n onChange: (value: YFieldConfig[]) => void;\n onAdd: (fieldName: string) => void;\n renderItem?: RenderItemFunction;\n}\n\n/**\n * Manages an array of field configurations with add/update/remove logic.\n * Emits the full updated array on every change.\n *\n * Can be used as:\n * - `<MultiFieldSelector types={...} />` - custom types\n * - `<MultiFieldSelector.Numeric />` - numeric types only\n * - `<MultiFieldSelector.Quantitative />` - numeric + temporal\n * - `<MultiFieldSelector.Categorical />` - text/enum types\n */\nconst MultiFieldSelectorRoot: FC<MultiFieldSelectorProps> = ({\n types,\n value,\n onChange,\n onAdd,\n renderItem,\n}) => {\n const {columns} = useColumnsContext();\n\n const selectedFieldNames = useMemo(() => value.map((v) => v.field), [value]);\n\n const availableColumns = useMemo(\n () => columns.filter((col) => !selectedFieldNames.includes(col.name)),\n [columns, selectedFieldNames],\n );\n\n const handleUpdate = useCallback(\n (index: number, updates: Partial<(typeof value)[0]>) => {\n const updated = [...value];\n updated[index] = {...updated[index]!, ...updates};\n onChange(updated);\n },\n [value, onChange],\n );\n\n const handleRemove = useCallback(\n (index: number) => {\n onChange(value.filter((_, i) => i !== index));\n },\n [value, onChange],\n );\n\n return (\n <div className=\"space-y-1\">\n {value.map((fieldConfig, index) => {\n return (\n <div\n key={fieldConfig.field}\n className=\"grid items-end gap-2\"\n style={{\n gridTemplateColumns: 'minmax(120px, 1fr) auto 32px',\n }}\n >\n <ColumnSelector\n types={types}\n value={fieldConfig.field}\n onChange={(newField) => handleUpdate(index, {field: newField})}\n />\n\n {renderItem && renderItem(fieldConfig, index, handleUpdate)}\n\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => handleRemove(index)}\n className=\"h-8 w-8 shrink-0\"\n >\n <Trash2 className=\"text-destructive h-4 w-4\" />\n </Button>\n </div>\n );\n })}\n\n <ColumnsProvider columns={availableColumns}>\n <ColumnSelector\n types={types}\n value={undefined}\n onChange={onAdd}\n placeholder=\"Select field...\"\n />\n </ColumnsProvider>\n </div>\n );\n};\n\nconst Numeric: FC<Omit<MultiFieldSelectorProps, 'types'>> = (props) => (\n <MultiFieldSelectorRoot {...props} types={NUMERIC_COLUMN_TYPES} />\n);\n\nconst Quantitative: FC<Omit<MultiFieldSelectorProps, 'types'>> = (props) => (\n <MultiFieldSelectorRoot {...props} types={QUANTITATIVE_COLUMN_TYPES} />\n);\n\nconst Categorical: FC<Omit<MultiFieldSelectorProps, 'types'>> = (props) => (\n <MultiFieldSelectorRoot {...props} types={CATEGORICAL_COLUMN_TYPES} />\n);\n\nexport const MultiFieldSelector = Object.assign(MultiFieldSelectorRoot, {\n Numeric,\n Quantitative,\n Categorical,\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemporalGranularitySelector.d.ts","sourceRoot":"","sources":["../../src/components/TemporalGranularitySelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"TemporalGranularitySelector.d.ts","sourceRoot":"","sources":["../../src/components/TemporalGranularitySelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAoB,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAGjD,UAAU,gCAAgC;IACxC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAsBD,eAAO,MAAM,2BAA2B,EAAE,EAAE,CAAC,gCAAgC,CAkDzE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { memo } from 'react';
|
|
3
|
-
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@sqlrooms/ui';
|
|
2
|
+
import { memo, useCallback } from 'react';
|
|
4
3
|
import { TEMPORAL_COLUMN_TYPES } from '../column-types-utils';
|
|
4
|
+
import { Combobox } from './Combobox';
|
|
5
5
|
const TEMPORAL_INTERVALS = [
|
|
6
6
|
{ value: 'year', label: 'Year' },
|
|
7
7
|
{ value: 'quarter', label: 'Quarter' },
|
|
@@ -19,19 +19,23 @@ function isTemporalField(fieldType) {
|
|
|
19
19
|
return TEMPORAL_COLUMN_TYPES.some((type) => fieldType.toUpperCase() === type.toUpperCase());
|
|
20
20
|
}
|
|
21
21
|
export const TemporalGranularitySelector = memo(({ value, onChange, xFieldType }) => {
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
const handleValueChange = (newValue) => {
|
|
22
|
+
// Custom onChange wrapper to handle undefined values
|
|
23
|
+
const handleChange = useCallback((newValue) => {
|
|
27
24
|
if (newValue === NONE) {
|
|
28
25
|
onChange(undefined);
|
|
29
26
|
}
|
|
30
27
|
else {
|
|
31
28
|
onChange(newValue);
|
|
32
29
|
}
|
|
33
|
-
};
|
|
34
|
-
|
|
30
|
+
}, [onChange]);
|
|
31
|
+
// Only render if X field is temporal
|
|
32
|
+
if (!isTemporalField(xFieldType)) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const selectedInterval = TEMPORAL_INTERVALS.find((interval) => interval.value === value);
|
|
36
|
+
const displayValue = selectedInterval?.label ?? 'None';
|
|
37
|
+
const currentValue = value || NONE;
|
|
38
|
+
return (_jsxs(Combobox, { value: currentValue, onChange: handleChange, currentValue: currentValue, children: [_jsx(Combobox.Trigger, { className: "shadow-none", children: _jsx("span", { children: displayValue }) }), _jsxs(Combobox.Content, { children: [_jsx(Combobox.Item, { value: NONE, children: _jsx("span", { className: "text-xs", children: "None" }) }), TEMPORAL_INTERVALS.map((interval) => (_jsx(Combobox.Item, { value: interval.value, isSelected: value === interval.value, children: _jsx("span", { className: "text-xs", children: interval.label }) }, interval.value)))] })] }));
|
|
35
39
|
});
|
|
36
40
|
TemporalGranularitySelector.displayName = 'TemporalGranularitySelector';
|
|
37
41
|
//# sourceMappingURL=TemporalGranularitySelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemporalGranularitySelector.js","sourceRoot":"","sources":["../../src/components/TemporalGranularitySelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,IAAI,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TemporalGranularitySelector.js","sourceRoot":"","sources":["../../src/components/TemporalGranularitySelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import {type FC, memo, useCallback} from 'react';\nimport {TEMPORAL_COLUMN_TYPES} from '../column-types-utils';\nimport type {TemporalInterval} from '../schemas';\nimport {Combobox} from './Combobox';\n\ninterface TemporalGranularitySelectorProps {\n value?: TemporalInterval;\n onChange: (value?: TemporalInterval) => void;\n xFieldType?: string;\n}\n\nconst TEMPORAL_INTERVALS = [\n {value: 'year', label: 'Year'},\n {value: 'quarter', label: 'Quarter'},\n {value: 'month', label: 'Month'},\n {value: 'week', label: 'Week'},\n {value: 'day', label: 'Day'},\n {value: 'hour', label: 'Hour'},\n {value: 'minute', label: 'Minute'},\n {value: 'second', label: 'Second'},\n] as const;\n\nconst NONE = 'none';\n\nfunction isTemporalField(fieldType?: string): boolean {\n if (!fieldType) return false;\n return TEMPORAL_COLUMN_TYPES.some(\n (type) => fieldType.toUpperCase() === type.toUpperCase(),\n );\n}\n\nexport const TemporalGranularitySelector: FC<TemporalGranularitySelectorProps> =\n memo(({value, onChange, xFieldType}) => {\n // Custom onChange wrapper to handle undefined values\n const handleChange = useCallback(\n (newValue: string) => {\n if (newValue === NONE) {\n onChange(undefined);\n } else {\n onChange(newValue as TemporalInterval);\n }\n },\n [onChange],\n );\n\n // Only render if X field is temporal\n if (!isTemporalField(xFieldType)) {\n return null;\n }\n\n const selectedInterval = TEMPORAL_INTERVALS.find(\n (interval) => interval.value === value,\n );\n const displayValue = selectedInterval?.label ?? 'None';\n const currentValue = value || NONE;\n\n return (\n <Combobox\n value={currentValue}\n onChange={handleChange}\n currentValue={currentValue}\n >\n <Combobox.Trigger className=\"shadow-none\">\n <span>{displayValue}</span>\n </Combobox.Trigger>\n <Combobox.Content>\n <Combobox.Item value={NONE}>\n <span className=\"text-xs\">None</span>\n </Combobox.Item>\n {TEMPORAL_INTERVALS.map((interval) => (\n <Combobox.Item\n key={interval.value}\n value={interval.value}\n isSelected={value === interval.value}\n >\n <span className=\"text-xs\">{interval.label}</span>\n </Combobox.Item>\n ))}\n </Combobox.Content>\n </Combobox>\n );\n });\n\nTemporalGranularitySelector.displayName = 'TemporalGranularitySelector';\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface UseComboboxOptions<T extends string = string> {
|
|
2
|
+
value: T;
|
|
3
|
+
onChange: (value: T) => void;
|
|
4
|
+
}
|
|
5
|
+
export interface UseComboboxReturn {
|
|
6
|
+
open: boolean;
|
|
7
|
+
setOpen: (open: boolean) => void;
|
|
8
|
+
handleSelect: (value: string) => void;
|
|
9
|
+
popoverProps: {
|
|
10
|
+
open: boolean;
|
|
11
|
+
onOpenChange: (open: boolean) => void;
|
|
12
|
+
};
|
|
13
|
+
triggerProps: {
|
|
14
|
+
role: 'combobox';
|
|
15
|
+
'aria-expanded': boolean;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Shared combobox state and behavior for Popover-based selectors.
|
|
20
|
+
* Handles open/close state and selection with auto-close.
|
|
21
|
+
*/
|
|
22
|
+
export declare function useCombobox<T extends string = string>(options: UseComboboxOptions<T>): UseComboboxReturn;
|
|
23
|
+
//# sourceMappingURL=useCombobox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCombobox.d.ts","sourceRoot":"","sources":["../../src/components/useCombobox.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAC3D,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,EAAE;QACZ,IAAI,EAAE,OAAO,CAAC;QACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;KACvC,CAAC;IACF,YAAY,EAAE;QACZ,IAAI,EAAE,UAAU,CAAC;QACjB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EACnD,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,iBAAiB,CAwBnB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useState, useCallback } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Shared combobox state and behavior for Popover-based selectors.
|
|
4
|
+
* Handles open/close state and selection with auto-close.
|
|
5
|
+
*/
|
|
6
|
+
export function useCombobox(options) {
|
|
7
|
+
const [open, setOpen] = useState(false);
|
|
8
|
+
const handleSelect = useCallback((value) => {
|
|
9
|
+
options.onChange(value);
|
|
10
|
+
setOpen(false);
|
|
11
|
+
}, [options]);
|
|
12
|
+
return {
|
|
13
|
+
open,
|
|
14
|
+
setOpen,
|
|
15
|
+
handleSelect,
|
|
16
|
+
popoverProps: {
|
|
17
|
+
open,
|
|
18
|
+
onOpenChange: setOpen,
|
|
19
|
+
},
|
|
20
|
+
triggerProps: {
|
|
21
|
+
role: 'combobox',
|
|
22
|
+
'aria-expanded': open,
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=useCombobox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCombobox.js","sourceRoot":"","sources":["../../src/components/useCombobox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,OAAO,CAAC;AAqB5C;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,OAA8B;IAE9B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAAa,EAAE,EAAE;QAChB,OAAO,CAAC,QAAQ,CAAC,KAAU,CAAC,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,OAAO;QACP,YAAY;QACZ,YAAY,EAAE;YACZ,IAAI;YACJ,YAAY,EAAE,OAAO;SACtB;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,UAAmB;YACzB,eAAe,EAAE,IAAI;SACtB;KACF,CAAC;AACJ,CAAC","sourcesContent":["import {useState, useCallback} from 'react';\n\nexport interface UseComboboxOptions<T extends string = string> {\n value: T;\n onChange: (value: T) => void;\n}\n\nexport interface UseComboboxReturn {\n open: boolean;\n setOpen: (open: boolean) => void;\n handleSelect: (value: string) => void;\n popoverProps: {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n };\n triggerProps: {\n role: 'combobox';\n 'aria-expanded': boolean;\n };\n}\n\n/**\n * Shared combobox state and behavior for Popover-based selectors.\n * Handles open/close state and selection with auto-close.\n */\nexport function useCombobox<T extends string = string>(\n options: UseComboboxOptions<T>,\n): UseComboboxReturn {\n const [open, setOpen] = useState(false);\n\n const handleSelect = useCallback(\n (value: string) => {\n options.onChange(value as T);\n setOpen(false);\n },\n [options],\n );\n\n return {\n open,\n setOpen,\n handleSelect,\n popoverProps: {\n open,\n onOpenChange: setOpen,\n },\n triggerProps: {\n role: 'combobox' as const,\n 'aria-expanded': open,\n },\n };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-colors.d.ts","sourceRoot":"","sources":["../../src/constants/chart-colors.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,mBAAuC,CAAC;AACzE,eAAO,MAAM,4BAA4B,QAA2B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { categoricalSchemeColors } from '@sqlrooms/color-scales';
|
|
2
|
+
// Chart color palette (default palette colors)
|
|
3
|
+
export const DEFAULT_CHART_COLORS = categoricalSchemeColors.Observable10;
|
|
4
|
+
export const DEFAULT_CHART_FALLBACK_COLOR = DEFAULT_CHART_COLORS[0];
|
|
5
|
+
//# sourceMappingURL=chart-colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-colors.js","sourceRoot":"","sources":["../../src/constants/chart-colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAE/D,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,YAAY,CAAC;AACzE,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC,CAAC,CAAE,CAAC","sourcesContent":["import {categoricalSchemeColors} from '@sqlrooms/color-scales';\n\n// Chart color palette (default palette colors)\nexport const DEFAULT_CHART_COLORS = categoricalSchemeColors.Observable10;\nexport const DEFAULT_CHART_FALLBACK_COLOR = DEFAULT_CHART_COLORS[0]!;\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { StatefulBlockRenderProps } from '@sqlrooms/blocks';
|
|
2
2
|
import type { MosaicDashboardSliceState } from './MosaicDashboardSlice';
|
|
3
|
-
|
|
3
|
+
import { FC } from 'react';
|
|
4
|
+
export declare const DefaultMosaicDashboardBlock: FC<StatefulBlockRenderProps<MosaicDashboardSliceState>>;
|
|
4
5
|
//# sourceMappingURL=DefaultMosaicDashboardBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultMosaicDashboardBlock.d.ts","sourceRoot":"","sources":["../../src/dashboard/DefaultMosaicDashboardBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,kBAAkB,CAAC;AAE/D,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultMosaicDashboardBlock.d.ts","sourceRoot":"","sources":["../../src/dashboard/DefaultMosaicDashboardBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,kBAAkB,CAAC;AAE/D,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAC,EAAE,EAAC,MAAM,OAAO,CAAC;AAEzB,eAAO,MAAM,2BAA2B,EAAE,EAAE,CAC1C,wBAAwB,CAAC,yBAAyB,CAAC,CAGpD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { MosaicDashboard } from './MosaicDashboard';
|
|
3
|
-
export const DefaultMosaicDashboardBlock = ({ blockId
|
|
3
|
+
export const DefaultMosaicDashboardBlock = ({ blockId }) => {
|
|
4
4
|
return _jsx(MosaicDashboard, { dashboardId: blockId });
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=DefaultMosaicDashboardBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultMosaicDashboardBlock.js","sourceRoot":"","sources":["../../src/dashboard/DefaultMosaicDashboardBlock.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultMosaicDashboardBlock.js","sourceRoot":"","sources":["../../src/dashboard/DefaultMosaicDashboardBlock.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAIlD,MAAM,CAAC,MAAM,2BAA2B,GAEpC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE;IAChB,OAAO,KAAC,eAAe,IAAC,WAAW,EAAE,OAAO,GAAI,CAAC;AACnD,CAAC,CAAC","sourcesContent":["import type {StatefulBlockRenderProps} from '@sqlrooms/blocks';\nimport {MosaicDashboard} from './MosaicDashboard';\nimport type {MosaicDashboardSliceState} from './MosaicDashboardSlice';\nimport {FC} from 'react';\n\nexport const DefaultMosaicDashboardBlock: FC<\n StatefulBlockRenderProps<MosaicDashboardSliceState>\n> = ({blockId}) => {\n return <MosaicDashboard dashboardId={blockId} />;\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
|
}
|