drizzle-cube 0.5.8 → 0.6.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 +2 -0
- package/dist/adapters/adapters/hono/agent-handler.d.ts +9 -0
- package/dist/adapters/adapters/hono/mcp-handler.d.ts +37 -0
- package/dist/adapters/adapters/mcp-tools-handlers.d.ts +18 -0
- package/dist/adapters/adapters/nextjs/mcp-handler.d.ts +36 -0
- package/dist/adapters/adapters/utils.d.ts +6 -81
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +50 -50
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +78 -78
- package/dist/adapters/google-BOnRIN1w.cjs +2 -0
- package/dist/adapters/{google-CFYljAOF.js → google-CvKM9yVM.js} +83 -71
- package/dist/adapters/{handler-Cx8QYLk6.js → handler-CfgE0JSL.js} +499 -576
- package/dist/adapters/handler-Cn0dOctE.cjs +25 -0
- package/dist/adapters/hono/index.cjs +2 -2
- package/dist/adapters/hono/index.js +205 -175
- package/dist/adapters/locale-DDvZDFVn.js +8114 -0
- package/dist/adapters/locale-ZLUUNUxr.cjs +166 -0
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +49 -38
- package/dist/adapters/mcp-transport-Chiaj4ll.cjs +40 -0
- package/dist/adapters/mcp-transport-H96VG3WY.js +591 -0
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +190 -197
- package/dist/adapters/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
- package/dist/adapters/openai-vXvLni8v.cjs +1 -0
- package/dist/adapters/{utils-D9JPLmfl.js → utils-BPWZsX7k.js} +1271 -1218
- package/dist/adapters/utils-_whV4fXL.cjs +128 -0
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +2 -2
- package/dist/client/charts/ChartLoader.d.ts +2 -16
- package/dist/client/charts/chartComponentRegistry.d.ts +46 -0
- package/dist/client/charts/chartConfigHelpers.d.ts +38 -0
- package/dist/client/charts.js +14 -13
- package/dist/client/chunks/{DashboardEditModal-CjCIAT-J.js → DashboardEditModal-okVfH8ZK.js} +5296 -4544
- package/dist/client/chunks/DashboardEditModal-okVfH8ZK.js.map +1 -0
- package/dist/client/chunks/{RetentionCombinedChart-BPkfcTa8.js → RetentionCombinedChart-BgbDhsPz.js} +10 -10
- package/dist/client/chunks/{RetentionCombinedChart-BPkfcTa8.js.map → RetentionCombinedChart-BgbDhsPz.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-DGzLzr7h.js → RetentionHeatmap-DjXZaTPq.js} +5 -5
- package/dist/client/chunks/{RetentionHeatmap-DGzLzr7h.js.map → RetentionHeatmap-DjXZaTPq.js.map} +1 -1
- package/dist/client/chunks/analysis-builder-DB88FojM.js +5674 -0
- package/dist/client/chunks/analysis-builder-DB88FojM.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-shared-CYVwSPqt.js → analysis-builder-shared-BVK4TYfR.js} +1578 -1292
- package/dist/client/chunks/analysis-builder-shared-BVK4TYfR.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-DmruKPab.js → chart-activity-grid-DX0SJbxs.js} +635 -492
- package/dist/client/chunks/chart-activity-grid-DX0SJbxs.js.map +1 -0
- package/dist/client/chunks/chart-area-of01_62R.js +775 -0
- package/dist/client/chunks/chart-area-of01_62R.js.map +1 -0
- package/dist/client/chunks/chart-bar-BqelQE_I.js +194 -0
- package/dist/client/chunks/chart-bar-BqelQE_I.js.map +1 -0
- package/dist/client/chunks/{chart-box-plot-DYKfyOI8.js → chart-box-plot-kkBixZ27.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-DYKfyOI8.js.map → chart-box-plot-kkBixZ27.js.map} +1 -1
- package/dist/client/chunks/chart-bubble-B2he1--4.js +221 -0
- package/dist/client/chunks/chart-bubble-B2he1--4.js.map +1 -0
- package/dist/client/chunks/{chart-candlestick-Dwc92Mrj.js → chart-candlestick-DZp19Tzh.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-Dwc92Mrj.js.map → chart-candlestick-DZp19Tzh.js.map} +1 -1
- package/dist/client/chunks/chart-config-area-BNigHUy8.js +124 -0
- package/dist/client/chunks/chart-config-area-BNigHUy8.js.map +1 -0
- package/dist/client/chunks/chart-config-bar-DSO_LRTx.js +54 -0
- package/dist/client/chunks/chart-config-bar-DSO_LRTx.js.map +1 -0
- package/dist/client/chunks/{chart-config-box-plot-DJ-dWWXA.js → chart-config-box-plot-oW8axV2q.js} +5 -10
- package/dist/client/chunks/chart-config-box-plot-oW8axV2q.js.map +1 -0
- package/dist/client/chunks/{chart-config-gauge-DSwC04l0.js → chart-config-gauge-Dq-_H9UN.js} +5 -7
- package/dist/client/chunks/chart-config-gauge-Dq-_H9UN.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-delta-D6BIkHL3.js → chart-config-kpi-delta-DSQbvqu_.js} +5 -10
- package/dist/client/chunks/chart-config-kpi-delta-DSQbvqu_.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-number-Bx-V9a62.js → chart-config-kpi-number-EFSWY1We.js} +5 -7
- package/dist/client/chunks/chart-config-kpi-number-EFSWY1We.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-text-CcqC1u-8.js → chart-config-kpi-text-KM3V5X2u.js} +5 -7
- package/dist/client/chunks/chart-config-kpi-text-KM3V5X2u.js.map +1 -0
- package/dist/client/chunks/{chart-config-line-Db3jDsWc.js → chart-config-line-D6jG8PCH.js} +9 -36
- package/dist/client/chunks/chart-config-line-D6jG8PCH.js.map +1 -0
- package/dist/client/chunks/{chart-config-pie-DD4SmRTF.js → chart-config-pie-BhzW-fdn.js} +6 -16
- package/dist/client/chunks/chart-config-pie-BhzW-fdn.js.map +1 -0
- package/dist/client/chunks/{chart-config-radar-CC2XAaGr.js → chart-config-radar-D7REP1q_.js} +6 -16
- package/dist/client/chunks/chart-config-radar-D7REP1q_.js.map +1 -0
- package/dist/client/chunks/{chart-config-radial-bar-DmxKx1R0.js → chart-config-radial-bar-Byx6qOPU.js} +6 -16
- package/dist/client/chunks/chart-config-radial-bar-Byx6qOPU.js.map +1 -0
- package/dist/client/chunks/{chart-config-tree-map-BI-oQStO.js → chart-config-tree-map-DVrvf3yQ.js} +6 -16
- package/dist/client/chunks/chart-config-tree-map-DVrvf3yQ.js.map +1 -0
- package/dist/client/chunks/{chart-config-waterfall-DSnyixbI.js → chart-config-waterfall-DmFeQdIk.js} +5 -10
- package/dist/client/chunks/chart-config-waterfall-DmFeQdIk.js.map +1 -0
- package/dist/client/chunks/{chart-data-table-BO4sXsim.js → chart-data-table-CKauQXme.js} +1046 -1121
- package/dist/client/chunks/chart-data-table-CKauQXme.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-DnWRsmnS.js → chart-funnel-CToKSBaL.js} +184 -222
- package/dist/client/chunks/chart-funnel-CToKSBaL.js.map +1 -0
- package/dist/client/chunks/chart-gauge-DTVezSk7.js +403 -0
- package/dist/client/chunks/chart-gauge-DTVezSk7.js.map +1 -0
- package/dist/client/chunks/chart-heat-map-DTuUl0BR.js +236 -0
- package/dist/client/chunks/chart-heat-map-DTuUl0BR.js.map +1 -0
- package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js +408 -0
- package/dist/client/chunks/chart-kpi-delta-Dn-jjO-2.js.map +1 -0
- package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js +244 -0
- package/dist/client/chunks/chart-kpi-number-P_WBiO5S.js.map +1 -0
- package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js +185 -0
- package/dist/client/chunks/chart-kpi-text-C-Y4eb5H.js.map +1 -0
- package/dist/client/chunks/chart-line-DKgrQA6c.js +101 -0
- package/dist/client/chunks/chart-line-DKgrQA6c.js.map +1 -0
- package/dist/client/chunks/{chart-markdown-dgUetjyM.js → chart-markdown-CV75S_zL.js} +2 -2
- package/dist/client/chunks/{chart-markdown-dgUetjyM.js.map → chart-markdown-CV75S_zL.js.map} +1 -1
- package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js → chart-measure-profile-Ket8fJyf.js} +7 -7
- package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js.map → chart-measure-profile-Ket8fJyf.js.map} +1 -1
- package/dist/client/chunks/chart-pie-ByieAX5H.js +119 -0
- package/dist/client/chunks/chart-pie-ByieAX5H.js.map +1 -0
- package/dist/client/chunks/chart-radar-CiSwHWp4.js +138 -0
- package/dist/client/chunks/chart-radar-CiSwHWp4.js.map +1 -0
- package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js +122 -0
- package/dist/client/chunks/chart-radial-bar-BF6Mhl6f.js.map +1 -0
- package/dist/client/chunks/{chart-sankey-M3XpO_ah.js → chart-sankey-DjrvKw6K.js} +36 -39
- package/dist/client/chunks/{chart-sankey-M3XpO_ah.js.map → chart-sankey-DjrvKw6K.js.map} +1 -1
- package/dist/client/chunks/chart-scatter-Dd9WFqnS.js +258 -0
- package/dist/client/chunks/chart-scatter-Dd9WFqnS.js.map +1 -0
- package/dist/client/chunks/{chart-sunburst-A_u6lqlS.js → chart-sunburst-leGpuDj7.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-A_u6lqlS.js.map → chart-sunburst-leGpuDj7.js.map} +1 -1
- package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js +323 -0
- package/dist/client/chunks/chart-tree-map-Ceq5sLZA.js.map +1 -0
- package/dist/client/chunks/{chart-waterfall-BuhMoagf.js → chart-waterfall-DyvQReN5.js} +7 -7
- package/dist/client/chunks/{chart-waterfall-BuhMoagf.js.map → chart-waterfall-DyvQReN5.js.map} +1 -1
- package/dist/client/chunks/{charts-core-jRtb0S2M.js → charts-core-DaXSt1Dd.js} +2 -2
- package/dist/client/chunks/{charts-core-jRtb0S2M.js.map → charts-core-DaXSt1Dd.js.map} +1 -1
- package/dist/client/chunks/charts-loader-DdTeCeNo.js +84 -0
- package/dist/client/chunks/charts-loader-DdTeCeNo.js.map +1 -0
- package/dist/client/chunks/{nl-NL-CpVs7ox3.js → nl-NL-2zTAWTej.js} +2 -1
- package/dist/client/chunks/{nl-NL-CpVs7ox3.js.map → nl-NL-2zTAWTej.js.map} +1 -1
- package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
- package/dist/client/chunks/{schema-visualization-DE09kQE3.js → schema-visualization-Cb_E9_Gd.js} +12 -12
- package/dist/client/chunks/{schema-visualization-DE09kQE3.js.map → schema-visualization-Cb_E9_Gd.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-CoeQbprt.js → useDirtyStateTracking-MbpxH_v6.js} +95 -84
- package/dist/client/chunks/useDirtyStateTracking-MbpxH_v6.js.map +1 -0
- package/dist/client/chunks/{useExplainAI-DlnXWdmz.js → useExplainAI-evnZkjCY.js} +14 -14
- package/dist/client/chunks/{useExplainAI-DlnXWdmz.js.map → useExplainAI-evnZkjCY.js.map} +1 -1
- package/dist/client/chunks/{utils-CTKNaXS8.js → utils-3P6z1vz5.js} +2 -2
- package/dist/client/chunks/{utils-CTKNaXS8.js.map → utils-3P6z1vz5.js.map} +1 -1
- package/dist/client/chunks/{vendor-CPIYyeuD.js → vendor-DSpR0IW6.js} +43 -43
- package/dist/client/chunks/{vendor-CPIYyeuD.js.map → vendor-DSpR0IW6.js.map} +1 -1
- package/dist/client/components/AgenticNotebook/agentChatParts.d.ts +34 -0
- package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +39 -0
- package/dist/client/components/AgenticNotebook/useAgentChatController.d.ts +25 -0
- package/dist/client/components/AgenticNotebook/useNotebookAutosave.d.ts +12 -0
- package/dist/client/components/AnalysisBuilder/AnalysisQueryPanelParts.d.ts +64 -0
- package/dist/client/components/AnalysisBuilder/AnalysisResultsHeader.d.ts +67 -0
- package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
- package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
- package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
- package/dist/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
- package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
- package/dist/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
- package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
- package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
- package/dist/client/components/AnalysisBuilder/LegacyBooleanOptions.d.ts +8 -0
- package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
- package/dist/client/components/AnalysisBuilder/SortToggleButton.d.ts +13 -0
- package/dist/client/components/AnalysisBuilder/StringArrayInput.d.ts +17 -0
- package/dist/client/components/AnalysisBuilder/filterConfigModalUtils.d.ts +30 -0
- package/dist/client/components/AnalysisBuilder/hooks/useAnalysisBuilderImperativeHandle.d.ts +13 -0
- package/dist/client/components/AnalysisBuilder/hooks/useDragReorder.d.ts +25 -0
- package/dist/client/components/AnalysisBuilder/hooks/useFieldSearchKeyboard.d.ts +11 -0
- package/dist/client/components/AnalysisBuilder/utils/axisConfigUtils.d.ts +23 -0
- package/dist/client/components/AnalysisBuilder/utils/executionPlanMarkdown.d.ts +8 -0
- package/dist/client/components/AnalysisBuilder/utils/fieldUtils.d.ts +5 -0
- package/dist/client/components/AnalysisBuilder/utils/resultsPanelDerive.d.ts +68 -0
- package/dist/client/components/AnalysisBuilder/utils/shareStateUtils.d.ts +68 -0
- package/dist/client/components/AnalysisBuilder/utils/sortUtils.d.ts +7 -0
- package/dist/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
- package/dist/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
- package/dist/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
- package/dist/client/components/DashboardFilters/dashboardFilterConfigModalUtils.d.ts +21 -0
- package/dist/client/components/DashboardFilters/useCompactFilterBar.d.ts +19 -0
- package/dist/client/components/DashboardFilters/useDashboardFilterConfigModal.d.ts +69 -0
- package/dist/client/components/DashboardFilters/useDateRangeState.d.ts +19 -0
- package/dist/client/components/DashboardFilters/useFilterDropdowns.d.ts +21 -0
- package/dist/client/components/DashboardFilters/useFilterValueFetch.d.ts +23 -0
- package/dist/client/components/DashboardPortletCard.d.ts +2 -57
- package/dist/client/components/analyticsPortlet/PortletChart.d.ts +31 -0
- package/dist/client/components/analyticsPortlet/PortletChartView.d.ts +35 -0
- package/dist/client/components/analyticsPortlet/PortletStates.d.ts +65 -0
- package/dist/client/components/analyticsPortlet/parsePortletQuery.d.ts +22 -0
- package/dist/client/components/analyticsPortlet/portletRenderState.d.ts +31 -0
- package/dist/client/components/analyticsPortlet/usePortletDebugData.d.ts +37 -0
- package/dist/client/components/analyticsPortlet/usePortletDrillState.d.ts +17 -0
- package/dist/client/components/analyticsPortlet/usePortletQueryResults.d.ts +37 -0
- package/dist/client/components/charts/ActivityGridChart.helpers.d.ts +33 -0
- package/dist/client/components/charts/ActivityGridChart.render.d.ts +31 -0
- package/dist/client/components/charts/AxisFormatControls.d.ts +3 -1
- package/dist/client/components/charts/BarChart.helpers.d.ts +23 -0
- package/dist/client/components/charts/BarSeries.d.ts +29 -0
- package/dist/client/components/charts/BubbleChart.helpers.d.ts +43 -0
- package/dist/client/components/charts/BubbleChart.render.d.ts +21 -0
- package/dist/client/components/charts/ChartStates.d.ts +38 -0
- package/dist/client/components/charts/FunnelChart.helpers.d.ts +25 -0
- package/dist/client/components/charts/FunnelViews.d.ts +16 -0
- package/dist/client/components/charts/HeatMapCanvas.d.ts +25 -0
- package/dist/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
- package/dist/client/components/charts/KpiDelta.helpers.d.ts +20 -0
- package/dist/client/components/charts/KpiNumber.helpers.d.ts +30 -0
- package/dist/client/components/charts/KpiStates.d.ts +19 -0
- package/dist/client/components/charts/ScatterChart.helpers.d.ts +43 -0
- package/dist/client/components/charts/ScatterSeries.d.ts +17 -0
- package/dist/client/components/charts/ScatterTooltip.d.ts +21 -0
- package/dist/client/components/charts/TreeMapChart.helpers.d.ts +37 -0
- package/dist/client/components/charts/TreeMapContent.d.ts +24 -0
- package/dist/client/components/charts/TreeMapLegend.d.ts +13 -0
- package/dist/client/components/charts/cartesianChartHelpers.d.ts +126 -0
- package/dist/client/components/charts/chartAxisResolution.d.ts +32 -0
- package/dist/client/components/charts/chartScaffolding.d.ts +77 -0
- package/dist/client/components/charts/gaugeChartHelpers.d.ts +36 -0
- package/dist/client/components/charts/kpiTextHelpers.d.ts +46 -0
- package/dist/client/components/charts/radarChartHelpers.d.ts +14 -0
- package/dist/client/components/charts/radialBarChartHelpers.d.ts +22 -0
- package/dist/client/components/charts/useChartDimensions.d.ts +20 -0
- package/dist/client/components/charts/useKpiDimensions.d.ts +30 -0
- package/dist/client/components/dashboard/DashboardEditBar.d.ts +5 -0
- package/dist/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
- package/dist/client/components/dashboardPortletCard/FilterFieldChip.d.ts +12 -0
- package/dist/client/components/dashboardPortletCard/PortletCardHeader.d.ts +43 -0
- package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +33 -0
- package/dist/client/components/dashboardPortletCard/filterField.d.ts +12 -0
- package/dist/client/components/dashboardPortletCard/propsEqual.d.ts +55 -0
- package/dist/client/components/dashboardPortletCard/usePortletCardActions.d.ts +16 -0
- package/dist/client/components/portletAnalysisModal/saveValidation.d.ts +8 -0
- package/dist/client/components/shared/dateRangeUtils.d.ts +40 -0
- package/dist/client/components/shared/filterDisplayUtils.d.ts +10 -0
- package/dist/client/components/shared/filterItem/FilterDateRangeSelector.d.ts +17 -0
- package/dist/client/components/shared/filterItem/FilterFieldDropdown.d.ts +16 -0
- package/dist/client/components/shared/filterItem/dateRangeSync.d.ts +14 -0
- package/dist/client/components/shared/filterItem/fieldVisuals.d.ts +5 -0
- package/dist/client/components/shared/filterValueSelector/FilterValueInputs.d.ts +55 -0
- package/dist/client/components/shared/filterValueSelector/useFilterValueSelectorState.d.ts +25 -0
- package/dist/client/components/shared/queryFieldUtils.d.ts +21 -0
- package/dist/client/components/shared/utils.d.ts +4 -43
- package/dist/client/components.js +3 -3
- package/dist/client/hooks/agentChatStream.d.ts +39 -0
- package/dist/client/hooks/analysisQueryExecutionModes.d.ts +133 -0
- package/dist/client/hooks/drillNavigation.d.ts +25 -0
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +2 -2
- package/dist/client/index.js +816 -669
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers.js +3 -3
- package/dist/client/schema.js +1 -1
- package/dist/client/shared/chartConfigBuilders.d.ts +18 -0
- package/dist/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
- package/dist/client/shared/queryTransforms.d.ts +20 -0
- package/dist/client/shared/utils.d.ts +2 -4
- package/dist/client/stores/optionsToAnalysisConfig.d.ts +17 -0
- package/dist/client/styles.css +1 -1
- package/dist/client/utils/axisValueFormatting.d.ts +32 -0
- package/dist/client/utils/timeValueFormatting.d.ts +32 -0
- package/dist/client/utils.js +6 -6
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +55 -55
- package/dist/server/google-BOnRIN1w.cjs +2 -0
- package/dist/server/{google-CFYljAOF.js → google-CvKM9yVM.js} +83 -71
- package/dist/server/index.cjs +179 -211
- package/dist/server/index.js +6330 -6458
- package/dist/server/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
- package/dist/server/openai-vXvLni8v.cjs +1 -0
- package/dist/server/server/adapters/base-adapter.d.ts +80 -35
- package/dist/server/server/adapters/databend-adapter.d.ts +8 -59
- package/dist/server/server/adapters/duckdb-adapter.d.ts +5 -59
- package/dist/server/server/adapters/mysql-adapter.d.ts +13 -70
- package/dist/server/server/adapters/postgres-adapter.d.ts +1 -65
- package/dist/server/server/adapters/snowflake-adapter.d.ts +5 -68
- package/dist/server/server/adapters/sqlite-adapter.d.ts +12 -32
- package/dist/server/server/adapters/window-function-builder.d.ts +11 -0
- package/dist/server/server/agent/chart-validation.d.ts +0 -5
- package/dist/server/server/agent/handler-steps.d.ts +37 -0
- package/dist/server/server/ai/discovery-helpers.d.ts +29 -0
- package/dist/server/server/ai/discovery.d.ts +4 -0
- package/dist/server/server/ai/suggestion-helpers.d.ts +33 -0
- package/dist/server/server/ai/suggestion.d.ts +0 -3
- package/dist/server/server/ai/validation-helpers.d.ts +21 -0
- package/dist/server/server/ai/validation.d.ts +0 -3
- package/dist/server/server/builders/analysis-utils.d.ts +106 -0
- package/dist/server/server/builders/cte-builder.d.ts +46 -0
- package/dist/server/server/builders/date-time-builder.d.ts +5 -0
- package/dist/server/server/builders/date-time-helpers.d.ts +34 -0
- package/dist/server/server/builders/filter-builder.d.ts +2 -0
- package/dist/server/server/builders/filter-operators.d.ts +23 -0
- package/dist/server/server/builders/flow-query-builder.d.ts +46 -19
- package/dist/server/server/builders/funnel-query-builder.d.ts +16 -5
- package/dist/server/server/builders/group-by-builder.d.ts +11 -0
- package/dist/server/server/builders/measure-builder.d.ts +43 -0
- package/dist/server/server/builders/retention-query-builder.d.ts +12 -14
- package/dist/server/server/cache-utils.d.ts +25 -5
- package/dist/server/server/compiler-metadata.d.ts +11 -0
- package/dist/server/server/compiler.d.ts +8 -14
- package/dist/server/server/cube-utils.d.ts +29 -4
- package/dist/server/server/execution/annotation-builder.d.ts +12 -0
- package/dist/server/server/execution/filter-cache-preloader.d.ts +19 -0
- package/dist/server/server/execution/mode-router.d.ts +25 -0
- package/dist/server/server/execution/query-result-cache.d.ts +21 -0
- package/dist/server/server/execution/result-post-processor.d.ts +10 -0
- package/dist/server/server/executor.d.ts +33 -30
- package/dist/server/server/executors/explain-utils.d.ts +28 -0
- package/dist/server/server/explain/explain-tree.d.ts +20 -0
- package/dist/server/server/filter-cache.d.ts +2 -2
- package/dist/server/server/gap-filler.d.ts +6 -0
- package/dist/server/server/index.d.ts +3 -1
- package/dist/server/server/logical-plan/cte-planner-helpers.d.ts +37 -0
- package/dist/server/server/logical-plan/cte-planner.d.ts +104 -0
- package/dist/server/server/logical-plan/filter-propagation.d.ts +44 -0
- package/dist/server/server/logical-plan/index.d.ts +6 -1
- package/dist/server/server/logical-plan/join-planner.d.ts +27 -0
- package/dist/server/server/logical-plan/logical-planner.d.ts +7 -200
- package/dist/server/server/logical-plan/optimiser.d.ts +3 -1
- package/dist/server/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
- package/dist/server/server/logical-plan/planner-utils.d.ts +20 -0
- package/dist/server/server/logical-plan/types.d.ts +17 -9
- package/dist/server/server/measure-classification.d.ts +40 -0
- package/dist/server/server/physical-plan/drizzle-plan-builder.d.ts +21 -21
- package/dist/server/server/physical-plan/drizzle-sql-builder.d.ts +11 -0
- package/dist/server/server/physical-plan/processors/index.d.ts +2 -0
- package/dist/server/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
- package/dist/server/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
- package/dist/server/server/physical-plan/processors/shared.d.ts +5 -0
- package/dist/server/server/query-handlers.d.ts +79 -0
- package/dist/server/server/query-modes.d.ts +28 -0
- package/dist/server/server/query-validator.d.ts +9 -0
- package/dist/server/server/resolvers/calculated-measure-resolver.d.ts +5 -0
- package/dist/server/server/resolvers/join-path-resolver.d.ts +6 -0
- package/dist/server/server/sql-format.d.ts +11 -0
- package/dist/server/server/types/cube.d.ts +18 -4
- package/dist/server/server/types/flow.d.ts +6 -5
- package/dist/server/server/types/index.d.ts +1 -1
- package/dist/server/server/types/validation.d.ts +14 -0
- package/package.json +11 -4
- package/dist/adapters/google-DUlXeeDA.cjs +0 -2
- package/dist/adapters/handler-CzbCuS6_.cjs +0 -25
- package/dist/adapters/locale-BPB7flIG.js +0 -8249
- package/dist/adapters/locale-tIMrNcCr.cjs +0 -198
- package/dist/adapters/mcp-transport-C2QzXm6h.cjs +0 -40
- package/dist/adapters/mcp-transport-D0B3S1tB.js +0 -579
- package/dist/adapters/openai-D_U4V0kT.cjs +0 -1
- package/dist/adapters/utils-KV37IBIv.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-CjCIAT-J.js.map +0 -1
- package/dist/client/chunks/analysis-builder-MuMIzoRq.js +0 -5367
- package/dist/client/chunks/analysis-builder-MuMIzoRq.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-CYVwSPqt.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-DmruKPab.js.map +0 -1
- package/dist/client/chunks/chart-area-DHCPM4Em.js +0 -450
- package/dist/client/chunks/chart-area-DHCPM4Em.js.map +0 -1
- package/dist/client/chunks/chart-bar-KddciGDv.js +0 -271
- package/dist/client/chunks/chart-bar-KddciGDv.js.map +0 -1
- package/dist/client/chunks/chart-bubble-CfqiB538.js +0 -273
- package/dist/client/chunks/chart-bubble-CfqiB538.js.map +0 -1
- package/dist/client/chunks/chart-config-area-Bq_UsW3x.js +0 -101
- package/dist/client/chunks/chart-config-area-Bq_UsW3x.js.map +0 -1
- package/dist/client/chunks/chart-config-bar-_JEGZnAu.js +0 -95
- package/dist/client/chunks/chart-config-bar-_JEGZnAu.js.map +0 -1
- package/dist/client/chunks/chart-config-box-plot-DJ-dWWXA.js.map +0 -1
- package/dist/client/chunks/chart-config-gauge-DSwC04l0.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-delta-D6BIkHL3.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-number-Bx-V9a62.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-text-CcqC1u-8.js.map +0 -1
- package/dist/client/chunks/chart-config-line-Db3jDsWc.js.map +0 -1
- package/dist/client/chunks/chart-config-pie-DD4SmRTF.js.map +0 -1
- package/dist/client/chunks/chart-config-radar-CC2XAaGr.js.map +0 -1
- package/dist/client/chunks/chart-config-radial-bar-DmxKx1R0.js.map +0 -1
- package/dist/client/chunks/chart-config-tree-map-BI-oQStO.js.map +0 -1
- package/dist/client/chunks/chart-config-waterfall-DSnyixbI.js.map +0 -1
- package/dist/client/chunks/chart-data-table-BO4sXsim.js.map +0 -1
- package/dist/client/chunks/chart-funnel-DnWRsmnS.js.map +0 -1
- package/dist/client/chunks/chart-gauge-CgMeqeGb.js +0 -424
- package/dist/client/chunks/chart-gauge-CgMeqeGb.js.map +0 -1
- package/dist/client/chunks/chart-heat-map-DcGm9SWK.js +0 -231
- package/dist/client/chunks/chart-heat-map-DcGm9SWK.js.map +0 -1
- package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js +0 -343
- package/dist/client/chunks/chart-kpi-delta-C2wKPqCb.js.map +0 -1
- package/dist/client/chunks/chart-kpi-number-gWYF44ol.js +0 -322
- package/dist/client/chunks/chart-kpi-number-gWYF44ol.js.map +0 -1
- package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js +0 -149
- package/dist/client/chunks/chart-kpi-text-DIYtJtk4.js.map +0 -1
- package/dist/client/chunks/chart-line-9BEGN5Ti.js +0 -433
- package/dist/client/chunks/chart-line-9BEGN5Ti.js.map +0 -1
- package/dist/client/chunks/chart-pie-BjAIhyOi.js +0 -172
- package/dist/client/chunks/chart-pie-BjAIhyOi.js.map +0 -1
- package/dist/client/chunks/chart-radar-Dgkcl2bN.js +0 -154
- package/dist/client/chunks/chart-radar-Dgkcl2bN.js.map +0 -1
- package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js +0 -148
- package/dist/client/chunks/chart-radial-bar-DdWJjAhK.js.map +0 -1
- package/dist/client/chunks/chart-scatter-DaHYP_OL.js +0 -255
- package/dist/client/chunks/chart-scatter-DaHYP_OL.js.map +0 -1
- package/dist/client/chunks/chart-tree-map-uiwUU4nb.js +0 -298
- package/dist/client/chunks/chart-tree-map-uiwUU4nb.js.map +0 -1
- package/dist/client/chunks/useDirtyStateTracking-CoeQbprt.js.map +0 -1
- package/dist/server/google-DUlXeeDA.cjs +0 -2
- package/dist/server/openai-D_U4V0kT.cjs +0 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { AnalysisQueryPanelProps, BreakdownItem } from './types';
|
|
3
|
+
import { MetaField } from '../../shared/types';
|
|
4
|
+
import { QueryMergeStrategy } from '../../types';
|
|
5
|
+
type Props = AnalysisQueryPanelProps;
|
|
6
|
+
/** True when the funnel mode UI has all the callbacks it needs to render. */
|
|
7
|
+
export declare function canRenderFunnelMode(p: Props): boolean;
|
|
8
|
+
/** True when the flow mode UI has all the callbacks/state it needs to render. */
|
|
9
|
+
export declare function canRenderFlowMode(p: Props): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Whether a dedicated mode (funnel/flow/retention) replaces the standard layout.
|
|
12
|
+
*/
|
|
13
|
+
export declare function shouldRenderModeContent(p: Props): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Renders the dedicated mode UI (funnel / flow / retention) when one of those
|
|
16
|
+
* analysis types is active and all the required callbacks are present. Returns
|
|
17
|
+
* null when the standard query/chart/display layout should be used instead.
|
|
18
|
+
*/
|
|
19
|
+
export declare function AnalysisModeContent(props: Props): React.JSX.Element | null;
|
|
20
|
+
interface TabBarProps {
|
|
21
|
+
activeTab: Props['activeTab'];
|
|
22
|
+
onActiveTabChange: Props['onActiveTabChange'];
|
|
23
|
+
isMultiQuery: boolean;
|
|
24
|
+
queryCount: number;
|
|
25
|
+
activeQueryIndex: number;
|
|
26
|
+
onAddQuery?: Props['onAddQuery'];
|
|
27
|
+
getQueryTabLabel: (index: number) => string;
|
|
28
|
+
handleQueryTabClick: (index: number) => void;
|
|
29
|
+
handleRemoveQuery: (e: React.MouseEvent, index: number) => void;
|
|
30
|
+
}
|
|
31
|
+
export declare function QueryPanelTabBar(props: TabBarProps): React.JSX.Element;
|
|
32
|
+
export declare function MergeStrategyControls({ mergeStrategy, onMergeStrategyChange, isFunnelMode, funnelBindingKey, onFunnelBindingKeyChange, schema, }: {
|
|
33
|
+
mergeStrategy: QueryMergeStrategy;
|
|
34
|
+
onMergeStrategyChange?: Props['onMergeStrategyChange'];
|
|
35
|
+
isFunnelMode: boolean;
|
|
36
|
+
funnelBindingKey?: Props['funnelBindingKey'];
|
|
37
|
+
onFunnelBindingKeyChange?: Props['onFunnelBindingKeyChange'];
|
|
38
|
+
schema: Props['schema'];
|
|
39
|
+
}): React.JSX.Element;
|
|
40
|
+
export declare function AdapterValidationBanner({ adapterValidation, }: {
|
|
41
|
+
adapterValidation: NonNullable<Props['adapterValidation']>;
|
|
42
|
+
}): React.JSX.Element;
|
|
43
|
+
export declare function MultiQueryValidationBanner({ multiQueryValidation, }: {
|
|
44
|
+
multiQueryValidation: NonNullable<Props['multiQueryValidation']>;
|
|
45
|
+
}): React.JSX.Element;
|
|
46
|
+
interface TabContentProps extends Props {
|
|
47
|
+
isMultiQuery: boolean;
|
|
48
|
+
getFieldMeta: (breakdown: BreakdownItem) => MetaField | null;
|
|
49
|
+
comparisonEnabledBreakdown: BreakdownItem | undefined;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Renders the active tab's body (query sections / chart config / display config)
|
|
53
|
+
* for the standard (non-mode) layout.
|
|
54
|
+
*/
|
|
55
|
+
export declare function QueryPanelTabContent(props: TabContentProps): React.JSX.Element | null;
|
|
56
|
+
export declare function LockedBreakdownList({ breakdowns, getFieldMeta, comparisonEnabledBreakdown, onBreakdownGranularityChange, onBreakdownComparisonToggle, onMergeStrategyChange, }: {
|
|
57
|
+
breakdowns: BreakdownItem[];
|
|
58
|
+
getFieldMeta: (breakdown: BreakdownItem) => MetaField | null;
|
|
59
|
+
comparisonEnabledBreakdown: BreakdownItem | undefined;
|
|
60
|
+
onBreakdownGranularityChange: Props['onBreakdownGranularityChange'];
|
|
61
|
+
onBreakdownComparisonToggle?: Props['onBreakdownComparisonToggle'];
|
|
62
|
+
onMergeStrategyChange?: Props['onMergeStrategyChange'];
|
|
63
|
+
}): React.JSX.Element;
|
|
64
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AnalysisResultsHeader
|
|
3
|
+
*
|
|
4
|
+
* Presentational header for AnalysisResultsPanel: the status / row-count line,
|
|
5
|
+
* the toolbar of action buttons (display limit, AI, palette, share, refresh,
|
|
6
|
+
* clear, schema, debug) and the large-dataset performance warning. Extracted to
|
|
7
|
+
* keep the panel's renderHeader flat. Behaviour and markup are identical to the
|
|
8
|
+
* previous inline rendering.
|
|
9
|
+
*
|
|
10
|
+
* Props are grouped into cohesive named slices instead of a flat bag, and each
|
|
11
|
+
* sub-component receives only the slice it needs:
|
|
12
|
+
* - `summary` → results state / row-count line + debug-error indicator
|
|
13
|
+
* - `toolbar` → action handlers and their transient state
|
|
14
|
+
* - `display` → view / visibility flags driving which controls render
|
|
15
|
+
*/
|
|
16
|
+
type Row = Record<string, unknown>;
|
|
17
|
+
/** Results state + row counts that drive the status line, warning and error dot. */
|
|
18
|
+
export interface ResultsSummary {
|
|
19
|
+
executionResults: Row[] | null | undefined;
|
|
20
|
+
executionStatus: string;
|
|
21
|
+
totalRowCount: number | null;
|
|
22
|
+
resultsStale: boolean;
|
|
23
|
+
executionError: unknown;
|
|
24
|
+
debugDataPerQuery: Array<{
|
|
25
|
+
error?: unknown;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
/** Action handlers and their transient state for the toolbar buttons. */
|
|
29
|
+
export interface ResultsToolbarActions {
|
|
30
|
+
displayLimit: number;
|
|
31
|
+
onDisplayLimitChange?: (limit: number) => void;
|
|
32
|
+
isAIOpen?: boolean;
|
|
33
|
+
onAIToggle?: () => void;
|
|
34
|
+
onColorPaletteChange?: (palette: string) => void;
|
|
35
|
+
currentPaletteName?: string;
|
|
36
|
+
onShareClick?: () => void;
|
|
37
|
+
shareButtonState: string;
|
|
38
|
+
canShare: boolean;
|
|
39
|
+
onRefreshClick?: (opts: {
|
|
40
|
+
bustCache: boolean;
|
|
41
|
+
}) => void;
|
|
42
|
+
canRefresh: boolean;
|
|
43
|
+
isRefreshing: boolean;
|
|
44
|
+
showCacheBustIndicator: boolean;
|
|
45
|
+
setIsHoveringRefresh: (v: boolean) => void;
|
|
46
|
+
onClearClick?: () => void;
|
|
47
|
+
canClear: boolean;
|
|
48
|
+
setIsClearConfirmOpen: (v: boolean) => void;
|
|
49
|
+
setShowDebug: (v: boolean) => void;
|
|
50
|
+
setShowSchema: (v: boolean) => void;
|
|
51
|
+
}
|
|
52
|
+
/** View / visibility flags deciding which controls render. */
|
|
53
|
+
export interface ResultsDisplayFlags {
|
|
54
|
+
activeView: string;
|
|
55
|
+
showDebug: boolean;
|
|
56
|
+
showSchema: boolean;
|
|
57
|
+
enableAI?: boolean;
|
|
58
|
+
isFunnelMode: boolean;
|
|
59
|
+
showSchemaDiagram: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface ResultsHeaderProps {
|
|
62
|
+
summary: ResultsSummary;
|
|
63
|
+
toolbar: ResultsToolbarActions;
|
|
64
|
+
display: ResultsDisplayFlags;
|
|
65
|
+
}
|
|
66
|
+
export default function ResultsHeader({ summary, toolbar, display }: ResultsHeaderProps): import("react").JSX.Element;
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BreakdownComparisonToggle Component
|
|
3
|
+
*
|
|
4
|
+
* "vs prior" period-comparison toggle for time-dimension breakdowns.
|
|
5
|
+
* Extracted from BreakdownItemCard to keep its render body flat.
|
|
6
|
+
*/
|
|
7
|
+
interface BreakdownComparisonToggleProps {
|
|
8
|
+
enableComparison?: boolean;
|
|
9
|
+
comparisonDisabled?: boolean;
|
|
10
|
+
onComparisonToggle: () => void;
|
|
11
|
+
}
|
|
12
|
+
declare const BreakdownComparisonToggle: import('react').NamedExoticComponent<BreakdownComparisonToggleProps>;
|
|
13
|
+
export default BreakdownComparisonToggle;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { DragEvent } from 'react';
|
|
2
|
+
import { MetaField } from '../../shared/types';
|
|
3
|
+
import { BreakdownItem } from './types';
|
|
4
|
+
interface BreakdownRowProps {
|
|
5
|
+
breakdown: BreakdownItem;
|
|
6
|
+
fieldMeta: MetaField | null;
|
|
7
|
+
sortDirection: 'asc' | 'desc' | null;
|
|
8
|
+
sortPriority: number | undefined;
|
|
9
|
+
index: number;
|
|
10
|
+
transform: string;
|
|
11
|
+
showGapBefore: boolean;
|
|
12
|
+
isAnyDragging: boolean;
|
|
13
|
+
isDragging: boolean;
|
|
14
|
+
comparisonDisabled: boolean;
|
|
15
|
+
onRemove: (id: string) => void;
|
|
16
|
+
onGranularityChange: (id: string, granularity: string) => void;
|
|
17
|
+
onComparisonToggle?: (id: string) => void;
|
|
18
|
+
onOrderChange?: (field: string, direction: 'asc' | 'desc' | null) => void;
|
|
19
|
+
onReorder?: (fromIndex: number, toIndex: number) => void;
|
|
20
|
+
onItemDragOver: (e: DragEvent, index: number) => void;
|
|
21
|
+
onItemDrop: (e: DragEvent) => void;
|
|
22
|
+
onDragStart: (e: DragEvent, index: number) => void;
|
|
23
|
+
onDragEnd: () => void;
|
|
24
|
+
}
|
|
25
|
+
declare const BreakdownRow: import('react').NamedExoticComponent<BreakdownRowProps>;
|
|
26
|
+
export default BreakdownRow;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ChartDisplayConfig, ColorPalette } from '../../types';
|
|
2
|
+
import { DisplayOptionConfig } from '../../charts/chartConfigs';
|
|
3
|
+
interface DisplayOptionControlProps {
|
|
4
|
+
option: DisplayOptionConfig;
|
|
5
|
+
displayConfig: ChartDisplayConfig;
|
|
6
|
+
colorPalette?: ColorPalette;
|
|
7
|
+
onDisplayConfigChange: (config: ChartDisplayConfig) => void;
|
|
8
|
+
}
|
|
9
|
+
export default function DisplayOptionControl({ option, displayConfig, colorPalette, onDisplayConfigChange, }: DisplayOptionControlProps): import("react").JSX.Element | null;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ExplainResult } from '../../types';
|
|
3
|
+
export declare function SqlBlock({ sql, sqlLoading, sqlError, sqlPlaceholder, formattedSql, title, height, headerRight, }: {
|
|
4
|
+
sql: {
|
|
5
|
+
sql: string;
|
|
6
|
+
params?: unknown[];
|
|
7
|
+
} | null | undefined;
|
|
8
|
+
sqlLoading: boolean;
|
|
9
|
+
sqlError?: Error | null;
|
|
10
|
+
sqlPlaceholder: string;
|
|
11
|
+
formattedSql: string;
|
|
12
|
+
title: string;
|
|
13
|
+
height: string;
|
|
14
|
+
headerRight: ReactNode;
|
|
15
|
+
}): import("react").JSX.Element;
|
|
16
|
+
export declare function ExplainResults({ explainLoading, explainError, explainResult, useAnalyze, aiButton, }: {
|
|
17
|
+
explainLoading: boolean;
|
|
18
|
+
explainError?: Error | null;
|
|
19
|
+
explainResult: ExplainResult | null;
|
|
20
|
+
useAnalyze: boolean;
|
|
21
|
+
aiButton: ReactNode;
|
|
22
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FieldOption } from './types';
|
|
2
|
+
import { MetaResponse } from '../../shared/types';
|
|
3
|
+
interface FieldSearchResultsProps {
|
|
4
|
+
mode: 'metrics' | 'breakdown' | 'filter' | 'dimensionFilter';
|
|
5
|
+
schema: MetaResponse | null;
|
|
6
|
+
searchTerm: string;
|
|
7
|
+
recentOptions: FieldOption[];
|
|
8
|
+
groupedFields: Map<string, FieldOption[]>;
|
|
9
|
+
filteredCount: number;
|
|
10
|
+
selectedFields: string[];
|
|
11
|
+
focusedIndex: number;
|
|
12
|
+
onSelectField: (field: FieldOption, fieldIndex: number, shiftKey: boolean) => void;
|
|
13
|
+
onFocusField: (field: FieldOption, index: number) => void;
|
|
14
|
+
}
|
|
15
|
+
declare const FieldSearchResults: import('react').NamedExoticComponent<FieldSearchResultsProps>;
|
|
16
|
+
export default FieldSearchResults;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ChangeEvent, MouseEvent, KeyboardEvent, RefObject } from 'react';
|
|
2
|
+
import { SimpleFilter } from '../../types';
|
|
3
|
+
import { DateRangeType } from '../../shared/types';
|
|
4
|
+
type OperatorMeta = {
|
|
5
|
+
requiresValues?: boolean;
|
|
6
|
+
valueType?: string;
|
|
7
|
+
supportsMultipleValues?: boolean;
|
|
8
|
+
} | undefined;
|
|
9
|
+
/** Which control to render: the filter being edited and its operator metadata. */
|
|
10
|
+
export interface FilterFieldContext {
|
|
11
|
+
filter: SimpleFilter;
|
|
12
|
+
operatorMeta: OperatorMeta;
|
|
13
|
+
shouldShowDateRange: boolean;
|
|
14
|
+
shouldShowComboBox: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** State + handlers for the date-range selector (inDateRange on time fields). */
|
|
17
|
+
export interface DateRangeGroup {
|
|
18
|
+
rangeType: DateRangeType;
|
|
19
|
+
numberValue: number;
|
|
20
|
+
label: string;
|
|
21
|
+
isOpen: boolean;
|
|
22
|
+
onToggle: (open: boolean) => void;
|
|
23
|
+
onRangeTypeChange: (rangeType: DateRangeType) => void;
|
|
24
|
+
onNumberValueChange: (value: number) => void;
|
|
25
|
+
onCustomStartDate: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
26
|
+
onCustomEndDate: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
27
|
+
/** Close sibling dropdowns when this one opens. */
|
|
28
|
+
onOpen: () => void;
|
|
29
|
+
}
|
|
30
|
+
/** Async distinct-value combo-box state + handlers (equals/in on dimensions). */
|
|
31
|
+
export interface ComboBoxGroup {
|
|
32
|
+
isOpen: boolean;
|
|
33
|
+
options: unknown[];
|
|
34
|
+
loading: boolean;
|
|
35
|
+
error: unknown;
|
|
36
|
+
searchText: string;
|
|
37
|
+
highlightedIndex: number;
|
|
38
|
+
listRef: RefObject<HTMLDivElement>;
|
|
39
|
+
onSearchTextChange: (text: string) => void;
|
|
40
|
+
onHighlightedIndexChange: (index: number) => void;
|
|
41
|
+
onSelect: (value: unknown, event?: MouseEvent | {
|
|
42
|
+
shiftKey: boolean;
|
|
43
|
+
}) => void;
|
|
44
|
+
onRemove: (value: unknown) => void;
|
|
45
|
+
onKeyDown: (e: KeyboardEvent) => void;
|
|
46
|
+
/** Open the combo-box, closing sibling dropdowns. */
|
|
47
|
+
onOpen: () => void;
|
|
48
|
+
}
|
|
49
|
+
/** Handlers for the plain between/date/number/text inputs. */
|
|
50
|
+
export interface SimpleInputHandlers {
|
|
51
|
+
onBetweenStart: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
52
|
+
onBetweenEnd: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
53
|
+
onDate: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
54
|
+
onDirect: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
55
|
+
}
|
|
56
|
+
export interface FilterValueInputProps {
|
|
57
|
+
field: FilterFieldContext;
|
|
58
|
+
dateRange: DateRangeGroup;
|
|
59
|
+
combo: ComboBoxGroup;
|
|
60
|
+
inputs: SimpleInputHandlers;
|
|
61
|
+
}
|
|
62
|
+
export default function FilterValueInput({ field, dateRange, combo, inputs }: FilterValueInputProps): import("react").JSX.Element;
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ChartType } from '../../types';
|
|
2
|
+
interface FlowDepthControlsProps {
|
|
3
|
+
chartType: ChartType;
|
|
4
|
+
stepsBefore: number;
|
|
5
|
+
stepsAfter: number;
|
|
6
|
+
onStepsBeforeChange: (count: number) => void;
|
|
7
|
+
onStepsAfterChange: (count: number) => void;
|
|
8
|
+
}
|
|
9
|
+
declare const FlowDepthControls: import('react').NamedExoticComponent<FlowDepthControlsProps>;
|
|
10
|
+
export default FlowDepthControls;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ChartType } from '../../types';
|
|
2
|
+
interface FlowVisualizationPickerProps {
|
|
3
|
+
chartType: ChartType;
|
|
4
|
+
onChartTypeChange: (type: ChartType) => void;
|
|
5
|
+
}
|
|
6
|
+
declare const FlowVisualizationPicker: import('react').NamedExoticComponent<FlowVisualizationPickerProps>;
|
|
7
|
+
export default FlowVisualizationPicker;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ChartDisplayConfig } from '../../types';
|
|
2
|
+
interface LegacyBooleanOptionsProps {
|
|
3
|
+
displayOptions?: string[];
|
|
4
|
+
displayConfig: ChartDisplayConfig;
|
|
5
|
+
onDisplayConfigChange: (config: ChartDisplayConfig) => void;
|
|
6
|
+
}
|
|
7
|
+
declare const LegacyBooleanOptions: import('react').NamedExoticComponent<LegacyBooleanOptionsProps>;
|
|
8
|
+
export default LegacyBooleanOptions;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DragEvent } from 'react';
|
|
2
|
+
import { MetaField } from '../../shared/types';
|
|
3
|
+
import { MetricItem } from './types';
|
|
4
|
+
interface MetricRowProps {
|
|
5
|
+
metric: MetricItem;
|
|
6
|
+
fieldMeta: MetaField | null;
|
|
7
|
+
sortDirection: 'asc' | 'desc' | null;
|
|
8
|
+
sortPriority: number | undefined;
|
|
9
|
+
index: number;
|
|
10
|
+
transform: string;
|
|
11
|
+
showGapBefore: boolean;
|
|
12
|
+
isAnyDragging: boolean;
|
|
13
|
+
isDragging: boolean;
|
|
14
|
+
onRemove: (id: string) => void;
|
|
15
|
+
onOrderChange?: (field: string, direction: 'asc' | 'desc' | null) => void;
|
|
16
|
+
onReorder?: (fromIndex: number, toIndex: number) => void;
|
|
17
|
+
onItemDragOver: (e: DragEvent, index: number) => void;
|
|
18
|
+
onItemDrop: (e: DragEvent) => void;
|
|
19
|
+
onDragStart: (e: DragEvent, index: number) => void;
|
|
20
|
+
onDragEnd: () => void;
|
|
21
|
+
}
|
|
22
|
+
declare const MetricRow: import('react').NamedExoticComponent<MetricRowProps>;
|
|
23
|
+
export default MetricRow;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SortToggleButton Component
|
|
3
|
+
*
|
|
4
|
+
* Shared sort-direction toggle used by MetricItemCard and BreakdownItemCard.
|
|
5
|
+
* Renders the direction icon, optional sort-priority badge, and tooltip.
|
|
6
|
+
*/
|
|
7
|
+
interface SortToggleButtonProps {
|
|
8
|
+
sortDirection?: 'asc' | 'desc' | null;
|
|
9
|
+
sortPriority?: number;
|
|
10
|
+
onToggleSort: () => void;
|
|
11
|
+
}
|
|
12
|
+
declare const SortToggleButton: import('react').NamedExoticComponent<SortToggleButtonProps>;
|
|
13
|
+
export default SortToggleButton;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StringArrayInput Component
|
|
3
|
+
*
|
|
4
|
+
* A textarea that edits an array of strings. Uses local state while editing and
|
|
5
|
+
* only commits to the parent on blur. Extracted from DisplayOptionControl so the
|
|
6
|
+
* structured-option renderers stay presentational. Behaviour is identical to the
|
|
7
|
+
* previous inline implementation.
|
|
8
|
+
*/
|
|
9
|
+
interface StringArrayInputProps {
|
|
10
|
+
label: string;
|
|
11
|
+
value: string[];
|
|
12
|
+
onChange: (value: string[]) => void;
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
}
|
|
16
|
+
export default function StringArrayInput({ label, value, onChange, placeholder, description, }: StringArrayInputProps): import("react").JSX.Element;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* filterConfigModalUtils
|
|
3
|
+
*
|
|
4
|
+
* Pure helpers extracted from FilterConfigModal to keep the component's effects
|
|
5
|
+
* and render flat. Behaviour is identical to the previous inline logic.
|
|
6
|
+
*
|
|
7
|
+
* `deriveRangeFromDateRange` lives in the shared `dateRangeUtils` module and is
|
|
8
|
+
* re-exported here to keep existing import paths stable.
|
|
9
|
+
*/
|
|
10
|
+
export type { DerivedRange } from '../shared/dateRangeUtils';
|
|
11
|
+
export { deriveRangeFromDateRange } from '../shared/dateRangeUtils';
|
|
12
|
+
/** Action the value-dropdown keyboard handler should apply, decided purely. */
|
|
13
|
+
export type ValueKeyAction = {
|
|
14
|
+
type: 'none';
|
|
15
|
+
} | {
|
|
16
|
+
type: 'highlight';
|
|
17
|
+
index: number;
|
|
18
|
+
} | {
|
|
19
|
+
type: 'select';
|
|
20
|
+
index: number;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'close';
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Pure keyboard-navigation logic for the filter value dropdown. Given the key
|
|
26
|
+
* and current state, returns the action to apply (no side effects), so the
|
|
27
|
+
* branchy decision can be unit-tested and the React handler stays a thin
|
|
28
|
+
* dispatcher.
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveValueKeyboardAction(key: string, isOpen: boolean, length: number, highlightedIndex: number): ValueKeyAction;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Ref } from 'react';
|
|
2
|
+
import { StoreApi } from 'zustand';
|
|
3
|
+
import { AnalysisBuilderRef } from '../types';
|
|
4
|
+
import { AnalysisBuilderStore } from '../../../stores/analysisBuilderStore';
|
|
5
|
+
interface ImperativeHandleDeps {
|
|
6
|
+
getQueryConfig: AnalysisBuilderRef['getQueryConfig'];
|
|
7
|
+
getChartConfig: AnalysisBuilderRef['getChartConfig'];
|
|
8
|
+
getAnalysisType: AnalysisBuilderRef['getAnalysisType'];
|
|
9
|
+
clearQuery: AnalysisBuilderRef['clearQuery'];
|
|
10
|
+
storeApi: StoreApi<AnalysisBuilderStore>;
|
|
11
|
+
}
|
|
12
|
+
export declare function useAnalysisBuilderImperativeHandle(ref: Ref<AnalysisBuilderRef>, deps: ImperativeHandleDeps): void;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DragEvent } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate the vertical transform for an item while a drag is in progress.
|
|
4
|
+
* Pure helper extracted to keep the hook body flat.
|
|
5
|
+
*/
|
|
6
|
+
export declare function computeItemTransform(itemIndex: number, draggedIndex: number | null, dropTargetIndex: number | null): string;
|
|
7
|
+
export interface DragReorderApi {
|
|
8
|
+
draggedIndex: number | null;
|
|
9
|
+
dropTargetIndex: number | null;
|
|
10
|
+
handleDragStart: (e: DragEvent, index: number) => void;
|
|
11
|
+
handleDragEnd: () => void;
|
|
12
|
+
handleItemDragOver: (e: DragEvent, itemIndex: number) => void;
|
|
13
|
+
handleItemDrop: (e: DragEvent) => void;
|
|
14
|
+
handleSectionDragLeave: (e: DragEvent) => void;
|
|
15
|
+
handleEndZoneDragOver: (e: DragEvent) => void;
|
|
16
|
+
getItemTransform: (itemIndex: number) => string;
|
|
17
|
+
shouldShowGapIndicator: (itemIndex: number) => boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @param dragType Label written into the drag dataTransfer payload.
|
|
21
|
+
* @param getField Resolves the field name for a given index (for the payload).
|
|
22
|
+
* @param itemCount Current number of items (used for end-of-list drop zone).
|
|
23
|
+
* @param onReorder Optional reorder callback (fromIndex, toIndex).
|
|
24
|
+
*/
|
|
25
|
+
export declare function useDragReorder(dragType: string, getField: (index: number) => string, itemCount: number, onReorder?: (fromIndex: number, toIndex: number) => void): DragReorderApi;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { KeyboardEvent, RefObject } from 'react';
|
|
2
|
+
import { FieldOption } from '../types';
|
|
3
|
+
export interface FieldSearchKeyboardApi {
|
|
4
|
+
focusedField: FieldOption | null;
|
|
5
|
+
setFocusedField: (field: FieldOption | null) => void;
|
|
6
|
+
focusedIndex: number;
|
|
7
|
+
setFocusedIndex: (index: number) => void;
|
|
8
|
+
resultsContainerRef: RefObject<HTMLDivElement>;
|
|
9
|
+
handleKeyDown: (e: KeyboardEvent) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function useFieldSearchKeyboard(flatFieldsList: FieldOption[], onSelectField: (field: FieldOption, fieldIndex: number, shiftKey: boolean) => void, onClose: () => void): FieldSearchKeyboardApi;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ChartAxisConfig } from '../../../types';
|
|
2
|
+
interface DropZoneShape {
|
|
3
|
+
key: string;
|
|
4
|
+
maxItems?: number;
|
|
5
|
+
enableDualAxis?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Compute the new config after dropping `field` onto `toAxis` (optionally moving
|
|
9
|
+
* it from `fromAxis`). Applies the default left/right yAxisAssignment for dual-axis
|
|
10
|
+
* drop zones.
|
|
11
|
+
*/
|
|
12
|
+
export declare function applyAxisDrop(chartConfig: ChartAxisConfig, field: string, fromAxis: string, toAxis: string, dropZoneConfig: DropZoneShape | undefined): ChartAxisConfig;
|
|
13
|
+
/**
|
|
14
|
+
* Compute the new config after removing `field` from `fromAxis`, cleaning up any
|
|
15
|
+
* yAxisAssignment entry.
|
|
16
|
+
*/
|
|
17
|
+
export declare function applyAxisRemove(chartConfig: ChartAxisConfig, field: string, fromAxis: string): ChartAxisConfig;
|
|
18
|
+
/**
|
|
19
|
+
* Compute the new config after reordering items within `axisKey`. Returns null
|
|
20
|
+
* when no reorder is applicable (non-array, single item, or no-op move).
|
|
21
|
+
*/
|
|
22
|
+
export declare function applyAxisReorder(chartConfig: ChartAxisConfig, fromIndex: number, toIndex: number, axisKey: string): ChartAxisConfig | null;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CubeQuery } from '../../../types';
|
|
2
|
+
import { QueryAnalysis } from '../../../shared/types';
|
|
3
|
+
/**
|
|
4
|
+
* Generate markdown representation of query execution plan.
|
|
5
|
+
*/
|
|
6
|
+
export declare function generateExecutionPlanMarkdown(analysis: QueryAnalysis, query: CubeQuery | null, sql?: {
|
|
7
|
+
sql: string;
|
|
8
|
+
} | null): string;
|
|
@@ -26,6 +26,11 @@ export declare function getFieldTitle(fieldName: string, schema: MetaResponse |
|
|
|
26
26
|
export declare function getFieldType(field: MetaField): FieldType;
|
|
27
27
|
/**
|
|
28
28
|
* Convert schema to flat list of field options
|
|
29
|
+
*
|
|
30
|
+
* - 'metrics': measures only
|
|
31
|
+
* - 'breakdown' / 'dimensionFilter': dimensions only ('dimensionFilter' is used
|
|
32
|
+
* for funnel step filters where measures don't work)
|
|
33
|
+
* - 'filter': both measures and dimensions
|
|
29
34
|
*/
|
|
30
35
|
export declare function schemaToFieldOptions(schema: MetaResponse | null, mode: 'metrics' | 'breakdown' | 'filter' | 'dimensionFilter'): FieldOption[];
|
|
31
36
|
/**
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* resultsPanelDerive
|
|
3
|
+
*
|
|
4
|
+
* Small pure helpers for AnalysisResultsPanel derived values, extracted to keep
|
|
5
|
+
* the component body flat. Behaviour is identical to the previous inline logic.
|
|
6
|
+
*/
|
|
7
|
+
export interface DebugDataEntry {
|
|
8
|
+
sql: unknown;
|
|
9
|
+
analysis: unknown;
|
|
10
|
+
mode: unknown;
|
|
11
|
+
queryType: unknown;
|
|
12
|
+
joinType: unknown;
|
|
13
|
+
cubesUsed: unknown[];
|
|
14
|
+
modeMetadata: unknown;
|
|
15
|
+
loading: boolean;
|
|
16
|
+
error: unknown;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Resolve the active debug entry, falling back to an empty placeholder.
|
|
20
|
+
* The fallback is cast to the element type so callers keep their precise typing.
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveDebugData<T>(debugDataPerQuery: T[], activeDebugIndex: number): T;
|
|
23
|
+
interface ChartViewParams {
|
|
24
|
+
isCurrentChartRenderable: boolean;
|
|
25
|
+
isFlowMode: boolean;
|
|
26
|
+
isFunnelMode: boolean;
|
|
27
|
+
isRetentionMode: boolean;
|
|
28
|
+
}
|
|
29
|
+
/** Whether the chart view toggle should be enabled. */
|
|
30
|
+
export declare function isChartViewEnabled({ isCurrentChartRenderable, isFlowMode, isFunnelMode, isRetentionMode }: ChartViewParams): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Whether the panel has meaningful results to display, accounting for the
|
|
33
|
+
* different data shapes per analysis mode.
|
|
34
|
+
*/
|
|
35
|
+
export declare function computeHasResults(executionResults: unknown[] | null | undefined, isFlowMode: boolean, isRetentionMode: boolean, retentionChartData: {
|
|
36
|
+
rows: unknown[];
|
|
37
|
+
} | null | undefined): boolean;
|
|
38
|
+
interface TableSelectionParams<Q, R> {
|
|
39
|
+
tableIndex: number | undefined;
|
|
40
|
+
isMultiQuery: unknown;
|
|
41
|
+
allQueries: Q[] | null | undefined;
|
|
42
|
+
perQueryResults: R[] | null | undefined;
|
|
43
|
+
executionResults: R | null | undefined;
|
|
44
|
+
combinedQueryForChart: Q | undefined;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Resolve the data + query object for a table view given the requested index.
|
|
48
|
+
* tableIndex: undefined = single query, -1 = merged view, 0+ = per-query view.
|
|
49
|
+
*/
|
|
50
|
+
export declare function selectTableData<Q, R>({ tableIndex, isMultiQuery, allQueries, perQueryResults, executionResults, combinedQueryForChart }: TableSelectionParams<Q, R>): {
|
|
51
|
+
tableData: R | null;
|
|
52
|
+
tableQuery: Q | undefined;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Resolve the display source/target event names for a flow Sankey link, handling
|
|
56
|
+
* both transformed (`source`/`target`) and raw (`source_id`/`target_id`) shapes.
|
|
57
|
+
*/
|
|
58
|
+
export declare function flowLinkNames(link: Record<string, unknown>): {
|
|
59
|
+
sourceName: string;
|
|
60
|
+
targetName: string;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Multi-query mode (but NOT funnel mode — funnels always show unified results).
|
|
64
|
+
*/
|
|
65
|
+
export declare function computeIsMultiQuery(isFunnelMode: boolean, queryCount: number, perQueryResults: unknown[] | null | undefined): boolean;
|
|
66
|
+
/** Title/tooltip for the chart view toggle button. */
|
|
67
|
+
export declare function chartViewButtonTitle(chartViewEnabled: boolean, chartViewUnavailableReason: string | undefined, t: (key: string) => string): string;
|
|
68
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { AnalysisConfig } from '../../../types/analysisConfig';
|
|
2
|
+
/**
|
|
3
|
+
* Extract funnel initial state from a shared AnalysisConfig.
|
|
4
|
+
*
|
|
5
|
+
* Phase 3: funnel config is in query.funnel, chart config is in charts.funnel.
|
|
6
|
+
*/
|
|
7
|
+
export declare function extractFunnelStateFromShare(sharedState: AnalysisConfig | null): {
|
|
8
|
+
funnelCube: null;
|
|
9
|
+
funnelSteps: never[];
|
|
10
|
+
funnelTimeDimension: string | null;
|
|
11
|
+
funnelBindingKey: {
|
|
12
|
+
dimension: string | {
|
|
13
|
+
cube: string;
|
|
14
|
+
dimension: string;
|
|
15
|
+
}[];
|
|
16
|
+
} | null;
|
|
17
|
+
funnelChartType: import('../../..').ChartType;
|
|
18
|
+
funnelChartConfig: import('../../..').ChartAxisConfig;
|
|
19
|
+
funnelDisplayConfig: import('../../..').ChartDisplayConfig;
|
|
20
|
+
} | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Extract flow initial state from a shared AnalysisConfig.
|
|
23
|
+
*/
|
|
24
|
+
export declare function extractFlowStateFromShare(sharedState: AnalysisConfig | null): {
|
|
25
|
+
flowCube: null;
|
|
26
|
+
flowBindingKey: {
|
|
27
|
+
dimension: string;
|
|
28
|
+
} | null;
|
|
29
|
+
flowTimeDimension: string | null;
|
|
30
|
+
startingStep: {
|
|
31
|
+
name: string;
|
|
32
|
+
filters: import('../../../types').Filter[];
|
|
33
|
+
};
|
|
34
|
+
stepsBefore: number;
|
|
35
|
+
stepsAfter: number;
|
|
36
|
+
eventDimension: string | null;
|
|
37
|
+
flowChartType: import('../../..').ChartType;
|
|
38
|
+
flowChartConfig: import('../../..').ChartAxisConfig;
|
|
39
|
+
flowDisplayConfig: import('../../..').ChartDisplayConfig;
|
|
40
|
+
} | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Extract retention initial state from a shared AnalysisConfig.
|
|
43
|
+
*/
|
|
44
|
+
export declare function extractRetentionStateFromShare(sharedState: AnalysisConfig | null): {
|
|
45
|
+
retentionCube: null;
|
|
46
|
+
retentionBindingKey: {
|
|
47
|
+
dimension: string;
|
|
48
|
+
} | {
|
|
49
|
+
dimension: {
|
|
50
|
+
cube: string;
|
|
51
|
+
dimension: string;
|
|
52
|
+
}[];
|
|
53
|
+
} | null;
|
|
54
|
+
retentionTimeDimension: string | null;
|
|
55
|
+
retentionDateRange: import('../../../types/retention').DateRange;
|
|
56
|
+
retentionCohortFilters: import('../../../types').Filter[];
|
|
57
|
+
retentionActivityFilters: import('../../../types').Filter[];
|
|
58
|
+
retentionBreakdowns: {
|
|
59
|
+
field: string;
|
|
60
|
+
label: string;
|
|
61
|
+
}[];
|
|
62
|
+
retentionViewGranularity: import('../../../types/retention').RetentionGranularity;
|
|
63
|
+
retentionPeriods: number;
|
|
64
|
+
retentionType: import('../../../types/retention').RetentionType;
|
|
65
|
+
retentionChartType: import('../../..').ChartType;
|
|
66
|
+
retentionChartConfig: import('../../..').ChartAxisConfig;
|
|
67
|
+
retentionDisplayConfig: import('../../..').ChartDisplayConfig;
|
|
68
|
+
} | undefined;
|