drizzle-cube 0.5.8 → 0.6.1
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/express/index.cjs +1 -1
- package/dist/adapters/{adapters/express → express}/index.d.ts +3 -3
- package/dist/adapters/express/index.js +50 -50
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/{adapters/fastify → fastify}/index.d.ts +3 -3
- package/dist/adapters/fastify/index.js +78 -78
- package/dist/adapters/google-BOnRIN1w.cjs +2 -0
- package/dist/{server/google-CFYljAOF.js → adapters/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/agent-handler.d.ts +9 -0
- package/dist/adapters/hono/index.cjs +2 -2
- package/dist/adapters/{adapters/hono → hono}/index.d.ts +4 -4
- package/dist/adapters/hono/index.js +205 -175
- package/dist/adapters/hono/mcp-handler.d.ts +37 -0
- package/dist/adapters/locale-DDvZDFVn.js +8114 -0
- package/dist/adapters/locale-ZLUUNUxr.cjs +166 -0
- package/dist/adapters/{adapters/locale.d.ts → locale.d.ts} +1 -1
- package/dist/adapters/mcp-tools-handlers.d.ts +18 -0
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/{adapters/mcp-tools.d.ts → mcp-tools.d.ts} +5 -5
- package/dist/adapters/mcp-tools.js +49 -38
- package/dist/adapters/mcp-transport-B7ddET3M.cjs +40 -0
- package/dist/adapters/mcp-transport-Dfuj4j4q.js +591 -0
- package/dist/adapters/{adapters/mcp-transport.d.ts → mcp-transport.d.ts} +3 -3
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/{adapters/nextjs → nextjs}/index.d.ts +3 -3
- package/dist/adapters/nextjs/index.js +190 -197
- package/dist/adapters/nextjs/mcp-handler.d.ts +36 -0
- package/dist/adapters/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
- package/dist/adapters/openai-vXvLni8v.cjs +1 -0
- package/dist/adapters/{adapters/types.d.ts → types.d.ts} +1 -1
- 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/{adapters/utils.d.ts → utils.d.ts} +17 -92
- package/dist/adapters/utils.js +2 -2
- package/dist/cli/index.cjs +2 -2
- package/dist/client/adapters/adapterRegistry.d.ts +2 -2
- package/dist/client/adapters/flowModeAdapter.d.ts +2 -2
- package/dist/client/adapters/funnelModeAdapter.d.ts +2 -2
- package/dist/client/adapters/index.d.ts +9 -9
- package/dist/client/adapters/modeAdapter.d.ts +1 -1
- package/dist/client/adapters/queryModeAdapter.d.ts +3 -3
- package/dist/client/adapters/retentionModeAdapter.d.ts +2 -2
- package/dist/client/charts/ChartLoader.d.ts +3 -17
- package/dist/client/charts/chartComponentRegistry.d.ts +46 -0
- package/dist/client/charts/chartConfigHelpers.d.ts +38 -0
- package/dist/client/charts/chartConfigRegistry.d.ts +1 -1
- package/dist/client/charts/chartPlugin.d.ts +3 -3
- package/dist/client/charts/lazyChartConfigRegistry.d.ts +2 -2
- package/dist/client/charts.d.ts +8 -8
- 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-BgbDhsPz.js.map +1 -0
- package/dist/client/chunks/{RetentionHeatmap-DGzLzr7h.js → RetentionHeatmap-DjXZaTPq.js} +5 -5
- package/dist/client/chunks/RetentionHeatmap-DjXZaTPq.js.map +1 -0
- 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-kkBixZ27.js.map +1 -0
- 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-DZp19Tzh.js.map +1 -0
- package/dist/client/chunks/chart-config-activity-grid-D_UX4NHC.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-bubble-gIoqVyjZ.js.map +1 -1
- package/dist/client/chunks/chart-config-candlestick-N6DchAA3.js.map +1 -1
- package/dist/client/chunks/chart-config-data-table-d7VBY-y_.js.map +1 -1
- package/dist/client/chunks/chart-config-funnel-DEYMcxsD.js.map +1 -1
- 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-heat-map-CfRnRNcw.js.map +1 -1
- 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-markdown-BtRIe8JN.js.map +1 -1
- package/dist/client/chunks/chart-config-measure-profile-DxRGa-zf.js.map +1 -1
- 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-sankey-BTnWA7EW.js.map +1 -1
- package/dist/client/chunks/chart-config-scatter-DSYTjwRb.js.map +1 -1
- package/dist/client/chunks/chart-config-sunburst-Bwjtdf7X.js.map +1 -1
- 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-CV75S_zL.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js → chart-measure-profile-Ket8fJyf.js} +7 -7
- package/dist/client/chunks/chart-measure-profile-Ket8fJyf.js.map +1 -0
- 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-DjrvKw6K.js.map +1 -0
- 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-leGpuDj7.js.map +1 -0
- 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-DyvQReN5.js.map +1 -0
- package/dist/client/chunks/{charts-core-jRtb0S2M.js → charts-core-DaXSt1Dd.js} +2 -2
- package/dist/client/chunks/charts-core-DaXSt1Dd.js.map +1 -0
- 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-Cb_E9_Gd.js.map +1 -0
- 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-evnZkjCY.js.map +1 -0
- package/dist/client/chunks/{utils-CTKNaXS8.js → utils-3P6z1vz5.js} +2 -2
- package/dist/client/chunks/utils-3P6z1vz5.js.map +1 -0
- 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/client/BatchCoordinator.d.ts +1 -1
- package/dist/client/client/CubeClient.d.ts +1 -1
- package/dist/client/components/AIAssistant/index.d.ts +3 -3
- package/dist/client/components/AIAssistant/utils.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/ChatMessage.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/NotebookCanvas.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/NotebookMarkdownBlock.d.ts +1 -1
- package/dist/client/components/AgenticNotebook/NotebookPortletBlock.d.ts +2 -2
- 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/index.d.ts +2 -2
- 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/AnalysisAxisDropZone.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +4 -4
- package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisFilterGroup.d.ts +2 -2
- package/dist/client/components/AnalysisBuilder/AnalysisFilterItem.d.ts +2 -2
- package/dist/client/components/AnalysisBuilder/AnalysisFilterSection.d.ts +2 -2
- package/dist/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisQueryPanel.d.ts +1 -1
- 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/AnalysisResultsPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisTypeSelector.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/BreakdownComparisonToggle.d.ts +13 -0
- package/dist/client/components/AnalysisBuilder/BreakdownItemCard.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/BreakdownRow.d.ts +26 -0
- package/dist/client/components/AnalysisBuilder/BreakdownSection.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/DisplayOptionControl.d.ts +10 -0
- package/dist/client/components/AnalysisBuilder/ExecutionPlanPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/ExecutionPlanPanelParts.d.ts +22 -0
- package/dist/client/components/AnalysisBuilder/ExplainAIPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FieldDetailPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FieldSearchItem.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FieldSearchModal.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FieldSearchResults.d.ts +16 -0
- package/dist/client/components/AnalysisBuilder/FilterConfigModal.d.ts +2 -2
- package/dist/client/components/AnalysisBuilder/FilterValueInput.d.ts +63 -0
- package/dist/client/components/AnalysisBuilder/FlowConfigPanel.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/FlowDepthControls.d.ts +10 -0
- package/dist/client/components/AnalysisBuilder/FlowModeContent.d.ts +3 -3
- package/dist/client/components/AnalysisBuilder/FlowVisualizationPicker.d.ts +7 -0
- 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 +2 -2
- 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 +8 -0
- package/dist/client/components/AnalysisBuilder/MetricItemCard.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/MetricRow.d.ts +23 -0
- 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 +3 -3
- 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/index.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/types.d.ts +28 -28
- 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 +7 -2
- package/dist/client/components/AnalysisBuilder/utils/filterUtils.d.ts +1 -1
- package/dist/client/components/AnalysisBuilder/utils/index.d.ts +6 -6
- package/dist/client/components/AnalysisBuilder/utils/queryUtils.d.ts +2 -2
- package/dist/client/components/AnalysisBuilder/utils/recentFieldsUtils.d.ts +2 -2
- 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/AnalysisBuilder/utils/storageUtils.d.ts +2 -2
- package/dist/client/components/AnalysisBuilderLazy.d.ts +1 -1
- package/dist/client/components/AnalyticsDashboard.d.ts +1 -1
- package/dist/client/components/AnalyticsPortlet.d.ts +1 -1
- package/dist/client/components/ChartTypeSelector.d.ts +2 -2
- package/dist/client/components/DashboardFilterPanel.d.ts +1 -1
- package/dist/client/components/DashboardFilters/CompactFilterBar.d.ts +1 -1
- package/dist/client/components/DashboardFilters/CompactFilterBarParts.d.ts +26 -0
- package/dist/client/components/DashboardFilters/DashboardFilterConfigModal.d.ts +2 -2
- package/dist/client/components/DashboardFilters/DashboardFilterConfigModalParts.d.ts +27 -0
- package/dist/client/components/DashboardFilters/DashboardFilterItem.d.ts +2 -2
- package/dist/client/components/DashboardFilters/DashboardFilterValueInput.d.ts +39 -0
- package/dist/client/components/DashboardFilters/EditModeFilterList.d.ts +1 -1
- package/dist/client/components/DashboardFilters/FilterChip.d.ts +1 -1
- package/dist/client/components/DashboardFilters/FilterEditModal.d.ts +2 -2
- package/dist/client/components/DashboardFilters/FilterValuePopover.d.ts +1 -1
- package/dist/client/components/DashboardFilters/ReadOnlyFilterList.d.ts +2 -2
- 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/DashboardGrid.d.ts +2 -2
- package/dist/client/components/DashboardPortletCard.d.ts +2 -57
- package/dist/client/components/DebugModal.d.ts +2 -2
- package/dist/client/components/DrillBreadcrumb.d.ts +1 -1
- package/dist/client/components/DrillMenu.d.ts +1 -1
- package/dist/client/components/FloatingEditToolbar.d.ts +1 -1
- package/dist/client/components/MobileStackedLayout.d.ts +2 -2
- package/dist/client/components/PortletAnalysisModal.d.ts +1 -1
- package/dist/client/components/PortletContainer.d.ts +1 -1
- package/dist/client/components/PortletFilterConfigModal.d.ts +1 -1
- package/dist/client/components/RowManagedLayout.d.ts +1 -1
- package/dist/client/components/SchemaVisualization/CubeNode.d.ts +1 -1
- package/dist/client/components/SchemaVisualization/FieldDetailPanel.d.ts +1 -1
- package/dist/client/components/SchemaVisualization/RelationshipEdge.d.ts +1 -1
- package/dist/client/components/SchemaVisualization/SchemaVisualizationLazy.d.ts +1 -1
- package/dist/client/components/TextPortletModal.d.ts +2 -2
- 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.config.d.ts +1 -1
- package/dist/client/components/charts/ActivityGridChart.d.ts +1 -1
- 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/AreaChart.config.d.ts +1 -1
- package/dist/client/components/charts/AreaChart.d.ts +1 -1
- package/dist/client/components/charts/AxisFormatControls.d.ts +4 -2
- package/dist/client/components/charts/BarChart.config.d.ts +1 -1
- package/dist/client/components/charts/BarChart.d.ts +1 -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/BoxPlotChart.config.d.ts +1 -1
- package/dist/client/components/charts/BoxPlotChart.d.ts +1 -1
- package/dist/client/components/charts/BubbleChart.config.d.ts +1 -1
- package/dist/client/components/charts/BubbleChart.d.ts +1 -1
- 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/CandlestickChart.config.d.ts +1 -1
- package/dist/client/components/charts/CandlestickChart.d.ts +1 -1
- package/dist/client/components/charts/ChartStates.d.ts +38 -0
- package/dist/client/components/charts/DataTable.config.d.ts +1 -1
- package/dist/client/components/charts/DataTable.d.ts +1 -1
- package/dist/client/components/charts/FunnelChart.config.d.ts +1 -1
- package/dist/client/components/charts/FunnelChart.d.ts +1 -1
- 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/GaugeChart.config.d.ts +1 -1
- package/dist/client/components/charts/GaugeChart.d.ts +1 -1
- package/dist/client/components/charts/HeatMapCanvas.d.ts +25 -0
- package/dist/client/components/charts/HeatMapChart.config.d.ts +1 -1
- package/dist/client/components/charts/HeatMapChart.d.ts +1 -1
- package/dist/client/components/charts/HeatMapChart.helpers.d.ts +64 -0
- package/dist/client/components/charts/KpiDelta.config.d.ts +1 -1
- package/dist/client/components/charts/KpiDelta.d.ts +1 -1
- package/dist/client/components/charts/KpiDelta.helpers.d.ts +20 -0
- package/dist/client/components/charts/KpiNumber.config.d.ts +1 -1
- package/dist/client/components/charts/KpiNumber.d.ts +1 -1
- 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/KpiText.config.d.ts +1 -1
- package/dist/client/components/charts/KpiText.d.ts +1 -1
- package/dist/client/components/charts/LineChart.config.d.ts +1 -1
- package/dist/client/components/charts/LineChart.d.ts +1 -1
- package/dist/client/components/charts/MarkdownChart.config.d.ts +1 -1
- package/dist/client/components/charts/MarkdownChart.d.ts +1 -1
- package/dist/client/components/charts/MeasureProfileChart.config.d.ts +1 -1
- package/dist/client/components/charts/MeasureProfileChart.d.ts +1 -1
- package/dist/client/components/charts/PieChart.config.d.ts +1 -1
- package/dist/client/components/charts/PieChart.d.ts +1 -1
- package/dist/client/components/charts/RadarChart.config.d.ts +1 -1
- package/dist/client/components/charts/RadarChart.d.ts +1 -1
- package/dist/client/components/charts/RadialBarChart.config.d.ts +1 -1
- package/dist/client/components/charts/RadialBarChart.d.ts +1 -1
- package/dist/client/components/charts/RetentionCombinedChart.config.d.ts +1 -1
- package/dist/client/components/charts/RetentionCombinedChart.d.ts +1 -1
- package/dist/client/components/charts/RetentionHeatmap.config.d.ts +1 -1
- package/dist/client/components/charts/RetentionHeatmap.d.ts +1 -1
- package/dist/client/components/charts/SankeyChart.config.d.ts +1 -1
- package/dist/client/components/charts/SankeyChart.d.ts +1 -1
- package/dist/client/components/charts/ScatterChart.config.d.ts +1 -1
- package/dist/client/components/charts/ScatterChart.d.ts +1 -1
- 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/SunburstChart.config.d.ts +1 -1
- package/dist/client/components/charts/SunburstChart.d.ts +1 -1
- package/dist/client/components/charts/TreeMapChart.config.d.ts +1 -1
- package/dist/client/components/charts/TreeMapChart.d.ts +1 -1
- 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/WaterfallChart.config.d.ts +1 -1
- package/dist/client/components/charts/WaterfallChart.d.ts +1 -1
- 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/index.d.ts +21 -21
- 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/DashboardContext.d.ts +6 -6
- package/dist/client/components/dashboard/DashboardCoordinator.d.ts +1 -1
- package/dist/client/components/dashboard/DashboardEditBar.d.ts +5 -0
- package/dist/client/components/dashboard/DashboardProvider.d.ts +1 -1
- package/dist/client/components/dashboard/LayoutModeToggle.d.ts +10 -0
- package/dist/client/components/dashboard/dashboardGridUtils.d.ts +1 -1
- package/dist/client/components/dashboard/index.d.ts +7 -7
- 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/DateRangeFilter.d.ts +1 -1
- package/dist/client/components/shared/FilterBuilder.d.ts +1 -1
- package/dist/client/components/shared/FilterGroup.d.ts +1 -1
- package/dist/client/components/shared/FilterItem.d.ts +1 -1
- package/dist/client/components/shared/FilterValueSelector.d.ts +1 -1
- 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/types.d.ts +8 -8
- package/dist/client/components/shared/utils.d.ts +7 -46
- package/dist/client/components.d.ts +11 -11
- 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/dashboard/layoutUtils.d.ts +1 -1
- package/dist/client/hooks/dashboard/useDashboardController.d.ts +2 -2
- package/dist/client/hooks/dashboard/useGridLayoutEngine.d.ts +1 -1
- package/dist/client/hooks/dashboard/useRowLayoutEngine.d.ts +1 -1
- package/dist/client/hooks/drillNavigation.d.ts +25 -0
- package/dist/client/hooks/queries/index.d.ts +9 -9
- package/dist/client/hooks/queries/useCubeLoadQuery.d.ts +2 -2
- package/dist/client/hooks/queries/useCubeMetaQuery.d.ts +2 -2
- package/dist/client/hooks/queries/useDryRunQuery.d.ts +2 -2
- package/dist/client/hooks/queries/useExplainAI.d.ts +1 -1
- package/dist/client/hooks/queries/useExplainQuery.d.ts +1 -1
- package/dist/client/hooks/queries/useFlowQuery.d.ts +1 -1
- package/dist/client/hooks/queries/useFunnelQuery.d.ts +1 -1
- package/dist/client/hooks/queries/useMultiCubeLoadQuery.d.ts +1 -1
- package/dist/client/hooks/queries/useRetentionQuery.d.ts +1 -1
- package/dist/client/hooks/useAgentChat.d.ts +1 -1
- package/dist/client/hooks/useAnalysisAI.d.ts +4 -4
- package/dist/client/hooks/useAnalysisBuilderHook.d.ts +27 -27
- package/dist/client/hooks/useAnalysisChartDefaults.d.ts +4 -4
- package/dist/client/hooks/useAnalysisCombinedFields.d.ts +2 -2
- package/dist/client/hooks/useAnalysisInitialization.d.ts +1 -1
- package/dist/client/hooks/useAnalysisQueryBuilder.d.ts +3 -3
- package/dist/client/hooks/useAnalysisQueryExecution.d.ts +7 -7
- package/dist/client/hooks/useAnalysisShare.d.ts +1 -1
- package/dist/client/hooks/useAnalysisUIState.d.ts +2 -2
- package/dist/client/hooks/useDashboardHook.d.ts +2 -2
- package/dist/client/hooks/useDataBrowser.d.ts +5 -5
- package/dist/client/hooks/useDrillInteraction.d.ts +1 -1
- package/dist/client/hooks/useTheme.d.ts +1 -1
- package/dist/client/hooks/useTranslation.d.ts +1 -1
- package/dist/client/hooks.d.ts +11 -11
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons/defaultIcons.d.ts +1 -1
- package/dist/client/icons/index.d.ts +3 -3
- package/dist/client/icons/registry.d.ts +1 -1
- package/dist/client/icons.js +2 -2
- package/dist/client/index.d.ts +74 -74
- package/dist/client/index.js +816 -669
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers/CubeApiProvider.d.ts +3 -3
- package/dist/client/providers/CubeFeaturesProvider.d.ts +1 -1
- package/dist/client/providers/CubeMetaContext.d.ts +1 -1
- package/dist/client/providers/CubeProvider.d.ts +7 -7
- package/dist/client/providers/I18nProvider.d.ts +1 -1
- package/dist/client/providers.d.ts +4 -4
- package/dist/client/providers.js +3 -3
- package/dist/client/schema.d.ts +2 -2
- package/dist/client/schema.js +1 -1
- package/dist/client/shared/chartConfigBuilders.d.ts +18 -0
- package/dist/client/shared/chartDefaults.d.ts +4 -4
- package/dist/client/shared/components/QueryAnalysisPanel.d.ts +1 -1
- package/dist/client/shared/components/QueryAnalysisPanel.sections.d.ts +41 -0
- package/dist/client/shared/index.d.ts +7 -7
- package/dist/client/shared/queryTransforms.d.ts +20 -0
- package/dist/client/shared/types.d.ts +1 -1
- package/dist/client/shared/utils.d.ts +4 -6
- package/dist/client/stores/analysisBuilderStore.d.ts +9 -9
- package/dist/client/stores/dashboardStore.d.ts +3 -3
- package/dist/client/stores/dataBrowserStore.d.ts +1 -1
- package/dist/client/stores/notebookStore.d.ts +1 -1
- package/dist/client/stores/optionsToAnalysisConfig.d.ts +17 -0
- package/dist/client/stores/slices/coreSlice.d.ts +3 -3
- package/dist/client/stores/slices/flowSlice.d.ts +3 -3
- package/dist/client/stores/slices/funnelSlice.d.ts +3 -3
- package/dist/client/stores/slices/index.d.ts +7 -7
- package/dist/client/stores/slices/querySlice.d.ts +3 -3
- package/dist/client/stores/slices/retentionSlice.d.ts +3 -3
- package/dist/client/stores/slices/uiSlice.d.ts +2 -2
- package/dist/client/styles.css +1 -1
- package/dist/client/types/analysisConfig.d.ts +4 -4
- package/dist/client/types/drill.d.ts +5 -5
- package/dist/client/types/flow.d.ts +2 -2
- package/dist/client/types/funnel.d.ts +1 -1
- package/dist/client/types/retention.d.ts +2 -2
- package/dist/client/types.d.ts +12 -12
- package/dist/client/utils/axisValueFormatting.d.ts +32 -0
- package/dist/client/utils/chartUtils.d.ts +1 -1
- package/dist/client/utils/configMigration.d.ts +2 -2
- package/dist/client/utils/drillQueryBuilder.d.ts +2 -2
- package/dist/client/utils/exportXlsx.d.ts +2 -2
- package/dist/client/utils/filterUtils.d.ts +1 -1
- package/dist/client/utils/funnelExecution.d.ts +2 -2
- package/dist/client/utils/funnelValidation.d.ts +2 -2
- package/dist/client/utils/index.d.ts +10 -10
- package/dist/client/utils/joinReachability.d.ts +1 -1
- package/dist/client/utils/multiQueryUtils.d.ts +1 -1
- package/dist/client/utils/multiQueryValidation.d.ts +1 -1
- package/dist/client/utils/pivotUtils.d.ts +1 -1
- package/dist/client/utils/shareUtils.d.ts +1 -1
- package/dist/client/utils/thumbnail.d.ts +1 -1
- package/dist/client/utils/timeValueFormatting.d.ts +32 -0
- package/dist/client/utils.d.ts +2 -2
- 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/{server/adapters → adapters}/base-adapter.d.ts +81 -36
- package/dist/server/adapters/databend-adapter.d.ts +63 -0
- package/dist/server/{server/adapters → adapters}/duckdb-adapter.d.ts +6 -60
- package/dist/server/adapters/mysql-adapter.d.ts +65 -0
- package/dist/server/adapters/postgres-adapter.d.ts +55 -0
- package/dist/server/{server/adapters → adapters}/singlestore-adapter.d.ts +1 -1
- package/dist/server/adapters/snowflake-adapter.d.ts +53 -0
- package/dist/server/{server/adapters → adapters}/sqlite-adapter.d.ts +13 -33
- package/dist/server/adapters/window-function-builder.d.ts +11 -0
- package/dist/server/{server/agent → agent}/chart-validation.d.ts +0 -5
- package/dist/server/agent/handler-steps.d.ts +37 -0
- package/dist/server/{server/agent → agent}/handler.d.ts +3 -3
- package/dist/server/agent/index.d.ts +11 -0
- package/dist/server/{server/agent → agent}/providers/anthropic.d.ts +1 -1
- package/dist/server/{server/agent → agent}/providers/factory.d.ts +1 -1
- package/dist/server/{server/agent → agent}/providers/google.d.ts +1 -1
- package/dist/server/agent/providers/index.d.ts +6 -0
- package/dist/server/{server/agent → agent}/providers/openai.d.ts +1 -1
- package/dist/server/{server/agent → agent}/system-prompt.d.ts +1 -1
- package/dist/server/{server/agent → agent}/tools.d.ts +4 -4
- package/dist/server/{server/agent → agent}/types.d.ts +1 -1
- package/dist/server/ai/discovery-helpers.d.ts +29 -0
- package/dist/server/{server/ai → ai}/discovery.d.ts +6 -2
- package/dist/server/{server/ai → ai}/index.d.ts +6 -6
- package/dist/server/ai/suggestion-helpers.d.ts +33 -0
- package/dist/server/{server/ai → ai}/suggestion.d.ts +2 -5
- package/dist/server/ai/validation-helpers.d.ts +21 -0
- package/dist/server/{server/ai → ai}/validation.d.ts +2 -5
- package/dist/server/builders/analysis-utils.d.ts +106 -0
- package/dist/server/{server/builders → builders}/comparison-query-builder.d.ts +2 -2
- package/dist/server/{server/builders → builders}/cte-builder.d.ts +48 -2
- package/dist/server/{server/builders → builders}/date-time-builder.d.ts +7 -2
- package/dist/server/builders/date-time-helpers.d.ts +34 -0
- package/dist/server/{server/builders → builders}/filter-builder.d.ts +5 -3
- package/dist/server/builders/filter-operators.d.ts +23 -0
- package/dist/server/builders/flow-query-builder.d.ts +136 -0
- package/dist/server/{server/builders → builders}/funnel-query-builder.d.ts +18 -7
- package/dist/server/{server/builders → builders}/group-by-builder.d.ts +13 -2
- package/dist/server/builders/index.d.ts +13 -0
- package/dist/server/{server/builders → builders}/measure-builder.d.ts +46 -3
- package/dist/server/{server/builders → builders}/retention-query-builder.d.ts +14 -16
- package/dist/server/cache-providers/index.d.ts +5 -0
- package/dist/server/{server/cache-providers → cache-providers}/memory.d.ts +1 -1
- package/dist/server/{server/cache-utils.d.ts → cache-utils.d.ts} +26 -6
- package/dist/server/compiler-metadata.d.ts +11 -0
- package/dist/server/{server/compiler.d.ts → compiler.d.ts} +9 -15
- package/dist/server/{server/cube-utils.d.ts → cube-utils.d.ts} +29 -4
- package/dist/server/{server/database-utils.d.ts → database-utils.d.ts} +1 -1
- package/dist/server/execution/annotation-builder.d.ts +12 -0
- package/dist/server/execution/filter-cache-preloader.d.ts +19 -0
- package/dist/server/execution/mode-router.d.ts +25 -0
- package/dist/server/execution/query-result-cache.d.ts +21 -0
- package/dist/server/execution/result-post-processor.d.ts +10 -0
- package/dist/server/{server/executor.d.ts → executor.d.ts} +35 -32
- package/dist/server/{server/executors → executors}/base-executor.d.ts +2 -2
- package/dist/server/{server/executors → executors}/databend-executor.d.ts +2 -2
- package/dist/server/{server/executors → executors}/duckdb-executor.d.ts +2 -2
- package/dist/server/executors/explain-utils.d.ts +28 -0
- package/dist/server/{server/executors → executors}/index.d.ts +9 -9
- package/dist/server/{server/executors → executors}/mysql-executor.d.ts +2 -2
- package/dist/server/{server/executors → executors}/postgres-executor.d.ts +2 -2
- package/dist/server/{server/executors → executors}/singlestore-executor.d.ts +2 -2
- package/dist/server/{server/executors → executors}/snowflake-executor.d.ts +2 -2
- package/dist/server/{server/executors → executors}/sqlite-executor.d.ts +2 -2
- package/dist/server/{server/explain → explain}/databend-parser.d.ts +1 -1
- package/dist/server/{server/explain → explain}/duckdb-parser.d.ts +1 -1
- package/dist/server/explain/explain-tree.d.ts +20 -0
- package/dist/server/explain/index.d.ts +9 -0
- package/dist/server/{server/explain → explain}/mysql-parser.d.ts +1 -1
- package/dist/server/{server/explain → explain}/postgres-parser.d.ts +1 -1
- package/dist/server/{server/explain → explain}/snowflake-parser.d.ts +1 -1
- package/dist/server/{server/explain → explain}/sqlite-parser.d.ts +1 -1
- package/dist/server/{server/filter-cache.d.ts → filter-cache.d.ts} +2 -2
- package/dist/server/{server/gap-filler.d.ts → gap-filler.d.ts} +8 -2
- package/dist/server/google-BOnRIN1w.cjs +2 -0
- package/dist/{adapters/google-CFYljAOF.js → server/google-CvKM9yVM.js} +83 -71
- package/dist/server/index.cjs +179 -211
- package/dist/server/index.d.ts +38 -2
- package/dist/server/index.js +6330 -6458
- package/dist/server/logical-plan/cte-planner-helpers.d.ts +37 -0
- package/dist/server/logical-plan/cte-planner.d.ts +104 -0
- package/dist/server/logical-plan/filter-propagation.d.ts +44 -0
- package/dist/server/{server/logical-plan → logical-plan}/index.d.ts +11 -6
- package/dist/server/logical-plan/join-planner.d.ts +27 -0
- package/dist/server/{server/logical-plan → logical-plan}/logical-plan-builder.d.ts +5 -5
- package/dist/server/logical-plan/logical-planner.d.ts +39 -0
- package/dist/server/{server/logical-plan → logical-plan}/optimiser.d.ts +4 -2
- package/dist/server/logical-plan/plan-analysis-reporter.d.ts +59 -0
- package/dist/server/logical-plan/planner-utils.d.ts +20 -0
- package/dist/server/{server/logical-plan → logical-plan}/types.d.ts +18 -10
- package/dist/server/measure-classification.d.ts +40 -0
- package/dist/server/{openai-BZdAA7Ji.js → openai-cDlFSTk6.js} +60 -58
- package/dist/server/openai-vXvLni8v.cjs +1 -0
- package/dist/server/physical-plan/drizzle-plan-builder.d.ts +50 -0
- package/dist/server/{server/physical-plan → physical-plan}/drizzle-sql-builder.d.ts +14 -3
- package/dist/server/physical-plan/index.d.ts +2 -0
- package/dist/server/{server/physical-plan → physical-plan}/processors/cte-processor.d.ts +2 -2
- package/dist/server/physical-plan/processors/index.d.ts +8 -0
- package/dist/server/{server/physical-plan → physical-plan}/processors/joins-processor.d.ts +2 -2
- package/dist/server/physical-plan/processors/keys-dedup-processor.d.ts +13 -0
- package/dist/server/physical-plan/processors/multi-fact-processor.d.ts +13 -0
- package/dist/server/{server/physical-plan → physical-plan}/processors/predicates-processor.d.ts +2 -2
- package/dist/server/{server/physical-plan → physical-plan}/processors/selection-processor.d.ts +2 -2
- package/dist/server/{server/physical-plan → physical-plan}/processors/shared.d.ts +9 -4
- package/dist/server/{server/physical-plan → physical-plan}/processors/window-processor.d.ts +2 -2
- package/dist/server/query-handlers.d.ts +79 -0
- package/dist/server/query-modes.d.ts +28 -0
- package/dist/server/query-validator.d.ts +9 -0
- package/dist/server/{server/resolvers → resolvers}/calculated-measure-resolver.d.ts +6 -1
- package/dist/server/{server/resolvers → resolvers}/index.d.ts +2 -2
- package/dist/server/{server/resolvers → resolvers}/join-path-resolver.d.ts +7 -1
- package/dist/server/sql-format.d.ts +11 -0
- package/dist/server/{server/template-substitution.d.ts → template-substitution.d.ts} +1 -1
- package/dist/server/{server/types → types}/cache.d.ts +1 -1
- package/dist/server/{server/types → types}/cube.d.ts +22 -8
- package/dist/server/{server/types → types}/executor.d.ts +2 -2
- package/dist/server/{server/types → types}/flow.d.ts +7 -6
- package/dist/server/{server/types → types}/funnel.d.ts +1 -1
- package/dist/server/types/index.d.ts +11 -0
- package/dist/server/{server/types → types}/metadata.d.ts +1 -1
- package/dist/server/{server/types → types}/query.d.ts +4 -4
- package/dist/server/{server/types → types}/retention.d.ts +1 -1
- package/dist/server/{server/types → types}/utils.d.ts +1 -1
- package/dist/server/types/validation.d.ts +14 -0
- package/package.json +22 -7
- 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/RetentionCombinedChart-BPkfcTa8.js.map +0 -1
- package/dist/client/chunks/RetentionHeatmap-DGzLzr7h.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-box-plot-DYKfyOI8.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-candlestick-Dwc92Mrj.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-markdown-dgUetjyM.js.map +0 -1
- package/dist/client/chunks/chart-measure-profile-ClfpLs4q.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-sankey-M3XpO_ah.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-sunburst-A_u6lqlS.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/chart-waterfall-BuhMoagf.js.map +0 -1
- package/dist/client/chunks/charts-core-jRtb0S2M.js.map +0 -1
- package/dist/client/chunks/schema-visualization-DE09kQE3.js.map +0 -1
- package/dist/client/chunks/useDirtyStateTracking-CoeQbprt.js.map +0 -1
- package/dist/client/chunks/useExplainAI-DlnXWdmz.js.map +0 -1
- package/dist/client/chunks/utils-CTKNaXS8.js.map +0 -1
- package/dist/server/google-DUlXeeDA.cjs +0 -2
- package/dist/server/openai-D_U4V0kT.cjs +0 -1
- package/dist/server/server/adapters/databend-adapter.d.ts +0 -114
- package/dist/server/server/adapters/mysql-adapter.d.ts +0 -122
- package/dist/server/server/adapters/postgres-adapter.d.ts +0 -119
- package/dist/server/server/adapters/snowflake-adapter.d.ts +0 -116
- package/dist/server/server/agent/index.d.ts +0 -11
- package/dist/server/server/agent/providers/index.d.ts +0 -6
- package/dist/server/server/builders/flow-query-builder.d.ts +0 -109
- package/dist/server/server/builders/index.d.ts +0 -13
- package/dist/server/server/cache-providers/index.d.ts +0 -5
- package/dist/server/server/explain/index.d.ts +0 -9
- package/dist/server/server/index.d.ts +0 -36
- package/dist/server/server/logical-plan/logical-planner.d.ts +0 -232
- package/dist/server/server/physical-plan/drizzle-plan-builder.d.ts +0 -50
- package/dist/server/server/physical-plan/index.d.ts +0 -2
- package/dist/server/server/physical-plan/processors/index.d.ts +0 -6
- package/dist/server/server/types/index.d.ts +0 -11
- /package/dist/server/{server/agent → agent}/providers/types.d.ts +0 -0
- /package/dist/server/{server/ai → ai}/mcp-prompts.d.ts +0 -0
- /package/dist/server/{server/ai → ai}/query-schema.d.ts +0 -0
- /package/dist/server/{server/ai → ai}/schemas.d.ts +0 -0
- /package/dist/server/{server/prompts → prompts}/explain-analysis-prompt.d.ts +0 -0
- /package/dist/server/{server/prompts → prompts}/index.d.ts +0 -0
- /package/dist/server/{server/prompts → prompts}/single-step-prompt.d.ts +0 -0
- /package/dist/server/{server/prompts → prompts}/step0-validation-prompt.d.ts +0 -0
- /package/dist/server/{server/prompts → prompts}/step1-shape-prompt.d.ts +0 -0
- /package/dist/server/{server/prompts → prompts}/step2-complete-prompt.d.ts +0 -0
- /package/dist/server/{server/prompts → prompts}/types.d.ts +0 -0
- /package/dist/server/{server/types → types}/analysis.d.ts +0 -0
- /package/dist/server/{server/types → types}/core.d.ts +0 -0
package/dist/client/chunks/{chart-measure-profile-ClfpLs4q.js → chart-measure-profile-Ket8fJyf.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as e } from "./rolldown-runtime-CWhphoD1.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { P as t, S as n, l as r, s as i, w as a } from "./chart-activity-grid-DX0SJbxs.js";
|
|
3
|
+
import { C as o, T as s, w as c } from "./chart-area-of01_62R.js";
|
|
4
4
|
import l, { useMemo as u } from "react";
|
|
5
5
|
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
6
6
|
import { CartesianGrid as p, Legend as m, Line as h, LineChart as g, ReferenceLine as _, XAxis as v, YAxis as y } from "recharts";
|
|
@@ -49,7 +49,7 @@ function x(e, t, n, r) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
var S = l.memo(function({ data: e, chartConfig: l, displayConfig: b = {}, height: S = "100%", colorPalette: C, drillEnabled: w }) {
|
|
52
|
-
let { t: T } =
|
|
52
|
+
let { t: T } = t(), E = n(), D = b?.showReferenceLineAtZero ?? !0, O = b?.showDataLabels ?? !1, k = b?.lineType ?? "monotone", A = b?.leftYAxisFormat, { yAxisFields: j, seriesField: M, configError: N } = u(() => {
|
|
53
53
|
let e = Array.isArray(l?.yAxis) ? l.yAxis : [];
|
|
54
54
|
return {
|
|
55
55
|
yAxisFields: e,
|
|
@@ -101,7 +101,7 @@ var S = l.memo(function({ data: e, chartConfig: l, displayConfig: b = {}, height
|
|
|
101
101
|
children: /* @__PURE__ */ f(g, {
|
|
102
102
|
data: P,
|
|
103
103
|
margin: {
|
|
104
|
-
...
|
|
104
|
+
...r,
|
|
105
105
|
left: 40
|
|
106
106
|
},
|
|
107
107
|
accessibilityLayer: !1,
|
|
@@ -113,14 +113,14 @@ var S = l.memo(function({ data: e, chartConfig: l, displayConfig: b = {}, height
|
|
|
113
113
|
/* @__PURE__ */ d(v, {
|
|
114
114
|
dataKey: "measureLabel",
|
|
115
115
|
type: "category",
|
|
116
|
-
tick: /* @__PURE__ */ d(
|
|
116
|
+
tick: /* @__PURE__ */ d(o, {}),
|
|
117
117
|
height: 60
|
|
118
118
|
}),
|
|
119
119
|
/* @__PURE__ */ d(y, {
|
|
120
120
|
tick: { fontSize: 12 },
|
|
121
121
|
tickFormatter: A ? (e) => a(e, A) : void 0
|
|
122
122
|
}),
|
|
123
|
-
/* @__PURE__ */ d(
|
|
123
|
+
/* @__PURE__ */ d(c, { formatter: (e, t) => e == null ? ["No data", t] : [A ? a(e, A) : e?.toLocaleString?.() ?? e, t === "_value" ? E(j[0]?.split(".")[0]) || "Value" : t] }),
|
|
124
124
|
D && /* @__PURE__ */ d(_, {
|
|
125
125
|
y: 0,
|
|
126
126
|
stroke: "var(--dc-border, #94a3b8)",
|
|
@@ -176,4 +176,4 @@ var S = l.memo(function({ data: e, chartConfig: l, displayConfig: b = {}, height
|
|
|
176
176
|
//#endregion
|
|
177
177
|
export { b as t };
|
|
178
178
|
|
|
179
|
-
//# sourceMappingURL=chart-measure-profile-
|
|
179
|
+
//# sourceMappingURL=chart-measure-profile-Ket8fJyf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-measure-profile-Ket8fJyf.js","names":[],"sources":["../../../src/client/components/charts/MeasureProfileChart.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { useTranslation } from '../../hooks/useTranslation.js'\nimport { LineChart, Line, XAxis, YAxis, CartesianGrid, ReferenceLine, Legend } from 'recharts'\nimport ChartContainer from './ChartContainer.js'\nimport ChartTooltip from './ChartTooltip.js'\nimport AngledXAxisTick from './AngledXAxisTick.js'\nimport { CHART_COLORS, CHART_MARGINS } from '../../utils/chartConstants.js'\nimport { formatAxisValue } from '../../utils/chartUtils.js'\nimport { useCubeFieldLabel } from '../../hooks/useCubeFieldLabel.js'\nimport type { ChartProps } from '../../types.js'\n\n/**\n * Pivots N measures from chartConfig.yAxis[] into sequential X-axis points.\n * Each measure becomes one X-axis category; its numeric value is Y.\n * When a series dimension is provided, values are averaged across all rows\n * that share the same series value.\n *\n * Input (normal cube rows):\n * [{ 'Markouts.avgMinus2m': 10, 'Markouts.avgAtEvent': 0, 'Trades.symbol': 'AAPL' },\n * { 'Markouts.avgMinus2m': 12, 'Markouts.avgAtEvent': 1, 'Trades.symbol': 'AAPL' }]\n *\n * Output (one row per measure, values averaged per series):\n * [{ measureKey: 'Markouts.avgMinus2m', measureLabel: <getFieldLabel result>, AAPL: 11 },\n * { measureKey: 'Markouts.avgAtEvent', measureLabel: <getFieldLabel result>, AAPL: 0.5 }]\n */\nfunction pivotMeasuresToProfile(\n data: Record<string, unknown>[],\n yAxisFields: string[],\n seriesField: string | undefined,\n getFieldLabel: (field: string) => string\n): { profileData: Record<string, unknown>[]; seriesKeys: string[] } {\n if (!data || data.length === 0 || yAxisFields.length === 0) {\n return { profileData: [], seriesKeys: [] }\n }\n\n if (seriesField) {\n const seriesValues = Array.from(new Set(data.map((row) => String(row[seriesField] ?? 'Unknown'))))\n const profileData = yAxisFields.map((field) => {\n const base: Record<string, unknown> = {\n measureKey: field,\n measureLabel: getFieldLabel(field),\n }\n for (const seriesVal of seriesValues) {\n const matchingRows = data.filter((row) => String(row[seriesField] ?? 'Unknown') === seriesVal)\n const values = matchingRows\n .map((r) => {\n const v = r[field]\n return typeof v === 'number' ? v : parseFloat(String(v ?? ''))\n })\n .filter((v) => !isNaN(v))\n base[seriesVal] = values.length > 0 ? values.reduce((a, b) => a + b, 0) / values.length : null\n }\n return base\n })\n return { profileData, seriesKeys: seriesValues }\n } else {\n const VALUE_KEY = '_value'\n const profileData = yAxisFields.map((field) => {\n const values = data\n .map((r) => {\n const v = r[field]\n return typeof v === 'number' ? v : parseFloat(String(v ?? ''))\n })\n .filter((v) => !isNaN(v))\n return {\n measureKey: field,\n measureLabel: getFieldLabel(field),\n [VALUE_KEY]: values.length > 0 ? values.reduce((a, b) => a + b, 0) / values.length : null,\n }\n })\n return { profileData, seriesKeys: [VALUE_KEY] }\n }\n}\n\nconst MeasureProfileChart = React.memo(function MeasureProfileChart({\n data,\n chartConfig,\n displayConfig = {},\n height = '100%',\n colorPalette,\n drillEnabled,\n}: ChartProps) {\n const { t } = useTranslation()\n const getFieldLabel = useCubeFieldLabel()\n\n const showReferenceLineAtZero = displayConfig?.showReferenceLineAtZero ?? true\n const showDataLabels = displayConfig?.showDataLabels ?? false\n const lineType = displayConfig?.lineType ?? 'monotone'\n const yAxisFormat = displayConfig?.leftYAxisFormat\n\n const { yAxisFields, seriesField, configError } = useMemo(() => {\n const yAxisFields: string[] = Array.isArray(chartConfig?.yAxis)\n ? chartConfig.yAxis\n : []\n const seriesField = Array.isArray(chartConfig?.series)\n ? chartConfig.series[0]\n : chartConfig?.series ?? undefined\n const configError =\n yAxisFields.length < 2 ? 'Measure Profile chart requires at least 2 measures in Y-Axis' : null\n return { yAxisFields, seriesField, configError }\n }, [chartConfig])\n\n const { profileData, seriesKeys } = useMemo(() => {\n if (configError || !data || data.length === 0) return { profileData: [], seriesKeys: [] }\n return pivotMeasuresToProfile(\n data as Record<string, unknown>[],\n yAxisFields,\n seriesField,\n getFieldLabel\n )\n }, [data, yAxisFields, seriesField, getFieldLabel, configError])\n\n const showLegend = (displayConfig?.showLegend ?? true) && seriesKeys.length > 1\n\n try {\n if (!data || data.length === 0) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-text-muted\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">{t('chart.runtime.noData')}</div>\n <div className=\"dc:text-xs text-dc-text-secondary\">{t('chart.runtime.noDataHint.measureProfile')}</div>\n </div>\n </div>\n )\n }\n\n if (configError) {\n return (\n <div className=\"dc:flex dc:items-center dc:justify-center dc:w-full text-dc-warning\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">{t('chart.runtime.configError')}</div>\n <div className=\"dc:text-xs\">{configError}</div>\n </div>\n </div>\n )\n }\n return (\n <div className=\"dc:relative dc:w-full\" style={{ height }}>\n <ChartContainer height=\"100%\">\n <LineChart data={profileData} margin={{ ...CHART_MARGINS, left: 40 }} accessibilityLayer={false}>\n <CartesianGrid strokeDasharray=\"3 3\" style={{ pointerEvents: 'none' }} />\n <XAxis dataKey=\"measureLabel\" type=\"category\" tick={<AngledXAxisTick />} height={60} />\n <YAxis\n tick={{ fontSize: 12 }}\n tickFormatter={yAxisFormat ? (v) => formatAxisValue(v, yAxisFormat) : undefined}\n />\n <ChartTooltip\n formatter={(value: any, name: any) => {\n if (value === null || value === undefined) return ['No data', name]\n const formatted = yAxisFormat ? formatAxisValue(value, yAxisFormat) : value?.toLocaleString?.() ?? value\n const displayName = name === '_value' ? (getFieldLabel(yAxisFields[0]?.split('.')[0]) || 'Value') : name\n return [formatted, displayName]\n }}\n />\n {showReferenceLineAtZero && (\n <ReferenceLine y={0} stroke=\"var(--dc-border, #94a3b8)\" strokeDasharray=\"4 2\" />\n )}\n {showLegend && (\n <Legend wrapperStyle={{ fontSize: '12px', paddingTop: '8px' }} />\n )}\n {seriesKeys.map((seriesKey, index) => (\n <Line\n key={seriesKey}\n type={lineType}\n dataKey={seriesKey}\n name={seriesKey === '_value' ? (getFieldLabel(yAxisFields[0]?.split('.')[0]) || 'Value') : seriesKey}\n stroke={\n (colorPalette?.colors && colorPalette.colors[index % colorPalette.colors.length]) ||\n CHART_COLORS[index % CHART_COLORS.length]\n }\n strokeWidth={2}\n dot={showDataLabels ? { r: 4 } : { r: 3 }}\n activeDot={{ r: 5 }}\n label={showDataLabels ? { position: 'top', fontSize: 10 } : undefined}\n isAnimationActive={false}\n cursor={drillEnabled ? 'pointer' : undefined}\n />\n ))}\n </LineChart>\n </ChartContainer>\n </div>\n )\n } catch (error) {\n return (\n <div className=\"dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full text-dc-error dc:p-4\" style={{ height }}>\n <div className=\"dc:text-center\">\n <div className=\"dc:text-sm dc:font-semibold dc:mb-1\">{t('chart.runtime.chartError', { chartType: 'Measure Profile Chart' })}</div>\n <div className=\"dc:text-xs dc:mb-2\">{error instanceof Error ? error.message : t('chart.runtime.unknownError')}</div>\n <div className=\"dc:text-xs text-dc-text-muted\">{t('chart.runtime.checkConfig')}</div>\n </div>\n </div>\n )\n }\n})\n\nexport default MeasureProfileChart\n"],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { n as e } from "./rolldown-runtime-CWhphoD1.js";
|
|
2
|
+
import { D as t, E as n, M as r, P as i, S as a, s as o, w as s } from "./chart-activity-grid-DX0SJbxs.js";
|
|
3
|
+
import { S as c, T as l, b as u, w as d, x as f, y as p } from "./chart-area-of01_62R.js";
|
|
4
|
+
import m, { useMemo as h, useState as g } from "react";
|
|
5
|
+
import { jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
6
|
+
import { Cell as y, Legend as b, Pie as x, PieChart as S } from "recharts";
|
|
7
|
+
//#region src/client/components/charts/PieChart.tsx
|
|
8
|
+
var C = /* @__PURE__ */ e({ default: () => T });
|
|
9
|
+
function w(e, i, a, o, s, c) {
|
|
10
|
+
let l;
|
|
11
|
+
if (o.length > 0) {
|
|
12
|
+
let { data: t } = r(e, i, a, s, o, c);
|
|
13
|
+
if (l = [], t.length > 0) {
|
|
14
|
+
let e = t[0];
|
|
15
|
+
Object.keys(e).forEach((t) => {
|
|
16
|
+
t !== "name" && typeof e[t] == "number" && l.push({
|
|
17
|
+
name: String(t),
|
|
18
|
+
value: e[t]
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
let r = t(s, i);
|
|
24
|
+
l = e.map((e) => {
|
|
25
|
+
let t = n(e[i], r) || String(e[i]) || "Unknown";
|
|
26
|
+
return typeof e[i] == "boolean" ? t = e[i] ? "Active" : "Inactive" : (t === "true" || t === "false") && (t = t === "true" ? "Active" : "Inactive"), {
|
|
27
|
+
name: t,
|
|
28
|
+
value: typeof e[a[0]] == "string" ? parseFloat(e[a[0]]) : e[a[0]] || 0
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
let u = l.length;
|
|
33
|
+
return l = l.filter((e) => e.value != null && !isNaN(e.value) && e.value !== 0 && e.value > 0), {
|
|
34
|
+
pieData: l,
|
|
35
|
+
originalLength: u
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
var T = m.memo(function({ data: e, chartConfig: t, displayConfig: n = {}, queryObject: r, height: m = "100%", colorPalette: C, onDataPointClick: T, drillEnabled: E }) {
|
|
39
|
+
let { t: D } = i(), [O, k] = g(null), A = a(), { xAxisField: j, yAxisFields: M, seriesFields: N, errorCode: P } = h(() => p(t), [t]);
|
|
40
|
+
try {
|
|
41
|
+
let t = {
|
|
42
|
+
showLegend: n?.showLegend ?? !0,
|
|
43
|
+
showTooltip: n?.showTooltip ?? !0,
|
|
44
|
+
leftYAxisFormat: n?.leftYAxisFormat,
|
|
45
|
+
innerRadius: n?.innerRadius || "0%"
|
|
46
|
+
};
|
|
47
|
+
if (!e || e.length === 0) return /* @__PURE__ */ _(f, {
|
|
48
|
+
height: m,
|
|
49
|
+
hint: D("chart.runtime.noDataHint.pie")
|
|
50
|
+
});
|
|
51
|
+
if (P) return /* @__PURE__ */ _(u, {
|
|
52
|
+
height: m,
|
|
53
|
+
hint: D(P === "axisInvalid" ? "chart.runtime.configErrorHint.pieAxis" : "chart.runtime.configErrorHint.axisFields")
|
|
54
|
+
});
|
|
55
|
+
let { pieData: i, originalLength: a } = w(e, j, M, N, r, A);
|
|
56
|
+
return i.length === 0 ? /* @__PURE__ */ _(f, {
|
|
57
|
+
height: m,
|
|
58
|
+
titleKey: "chart.runtime.noValidData",
|
|
59
|
+
hint: a > 0 ? `Filtered out ${a} data points (zero or invalid values)` : "No data points to display in pie chart"
|
|
60
|
+
}) : /* @__PURE__ */ _(l, {
|
|
61
|
+
height: m,
|
|
62
|
+
children: /* @__PURE__ */ v(S, {
|
|
63
|
+
accessibilityLayer: !1,
|
|
64
|
+
children: [
|
|
65
|
+
/* @__PURE__ */ _(x, {
|
|
66
|
+
data: i,
|
|
67
|
+
cx: "50%",
|
|
68
|
+
cy: "50%",
|
|
69
|
+
innerRadius: t.innerRadius === "0%" ? void 0 : t.innerRadius,
|
|
70
|
+
outerRadius: "70%",
|
|
71
|
+
dataKey: "value",
|
|
72
|
+
label: t.showLegend ? void 0 : ({ name: e, percent: t }) => `${e} ${((t || 0) * 100).toFixed(0)}%`,
|
|
73
|
+
cursor: E ? "pointer" : void 0,
|
|
74
|
+
onClick: (e, t, n) => {
|
|
75
|
+
T && E && e && T({
|
|
76
|
+
dataPoint: e,
|
|
77
|
+
clickedField: M[0],
|
|
78
|
+
xValue: e.name,
|
|
79
|
+
position: {
|
|
80
|
+
x: n.clientX,
|
|
81
|
+
y: n.clientY
|
|
82
|
+
},
|
|
83
|
+
nativeEvent: n
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
children: i.map((e, t) => /* @__PURE__ */ _(y, {
|
|
87
|
+
fill: C?.colors && C.colors[t % C.colors.length] || o[t % o.length],
|
|
88
|
+
fillOpacity: O ? O === i[t].name ? 1 : .3 : 1
|
|
89
|
+
}, `cell-${t}`))
|
|
90
|
+
}),
|
|
91
|
+
t.showTooltip && /* @__PURE__ */ _(d, { formatter: t.leftYAxisFormat ? (e, n) => [s(e, t.leftYAxisFormat), n] : void 0 }),
|
|
92
|
+
t.showLegend && /* @__PURE__ */ _(b, {
|
|
93
|
+
wrapperStyle: {
|
|
94
|
+
fontSize: "12px",
|
|
95
|
+
paddingTop: "10px"
|
|
96
|
+
},
|
|
97
|
+
iconType: "circle",
|
|
98
|
+
iconSize: 8,
|
|
99
|
+
layout: "horizontal",
|
|
100
|
+
align: "center",
|
|
101
|
+
verticalAlign: "bottom",
|
|
102
|
+
onMouseEnter: (e) => k(String(e.value || "")),
|
|
103
|
+
onMouseLeave: () => k(null)
|
|
104
|
+
})
|
|
105
|
+
]
|
|
106
|
+
})
|
|
107
|
+
});
|
|
108
|
+
} catch (e) {
|
|
109
|
+
return /* @__PURE__ */ _(c, {
|
|
110
|
+
height: m,
|
|
111
|
+
chartType: "Pie Chart",
|
|
112
|
+
error: e
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
//#endregion
|
|
117
|
+
export { C as n, T as t };
|
|
118
|
+
|
|
119
|
+
//# sourceMappingURL=chart-pie-ByieAX5H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-pie-ByieAX5H.js","names":[],"sources":["../../../src/client/components/charts/PieChart.tsx"],"sourcesContent":["import React, { useState, useMemo } from 'react'\nimport { useTranslation } from '../../hooks/useTranslation.js'\nimport { PieChart as RechartsPieChart, Pie, Cell, Legend } from 'recharts'\nimport ChartContainer from './ChartContainer.js'\nimport ChartTooltip from './ChartTooltip.js'\nimport { ChartEmptyState, ChartConfigError, ChartRenderError } from './ChartStates.js'\nimport { resolveChartAxisFields } from './chartAxisResolution.js'\nimport { CHART_COLORS } from '../../utils/chartConstants.js'\nimport { transformChartDataWithSeries, formatTimeValue, getFieldGranularity, formatAxisValue } from '../../utils/chartUtils.js'\nimport { useCubeFieldLabel } from '../../hooks/useCubeFieldLabel.js'\nimport type { ChartProps, CubeQuery } from '../../types.js'\n\ninterface PieSlice {\n name: string\n value: number\n}\n\n/**\n * Build pie slices from query data, supporting both series-based (dimension\n * slices) and standard measure-based pies. Returns the slices that survive\n * value filtering plus the pre-filter count (so the caller can explain how\n * many points were dropped). Pure — extracted to keep `PieChart` simple.\n */\nfunction buildPieData(\n data: any[],\n xField: string,\n yAxisFields: string[],\n seriesFields: string[],\n queryObject: CubeQuery | undefined,\n getFieldLabel: (field: string) => string\n): { pieData: PieSlice[]; originalLength: number } {\n let pieData: PieSlice[]\n\n if (seriesFields.length > 0) {\n // Use series-based transformation for dimension-based pie slices\n const { data: chartData } = transformChartDataWithSeries(\n data,\n xField,\n yAxisFields,\n queryObject,\n seriesFields,\n getFieldLabel\n )\n\n // Convert series data to pie format\n pieData = []\n if (chartData.length > 0) {\n const firstRow = chartData[0]\n Object.keys(firstRow).forEach(key => {\n if (key !== 'name' && typeof firstRow[key] === 'number') {\n pieData.push({ name: String(key), value: firstRow[key] })\n }\n })\n }\n } else {\n // Standard measure-based pie chart\n const granularity = getFieldGranularity(queryObject, xField)\n pieData = data.map(item => {\n let name = formatTimeValue(item[xField], granularity) || String(item[xField]) || 'Unknown'\n // Handle boolean values with better labels\n if (typeof item[xField] === 'boolean') {\n name = item[xField] ? 'Active' : 'Inactive'\n } else if (name === 'true' || name === 'false') {\n name = name === 'true' ? 'Active' : 'Inactive'\n }\n return {\n name,\n value: typeof item[yAxisFields[0]] === 'string'\n ? parseFloat(item[yAxisFields[0]])\n : (item[yAxisFields[0]] || 0)\n }\n })\n }\n\n // Filter out invalid values (null, undefined, NaN, or non-positive)\n const originalLength = pieData.length\n pieData = pieData.filter(item =>\n item.value != null &&\n !isNaN(item.value) &&\n item.value !== 0 &&\n item.value > 0\n )\n\n return { pieData, originalLength }\n}\n\nconst PieChart = React.memo(function PieChart({\n data,\n chartConfig,\n displayConfig = {},\n queryObject,\n height = \"100%\",\n colorPalette,\n onDataPointClick,\n drillEnabled\n}: ChartProps) {\n const { t } = useTranslation()\n const [hoveredLegend, setHoveredLegend] = useState<string | null>(null)\n // Use specialized hook to avoid re-renders from unrelated context changes\n const getFieldLabel = useCubeFieldLabel()\n\n // Resolve + validate axis fields (hooks-first to satisfy React rules)\n const { xAxisField, yAxisFields, seriesFields, errorCode } = useMemo(\n () => resolveChartAxisFields(chartConfig),\n [chartConfig]\n )\n\n try {\n const safeDisplayConfig = {\n showLegend: displayConfig?.showLegend ?? true,\n showTooltip: displayConfig?.showTooltip ?? true,\n leftYAxisFormat: displayConfig?.leftYAxisFormat,\n innerRadius: displayConfig?.innerRadius || '0%'\n }\n\n if (!data || data.length === 0) {\n return <ChartEmptyState height={height} hint={t('chart.runtime.noDataHint.pie')} />\n }\n\n if (errorCode) {\n // Pie surfaces a pie-specific message for the \"invalid config\" case\n const hintKey = errorCode === 'axisInvalid'\n ? 'chart.runtime.configErrorHint.pieAxis'\n : 'chart.runtime.configErrorHint.axisFields'\n return <ChartConfigError height={height} hint={t(hintKey)} />\n }\n\n // The errorCode guard above guarantees xAxisField is defined here\n const xField = xAxisField as string\n\n const { pieData, originalLength } = buildPieData(\n data,\n xField,\n yAxisFields,\n seriesFields,\n queryObject,\n getFieldLabel\n )\n\n if (pieData.length === 0) {\n return (\n <ChartEmptyState\n height={height}\n titleKey=\"chart.runtime.noValidData\"\n hint={\n originalLength > 0\n ? `Filtered out ${originalLength} data points (zero or invalid values)`\n : 'No data points to display in pie chart'\n }\n />\n )\n }\n \n return (\n <ChartContainer height={height}>\n <RechartsPieChart accessibilityLayer={false}>\n <Pie\n data={pieData}\n cx=\"50%\"\n cy=\"50%\"\n innerRadius={safeDisplayConfig.innerRadius !== '0%' ? safeDisplayConfig.innerRadius : undefined}\n outerRadius=\"70%\"\n dataKey=\"value\"\n label={!safeDisplayConfig.showLegend ? ({ name, percent }) =>\n `${name} ${((percent || 0) * 100).toFixed(0)}%`\n : undefined}\n cursor={drillEnabled ? 'pointer' : undefined}\n onClick={(sliceData: any, _index: number, event: React.MouseEvent) => {\n if (onDataPointClick && drillEnabled && sliceData) {\n onDataPointClick({\n dataPoint: sliceData,\n clickedField: yAxisFields[0],\n xValue: sliceData.name,\n position: { x: event.clientX, y: event.clientY },\n nativeEvent: event\n })\n }\n }}\n >\n {pieData.map((_entry, index) => (\n <Cell\n key={`cell-${index}`}\n fill={(colorPalette?.colors && colorPalette.colors[index % colorPalette.colors.length]) || CHART_COLORS[index % CHART_COLORS.length]}\n fillOpacity={hoveredLegend ? (hoveredLegend === pieData[index].name ? 1 : 0.3) : 1}\n />\n ))}\n </Pie>\n {safeDisplayConfig.showTooltip && (\n <ChartTooltip\n formatter={safeDisplayConfig.leftYAxisFormat\n ? (value: any, name: string) => [formatAxisValue(value, safeDisplayConfig.leftYAxisFormat), name]\n : undefined\n }\n />\n )}\n {safeDisplayConfig.showLegend && (\n <Legend \n wrapperStyle={{ fontSize: '12px', paddingTop: '10px' }}\n iconType=\"circle\"\n iconSize={8}\n layout=\"horizontal\"\n align=\"center\"\n verticalAlign=\"bottom\"\n onMouseEnter={(o) => setHoveredLegend(String(o.value || ''))}\n onMouseLeave={() => setHoveredLegend(null)}\n />\n )}\n </RechartsPieChart>\n </ChartContainer>\n )\n } catch (error) {\n return <ChartRenderError height={height} chartType=\"Pie Chart\" error={error} />\n }\n})\n\nexport default PieChart"],"mappings":"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"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { n as e } from "./rolldown-runtime-CWhphoD1.js";
|
|
2
|
+
import { D as t, E as n, M as r, P as i, s as a, w as o } from "./chart-activity-grid-DX0SJbxs.js";
|
|
3
|
+
import { S as s, T as c, b as l, w as u, x as d } from "./chart-area-of01_62R.js";
|
|
4
|
+
import f, { useState as p } from "react";
|
|
5
|
+
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
6
|
+
import { Legend as g, PolarAngleAxis as _, PolarGrid as v, PolarRadiusAxis as y, Radar as b, RadarChart as x } from "recharts";
|
|
7
|
+
//#region src/client/components/charts/radarChartHelpers.ts
|
|
8
|
+
function S(e, t, n) {
|
|
9
|
+
let { data: i, seriesKeys: a } = r(e, Array.isArray(t.xAxis) ? t.xAxis[0] : t.xAxis, Array.isArray(t.yAxis) ? t.yAxis : [t.yAxis], n, t.series || []);
|
|
10
|
+
return {
|
|
11
|
+
radarData: i,
|
|
12
|
+
seriesKeys: a
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function C(e) {
|
|
16
|
+
return typeof e == "string" ? parseFloat(e) : e || 0;
|
|
17
|
+
}
|
|
18
|
+
function w(e, r) {
|
|
19
|
+
let i = e[0], a = Object.keys(i), o = a.find((e) => typeof i[e] == "string" || e.toLowerCase().includes("subject") || e.toLowerCase().includes("name") || e.toLowerCase().includes("category")) || a[0], s = a.filter((e) => typeof i[e] == "number" && e !== o);
|
|
20
|
+
if (s.length === 0) return {
|
|
21
|
+
radarData: [],
|
|
22
|
+
seriesKeys: [],
|
|
23
|
+
noNumericFields: !0
|
|
24
|
+
};
|
|
25
|
+
if (o) {
|
|
26
|
+
let i = t(r, o);
|
|
27
|
+
return {
|
|
28
|
+
radarData: e.map((e) => {
|
|
29
|
+
let t = { name: n(e[o], i) || String(e[o]) || "Unknown" };
|
|
30
|
+
return s.forEach((n) => {
|
|
31
|
+
let r = n.split(".").pop() || n;
|
|
32
|
+
t[r] = C(e[n]);
|
|
33
|
+
}), t;
|
|
34
|
+
}),
|
|
35
|
+
seriesKeys: s.map((e) => e.split(".").pop() || e)
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
radarData: e.map((e) => ({
|
|
40
|
+
name: String(e[a[0]] || "Unknown"),
|
|
41
|
+
value: C(e[s[0]])
|
|
42
|
+
})),
|
|
43
|
+
seriesKeys: ["value"]
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function T(e, t, n) {
|
|
47
|
+
return t?.xAxis && t?.yAxis ? S(e, t, n) : w(e, n);
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region src/client/components/charts/RadarChart.tsx
|
|
51
|
+
var E = /* @__PURE__ */ e({ default: () => D }), D = f.memo(function({ data: e, chartConfig: t, displayConfig: n = {}, queryObject: r, height: f = "100%", colorPalette: S }) {
|
|
52
|
+
let { t: C } = i(), [w, E] = p(null);
|
|
53
|
+
try {
|
|
54
|
+
let i = {
|
|
55
|
+
showLegend: n?.showLegend ?? !0,
|
|
56
|
+
showTooltip: n?.showTooltip ?? !0,
|
|
57
|
+
showGrid: n?.showGrid ?? !0,
|
|
58
|
+
leftYAxisFormat: n?.leftYAxisFormat
|
|
59
|
+
};
|
|
60
|
+
if (!e || e.length === 0) return /* @__PURE__ */ m(d, {
|
|
61
|
+
height: f,
|
|
62
|
+
hint: C("chart.runtime.noDataHint.radar")
|
|
63
|
+
});
|
|
64
|
+
let { radarData: s, seriesKeys: p, noNumericFields: D } = T(e, t, r);
|
|
65
|
+
if (D) return /* @__PURE__ */ m(l, {
|
|
66
|
+
height: f,
|
|
67
|
+
hint: C("chart.runtime.configErrorHint.radarNumeric")
|
|
68
|
+
});
|
|
69
|
+
if (!s || s.length === 0) return /* @__PURE__ */ m(d, {
|
|
70
|
+
height: f,
|
|
71
|
+
titleKey: "chart.runtime.noValidData",
|
|
72
|
+
hint: "No valid data points for radar chart after transformation"
|
|
73
|
+
});
|
|
74
|
+
let { leftYAxisFormat: O } = i;
|
|
75
|
+
return /* @__PURE__ */ m(c, {
|
|
76
|
+
height: f,
|
|
77
|
+
children: /* @__PURE__ */ h(x, {
|
|
78
|
+
data: s,
|
|
79
|
+
margin: {
|
|
80
|
+
top: 20,
|
|
81
|
+
right: 80,
|
|
82
|
+
bottom: 20,
|
|
83
|
+
left: 80
|
|
84
|
+
},
|
|
85
|
+
accessibilityLayer: !1,
|
|
86
|
+
children: [
|
|
87
|
+
i.showGrid && /* @__PURE__ */ m(v, {}),
|
|
88
|
+
/* @__PURE__ */ m(_, {
|
|
89
|
+
dataKey: "name",
|
|
90
|
+
tick: { fontSize: 12 },
|
|
91
|
+
className: "text-dc-text-muted"
|
|
92
|
+
}),
|
|
93
|
+
/* @__PURE__ */ m(y, {
|
|
94
|
+
tick: { fontSize: 10 },
|
|
95
|
+
className: "text-dc-text-muted",
|
|
96
|
+
tickFormatter: O ? (e) => o(e, O) : void 0
|
|
97
|
+
}),
|
|
98
|
+
i.showTooltip && /* @__PURE__ */ m(u, { formatter: O ? (e, t) => [o(e, O), t] : void 0 }),
|
|
99
|
+
i.showLegend && p.length > 1 && /* @__PURE__ */ m(g, {
|
|
100
|
+
wrapperStyle: {
|
|
101
|
+
fontSize: "12px",
|
|
102
|
+
paddingTop: "10px"
|
|
103
|
+
},
|
|
104
|
+
iconType: "rect",
|
|
105
|
+
iconSize: 8,
|
|
106
|
+
layout: "horizontal",
|
|
107
|
+
align: "center",
|
|
108
|
+
verticalAlign: "bottom",
|
|
109
|
+
onMouseEnter: (e) => E(String(e.dataKey || "")),
|
|
110
|
+
onMouseLeave: () => E(null)
|
|
111
|
+
}),
|
|
112
|
+
p.map((e, t) => {
|
|
113
|
+
let n = S?.colors && S.colors[t % S.colors.length] || a[t % a.length];
|
|
114
|
+
return /* @__PURE__ */ m(b, {
|
|
115
|
+
name: e,
|
|
116
|
+
dataKey: e,
|
|
117
|
+
stroke: n,
|
|
118
|
+
fill: n,
|
|
119
|
+
fillOpacity: w ? w === e ? .6 : .1 : .3,
|
|
120
|
+
strokeOpacity: w ? w === e ? 1 : .3 : 1,
|
|
121
|
+
strokeWidth: 2
|
|
122
|
+
}, e);
|
|
123
|
+
})
|
|
124
|
+
]
|
|
125
|
+
})
|
|
126
|
+
});
|
|
127
|
+
} catch (e) {
|
|
128
|
+
return /* @__PURE__ */ m(s, {
|
|
129
|
+
height: f,
|
|
130
|
+
chartType: "Radar Chart",
|
|
131
|
+
error: e
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
//#endregion
|
|
136
|
+
export { E as n, D as t };
|
|
137
|
+
|
|
138
|
+
//# sourceMappingURL=chart-radar-CiSwHWp4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-radar-CiSwHWp4.js","names":[],"sources":["../../../src/client/components/charts/radarChartHelpers.ts","../../../src/client/components/charts/RadarChart.tsx"],"sourcesContent":["import { transformChartDataWithSeries, formatTimeValue, getFieldGranularity } from '../../utils/chartUtils.js'\n\n/**\n * Co-located data-shaping helpers for RadarChart. The component supports a\n * config-driven format and a legacy auto-detection format; both branches are\n * isolated here so the component body stays focused on rendering. Pure\n * extraction — no behaviour change.\n */\n\nexport interface RadarShape {\n radarData: any[]\n seriesKeys: string[]\n /** True when no numeric value fields could be found (legacy auto-detect). */\n noNumericFields?: boolean\n}\n\nfunction shapeFromChartConfig(\n data: any[],\n chartConfig: any,\n queryObject: any\n): RadarShape {\n const xAxisField = Array.isArray(chartConfig.xAxis) ? chartConfig.xAxis[0] : chartConfig.xAxis\n const yAxisFields = Array.isArray(chartConfig.yAxis) ? chartConfig.yAxis : [chartConfig.yAxis]\n const seriesFields = chartConfig.series || []\n\n const { data: radarData, seriesKeys } = transformChartDataWithSeries(\n data,\n xAxisField,\n yAxisFields,\n queryObject,\n seriesFields\n )\n return { radarData, seriesKeys }\n}\n\nfunction toNumber(value: unknown): number {\n return typeof value === 'string' ? parseFloat(value) : ((value as number) || 0)\n}\n\nfunction shapeFromLegacy(data: any[], queryObject: any): RadarShape {\n const firstRow = data[0]\n const keys = Object.keys(firstRow)\n\n const subjectField = keys.find(key =>\n typeof firstRow[key] === 'string' ||\n key.toLowerCase().includes('subject') ||\n key.toLowerCase().includes('name') ||\n key.toLowerCase().includes('category')\n ) || keys[0]\n\n const valueFields = keys.filter(key => typeof firstRow[key] === 'number' && key !== subjectField)\n\n if (valueFields.length === 0) {\n return { radarData: [], seriesKeys: [], noNumericFields: true }\n }\n\n if (subjectField) {\n const granularity = getFieldGranularity(queryObject, subjectField)\n const radarData = data.map(item => {\n const transformedItem: any = {\n name: formatTimeValue(item[subjectField], granularity) || String(item[subjectField]) || 'Unknown'\n }\n valueFields.forEach(field => {\n const displayName = field.split('.').pop() || field\n transformedItem[displayName] = toNumber(item[field])\n })\n return transformedItem\n })\n return { radarData, seriesKeys: valueFields.map(field => field.split('.').pop() || field) }\n }\n\n const radarData = data.map(item => ({\n name: String(item[keys[0]] || 'Unknown'),\n value: toNumber(item[valueFields[0]])\n }))\n return { radarData, seriesKeys: ['value'] }\n}\n\n/** Shape rows for the radar chart via config-driven or legacy auto-detection. */\nexport function buildRadarData(data: any[], chartConfig: any, queryObject: any): RadarShape {\n if (chartConfig?.xAxis && chartConfig?.yAxis) {\n return shapeFromChartConfig(data, chartConfig, queryObject)\n }\n return shapeFromLegacy(data, queryObject)\n}\n","import React, { useState } from 'react'\nimport { useTranslation } from '../../hooks/useTranslation.js'\nimport { RadarChart as RechartsRadarChart, PolarGrid, PolarAngleAxis, PolarRadiusAxis, Radar, Legend } from 'recharts'\nimport ChartContainer from './ChartContainer.js'\nimport ChartTooltip from './ChartTooltip.js'\nimport { ChartEmptyState, ChartConfigError, ChartRenderError } from './ChartStates.js'\nimport { buildRadarData } from './radarChartHelpers.js'\nimport { CHART_COLORS } from '../../utils/chartConstants.js'\nimport { formatAxisValue } from '../../utils/chartUtils.js'\nimport type { ChartProps } from '../../types.js'\n\nconst RadarChart = React.memo(function RadarChart({\n data,\n chartConfig,\n displayConfig = {},\n queryObject,\n height = \"100%\",\n colorPalette\n}: ChartProps) {\n const { t } = useTranslation()\n const [hoveredLegend, setHoveredLegend] = useState<string | null>(null)\n\n try {\n const safeDisplayConfig = {\n showLegend: displayConfig?.showLegend ?? true,\n showTooltip: displayConfig?.showTooltip ?? true,\n showGrid: displayConfig?.showGrid ?? true,\n leftYAxisFormat: displayConfig?.leftYAxisFormat\n }\n\n if (!data || data.length === 0) {\n return <ChartEmptyState height={height} hint={t('chart.runtime.noDataHint.radar')} />\n }\n\n const { radarData, seriesKeys, noNumericFields } = buildRadarData(data, chartConfig, queryObject)\n\n if (noNumericFields) {\n return <ChartConfigError height={height} hint={t('chart.runtime.configErrorHint.radarNumeric')} />\n }\n\n // Validate transformed data\n if (!radarData || radarData.length === 0) {\n return (\n <ChartEmptyState\n height={height}\n titleKey=\"chart.runtime.noValidData\"\n hint=\"No valid data points for radar chart after transformation\"\n />\n )\n }\n\n const { leftYAxisFormat } = safeDisplayConfig\n return (\n <ChartContainer height={height}>\n <RechartsRadarChart data={radarData} margin={{ top: 20, right: 80, bottom: 20, left: 80 }} accessibilityLayer={false}>\n {safeDisplayConfig.showGrid && (\n <PolarGrid />\n )}\n <PolarAngleAxis\n dataKey=\"name\"\n tick={{ fontSize: 12 }}\n className=\"text-dc-text-muted\"\n />\n <PolarRadiusAxis\n tick={{ fontSize: 10 }}\n className=\"text-dc-text-muted\"\n tickFormatter={leftYAxisFormat\n ? (value: any) => formatAxisValue(value, leftYAxisFormat)\n : undefined\n }\n />\n {safeDisplayConfig.showTooltip && (\n <ChartTooltip\n formatter={leftYAxisFormat\n ? (value: any, name: string) => [formatAxisValue(value, leftYAxisFormat), name]\n : undefined\n }\n />\n )}\n {(safeDisplayConfig.showLegend && seriesKeys.length > 1) && (\n <Legend\n wrapperStyle={{ fontSize: '12px', paddingTop: '10px' }}\n iconType=\"rect\"\n iconSize={8}\n layout=\"horizontal\"\n align=\"center\"\n verticalAlign=\"bottom\"\n onMouseEnter={(o) => setHoveredLegend(String(o.dataKey || ''))}\n onMouseLeave={() => setHoveredLegend(null)}\n />\n )}\n {seriesKeys.map((seriesKey, index) => {\n const color = (colorPalette?.colors && colorPalette.colors[index % colorPalette.colors.length]) || CHART_COLORS[index % CHART_COLORS.length]\n return (\n <Radar\n key={seriesKey}\n name={seriesKey}\n dataKey={seriesKey}\n stroke={color}\n fill={color}\n fillOpacity={hoveredLegend ? (hoveredLegend === seriesKey ? 0.6 : 0.1) : 0.3}\n strokeOpacity={hoveredLegend ? (hoveredLegend === seriesKey ? 1 : 0.3) : 1}\n strokeWidth={2}\n />\n )\n })}\n </RechartsRadarChart>\n </ChartContainer>\n )\n } catch (error) {\n return <ChartRenderError height={height} chartType=\"Radar Chart\" error={error} />\n }\n})\n\nexport default RadarChart\n"],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { n as e } from "./rolldown-runtime-CWhphoD1.js";
|
|
2
|
+
import { D as t, E as n, P as r, s as i, w as a } from "./chart-activity-grid-DX0SJbxs.js";
|
|
3
|
+
import { S as o, T as s, b as c, w as l, x as u } from "./chart-area-of01_62R.js";
|
|
4
|
+
import d, { useState as f } from "react";
|
|
5
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
6
|
+
import { Cell as h, Legend as g, RadialBar as _, RadialBarChart as v } from "recharts";
|
|
7
|
+
//#region src/client/components/charts/radialBarChartHelpers.ts
|
|
8
|
+
function y(e, t) {
|
|
9
|
+
let n = e?.colors;
|
|
10
|
+
return n && n[t % n.length] || i[t % i.length];
|
|
11
|
+
}
|
|
12
|
+
function b(e) {
|
|
13
|
+
return typeof e == "string" ? parseFloat(e) : e || 0;
|
|
14
|
+
}
|
|
15
|
+
function x(e, r, i, a) {
|
|
16
|
+
let o = Array.isArray(r.xAxis) ? r.xAxis[0] : r.xAxis, s = Array.isArray(r.yAxis) ? r.yAxis[0] : r.yAxis, c = t(i, o);
|
|
17
|
+
return { radialData: e.map((e, t) => ({
|
|
18
|
+
name: n(e[o], c) || String(e[o]) || "Unknown",
|
|
19
|
+
value: b(e[s]),
|
|
20
|
+
fill: y(a, t)
|
|
21
|
+
})) };
|
|
22
|
+
}
|
|
23
|
+
function S(e) {
|
|
24
|
+
return typeof e == "boolean" ? e ? "Active" : "Inactive" : e === "true" || e === "false" ? e === "true" ? "Active" : "Inactive" : String(e);
|
|
25
|
+
}
|
|
26
|
+
function C(e, t) {
|
|
27
|
+
let n = e[0], r = Object.keys(n), i = r.find((e) => typeof n[e] == "string" || e.toLowerCase().includes("name") || e.toLowerCase().includes("label") || e.toLowerCase().includes("category")) || r[0], a = r.find((e) => typeof n[e] == "number" && e !== i) || r[1];
|
|
28
|
+
return a ? { radialData: e.map((e, n) => ({
|
|
29
|
+
name: S(e[i]),
|
|
30
|
+
value: b(e[a]),
|
|
31
|
+
fill: y(t, n)
|
|
32
|
+
})) } : {
|
|
33
|
+
radialData: [],
|
|
34
|
+
noValueField: !0
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function w(e, t, n, r) {
|
|
38
|
+
let i = t?.xAxis && t?.yAxis ? x(e, t, n, r) : C(e, r);
|
|
39
|
+
return i.noValueField ? i : { radialData: i.radialData.filter((e) => e.value != null && e.value !== 0) };
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region src/client/components/charts/RadialBarChart.tsx
|
|
43
|
+
var T = /* @__PURE__ */ e({ default: () => E }), E = d.memo(function({ data: e, chartConfig: t, displayConfig: n = {}, queryObject: i, height: d = "100%", colorPalette: y }) {
|
|
44
|
+
let { t: b } = r(), [x, S] = f(null);
|
|
45
|
+
try {
|
|
46
|
+
let r = {
|
|
47
|
+
showLegend: n?.showLegend ?? !0,
|
|
48
|
+
showTooltip: n?.showTooltip ?? !0,
|
|
49
|
+
leftYAxisFormat: n?.leftYAxisFormat
|
|
50
|
+
};
|
|
51
|
+
if (!e || e.length === 0) return /* @__PURE__ */ p(u, {
|
|
52
|
+
height: d,
|
|
53
|
+
hint: b("chart.runtime.noDataHint.radialBar")
|
|
54
|
+
});
|
|
55
|
+
let { radialData: o, noValueField: f } = w(e, t, i, y);
|
|
56
|
+
if (f) return /* @__PURE__ */ p(c, {
|
|
57
|
+
height: d,
|
|
58
|
+
hint: b("chart.runtime.configErrorHint.radialBarNumeric")
|
|
59
|
+
});
|
|
60
|
+
if (o.length === 0) return /* @__PURE__ */ p(u, {
|
|
61
|
+
height: d,
|
|
62
|
+
titleKey: "chart.runtime.noValidData",
|
|
63
|
+
hint: "No valid data points for radial bar chart after transformation"
|
|
64
|
+
});
|
|
65
|
+
let { leftYAxisFormat: C } = r;
|
|
66
|
+
return /* @__PURE__ */ p(s, {
|
|
67
|
+
height: d,
|
|
68
|
+
children: /* @__PURE__ */ m(v, {
|
|
69
|
+
data: o,
|
|
70
|
+
innerRadius: "10%",
|
|
71
|
+
outerRadius: "80%",
|
|
72
|
+
margin: {
|
|
73
|
+
top: 20,
|
|
74
|
+
right: 30,
|
|
75
|
+
bottom: 20,
|
|
76
|
+
left: 30
|
|
77
|
+
},
|
|
78
|
+
accessibilityLayer: !1,
|
|
79
|
+
children: [
|
|
80
|
+
r.showTooltip && /* @__PURE__ */ p(l, { formatter: C ? (e, t) => [a(e, C), t] : void 0 }),
|
|
81
|
+
r.showLegend && /* @__PURE__ */ p(g, {
|
|
82
|
+
wrapperStyle: {
|
|
83
|
+
fontSize: "12px",
|
|
84
|
+
paddingTop: "10px"
|
|
85
|
+
},
|
|
86
|
+
iconType: "circle",
|
|
87
|
+
iconSize: 8,
|
|
88
|
+
layout: "horizontal",
|
|
89
|
+
align: "center",
|
|
90
|
+
verticalAlign: "bottom",
|
|
91
|
+
onMouseEnter: (e) => S(String(e.value || "")),
|
|
92
|
+
onMouseLeave: () => S(null)
|
|
93
|
+
}),
|
|
94
|
+
/* @__PURE__ */ p(_, {
|
|
95
|
+
dataKey: "value",
|
|
96
|
+
cornerRadius: 4,
|
|
97
|
+
label: {
|
|
98
|
+
position: "insideStart",
|
|
99
|
+
fill: "#fff",
|
|
100
|
+
fontSize: 12,
|
|
101
|
+
formatter: C ? (e) => a(e, C) : void 0
|
|
102
|
+
},
|
|
103
|
+
children: o.map((e, t) => /* @__PURE__ */ p(h, {
|
|
104
|
+
fill: e.fill,
|
|
105
|
+
fillOpacity: x ? x === e.name ? 1 : .3 : 1
|
|
106
|
+
}, `cell-${t}`))
|
|
107
|
+
})
|
|
108
|
+
]
|
|
109
|
+
})
|
|
110
|
+
});
|
|
111
|
+
} catch (e) {
|
|
112
|
+
return /* @__PURE__ */ p(o, {
|
|
113
|
+
height: d,
|
|
114
|
+
chartType: "Radial Bar Chart",
|
|
115
|
+
error: e
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
//#endregion
|
|
120
|
+
export { T as n, E as t };
|
|
121
|
+
|
|
122
|
+
//# sourceMappingURL=chart-radial-bar-BF6Mhl6f.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-radial-bar-BF6Mhl6f.js","names":[],"sources":["../../../src/client/components/charts/radialBarChartHelpers.ts","../../../src/client/components/charts/RadialBarChart.tsx"],"sourcesContent":["import { CHART_COLORS } from '../../utils/chartConstants.js'\nimport { formatTimeValue, getFieldGranularity } from '../../utils/chartUtils.js'\nimport type { ColorPalette } from '../../types.js'\n\n/**\n * Co-located data-shaping helpers for RadialBarChart. The component supports a\n * config-driven format and a legacy auto-detection format; both branches are\n * isolated here so the component body stays focused on rendering. Pure\n * extraction — no behaviour change.\n */\n\nexport interface RadialDatum {\n name: string\n value: number\n fill?: string\n}\n\nexport interface RadialShape {\n radialData: RadialDatum[]\n /** True when the legacy auto-detect found no usable value field. */\n noValueField?: boolean\n}\n\nfunction colorAt(colorPalette: ColorPalette | undefined, index: number): string {\n const colors = colorPalette?.colors\n return (colors && colors[index % colors.length]) || CHART_COLORS[index % CHART_COLORS.length]\n}\n\nfunction toNumber(value: unknown): number {\n return typeof value === 'string' ? parseFloat(value) : ((value as number) || 0)\n}\n\nfunction shapeFromChartConfig(\n data: any[],\n chartConfig: any,\n queryObject: any,\n colorPalette: ColorPalette | undefined\n): RadialShape {\n const xAxisField = Array.isArray(chartConfig.xAxis) ? chartConfig.xAxis[0] : chartConfig.xAxis\n const yAxisField = Array.isArray(chartConfig.yAxis) ? chartConfig.yAxis[0] : chartConfig.yAxis\n const granularity = getFieldGranularity(queryObject, xAxisField)\n\n const radialData = data.map((item, index) => ({\n name: formatTimeValue(item[xAxisField], granularity) || String(item[xAxisField]) || 'Unknown',\n value: toNumber(item[yAxisField]),\n fill: colorAt(colorPalette, index)\n }))\n return { radialData }\n}\n\n/** Coerce a name value to a display label, mapping booleans to Active/Inactive. */\nfunction toRadialName(name: unknown): string {\n if (typeof name === 'boolean') return name ? 'Active' : 'Inactive'\n if (name === 'true' || name === 'false') return name === 'true' ? 'Active' : 'Inactive'\n return String(name)\n}\n\nfunction shapeFromLegacy(\n data: any[],\n colorPalette: ColorPalette | undefined\n): RadialShape {\n const firstRow = data[0]\n const keys = Object.keys(firstRow)\n\n const nameField = keys.find(key =>\n typeof firstRow[key] === 'string' ||\n key.toLowerCase().includes('name') ||\n key.toLowerCase().includes('label') ||\n key.toLowerCase().includes('category')\n ) || keys[0]\n\n const valueField = keys.find(key => typeof firstRow[key] === 'number' && key !== nameField) || keys[1]\n\n if (!valueField) {\n return { radialData: [], noValueField: true }\n }\n\n const radialData = data.map((item, index) => ({\n name: toRadialName(item[nameField]),\n value: toNumber(item[valueField]),\n fill: colorAt(colorPalette, index)\n }))\n return { radialData }\n}\n\n/**\n * Shape rows for the radial bar chart (config-driven or legacy auto-detect),\n * filtering out null/zero values.\n */\nexport function buildRadialData(\n data: any[],\n chartConfig: any,\n queryObject: any,\n colorPalette: ColorPalette | undefined\n): RadialShape {\n const shaped = chartConfig?.xAxis && chartConfig?.yAxis\n ? shapeFromChartConfig(data, chartConfig, queryObject, colorPalette)\n : shapeFromLegacy(data, colorPalette)\n\n if (shaped.noValueField) return shaped\n\n return { radialData: shaped.radialData.filter(item => item.value != null && item.value !== 0) }\n}\n","import React, { useState } from 'react'\nimport { useTranslation } from '../../hooks/useTranslation.js'\nimport { RadialBarChart as RechartsRadialBarChart, RadialBar, Legend, Cell } from 'recharts'\nimport ChartContainer from './ChartContainer.js'\nimport ChartTooltip from './ChartTooltip.js'\nimport { ChartEmptyState, ChartConfigError, ChartRenderError } from './ChartStates.js'\nimport { buildRadialData } from './radialBarChartHelpers.js'\nimport { formatAxisValue } from '../../utils/chartUtils.js'\nimport type { ChartProps } from '../../types.js'\n\nconst RadialBarChart = React.memo(function RadialBarChart({\n data,\n chartConfig,\n displayConfig = {},\n queryObject,\n height = \"100%\",\n colorPalette\n}: ChartProps) {\n const { t } = useTranslation()\n const [hoveredLegend, setHoveredLegend] = useState<string | null>(null)\n\n try {\n const safeDisplayConfig = {\n showLegend: displayConfig?.showLegend ?? true,\n showTooltip: displayConfig?.showTooltip ?? true,\n leftYAxisFormat: displayConfig?.leftYAxisFormat\n }\n\n if (!data || data.length === 0) {\n return <ChartEmptyState height={height} hint={t('chart.runtime.noDataHint.radialBar')} />\n }\n\n const { radialData, noValueField } = buildRadialData(data, chartConfig, queryObject, colorPalette)\n\n if (noValueField) {\n return <ChartConfigError height={height} hint={t('chart.runtime.configErrorHint.radialBarNumeric')} />\n }\n\n if (radialData.length === 0) {\n return (\n <ChartEmptyState\n height={height}\n titleKey=\"chart.runtime.noValidData\"\n hint=\"No valid data points for radial bar chart after transformation\"\n />\n )\n }\n\n const { leftYAxisFormat } = safeDisplayConfig\n return (\n <ChartContainer height={height}>\n <RechartsRadialBarChart\n data={radialData}\n innerRadius=\"10%\"\n outerRadius=\"80%\"\n margin={{ top: 20, right: 30, bottom: 20, left: 30 }}\n accessibilityLayer={false}\n >\n {safeDisplayConfig.showTooltip && (\n <ChartTooltip\n formatter={leftYAxisFormat\n ? (value: any, name: string) => [formatAxisValue(value, leftYAxisFormat), name]\n : undefined\n }\n />\n )}\n {safeDisplayConfig.showLegend && (\n <Legend\n wrapperStyle={{ fontSize: '12px', paddingTop: '10px' }}\n iconType=\"circle\"\n iconSize={8}\n layout=\"horizontal\"\n align=\"center\"\n verticalAlign=\"bottom\"\n onMouseEnter={(o) => setHoveredLegend(String(o.value || ''))}\n onMouseLeave={() => setHoveredLegend(null)}\n />\n )}\n <RadialBar\n dataKey=\"value\"\n cornerRadius={4}\n label={{\n position: 'insideStart',\n fill: '#fff',\n fontSize: 12,\n formatter: leftYAxisFormat\n ? (value: any) => formatAxisValue(value, leftYAxisFormat)\n : undefined\n }}\n >\n {radialData.map((entry, index) => (\n <Cell\n key={`cell-${index}`}\n fill={entry.fill}\n fillOpacity={hoveredLegend ? (hoveredLegend === entry.name ? 1 : 0.3) : 1}\n />\n ))}\n </RadialBar>\n </RechartsRadialBarChart>\n </ChartContainer>\n )\n } catch (error) {\n return <ChartRenderError height={height} chartType=\"Radial Bar Chart\" error={error} />\n }\n})\n\nexport default RadialBarChart\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as e } from "./rolldown-runtime-CWhphoD1.js";
|
|
2
|
-
import {
|
|
2
|
+
import { P as t, s as n } from "./chart-activity-grid-DX0SJbxs.js";
|
|
3
3
|
import r, { useEffect as i, useMemo as a, useRef as o, useState as s } from "react";
|
|
4
4
|
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
5
5
|
import { ResponsiveContainer as u, Sankey as d, Tooltip as f } from "recharts";
|
|
@@ -14,7 +14,7 @@ function m(e) {
|
|
|
14
14
|
}
|
|
15
15
|
//#endregion
|
|
16
16
|
//#region src/client/components/charts/SankeyChart.tsx
|
|
17
|
-
var h = /* @__PURE__ */ e({ default: () =>
|
|
17
|
+
var h = /* @__PURE__ */ e({ default: () => w }), g = {
|
|
18
18
|
before: "#F97316",
|
|
19
19
|
start: "#3B82F6",
|
|
20
20
|
after: "#10B981"
|
|
@@ -79,48 +79,45 @@ function b({ x: e, y: t, width: n, height: r, payload: i, containerWidth: a, sho
|
|
|
79
79
|
})]
|
|
80
80
|
})] });
|
|
81
81
|
}
|
|
82
|
-
function x({
|
|
83
|
-
|
|
84
|
-
let n = t[0].payload;
|
|
85
|
-
return n.source && n.target ? /* @__PURE__ */ l("div", {
|
|
86
|
-
className: "bg-dc-surface dc:border border-dc-border dc:rounded-md dc:px-3 dc:py-2 dc:shadow-lg dc:text-sm",
|
|
87
|
-
children: [/* @__PURE__ */ l("div", {
|
|
88
|
-
className: "dc:font-medium text-dc-text",
|
|
89
|
-
children: [
|
|
90
|
-
n.source.name,
|
|
91
|
-
" → ",
|
|
92
|
-
n.target.name
|
|
93
|
-
]
|
|
94
|
-
}), /* @__PURE__ */ l("div", {
|
|
95
|
-
className: "text-dc-text-secondary dc:mt-1",
|
|
96
|
-
children: [/* @__PURE__ */ c("span", {
|
|
97
|
-
className: "dc:font-medium",
|
|
98
|
-
children: n.value.toLocaleString()
|
|
99
|
-
}), " entities"]
|
|
100
|
-
})]
|
|
101
|
-
}) : /* @__PURE__ */ l("div", {
|
|
82
|
+
function x({ children: e }) {
|
|
83
|
+
return /* @__PURE__ */ c("div", {
|
|
102
84
|
className: "bg-dc-surface dc:border border-dc-border dc:rounded-md dc:px-3 dc:py-2 dc:shadow-lg dc:text-sm",
|
|
103
|
-
children:
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
})]
|
|
85
|
+
children: e
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function S({ value: e }) {
|
|
89
|
+
return /* @__PURE__ */ l("div", {
|
|
90
|
+
className: "text-dc-text-secondary dc:mt-1",
|
|
91
|
+
children: [/* @__PURE__ */ c("span", {
|
|
92
|
+
className: "dc:font-medium",
|
|
93
|
+
children: e.toLocaleString()
|
|
94
|
+
}), " entities"]
|
|
113
95
|
});
|
|
114
96
|
}
|
|
115
|
-
|
|
116
|
-
|
|
97
|
+
function C({ active: e, payload: t }) {
|
|
98
|
+
if (!e || !t || t.length === 0) return null;
|
|
99
|
+
let n = t[0].payload, { source: r, target: i } = n;
|
|
100
|
+
return r && i ? /* @__PURE__ */ l(x, { children: [/* @__PURE__ */ l("div", {
|
|
101
|
+
className: "dc:font-medium text-dc-text",
|
|
102
|
+
children: [
|
|
103
|
+
r.name,
|
|
104
|
+
" → ",
|
|
105
|
+
i.name
|
|
106
|
+
]
|
|
107
|
+
}), /* @__PURE__ */ c(S, { value: n.value })] }) : /* @__PURE__ */ l(x, { children: [/* @__PURE__ */ c("div", {
|
|
108
|
+
className: "dc:font-medium text-dc-text",
|
|
109
|
+
children: n.name
|
|
110
|
+
}), n.value !== void 0 && /* @__PURE__ */ c(S, { value: n.value })] });
|
|
111
|
+
}
|
|
112
|
+
var w = r.memo(function({ data: e, height: r = "100%", colorPalette: p, displayConfig: m }) {
|
|
113
|
+
let { t: h } = t(), g = o(null), [_, x] = s(800);
|
|
117
114
|
i(() => {
|
|
118
115
|
let e = () => {
|
|
119
|
-
g.current &&
|
|
116
|
+
g.current && x(g.current.offsetWidth);
|
|
120
117
|
};
|
|
121
118
|
return e(), window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
|
|
122
119
|
}, []);
|
|
123
|
-
let
|
|
120
|
+
let S = m, w = parseFloat(String(S?.linkOpacity || "0.5")), T = S?.nodeWidth ?? 10, E = S?.nodePadding ?? 50, D = S?.showNodeLabels !== !1, O = a(() => {
|
|
124
121
|
let t = y(e || []);
|
|
125
122
|
return t ? v(t, p?.colors || n) : null;
|
|
126
123
|
}, [e, p]), k = a(() => {
|
|
@@ -175,10 +172,10 @@ var S = r.memo(function({ data: e, height: r = "100%", colorPalette: p, displayC
|
|
|
175
172
|
containerWidth: _,
|
|
176
173
|
showLabels: D
|
|
177
174
|
}),
|
|
178
|
-
children: /* @__PURE__ */ c(f, { content: /* @__PURE__ */ c(
|
|
175
|
+
children: /* @__PURE__ */ c(f, { content: /* @__PURE__ */ c(C, {}) })
|
|
179
176
|
})
|
|
180
177
|
})
|
|
181
|
-
}), !
|
|
178
|
+
}), !S?.hideSummaryFooter && k && /* @__PURE__ */ c("div", {
|
|
182
179
|
className: "dc:flex-shrink-0 dc:px-4 dc:py-2 dc:border-t border-dc-border bg-dc-surface-secondary",
|
|
183
180
|
children: /* @__PURE__ */ l("div", {
|
|
184
181
|
className: "dc:flex dc:items-center dc:justify-between dc:text-sm",
|
|
@@ -219,4 +216,4 @@ var S = r.memo(function({ data: e, height: r = "100%", colorPalette: p, displayC
|
|
|
219
216
|
//#endregion
|
|
220
217
|
export { p as n, m as r, h as t };
|
|
221
218
|
|
|
222
|
-
//# sourceMappingURL=chart-sankey-
|
|
219
|
+
//# sourceMappingURL=chart-sankey-DjrvKw6K.js.map
|