@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,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@sqlrooms/ui';
|
|
2
|
+
import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Tooltip, TooltipContent, TooltipTrigger, } from '@sqlrooms/ui';
|
|
3
3
|
import { Plus } from 'lucide-react';
|
|
4
4
|
import { useAddPanelActions } from '../useAddPanelActions';
|
|
5
5
|
export const MosaicDashboardAddPanelDropdown = ({ dashboardId }) => {
|
|
6
6
|
const { handleAddPanel, canAddPanel, actions, canAddAnyPanel } = useAddPanelActions(dashboardId);
|
|
7
|
-
return (_jsxs(DropdownMenu, { modal: false, children: [_jsx(DropdownMenuTrigger, { asChild: true, children:
|
|
7
|
+
return (_jsxs(DropdownMenu, { modal: false, children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", className: "h-8 w-8", disabled: !canAddAnyPanel, "aria-label": "Add panel", children: _jsx(Plus, { className: "h-3.5 w-3.5" }) }) }) }), _jsx(TooltipContent, { children: "Add panel" })] }), _jsx(DropdownMenuContent, { align: "end", children: actions.map((action) => {
|
|
8
8
|
const Icon = action.icon;
|
|
9
|
-
return (_jsxs(DropdownMenuItem, { onClick: () => handleAddPanel(action), disabled: !canAddPanel(action), children: [Icon ? _jsx(Icon, { className: "mr-2 h-
|
|
9
|
+
return (_jsxs(DropdownMenuItem, { onClick: () => handleAddPanel(action), disabled: !canAddPanel(action), children: [Icon ? _jsx(Icon, { className: "mr-2 h-3.5 w-3.5" }) : null, action.label] }, action.type));
|
|
10
10
|
}) })] }));
|
|
11
11
|
};
|
|
12
12
|
//# sourceMappingURL=MosaicDashboardAddPanelDropdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardAddPanelDropdown.js","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardAddPanelDropdown.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,MAAM,EACN,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"MosaicDashboardAddPanelDropdown.js","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardAddPanelDropdown.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,MAAM,EACN,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAMzD,MAAM,CAAC,MAAM,+BAA+B,GAExC,CAAC,EAAC,WAAW,EAAC,EAAE,EAAE;IACpB,MAAM,EAAC,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAC,GAC1D,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAElC,OAAO,CACL,MAAC,YAAY,IAAC,KAAK,EAAE,KAAK,aACxB,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,SAAS,EACnB,QAAQ,EAAE,CAAC,cAAc,gBACd,WAAW,YAEtB,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,GAAG,GACzB,GACW,GACP,EACjB,KAAC,cAAc,4BAA2B,IAClC,EACV,KAAC,mBAAmB,IAAC,KAAK,EAAC,KAAK,YAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;oBACtB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;oBAEzB,OAAO,CACL,MAAC,gBAAgB,IAEf,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EACrC,QAAQ,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,aAE7B,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,SAAS,EAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,IAAI,EACnD,MAAM,CAAC,KAAK,KALR,MAAM,CAAC,IAAI,CAMC,CACpB,CAAC;gBACJ,CAAC,CAAC,GACkB,IACT,CAChB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC} from 'react';\nimport {\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from '@sqlrooms/ui';\nimport {Plus} from 'lucide-react';\nimport {useAddPanelActions} from '../useAddPanelActions';\n\ninterface MosaicDashboardAddPanelDropdownProps {\n dashboardId: string;\n}\n\nexport const MosaicDashboardAddPanelDropdown: FC<\n MosaicDashboardAddPanelDropdownProps\n> = ({dashboardId}) => {\n const {handleAddPanel, canAddPanel, actions, canAddAnyPanel} =\n useAddPanelActions(dashboardId);\n\n return (\n <DropdownMenu modal={false}>\n <Tooltip>\n <TooltipTrigger asChild>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"outline\"\n className=\"h-8 w-8\"\n disabled={!canAddAnyPanel}\n aria-label=\"Add panel\"\n >\n <Plus className=\"h-3.5 w-3.5\" />\n </Button>\n </DropdownMenuTrigger>\n </TooltipTrigger>\n <TooltipContent>Add panel</TooltipContent>\n </Tooltip>\n <DropdownMenuContent align=\"end\">\n {actions.map((action) => {\n const Icon = action.icon;\n\n return (\n <DropdownMenuItem\n key={action.type}\n onClick={() => handleAddPanel(action)}\n disabled={!canAddPanel(action)}\n >\n {Icon ? <Icon className=\"mr-2 h-3.5 w-3.5\" /> : null}\n {action.label}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n};\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
interface MosaicDashboardDataTableSelectorProps {
|
|
3
|
+
dashboardId: string;
|
|
4
|
+
}
|
|
5
|
+
export declare const MosaicDashboardDataTableSelector: FC<MosaicDashboardDataTableSelectorProps>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=MosaicDashboardDataTableSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicDashboardDataTableSelector.d.ts","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardDataTableSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAc,MAAM,OAAO,CAAC;AAOtC,UAAU,qCAAqC;IAC7C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,gCAAgC,EAAE,EAAE,CAC/C,qCAAqC,CA4BtC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { useStoreWithMosaicDashboard } from '../MosaicDashboardSlice';
|
|
4
|
+
import { DataTableSelector } from '../../components/DataTableSelector';
|
|
5
|
+
import { useTablesWithColumns } from '../../hooks/useTablesWithColumns';
|
|
6
|
+
import { useDataTable } from '@sqlrooms/db';
|
|
7
|
+
export const MosaicDashboardDataTableSelector = ({ dashboardId }) => {
|
|
8
|
+
const tables = useTablesWithColumns();
|
|
9
|
+
const dashboard = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.config.dashboardsById[dashboardId]);
|
|
10
|
+
const selectedTableName = dashboard?.selectedTable;
|
|
11
|
+
const selectedTable = useDataTable(selectedTableName);
|
|
12
|
+
const setSelectedTable = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.setSelectedTable);
|
|
13
|
+
const handleTableChange = useCallback((table) => {
|
|
14
|
+
setSelectedTable(dashboardId, table.table.toString());
|
|
15
|
+
}, [dashboardId, setSelectedTable]);
|
|
16
|
+
return (_jsx(DataTableSelector, { onChange: handleTableChange, tables: tables, value: selectedTable }));
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=MosaicDashboardDataTableSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MosaicDashboardDataTableSelector.js","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardDataTableSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAK,WAAW,EAAC,MAAM,OAAO,CAAC;AACtC,OAAO,EAAC,2BAA2B,EAAC,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAO1C,MAAM,CAAC,MAAM,gCAAgC,GAEzC,CAAC,EAAC,WAAW,EAAC,EAAE,EAAE;IACpB,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,2BAA2B,CAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CACpE,CAAC;IACF,MAAM,iBAAiB,GAAG,SAAS,EAAE,aAAa,CAAC;IAEnD,MAAM,aAAa,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAEtD,MAAM,gBAAgB,GAAG,2BAA2B,CAClD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,gBAAgB,CAClD,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAAgB,EAAE,EAAE;QACnB,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC,EACD,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAChC,CAAC;IAEF,OAAO,CACL,KAAC,iBAAiB,IAChB,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,GACpB,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {FC, useCallback} from 'react';\nimport {useStoreWithMosaicDashboard} from '../MosaicDashboardSlice';\nimport {DataTableSelector} from '../../components/DataTableSelector';\nimport {useTablesWithColumns} from '../../hooks/useTablesWithColumns';\nimport {useDataTable} from '@sqlrooms/db';\nimport type {DataTable} from '@sqlrooms/db';\n\ninterface MosaicDashboardDataTableSelectorProps {\n dashboardId: string;\n}\n\nexport const MosaicDashboardDataTableSelector: FC<\n MosaicDashboardDataTableSelectorProps\n> = ({dashboardId}) => {\n const tables = useTablesWithColumns();\n const dashboard = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.config.dashboardsById[dashboardId],\n );\n const selectedTableName = dashboard?.selectedTable;\n\n const selectedTable = useDataTable(selectedTableName);\n\n const setSelectedTable = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.setSelectedTable,\n );\n\n const handleTableChange = useCallback(\n (table: DataTable) => {\n setSelectedTable(dashboardId, table.table.toString());\n },\n [dashboardId, setSelectedTable],\n );\n\n return (\n <DataTableSelector\n onChange={handleTableChange}\n tables={tables}\n value={selectedTable}\n />\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardResetFiltersButton.d.ts","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardResetFiltersButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"MosaicDashboardResetFiltersButton.d.ts","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardResetFiltersButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,EAAC,MAAM,OAAO,CAAC;AAI9B,UAAU,sCAAsC;IAC9C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,iCAAiC,EAAE,EAAE,CAChD,sCAAsC,CAYvC,CAAC"}
|
|
@@ -1,36 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { getMosaicDashboardSelectionName, useStoreWithMosaicDashboard, } from '../MosaicDashboardSlice';
|
|
2
|
+
import { useDashboardResetFilters } from '../hooks/useDashboardResetFilters';
|
|
3
|
+
import { ResetFiltersButton } from '../components/ResetFiltersButton';
|
|
5
4
|
export const MosaicDashboardResetFiltersButton = ({ dashboardId }) => {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
const dashboardSelection = useStoreWithMosaicDashboard((state) => state.mosaic.selections[dashboardSelectionName]);
|
|
9
|
-
const [selectionVersion, setSelectionVersion] = useState(0);
|
|
10
|
-
useEffect(() => {
|
|
11
|
-
if (!dashboardSelection) {
|
|
12
|
-
getSelection(dashboardSelectionName, 'crossfilter');
|
|
13
|
-
}
|
|
14
|
-
}, [dashboardSelection, dashboardSelectionName, getSelection]);
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
if (!dashboardSelection) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
const handleSelectionChange = () => {
|
|
20
|
-
setSelectionVersion((value) => value + 1);
|
|
21
|
-
};
|
|
22
|
-
dashboardSelection.addEventListener('value', handleSelectionChange);
|
|
23
|
-
return () => {
|
|
24
|
-
dashboardSelection.removeEventListener('value', handleSelectionChange);
|
|
25
|
-
};
|
|
26
|
-
}, [dashboardSelection]);
|
|
27
|
-
const hasActiveFilters = useMemo(() => Boolean(dashboardSelection?.clauses.length), [dashboardSelection, selectionVersion]);
|
|
28
|
-
const handleResetFilters = () => {
|
|
29
|
-
dashboardSelection?.reset();
|
|
30
|
-
};
|
|
31
|
-
if (!hasActiveFilters) {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
return (_jsx(Button, { variant: "link", size: "sm", className: "h-8 px-0", onClick: handleResetFilters, children: "Reset filters" }));
|
|
5
|
+
const { hasActiveFilters, reset } = useDashboardResetFilters({ dashboardId });
|
|
6
|
+
return (_jsx(ResetFiltersButton, { className: "h-8 w-8", disabled: !hasActiveFilters, onClick: reset, tooltip: "Reset all filters" }));
|
|
35
7
|
};
|
|
36
8
|
//# sourceMappingURL=MosaicDashboardResetFiltersButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardResetFiltersButton.js","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardResetFiltersButton.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"MosaicDashboardResetFiltersButton.js","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardResetFiltersButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,wBAAwB,EAAC,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAC,kBAAkB,EAAC,MAAM,kCAAkC,CAAC;AAMpE,MAAM,CAAC,MAAM,iCAAiC,GAE1C,CAAC,EAAC,WAAW,EAAC,EAAE,EAAE;IACpB,MAAM,EAAC,gBAAgB,EAAE,KAAK,EAAC,GAAG,wBAAwB,CAAC,EAAC,WAAW,EAAC,CAAC,CAAC;IAE1E,OAAO,CACL,KAAC,kBAAkB,IACjB,SAAS,EAAC,SAAS,EACnB,QAAQ,EAAE,CAAC,gBAAgB,EAC3B,OAAO,EAAE,KAAK,EACd,OAAO,EAAC,mBAAmB,GAC3B,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {type FC} from 'react';\nimport {useDashboardResetFilters} from '../hooks/useDashboardResetFilters';\nimport {ResetFiltersButton} from '../components/ResetFiltersButton';\n\ninterface MosaicDashboardResetFiltersButtonProps {\n dashboardId: string;\n}\n\nexport const MosaicDashboardResetFiltersButton: FC<\n MosaicDashboardResetFiltersButtonProps\n> = ({dashboardId}) => {\n const {hasActiveFilters, reset} = useDashboardResetFilters({dashboardId});\n\n return (\n <ResetFiltersButton\n className=\"h-8 w-8\"\n disabled={!hasActiveFilters}\n onClick={reset}\n tooltip=\"Reset all filters\"\n />\n );\n};\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare const MosaicDashboardToolbar:
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
export declare const MosaicDashboardToolbar: FC;
|
|
3
3
|
//# sourceMappingURL=MosaicDashboardToolbar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardToolbar.d.ts","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MosaicDashboardToolbar.d.ts","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAc,MAAM,OAAO,CAAC;AAStC,eAAO,MAAM,sBAAsB,EAAE,EA0CpC,CAAC"}
|
|
@@ -4,21 +4,23 @@ import { useMosaicDashboardContext } from '../MosaicDashboardContext';
|
|
|
4
4
|
import { useStoreWithMosaicDashboard } from '../MosaicDashboardSlice';
|
|
5
5
|
import { MosaicDashboardAddPanelDropdown } from './MosaicDashboardAddPanelDropdown';
|
|
6
6
|
import { MosaicDashboardResetFiltersButton } from './MosaicDashboardResetFiltersButton';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { MosaicDashboardDataTableSelector } from './MosaicDashboardDataTableSelector';
|
|
8
|
+
import { useDataTable } from '@sqlrooms/db';
|
|
9
|
+
import { BlockCaptionEditor } from '../../components/BlockCaptionEditor';
|
|
10
10
|
export const MosaicDashboardToolbar = () => {
|
|
11
11
|
const { dashboardId } = useMosaicDashboardContext();
|
|
12
|
-
const
|
|
13
|
-
const selectedTableName =
|
|
12
|
+
const dashboard = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.config.dashboardsById[dashboardId]);
|
|
13
|
+
const selectedTableName = dashboard?.selectedTable;
|
|
14
|
+
const dashboardTitle = dashboard?.title ?? '';
|
|
14
15
|
const selectedTable = useDataTable(selectedTableName);
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
const tableName = selectedTable?.table.table;
|
|
17
|
+
const setDashboardTitle = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.setDashboardTitle);
|
|
18
|
+
const handleTitleChange = useCallback((title) => {
|
|
19
|
+
setDashboardTitle(dashboardId, title || '');
|
|
20
|
+
}, [dashboardId, setDashboardTitle]);
|
|
19
21
|
if (!selectedTableName) {
|
|
20
22
|
return null;
|
|
21
23
|
}
|
|
22
|
-
return (_jsxs("div", { className: "flex items-center justify-between border-b px-5 py-2", children: [_jsx(
|
|
24
|
+
return (_jsxs("div", { className: "flex items-center justify-between gap-2 border-b px-5 py-2", children: [_jsx(BlockCaptionEditor, { value: dashboardTitle, placeholder: tableName || 'Dashboard title', onChange: handleTitleChange }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(MosaicDashboardAddPanelDropdown, { dashboardId: dashboardId }), _jsx(MosaicDashboardDataTableSelector, { dashboardId: dashboardId }), _jsx(MosaicDashboardResetFiltersButton, { dashboardId: dashboardId })] })] }));
|
|
23
25
|
};
|
|
24
26
|
//# sourceMappingURL=MosaicDashboardToolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MosaicDashboardToolbar.js","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardToolbar.tsx"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"MosaicDashboardToolbar.js","sourceRoot":"","sources":["../../../src/dashboard/toolbar/MosaicDashboardToolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAK,WAAW,EAAC,MAAM,OAAO,CAAC;AACtC,OAAO,EAAC,yBAAyB,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAC,2BAA2B,EAAC,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAC,+BAA+B,EAAC,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAC,iCAAiC,EAAC,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAC,gCAAgC,EAAC,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAEvE,MAAM,CAAC,MAAM,sBAAsB,GAAO,GAAG,EAAE;IAC7C,MAAM,EAAC,WAAW,EAAC,GAAG,yBAAyB,EAAE,CAAC;IAElD,MAAM,SAAS,GAAG,2BAA2B,CAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CACpE,CAAC;IACF,MAAM,iBAAiB,GAAG,SAAS,EAAE,aAAa,CAAC;IACnD,MAAM,cAAc,GAAG,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC;IAE9C,MAAM,aAAa,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;IAE7C,MAAM,iBAAiB,GAAG,2BAA2B,CACnD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,iBAAiB,CACnD,CAAC;IAEF,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAAyB,EAAE,EAAE;QAC5B,iBAAiB,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC,EACD,CAAC,WAAW,EAAE,iBAAiB,CAAC,CACjC,CAAC;IAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,4DAA4D,aACzE,KAAC,kBAAkB,IACjB,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE,SAAS,IAAI,iBAAiB,EAC3C,QAAQ,EAAE,iBAAiB,GAC3B,EAEF,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,+BAA+B,IAAC,WAAW,EAAE,WAAW,GAAI,EAC7D,KAAC,gCAAgC,IAAC,WAAW,EAAE,WAAW,GAAI,EAC9D,KAAC,iCAAiC,IAAC,WAAW,EAAE,WAAW,GAAI,IAC3D,IACF,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {FC, useCallback} from 'react';\nimport {useMosaicDashboardContext} from '../MosaicDashboardContext';\nimport {useStoreWithMosaicDashboard} from '../MosaicDashboardSlice';\nimport {MosaicDashboardAddPanelDropdown} from './MosaicDashboardAddPanelDropdown';\nimport {MosaicDashboardResetFiltersButton} from './MosaicDashboardResetFiltersButton';\nimport {MosaicDashboardDataTableSelector} from './MosaicDashboardDataTableSelector';\nimport {useDataTable} from '@sqlrooms/db';\nimport {BlockCaptionEditor} from '../../components/BlockCaptionEditor';\n\nexport const MosaicDashboardToolbar: FC = () => {\n const {dashboardId} = useMosaicDashboardContext();\n\n const dashboard = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.config.dashboardsById[dashboardId],\n );\n const selectedTableName = dashboard?.selectedTable;\n const dashboardTitle = dashboard?.title ?? '';\n\n const selectedTable = useDataTable(selectedTableName);\n const tableName = selectedTable?.table.table;\n\n const setDashboardTitle = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.setDashboardTitle,\n );\n\n const handleTitleChange = useCallback(\n (title: string | undefined) => {\n setDashboardTitle(dashboardId, title || '');\n },\n [dashboardId, setDashboardTitle],\n );\n\n if (!selectedTableName) {\n return null;\n }\n\n return (\n <div className=\"flex items-center justify-between gap-2 border-b px-5 py-2\">\n <BlockCaptionEditor\n value={dashboardTitle}\n placeholder={tableName || 'Dashboard title'}\n onChange={handleTitleChange}\n />\n\n <div className=\"flex items-center gap-2\">\n <MosaicDashboardAddPanelDropdown dashboardId={dashboardId} />\n <MosaicDashboardDataTableSelector dashboardId={dashboardId} />\n <MosaicDashboardResetFiltersButton dashboardId={dashboardId} />\n </div>\n </div>\n );\n};\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type MosaicClient } from '@uwdata/mosaic-core';
|
|
2
|
+
/**
|
|
3
|
+
* Registers Mosaic clients for a dashboard panel so the panel's reset button
|
|
4
|
+
* can track which filters originate from this panel.
|
|
5
|
+
*/
|
|
6
|
+
export declare function usePanelClientRegistration(dashboardId: string | undefined, panelId: string | undefined, clients: MosaicClient[]): void;
|
|
7
|
+
//# sourceMappingURL=usePanelClientRegistration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePanelClientRegistration.d.ts","sourceRoot":"","sources":["../../src/dashboard/usePanelClientRegistration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAItD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,YAAY,EAAE,GACtB,IAAI,CA6BN"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useStoreWithMosaicDashboard } from './MosaicDashboardSlice';
|
|
3
|
+
/**
|
|
4
|
+
* Registers Mosaic clients for a dashboard panel so the panel's reset button
|
|
5
|
+
* can track which filters originate from this panel.
|
|
6
|
+
*/
|
|
7
|
+
export function usePanelClientRegistration(dashboardId, panelId, clients) {
|
|
8
|
+
const registerPanelClient = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.registerPanelClient);
|
|
9
|
+
const unregisterPanelClient = useStoreWithMosaicDashboard((state) => state.mosaicDashboard.unregisterPanelClient);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
if (!dashboardId || !panelId || clients.length === 0) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
clients.forEach((client) => {
|
|
15
|
+
registerPanelClient(dashboardId, panelId, client);
|
|
16
|
+
});
|
|
17
|
+
return () => {
|
|
18
|
+
clients.forEach((client) => {
|
|
19
|
+
unregisterPanelClient(dashboardId, panelId, client);
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
}, [
|
|
23
|
+
dashboardId,
|
|
24
|
+
panelId,
|
|
25
|
+
clients,
|
|
26
|
+
registerPanelClient,
|
|
27
|
+
unregisterPanelClient,
|
|
28
|
+
]);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=usePanelClientRegistration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePanelClientRegistration.js","sourceRoot":"","sources":["../../src/dashboard/usePanelClientRegistration.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AAEnE;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,WAA+B,EAC/B,OAA2B,EAC3B,OAAuB;IAEvB,MAAM,mBAAmB,GAAG,2BAA2B,CACrD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,mBAAmB,CACrD,CAAC;IACF,MAAM,qBAAqB,GAAG,2BAA2B,CACvD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,qBAAqB,CACvD,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzB,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,WAAW;QACX,OAAO;QACP,OAAO;QACP,mBAAmB;QACnB,qBAAqB;KACtB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {type MosaicClient} from '@uwdata/mosaic-core';\nimport {useEffect} from 'react';\nimport {useStoreWithMosaicDashboard} from './MosaicDashboardSlice';\n\n/**\n * Registers Mosaic clients for a dashboard panel so the panel's reset button\n * can track which filters originate from this panel.\n */\nexport function usePanelClientRegistration(\n dashboardId: string | undefined,\n panelId: string | undefined,\n clients: MosaicClient[],\n): void {\n const registerPanelClient = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.registerPanelClient,\n );\n const unregisterPanelClient = useStoreWithMosaicDashboard(\n (state) => state.mosaicDashboard.unregisterPanelClient,\n );\n\n useEffect(() => {\n if (!dashboardId || !panelId || clients.length === 0) {\n return;\n }\n\n clients.forEach((client) => {\n registerPanelClient(dashboardId, panelId, client);\n });\n\n return () => {\n clients.forEach((client) => {\n unregisterPanelClient(dashboardId, panelId, client);\n });\n };\n }, [\n dashboardId,\n panelId,\n clients,\n registerPanelClient,\n unregisterPanelClient,\n ]);\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type MosaicClient } from '@uwdata/mosaic-core';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the list of registered Mosaic clients for a specific dashboard panel.
|
|
4
|
+
* These clients are used to determine which filters originate from this panel.
|
|
5
|
+
*/
|
|
6
|
+
export declare function usePanelClients(dashboardId: string, panelId: string): MosaicClient[];
|
|
7
|
+
//# sourceMappingURL=usePanelClients.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePanelClients.d.ts","sourceRoot":"","sources":["../../src/dashboard/usePanelClients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAMtD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,YAAY,EAAE,CAOhB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useStoreWithMosaicDashboard, getMosaicDashboardPanelId, } from './MosaicDashboardSlice';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the list of registered Mosaic clients for a specific dashboard panel.
|
|
4
|
+
* These clients are used to determine which filters originate from this panel.
|
|
5
|
+
*/
|
|
6
|
+
export function usePanelClients(dashboardId, panelId) {
|
|
7
|
+
const panelClientsFromStore = useStoreWithMosaicDashboard((state) => {
|
|
8
|
+
const key = getMosaicDashboardPanelId(dashboardId, panelId);
|
|
9
|
+
return state.mosaicDashboard.runtime.panelClients[key];
|
|
10
|
+
});
|
|
11
|
+
return panelClientsFromStore ?? [];
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=usePanelClients.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePanelClients.js","sourceRoot":"","sources":["../../src/dashboard/usePanelClients.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,WAAmB,EACnB,OAAe;IAEf,MAAM,qBAAqB,GAAG,2BAA2B,CAAC,CAAC,KAAK,EAAE,EAAE;QAClE,MAAM,GAAG,GAAG,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,OAAO,qBAAqB,IAAI,EAAE,CAAC;AACrC,CAAC","sourcesContent":["import {type MosaicClient} from '@uwdata/mosaic-core';\nimport {\n useStoreWithMosaicDashboard,\n getMosaicDashboardPanelId,\n} from './MosaicDashboardSlice';\n\n/**\n * Returns the list of registered Mosaic clients for a specific dashboard panel.\n * These clients are used to determine which filters originate from this panel.\n */\nexport function usePanelClients(\n dashboardId: string,\n panelId: string,\n): MosaicClient[] {\n const panelClientsFromStore = useStoreWithMosaicDashboard((state) => {\n const key = getMosaicDashboardPanelId(dashboardId, panelId);\n return state.mosaicDashboard.runtime.panelClients[key];\n });\n\n return panelClientsFromStore ?? [];\n}\n"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type ComponentProps, type PropsWithChildren, type ReactElement } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { Table } from '@sqlrooms/ui';
|
|
3
3
|
import { type DataTableExplorerHeaderProps } from './DataTableExplorerHeader';
|
|
4
4
|
import { type DataTableExplorerRowsProps } from './DataTableExplorerRows';
|
|
5
5
|
import { type DataTableExplorerStatusBarProps } from './DataTableExplorerStatusBar';
|
|
6
6
|
import type { DataTableExplorerOptions, UseDataTableExplorerReturn } from './types';
|
|
7
|
+
import { ResetFiltersButton } from '../dashboard/components/ResetFiltersButton';
|
|
7
8
|
export type DataTableExplorerRootProps = PropsWithChildren<{
|
|
8
9
|
explorer: UseDataTableExplorerReturn;
|
|
9
10
|
}>;
|
|
@@ -20,7 +21,8 @@ export type DataTableExplorerCompoundStatusBarProps = Omit<DataTableExplorerStat
|
|
|
20
21
|
declare function DataTableExplorerCompoundStatusBar(props: DataTableExplorerCompoundStatusBarProps): import("react/jsx-runtime").JSX.Element;
|
|
21
22
|
export type DataTableExplorerCompoundTableProps = ComponentProps<typeof Table>;
|
|
22
23
|
declare function DataTableExplorerCompoundTable({ className, disableWrapper, style, ...props }: DataTableExplorerCompoundTableProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
export type DataTableExplorerCompoundResetButtonProps = Omit<ComponentProps<typeof
|
|
24
|
+
export type DataTableExplorerCompoundResetButtonProps = Omit<ComponentProps<typeof ResetFiltersButton>, 'disabled' | 'onClick'> & {
|
|
25
|
+
disabled?: boolean;
|
|
24
26
|
onClick?: () => void;
|
|
25
27
|
};
|
|
26
28
|
declare function DataTableExplorerCompoundResetButton({ className, disabled: disabledProp, onClick, ...props }: DataTableExplorerCompoundResetButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableExplorer.d.ts","sourceRoot":"","sources":["../../src/data-table-explorer/DataTableExplorer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AACf,OAAO,
|
|
1
|
+
{"version":3,"file":"DataTableExplorer.d.ts","sourceRoot":"","sources":["../../src/data-table-explorer/DataTableExplorer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AACf,OAAO,EAAK,KAAK,EAAC,MAAM,cAAc,CAAC;AAEvC,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAC,kBAAkB,EAAC,MAAM,4CAA4C,CAAC;AAgB9E,MAAM,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;IACzD,QAAQ,EAAE,0BAA0B,CAAC;CACtC,CAAC,CAAC;AAEH;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,QAAQ,GACT,EAAE,0BAA0B,2CAM5B;AAED,MAAM,MAAM,sBAAsB,GAChC,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;AAkB9C,MAAM,MAAM,oCAAoC,GAAG,IAAI,CACrD,4BAA4B,EAC5B,UAAU,CACX,CAAC;AAEF,iBAAS,+BAA+B,CACtC,KAAK,EAAE,oCAAoC,2CAI5C;AAED,MAAM,MAAM,kCAAkC,GAAG,IAAI,CACnD,0BAA0B,EAC1B,UAAU,CACX,CAAC;AAEF,iBAAS,6BAA6B,CACpC,KAAK,EAAE,kCAAkC,2CAI1C;AAED,MAAM,MAAM,uCAAuC,GAAG,IAAI,CACxD,+BAA+B,EAC/B,UAAU,CACX,CAAC;AAEF,iBAAS,kCAAkC,CACzC,KAAK,EAAE,uCAAuC,2CAI/C;AAED,MAAM,MAAM,mCAAmC,GAAG,cAAc,CAAC,OAAO,KAAK,CAAC,CAAC;AAE/E,iBAAS,8BAA8B,CAAC,EACtC,SAAS,EACT,cAAqB,EACrB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,mCAAmC,2CAcrC;AAED,MAAM,MAAM,yCAAyC,GAAG,IAAI,CAC1D,cAAc,CAAC,OAAO,kBAAkB,CAAC,EACzC,UAAU,GAAG,SAAS,CACvB,GAAG;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,iBAAS,oCAAoC,CAAC,EAC5C,SAAS,EACT,QAAQ,EAAE,YAAY,EACtB,OAAO,EACP,GAAG,KAAK,EACT,EAAE,yCAAyC,2CAiB3C;AAED,KAAK,kCAAkC,GAAG,CAAC,CACzC,KAAK,EAAE,sBAAsB,KAC1B,YAAY,CAAC,GAAG;IACnB,MAAM,EAAE,OAAO,+BAA+B,CAAC;IAC/C,WAAW,EAAE,OAAO,oCAAoC,CAAC;IACzD,IAAI,EAAE,OAAO,qBAAqB,CAAC;IACnC,IAAI,EAAE,OAAO,6BAA6B,CAAC;IAC3C,SAAS,EAAE,OAAO,kCAAkC,CAAC;IACrD,KAAK,EAAE,OAAO,8BAA8B,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,kCAQ5B,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { createContext, useContext, } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import { FilterX } from 'lucide-react';
|
|
3
|
+
import { cn, Table } from '@sqlrooms/ui';
|
|
5
4
|
import { getDataTableExplorerTableWidth } from './layout';
|
|
6
5
|
import { DataTableExplorerHeader, } from './DataTableExplorerHeader';
|
|
7
6
|
import { DataTableExplorerRows, } from './DataTableExplorerRows';
|
|
8
7
|
import { DataTableExplorerStatusBar, } from './DataTableExplorerStatusBar';
|
|
9
8
|
import { useDataTableExplorer } from './useDataTableExplorer';
|
|
9
|
+
import { ResetFiltersButton } from '../dashboard/components/ResetFiltersButton';
|
|
10
10
|
const explorerContext = createContext(null);
|
|
11
11
|
function useDataTableExplorerCompoundContext() {
|
|
12
12
|
const explorer = useContext(explorerContext);
|
|
@@ -51,10 +51,10 @@ function DataTableExplorerCompoundTable({ className, disableWrapper = true, styl
|
|
|
51
51
|
function DataTableExplorerCompoundResetButton({ className, disabled: disabledProp, onClick, ...props }) {
|
|
52
52
|
const explorer = useDataTableExplorerCompoundContext();
|
|
53
53
|
const disabled = disabledProp ?? !explorer.hasFilters;
|
|
54
|
-
return (_jsx(
|
|
54
|
+
return (_jsx(ResetFiltersButton, { className: cn('h-7 w-7', className), iconClassName: "h-3.5 w-3.5", disabled: disabled, onClick: () => {
|
|
55
55
|
explorer.reset();
|
|
56
56
|
onClick?.();
|
|
57
|
-
},
|
|
57
|
+
}, tooltip: "Reset filters", ...props }));
|
|
58
58
|
}
|
|
59
59
|
export const DataTableExplorer = Object.assign(DataTableExplorerComponent, {
|
|
60
60
|
Header: DataTableExplorerCompoundHeader,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableExplorer.js","sourceRoot":"","sources":["../../src/data-table-explorer/DataTableExplorer.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,UAAU,GAIX,MAAM,OAAO,CAAC;AACf,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"DataTableExplorer.js","sourceRoot":"","sources":["../../src/data-table-explorer/DataTableExplorer.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n createContext,\n useContext,\n type ComponentProps,\n type PropsWithChildren,\n type ReactElement,\n} from 'react';\nimport {cn, Table} from '@sqlrooms/ui';\nimport {getDataTableExplorerTableWidth} from './layout';\nimport {\n DataTableExplorerHeader,\n type DataTableExplorerHeaderProps,\n} from './DataTableExplorerHeader';\nimport {\n DataTableExplorerRows,\n type DataTableExplorerRowsProps,\n} from './DataTableExplorerRows';\nimport {\n DataTableExplorerStatusBar,\n type DataTableExplorerStatusBarProps,\n} from './DataTableExplorerStatusBar';\nimport type {\n DataTableExplorerOptions,\n UseDataTableExplorerReturn,\n} from './types';\nimport {useDataTableExplorer} from './useDataTableExplorer';\nimport {ResetFiltersButton} from '../dashboard/components/ResetFiltersButton';\n\nconst explorerContext = createContext<UseDataTableExplorerReturn | null>(null);\n\nfunction useDataTableExplorerCompoundContext() {\n const explorer = useContext(explorerContext);\n\n if (!explorer) {\n throw new Error(\n 'DataTableExplorer compound components must be rendered inside <DataTableExplorer> or <DataTableExplorer.Root>.',\n );\n }\n\n return explorer;\n}\n\nexport type DataTableExplorerRootProps = PropsWithChildren<{\n explorer: UseDataTableExplorerReturn;\n}>;\n\n/**\n * Provides an existing explorer instance to compound explorer subcomponents.\n */\nexport function DataTableExplorerRoot({\n children,\n explorer,\n}: DataTableExplorerRootProps) {\n return (\n <explorerContext.Provider value={explorer}>\n {children}\n </explorerContext.Provider>\n );\n}\n\nexport type DataTableExplorerProps =\n PropsWithChildren<DataTableExplorerOptions>;\n\n/**\n * Creates an explorer instance and exposes it to compound explorer\n * subcomponents through context.\n */\nfunction DataTableExplorerComponent({\n children,\n ...options\n}: DataTableExplorerProps): ReactElement {\n const explorer = useDataTableExplorer(options);\n return (\n <DataTableExplorerRoot explorer={explorer}>\n {children}\n </DataTableExplorerRoot>\n );\n}\n\nexport type DataTableExplorerCompoundHeaderProps = Omit<\n DataTableExplorerHeaderProps,\n 'explorer'\n>;\n\nfunction DataTableExplorerCompoundHeader(\n props: DataTableExplorerCompoundHeaderProps,\n) {\n const explorer = useDataTableExplorerCompoundContext();\n return <DataTableExplorerHeader {...props} explorer={explorer} />;\n}\n\nexport type DataTableExplorerCompoundRowsProps = Omit<\n DataTableExplorerRowsProps,\n 'explorer'\n>;\n\nfunction DataTableExplorerCompoundRows(\n props: DataTableExplorerCompoundRowsProps,\n) {\n const explorer = useDataTableExplorerCompoundContext();\n return <DataTableExplorerRows {...props} explorer={explorer} />;\n}\n\nexport type DataTableExplorerCompoundStatusBarProps = Omit<\n DataTableExplorerStatusBarProps,\n 'explorer'\n>;\n\nfunction DataTableExplorerCompoundStatusBar(\n props: DataTableExplorerCompoundStatusBarProps,\n) {\n const explorer = useDataTableExplorerCompoundContext();\n return <DataTableExplorerStatusBar {...props} explorer={explorer} />;\n}\n\nexport type DataTableExplorerCompoundTableProps = ComponentProps<typeof Table>;\n\nfunction DataTableExplorerCompoundTable({\n className,\n disableWrapper = true,\n style,\n ...props\n}: DataTableExplorerCompoundTableProps) {\n const explorer = useDataTableExplorerCompoundContext();\n const tableWidth = getDataTableExplorerTableWidth(explorer.columns);\n\n return (\n <Table\n disableWrapper={disableWrapper}\n className={['min-w-full table-fixed', className]\n .filter(Boolean)\n .join(' ')}\n style={{width: `${tableWidth}px`, ...style}}\n {...props}\n />\n );\n}\n\nexport type DataTableExplorerCompoundResetButtonProps = Omit<\n ComponentProps<typeof ResetFiltersButton>,\n 'disabled' | 'onClick'\n> & {\n disabled?: boolean;\n onClick?: () => void;\n};\n\nfunction DataTableExplorerCompoundResetButton({\n className,\n disabled: disabledProp,\n onClick,\n ...props\n}: DataTableExplorerCompoundResetButtonProps) {\n const explorer = useDataTableExplorerCompoundContext();\n const disabled = disabledProp ?? !explorer.hasFilters;\n\n return (\n <ResetFiltersButton\n className={cn('h-7 w-7', className)}\n iconClassName=\"h-3.5 w-3.5\"\n disabled={disabled}\n onClick={() => {\n explorer.reset();\n onClick?.();\n }}\n tooltip=\"Reset filters\"\n {...props}\n />\n );\n}\n\ntype DataTableExplorerCompoundComponent = ((\n props: DataTableExplorerProps,\n) => ReactElement) & {\n Header: typeof DataTableExplorerCompoundHeader;\n ResetButton: typeof DataTableExplorerCompoundResetButton;\n Root: typeof DataTableExplorerRoot;\n Rows: typeof DataTableExplorerCompoundRows;\n StatusBar: typeof DataTableExplorerCompoundStatusBar;\n Table: typeof DataTableExplorerCompoundTable;\n};\n\nexport const DataTableExplorer: DataTableExplorerCompoundComponent =\n Object.assign(DataTableExplorerComponent, {\n Header: DataTableExplorerCompoundHeader,\n ResetButton: DataTableExplorerCompoundResetButton,\n Root: DataTableExplorerRoot,\n Rows: DataTableExplorerCompoundRows,\n StatusBar: DataTableExplorerCompoundStatusBar,\n Table: DataTableExplorerCompoundTable,\n });\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableExplorerCategoryClient.d.ts","sourceRoot":"","sources":["../../src/data-table-explorer/DataTableExplorerCategoryClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAe,KAAK,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAC,KAAK,QAAQ,EAAE,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAC,gCAAgC,EAAC,MAAM,SAAS,CAAC;AAC9D,OAAO,EAIL,KAAK,gBAAgB,EAGtB,MAAM,SAAS,CAAC;AAEjB,KAAK,qBAAqB,GAAG;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,aAAa,EAAE,CAAC,OAAO,EAAE,gCAAgC,KAAK,IAAI,CAAC;IACnE,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,+BAAgC,SAAQ,YAAY;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,aAAa,CAAC,CAAQ;IAC9B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAEpB;IACV,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAqB;gBAE3B,OAAO,EAAE,qBAAqB;IAQ1C,IAAa,YAAY,IAAI,OAAO,CAEnC;IAED,OAAO,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"DataTableExplorerCategoryClient.d.ts","sourceRoot":"","sources":["../../src/data-table-explorer/DataTableExplorerCategoryClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAe,KAAK,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAC,KAAK,QAAQ,EAAE,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAC,gCAAgC,EAAC,MAAM,SAAS,CAAC;AAC9D,OAAO,EAIL,KAAK,gBAAgB,EAGtB,MAAM,SAAS,CAAC;AAEjB,KAAK,qBAAqB,GAAG;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IACnB,aAAa,EAAE,CAAC,OAAO,EAAE,gCAAgC,KAAK,IAAI,CAAC;IACnE,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,+BAAgC,SAAQ,YAAY;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,aAAa,CAAC,CAAQ;IAC9B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAEpB;IACV,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAqB;gBAE3B,OAAO,EAAE,qBAAqB;IAQ1C,IAAa,YAAY,IAAI,OAAO,CAEnC;IAED,OAAO,CAAC,WAAW;IAwBnB,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK;IAM3B,eAAe,CAAC,SAAS,EAAE,OAAO;IAQlC,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE;IAY5B,YAAY,IAAI,IAAI;IAOpB,KAAK,CAAC,MAAM,GAAE,KAAK,CAAC,QAAQ,CAAM,GAAG,KAAK;IAI1C,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAchC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAOvC,KAAK;IAKL,WAAW,CAAC,GAAG,EAAE,MAAM;CAiBxB;AAED,KAAK,2CAA2C,GAAG;IACjD,aAAa,EAAE,+BAA+B,CAAC;CAChD,CAAC;AAEF,qBAAa,oCAAqC,SAAQ,YAAY;IACpE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;gBAEpD,OAAO,EAAE,2CAA2C;IAKvD,YAAY,IAAI,IAAI;IAKpB,KAAK,CAAC,MAAM,GAAE,KAAK,CAAC,QAAQ,CAAM,GAAG,KAAK;IAI1C,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAOhC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;CAIxC"}
|
|
@@ -29,6 +29,7 @@ export class DataTableExplorerCategoryClient extends MosaicClient {
|
|
|
29
29
|
this.onStateChange({
|
|
30
30
|
bucketCount,
|
|
31
31
|
buckets,
|
|
32
|
+
client: this,
|
|
32
33
|
error: this.filteredError ?? this.totalError,
|
|
33
34
|
isLoading: this.filteredLoading || this.totalLoading,
|
|
34
35
|
kind: 'category',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableExplorerCategoryClient.js","sourceRoot":"","sources":["../../src/data-table-explorer/DataTableExplorerCategoryClient.ts"],"names":[],"mappings":"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","sourcesContent":["import {MosaicClient, clausePoint, type Selection} from '@uwdata/mosaic-core';\nimport {type ExprNode, Query} from '@uwdata/mosaic-sql';\nimport type * as arrow from 'apache-arrow';\nimport type {DataTableExplorerCategorySummary} from './types';\nimport {\n buildCategoryBuckets,\n buildCategorySummaryQuery,\n categoryKeyToSelectionValue,\n type CategoryCountRow,\n isSelectableCategoryKey,\n rowsFromQueryResult,\n} from './utils';\n\ntype CategoryClientOptions = {\n categoryLimit: number;\n field: arrow.Field;\n onStateChange: (summary: DataTableExplorerCategorySummary) => void;\n selection: Selection;\n tableName: string;\n};\n\nexport class DataTableExplorerCategoryClient extends MosaicClient {\n private readonly categoryLimit: number;\n private filteredError?: Error;\n private filteredLoading = true;\n private readonly field: arrow.Field;\n private readonly onStateChange: (\n summary: DataTableExplorerCategorySummary,\n ) => void;\n private selectedKey?: string;\n private filteredRows?: CategoryCountRow[];\n private readonly tableName: string;\n private totalError?: Error;\n private totalLoading = true;\n private totalRows?: CategoryCountRow[];\n\n constructor(options: CategoryClientOptions) {\n super(options.selection);\n this.categoryLimit = options.categoryLimit;\n this.field = options.field;\n this.onStateChange = options.onStateChange;\n this.tableName = options.tableName;\n }\n\n override get filterStable(): boolean {\n return false;\n }\n\n private emitSummary() {\n const filteredRows =\n this.filteredRows ?? (this.filteredLoading ? (this.totalRows ?? []) : []);\n const totalRows =\n this.totalRows ?? (this.totalLoading ? (this.filteredRows ?? []) : []);\n const {bucketCount, buckets} = buildCategoryBuckets(\n filteredRows,\n totalRows,\n this.categoryLimit,\n this.selectedKey,\n );\n\n this.onStateChange({\n bucketCount,\n buckets,\n error: this.filteredError ?? this.totalError,\n isLoading: this.filteredLoading || this.totalLoading,\n kind: 'category',\n selectedKey: this.selectedKey,\n toggleValue: (key) => this.toggleValue(key),\n });\n }\n\n setTotalError(error?: Error) {\n this.totalError = error;\n this.totalLoading = false;\n this.emitSummary();\n }\n\n setTotalLoading(isLoading: boolean) {\n this.totalLoading = isLoading;\n if (isLoading) {\n this.totalError = undefined;\n }\n this.emitSummary();\n }\n\n setTotalRows(rows: CategoryCountRow[]) {\n this.totalRows = rows\n .slice()\n .sort(\n (left: CategoryCountRow, right: CategoryCountRow) =>\n right.total - left.total,\n );\n this.totalError = undefined;\n this.totalLoading = false;\n this.emitSummary();\n }\n\n override queryPending(): this {\n this.filteredLoading = true;\n this.filteredError = undefined;\n this.emitSummary();\n return this;\n }\n\n override query(filter: Array<ExprNode> = []): Query {\n return buildCategorySummaryQuery(this.tableName, this.field.name, filter);\n }\n\n override queryResult(data: unknown): this {\n const rows = rowsFromQueryResult<CategoryCountRow>(data)\n .slice()\n .sort(\n (left: CategoryCountRow, right: CategoryCountRow) =>\n right.total - left.total,\n );\n this.filteredRows = rows;\n this.filteredError = undefined;\n this.filteredLoading = false;\n this.emitSummary();\n return this;\n }\n\n override queryError(error: Error): this {\n this.filteredError = error;\n this.filteredLoading = false;\n this.emitSummary();\n return this;\n }\n\n reset() {\n this.selectedKey = undefined;\n this.emitSummary();\n }\n\n toggleValue(key: string) {\n if (!isSelectableCategoryKey(key)) {\n return;\n }\n\n this.selectedKey = this.selectedKey === key ? undefined : key;\n this.filterBy?.update(\n clausePoint(\n this.field.name,\n categoryKeyToSelectionValue(this.selectedKey),\n {\n source: this,\n },\n ),\n );\n this.emitSummary();\n }\n}\n\ntype DataTableExplorerCategoryTotalClientOptions = {\n summaryClient: DataTableExplorerCategoryClient;\n};\n\nexport class DataTableExplorerCategoryTotalClient extends MosaicClient {\n private readonly summaryClient: DataTableExplorerCategoryClient;\n\n constructor(options: DataTableExplorerCategoryTotalClientOptions) {\n super();\n this.summaryClient = options.summaryClient;\n }\n\n override queryPending(): this {\n this.summaryClient.setTotalLoading(true);\n return this;\n }\n\n override query(filter: Array<ExprNode> = []): Query {\n return this.summaryClient.query(filter);\n }\n\n override queryResult(data: unknown): this {\n this.summaryClient.setTotalRows(\n rowsFromQueryResult<CategoryCountRow>(data),\n );\n return this;\n }\n\n override queryError(error: Error): this {\n this.summaryClient.setTotalError(error);\n return this;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DataTableExplorerCategoryClient.js","sourceRoot":"","sources":["../../src/data-table-explorer/DataTableExplorerCategoryClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AAI9E,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAE3B,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAUjB,MAAM,OAAO,+BAAgC,SAAQ,YAAY;IAC9C,aAAa,CAAS;IAC/B,aAAa,CAAS;IACtB,eAAe,GAAG,IAAI,CAAC;IACd,KAAK,CAAc;IACnB,aAAa,CAEpB;IACF,WAAW,CAAU;IACrB,YAAY,CAAsB;IACzB,SAAS,CAAS;IAC3B,UAAU,CAAS;IACnB,YAAY,GAAG,IAAI,CAAC;IACpB,SAAS,CAAsB;IAEvC,YAAY,OAA8B;QACxC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,IAAa,YAAY;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,WAAW;QACjB,MAAM,YAAY,GAChB,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5E,MAAM,SAAS,GACb,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,EAAC,WAAW,EAAE,OAAO,EAAC,GAAG,oBAAoB,CACjD,YAAY,EACZ,SAAS,EACT,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,WAAW,CACjB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC;YACjB,WAAW;YACX,OAAO;YACP,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU;YAC5C,SAAS,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY;YACpD,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,eAAe,CAAC,SAAkB;QAChC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,IAAwB;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI;aAClB,KAAK,EAAE;aACP,IAAI,CACH,CAAC,IAAsB,EAAE,KAAuB,EAAE,EAAE,CAClD,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAC3B,CAAC;QACJ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEQ,YAAY;QACnB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,KAAK,CAAC,SAA0B,EAAE;QACzC,OAAO,yBAAyB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAEQ,WAAW,CAAC,IAAa;QAChC,MAAM,IAAI,GAAG,mBAAmB,CAAmB,IAAI,CAAC;aACrD,KAAK,EAAE;aACP,IAAI,CACH,CAAC,IAAsB,EAAE,KAAuB,EAAE,EAAE,CAClD,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAC3B,CAAC;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,UAAU,CAAC,KAAY;QAC9B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9D,IAAI,CAAC,QAAQ,EAAE,MAAM,CACnB,WAAW,CACT,IAAI,CAAC,KAAK,CAAC,IAAI,EACf,2BAA2B,CAAC,IAAI,CAAC,WAAW,CAAC,EAC7C;YACE,MAAM,EAAE,IAAI;SACb,CACF,CACF,CAAC;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACF;AAMD,MAAM,OAAO,oCAAqC,SAAQ,YAAY;IACnD,aAAa,CAAkC;IAEhE,YAAY,OAAoD;QAC9D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC7C,CAAC;IAEQ,YAAY;QACnB,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,KAAK,CAAC,SAA0B,EAAE;QACzC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAEQ,WAAW,CAAC,IAAa;QAChC,IAAI,CAAC,aAAa,CAAC,YAAY,CAC7B,mBAAmB,CAAmB,IAAI,CAAC,CAC5C,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,UAAU,CAAC,KAAY;QAC9B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["import {MosaicClient, clausePoint, type Selection} from '@uwdata/mosaic-core';\nimport {type ExprNode, Query} from '@uwdata/mosaic-sql';\nimport type * as arrow from 'apache-arrow';\nimport type {DataTableExplorerCategorySummary} from './types';\nimport {\n buildCategoryBuckets,\n buildCategorySummaryQuery,\n categoryKeyToSelectionValue,\n type CategoryCountRow,\n isSelectableCategoryKey,\n rowsFromQueryResult,\n} from './utils';\n\ntype CategoryClientOptions = {\n categoryLimit: number;\n field: arrow.Field;\n onStateChange: (summary: DataTableExplorerCategorySummary) => void;\n selection: Selection;\n tableName: string;\n};\n\nexport class DataTableExplorerCategoryClient extends MosaicClient {\n private readonly categoryLimit: number;\n private filteredError?: Error;\n private filteredLoading = true;\n private readonly field: arrow.Field;\n private readonly onStateChange: (\n summary: DataTableExplorerCategorySummary,\n ) => void;\n private selectedKey?: string;\n private filteredRows?: CategoryCountRow[];\n private readonly tableName: string;\n private totalError?: Error;\n private totalLoading = true;\n private totalRows?: CategoryCountRow[];\n\n constructor(options: CategoryClientOptions) {\n super(options.selection);\n this.categoryLimit = options.categoryLimit;\n this.field = options.field;\n this.onStateChange = options.onStateChange;\n this.tableName = options.tableName;\n }\n\n override get filterStable(): boolean {\n return false;\n }\n\n private emitSummary() {\n const filteredRows =\n this.filteredRows ?? (this.filteredLoading ? (this.totalRows ?? []) : []);\n const totalRows =\n this.totalRows ?? (this.totalLoading ? (this.filteredRows ?? []) : []);\n const {bucketCount, buckets} = buildCategoryBuckets(\n filteredRows,\n totalRows,\n this.categoryLimit,\n this.selectedKey,\n );\n\n this.onStateChange({\n bucketCount,\n buckets,\n client: this,\n error: this.filteredError ?? this.totalError,\n isLoading: this.filteredLoading || this.totalLoading,\n kind: 'category',\n selectedKey: this.selectedKey,\n toggleValue: (key) => this.toggleValue(key),\n });\n }\n\n setTotalError(error?: Error) {\n this.totalError = error;\n this.totalLoading = false;\n this.emitSummary();\n }\n\n setTotalLoading(isLoading: boolean) {\n this.totalLoading = isLoading;\n if (isLoading) {\n this.totalError = undefined;\n }\n this.emitSummary();\n }\n\n setTotalRows(rows: CategoryCountRow[]) {\n this.totalRows = rows\n .slice()\n .sort(\n (left: CategoryCountRow, right: CategoryCountRow) =>\n right.total - left.total,\n );\n this.totalError = undefined;\n this.totalLoading = false;\n this.emitSummary();\n }\n\n override queryPending(): this {\n this.filteredLoading = true;\n this.filteredError = undefined;\n this.emitSummary();\n return this;\n }\n\n override query(filter: Array<ExprNode> = []): Query {\n return buildCategorySummaryQuery(this.tableName, this.field.name, filter);\n }\n\n override queryResult(data: unknown): this {\n const rows = rowsFromQueryResult<CategoryCountRow>(data)\n .slice()\n .sort(\n (left: CategoryCountRow, right: CategoryCountRow) =>\n right.total - left.total,\n );\n this.filteredRows = rows;\n this.filteredError = undefined;\n this.filteredLoading = false;\n this.emitSummary();\n return this;\n }\n\n override queryError(error: Error): this {\n this.filteredError = error;\n this.filteredLoading = false;\n this.emitSummary();\n return this;\n }\n\n reset() {\n this.selectedKey = undefined;\n this.emitSummary();\n }\n\n toggleValue(key: string) {\n if (!isSelectableCategoryKey(key)) {\n return;\n }\n\n this.selectedKey = this.selectedKey === key ? undefined : key;\n this.filterBy?.update(\n clausePoint(\n this.field.name,\n categoryKeyToSelectionValue(this.selectedKey),\n {\n source: this,\n },\n ),\n );\n this.emitSummary();\n }\n}\n\ntype DataTableExplorerCategoryTotalClientOptions = {\n summaryClient: DataTableExplorerCategoryClient;\n};\n\nexport class DataTableExplorerCategoryTotalClient extends MosaicClient {\n private readonly summaryClient: DataTableExplorerCategoryClient;\n\n constructor(options: DataTableExplorerCategoryTotalClientOptions) {\n super();\n this.summaryClient = options.summaryClient;\n }\n\n override queryPending(): this {\n this.summaryClient.setTotalLoading(true);\n return this;\n }\n\n override query(filter: Array<ExprNode> = []): Query {\n return this.summaryClient.query(filter);\n }\n\n override queryResult(data: unknown): this {\n this.summaryClient.setTotalRows(\n rowsFromQueryResult<CategoryCountRow>(data),\n );\n return this;\n }\n\n override queryError(error: Error): this {\n this.summaryClient.setTotalError(error);\n return this;\n }\n}\n"]}
|
|
@@ -3,7 +3,9 @@ import type { Dispatch, SetStateAction } from 'react';
|
|
|
3
3
|
import type { DataTableExplorerCountState } from './DataTableExplorerCountClient';
|
|
4
4
|
import type { DataTableExplorerPageState } from './DataTableExplorerPageClient';
|
|
5
5
|
import type { DataTableExplorerPaginationState, DataTableExplorerSorting, DataTableExplorerSummaryState } from './types';
|
|
6
|
+
import type { MosaicClient } from '@uwdata/mosaic-core';
|
|
6
7
|
export type DataTableExplorerStoreState = {
|
|
8
|
+
client: MosaicClient | null;
|
|
7
9
|
filteredCount: DataTableExplorerCountState;
|
|
8
10
|
lastNonEmptyPageTable?: {
|
|
9
11
|
datasetId: string;
|
|
@@ -17,6 +19,7 @@ export type DataTableExplorerStoreState = {
|
|
|
17
19
|
isLoading: boolean;
|
|
18
20
|
tableName?: string;
|
|
19
21
|
};
|
|
22
|
+
setClient: (client: MosaicClient | null) => void;
|
|
20
23
|
setFilteredCount: (state: DataTableExplorerCountState) => void;
|
|
21
24
|
setPage: (state: DataTableExplorerPageState) => void;
|
|
22
25
|
setPagination: Dispatch<SetStateAction<DataTableExplorerPaginationState>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createDataTableExplorerStore.d.ts","sourceRoot":"","sources":["../../src/data-table-explorer/createDataTableExplorerStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAC,QAAQ,EAAE,cAAc,EAAC,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAC,0BAA0B,EAAC,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EACV,gCAAgC,EAChC,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AAcjB,MAAM,MAAM,2BAA2B,GAAG;IACxC,aAAa,EAAE,2BAA2B,CAAC;IAC3C,qBAAqB,CAAC,EAAE;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC;KACxB,CAAC;IACF,IAAI,EAAE,0BAA0B,CAAC;IACjC,UAAU,EAAE,gCAAgC,CAAC;IAC7C,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,gBAAgB,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;IAC/D,OAAO,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACrD,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC1E,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,gBAAgB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,gBAAgB,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC/D,UAAU,EAAE,CACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,6BAA6B,KACnC,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;IAC5D,OAAO,EAAE,wBAAwB,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IACzD,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,UAAU,EAAE,2BAA2B,CAAC;IACxC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,mBAAmB,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC;IACrD,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAC7C,OAAO,4BAA4B,CACpC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB,
|
|
1
|
+
{"version":3,"file":"createDataTableExplorerStore.d.ts","sourceRoot":"","sources":["../../src/data-table-explorer/createDataTableExplorerStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAC,QAAQ,EAAE,cAAc,EAAC,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAC,0BAA0B,EAAC,MAAM,+BAA+B,CAAC;AAC9E,OAAO,KAAK,EACV,gCAAgC,EAChC,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AAcjB,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEtD,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,2BAA2B,CAAC;IAC3C,qBAAqB,CAAC,EAAE;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC;KACxB,CAAC;IACF,IAAI,EAAE,0BAA0B,CAAC;IACjC,UAAU,EAAE,gCAAgC,CAAC;IAC7C,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,gBAAgB,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;IAC/D,OAAO,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACrD,aAAa,EAAE,QAAQ,CAAC,cAAc,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC1E,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,gBAAgB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,gBAAgB,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC/D,UAAU,EAAE,CACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,6BAA6B,KACnC,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;IAC5D,OAAO,EAAE,wBAAwB,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IACzD,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,UAAU,EAAE,2BAA2B,CAAC;IACxC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,mBAAmB,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC;IACrD,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAC7C,OAAO,4BAA4B,CACpC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB,2DAuJA"}
|
|
@@ -15,6 +15,7 @@ function resolveSetStateAction(next, previous) {
|
|
|
15
15
|
export function createDataTableExplorerStore(options) {
|
|
16
16
|
const { initialSorting = [], pageSize } = options;
|
|
17
17
|
return createStore((set) => ({
|
|
18
|
+
client: null,
|
|
18
19
|
filteredCount: { isLoading: false },
|
|
19
20
|
lastNonEmptyPageTable: undefined,
|
|
20
21
|
page: { isLoading: false },
|
|
@@ -23,6 +24,11 @@ export function createDataTableExplorerStore(options) {
|
|
|
23
24
|
fields: [],
|
|
24
25
|
isLoading: false,
|
|
25
26
|
},
|
|
27
|
+
setClient: (client) => {
|
|
28
|
+
set((state) => produce(state, (draft) => {
|
|
29
|
+
draft.client = client;
|
|
30
|
+
}));
|
|
31
|
+
},
|
|
26
32
|
setFilteredCount: (nextState) => {
|
|
27
33
|
set((state) => produce(state, (draft) => {
|
|
28
34
|
draft.filteredCount = nextState;
|