drizzle-cube 0.6.6 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +231 -106
- package/dist/adapters/ActivityGridChart.config-DaYILvFZ.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-_SyTBEyR.js +2 -0
- package/dist/adapters/AreaChart.config-BKh6fY1_.cjs +1 -0
- package/dist/adapters/AreaChart.config-CJoxLP3Y.js +2 -0
- package/dist/adapters/BarChart.config-Bm1bfRbI.cjs +1 -0
- package/dist/adapters/BarChart.config-CGu2Bqrx.js +2 -0
- package/dist/adapters/BoxPlotChart.config-B7M9CQaE.js +2 -0
- package/dist/adapters/BoxPlotChart.config-CXQel8Hk.cjs +1 -0
- package/dist/adapters/BubbleChart.config-BJ36IuVS.cjs +1 -0
- package/dist/adapters/BubbleChart.config-CWoXeLdm.js +2 -0
- package/dist/adapters/CandlestickChart.config-CGMLZVIy.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-CzOcfF1e.js +2 -0
- package/dist/adapters/DataTable.config-CdAzueTs.cjs +1 -0
- package/dist/adapters/DataTable.config-D_KmPyxV.js +2 -0
- package/dist/adapters/FunnelChart.config-D1QAUuYl.cjs +1 -0
- package/dist/adapters/FunnelChart.config-DCRHQoFc.js +2 -0
- package/dist/adapters/GaugeChart.config-DAybRXP3.js +2 -0
- package/dist/adapters/GaugeChart.config-WUPfyLP-.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-CziltPnC.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-DHpXNONW.js +2 -0
- package/dist/adapters/KpiDelta.config-Bw5o0ocY.js +2 -0
- package/dist/adapters/KpiDelta.config-CdAmE1pw.cjs +1 -0
- package/dist/adapters/KpiNumber.config-CQ_wq2gx.js +2 -0
- package/dist/adapters/KpiNumber.config-wxN8x4DC.cjs +1 -0
- package/dist/adapters/KpiText.config-DIRIC97F.cjs +1 -0
- package/dist/adapters/KpiText.config-eODcP6Hn.js +2 -0
- package/dist/adapters/LineChart.config-32-9zA2V.js +2 -0
- package/dist/adapters/LineChart.config-BukeFp6z.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-BVsR5LDy.js +2 -0
- package/dist/adapters/MarkdownChart.config-j4veYjcZ.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-BRDYx1hw.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-CIosBxco.cjs +1 -0
- package/dist/adapters/PieChart.config-Bj8KiA0n.cjs +1 -0
- package/dist/adapters/PieChart.config-DgAj3y-I.js +2 -0
- package/dist/adapters/ProportionBarChart.config-BfFOppHY.js +2 -0
- package/dist/adapters/ProportionBarChart.config-c8GGE1aK.cjs +1 -0
- package/dist/adapters/RadarChart.config-D7iHY1v9.js +2 -0
- package/dist/adapters/RadarChart.config-ghlANG2-.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-CsXIz-0v.js +2 -0
- package/dist/adapters/RadialBarChart.config-Dsvu2CPV.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-CdT1kXC7.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-sDjFKH9K.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-CvKBvQmu.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-DbM3ICwc.js +2 -0
- package/dist/adapters/SankeyChart.config-BNBcIHaD.js +2 -0
- package/dist/adapters/SankeyChart.config-DZscz3kh.cjs +1 -0
- package/dist/adapters/ScatterChart.config-BNYIddyM.cjs +1 -0
- package/dist/adapters/ScatterChart.config-CEhtoLWc.js +2 -0
- package/dist/adapters/SunburstChart.config-ClseCzji.cjs +1 -0
- package/dist/adapters/SunburstChart.config-nnphNoVO.js +2 -0
- package/dist/adapters/TreeMapChart.config-C8-75muA.js +2 -0
- package/dist/adapters/TreeMapChart.config-DoXeUg9Y.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-BOF1qxY3.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-uW5YyOji.js +2 -0
- package/dist/adapters/chartConfigHelpers-BZMu_1EP.cjs +1 -0
- package/dist/adapters/{chartConfigHelpers-CcvqrIWF.js → chartConfigHelpers-BsnbxA2c.js} +30 -1
- package/dist/adapters/compiler-DAyodAnH.cjs +166 -0
- package/dist/adapters/{compiler-ZruQ85ff.js → compiler-Dq04wAjm.js} +116 -60
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-BMZhIzaI.js → core-BjxfG6Uf.js} +8 -8
- package/dist/adapters/core-zV2w0hO2.cjs +1 -0
- package/dist/adapters/{dist-CH3hwAUk.js → dist-ChBfLb7x.js} +7 -4
- package/dist/adapters/{dist-BOdf-GQO.cjs → dist-CohrBmKe.cjs} +2 -2
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +5 -5
- package/dist/adapters/fastify/index.cjs +2 -2
- package/dist/adapters/fastify/index.js +10 -6
- package/dist/adapters/google-BhvizbFR.cjs +2 -0
- package/dist/adapters/{google-CvKM9yVM.js → google-eKAc20al.js} +3 -3
- package/dist/adapters/{handler-_PXp3G47.cjs → handler-C6Hj6_Yk.cjs} +9 -9
- package/dist/adapters/{handler-xR2P1EI4.js → handler-ox6qxLw5.js} +230 -152
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +26 -18
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +2 -2
- package/dist/adapters/mcp-transport-C_t_p0wU.cjs +40 -0
- package/dist/adapters/mcp-transport-DFH9e6de.js +603 -0
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +14 -11
- package/dist/{server/openai-C3-mjSAc.cjs → adapters/openai-BffpdO4n.cjs} +1 -1
- package/dist/adapters/openai-C9LNhHfK.js +9295 -0
- package/dist/adapters/{openai-B6hWZk_r.js → openai-CmyXJWti.js} +18 -17
- package/dist/adapters/openai-DlT-0VRC.cjs +19 -0
- package/dist/adapters/utils-C5FLHK04.cjs +128 -0
- package/dist/adapters/{utils-U7gV5wQL.js → utils-tjiwXFnP.js} +69 -17
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/client/charts/chartConfigHelpers.d.ts +20 -0
- package/dist/cjs/client/components/AgenticNotebook/AgentChatPanel.d.ts +1 -1
- package/dist/cjs/client/components/AgenticNotebook/ChatInput.d.ts +1 -1
- package/dist/cjs/client/components/AgenticNotebook/ChatMessage.d.ts +1 -1
- package/dist/cjs/client/components/AgenticNotebook/NotebookCanvas.d.ts +2 -2
- package/dist/cjs/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +1 -1
- package/dist/cjs/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +1 -1
- package/dist/cjs/client/components/AgenticNotebook/index.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/BreakdownRow.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/BreakdownSection.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FieldSearchResults.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FlowDepthControls.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FlowModeContent.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FunnelModeContent.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FunnelStepCard.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/FunnelStepList.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/MetricItemCard.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/MetricRow.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/MetricsSection.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +2 -2
- package/dist/cjs/client/components/AnalysisBuilder/RetentionModeContent.d.ts +1 -1
- package/dist/cjs/client/components/AnalysisBuilder/SortToggleButton.d.ts +1 -1
- package/dist/cjs/client/components/DashboardPortletCard.d.ts +1 -1
- package/dist/cjs/client/components/DataBrowser/DataBrowserTable.d.ts +1 -1
- package/dist/cjs/client/components/PortletGroupCard.d.ts +18 -0
- package/dist/cjs/client/components/RowManagedLayout.d.ts +15 -3
- package/dist/cjs/client/components/analyticsPortlet/intrinsicChartHeight.d.ts +9 -0
- package/dist/cjs/client/components/charts/ActivityGridChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/AngledXAxisTick.d.ts +5 -0
- package/dist/cjs/client/components/charts/AreaChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/BarChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/BoxPlotChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/BubbleChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/CandlestickChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/ChartContainer.d.ts +7 -1
- package/dist/cjs/client/components/charts/ChartSummaryHeader.d.ts +31 -0
- package/dist/cjs/client/components/charts/DataTable.d.ts +1 -1
- package/dist/cjs/client/components/charts/FunnelChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/GaugeChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/HeatMapChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/KpiCompactLayout.d.ts +31 -0
- package/dist/cjs/client/components/charts/KpiDelta.d.ts +1 -1
- package/dist/cjs/client/components/charts/KpiDelta.helpers.d.ts +2 -0
- package/dist/cjs/client/components/charts/KpiNumber.d.ts +1 -1
- package/dist/cjs/client/components/charts/KpiStates.d.ts +7 -2
- package/dist/cjs/client/components/charts/KpiText.d.ts +1 -1
- package/dist/cjs/client/components/charts/LineChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/MarkdownChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/MeasureProfileChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/PieChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/ProportionBarChart.config.d.ts +10 -0
- package/dist/cjs/client/components/charts/ProportionBarChart.d.ts +12 -0
- package/dist/cjs/client/components/charts/RadarChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/RadialBarChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/RetentionCombinedChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/RetentionHeatmap.d.ts +1 -1
- package/dist/cjs/client/components/charts/SankeyChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/ScatterChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/SunburstChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/TreeMapChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/WaterfallChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/cartesianChartHelpers.d.ts +62 -0
- package/dist/cjs/client/components/charts/chartScaffolding.d.ts +29 -0
- package/dist/cjs/client/components/dashboard/DashboardContext.d.ts +5 -1
- package/dist/cjs/client/components/dashboard/dashboardGridUtils.d.ts +2 -4
- package/dist/cjs/client/components/dashboardPortletCard/EditActionButtons.d.ts +34 -0
- package/dist/cjs/client/components/dashboardPortletCard/PortletCardHeader.d.ts +2 -12
- package/dist/cjs/client/components/dashboardPortletCard/PortletFloatingActions.d.ts +24 -0
- package/dist/cjs/client/components/dashboardPortletCard/cardStyles.d.ts +5 -0
- package/dist/cjs/client/components/dashboardPortletCard/propsEqual.d.ts +2 -0
- package/dist/cjs/client/components/mobileStackedLayout/memberDisplay.d.ts +21 -0
- package/dist/cjs/client/components.d.ts +1 -1
- package/dist/cjs/client/hooks/dashboard/groupGeometry.d.ts +23 -0
- package/dist/cjs/client/hooks/dashboard/groupUtils.d.ts +57 -0
- package/dist/cjs/client/hooks/dashboard/layoutUtils.d.ts +34 -3
- package/dist/cjs/client/hooks/dashboard/useDashboardController.d.ts +11 -3
- package/dist/cjs/client/hooks/dashboard/useRowLayoutEngine.d.ts +12 -2
- package/dist/cjs/client/hooks/useDashboardHook.d.ts +14 -1
- package/dist/cjs/client/icons/types.d.ts +1 -0
- package/dist/cjs/client/index.d.ts +1 -1
- package/dist/cjs/client/stores/dashboardStore.d.ts +11 -1
- package/dist/cjs/client/types.d.ts +37 -2
- package/dist/cli/index.cjs +6 -5
- package/dist/client/charts/chartConfigHelpers.d.ts +20 -0
- package/dist/client/charts.js +13 -13
- package/dist/client/chunks/DashboardEditModal-ByXLlXZD.js +11777 -0
- package/dist/client/chunks/DashboardEditModal-ByXLlXZD.js.map +1 -0
- package/dist/client/chunks/ProportionBarChart-lOeVz8ZC.js +109 -0
- package/dist/client/chunks/ProportionBarChart-lOeVz8ZC.js.map +1 -0
- package/dist/client/chunks/{RetentionCombinedChart-DY7wKLs5.js → RetentionCombinedChart-Mcm7zHFx.js} +8 -8
- package/dist/client/chunks/{RetentionCombinedChart-DY7wKLs5.js.map → RetentionCombinedChart-Mcm7zHFx.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-iNCG-dLd.js → RetentionHeatmap-4VJx5KDM.js} +6 -6
- package/dist/client/chunks/{RetentionHeatmap-iNCG-dLd.js.map → RetentionHeatmap-4VJx5KDM.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-BDWychCW.js → analysis-builder-CWTJQQtL.js} +421 -413
- package/dist/client/chunks/analysis-builder-CWTJQQtL.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-shared-DkL0e-wU.js → analysis-builder-shared-l-4WKVS1.js} +454 -452
- package/dist/client/chunks/analysis-builder-shared-l-4WKVS1.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-DDqFVWoa.js → chart-activity-grid-DVOhLgxv.js} +61 -6
- package/dist/client/chunks/{chart-activity-grid-DDqFVWoa.js.map → chart-activity-grid-DVOhLgxv.js.map} +1 -1
- package/dist/client/chunks/chart-area-C-5ATxvi.js +963 -0
- package/dist/client/chunks/chart-area-C-5ATxvi.js.map +1 -0
- package/dist/client/chunks/{chart-bar-DAO3PPcE.js → chart-bar-CPiLaXHP.js} +71 -64
- package/dist/client/chunks/chart-bar-CPiLaXHP.js.map +1 -0
- package/dist/client/chunks/{chart-box-plot-CUpFyQQk.js → chart-box-plot-Bae5O9xC.js} +3 -3
- package/dist/client/chunks/{chart-box-plot-CUpFyQQk.js.map → chart-box-plot-Bae5O9xC.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-DvP_6_n9.js → chart-bubble-BFN5WIpf.js} +5 -5
- package/dist/client/chunks/{chart-bubble-DvP_6_n9.js.map → chart-bubble-BFN5WIpf.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-Dx8ZCMzl.js → chart-candlestick-PBQKp_z7.js} +3 -3
- package/dist/client/chunks/{chart-candlestick-Dx8ZCMzl.js.map → chart-candlestick-PBQKp_z7.js.map} +1 -1
- package/dist/client/chunks/{chart-config-activity-grid-BU_bkvER.js → chart-config-activity-grid-C4vXGQNu.js} +2 -2
- package/dist/client/chunks/{chart-config-activity-grid-BU_bkvER.js.map → chart-config-activity-grid-C4vXGQNu.js.map} +1 -1
- package/dist/client/chunks/{chart-config-area-DxwIZ4Uf.js → chart-config-area-DsrZCIwF.js} +35 -4
- package/dist/client/chunks/chart-config-area-DsrZCIwF.js.map +1 -0
- package/dist/client/chunks/{chart-config-bar-Cc8GY9aQ.js → chart-config-bar-BixSs43E.js} +7 -7
- package/dist/client/chunks/{chart-config-bar-Cc8GY9aQ.js.map → chart-config-bar-BixSs43E.js.map} +1 -1
- package/dist/client/chunks/{chart-config-box-plot-Bs8ovYvV.js → chart-config-box-plot-DMuJZqkr.js} +2 -2
- package/dist/client/chunks/{chart-config-box-plot-Bs8ovYvV.js.map → chart-config-box-plot-DMuJZqkr.js.map} +1 -1
- package/dist/client/chunks/{chart-config-bubble-BfgY7pt8.js → chart-config-bubble-1IyZinH0.js} +2 -2
- package/dist/client/chunks/{chart-config-bubble-BfgY7pt8.js.map → chart-config-bubble-1IyZinH0.js.map} +1 -1
- package/dist/client/chunks/{chart-config-candlestick-jaeNNEtC.js → chart-config-candlestick-QwQwJB_-.js} +2 -2
- package/dist/client/chunks/{chart-config-candlestick-jaeNNEtC.js.map → chart-config-candlestick-QwQwJB_-.js.map} +1 -1
- package/dist/client/chunks/{chart-config-data-table-CRk0C0rW.js → chart-config-data-table-CrGyS7aJ.js} +2 -2
- package/dist/client/chunks/{chart-config-data-table-CRk0C0rW.js.map → chart-config-data-table-CrGyS7aJ.js.map} +1 -1
- package/dist/client/chunks/{chart-config-funnel-boT_LNfl.js → chart-config-funnel-DMLLKtPF.js} +2 -2
- package/dist/client/chunks/{chart-config-funnel-boT_LNfl.js.map → chart-config-funnel-DMLLKtPF.js.map} +1 -1
- package/dist/client/chunks/{chart-config-gauge-C5uJEr97.js → chart-config-gauge-DNafFwfS.js} +2 -2
- package/dist/client/chunks/{chart-config-gauge-C5uJEr97.js.map → chart-config-gauge-DNafFwfS.js.map} +1 -1
- package/dist/client/chunks/{chart-config-heat-map-CCarP44-.js → chart-config-heat-map-CJF65SyL.js} +2 -2
- package/dist/client/chunks/{chart-config-heat-map-CCarP44-.js.map → chart-config-heat-map-CJF65SyL.js.map} +1 -1
- package/dist/client/chunks/{chart-config-kpi-delta-DYopvwyG.js → chart-config-kpi-delta-Cl7k6jTj.js} +13 -4
- package/dist/client/chunks/chart-config-kpi-delta-Cl7k6jTj.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-number-BhMdoArB.js → chart-config-kpi-number-DCcnANWC.js} +6 -4
- package/dist/client/chunks/chart-config-kpi-number-DCcnANWC.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-text-DE6Zdi53.js → chart-config-kpi-text-DnnxvOSA.js} +2 -2
- package/dist/client/chunks/{chart-config-kpi-text-DE6Zdi53.js.map → chart-config-kpi-text-DnnxvOSA.js.map} +1 -1
- package/dist/client/chunks/{chart-config-line-CBfM0Rds.js → chart-config-line-CBF9Px9b.js} +9 -7
- package/dist/client/chunks/chart-config-line-CBF9Px9b.js.map +1 -0
- package/dist/client/chunks/{chart-config-markdown-BCDyBI8K.js → chart-config-markdown-C5kBQOjP.js} +2 -2
- package/dist/client/chunks/{chart-config-markdown-BCDyBI8K.js.map → chart-config-markdown-C5kBQOjP.js.map} +1 -1
- package/dist/client/chunks/{chart-config-measure-profile-BgQIH1u2.js → chart-config-measure-profile-CRSRIpKh.js} +2 -2
- package/dist/client/chunks/{chart-config-measure-profile-BgQIH1u2.js.map → chart-config-measure-profile-CRSRIpKh.js.map} +1 -1
- package/dist/client/chunks/{chart-config-pie-ChfFz6DV.js → chart-config-pie-DZLa6Eqm.js} +3 -3
- package/dist/client/chunks/{chart-config-pie-ChfFz6DV.js.map → chart-config-pie-DZLa6Eqm.js.map} +1 -1
- package/dist/client/chunks/{chart-config-radar-BlAIGnww.js → chart-config-radar-DR6vHHyd.js} +3 -3
- package/dist/client/chunks/{chart-config-radar-BlAIGnww.js.map → chart-config-radar-DR6vHHyd.js.map} +1 -1
- package/dist/client/chunks/{chart-config-radial-bar-VFerwbCO.js → chart-config-radial-bar-DVFou4fB.js} +3 -3
- package/dist/client/chunks/{chart-config-radial-bar-VFerwbCO.js.map → chart-config-radial-bar-DVFou4fB.js.map} +1 -1
- package/dist/client/chunks/{chart-config-sankey-BhrDxIgj.js → chart-config-sankey-De8E0C1A.js} +2 -2
- package/dist/client/chunks/{chart-config-sankey-BhrDxIgj.js.map → chart-config-sankey-De8E0C1A.js.map} +1 -1
- package/dist/client/chunks/{chart-config-scatter-q_olh54e.js → chart-config-scatter-CWA89oX4.js} +2 -2
- package/dist/client/chunks/{chart-config-scatter-q_olh54e.js.map → chart-config-scatter-CWA89oX4.js.map} +1 -1
- package/dist/client/chunks/{chart-config-sunburst-BOmkOnKn.js → chart-config-sunburst-B4NUYHMH.js} +2 -2
- package/dist/client/chunks/{chart-config-sunburst-BOmkOnKn.js.map → chart-config-sunburst-B4NUYHMH.js.map} +1 -1
- package/dist/client/chunks/{chart-config-tree-map-BjX88YBY.js → chart-config-tree-map-Uhise6Bx.js} +3 -3
- package/dist/client/chunks/{chart-config-tree-map-BjX88YBY.js.map → chart-config-tree-map-Uhise6Bx.js.map} +1 -1
- package/dist/client/chunks/{chart-config-waterfall-QsWXVSoF.js → chart-config-waterfall-DlQb_PLh.js} +2 -2
- package/dist/client/chunks/{chart-config-waterfall-QsWXVSoF.js.map → chart-config-waterfall-DlQb_PLh.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-BP6DMdom.js → chart-data-table-SNSqZj9B.js} +1072 -1034
- package/dist/client/chunks/chart-data-table-SNSqZj9B.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-xeVGBy-p.js → chart-funnel-CkHSXp6h.js} +3 -3
- package/dist/client/chunks/{chart-funnel-xeVGBy-p.js.map → chart-funnel-CkHSXp6h.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DXQ4r3cb.js → chart-gauge-DHIGq3TH.js} +62 -62
- package/dist/client/chunks/{chart-gauge-DXQ4r3cb.js.map → chart-gauge-DHIGq3TH.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-Pnk6rhqQ.js → chart-heat-map-Bb8L1XQr.js} +4 -4
- package/dist/client/chunks/{chart-heat-map-Pnk6rhqQ.js.map → chart-heat-map-Bb8L1XQr.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-nXQnRRBr.js → chart-kpi-delta-BJCOXE-F.js} +122 -48
- package/dist/client/chunks/chart-kpi-delta-BJCOXE-F.js.map +1 -0
- package/dist/client/chunks/chart-kpi-number-Cdqgv20g.js +263 -0
- package/dist/client/chunks/chart-kpi-number-Cdqgv20g.js.map +1 -0
- package/dist/client/chunks/{chart-kpi-text-CurpqmaD.js → chart-kpi-text-B10ZHCsI.js} +4 -4
- package/dist/client/chunks/{chart-kpi-text-CurpqmaD.js.map → chart-kpi-text-B10ZHCsI.js.map} +1 -1
- package/dist/client/chunks/chart-line-CzvVL3Be.js +117 -0
- package/dist/client/chunks/chart-line-CzvVL3Be.js.map +1 -0
- package/dist/client/chunks/{chart-markdown-BVrqqygz.js → chart-markdown-C0xxBW81.js} +1550 -1349
- package/dist/client/chunks/chart-markdown-C0xxBW81.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-k9_QDQbB.js → chart-measure-profile-BSUPFZCR.js} +6 -5
- package/dist/client/chunks/{chart-measure-profile-k9_QDQbB.js.map → chart-measure-profile-BSUPFZCR.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-BDaaYt7a.js → chart-pie-CwRfwWWZ.js} +11 -11
- package/dist/client/chunks/{chart-pie-BDaaYt7a.js.map → chart-pie-CwRfwWWZ.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-Bz07PIVe.js → chart-radar-Dfql2E7i.js} +10 -10
- package/dist/client/chunks/{chart-radar-Bz07PIVe.js.map → chart-radar-Dfql2E7i.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-DpyxKQMj.js → chart-radial-bar-oE9OZ1IX.js} +11 -11
- package/dist/client/chunks/{chart-radial-bar-DpyxKQMj.js.map → chart-radial-bar-oE9OZ1IX.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-BAeNbI-p.js → chart-sankey-tK7Oz1bC.js} +3 -3
- package/dist/client/chunks/{chart-sankey-BAeNbI-p.js.map → chart-sankey-tK7Oz1bC.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-CRhGLCcy.js → chart-scatter-BtLfAsZb.js} +10 -10
- package/dist/client/chunks/{chart-scatter-CRhGLCcy.js.map → chart-scatter-BtLfAsZb.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-D3wV5OrK.js → chart-sunburst-B7ryWwQ1.js} +4 -4
- package/dist/client/chunks/{chart-sunburst-D3wV5OrK.js.map → chart-sunburst-B7ryWwQ1.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-iI3ewOKY.js → chart-tree-map-DU5M3-qe.js} +31 -29
- package/dist/client/chunks/{chart-tree-map-iI3ewOKY.js.map → chart-tree-map-DU5M3-qe.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-BrrYTZfs.js → chart-waterfall-CAwutpzd.js} +4 -4
- package/dist/client/chunks/{chart-waterfall-BrrYTZfs.js.map → chart-waterfall-CAwutpzd.js.map} +1 -1
- package/dist/client/chunks/{charts-core-Cs-UIsQa.js → charts-core-BxBB2zBE.js} +2 -2
- package/dist/client/chunks/{charts-core-Cs-UIsQa.js.map → charts-core-BxBB2zBE.js.map} +1 -1
- package/dist/client/chunks/charts-loader-0avVzeDd.js +85 -0
- package/dist/client/chunks/charts-loader-0avVzeDd.js.map +1 -0
- package/dist/client/chunks/{core-D7vPfUIe.js → core-BWRP9s8x.js} +9 -8
- package/dist/client/chunks/core-BWRP9s8x.js.map +1 -0
- package/dist/client/chunks/{dist-BwQr11Fz.js → dist-BPmPx7kz.js} +56 -51
- package/dist/client/chunks/{dist-BwQr11Fz.js.map → dist-BPmPx7kz.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-Dey-qIFL.js → exceljs.min-DWC_b8G9.js} +236 -202
- package/dist/client/chunks/{exceljs.min-Dey-qIFL.js.map → exceljs.min-DWC_b8G9.js.map} +1 -1
- package/dist/client/chunks/{javascript-DFnKaHmQ.js → javascript-D6aJaG8F.js} +7 -5
- package/dist/client/chunks/javascript-D6aJaG8F.js.map +1 -0
- package/dist/client/chunks/json-BrJhaXJI.js +44 -0
- package/dist/client/chunks/json-BrJhaXJI.js.map +1 -0
- package/dist/client/chunks/{nl-NL-2zTAWTej.js → nl-NL-BSMhprPr.js} +57 -2
- package/dist/client/chunks/{nl-NL-2zTAWTej.js.map → nl-NL-BSMhprPr.js.map} +1 -1
- package/dist/client/chunks/{rolldown-runtime-CWhphoD1.js → rolldown-runtime-DArdT4gl.js} +2 -2
- package/dist/client/chunks/{schema-visualization-BGT_cNon.js → schema-visualization-CGbnbzj_.js} +10 -10
- package/dist/client/chunks/schema-visualization-CGbnbzj_.js.map +1 -0
- package/dist/client/chunks/{syntaxHighlighting-Bq2Bj9Xt.js → syntaxHighlighting-Cm43as8i.js} +2 -2
- package/dist/client/chunks/{syntaxHighlighting-Bq2Bj9Xt.js.map → syntaxHighlighting-Cm43as8i.js.map} +1 -1
- package/dist/client/chunks/{useDebounce-7suCFq9v.js → useDirtyStateTracking-Dc-Si4db.js} +112 -50
- package/dist/client/chunks/useDirtyStateTracking-Dc-Si4db.js.map +1 -0
- package/dist/client/chunks/{useExplainAI-DueJjb0r.js → useExplainAI-DJbc7Lu4.js} +18 -18
- package/dist/client/chunks/{useExplainAI-DueJjb0r.js.map → useExplainAI-DJbc7Lu4.js.map} +1 -1
- package/dist/client/chunks/{utils-DjLiJKS_.js → utils-CToHkuhU.js} +2 -2
- package/dist/client/chunks/{utils-DjLiJKS_.js.map → utils-CToHkuhU.js.map} +1 -1
- package/dist/client/chunks/{vendor-ChnlgSP0.js → vendor-cTfe9Kho.js} +223 -167
- package/dist/client/chunks/vendor-cTfe9Kho.js.map +1 -0
- package/dist/client/components/AgenticNotebook/AgentChatPanel.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/ChatInput.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/ChatMessage.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/NotebookCanvas.d.ts +2 -2
- package/dist/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/index.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisResultsPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/BreakdownSection.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FlowModeContent.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FunnelBindingKeySelector.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FunnelConfigPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FunnelModeContent.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FunnelStepCard.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FunnelStepList.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/MetricItemCard.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/MetricsSection.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/RetentionConfigPanel.d.ts +2 -2
- package/dist/client/components/AnalysisBuilder/RetentionModeContent.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/SortToggleButton.d.ts +1 -1
- package/dist/client/components/DashboardPortletCard.d.ts +1 -1
- package/dist/client/components/DataBrowser/DataBrowserTable.d.ts +1 -1
- package/dist/client/components/PortletGroupCard.d.ts +18 -0
- package/dist/client/components/RowManagedLayout.d.ts +15 -3
- package/dist/client/components/analyticsPortlet/intrinsicChartHeight.d.ts +9 -0
- package/dist/client/components/charts/ActivityGridChart.d.ts +1 -1
- package/dist/client/components/charts/AngledXAxisTick.d.ts +5 -0
- package/dist/client/components/charts/AreaChart.d.ts +1 -1
- package/dist/client/components/charts/BarChart.d.ts +1 -1
- package/dist/client/components/charts/BoxPlotChart.d.ts +1 -1
- package/dist/client/components/charts/BubbleChart.d.ts +1 -1
- package/dist/client/components/charts/CandlestickChart.d.ts +1 -1
- package/dist/client/components/charts/ChartContainer.d.ts +7 -1
- package/dist/client/components/charts/ChartSummaryHeader.d.ts +31 -0
- package/dist/client/components/charts/DataTable.d.ts +1 -1
- package/dist/client/components/charts/FunnelChart.d.ts +1 -1
- package/dist/client/components/charts/GaugeChart.d.ts +1 -1
- package/dist/client/components/charts/HeatMapChart.d.ts +1 -1
- package/dist/client/components/charts/KpiCompactLayout.d.ts +31 -0
- package/dist/client/components/charts/KpiDelta.d.ts +1 -1
- package/dist/client/components/charts/KpiDelta.helpers.d.ts +2 -0
- package/dist/client/components/charts/KpiNumber.d.ts +1 -1
- package/dist/client/components/charts/KpiStates.d.ts +7 -2
- package/dist/client/components/charts/KpiText.d.ts +1 -1
- package/dist/client/components/charts/LineChart.d.ts +1 -1
- package/dist/client/components/charts/MarkdownChart.d.ts +1 -1
- package/dist/client/components/charts/MeasureProfileChart.d.ts +1 -1
- package/dist/client/components/charts/PieChart.d.ts +1 -1
- package/dist/client/components/charts/ProportionBarChart.config.d.ts +10 -0
- package/dist/client/components/charts/ProportionBarChart.d.ts +12 -0
- package/dist/client/components/charts/RadarChart.d.ts +1 -1
- package/dist/client/components/charts/RadialBarChart.d.ts +1 -1
- package/dist/client/components/charts/RetentionCombinedChart.d.ts +1 -1
- package/dist/client/components/charts/RetentionHeatmap.d.ts +1 -1
- package/dist/client/components/charts/SankeyChart.d.ts +1 -1
- package/dist/client/components/charts/ScatterChart.d.ts +1 -1
- package/dist/client/components/charts/SunburstChart.d.ts +1 -1
- package/dist/client/components/charts/TreeMapChart.d.ts +1 -1
- package/dist/client/components/charts/WaterfallChart.d.ts +1 -1
- package/dist/client/components/charts/cartesianChartHelpers.d.ts +62 -0
- package/dist/client/components/charts/chartScaffolding.d.ts +29 -0
- package/dist/client/components/dashboard/DashboardContext.d.ts +5 -1
- package/dist/client/components/dashboard/dashboardGridUtils.d.ts +2 -4
- package/dist/client/components/dashboardPortletCard/EditActionButtons.d.ts +34 -0
- package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +2 -12
- package/dist/client/components/dashboardPortletCard/PortletFloatingActions.d.ts +24 -0
- package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +5 -0
- package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +2 -0
- package/dist/client/components/mobileStackedLayout/memberDisplay.d.ts +21 -0
- package/dist/client/components.d.ts +1 -1
- package/dist/client/components.js +3 -4
- package/dist/client/hooks/dashboard/groupGeometry.d.ts +23 -0
- package/dist/client/hooks/dashboard/groupUtils.d.ts +57 -0
- package/dist/client/hooks/dashboard/layoutUtils.d.ts +34 -3
- package/dist/client/hooks/dashboard/useDashboardController.d.ts +11 -3
- package/dist/client/hooks/dashboard/useRowLayoutEngine.d.ts +12 -2
- package/dist/client/hooks/useDashboardHook.d.ts +14 -1
- package/dist/client/hooks.js +4 -5
- package/dist/client/icons/types.d.ts +1 -0
- package/dist/client/icons.js +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +48 -49
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/stores/dashboardStore.d.ts +11 -1
- package/dist/client/styles.css +1 -1
- package/dist/client/styles.d.css.ts +2 -0
- package/dist/client/types.d.ts +37 -2
- package/dist/client/utils.js +13 -9
- package/dist/client/utils.js.map +1 -1
- package/dist/client-bundle-stats.html +388 -33
- package/dist/mcp-app/mcp-app.html +152 -165
- package/dist/server/chartConfigHelpers-BZMu_1EP.cjs +1 -0
- package/dist/server/{chartConfigHelpers-CcvqrIWF.js → chartConfigHelpers-BsnbxA2c.js} +30 -1
- package/dist/server/{dist-CH3hwAUk.js → dist-ChBfLb7x.js} +7 -4
- package/dist/server/{dist-BOdf-GQO.cjs → dist-CohrBmKe.cjs} +2 -2
- package/dist/server/google-BhvizbFR.cjs +2 -0
- package/dist/server/{google-CvKM9yVM.js → google-eKAc20al.js} +3 -3
- package/dist/server/index.cjs +84 -84
- package/dist/server/index.js +2436 -2260
- package/dist/server/openai-CUf4vc3Q.js +9295 -0
- package/dist/server/openai-Cu4TXXjl.cjs +19 -0
- package/dist/server/{openai-B6hWZk_r.js → openai-Czk1BdHa.js} +18 -17
- package/dist/{adapters/openai-C3-mjSAc.cjs → server/openai-DBwI1OSu.cjs} +1 -1
- package/dist/server/rolldown-runtime-B0aSnxlc.js +20 -0
- package/dist/server/rolldown-runtime-DF3sbh8G.cjs +1 -0
- package/package.json +14 -10
- package/dist/adapters/ActivityGridChart.config-BK3hB9co.cjs +0 -1
- package/dist/adapters/ActivityGridChart.config-C-68HsAw.js +0 -2
- package/dist/adapters/AreaChart.config-5G7_E-7u.cjs +0 -1
- package/dist/adapters/AreaChart.config-C7S67Qt4.js +0 -2
- package/dist/adapters/BarChart.config-C6kG_uEt.cjs +0 -1
- package/dist/adapters/BarChart.config-DQcicZYy.js +0 -2
- package/dist/adapters/BoxPlotChart.config-B4xDTwop.js +0 -2
- package/dist/adapters/BoxPlotChart.config-DifAPvo0.cjs +0 -1
- package/dist/adapters/BubbleChart.config-BS2edxZ5.cjs +0 -1
- package/dist/adapters/BubbleChart.config-C5AYou9n.js +0 -2
- package/dist/adapters/CandlestickChart.config-Duknkqyk.js +0 -2
- package/dist/adapters/CandlestickChart.config-jk3ZXIAQ.cjs +0 -1
- package/dist/adapters/DataTable.config-BG_5hx63.cjs +0 -1
- package/dist/adapters/DataTable.config-Bkv6CmFa.js +0 -2
- package/dist/adapters/FunnelChart.config-Dvy0S17e.js +0 -2
- package/dist/adapters/FunnelChart.config-DzqGZgKz.cjs +0 -1
- package/dist/adapters/GaugeChart.config-DAWIU33N.js +0 -2
- package/dist/adapters/GaugeChart.config-DC0NW8XT.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-BlQDS9nY.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-DccGkzHI.js +0 -2
- package/dist/adapters/KpiDelta.config-DvpALT3Z.js +0 -2
- package/dist/adapters/KpiDelta.config-u2AlJkZ3.cjs +0 -1
- package/dist/adapters/KpiNumber.config-CF_LqRh-.cjs +0 -1
- package/dist/adapters/KpiNumber.config-lhEzZOFR.js +0 -2
- package/dist/adapters/KpiText.config-BCYGZdnx.js +0 -2
- package/dist/adapters/KpiText.config-FbnsbjdV.cjs +0 -1
- package/dist/adapters/LineChart.config-B7qWURRH.js +0 -2
- package/dist/adapters/LineChart.config-B9JKd48E.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-BIS9PqHh.js +0 -2
- package/dist/adapters/MarkdownChart.config-BfM9NaQe.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-1hh--3nI.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-cmL8wp6a.cjs +0 -1
- package/dist/adapters/PieChart.config-DzzCeT7z.cjs +0 -1
- package/dist/adapters/PieChart.config-aRJJwYx4.js +0 -2
- package/dist/adapters/RadarChart.config-AcZ7kWG8.js +0 -2
- package/dist/adapters/RadarChart.config-CddBTWAo.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-D4qPexJV.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-y-NBkq5N.js +0 -2
- package/dist/adapters/RetentionCombinedChart.config-BkRNE7lX.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-WoX6n6D5.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-ByjWidhh.cjs +0 -1
- package/dist/adapters/RetentionHeatmap.config-DjXLk03y.js +0 -2
- package/dist/adapters/SankeyChart.config-BWO9LszQ.cjs +0 -1
- package/dist/adapters/SankeyChart.config-SuP0jjib.js +0 -2
- package/dist/adapters/ScatterChart.config-Dk1G4Eaj.cjs +0 -1
- package/dist/adapters/ScatterChart.config-DzVXd1ZM.js +0 -2
- package/dist/adapters/SunburstChart.config-Cu4ib4Ui.cjs +0 -1
- package/dist/adapters/SunburstChart.config-_0gUzNs7.js +0 -2
- package/dist/adapters/TreeMapChart.config-DbwYrje4.js +0 -2
- package/dist/adapters/TreeMapChart.config-hM8PukgE.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-CjUHeE8R.js +0 -2
- package/dist/adapters/WaterfallChart.config-Dwxt0kK-.cjs +0 -1
- package/dist/adapters/chartConfigHelpers-DHQB-_v5.cjs +0 -1
- package/dist/adapters/compiler-D0v5KJhv.cjs +0 -166
- package/dist/adapters/core-VK-KVH9q.cjs +0 -1
- package/dist/adapters/google-BOnRIN1w.cjs +0 -2
- package/dist/adapters/mcp-transport-C2v5BTDF.cjs +0 -40
- package/dist/adapters/mcp-transport-CyDBoYEe.js +0 -601
- package/dist/adapters/openai-B1pC8nVM.js +0 -6178
- package/dist/adapters/openai-DQZaHN0V.cjs +0 -18
- package/dist/adapters/utils-CBR-9AMD.cjs +0 -128
- package/dist/client/chunks/ConfirmModal-D6eLc9NO.js +0 -3283
- package/dist/client/chunks/ConfirmModal-D6eLc9NO.js.map +0 -1
- package/dist/client/chunks/DashboardEditModal-9o16JNF0.js +0 -7580
- package/dist/client/chunks/DashboardEditModal-9o16JNF0.js.map +0 -1
- package/dist/client/chunks/analysis-builder-BDWychCW.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-DkL0e-wU.js.map +0 -1
- package/dist/client/chunks/chart-area-BHxPNsmc.js +0 -775
- package/dist/client/chunks/chart-area-BHxPNsmc.js.map +0 -1
- package/dist/client/chunks/chart-bar-DAO3PPcE.js.map +0 -1
- package/dist/client/chunks/chart-config-area-DxwIZ4Uf.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-delta-DYopvwyG.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-number-BhMdoArB.js.map +0 -1
- package/dist/client/chunks/chart-config-line-CBfM0Rds.js.map +0 -1
- package/dist/client/chunks/chart-data-table-BP6DMdom.js.map +0 -1
- package/dist/client/chunks/chart-kpi-delta-nXQnRRBr.js.map +0 -1
- package/dist/client/chunks/chart-kpi-number-m8UGJfBr.js +0 -244
- package/dist/client/chunks/chart-kpi-number-m8UGJfBr.js.map +0 -1
- package/dist/client/chunks/chart-line-sJK-cJc0.js +0 -101
- package/dist/client/chunks/chart-line-sJK-cJc0.js.map +0 -1
- package/dist/client/chunks/chart-markdown-BVrqqygz.js.map +0 -1
- package/dist/client/chunks/charts-loader-DAJbAD7a.js +0 -84
- package/dist/client/chunks/charts-loader-DAJbAD7a.js.map +0 -1
- package/dist/client/chunks/core-D7vPfUIe.js.map +0 -1
- package/dist/client/chunks/javascript-DFnKaHmQ.js.map +0 -1
- package/dist/client/chunks/json-Cu6rbgWf.js +0 -38
- package/dist/client/chunks/json-Cu6rbgWf.js.map +0 -1
- package/dist/client/chunks/schema-visualization-BGT_cNon.js.map +0 -1
- package/dist/client/chunks/useDebounce-7suCFq9v.js.map +0 -1
- package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js +0 -66
- package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js.map +0 -1
- package/dist/client/chunks/vendor-ChnlgSP0.js.map +0 -1
- package/dist/server/chartConfigHelpers-DHQB-_v5.cjs +0 -1
- package/dist/server/google-BOnRIN1w.cjs +0 -2
- package/dist/server/openai-B1pC8nVM.js +0 -6178
- package/dist/server/openai-DQZaHN0V.cjs +0 -18
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-
|
|
2
|
-
import { k as s, u as c, v as l, z as u } from "./chart-data-table-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { A
|
|
6
|
-
import { P as
|
|
7
|
-
import { a as
|
|
8
|
-
import { r as
|
|
9
|
-
import { n as
|
|
10
|
-
import
|
|
11
|
-
import { Fragment as
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-cTfe9Kho.js";
|
|
2
|
+
import { k as s, u as c, v as l, z as u } from "./chart-data-table-SNSqZj9B.js";
|
|
3
|
+
import { C as d, E as f, S as p, _ as m, b as h, bt as g, d as _, g as v, j as y, l as b, nt as x, rt as S, tt as C, u as w, v as T, y as E, yt as D } from "./DashboardEditModal-ByXLlXZD.js";
|
|
4
|
+
import { a as O, s as k, t as ee } from "./retention-ChW9jYdy.js";
|
|
5
|
+
import { A, D as te, F as ne, I as j, M as re, N as M, O as ie, P as ae, S as oe, T as N, a as P, d as se, j as F, k as I, l as L, n as ce, r as le, s as ue } from "./useDirtyStateTracking-Dc-Si4db.js";
|
|
6
|
+
import { P as R, z as de } from "./chart-activity-grid-DVOhLgxv.js";
|
|
7
|
+
import { a as z, i as fe } from "./useExplainAI-DJbc7Lu4.js";
|
|
8
|
+
import { r as pe, s as me } from "./chart-funnel-CkHSXp6h.js";
|
|
9
|
+
import { n as he } from "./charts-core-BxBB2zBE.js";
|
|
10
|
+
import B, { createContext as ge, memo as _e, useCallback as V, useContext as ve, useEffect as H, useMemo as U, useRef as W, useState as G } from "react";
|
|
11
|
+
import { Fragment as K, jsx as q, jsxs as J } from "react/jsx-runtime";
|
|
12
12
|
//#region src/shared/date-utils.ts
|
|
13
13
|
function ye(e) {
|
|
14
14
|
let t = /* @__PURE__ */ new Date(), n = e.toLowerCase().trim(), r = t.getUTCFullYear(), i = t.getUTCMonth(), a = t.getUTCDate(), o = t.getUTCDay();
|
|
@@ -138,7 +138,7 @@ function xe(e) {
|
|
|
138
138
|
return e.toISOString().split("T")[0];
|
|
139
139
|
}
|
|
140
140
|
function Se(e, t) {
|
|
141
|
-
let n = t.getTime() - e.getTime(), r = Math.ceil(n /
|
|
141
|
+
let n = t.getTime() - e.getTime(), r = Math.ceil(n / 864e5), i = new Date(e);
|
|
142
142
|
i.setUTCDate(i.getUTCDate() - 1), i.setUTCHours(23, 59, 59, 999);
|
|
143
143
|
let a = new Date(i);
|
|
144
144
|
return a.setUTCDate(a.getUTCDate() - r + 1), a.setUTCHours(0, 0, 0, 0), {
|
|
@@ -149,7 +149,7 @@ function Se(e, t) {
|
|
|
149
149
|
//#endregion
|
|
150
150
|
//#region src/client/components/AnalysisBuilder/utils/filterUtils.ts
|
|
151
151
|
function Ce(e, t) {
|
|
152
|
-
let n =
|
|
152
|
+
let n = F(t, e);
|
|
153
153
|
if (!n?.dateRange) return;
|
|
154
154
|
let r = be(n.dateRange);
|
|
155
155
|
if (!r) return;
|
|
@@ -157,14 +157,14 @@ function Ce(e, t) {
|
|
|
157
157
|
return [[xe(r.start), xe(r.end)], [xe(i.start), xe(i.end)]];
|
|
158
158
|
}
|
|
159
159
|
function we(e, t) {
|
|
160
|
-
return
|
|
160
|
+
return ne(e, t, "inDateRange");
|
|
161
161
|
}
|
|
162
162
|
//#endregion
|
|
163
163
|
//#region src/client/components/AnalysisBuilder/utils/queryUtils.ts
|
|
164
164
|
function Te(e, t, n, r, i = !1, a) {
|
|
165
165
|
let o = t.filter((e) => e.isTimeDimension && e.enableComparison).map((e) => e.field), s = n;
|
|
166
166
|
if (!i) for (let e of o) s = we(s, e);
|
|
167
|
-
s = s.filter((e) =>
|
|
167
|
+
s = s.filter((e) => C(e));
|
|
168
168
|
let c = {
|
|
169
169
|
measures: e.map((e) => e.field),
|
|
170
170
|
dimensions: t.filter((e) => !e.isTimeDimension).map((e) => e.field),
|
|
@@ -221,7 +221,7 @@ function Ee(e, t, n, r) {
|
|
|
221
221
|
//#region src/client/components/AnalysisBuilder/FilterValueInput.tsx
|
|
222
222
|
var De = l("close"), Oe = l("chevronDown");
|
|
223
223
|
function ke({ filter: e, dateRange: t }) {
|
|
224
|
-
let { t: n } =
|
|
224
|
+
let { t: n } = R(), { rangeType: r, numberValue: i, label: a, isOpen: o, onToggle: s, onRangeTypeChange: c, onNumberValueChange: l, onCustomStartDate: u, onCustomEndDate: d, onOpen: f } = t;
|
|
225
225
|
return /* @__PURE__ */ J("div", {
|
|
226
226
|
className: "dc:space-y-2",
|
|
227
227
|
children: [
|
|
@@ -231,21 +231,21 @@ function ke({ filter: e, dateRange: t }) {
|
|
|
231
231
|
onClick: () => {
|
|
232
232
|
f(), s(!o);
|
|
233
233
|
},
|
|
234
|
-
className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
|
|
234
|
+
className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
|
|
235
235
|
children: [/* @__PURE__ */ q("span", {
|
|
236
236
|
className: "dc:truncate",
|
|
237
237
|
children: a
|
|
238
238
|
}), /* @__PURE__ */ q(Oe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${o ? "dc:rotate-180" : ""}` })]
|
|
239
239
|
}), o && /* @__PURE__ */ q("div", {
|
|
240
|
-
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
|
|
241
|
-
children:
|
|
240
|
+
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
|
|
241
|
+
children: m.map((e) => /* @__PURE__ */ q("button", {
|
|
242
242
|
onClick: () => c(e.value),
|
|
243
243
|
className: `dc:w-full dc:text-left dc:px-3 dc:py-2 dc:text-sm hover:bg-dc-surface-hover ${e.value === r ? "bg-dc-primary/10 text-dc-primary" : "text-dc-text"}`,
|
|
244
244
|
children: n(e.label)
|
|
245
245
|
}, e.value))
|
|
246
246
|
})]
|
|
247
247
|
}),
|
|
248
|
-
|
|
248
|
+
te(r) && /* @__PURE__ */ J("div", {
|
|
249
249
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
250
250
|
children: [/* @__PURE__ */ q("input", {
|
|
251
251
|
type: "number",
|
|
@@ -253,7 +253,7 @@ function ke({ filter: e, dateRange: t }) {
|
|
|
253
253
|
max: "1000",
|
|
254
254
|
value: i,
|
|
255
255
|
onChange: (e) => l(Math.max(1, parseInt(e.target.value) || 1)),
|
|
256
|
-
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text dc:w-20"
|
|
256
|
+
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text dc:w-20"
|
|
257
257
|
}), /* @__PURE__ */ q("span", {
|
|
258
258
|
className: "dc:text-sm text-dc-text-muted",
|
|
259
259
|
children: r.replace("last_n_", "")
|
|
@@ -266,7 +266,7 @@ function ke({ filter: e, dateRange: t }) {
|
|
|
266
266
|
type: "date",
|
|
267
267
|
value: Array.isArray(e.dateRange) ? e.dateRange[0] : "",
|
|
268
268
|
onChange: u,
|
|
269
|
-
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded dc:px-2 dc:py-2 bg-dc-surface text-dc-text"
|
|
269
|
+
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-2 dc:py-2 bg-dc-surface text-dc-text"
|
|
270
270
|
}),
|
|
271
271
|
/* @__PURE__ */ q("span", {
|
|
272
272
|
className: "dc:text-sm text-dc-text-muted",
|
|
@@ -276,7 +276,7 @@ function ke({ filter: e, dateRange: t }) {
|
|
|
276
276
|
type: "date",
|
|
277
277
|
value: Array.isArray(e.dateRange) ? e.dateRange[1] : "",
|
|
278
278
|
onChange: d,
|
|
279
|
-
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded dc:px-2 dc:py-2 bg-dc-surface text-dc-text"
|
|
279
|
+
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-2 dc:py-2 bg-dc-surface text-dc-text"
|
|
280
280
|
})
|
|
281
281
|
]
|
|
282
282
|
})
|
|
@@ -284,7 +284,7 @@ function ke({ filter: e, dateRange: t }) {
|
|
|
284
284
|
});
|
|
285
285
|
}
|
|
286
286
|
function Ae({ filter: e, combo: t }) {
|
|
287
|
-
let { t: n } =
|
|
287
|
+
let { t: n } = R(), { options: r, loading: i, error: a, highlightedIndex: o, listRef: s, onSelect: c } = t;
|
|
288
288
|
return i ? /* @__PURE__ */ q("div", {
|
|
289
289
|
className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
|
|
290
290
|
children: n("filter.modal.loading")
|
|
@@ -311,14 +311,14 @@ function Ae({ filter: e, combo: t }) {
|
|
|
311
311
|
});
|
|
312
312
|
}
|
|
313
313
|
function je({ filter: e, operatorMeta: t, combo: n }) {
|
|
314
|
-
let { t: r } =
|
|
314
|
+
let { t: r } = R(), { isOpen: i, loading: a, searchText: o, onSearchTextChange: s, onHighlightedIndexChange: c, onRemove: l, onKeyDown: u, onOpen: d } = n;
|
|
315
315
|
return /* @__PURE__ */ J("div", {
|
|
316
316
|
className: "dc:space-y-2",
|
|
317
317
|
children: [
|
|
318
318
|
e.values && e.values.length > 0 && /* @__PURE__ */ q("div", {
|
|
319
319
|
className: "dc:flex dc:flex-wrap dc:gap-1.5",
|
|
320
320
|
children: e.values.map((e, t) => /* @__PURE__ */ J("span", {
|
|
321
|
-
className: "dc:inline-flex dc:items-center dc:gap-1 bg-dc-primary/10 text-dc-primary dc:text-sm dc:px-2 dc:py-1 dc:rounded",
|
|
321
|
+
className: "dc:inline-flex dc:items-center dc:gap-1 bg-dc-primary/10 text-dc-primary dc:text-sm dc:px-2 dc:py-1 dc:rounded-sm",
|
|
322
322
|
children: [/* @__PURE__ */ q("span", {
|
|
323
323
|
className: "dc:max-w-[150px] dc:truncate",
|
|
324
324
|
children: String(e)
|
|
@@ -335,13 +335,13 @@ function je({ filter: e, operatorMeta: t, combo: n }) {
|
|
|
335
335
|
onClick: () => {
|
|
336
336
|
d();
|
|
337
337
|
},
|
|
338
|
-
className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
|
|
338
|
+
className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
|
|
339
339
|
children: [/* @__PURE__ */ q("span", {
|
|
340
340
|
className: "text-dc-text-muted dc:truncate",
|
|
341
341
|
children: r(a ? "filter.modal.loading" : "filter.modal.selectValue")
|
|
342
342
|
}), /* @__PURE__ */ q(Oe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${i ? "dc:rotate-180" : ""}` })]
|
|
343
343
|
}), i && /* @__PURE__ */ J("div", {
|
|
344
|
-
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:max-h-56 dc:overflow-hidden",
|
|
344
|
+
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-56 dc:overflow-hidden",
|
|
345
345
|
children: [/* @__PURE__ */ q("div", {
|
|
346
346
|
className: "dc:p-2 dc:border-b border-dc-border",
|
|
347
347
|
children: /* @__PURE__ */ q("input", {
|
|
@@ -352,7 +352,7 @@ function je({ filter: e, operatorMeta: t, combo: n }) {
|
|
|
352
352
|
},
|
|
353
353
|
onKeyDown: u,
|
|
354
354
|
placeholder: r("filter.modal.search"),
|
|
355
|
-
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text",
|
|
355
|
+
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text",
|
|
356
356
|
autoFocus: !0
|
|
357
357
|
})
|
|
358
358
|
}), /* @__PURE__ */ q(Ae, {
|
|
@@ -369,7 +369,7 @@ function je({ filter: e, operatorMeta: t, combo: n }) {
|
|
|
369
369
|
});
|
|
370
370
|
}
|
|
371
371
|
function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
372
|
-
let { t: i } =
|
|
372
|
+
let { t: i } = R(), { filter: a, operatorMeta: o, shouldShowDateRange: s, shouldShowComboBox: c } = e, { onBetweenStart: l, onBetweenEnd: u, onDate: d, onDirect: f } = r;
|
|
373
373
|
return o?.requiresValues ? s ? /* @__PURE__ */ q(ke, {
|
|
374
374
|
filter: a,
|
|
375
375
|
dateRange: t
|
|
@@ -381,7 +381,7 @@ function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
|
381
381
|
value: a.values?.[0] ?? "",
|
|
382
382
|
onChange: l,
|
|
383
383
|
placeholder: i("filter.modal.min"),
|
|
384
|
-
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
384
|
+
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
385
385
|
}),
|
|
386
386
|
/* @__PURE__ */ q("span", {
|
|
387
387
|
className: "dc:text-sm text-dc-text-muted",
|
|
@@ -392,20 +392,20 @@ function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
|
392
392
|
value: a.values?.[1] ?? "",
|
|
393
393
|
onChange: u,
|
|
394
394
|
placeholder: i("filter.modal.max"),
|
|
395
|
-
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
395
|
+
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
396
396
|
})
|
|
397
397
|
]
|
|
398
398
|
}) : o?.valueType === "date" ? /* @__PURE__ */ q("input", {
|
|
399
399
|
type: "date",
|
|
400
400
|
value: a.values?.[0] || "",
|
|
401
401
|
onChange: d,
|
|
402
|
-
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
402
|
+
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
403
403
|
}) : o?.valueType === "number" ? /* @__PURE__ */ q("input", {
|
|
404
404
|
type: "number",
|
|
405
405
|
value: a.values?.[0] ?? "",
|
|
406
406
|
onChange: f,
|
|
407
407
|
placeholder: i("filter.modal.enterNumber"),
|
|
408
|
-
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
408
|
+
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
409
409
|
}) : c ? /* @__PURE__ */ q(je, {
|
|
410
410
|
filter: a,
|
|
411
411
|
operatorMeta: o,
|
|
@@ -415,7 +415,7 @@ function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
|
415
415
|
value: a.values?.[0] ?? "",
|
|
416
416
|
onChange: f,
|
|
417
417
|
placeholder: i("filter.modal.enterValue"),
|
|
418
|
-
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text placeholder-dc-text-muted"
|
|
418
|
+
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text placeholder-dc-text-muted"
|
|
419
419
|
}) : /* @__PURE__ */ q("div", {
|
|
420
420
|
className: "dc:text-sm text-dc-text-muted dc:italic dc:py-2",
|
|
421
421
|
children: i("filter.modal.noValueRequired")
|
|
@@ -425,66 +425,66 @@ function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
|
425
425
|
//#region src/client/components/AnalysisBuilder/FilterConfigModal.tsx
|
|
426
426
|
var Ne = l("close"), Pe = l("chevronDown"), Fe = l("dimension"), Ie = l("timeDimension"), Le = l("measure");
|
|
427
427
|
function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i }) {
|
|
428
|
-
let { t: a } =
|
|
428
|
+
let { t: a } = R(), [o, s] = G(e), [c, l] = G(!1), [u, d] = G(!1), [f, p] = G(!1), [g, _] = G("this_month"), [y, b] = G(1), [C, w] = G(""), [T, D] = G(null), [O, k] = G(-1), ee = W(null), A = W(null), ne = ce(C, 300), j = E(o.member, t), re = j?.field.type || "string", M = re === "time", ie = j?.fieldType === "measure", ae = j?.fieldType === "dimension", oe = h(o.member, t), P = x[o.operator], se = S(re), F = M && o.operator === "inDateRange", I = V(() => [
|
|
429
429
|
"equals",
|
|
430
430
|
"notEquals",
|
|
431
431
|
"in",
|
|
432
432
|
"notIn"
|
|
433
|
-
].includes(o.operator) &&
|
|
433
|
+
].includes(o.operator) && ae && !M, [
|
|
434
434
|
o.operator,
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
])(), { values:
|
|
438
|
-
|
|
435
|
+
ae,
|
|
436
|
+
M
|
|
437
|
+
])(), { values: L, loading: ue, error: de, searchValues: z } = le(o.member, I);
|
|
438
|
+
H(() => {
|
|
439
439
|
if (!i) {
|
|
440
|
-
|
|
440
|
+
D(null);
|
|
441
441
|
return;
|
|
442
442
|
}
|
|
443
443
|
let e = i.getBoundingClientRect(), t = e.top, n = window.innerHeight - e.bottom, r = t > 500 || t > n, a = Math.max(16, Math.min(e.left, window.innerWidth - 400 - 16));
|
|
444
|
-
|
|
444
|
+
D(r ? {
|
|
445
445
|
bottom: window.innerHeight - e.top + 8,
|
|
446
446
|
left: a
|
|
447
447
|
} : {
|
|
448
448
|
top: e.bottom + 8,
|
|
449
449
|
left: a
|
|
450
450
|
});
|
|
451
|
-
}, [i]),
|
|
451
|
+
}, [i]), H(() => {
|
|
452
452
|
let e = (e) => {
|
|
453
|
-
|
|
453
|
+
ee.current && !ee.current.contains(e.target) && (l(!1), d(!1), p(!1));
|
|
454
454
|
};
|
|
455
455
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
456
|
-
}, []),
|
|
457
|
-
u &&
|
|
456
|
+
}, []), H(() => {
|
|
457
|
+
u && I && z && z("", !0), u || k(-1);
|
|
458
458
|
}, [
|
|
459
459
|
u,
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
]),
|
|
463
|
-
if (
|
|
464
|
-
let e =
|
|
460
|
+
I,
|
|
461
|
+
z
|
|
462
|
+
]), H(() => {
|
|
463
|
+
if (O >= 0 && A.current) {
|
|
464
|
+
let e = A.current.children[O];
|
|
465
465
|
e && e.scrollIntoView({ block: "nearest" });
|
|
466
466
|
}
|
|
467
|
-
}, [
|
|
468
|
-
u &&
|
|
467
|
+
}, [O]), H(() => {
|
|
468
|
+
u && I && z && ne !== void 0 && z(ne);
|
|
469
469
|
}, [
|
|
470
|
-
|
|
470
|
+
ne,
|
|
471
471
|
u,
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
]),
|
|
475
|
-
if (!
|
|
476
|
-
let e =
|
|
477
|
-
e && (
|
|
478
|
-
}, [o.dateRange,
|
|
479
|
-
let
|
|
472
|
+
I,
|
|
473
|
+
z
|
|
474
|
+
]), H(() => {
|
|
475
|
+
if (!F) return;
|
|
476
|
+
let e = v(o.dateRange);
|
|
477
|
+
e && (_(e.rangeType), e.numberValue !== void 0 && b(e.numberValue));
|
|
478
|
+
}, [o.dateRange, F]);
|
|
479
|
+
let fe = V((e) => {
|
|
480
480
|
s({
|
|
481
481
|
member: o.member,
|
|
482
482
|
operator: e,
|
|
483
483
|
values: []
|
|
484
484
|
}), l(!1);
|
|
485
|
-
}, [o.member]),
|
|
485
|
+
}, [o.member]), pe = V((e, t) => {
|
|
486
486
|
let n = t?.shiftKey ?? !1, r = o.values || [];
|
|
487
|
-
|
|
487
|
+
P?.supportsMultipleValues ? (r.includes(e) ? s({
|
|
488
488
|
...o,
|
|
489
489
|
values: r.filter((t) => t !== e)
|
|
490
490
|
}) : s({
|
|
@@ -493,28 +493,28 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
493
493
|
}), n || d(!1)) : (s({
|
|
494
494
|
...o,
|
|
495
495
|
values: [e]
|
|
496
|
-
}), d(!1)),
|
|
497
|
-
}, [o,
|
|
496
|
+
}), d(!1)), w(""), k(-1);
|
|
497
|
+
}, [o, P?.supportsMultipleValues]), me = V((e) => {
|
|
498
498
|
let t = (o.values || []).filter((t) => t !== e);
|
|
499
499
|
s({
|
|
500
500
|
...o,
|
|
501
501
|
values: t
|
|
502
502
|
});
|
|
503
|
-
}, [o]),
|
|
504
|
-
let t = Ee(e.key, u,
|
|
503
|
+
}, [o]), he = V((e) => {
|
|
504
|
+
let t = Ee(e.key, u, L.length, O);
|
|
505
505
|
if (t.type !== "none") {
|
|
506
506
|
if (e.preventDefault(), t.type === "highlight") return k(t.index);
|
|
507
|
-
if (t.type === "select") return
|
|
507
|
+
if (t.type === "select") return pe(L[t.index], { shiftKey: e.shiftKey });
|
|
508
508
|
d(!1), k(-1);
|
|
509
509
|
}
|
|
510
510
|
}, [
|
|
511
511
|
u,
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
]),
|
|
512
|
+
L,
|
|
513
|
+
O,
|
|
514
|
+
pe
|
|
515
|
+
]), B = V((e) => {
|
|
516
516
|
let t = e.target.value;
|
|
517
|
-
if (
|
|
517
|
+
if (P?.valueType === "number") {
|
|
518
518
|
let e = parseFloat(t);
|
|
519
519
|
isNaN(e) ? (t === "" || t === "-") && s({
|
|
520
520
|
...o,
|
|
@@ -527,63 +527,63 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
527
527
|
...o,
|
|
528
528
|
values: t ? [t] : []
|
|
529
529
|
});
|
|
530
|
-
}, [o,
|
|
530
|
+
}, [o, P?.valueType]), ge = V((e) => {
|
|
531
531
|
let t = parseFloat(e.target.value), n = [isNaN(t) ? "" : t, (o.values?.length >= 2 ? o.values : ["", ""])[1]].filter((e) => e !== "");
|
|
532
532
|
s({
|
|
533
533
|
...o,
|
|
534
534
|
values: n
|
|
535
535
|
});
|
|
536
|
-
}, [o]),
|
|
536
|
+
}, [o]), _e = V((e) => {
|
|
537
537
|
let t = parseFloat(e.target.value), n = [(o.values?.length >= 2 ? o.values : ["", ""])[0], isNaN(t) ? "" : t].filter((e) => e !== "");
|
|
538
538
|
s({
|
|
539
539
|
...o,
|
|
540
540
|
values: n
|
|
541
541
|
});
|
|
542
|
-
}, [o]),
|
|
542
|
+
}, [o]), ve = V((e) => {
|
|
543
543
|
let t = e.target.value;
|
|
544
544
|
s({
|
|
545
545
|
...o,
|
|
546
546
|
values: t ? [t] : []
|
|
547
547
|
});
|
|
548
|
-
}, [o]), ye =
|
|
549
|
-
|
|
548
|
+
}, [o]), ye = V((e) => {
|
|
549
|
+
_(e), p(!1);
|
|
550
550
|
let t;
|
|
551
551
|
if (e === "custom") {
|
|
552
552
|
let e = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
|
|
553
553
|
t = [e, e];
|
|
554
|
-
} else t =
|
|
554
|
+
} else t = te(e) ? N(e, y) : N(e);
|
|
555
555
|
s({
|
|
556
556
|
...o,
|
|
557
557
|
dateRange: t
|
|
558
558
|
});
|
|
559
|
-
}, [o,
|
|
560
|
-
if (
|
|
561
|
-
let t =
|
|
559
|
+
}, [o, y]), be = V((e) => {
|
|
560
|
+
if (b(e), te(g)) {
|
|
561
|
+
let t = N(g, e);
|
|
562
562
|
s({
|
|
563
563
|
...o,
|
|
564
564
|
dateRange: t
|
|
565
565
|
});
|
|
566
566
|
}
|
|
567
|
-
}, [o,
|
|
567
|
+
}, [o, g]), xe = V((e) => {
|
|
568
568
|
let t = e.target.value, n = (Array.isArray(o.dateRange) ? o.dateRange : [o.dateRange || "", ""])[1] || t;
|
|
569
569
|
s({
|
|
570
570
|
...o,
|
|
571
571
|
dateRange: [t, n]
|
|
572
572
|
});
|
|
573
|
-
}, [o]), Se =
|
|
573
|
+
}, [o]), Se = V((e) => {
|
|
574
574
|
let t = e.target.value, n = (Array.isArray(o.dateRange) ? o.dateRange : ["", o.dateRange || ""])[0] || t;
|
|
575
575
|
s({
|
|
576
576
|
...o,
|
|
577
577
|
dateRange: [n, t]
|
|
578
578
|
});
|
|
579
|
-
}, [o]), Ce = a(
|
|
579
|
+
}, [o]), Ce = a(se.find((e) => e.operator === o.operator)?.label || o.operator), we = a(m.find((e) => e.value === g)?.label || "filter.modal.selectRange"), Te = {
|
|
580
580
|
filter: o,
|
|
581
|
-
operatorMeta:
|
|
582
|
-
shouldShowDateRange:
|
|
583
|
-
shouldShowComboBox:
|
|
581
|
+
operatorMeta: P,
|
|
582
|
+
shouldShowDateRange: F,
|
|
583
|
+
shouldShowComboBox: I
|
|
584
584
|
}, Y = {
|
|
585
|
-
rangeType:
|
|
586
|
-
numberValue:
|
|
585
|
+
rangeType: g,
|
|
586
|
+
numberValue: y,
|
|
587
587
|
label: we,
|
|
588
588
|
isOpen: f,
|
|
589
589
|
onToggle: p,
|
|
@@ -591,46 +591,46 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
591
591
|
onNumberValueChange: be,
|
|
592
592
|
onCustomStartDate: xe,
|
|
593
593
|
onCustomEndDate: Se,
|
|
594
|
-
onOpen:
|
|
594
|
+
onOpen: V(() => {
|
|
595
595
|
l(!1), d(!1);
|
|
596
596
|
}, [])
|
|
597
597
|
}, De = {
|
|
598
598
|
isOpen: u,
|
|
599
|
-
options:
|
|
600
|
-
loading:
|
|
601
|
-
error:
|
|
602
|
-
searchText:
|
|
603
|
-
highlightedIndex:
|
|
604
|
-
listRef:
|
|
605
|
-
onSearchTextChange:
|
|
599
|
+
options: L,
|
|
600
|
+
loading: ue,
|
|
601
|
+
error: de,
|
|
602
|
+
searchText: C,
|
|
603
|
+
highlightedIndex: O,
|
|
604
|
+
listRef: A,
|
|
605
|
+
onSearchTextChange: w,
|
|
606
606
|
onHighlightedIndexChange: k,
|
|
607
|
-
onSelect:
|
|
608
|
-
onRemove:
|
|
609
|
-
onKeyDown:
|
|
610
|
-
onOpen:
|
|
607
|
+
onSelect: pe,
|
|
608
|
+
onRemove: me,
|
|
609
|
+
onKeyDown: he,
|
|
610
|
+
onOpen: V(() => {
|
|
611
611
|
l(!1), p(!1), d((e) => !e);
|
|
612
612
|
}, [])
|
|
613
|
-
}, Oe =
|
|
614
|
-
onBetweenStart:
|
|
615
|
-
onBetweenEnd:
|
|
616
|
-
onDate:
|
|
617
|
-
onDirect:
|
|
613
|
+
}, Oe = U(() => ({
|
|
614
|
+
onBetweenStart: ge,
|
|
615
|
+
onBetweenEnd: _e,
|
|
616
|
+
onDate: ve,
|
|
617
|
+
onDirect: B
|
|
618
618
|
}), [
|
|
619
|
-
he,
|
|
620
619
|
ge,
|
|
621
620
|
_e,
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
621
|
+
ve,
|
|
622
|
+
B
|
|
623
|
+
]), ke = M ? Ie : ie ? Le : Fe;
|
|
624
|
+
return /* @__PURE__ */ q(K, { children: /* @__PURE__ */ q("div", {
|
|
625
|
+
className: `dc:fixed dc:inset-0 bg-dc-overlay dc:z-50 ${T ? "" : "dc:flex dc:items-center dc:justify-center dc:p-4"}`,
|
|
626
626
|
onClick: r,
|
|
627
627
|
children: /* @__PURE__ */ J("div", {
|
|
628
|
-
ref:
|
|
629
|
-
className:
|
|
628
|
+
ref: ee,
|
|
629
|
+
className: T ? "bg-dc-surface dc:rounded-lg dc:border border-dc-border" : "bg-dc-surface dc:rounded-lg dc:border border-dc-border dc:max-w-md dc:w-full",
|
|
630
630
|
style: {
|
|
631
|
-
...
|
|
631
|
+
...T ? {
|
|
632
632
|
position: "fixed",
|
|
633
|
-
...
|
|
633
|
+
...T,
|
|
634
634
|
maxWidth: "400px",
|
|
635
635
|
width: "100%"
|
|
636
636
|
} : {},
|
|
@@ -656,10 +656,10 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
656
656
|
className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
|
|
657
657
|
children: a("filter.modal.fieldLabel")
|
|
658
658
|
}), /* @__PURE__ */ J("div", {
|
|
659
|
-
className: "dc:flex dc:items-center dc:gap-2 dc:p-3 bg-dc-surface-secondary dc:rounded",
|
|
659
|
+
className: "dc:flex dc:items-center dc:gap-2 dc:p-3 bg-dc-surface-secondary dc:rounded-sm",
|
|
660
660
|
children: [/* @__PURE__ */ q(ke, { className: "dc:w-5 dc:h-5 text-dc-filter-text" }), /* @__PURE__ */ q("span", {
|
|
661
661
|
className: "dc:text-sm dc:font-medium text-dc-text",
|
|
662
|
-
children:
|
|
662
|
+
children: oe
|
|
663
663
|
})]
|
|
664
664
|
})] }),
|
|
665
665
|
/* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("label", {
|
|
@@ -671,15 +671,15 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
671
671
|
onClick: () => {
|
|
672
672
|
d(!1), p(!1), l(!c);
|
|
673
673
|
},
|
|
674
|
-
className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
|
|
674
|
+
className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
|
|
675
675
|
children: [/* @__PURE__ */ q("span", {
|
|
676
676
|
className: "dc:truncate",
|
|
677
677
|
children: Ce
|
|
678
678
|
}), /* @__PURE__ */ q(Pe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${c ? "dc:rotate-180" : ""}` })]
|
|
679
679
|
}), c && /* @__PURE__ */ q("div", {
|
|
680
|
-
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
|
|
681
|
-
children:
|
|
682
|
-
onClick: () =>
|
|
680
|
+
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
|
|
681
|
+
children: se.map((e) => /* @__PURE__ */ q("button", {
|
|
682
|
+
onClick: () => fe(e.operator),
|
|
683
683
|
className: `dc:w-full dc:text-left dc:px-3 dc:py-2 dc:text-sm hover:bg-dc-surface-hover ${e.operator === o.operator ? "bg-dc-primary/10 text-dc-primary" : "text-dc-text"}`,
|
|
684
684
|
children: a(e.label)
|
|
685
685
|
}, e.operator))
|
|
@@ -704,7 +704,7 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
704
704
|
children: a("common.actions.cancel")
|
|
705
705
|
}), /* @__PURE__ */ q("button", {
|
|
706
706
|
onClick: () => n(o),
|
|
707
|
-
className: "dc:px-4 dc:py-2 dc:text-sm dc:font-medium text-dc-primary-content bg-dc-primary hover:bg-dc-primary-hover dc:rounded dc:transition-colors",
|
|
707
|
+
className: "dc:px-4 dc:py-2 dc:text-sm dc:font-medium text-dc-primary-content bg-dc-primary hover:bg-dc-primary-hover dc:rounded-sm dc:transition-colors",
|
|
708
708
|
children: a("common.actions.save")
|
|
709
709
|
})]
|
|
710
710
|
})
|
|
@@ -716,13 +716,13 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
716
716
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterItem.tsx
|
|
717
717
|
var ze = l("close"), Be = l("dimension"), Ve = l("timeDimension"), He = l("measure");
|
|
718
718
|
function Ue({ filter: e, schema: t, onRemove: n, onUpdate: r }) {
|
|
719
|
-
let { t: i } =
|
|
720
|
-
return /* @__PURE__ */ J(
|
|
719
|
+
let { t: i } = R(), [a, o] = G(!1), s = W(null), c = E(e.member, t), l = (c?.field.type || "string") === "time", u = c?.fieldType === "measure", d = h(e.member, t), f = x[e.operator], p = f?.label ? i(f.label) : e.operator, m = We(e, f, i), g = l ? Ve : u ? He : Be;
|
|
720
|
+
return /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ J("div", {
|
|
721
721
|
className: "dc:flex dc:items-start dc:gap-2 dc:px-2 dc:py-1.5 bg-dc-surface-secondary dc:rounded-lg dc:group hover:bg-dc-surface-tertiary dc:transition-all dc:duration-150 dc:w-full",
|
|
722
722
|
children: [
|
|
723
723
|
/* @__PURE__ */ q("span", {
|
|
724
|
-
className: `dc:w-6 dc:h-6 dc:flex dc:items-center dc:justify-center dc:rounded ${l ? "bg-dc-time-dimension" : u ? "bg-dc-measure" : "bg-dc-dimension"} ${l ? "text-dc-time-dimension-text" : u ? "text-dc-measure-text" : "text-dc-dimension-text"} dc:flex-shrink-0 dc:mt-0.5`,
|
|
725
|
-
children:
|
|
724
|
+
className: `dc:w-6 dc:h-6 dc:flex dc:items-center dc:justify-center dc:rounded-sm ${l ? "bg-dc-time-dimension" : u ? "bg-dc-measure" : "bg-dc-dimension"} ${l ? "text-dc-time-dimension-text" : u ? "text-dc-measure-text" : "text-dc-dimension-text"} dc:flex-shrink-0 dc:mt-0.5`,
|
|
725
|
+
children: g && /* @__PURE__ */ q(g, { className: "dc:w-4 dc:h-4" })
|
|
726
726
|
}),
|
|
727
727
|
/* @__PURE__ */ q("button", {
|
|
728
728
|
ref: s,
|
|
@@ -774,22 +774,22 @@ function We(e, t, n) {
|
|
|
774
774
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterGroup.tsx
|
|
775
775
|
var Ge = l("add"), Ke = l("close");
|
|
776
776
|
function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, depth: a = 0, hideRemoveButton: o = !1 }) {
|
|
777
|
-
let { t: s } =
|
|
778
|
-
|
|
777
|
+
let { t: s } = R(), [c, l] = G(!1), u = W(null);
|
|
778
|
+
H(() => {
|
|
779
779
|
let e = (e) => {
|
|
780
780
|
u.current && !u.current.contains(e.target) && l(!1);
|
|
781
781
|
};
|
|
782
782
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
783
783
|
}, []);
|
|
784
|
-
let d =
|
|
785
|
-
n(
|
|
786
|
-
}, [e, n]), f =
|
|
784
|
+
let d = V(() => {
|
|
785
|
+
n(j(e));
|
|
786
|
+
}, [e, n]), f = V((t, r) => {
|
|
787
787
|
let i = [...e.filters];
|
|
788
788
|
i[t] = r, n({
|
|
789
789
|
...e,
|
|
790
790
|
filters: i
|
|
791
791
|
});
|
|
792
|
-
}, [e, n]), p =
|
|
792
|
+
}, [e, n]), p = V((t) => {
|
|
793
793
|
let i = e.filters.filter((e, n) => n !== t);
|
|
794
794
|
i.length === 0 ? r() : n({
|
|
795
795
|
...e,
|
|
@@ -800,7 +800,7 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
800
800
|
n,
|
|
801
801
|
r,
|
|
802
802
|
a
|
|
803
|
-
]), m =
|
|
803
|
+
]), m = V((t) => {
|
|
804
804
|
let r = {
|
|
805
805
|
type: t,
|
|
806
806
|
filters: []
|
|
@@ -809,9 +809,9 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
809
809
|
...e,
|
|
810
810
|
filters: [...e.filters, r]
|
|
811
811
|
}), l(!1);
|
|
812
|
-
}, [e, n]), h =
|
|
812
|
+
}, [e, n]), h = V(() => {
|
|
813
813
|
i([]), l(!1);
|
|
814
|
-
}, [i]), g =
|
|
814
|
+
}, [i]), g = V((e) => (t = []) => {
|
|
815
815
|
i([e, ...t]);
|
|
816
816
|
}, [i]), _ = () => a % 2 == 0 ? "border-dc-border" : "border-dc-border dark:border-dc-border", v = () => e.type === "and" ? "bg-dc-info-bg/50" : "bg-dc-warning-bg/50", y = e.filters.length, b = s(y === 1 ? "filter.group.condition" : "filter.group.conditions");
|
|
817
817
|
return /* @__PURE__ */ J("div", {
|
|
@@ -822,7 +822,7 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
822
822
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
823
823
|
children: [/* @__PURE__ */ q("button", {
|
|
824
824
|
onClick: d,
|
|
825
|
-
className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-semibold dc:rounded dc:transition-colors ${e.type === "and" ? "bg-dc-info-bg text-dc-info dc:hover:opacity-80" : "bg-dc-warning-bg text-dc-warning dc:hover:opacity-80"}`,
|
|
825
|
+
className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-semibold dc:rounded-sm dc:transition-colors ${e.type === "and" ? "bg-dc-info-bg text-dc-info dc:hover:opacity-80" : "bg-dc-warning-bg text-dc-warning dc:hover:opacity-80"}`,
|
|
826
826
|
title: `Click to switch to ${e.type === "and" ? "OR" : "AND"}`,
|
|
827
827
|
children: e.type.toUpperCase()
|
|
828
828
|
}), /* @__PURE__ */ J("span", {
|
|
@@ -840,11 +840,11 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
840
840
|
ref: u,
|
|
841
841
|
children: [/* @__PURE__ */ q("button", {
|
|
842
842
|
onClick: () => l(!c),
|
|
843
|
-
className: "dc:p-1 text-dc-text-secondary hover:text-dc-primary hover:bg-dc-surface-hover dc:rounded dc:transition-colors",
|
|
843
|
+
className: "dc:p-1 text-dc-text-secondary hover:text-dc-primary hover:bg-dc-surface-hover dc:rounded-sm dc:transition-colors",
|
|
844
844
|
title: "Add condition",
|
|
845
845
|
children: /* @__PURE__ */ q(Ge, { className: "dc:w-4 dc:h-4" })
|
|
846
846
|
}), c && /* @__PURE__ */ J("div", {
|
|
847
|
-
className: "dc:absolute dc:right-0 dc:mt-1 dc:z-40 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:py-1 dc:min-w-[120px]",
|
|
847
|
+
className: "dc:absolute dc:right-0 dc:mt-1 dc:z-40 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:py-1 dc:min-w-[120px]",
|
|
848
848
|
children: [
|
|
849
849
|
/* @__PURE__ */ q("button", {
|
|
850
850
|
onClick: h,
|
|
@@ -882,12 +882,12 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
882
882
|
className: "dc:text-xs text-dc-primary dc:hover:underline",
|
|
883
883
|
children: s("filter.group.addFilterLink")
|
|
884
884
|
})]
|
|
885
|
-
}) : e.filters.map((e, n) =>
|
|
885
|
+
}) : e.filters.map((e, n) => M(e) ? /* @__PURE__ */ q(Ue, {
|
|
886
886
|
filter: e,
|
|
887
887
|
schema: t,
|
|
888
888
|
onUpdate: (e) => f(n, e),
|
|
889
889
|
onRemove: () => p(n)
|
|
890
|
-
}, `filter-${n}`) :
|
|
890
|
+
}, `filter-${n}`) : re(e) ? /* @__PURE__ */ q(qe, {
|
|
891
891
|
group: e,
|
|
892
892
|
schema: t,
|
|
893
893
|
onUpdate: (e) => f(n, e),
|
|
@@ -902,42 +902,42 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
902
902
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterSection.tsx
|
|
903
903
|
var Je = l("add");
|
|
904
904
|
function Ye({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dimensionsOnly: i = !1 }) {
|
|
905
|
-
let { t: a } =
|
|
905
|
+
let { t: a } = R(), [o, s] = G(!1), [c, l] = G(!1), u = W([]), d = I(e), f = V((e) => {
|
|
906
906
|
e.preventDefault(), e.stopPropagation(), l(!0);
|
|
907
|
-
}, []), p =
|
|
907
|
+
}, []), p = V((e) => {
|
|
908
908
|
e.preventDefault(), e.stopPropagation(), l(!1);
|
|
909
|
-
}, []), m =
|
|
909
|
+
}, []), m = V((e) => {
|
|
910
910
|
e.preventDefault(), e.stopPropagation(), l(!1);
|
|
911
911
|
try {
|
|
912
912
|
let t = JSON.parse(e.dataTransfer.getData("text/plain"));
|
|
913
913
|
t.field && r && r(t.field);
|
|
914
914
|
} catch {}
|
|
915
|
-
}, [r]), h =
|
|
915
|
+
}, [r]), h = A(e), g = V((t, r, i) => {
|
|
916
916
|
let a = t.type === "time", o = a ? "inDateRange" : "equals", c = {
|
|
917
917
|
member: t.name,
|
|
918
918
|
operator: o,
|
|
919
919
|
values: []
|
|
920
920
|
};
|
|
921
|
-
a && o === "inDateRange" && (c.dateRange =
|
|
922
|
-
}, [e, n]), _ =
|
|
921
|
+
a && o === "inDateRange" && (c.dateRange = N("this_month")), n(ie(e, u.current, c)), s(!1), u.current = [];
|
|
922
|
+
}, [e, n]), _ = V((t, r) => {
|
|
923
923
|
let i = [...e];
|
|
924
924
|
i[t] = r, n(i);
|
|
925
|
-
}, [e, n]), v =
|
|
926
|
-
n(
|
|
927
|
-
}, [e, n]), y =
|
|
925
|
+
}, [e, n]), v = V((t) => {
|
|
926
|
+
n(ae(e, t));
|
|
927
|
+
}, [e, n]), y = V(() => {
|
|
928
928
|
n([]);
|
|
929
|
-
}, [n]), b =
|
|
929
|
+
}, [n]), b = V(() => {
|
|
930
930
|
u.current = [], s(!0);
|
|
931
|
-
}, []), x =
|
|
931
|
+
}, []), x = V((e) => (t = []) => {
|
|
932
932
|
u.current = [...e, ...t], s(!0);
|
|
933
933
|
}, []), S = (n, r, i = []) => {
|
|
934
934
|
let a = [...i, r];
|
|
935
|
-
return
|
|
935
|
+
return M(n) ? /* @__PURE__ */ q(Ue, {
|
|
936
936
|
filter: n,
|
|
937
937
|
schema: t,
|
|
938
938
|
onUpdate: (e) => _(r, e),
|
|
939
939
|
onRemove: () => v(r)
|
|
940
|
-
}, `filter-${a.join("-")}`) :
|
|
940
|
+
}, `filter-${a.join("-")}`) : re(n) ? /* @__PURE__ */ q(qe, {
|
|
941
941
|
group: n,
|
|
942
942
|
schema: t,
|
|
943
943
|
onUpdate: (e) => _(r, e),
|
|
@@ -951,7 +951,7 @@ function Ye({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
951
951
|
onClick: b,
|
|
952
952
|
className: "dc:flex dc:items-center dc:justify-between dc:mb-3 dc:w-full dc:py-1 dc:px-2 dc:-ml-2 dc:rounded-lg hover:bg-dc-primary/10 dc:transition-colors dc:group",
|
|
953
953
|
title: "Add filter",
|
|
954
|
-
children: [/* @__PURE__ */ J(
|
|
954
|
+
children: [/* @__PURE__ */ J(he, { children: [a("analysis.sections.filters"), d > 0 && /* @__PURE__ */ J("span", {
|
|
955
955
|
className: "dc:ml-1.5 dc:text-xs dc:font-normal text-dc-text-muted dc:normal-case dc:tracking-normal",
|
|
956
956
|
children: [
|
|
957
957
|
"(",
|
|
@@ -1018,7 +1018,7 @@ var Ze = {
|
|
|
1018
1018
|
low: "text-dc-text-muted"
|
|
1019
1019
|
};
|
|
1020
1020
|
function et({ assessment: e, reason: t }) {
|
|
1021
|
-
let { t: n } =
|
|
1021
|
+
let { t: n } = R(), r = {
|
|
1022
1022
|
good: n("explainAI.assessment.good"),
|
|
1023
1023
|
warning: n("explainAI.assessment.warning"),
|
|
1024
1024
|
critical: n("explainAI.assessment.critical")
|
|
@@ -1059,8 +1059,8 @@ function tt({ issue: e }) {
|
|
|
1059
1059
|
});
|
|
1060
1060
|
}
|
|
1061
1061
|
function nt({ text: e }) {
|
|
1062
|
-
let { t } =
|
|
1063
|
-
return
|
|
1062
|
+
let { t } = R(), [n, r] = B.useState(!1), i = B.useRef(null);
|
|
1063
|
+
return B.useEffect(() => () => {
|
|
1064
1064
|
i.current && clearTimeout(i.current);
|
|
1065
1065
|
}, []), /* @__PURE__ */ q("button", {
|
|
1066
1066
|
onClick: async () => {
|
|
@@ -1070,13 +1070,13 @@ function nt({ text: e }) {
|
|
|
1070
1070
|
console.error("Failed to copy:", e);
|
|
1071
1071
|
}
|
|
1072
1072
|
},
|
|
1073
|
-
className: "dc:px-2 dc:py-1 dc:text-xs dc:rounded bg-dc-surface hover:bg-dc-surface-hover text-dc-text-muted",
|
|
1073
|
+
className: "dc:px-2 dc:py-1 dc:text-xs dc:rounded-sm bg-dc-surface hover:bg-dc-surface-hover text-dc-text-muted",
|
|
1074
1074
|
title: "Copy to clipboard",
|
|
1075
1075
|
children: t(n ? "explainAI.copied" : "explainAI.copy")
|
|
1076
1076
|
});
|
|
1077
1077
|
}
|
|
1078
1078
|
function rt({ rec: e }) {
|
|
1079
|
-
let { t } =
|
|
1079
|
+
let { t } = R(), n = {
|
|
1080
1080
|
index: t("explainAI.type.index"),
|
|
1081
1081
|
table: t("explainAI.type.table"),
|
|
1082
1082
|
cube: t("explainAI.type.cube"),
|
|
@@ -1088,7 +1088,7 @@ function rt({ rec: e }) {
|
|
|
1088
1088
|
/* @__PURE__ */ J("div", {
|
|
1089
1089
|
className: "dc:flex dc:items-center dc:gap-2 dc:mb-2",
|
|
1090
1090
|
children: [/* @__PURE__ */ q("span", {
|
|
1091
|
-
className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-medium dc:rounded ${Qe[e.severity]}`,
|
|
1091
|
+
className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-medium dc:rounded-sm ${Qe[e.severity]}`,
|
|
1092
1092
|
children: n[e.type]
|
|
1093
1093
|
}), /* @__PURE__ */ q("h5", {
|
|
1094
1094
|
className: "dc:font-medium text-dc-text",
|
|
@@ -1101,7 +1101,7 @@ function rt({ rec: e }) {
|
|
|
1101
1101
|
}),
|
|
1102
1102
|
e.sql && /* @__PURE__ */ q("div", {
|
|
1103
1103
|
className: "dc:mt-2",
|
|
1104
|
-
children: /* @__PURE__ */ q(
|
|
1104
|
+
children: /* @__PURE__ */ q(y, {
|
|
1105
1105
|
code: e.sql,
|
|
1106
1106
|
language: "sql",
|
|
1107
1107
|
headerRight: /* @__PURE__ */ q(nt, { text: e.sql })
|
|
@@ -1115,7 +1115,7 @@ function rt({ rec: e }) {
|
|
|
1115
1115
|
}), /* @__PURE__ */ J("div", {
|
|
1116
1116
|
className: "dc:relative",
|
|
1117
1117
|
children: [/* @__PURE__ */ q("pre", {
|
|
1118
|
-
className: "dc:p-3 dc:text-xs bg-dc-surface-secondary dc:rounded dc:overflow-x-auto dc:font-mono text-dc-text",
|
|
1118
|
+
className: "dc:p-3 dc:text-xs bg-dc-surface-secondary dc:rounded-sm dc:overflow-x-auto dc:font-mono text-dc-text",
|
|
1119
1119
|
children: e.cubeCode
|
|
1120
1120
|
}), /* @__PURE__ */ q("div", {
|
|
1121
1121
|
className: "dc:absolute dc:top-1 dc:right-1",
|
|
@@ -1135,13 +1135,13 @@ function rt({ rec: e }) {
|
|
|
1135
1135
|
});
|
|
1136
1136
|
}
|
|
1137
1137
|
function it({ analysis: e, onClose: t, onClear: n }) {
|
|
1138
|
-
let { t: r } =
|
|
1139
|
-
return
|
|
1138
|
+
let { t: r } = R(), i = t || n;
|
|
1139
|
+
return B.useEffect(() => {
|
|
1140
1140
|
let e = (e) => {
|
|
1141
1141
|
e.key === "Escape" && i && i();
|
|
1142
1142
|
};
|
|
1143
1143
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
1144
|
-
}, [i]),
|
|
1144
|
+
}, [i]), B.useEffect(() => (document.body.style.overflow = "hidden", () => {
|
|
1145
1145
|
document.body.style.overflow = "";
|
|
1146
1146
|
}), []), /* @__PURE__ */ J("div", {
|
|
1147
1147
|
className: "dc:fixed dc:inset-0 dc:z-50 dc:flex dc:items-center dc:justify-center dc:p-4 bg-black/50",
|
|
@@ -1330,6 +1330,7 @@ var vt = {
|
|
|
1330
1330
|
radar: ft,
|
|
1331
1331
|
radialBar: ft,
|
|
1332
1332
|
treemap: ft,
|
|
1333
|
+
proportionBar: lt,
|
|
1333
1334
|
activityGrid: pt,
|
|
1334
1335
|
kpiNumber: mt,
|
|
1335
1336
|
kpiDelta: mt,
|
|
@@ -1402,7 +1403,7 @@ function jt(e, t, n, r) {
|
|
|
1402
1403
|
//#endregion
|
|
1403
1404
|
//#region src/client/components/AnalysisBuilder/ExecutionPlanPanelParts.tsx
|
|
1404
1405
|
function Mt({ title: e, height: t, className: n, children: r }) {
|
|
1405
|
-
return /* @__PURE__ */ J(
|
|
1406
|
+
return /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ q("h4", {
|
|
1406
1407
|
className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2",
|
|
1407
1408
|
children: e
|
|
1408
1409
|
}), /* @__PURE__ */ q("div", {
|
|
@@ -1412,18 +1413,18 @@ function Mt({ title: e, height: t, className: n, children: r }) {
|
|
|
1412
1413
|
})] });
|
|
1413
1414
|
}
|
|
1414
1415
|
function Nt({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSql: i, title: a, height: o, headerRight: s }) {
|
|
1415
|
-
let { t: c } =
|
|
1416
|
+
let { t: c } = R();
|
|
1416
1417
|
return t ? /* @__PURE__ */ q(Mt, {
|
|
1417
1418
|
title: a,
|
|
1418
1419
|
height: o,
|
|
1419
|
-
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
|
|
1420
|
+
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
|
|
1420
1421
|
children: c("results.debug.loadingSql")
|
|
1421
1422
|
}) : n ? /* @__PURE__ */ q(Mt, {
|
|
1422
1423
|
title: a,
|
|
1423
1424
|
height: o,
|
|
1424
|
-
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded dc:border border-dc-error",
|
|
1425
|
+
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
|
|
1425
1426
|
children: n.message
|
|
1426
|
-
}) : e ? /* @__PURE__ */ q(
|
|
1427
|
+
}) : e ? /* @__PURE__ */ q(y, {
|
|
1427
1428
|
code: i,
|
|
1428
1429
|
language: "sql",
|
|
1429
1430
|
title: a,
|
|
@@ -1432,49 +1433,49 @@ function Nt({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSq
|
|
|
1432
1433
|
}) : /* @__PURE__ */ q(Mt, {
|
|
1433
1434
|
title: a,
|
|
1434
1435
|
height: o,
|
|
1435
|
-
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded dc:p-3 text-dc-text-muted dc:text-sm",
|
|
1436
|
+
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm",
|
|
1436
1437
|
children: r
|
|
1437
1438
|
});
|
|
1438
1439
|
}
|
|
1439
1440
|
function Pt({ summary: e }) {
|
|
1440
|
-
let { t } =
|
|
1441
|
+
let { t } = R();
|
|
1441
1442
|
return /* @__PURE__ */ J("div", {
|
|
1442
1443
|
className: "dc:flex dc:flex-wrap dc:items-center dc:gap-2",
|
|
1443
1444
|
children: [
|
|
1444
1445
|
/* @__PURE__ */ q("span", {
|
|
1445
|
-
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-accent text-white dc:rounded",
|
|
1446
|
+
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-accent text-white dc:rounded-sm",
|
|
1446
1447
|
children: e.database.toUpperCase()
|
|
1447
1448
|
}),
|
|
1448
1449
|
e.hasSequentialScans && /* @__PURE__ */ q("span", {
|
|
1449
|
-
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-warning-bg text-dc-warning dc:border border-dc-warning dc:rounded",
|
|
1450
|
+
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-warning-bg text-dc-warning dc:border border-dc-warning dc:rounded-sm",
|
|
1450
1451
|
children: t("debug.sequentialScans")
|
|
1451
1452
|
}),
|
|
1452
1453
|
e.usedIndexes.length > 0 && /* @__PURE__ */ q("span", {
|
|
1453
|
-
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-success-bg text-dc-success dc:border border-dc-success dc:rounded",
|
|
1454
|
+
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-success-bg text-dc-success dc:border border-dc-success dc:rounded-sm",
|
|
1454
1455
|
children: t(e.usedIndexes.length === 1 ? "debug.indexesUsed" : "debug.indexesUsedPlural", { count: e.usedIndexes.length })
|
|
1455
1456
|
}),
|
|
1456
1457
|
e.executionTime !== void 0 && /* @__PURE__ */ q("span", {
|
|
1457
|
-
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded",
|
|
1458
|
+
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded-sm",
|
|
1458
1459
|
children: t("debug.executionTime", { time: e.executionTime.toFixed(2) })
|
|
1459
1460
|
}),
|
|
1460
1461
|
e.planningTime !== void 0 && /* @__PURE__ */ q("span", {
|
|
1461
|
-
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded",
|
|
1462
|
+
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded-sm",
|
|
1462
1463
|
children: t("debug.planningTime", { time: e.planningTime.toFixed(2) })
|
|
1463
1464
|
}),
|
|
1464
1465
|
e.totalCost !== void 0 && /* @__PURE__ */ q("span", {
|
|
1465
|
-
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded",
|
|
1466
|
+
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded-sm",
|
|
1466
1467
|
children: t("debug.cost", { cost: e.totalCost.toFixed(2) })
|
|
1467
1468
|
})
|
|
1468
1469
|
]
|
|
1469
1470
|
});
|
|
1470
1471
|
}
|
|
1471
1472
|
function Ft({ explainLoading: e, explainError: t, explainResult: n, useAnalyze: r, aiButton: i }) {
|
|
1472
|
-
let { t: a } =
|
|
1473
|
+
let { t: a } = R();
|
|
1473
1474
|
return e ? /* @__PURE__ */ q("div", {
|
|
1474
|
-
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
|
|
1475
|
+
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
|
|
1475
1476
|
children: a(r ? "debug.explainRunningAnalyze" : "debug.explainRunningBasic")
|
|
1476
1477
|
}) : t ? /* @__PURE__ */ J("div", {
|
|
1477
|
-
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded dc:border border-dc-error",
|
|
1478
|
+
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
|
|
1478
1479
|
children: [
|
|
1479
1480
|
/* @__PURE__ */ q("strong", { children: a("debug.explainError") }),
|
|
1480
1481
|
" ",
|
|
@@ -1492,7 +1493,7 @@ function Ft({ explainLoading: e, explainError: t, explainResult: n, useAnalyze:
|
|
|
1492
1493
|
n.summary.usedIndexes.join(", ")
|
|
1493
1494
|
]
|
|
1494
1495
|
}),
|
|
1495
|
-
/* @__PURE__ */ q(
|
|
1496
|
+
/* @__PURE__ */ q(y, {
|
|
1496
1497
|
code: n.raw,
|
|
1497
1498
|
language: "sql",
|
|
1498
1499
|
title: a("debug.executionPlanTitle", { database: n.summary.database }),
|
|
@@ -1504,19 +1505,19 @@ function Ft({ explainLoading: e, explainError: t, explainResult: n, useAnalyze:
|
|
|
1504
1505
|
}
|
|
1505
1506
|
//#endregion
|
|
1506
1507
|
//#region src/client/components/AnalysisBuilder/ExecutionPlanPanel.tsx
|
|
1507
|
-
var It =
|
|
1508
|
-
let { t: v } =
|
|
1508
|
+
var It = _e(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder: r = "Add metrics to generate SQL", explainResult: i, explainLoading: a = !1, explainHasRun: o = !1, explainError: s, runExplain: c, aiAnalysis: l, aiAnalysisLoading: u = !1, aiAnalysisError: d, runAIAnalysis: f, clearAIAnalysis: p, enableAI: m = !1, query: h, title: g = "Generated SQL", height: _ = "16rem" }) {
|
|
1509
|
+
let { t: v } = R(), [y, b] = G(!1), [x, S] = G(!1), C = e ? e.sql + (e.params && e.params.length > 0 ? "\n\n-- Parameters:\n" + JSON.stringify(e.params, null, 2) : "") : "", w = () => {
|
|
1509
1510
|
f && i && h && (f(i, h), S(!0));
|
|
1510
1511
|
}, T = () => {
|
|
1511
1512
|
S(!1);
|
|
1512
1513
|
}, E = m && i ? /* @__PURE__ */ q("button", {
|
|
1513
1514
|
onClick: w,
|
|
1514
1515
|
disabled: u,
|
|
1515
|
-
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded bg-dc-accent text-white hover:bg-dc-accent-hover dc:disabled:opacity-50 dc:disabled:cursor-not-allowed dc:flex dc:items-center dc:gap-1",
|
|
1516
|
-
children: u ? /* @__PURE__ */ J(
|
|
1516
|
+
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded-sm bg-dc-accent text-white hover:bg-dc-accent-hover dc:disabled:opacity-50 dc:disabled:cursor-not-allowed dc:flex dc:items-center dc:gap-1",
|
|
1517
|
+
children: u ? /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ q("span", {
|
|
1517
1518
|
className: "dc:animate-spin",
|
|
1518
1519
|
children: "⟳"
|
|
1519
|
-
}), v("debug.aiAnalyzing")] }) : /* @__PURE__ */ q(
|
|
1520
|
+
}), v("debug.aiAnalyzing")] }) : /* @__PURE__ */ q(K, { children: `✨ ${v("debug.aiAnalysis")}` })
|
|
1520
1521
|
}) : null;
|
|
1521
1522
|
return /* @__PURE__ */ J("div", {
|
|
1522
1523
|
className: "dc:space-y-3",
|
|
@@ -1529,18 +1530,18 @@ var It = ge(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
|
|
|
1529
1530
|
formattedSql: C,
|
|
1530
1531
|
title: g,
|
|
1531
1532
|
height: _,
|
|
1532
|
-
headerRight: /* @__PURE__ */ J(
|
|
1533
|
+
headerRight: /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ J("label", {
|
|
1533
1534
|
className: "dc:flex dc:items-center dc:gap-1 dc:text-xs text-dc-text-secondary dc:cursor-pointer",
|
|
1534
1535
|
children: [/* @__PURE__ */ q("input", {
|
|
1535
1536
|
type: "checkbox",
|
|
1536
1537
|
checked: y,
|
|
1537
1538
|
onChange: (e) => b(e.target.checked),
|
|
1538
|
-
className: "dc:w-3 dc:h-3 dc:rounded border-dc-border text-dc-accent focus:ring-dc-accent"
|
|
1539
|
+
className: "dc:w-3 dc:h-3 dc:rounded-sm border-dc-border text-dc-accent focus:ring-dc-accent"
|
|
1539
1540
|
}), v("debug.explainIncludeTiming")]
|
|
1540
1541
|
}), /* @__PURE__ */ q("button", {
|
|
1541
1542
|
onClick: () => c({ analyze: y }),
|
|
1542
1543
|
disabled: a,
|
|
1543
|
-
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded dc:border border-dc-border bg-dc-surface hover:bg-dc-surface-hover text-dc-text-secondary hover:text-dc-text dc:transition-colors dc:disabled:opacity-50 dc:disabled:cursor-not-allowed",
|
|
1544
|
+
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded-sm dc:border border-dc-border bg-dc-surface hover:bg-dc-surface-hover text-dc-text-secondary hover:text-dc-text dc:transition-colors dc:disabled:opacity-50 dc:disabled:cursor-not-allowed",
|
|
1544
1545
|
children: v(a ? "debug.explainRunning" : "debug.explainPlan")
|
|
1545
1546
|
})] })
|
|
1546
1547
|
}),
|
|
@@ -1552,7 +1553,7 @@ var It = ge(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
|
|
|
1552
1553
|
aiButton: E
|
|
1553
1554
|
}) }),
|
|
1554
1555
|
d && /* @__PURE__ */ J("div", {
|
|
1555
|
-
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded dc:border border-dc-error",
|
|
1556
|
+
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
|
|
1556
1557
|
children: [
|
|
1557
1558
|
/* @__PURE__ */ q("strong", { children: v("debug.aiAnalysisError") }),
|
|
1558
1559
|
" ",
|
|
@@ -1609,22 +1610,22 @@ function Bt(e) {
|
|
|
1609
1610
|
}
|
|
1610
1611
|
function Vt(e) {
|
|
1611
1612
|
return e.map((e, t) => ({
|
|
1612
|
-
id:
|
|
1613
|
+
id: p(),
|
|
1613
1614
|
field: e,
|
|
1614
|
-
label:
|
|
1615
|
+
label: d(t)
|
|
1615
1616
|
}));
|
|
1616
1617
|
}
|
|
1617
1618
|
function Ht(e) {
|
|
1618
1619
|
let t = [];
|
|
1619
1620
|
if (e.dimensions) for (let n of e.dimensions) t.push({
|
|
1620
|
-
id:
|
|
1621
|
+
id: p(),
|
|
1621
1622
|
field: n,
|
|
1622
1623
|
isTimeDimension: !1
|
|
1623
1624
|
});
|
|
1624
1625
|
if (e.timeDimensions) for (let n of e.timeDimensions) {
|
|
1625
1626
|
let e = !!(n.compareDateRange && n.compareDateRange.length > 0);
|
|
1626
1627
|
t.push({
|
|
1627
|
-
id:
|
|
1628
|
+
id: p(),
|
|
1628
1629
|
field: n.dimension,
|
|
1629
1630
|
granularity: n.granularity,
|
|
1630
1631
|
isTimeDimension: !0,
|
|
@@ -1729,7 +1730,7 @@ var X = {
|
|
|
1729
1730
|
}
|
|
1730
1731
|
}, Z = /* @__PURE__ */ new Map(), Gt = !1;
|
|
1731
1732
|
function Kt() {
|
|
1732
|
-
Gt ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel",
|
|
1733
|
+
Gt ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel", _), Z.has("flow") || Z.set("flow", w), Z.has("retention") || Z.set("retention", b), !0);
|
|
1733
1734
|
}
|
|
1734
1735
|
var Q = {
|
|
1735
1736
|
register(e) {
|
|
@@ -1754,9 +1755,9 @@ var Q = {
|
|
|
1754
1755
|
analysisType: "query",
|
|
1755
1756
|
charts: {
|
|
1756
1757
|
query: X.getDefaultChartConfig(),
|
|
1757
|
-
funnel:
|
|
1758
|
+
funnel: _.getDefaultChartConfig(),
|
|
1758
1759
|
flow: w.getDefaultChartConfig(),
|
|
1759
|
-
retention:
|
|
1760
|
+
retention: b.getDefaultChartConfig()
|
|
1760
1761
|
},
|
|
1761
1762
|
activeViews: {
|
|
1762
1763
|
query: "chart",
|
|
@@ -2015,9 +2016,9 @@ var Q = {
|
|
|
2015
2016
|
}),
|
|
2016
2017
|
addMetric: (t, n) => e((e) => {
|
|
2017
2018
|
let r = e.activeQueryIndex, i = [...e.queryStates], a = i[r] || Y(), o = {
|
|
2018
|
-
id:
|
|
2019
|
+
id: p(),
|
|
2019
2020
|
field: t,
|
|
2020
|
-
label: n ||
|
|
2021
|
+
label: n || d(a.metrics.length)
|
|
2021
2022
|
};
|
|
2022
2023
|
return i[r] = {
|
|
2023
2024
|
...a,
|
|
@@ -2040,9 +2041,9 @@ var Q = {
|
|
|
2040
2041
|
};
|
|
2041
2042
|
else {
|
|
2042
2043
|
let e = {
|
|
2043
|
-
id:
|
|
2044
|
+
id: p(),
|
|
2044
2045
|
field: t,
|
|
2045
|
-
label:
|
|
2046
|
+
label: d(i.metrics.length)
|
|
2046
2047
|
};
|
|
2047
2048
|
r[n] = {
|
|
2048
2049
|
...i,
|
|
@@ -2062,7 +2063,7 @@ var Q = {
|
|
|
2062
2063
|
let i = e.activeQueryIndex, a = [...e.queryStates], o = a[i] || Y();
|
|
2063
2064
|
if (n && o.breakdowns.some((e) => e.isTimeDimension)) return e;
|
|
2064
2065
|
let s = {
|
|
2065
|
-
id:
|
|
2066
|
+
id: p(),
|
|
2066
2067
|
field: t,
|
|
2067
2068
|
isTimeDimension: n,
|
|
2068
2069
|
granularity: n ? r || "month" : void 0
|
|
@@ -2089,7 +2090,7 @@ var Q = {
|
|
|
2089
2090
|
else {
|
|
2090
2091
|
if (n && o.breakdowns.some((e) => e.isTimeDimension)) return e;
|
|
2091
2092
|
let s = {
|
|
2092
|
-
id:
|
|
2093
|
+
id: p(),
|
|
2093
2094
|
field: t,
|
|
2094
2095
|
isTimeDimension: n,
|
|
2095
2096
|
granularity: n ? r || "month" : void 0
|
|
@@ -2137,7 +2138,7 @@ var Q = {
|
|
|
2137
2138
|
member: l.field,
|
|
2138
2139
|
operator: "inDateRange",
|
|
2139
2140
|
values: [],
|
|
2140
|
-
dateRange:
|
|
2141
|
+
dateRange: N("last_n_months", 3)
|
|
2141
2142
|
};
|
|
2142
2143
|
s[c] = {
|
|
2143
2144
|
...s[c],
|
|
@@ -2254,7 +2255,7 @@ var Q = {
|
|
|
2254
2255
|
...Zt(),
|
|
2255
2256
|
addFunnelStep: () => e((e) => {
|
|
2256
2257
|
let t = e.funnelSteps[e.funnelSteps.length - 1], n = {
|
|
2257
|
-
id:
|
|
2258
|
+
id: p(),
|
|
2258
2259
|
name: `Step ${e.funnelSteps.length + 1}`,
|
|
2259
2260
|
cube: e.funnelCube || "",
|
|
2260
2261
|
filters: t?.filters ? JSON.parse(JSON.stringify(t.filters)) : [],
|
|
@@ -2402,7 +2403,7 @@ var Q = {
|
|
|
2402
2403
|
joinStrategy: e.joinStrategy
|
|
2403
2404
|
} };
|
|
2404
2405
|
}
|
|
2405
|
-
}), tn = () => ({ ...
|
|
2406
|
+
}), tn = () => ({ ...O }), nn = (e, t, n) => ({
|
|
2406
2407
|
...tn(),
|
|
2407
2408
|
setRetentionCube: (t) => e(() => ({
|
|
2408
2409
|
retentionCube: t,
|
|
@@ -2585,11 +2586,11 @@ var Q = {
|
|
|
2585
2586
|
//#region src/client/stores/optionsToAnalysisConfig.ts
|
|
2586
2587
|
function sn(e) {
|
|
2587
2588
|
let t = e.filters ? [...e.filters] : [], n = e.timeDimensions || [], r = [...(e.dimensions || []).map((e) => ({
|
|
2588
|
-
id:
|
|
2589
|
+
id: p(),
|
|
2589
2590
|
field: e,
|
|
2590
2591
|
isTimeDimension: !1
|
|
2591
2592
|
})), ...n.map((e) => ({
|
|
2592
|
-
id:
|
|
2593
|
+
id: p(),
|
|
2593
2594
|
field: e.dimension,
|
|
2594
2595
|
granularity: e.granularity,
|
|
2595
2596
|
isTimeDimension: !0,
|
|
@@ -2617,9 +2618,9 @@ function sn(e) {
|
|
|
2617
2618
|
return {
|
|
2618
2619
|
...Y(),
|
|
2619
2620
|
metrics: (e.measures || []).map((e, t) => ({
|
|
2620
|
-
id:
|
|
2621
|
+
id: p(),
|
|
2621
2622
|
field: e,
|
|
2622
|
-
label:
|
|
2623
|
+
label: d(t)
|
|
2623
2624
|
})),
|
|
2624
2625
|
breakdowns: r,
|
|
2625
2626
|
filters: i,
|
|
@@ -2641,8 +2642,8 @@ function un(e) {
|
|
|
2641
2642
|
return e.initialActiveView || "chart";
|
|
2642
2643
|
}
|
|
2643
2644
|
function dn(e) {
|
|
2644
|
-
let t = ln(
|
|
2645
|
-
return
|
|
2645
|
+
let t = ln(_, e.initialChartConfig), n = e.initialFunnelState ?? {};
|
|
2646
|
+
return _.save({
|
|
2646
2647
|
funnelCube: n.funnelCube ?? null,
|
|
2647
2648
|
funnelSteps: n.funnelSteps || [],
|
|
2648
2649
|
activeFunnelStepIndex: 0,
|
|
@@ -2667,8 +2668,8 @@ function fn(e) {
|
|
|
2667
2668
|
}, { flow: t }, un(e));
|
|
2668
2669
|
}
|
|
2669
2670
|
function pn(e) {
|
|
2670
|
-
let t = ln(
|
|
2671
|
-
return
|
|
2671
|
+
let t = ln(b, e.initialChartConfig), n = e.initialRetentionState ?? {}, r = k(ee);
|
|
2672
|
+
return b.save({
|
|
2672
2673
|
retentionCube: n.retentionCube ?? null,
|
|
2673
2674
|
retentionBindingKey: n.retentionBindingKey ?? null,
|
|
2674
2675
|
retentionTimeDimension: n.retentionTimeDimension ?? null,
|
|
@@ -2722,9 +2723,9 @@ function vn(e, t) {
|
|
|
2722
2723
|
...tn(),
|
|
2723
2724
|
charts: {
|
|
2724
2725
|
query: X.getDefaultChartConfig(),
|
|
2725
|
-
funnel:
|
|
2726
|
+
funnel: _.getDefaultChartConfig(),
|
|
2726
2727
|
flow: w.getDefaultChartConfig(),
|
|
2727
|
-
retention:
|
|
2728
|
+
retention: b.getDefaultChartConfig()
|
|
2728
2729
|
},
|
|
2729
2730
|
activeViews: {
|
|
2730
2731
|
query: "chart",
|
|
@@ -2740,7 +2741,7 @@ function vn(e, t) {
|
|
|
2740
2741
|
...Zt(),
|
|
2741
2742
|
charts: {
|
|
2742
2743
|
...e.charts,
|
|
2743
|
-
funnel:
|
|
2744
|
+
funnel: _.getDefaultChartConfig()
|
|
2744
2745
|
}
|
|
2745
2746
|
};
|
|
2746
2747
|
case "flow": return {
|
|
@@ -2754,7 +2755,7 @@ function vn(e, t) {
|
|
|
2754
2755
|
...tn(),
|
|
2755
2756
|
charts: {
|
|
2756
2757
|
...e.charts,
|
|
2757
|
-
retention:
|
|
2758
|
+
retention: b.getDefaultChartConfig()
|
|
2758
2759
|
}
|
|
2759
2760
|
};
|
|
2760
2761
|
default: return {
|
|
@@ -2801,10 +2802,10 @@ function yn(n = {}) {
|
|
|
2801
2802
|
return a()(i(e(t(o, {
|
|
2802
2803
|
name: n.storageKey || "drizzle-cube-analysis-builder-v3",
|
|
2803
2804
|
partialize: (e) => e.saveWorkspace(),
|
|
2804
|
-
merge: (e, t) => e &&
|
|
2805
|
+
merge: (e, t) => e && g(e) ? {
|
|
2805
2806
|
...t,
|
|
2806
2807
|
_persistedWorkspace: e
|
|
2807
|
-
} : e &&
|
|
2808
|
+
} : e && D(e) ? {
|
|
2808
2809
|
...t,
|
|
2809
2810
|
_persistedConfig: e
|
|
2810
2811
|
} : r ? {
|
|
@@ -2827,9 +2828,9 @@ function yn(n = {}) {
|
|
|
2827
2828
|
}
|
|
2828
2829
|
})), { name: "AnalysisBuilderStore" }));
|
|
2829
2830
|
}
|
|
2830
|
-
var bn =
|
|
2831
|
+
var bn = ge(null);
|
|
2831
2832
|
function xn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalStorage: r, storageKey: i, initialAnalysisType: a, initialFunnelState: o, initialFlowState: s, initialRetentionState: c, initialActiveView: l }) {
|
|
2832
|
-
let u =
|
|
2833
|
+
let u = W(null);
|
|
2833
2834
|
return u.current ||= yn({
|
|
2834
2835
|
initialQuery: t,
|
|
2835
2836
|
initialChartConfig: n,
|
|
@@ -2846,12 +2847,12 @@ function xn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalS
|
|
|
2846
2847
|
});
|
|
2847
2848
|
}
|
|
2848
2849
|
function $(e) {
|
|
2849
|
-
let t =
|
|
2850
|
+
let t = ve(bn);
|
|
2850
2851
|
if (!t) throw Error("useAnalysisBuilderStore must be used within AnalysisBuilderStoreProvider");
|
|
2851
2852
|
return r(t, e);
|
|
2852
2853
|
}
|
|
2853
2854
|
function Sn() {
|
|
2854
|
-
let e =
|
|
2855
|
+
let e = ve(bn);
|
|
2855
2856
|
if (!e) throw Error("useAnalysisBuilderStoreApi must be used within AnalysisBuilderStoreProvider");
|
|
2856
2857
|
return e;
|
|
2857
2858
|
}
|
|
@@ -2999,37 +3000,37 @@ function Bn(e) {
|
|
|
2999
3000
|
//#endregion
|
|
3000
3001
|
//#region src/client/hooks/useAnalysisState.ts
|
|
3001
3002
|
function Vn(e = {}) {
|
|
3002
|
-
let { externalColorPalette: t } = e, r = Sn(), i = $((e) => e.queryStates), a = $((e) => e.activeQueryIndex), o = $((e) => e.mergeStrategy), s = $((e) => e.setActiveQueryIndex), c = $((e) => e.setMergeStrategy), l = $((e) => e.addQuery), u = $((e) => e.removeQuery), d = $((e) => e.getCurrentState),
|
|
3003
|
-
let e = i[a] ||
|
|
3003
|
+
let { externalColorPalette: t } = e, r = Sn(), i = $((e) => e.queryStates), a = $((e) => e.activeQueryIndex), o = $((e) => e.mergeStrategy), s = $((e) => e.setActiveQueryIndex), c = $((e) => e.setMergeStrategy), l = $((e) => e.addQuery), u = $((e) => e.removeQuery), d = $((e) => e.getCurrentState), p = $((e) => e.getMergeKeys), m = $((e) => e.isMultiQueryMode), h = d(), g = m(), _ = p(), v = U(() => {
|
|
3004
|
+
let e = i[a] || h;
|
|
3004
3005
|
return Te(e.metrics, e.breakdowns, e.filters, e.order, !1, e.limit);
|
|
3005
3006
|
}, [
|
|
3006
3007
|
i,
|
|
3007
3008
|
a,
|
|
3008
|
-
|
|
3009
|
-
]), y =
|
|
3009
|
+
h
|
|
3010
|
+
]), y = U(() => {
|
|
3010
3011
|
let e = i[0]?.breakdowns || [];
|
|
3011
3012
|
return i.map((t, n) => Te(t.metrics, o === "merge" && n > 0 ? e : t.breakdowns, t.filters, t.order, !1, t.limit));
|
|
3012
|
-
}, [i, o]), b =
|
|
3013
|
+
}, [i, o]), b = U(() => {
|
|
3013
3014
|
if (i.length <= 1) return null;
|
|
3014
3015
|
let e = y.filter((e) => e.measures && e.measures.length > 0 || e.dimensions && e.dimensions.length > 0 || e.timeDimensions && e.timeDimensions.length > 0);
|
|
3015
3016
|
return e.length < 2 ? null : {
|
|
3016
3017
|
queries: e,
|
|
3017
3018
|
mergeStrategy: o,
|
|
3018
|
-
mergeKeys:
|
|
3019
|
+
mergeKeys: _,
|
|
3019
3020
|
queryLabels: e.map((e, t) => `Q${t + 1}`)
|
|
3020
3021
|
};
|
|
3021
3022
|
}, [
|
|
3022
3023
|
y,
|
|
3023
3024
|
i.length,
|
|
3024
3025
|
o,
|
|
3025
|
-
|
|
3026
|
-
]), x =
|
|
3027
|
-
|
|
3026
|
+
_
|
|
3027
|
+
]), x = U(() => g ? In(y, o, _ || []) : null, [
|
|
3028
|
+
g,
|
|
3028
3029
|
y,
|
|
3029
3030
|
o,
|
|
3030
|
-
|
|
3031
|
-
]), S =
|
|
3032
|
-
if (!
|
|
3031
|
+
_
|
|
3032
|
+
]), S = U(() => v.measures && v.measures.length > 0 || v.dimensions && v.dimensions.length > 0 || v.timeDimensions && v.timeDimensions.length > 0, [v]), C = U(() => {
|
|
3033
|
+
if (!g) return h.metrics;
|
|
3033
3034
|
let e = /* @__PURE__ */ new Set(), t = [];
|
|
3034
3035
|
for (let n = 0; n < i.length; n++) {
|
|
3035
3036
|
let r = i[n];
|
|
@@ -3043,79 +3044,79 @@ function Vn(e = {}) {
|
|
|
3043
3044
|
}
|
|
3044
3045
|
return t;
|
|
3045
3046
|
}, [
|
|
3046
|
-
|
|
3047
|
+
g,
|
|
3047
3048
|
i,
|
|
3048
|
-
|
|
3049
|
-
]), w =
|
|
3050
|
-
if (!
|
|
3049
|
+
h.metrics
|
|
3050
|
+
]), w = U(() => {
|
|
3051
|
+
if (!g) return h.breakdowns;
|
|
3051
3052
|
let e = /* @__PURE__ */ new Set(), t = [];
|
|
3052
3053
|
for (let n of i) for (let r of n.breakdowns) e.has(r.field) || (e.add(r.field), t.push(r));
|
|
3053
3054
|
return t;
|
|
3054
3055
|
}, [
|
|
3055
|
-
|
|
3056
|
+
g,
|
|
3056
3057
|
i,
|
|
3057
|
-
|
|
3058
|
-
]), T =
|
|
3058
|
+
h.breakdowns
|
|
3059
|
+
]), T = U(() => o === "merge" && a > 0 ? i[0]?.breakdowns || [] : h.breakdowns, [
|
|
3059
3060
|
o,
|
|
3060
3061
|
a,
|
|
3061
3062
|
i,
|
|
3062
|
-
|
|
3063
|
-
]), E = $((e) => e.analysisType), D = $((e) => e.funnelBindingKey), O = $((e) => e.funnelCube), k = $((e) => e.funnelSteps),
|
|
3063
|
+
h.breakdowns
|
|
3064
|
+
]), E = $((e) => e.analysisType), D = $((e) => e.funnelBindingKey), O = $((e) => e.funnelCube), k = $((e) => e.funnelSteps), ee = $((e) => e.activeFunnelStepIndex), A = $((e) => e.funnelTimeDimension), te = U(() => E !== "funnel" || !D?.dimension || !A || !k || k.length < 2 ? !1 : k.every((e) => e.filters.length > 0), [
|
|
3064
3065
|
E,
|
|
3065
3066
|
D,
|
|
3066
|
-
|
|
3067
|
+
A,
|
|
3067
3068
|
k
|
|
3068
|
-
]),
|
|
3069
|
+
]), ne = $((e) => e.charts.funnel?.chartType) || "funnel", j = $((e) => e.charts.funnel?.chartConfig), re = U(() => j || {}, [j]), M = $((e) => e.charts.funnel?.displayConfig), ie = U(() => M || {
|
|
3069
3070
|
showLegend: !0,
|
|
3070
3071
|
showGrid: !0,
|
|
3071
3072
|
showTooltip: !0
|
|
3072
|
-
}, [
|
|
3073
|
+
}, [M]), ae = $((e) => e.flowCube), oe = $((e) => e.flowBindingKey), N = $((e) => e.flowTimeDimension), P = $((e) => e.eventDimension), se = $((e) => e.startingStep), F = $((e) => e.stepsBefore), I = $((e) => e.stepsAfter), L = $((e) => e.joinStrategy), ce = $((e) => e.charts.flow?.displayConfig), le = U(() => ce || {
|
|
3073
3074
|
showLegend: !0,
|
|
3074
3075
|
showGrid: !0,
|
|
3075
3076
|
showTooltip: !0
|
|
3076
|
-
}, [
|
|
3077
|
+
}, [ce]), ue = $((e) => e.charts.flow?.chartType) || "sankey", R = $((e) => e.buildFunnelQueryFromSteps), de = U(() => E === "funnel" ? R() : null, [
|
|
3077
3078
|
E,
|
|
3078
|
-
|
|
3079
|
+
R,
|
|
3079
3080
|
k
|
|
3080
|
-
]),
|
|
3081
|
+
]), z = $((e) => e.buildFlowQuery), fe = U(() => E === "flow" ? z() : null, [
|
|
3081
3082
|
E,
|
|
3082
|
-
|
|
3083
|
-
re,
|
|
3084
|
-
ie,
|
|
3083
|
+
z,
|
|
3085
3084
|
ae,
|
|
3085
|
+
oe,
|
|
3086
|
+
N,
|
|
3087
|
+
P,
|
|
3088
|
+
se,
|
|
3086
3089
|
F,
|
|
3087
3090
|
I,
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
oe
|
|
3092
|
-
]), fe = $((e) => e.retentionCube), pe = $((e) => e.retentionBindingKey), me = $((e) => e.retentionTimeDimension), V = $((e) => e.retentionDateRange), he = $((e) => e.retentionCohortFilters), ge = $((e) => e.retentionActivityFilters), _e = $((e) => e.retentionBreakdowns), U = $((e) => e.retentionViewGranularity), G = $((e) => e.retentionPeriods), ve = $((e) => e.retentionType), q = $((e) => e.buildRetentionQuery), J = $((e) => e.getRetentionValidation), ye = $((e) => e.charts.retention?.displayConfig), be = W(() => E === "retention" ? q() : null, [
|
|
3091
|
+
ue,
|
|
3092
|
+
L
|
|
3093
|
+
]), pe = $((e) => e.retentionCube), me = $((e) => e.retentionBindingKey), he = $((e) => e.retentionTimeDimension), B = $((e) => e.retentionDateRange), ge = $((e) => e.retentionCohortFilters), _e = $((e) => e.retentionActivityFilters), ve = $((e) => e.retentionBreakdowns), H = $((e) => e.retentionViewGranularity), W = $((e) => e.retentionPeriods), K = $((e) => e.retentionType), q = $((e) => e.buildRetentionQuery), J = $((e) => e.getRetentionValidation), ye = $((e) => e.charts.retention?.displayConfig), be = U(() => E === "retention" ? q() : null, [
|
|
3093
3094
|
E,
|
|
3094
3095
|
q,
|
|
3095
|
-
fe,
|
|
3096
3096
|
pe,
|
|
3097
3097
|
me,
|
|
3098
|
-
V,
|
|
3099
|
-
_e,
|
|
3100
|
-
U,
|
|
3101
|
-
G,
|
|
3102
|
-
ve,
|
|
3103
3098
|
he,
|
|
3104
|
-
|
|
3105
|
-
|
|
3099
|
+
B,
|
|
3100
|
+
ve,
|
|
3101
|
+
H,
|
|
3102
|
+
W,
|
|
3103
|
+
K,
|
|
3104
|
+
ge,
|
|
3105
|
+
_e
|
|
3106
|
+
]), xe = U(() => E === "retention" ? J() : null, [
|
|
3106
3107
|
E,
|
|
3107
3108
|
J,
|
|
3108
|
-
fe,
|
|
3109
3109
|
pe,
|
|
3110
3110
|
me,
|
|
3111
|
-
|
|
3112
|
-
|
|
3111
|
+
he,
|
|
3112
|
+
B
|
|
3113
|
+
]), Se = U(() => E === "retention" ? be !== null : E === "flow" ? fe !== null : E === "funnel" ? de !== null : S ?? !1, [
|
|
3113
3114
|
E,
|
|
3114
3115
|
be,
|
|
3116
|
+
fe,
|
|
3115
3117
|
de,
|
|
3116
|
-
ue,
|
|
3117
3118
|
S
|
|
3118
|
-
]), { chartType: Ce, chartConfig: we, displayConfig: Y } = $(n(Dn)), Ee = $((e) => e.userManuallySelectedChart), De = $((e) => e.localPaletteName), Oe = $((e) => e.setChartTypeManual), ke = $((e) => e.setChartConfig), Ae = $((e) => e.setDisplayConfig), je = $((e) => e.setFunnelChartType), Me = $((e) => e.setFunnelChartConfig), Ne = $((e) => e.setFunnelDisplayConfig), Pe = $((e) => e.setLocalPaletteName), Fe = $((e) => e.setUserManuallySelectedChart), Ie =
|
|
3119
|
+
]), { chartType: Ce, chartConfig: we, displayConfig: Y } = $(n(Dn)), Ee = $((e) => e.userManuallySelectedChart), De = $((e) => e.localPaletteName), Oe = $((e) => e.setChartTypeManual), ke = $((e) => e.setChartConfig), Ae = $((e) => e.setDisplayConfig), je = $((e) => e.setFunnelChartType), Me = $((e) => e.setFunnelChartConfig), Ne = $((e) => e.setFunnelDisplayConfig), Pe = $((e) => e.setLocalPaletteName), Fe = $((e) => e.setUserManuallySelectedChart), Ie = V((e) => {
|
|
3119
3120
|
if (E === "funnel") je(e);
|
|
3120
3121
|
else {
|
|
3121
3122
|
Oe(e);
|
|
@@ -3129,24 +3130,24 @@ function Vn(e = {}) {
|
|
|
3129
3130
|
je,
|
|
3130
3131
|
Oe,
|
|
3131
3132
|
ke
|
|
3132
|
-
]), Le =
|
|
3133
|
+
]), Le = V((e) => {
|
|
3133
3134
|
E === "funnel" ? Me(e) : ke(e);
|
|
3134
3135
|
}, [
|
|
3135
3136
|
E,
|
|
3136
3137
|
Me,
|
|
3137
3138
|
ke
|
|
3138
|
-
]), Re =
|
|
3139
|
+
]), Re = V((e) => {
|
|
3139
3140
|
E === "funnel" ? Ne(e) : Ae(e);
|
|
3140
3141
|
}, [
|
|
3141
3142
|
E,
|
|
3142
3143
|
Ne,
|
|
3143
3144
|
Ae
|
|
3144
|
-
]), ze =
|
|
3145
|
+
]), ze = U(() => Dt(C, w), [C, w]), Be = U(() => t ? Array.isArray(t) && typeof t[0] == "string" ? {
|
|
3145
3146
|
name: "custom",
|
|
3146
3147
|
label: "Custom",
|
|
3147
3148
|
colors: t,
|
|
3148
3149
|
gradient: t
|
|
3149
|
-
} : t :
|
|
3150
|
+
} : t : f(De), [t, De]), Ve = V((e) => {
|
|
3150
3151
|
r.setState((t) => ({ charts: {
|
|
3151
3152
|
...t.charts,
|
|
3152
3153
|
flow: {
|
|
@@ -3158,7 +3159,7 @@ function Vn(e = {}) {
|
|
|
3158
3159
|
displayConfig: e
|
|
3159
3160
|
}
|
|
3160
3161
|
} }));
|
|
3161
|
-
}, [r]), He =
|
|
3162
|
+
}, [r]), He = V((e) => {
|
|
3162
3163
|
r.setState((t) => ({ charts: {
|
|
3163
3164
|
...t.charts,
|
|
3164
3165
|
retention: {
|
|
@@ -3170,28 +3171,28 @@ function Vn(e = {}) {
|
|
|
3170
3171
|
displayConfig: e
|
|
3171
3172
|
}
|
|
3172
3173
|
} }));
|
|
3173
|
-
}, [r]), Ue = $((e) => e.activeTab), We = $((e) => e.activeView), Ge = $((e) => e.displayLimit), Ke = $((e) => e.showFieldModal), qe = $((e) => e.fieldModalMode), Je = $((e) => e.setActiveTab), Ye = $((e) => e.setActiveView), Xe = $((e) => e.setDisplayLimit), Ze = $((e) => e.closeFieldModal), [Qe, $e] =
|
|
3174
|
+
}, [r]), Ue = $((e) => e.activeTab), We = $((e) => e.activeView), Ge = $((e) => e.displayLimit), Ke = $((e) => e.showFieldModal), qe = $((e) => e.fieldModalMode), Je = $((e) => e.setActiveTab), Ye = $((e) => e.setActiveView), Xe = $((e) => e.setDisplayLimit), Ze = $((e) => e.closeFieldModal), [Qe, $e] = G(0), et = $((e) => e.openMetricsModal), tt = $((e) => e.addMetric), nt = $((e) => e.removeMetric), rt = $((e) => e.toggleMetric), it = $((e) => e.reorderMetrics), at = $((e) => e.openBreakdownsModal), ot = $((e) => e.addBreakdown), st = $((e) => e.removeBreakdown), ct = $((e) => e.toggleBreakdown), lt = $((e) => e.setBreakdownGranularity), ut = $((e) => e.toggleBreakdownComparison), dt = $((e) => e.reorderBreakdowns), ft = $((e) => e.setFilters), pt = $((e) => e.dropFieldToFilter), mt = $((e) => e.setOrder), ht = $((e) => e.setLimit), gt = $((e) => e.clearQuery), _t = $((e) => e.clearCurrentMode), vt = $((e) => e.setFunnelBindingKey), yt = $((e) => e.setAnalysisType), bt = $((e) => e.setFunnelCube), xt = $((e) => e.addFunnelStep), St = $((e) => e.removeFunnelStep), Ct = $((e) => e.updateFunnelStep), wt = $((e) => e.setActiveFunnelStepIndex), Tt = $((e) => e.reorderFunnelSteps), Et = $((e) => e.setFunnelTimeDimension), Ot = $((e) => e.setFlowCube), At = $((e) => e.setFlowBindingKey), jt = $((e) => e.setFlowTimeDimension), Mt = $((e) => e.setEventDimension), Nt = $((e) => e.setStartingStepName), Pt = $((e) => e.setStartingStepFilters), Ft = $((e) => e.setStepsBefore), It = $((e) => e.setStepsAfter), Lt = $((e) => e.setJoinStrategy), Rt = $((e) => e.setRetentionCube), zt = $((e) => e.setRetentionBindingKey), Bt = $((e) => e.setRetentionTimeDimension), Vt = $((e) => e.setRetentionDateRange), Ht = $((e) => e.setRetentionCohortFilters), Ut = $((e) => e.setRetentionActivityFilters), Wt = $((e) => e.setRetentionBreakdowns), X = $((e) => e.addRetentionBreakdown), Z = $((e) => e.removeRetentionBreakdown), Gt = $((e) => e.setRetentionViewGranularity), Kt = $((e) => e.setRetentionPeriods), Q = $((e) => e.setRetentionType), qt = $((e) => e.getValidation), Jt = U(() => qt(), [
|
|
3174
3175
|
qt,
|
|
3175
3176
|
i,
|
|
3176
3177
|
E,
|
|
3177
3178
|
k,
|
|
3178
3179
|
D,
|
|
3179
|
-
|
|
3180
|
-
re,
|
|
3181
|
-
ie,
|
|
3180
|
+
A,
|
|
3182
3181
|
ae,
|
|
3182
|
+
oe,
|
|
3183
|
+
N,
|
|
3184
|
+
P,
|
|
3185
|
+
se,
|
|
3183
3186
|
F,
|
|
3184
3187
|
I,
|
|
3185
|
-
L
|
|
3186
|
-
|
|
3187
|
-
oe
|
|
3188
|
-
]), Yt = H((e, t) => {
|
|
3188
|
+
L
|
|
3189
|
+
]), Yt = V((e, t) => {
|
|
3189
3190
|
E === "retention" && t === "dimension" ? X({ field: e.name }) : ct(e.name, t === "timeDimension");
|
|
3190
3191
|
}, [
|
|
3191
3192
|
E,
|
|
3192
3193
|
X,
|
|
3193
3194
|
ct
|
|
3194
|
-
]), Xt =
|
|
3195
|
+
]), Xt = V((e, t, n, r) => {
|
|
3195
3196
|
qe === "metrics" && t === "measure" ? rt(e.name) : qe === "breakdown" && Yt(e, t), r || Ze();
|
|
3196
3197
|
}, [
|
|
3197
3198
|
qe,
|
|
@@ -3201,13 +3202,13 @@ function Vn(e = {}) {
|
|
|
3201
3202
|
]);
|
|
3202
3203
|
return {
|
|
3203
3204
|
storeApi: r,
|
|
3204
|
-
queryState:
|
|
3205
|
+
queryState: h,
|
|
3205
3206
|
queryStates: i,
|
|
3206
3207
|
activeQueryIndex: a,
|
|
3207
3208
|
mergeStrategy: o,
|
|
3208
|
-
isMultiQueryMode:
|
|
3209
|
-
mergeKeys:
|
|
3210
|
-
currentQuery:
|
|
3209
|
+
isMultiQueryMode: g,
|
|
3210
|
+
mergeKeys: _,
|
|
3211
|
+
currentQuery: v,
|
|
3211
3212
|
allQueries: y,
|
|
3212
3213
|
multiQueryConfig: b,
|
|
3213
3214
|
multiQueryValidation: x,
|
|
@@ -3218,35 +3219,35 @@ function Vn(e = {}) {
|
|
|
3218
3219
|
effectiveBreakdowns: T,
|
|
3219
3220
|
analysisType: E,
|
|
3220
3221
|
funnelBindingKey: D,
|
|
3221
|
-
isFunnelModeEnabled:
|
|
3222
|
+
isFunnelModeEnabled: te,
|
|
3222
3223
|
funnelCube: O,
|
|
3223
3224
|
funnelSteps: k,
|
|
3224
|
-
activeFunnelStepIndex:
|
|
3225
|
-
funnelTimeDimension:
|
|
3226
|
-
funnelChartType:
|
|
3227
|
-
funnelChartConfig:
|
|
3228
|
-
funnelDisplayConfig:
|
|
3229
|
-
serverFunnelQuery:
|
|
3230
|
-
flowCube:
|
|
3231
|
-
flowBindingKey:
|
|
3232
|
-
flowTimeDimension:
|
|
3233
|
-
eventDimension:
|
|
3234
|
-
startingStep:
|
|
3235
|
-
stepsBefore:
|
|
3236
|
-
stepsAfter:
|
|
3237
|
-
joinStrategy:
|
|
3238
|
-
flowDisplayConfig:
|
|
3239
|
-
serverFlowQuery:
|
|
3240
|
-
retentionCube:
|
|
3241
|
-
retentionBindingKey:
|
|
3242
|
-
retentionTimeDimension:
|
|
3243
|
-
retentionDateRange:
|
|
3244
|
-
retentionCohortFilters:
|
|
3245
|
-
retentionActivityFilters:
|
|
3246
|
-
retentionBreakdowns:
|
|
3247
|
-
retentionViewGranularity:
|
|
3248
|
-
retentionPeriods:
|
|
3249
|
-
retentionType:
|
|
3225
|
+
activeFunnelStepIndex: ee,
|
|
3226
|
+
funnelTimeDimension: A,
|
|
3227
|
+
funnelChartType: ne,
|
|
3228
|
+
funnelChartConfig: re,
|
|
3229
|
+
funnelDisplayConfig: ie,
|
|
3230
|
+
serverFunnelQuery: de,
|
|
3231
|
+
flowCube: ae,
|
|
3232
|
+
flowBindingKey: oe,
|
|
3233
|
+
flowTimeDimension: N,
|
|
3234
|
+
eventDimension: P,
|
|
3235
|
+
startingStep: se,
|
|
3236
|
+
stepsBefore: F,
|
|
3237
|
+
stepsAfter: I,
|
|
3238
|
+
joinStrategy: L,
|
|
3239
|
+
flowDisplayConfig: le,
|
|
3240
|
+
serverFlowQuery: fe,
|
|
3241
|
+
retentionCube: pe,
|
|
3242
|
+
retentionBindingKey: me,
|
|
3243
|
+
retentionTimeDimension: he,
|
|
3244
|
+
retentionDateRange: B,
|
|
3245
|
+
retentionCohortFilters: ge,
|
|
3246
|
+
retentionActivityFilters: _e,
|
|
3247
|
+
retentionBreakdowns: ve,
|
|
3248
|
+
retentionViewGranularity: H,
|
|
3249
|
+
retentionPeriods: W,
|
|
3250
|
+
retentionType: K,
|
|
3250
3251
|
retentionDisplayConfig: ye,
|
|
3251
3252
|
serverRetentionQuery: be,
|
|
3252
3253
|
retentionValidation: xe,
|
|
@@ -3264,7 +3265,7 @@ function Vn(e = {}) {
|
|
|
3264
3265
|
fieldModalMode: qe,
|
|
3265
3266
|
activeTableIndex: Qe,
|
|
3266
3267
|
adapterValidation: Jt,
|
|
3267
|
-
getQueryConfig:
|
|
3268
|
+
getQueryConfig: V(() => {
|
|
3268
3269
|
let e = r.getState();
|
|
3269
3270
|
return e.analysisType === "funnel" ? e.buildFunnelQueryFromSteps() || e.buildCurrentQuery() : e.queryStates.length > 1 ? {
|
|
3270
3271
|
queries: e.buildAllQueries(),
|
|
@@ -3275,7 +3276,7 @@ function Vn(e = {}) {
|
|
|
3275
3276
|
stepTimeToConvert: e.stepTimeToConvert
|
|
3276
3277
|
} : e.buildCurrentQuery();
|
|
3277
3278
|
}, [r]),
|
|
3278
|
-
getChartConfig:
|
|
3279
|
+
getChartConfig: V(() => {
|
|
3279
3280
|
let e = r.getState(), t = e.charts[e.analysisType];
|
|
3280
3281
|
return t ? {
|
|
3281
3282
|
chartType: t.chartType,
|
|
@@ -3292,7 +3293,7 @@ function Vn(e = {}) {
|
|
|
3292
3293
|
we,
|
|
3293
3294
|
Y
|
|
3294
3295
|
]),
|
|
3295
|
-
getAnalysisType:
|
|
3296
|
+
getAnalysisType: V(() => r.getState().analysisType, [r]),
|
|
3296
3297
|
actions: {
|
|
3297
3298
|
setActiveQueryIndex: s,
|
|
3298
3299
|
setMergeStrategy: c,
|
|
@@ -3410,12 +3411,12 @@ function qn(e) {
|
|
|
3410
3411
|
//#endregion
|
|
3411
3412
|
//#region src/client/hooks/useAnalysisQuery.ts
|
|
3412
3413
|
function Jn(e) {
|
|
3413
|
-
let { currentQuery: t, allQueries: n, multiQueryConfig: r, isMultiQueryMode: i, isValidQuery: a, initialData: o, mergeStrategy: s, funnelBindingKey: c, isFunnelModeEnabled: l, analysisType: u, serverFunnelQuery: d, serverFlowQuery: f, serverRetentionQuery: p, retentionValidation: m } = e, { getFieldLabel: h } =
|
|
3414
|
+
let { currentQuery: t, allQueries: n, multiQueryConfig: r, isMultiQueryMode: i, isValidQuery: a, initialData: o, mergeStrategy: s, funnelBindingKey: c, isFunnelModeEnabled: l, analysisType: u, serverFunnelQuery: d, serverFlowQuery: f, serverRetentionQuery: p, retentionValidation: m } = e, { getFieldLabel: h } = de(), g = u === "funnel" || l, _ = u === "flow", v = u === "retention", y = u === "query" && i, b = u === "query" && !i, x = u === "funnel" && !!d, S = Hn({
|
|
3414
3415
|
isRetentionMode: v,
|
|
3415
3416
|
isFlowMode: _,
|
|
3416
3417
|
isFunnelMode: g,
|
|
3417
3418
|
isMultiMode: y
|
|
3418
|
-
}), C =
|
|
3419
|
+
}), C = U(() => x || !g || !c || n.length < 2 ? null : pe(n, c), [
|
|
3419
3420
|
x,
|
|
3420
3421
|
g,
|
|
3421
3422
|
c,
|
|
@@ -3432,46 +3433,46 @@ function Jn(e) {
|
|
|
3432
3433
|
hasServerFunnelQuery: !!d,
|
|
3433
3434
|
hasServerFlowQuery: !!f,
|
|
3434
3435
|
hasServerRetentionQuery: !!p
|
|
3435
|
-
}), T =
|
|
3436
|
+
}), T = oe(t, {
|
|
3436
3437
|
skip: w.single,
|
|
3437
3438
|
debounceMs: 300
|
|
3438
|
-
}), E =
|
|
3439
|
+
}), E = se(r, {
|
|
3439
3440
|
skip: w.multi,
|
|
3440
3441
|
debounceMs: 300
|
|
3441
|
-
}), D =
|
|
3442
|
+
}), D = L(C, {
|
|
3442
3443
|
skip: w.funnel,
|
|
3443
3444
|
debounceMs: 300,
|
|
3444
3445
|
prebuiltServerQuery: x ? d : void 0
|
|
3445
|
-
}), O =
|
|
3446
|
+
}), O = ue(f ?? null, {
|
|
3446
3447
|
skip: w.flow,
|
|
3447
3448
|
debounceMs: 300
|
|
3448
|
-
}), k =
|
|
3449
|
+
}), k = P(p ?? null, {
|
|
3449
3450
|
skip: w.retention,
|
|
3450
3451
|
debounceMs: 300,
|
|
3451
3452
|
getFieldLabel: h
|
|
3452
|
-
}),
|
|
3453
|
+
}), ee = fe({
|
|
3453
3454
|
queries: i ? n : [t],
|
|
3454
3455
|
isMultiQueryMode: i,
|
|
3455
3456
|
skip: w.dryRun
|
|
3456
|
-
}),
|
|
3457
|
+
}), A = z(D.serverQuery, { skip: !g || !D.serverQuery }), te = z(O.serverQuery, { skip: !_ || !O.serverQuery }), ne = z(p, { skip: !v || !p }), j = Un(S, {
|
|
3457
3458
|
retention: k.isLoading || k.isDebouncing,
|
|
3458
3459
|
flow: O.isLoading || O.isDebouncing,
|
|
3459
3460
|
funnel: D.isExecuting || D.isDebouncing,
|
|
3460
3461
|
multi: E.isLoading,
|
|
3461
3462
|
single: T.isLoading
|
|
3462
|
-
}),
|
|
3463
|
+
}), re = Un(S, {
|
|
3463
3464
|
retention: k.isFetching,
|
|
3464
3465
|
flow: O.isFetching,
|
|
3465
3466
|
funnel: D.isExecuting,
|
|
3466
3467
|
multi: E.isFetching,
|
|
3467
3468
|
single: T.isFetching
|
|
3468
|
-
}),
|
|
3469
|
+
}), M = Un(S, {
|
|
3469
3470
|
retention: k.error,
|
|
3470
3471
|
flow: O.error,
|
|
3471
3472
|
funnel: D.error,
|
|
3472
3473
|
multi: E.error,
|
|
3473
3474
|
single: T.error
|
|
3474
|
-
}),
|
|
3475
|
+
}), ie = !!(T.debouncedQuery || E.debouncedConfig || !D.isDebouncing || !O.isDebouncing || !k.isDebouncing), ae = V((e) => {
|
|
3475
3476
|
switch (S) {
|
|
3476
3477
|
case "retention":
|
|
3477
3478
|
k.execute(e);
|
|
@@ -3494,7 +3495,7 @@ function Jn(e) {
|
|
|
3494
3495
|
D,
|
|
3495
3496
|
E,
|
|
3496
3497
|
T
|
|
3497
|
-
]),
|
|
3498
|
+
]), N = U(() => Kn({
|
|
3498
3499
|
hasResults: Un(S, {
|
|
3499
3500
|
retention: k.chartData,
|
|
3500
3501
|
flow: O.data,
|
|
@@ -3504,14 +3505,14 @@ function Jn(e) {
|
|
|
3504
3505
|
}),
|
|
3505
3506
|
initialData: o,
|
|
3506
3507
|
isValidQuery: a,
|
|
3507
|
-
isLoading:
|
|
3508
|
-
isFetching:
|
|
3509
|
-
error:
|
|
3508
|
+
isLoading: j,
|
|
3509
|
+
isFetching: re,
|
|
3510
|
+
error: M
|
|
3510
3511
|
}), [
|
|
3511
3512
|
a,
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3513
|
+
j,
|
|
3514
|
+
re,
|
|
3515
|
+
M,
|
|
3515
3516
|
T.rawData,
|
|
3516
3517
|
E.data,
|
|
3517
3518
|
D.chartData,
|
|
@@ -3519,7 +3520,7 @@ function Jn(e) {
|
|
|
3519
3520
|
k.chartData,
|
|
3520
3521
|
o,
|
|
3521
3522
|
S
|
|
3522
|
-
]),
|
|
3523
|
+
]), F = U(() => qn({
|
|
3523
3524
|
isRetentionMode: v,
|
|
3524
3525
|
isFlowMode: _,
|
|
3525
3526
|
isFunnelMode: g,
|
|
@@ -3541,25 +3542,25 @@ function Jn(e) {
|
|
|
3541
3542
|
g,
|
|
3542
3543
|
_,
|
|
3543
3544
|
v
|
|
3544
|
-
]),
|
|
3545
|
+
]), I = U(() => g && D.stepResults ? D.stepResults.map((e) => e.data) : !y || !E.perQueryData ? null : E.perQueryData, [
|
|
3545
3546
|
y,
|
|
3546
3547
|
g,
|
|
3547
3548
|
E.perQueryData,
|
|
3548
3549
|
D.stepResults
|
|
3549
|
-
]), { funnelExecutedQueries:
|
|
3550
|
+
]), { funnelExecutedQueries: ce, funnelServerQuery: le, funnelDebugData: R, flowServerQuery: me, flowChartData: he, flowDebugData: B, retentionServerQuery: ge, retentionChartData: _e, retentionDebugData: ve } = Wn({
|
|
3550
3551
|
isFunnelMode: g,
|
|
3551
3552
|
isFlowMode: _,
|
|
3552
3553
|
isRetentionMode: v,
|
|
3553
3554
|
funnelExecutedQueries: D.executedQueries,
|
|
3554
3555
|
funnelServerQuery: D.serverQuery,
|
|
3555
|
-
funnelDebugData:
|
|
3556
|
+
funnelDebugData: A.debugData,
|
|
3556
3557
|
flowServerQuery: O.serverQuery,
|
|
3557
3558
|
flowData: O.data,
|
|
3558
|
-
flowDebugData:
|
|
3559
|
+
flowDebugData: te.debugData,
|
|
3559
3560
|
retentionServerQuery: p ?? null,
|
|
3560
3561
|
retentionChartData: k.chartData,
|
|
3561
|
-
retentionDebugData:
|
|
3562
|
-
}),
|
|
3562
|
+
retentionDebugData: ne.debugData
|
|
3563
|
+
}), H = U(() => Un(S, {
|
|
3563
3564
|
retention: k.needsRefresh,
|
|
3564
3565
|
flow: O.needsRefresh,
|
|
3565
3566
|
funnel: D.needsRefresh,
|
|
@@ -3571,45 +3572,46 @@ function Jn(e) {
|
|
|
3571
3572
|
O.needsRefresh,
|
|
3572
3573
|
D.needsRefresh,
|
|
3573
3574
|
T.needsRefresh
|
|
3574
|
-
]),
|
|
3575
|
+
]), W = U(() => {
|
|
3575
3576
|
if (b && T.warnings) return T.warnings;
|
|
3576
3577
|
}, [b, T.warnings]);
|
|
3577
3578
|
return {
|
|
3578
|
-
executionStatus:
|
|
3579
|
-
executionResults:
|
|
3580
|
-
perQueryResults:
|
|
3581
|
-
isLoading:
|
|
3582
|
-
isFetching:
|
|
3583
|
-
error:
|
|
3584
|
-
debugDataPerQuery:
|
|
3585
|
-
hasDebounced:
|
|
3586
|
-
refetch:
|
|
3587
|
-
funnelExecutedQueries:
|
|
3579
|
+
executionStatus: N,
|
|
3580
|
+
executionResults: F,
|
|
3581
|
+
perQueryResults: I,
|
|
3582
|
+
isLoading: j,
|
|
3583
|
+
isFetching: re,
|
|
3584
|
+
error: M,
|
|
3585
|
+
debugDataPerQuery: ee.debugDataPerQuery,
|
|
3586
|
+
hasDebounced: ie,
|
|
3587
|
+
refetch: ae,
|
|
3588
|
+
funnelExecutedQueries: ce,
|
|
3588
3589
|
funnelServerQuery: le,
|
|
3589
|
-
funnelDebugData:
|
|
3590
|
-
flowServerQuery:
|
|
3591
|
-
flowChartData:
|
|
3592
|
-
flowDebugData:
|
|
3593
|
-
retentionServerQuery:
|
|
3594
|
-
retentionChartData:
|
|
3595
|
-
retentionDebugData:
|
|
3590
|
+
funnelDebugData: R,
|
|
3591
|
+
flowServerQuery: me,
|
|
3592
|
+
flowChartData: he,
|
|
3593
|
+
flowDebugData: B,
|
|
3594
|
+
retentionServerQuery: ge,
|
|
3595
|
+
retentionChartData: _e,
|
|
3596
|
+
retentionDebugData: ve,
|
|
3596
3597
|
retentionValidation: m ?? null,
|
|
3597
|
-
needsRefresh:
|
|
3598
|
-
warnings:
|
|
3598
|
+
needsRefresh: H,
|
|
3599
|
+
warnings: W
|
|
3599
3600
|
};
|
|
3600
3601
|
}
|
|
3601
3602
|
//#endregion
|
|
3602
3603
|
//#region src/client/utils/shareUtils.ts
|
|
3603
3604
|
var Yn = o(), Xn = 1800, Zn = "share=";
|
|
3604
3605
|
function Qn(e) {
|
|
3605
|
-
|
|
3606
|
+
let t = JSON.stringify(e);
|
|
3607
|
+
return (0, Yn.compressToEncodedURIComponent)(t);
|
|
3606
3608
|
}
|
|
3607
3609
|
function $n(e) {
|
|
3608
3610
|
try {
|
|
3609
3611
|
let t = (0, Yn.decompressFromEncodedURIComponent)(e);
|
|
3610
3612
|
if (!t) return null;
|
|
3611
3613
|
let n = JSON.parse(t);
|
|
3612
|
-
return
|
|
3614
|
+
return D(n) ? n : (console.warn("[shareUtils] Invalid AnalysisConfig in share URL"), null);
|
|
3613
3615
|
} catch {
|
|
3614
3616
|
return null;
|
|
3615
3617
|
}
|
|
@@ -3702,19 +3704,19 @@ function cr(e) {
|
|
|
3702
3704
|
return typeof e == "object" && !!e && "funnel" in e && typeof e.funnel == "object";
|
|
3703
3705
|
}
|
|
3704
3706
|
function lr(e) {
|
|
3705
|
-
let { state: t, query: n, aiEndpoint: r = "/api/ai", onQueryChange: i, onChartConfigChange: a } = e, { storeApi: o, actions: s } = t, { apiOptions: c } = u(), l =
|
|
3706
|
-
|
|
3707
|
+
let { state: t, query: n, aiEndpoint: r = "/api/ai", onQueryChange: i, onChartConfigChange: a } = e, { storeApi: o, actions: s } = t, { apiOptions: c } = u(), l = W(!1);
|
|
3708
|
+
H(() => {
|
|
3707
3709
|
if (l.current) return;
|
|
3708
3710
|
l.current = !0;
|
|
3709
3711
|
let e = ar();
|
|
3710
3712
|
e && (o.getState().load(e), ir());
|
|
3711
|
-
}, [o]),
|
|
3713
|
+
}, [o]), H(() => {
|
|
3712
3714
|
i && t.isValidQuery && i(t.currentQuery);
|
|
3713
3715
|
}, [
|
|
3714
3716
|
t.currentQuery,
|
|
3715
3717
|
t.isValidQuery,
|
|
3716
3718
|
i
|
|
3717
|
-
]),
|
|
3719
|
+
]), H(() => {
|
|
3718
3720
|
a && a({
|
|
3719
3721
|
chartType: t.chartType,
|
|
3720
3722
|
chartConfig: t.chartConfig,
|
|
@@ -3726,46 +3728,46 @@ function lr(e) {
|
|
|
3726
3728
|
t.displayConfig,
|
|
3727
3729
|
a
|
|
3728
3730
|
]);
|
|
3729
|
-
let { combinedMetrics:
|
|
3730
|
-
|
|
3731
|
-
if (!
|
|
3731
|
+
let { combinedMetrics: f, combinedBreakdowns: m, chartType: h, chartConfig: g, userManuallySelectedChart: _ } = t, { hasDebounced: v } = n, { setChartType: y, setChartConfig: b } = s, x = W("");
|
|
3732
|
+
H(() => {
|
|
3733
|
+
if (!v || f.length === 0 && m.length === 0) return;
|
|
3732
3734
|
let e = JSON.stringify({
|
|
3733
|
-
metrics:
|
|
3734
|
-
breakdowns:
|
|
3735
|
+
metrics: f.map((e) => e.field),
|
|
3736
|
+
breakdowns: m.map((e) => ({
|
|
3735
3737
|
field: e.field,
|
|
3736
3738
|
isTime: e.isTimeDimension
|
|
3737
3739
|
}))
|
|
3738
3740
|
});
|
|
3739
|
-
if (e ===
|
|
3740
|
-
|
|
3741
|
-
let t = jt(
|
|
3741
|
+
if (e === x.current) return;
|
|
3742
|
+
x.current = e;
|
|
3743
|
+
let t = jt(f, m, h, _);
|
|
3742
3744
|
if (t) {
|
|
3743
|
-
let { chartConfig: e } = kt(
|
|
3744
|
-
|
|
3745
|
-
} else if (
|
|
3746
|
-
if (
|
|
3747
|
-
let e = [...
|
|
3748
|
-
n.length > 0 &&
|
|
3749
|
-
...
|
|
3745
|
+
let { chartConfig: e } = kt(f, m, t);
|
|
3746
|
+
y(t), b(e), s.setUserManuallySelectedChart(!1);
|
|
3747
|
+
} else if (f.length > 0 || m.length > 0) {
|
|
3748
|
+
if (h === "table") {
|
|
3749
|
+
let e = [...m.map((e) => e.field), ...f.map((e) => e.field)], t = Array.isArray(g.xAxis) ? g.xAxis : [], n = e.filter((e) => !t.includes(e));
|
|
3750
|
+
n.length > 0 && b({
|
|
3751
|
+
...g,
|
|
3750
3752
|
xAxis: [...t, ...n]
|
|
3751
3753
|
});
|
|
3752
|
-
} else if (!
|
|
3753
|
-
let { chartConfig: e } = kt(
|
|
3754
|
-
|
|
3754
|
+
} else if (!g.xAxis?.length && !g.yAxis?.length && !g.series?.length) {
|
|
3755
|
+
let { chartConfig: e } = kt(f, m, h);
|
|
3756
|
+
b(e);
|
|
3755
3757
|
}
|
|
3756
3758
|
}
|
|
3757
3759
|
}, [
|
|
3758
|
-
|
|
3759
|
-
d,
|
|
3760
|
+
v,
|
|
3760
3761
|
f,
|
|
3761
|
-
p,
|
|
3762
|
-
h,
|
|
3763
3762
|
m,
|
|
3763
|
+
h,
|
|
3764
3764
|
_,
|
|
3765
|
-
|
|
3765
|
+
g,
|
|
3766
|
+
y,
|
|
3767
|
+
b,
|
|
3766
3768
|
s
|
|
3767
3769
|
]);
|
|
3768
|
-
let [
|
|
3770
|
+
let [S, C] = G({
|
|
3769
3771
|
isOpen: !1,
|
|
3770
3772
|
userPrompt: "",
|
|
3771
3773
|
isGenerating: !1,
|
|
@@ -3773,7 +3775,7 @@ function lr(e) {
|
|
|
3773
3775
|
hasGeneratedQuery: !1,
|
|
3774
3776
|
previousState: null,
|
|
3775
3777
|
previousConfig: null
|
|
3776
|
-
}),
|
|
3778
|
+
}), w = V((e) => {
|
|
3777
3779
|
o.getState().updateQueryState(t.activeQueryIndex, (t) => {
|
|
3778
3780
|
let n = e(t);
|
|
3779
3781
|
return {
|
|
@@ -3785,7 +3787,7 @@ function lr(e) {
|
|
|
3785
3787
|
limit: n.limit
|
|
3786
3788
|
};
|
|
3787
3789
|
});
|
|
3788
|
-
}, [o, t.activeQueryIndex]),
|
|
3790
|
+
}, [o, t.activeQueryIndex]), T = V((e) => {
|
|
3789
3791
|
let t = {
|
|
3790
3792
|
version: 1,
|
|
3791
3793
|
analysisType: "funnel",
|
|
@@ -3798,9 +3800,9 @@ function lr(e) {
|
|
|
3798
3800
|
query: e
|
|
3799
3801
|
};
|
|
3800
3802
|
o.getState().load(t);
|
|
3801
|
-
}, [o]),
|
|
3803
|
+
}, [o]), E = V(() => {
|
|
3802
3804
|
let e = o.getState().save();
|
|
3803
|
-
|
|
3805
|
+
C({
|
|
3804
3806
|
isOpen: !0,
|
|
3805
3807
|
userPrompt: "",
|
|
3806
3808
|
isGenerating: !1,
|
|
@@ -3826,30 +3828,30 @@ function lr(e) {
|
|
|
3826
3828
|
t.chartConfig,
|
|
3827
3829
|
t.displayConfig,
|
|
3828
3830
|
t.analysisType
|
|
3829
|
-
]),
|
|
3830
|
-
|
|
3831
|
+
]), D = V(() => {
|
|
3832
|
+
C((e) => ({
|
|
3831
3833
|
...e,
|
|
3832
3834
|
isOpen: !1,
|
|
3833
3835
|
userPrompt: "",
|
|
3834
3836
|
error: null,
|
|
3835
3837
|
hasGeneratedQuery: !1
|
|
3836
3838
|
}));
|
|
3837
|
-
}, []),
|
|
3838
|
-
|
|
3839
|
+
}, []), O = V((e) => {
|
|
3840
|
+
C((t) => ({
|
|
3839
3841
|
...t,
|
|
3840
3842
|
userPrompt: e
|
|
3841
3843
|
}));
|
|
3842
|
-
}, []),
|
|
3843
|
-
if (
|
|
3844
|
-
|
|
3844
|
+
}, []), k = V(async () => {
|
|
3845
|
+
if (S.userPrompt.trim()) {
|
|
3846
|
+
C((e) => ({
|
|
3845
3847
|
...e,
|
|
3846
3848
|
isGenerating: !0,
|
|
3847
3849
|
error: null
|
|
3848
3850
|
}));
|
|
3849
3851
|
try {
|
|
3850
|
-
let e = sr(await or("",
|
|
3852
|
+
let e = sr(await or("", S.userPrompt, r, c?.headers)), n = JSON.parse(e), i = "query" in n && n.query ? n.query : n, a = "chartType" in n ? n.chartType : void 0, o = "chartConfig" in n ? n.chartConfig : void 0;
|
|
3851
3853
|
if (cr(i)) {
|
|
3852
|
-
s.setAnalysisType("funnel"),
|
|
3854
|
+
s.setAnalysisType("funnel"), T(i), s.setChartType("funnel"), o && s.setChartConfig(o), s.setActiveView("chart"), C((e) => ({
|
|
3853
3855
|
...e,
|
|
3854
3856
|
isGenerating: !1,
|
|
3855
3857
|
hasGeneratedQuery: !0
|
|
@@ -3857,19 +3859,19 @@ function lr(e) {
|
|
|
3857
3859
|
return;
|
|
3858
3860
|
}
|
|
3859
3861
|
let l = i;
|
|
3860
|
-
|
|
3862
|
+
w((e) => ({
|
|
3861
3863
|
...e,
|
|
3862
3864
|
metrics: (l.measures || []).map((e, t) => ({
|
|
3863
|
-
id:
|
|
3865
|
+
id: p(),
|
|
3864
3866
|
field: e,
|
|
3865
|
-
label:
|
|
3867
|
+
label: d(t)
|
|
3866
3868
|
})),
|
|
3867
3869
|
breakdowns: [...(l.dimensions || []).map((e) => ({
|
|
3868
|
-
id:
|
|
3870
|
+
id: p(),
|
|
3869
3871
|
field: e,
|
|
3870
3872
|
isTimeDimension: !1
|
|
3871
3873
|
})), ...(l.timeDimensions || []).map((e) => ({
|
|
3872
|
-
id:
|
|
3874
|
+
id: p(),
|
|
3873
3875
|
field: e.dimension,
|
|
3874
3876
|
granularity: e.granularity,
|
|
3875
3877
|
isTimeDimension: !0
|
|
@@ -3877,13 +3879,13 @@ function lr(e) {
|
|
|
3877
3879
|
filters: l.filters || [],
|
|
3878
3880
|
order: l.order || void 0,
|
|
3879
3881
|
limit: l.limit ?? void 0
|
|
3880
|
-
})), t.analysisType === "funnel" && s.setAnalysisType("query"), a && s.setChartType(a), o && s.setChartConfig(o), s.setActiveView("chart"),
|
|
3882
|
+
})), t.analysisType === "funnel" && s.setAnalysisType("query"), a && s.setChartType(a), o && s.setChartConfig(o), s.setActiveView("chart"), C((e) => ({
|
|
3881
3883
|
...e,
|
|
3882
3884
|
isGenerating: !1,
|
|
3883
3885
|
hasGeneratedQuery: !0
|
|
3884
3886
|
}));
|
|
3885
3887
|
} catch (e) {
|
|
3886
|
-
|
|
3888
|
+
C((t) => ({
|
|
3887
3889
|
...t,
|
|
3888
3890
|
isGenerating: !1,
|
|
3889
3891
|
error: e instanceof Error ? e.message : "Failed to generate query"
|
|
@@ -3891,15 +3893,15 @@ function lr(e) {
|
|
|
3891
3893
|
}
|
|
3892
3894
|
}
|
|
3893
3895
|
}, [
|
|
3894
|
-
|
|
3896
|
+
S.userPrompt,
|
|
3895
3897
|
r,
|
|
3896
3898
|
c?.headers,
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
+
w,
|
|
3900
|
+
T,
|
|
3899
3901
|
t.analysisType,
|
|
3900
3902
|
s
|
|
3901
|
-
]),
|
|
3902
|
-
|
|
3903
|
+
]), ee = V(() => {
|
|
3904
|
+
C({
|
|
3903
3905
|
isOpen: !1,
|
|
3904
3906
|
userPrompt: "",
|
|
3905
3907
|
isGenerating: !1,
|
|
@@ -3908,13 +3910,13 @@ function lr(e) {
|
|
|
3908
3910
|
previousState: null,
|
|
3909
3911
|
previousConfig: null
|
|
3910
3912
|
});
|
|
3911
|
-
}, []),
|
|
3912
|
-
|
|
3913
|
+
}, []), A = V(() => {
|
|
3914
|
+
S.previousConfig ? o.getState().load(S.previousConfig) : S.previousState && (w((e) => ({
|
|
3913
3915
|
...e,
|
|
3914
|
-
metrics:
|
|
3915
|
-
breakdowns:
|
|
3916
|
-
filters:
|
|
3917
|
-
})), s.setChartType(
|
|
3916
|
+
metrics: S.previousState.metrics,
|
|
3917
|
+
breakdowns: S.previousState.breakdowns,
|
|
3918
|
+
filters: S.previousState.filters
|
|
3919
|
+
})), s.setChartType(S.previousState.chartType), s.setChartConfig(S.previousState.chartConfig), s.setDisplayConfig(S.previousState.displayConfig), S.previousState.analysisType && s.setAnalysisType(S.previousState.analysisType)), C({
|
|
3918
3920
|
isOpen: !1,
|
|
3919
3921
|
userPrompt: "",
|
|
3920
3922
|
isGenerating: !1,
|
|
@@ -3924,23 +3926,23 @@ function lr(e) {
|
|
|
3924
3926
|
previousConfig: null
|
|
3925
3927
|
});
|
|
3926
3928
|
}, [
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
+
S.previousState,
|
|
3930
|
+
S.previousConfig,
|
|
3929
3931
|
o,
|
|
3930
|
-
|
|
3932
|
+
w,
|
|
3931
3933
|
s
|
|
3932
|
-
]), [
|
|
3934
|
+
]), [te, ne] = G("idle"), j = t.effectiveIsValidQuery;
|
|
3933
3935
|
return {
|
|
3934
|
-
aiState:
|
|
3935
|
-
openAI:
|
|
3936
|
-
closeAI:
|
|
3937
|
-
setAIPrompt:
|
|
3938
|
-
generateAI:
|
|
3939
|
-
acceptAI:
|
|
3940
|
-
cancelAI:
|
|
3941
|
-
shareButtonState:
|
|
3942
|
-
share:
|
|
3943
|
-
if (!
|
|
3936
|
+
aiState: S,
|
|
3937
|
+
openAI: E,
|
|
3938
|
+
closeAI: D,
|
|
3939
|
+
setAIPrompt: O,
|
|
3940
|
+
generateAI: k,
|
|
3941
|
+
acceptAI: ee,
|
|
3942
|
+
cancelAI: A,
|
|
3943
|
+
shareButtonState: te,
|
|
3944
|
+
share: V(async () => {
|
|
3945
|
+
if (!j) return;
|
|
3944
3946
|
let { encoded: e, queryOnly: t } = tr(o.getState().save());
|
|
3945
3947
|
if (!e) return;
|
|
3946
3948
|
let n = `${window.location.origin}${window.location.pathname}#share=${e}`;
|
|
@@ -3950,11 +3952,11 @@ function lr(e) {
|
|
|
3950
3952
|
let e = document.createElement("textarea");
|
|
3951
3953
|
e.value = n, document.body.appendChild(e), e.select(), document.execCommand("copy"), document.body.removeChild(e);
|
|
3952
3954
|
}
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
+
ne(t ? "copied-no-chart" : "copied"), setTimeout(() => {
|
|
3956
|
+
ne("idle");
|
|
3955
3957
|
}, 2e3);
|
|
3956
|
-
}, [
|
|
3957
|
-
canShare:
|
|
3958
|
+
}, [j, o]),
|
|
3959
|
+
canShare: j
|
|
3958
3960
|
};
|
|
3959
3961
|
}
|
|
3960
3962
|
//#endregion
|
|
@@ -4188,7 +4190,7 @@ function fr(e) {
|
|
|
4188
4190
|
}
|
|
4189
4191
|
function pr(e, t) {
|
|
4190
4192
|
if (typeof e.dimension == "string") return !0;
|
|
4191
|
-
let n =
|
|
4193
|
+
let n = me(t);
|
|
4192
4194
|
return n ? e.dimension.some((e) => e.cube === n) : !1;
|
|
4193
4195
|
}
|
|
4194
4196
|
function mr(e, t) {
|
|
@@ -4196,7 +4198,7 @@ function mr(e, t) {
|
|
|
4196
4198
|
for (let r = 0; r < t.length; r++) {
|
|
4197
4199
|
let i = t[r];
|
|
4198
4200
|
if (!pr(e, i.query)) {
|
|
4199
|
-
let e =
|
|
4201
|
+
let e = me(i.query) || "unknown";
|
|
4200
4202
|
n.push({
|
|
4201
4203
|
type: "cross_cube",
|
|
4202
4204
|
message: `Step ${r + 1} uses cube "${e}" but no binding key mapping exists for it`,
|
|
@@ -4266,4 +4268,4 @@ function yr(e) {
|
|
|
4266
4268
|
//#endregion
|
|
4267
4269
|
export { On as A, Tn as C, An as D, En as E, Ye as F, Sn as M, It as N, wn as O, it as P, xn as S, Cn as T, Bn as _, mr as a, In as b, ur as c, nr as d, er as f, Pn as g, Fn as h, dr as i, $ as j, kn as k, Qn as l, ar as m, yr as n, gr as o, rr as p, _r as r, fr as s, vr as t, $n as u, Rn as v, Dn as w, Mn as x, Nn as y };
|
|
4268
4270
|
|
|
4269
|
-
//# sourceMappingURL=analysis-builder-shared-
|
|
4271
|
+
//# sourceMappingURL=analysis-builder-shared-l-4WKVS1.js.map
|