drizzle-cube 0.6.4 → 0.6.5
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/dist/adapters/ActivityGridChart.config-Bvi50jl_.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-BwswifOD.js +2 -0
- package/dist/adapters/AreaChart.config-Cehf1Kjo.cjs +1 -0
- package/dist/adapters/AreaChart.config-DC-gnmli.js +2 -0
- package/dist/adapters/BarChart.config-BY53r96T.cjs +1 -0
- package/dist/adapters/BarChart.config-DJN5Oqmw.js +2 -0
- package/dist/adapters/BoxPlotChart.config-9hLT3yMs.js +2 -0
- package/dist/adapters/BoxPlotChart.config-D9P4PMTf.cjs +1 -0
- package/dist/adapters/BubbleChart.config-CEVSsy7u.js +2 -0
- package/dist/adapters/BubbleChart.config-Cji0z0Tb.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-DPv76FmM.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-tcHTorLu.js +2 -0
- package/dist/adapters/DataTable.config-D4txBrlQ.cjs +1 -0
- package/dist/adapters/DataTable.config-DrObkanI.js +2 -0
- package/dist/adapters/FunnelChart.config-BFYSkibE.js +2 -0
- package/dist/adapters/FunnelChart.config-BTSFeha-.cjs +1 -0
- package/dist/adapters/GaugeChart.config-BFz6NZfT.js +2 -0
- package/dist/adapters/GaugeChart.config-DJKD6oh8.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-C3EZl9Sy.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-jUCb5NAE.js +2 -0
- package/dist/adapters/KpiDelta.config-DhuealNk.js +2 -0
- package/dist/adapters/KpiDelta.config-m6FEIeWo.cjs +1 -0
- package/dist/adapters/KpiNumber.config-Cmd7eHmg.cjs +1 -0
- package/dist/adapters/KpiNumber.config-KQdKrkK-.js +2 -0
- package/dist/adapters/KpiText.config-D_pU4jH3.cjs +1 -0
- package/dist/adapters/KpiText.config-V8SvhllA.js +2 -0
- package/dist/adapters/LineChart.config-BuWM0TJx.js +2 -0
- package/dist/adapters/LineChart.config-CsxJ3f5A.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-CJdjenj7.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-oCWrAuom.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-DBLnhtOk.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-DWg0jzxA.js +2 -0
- package/dist/adapters/PieChart.config-D3qI6nbM.cjs +1 -0
- package/dist/adapters/PieChart.config-R2rcul2D.js +2 -0
- package/dist/adapters/RadarChart.config-BlK8QuDi.js +2 -0
- package/dist/adapters/RadarChart.config-fH3ce10I.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-CqCnb27I.js +2 -0
- package/dist/adapters/RadialBarChart.config-DQQHJOCs.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-BFJ8i-kp.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-B_Wd_YjX.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-BLqu9-Ft.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-MvOPw_Dd.cjs +1 -0
- package/dist/adapters/SankeyChart.config-C_4u9Xiq.js +2 -0
- package/dist/adapters/SankeyChart.config-EH6wsjPr.cjs +1 -0
- package/dist/adapters/ScatterChart.config-D-MlQ7mP.js +2 -0
- package/dist/adapters/ScatterChart.config-DmwiEBN-.cjs +1 -0
- package/dist/adapters/SunburstChart.config-BRr_as_L.js +2 -0
- package/dist/adapters/SunburstChart.config-CptDj8e4.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-D5wX2xaT.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-Dyhwpwq3.js +2 -0
- package/dist/adapters/WaterfallChart.config-B_LGJIov.js +2 -0
- package/dist/adapters/WaterfallChart.config-Q4Fv196W.cjs +1 -0
- package/dist/adapters/{compiler-DyyBaLry.cjs → compiler-D0v5KJhv.cjs} +2 -2
- package/dist/adapters/{compiler-lG6eNsoI.js → compiler-ZruQ85ff.js} +35 -30
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-F1pCQPde.cjs → core-CVqTwOR3.cjs} +1 -1
- package/dist/adapters/{core-Bbchr0ui.js → core-DoSUiMmv.js} +60 -60
- package/dist/adapters/express/index.cjs +2 -2
- package/dist/adapters/express/index.js +80 -75
- package/dist/adapters/fastify/index.cjs +2 -2
- package/dist/adapters/fastify/index.js +63 -58
- package/dist/adapters/{handler-DRZb2ip6.cjs → handler-DyIyrFFp.cjs} +3 -3
- package/dist/adapters/{handler-u8FyzPBT.js → handler-j74EJDdo.js} +28 -28
- package/dist/adapters/hono/index.cjs +2 -2
- package/dist/adapters/hono/index.js +57 -52
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +2 -2
- package/dist/adapters/mcp-transport-BuU5CrKL.cjs +40 -0
- package/dist/adapters/mcp-transport-l8DhKzR5.js +601 -0
- package/dist/adapters/mcp-transport.d.ts +21 -3
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +110 -105
- package/dist/adapters/{openai-CmMzrs1Y.js → openai-BCSKRcbD.js} +10 -10
- package/dist/{server/openai-DhzGY9R4.js → adapters/openai-BjR3ohaS.js} +1 -1
- package/dist/{server/openai-B4kAJTSD.cjs → adapters/openai-ClVVLjNl.cjs} +2 -2
- package/dist/adapters/{openai-Cdf2wWZA.cjs → openai-CsVXOcJZ.cjs} +1 -1
- package/dist/adapters/utils-CBR-9AMD.cjs +128 -0
- package/dist/adapters/{utils-BPWZsX7k.js → utils-U7gV5wQL.js} +789 -788
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.d.ts +16 -4
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/adapters/mcp-transport.d.ts +21 -3
- package/dist/cjs/adapters/utils.d.ts +16 -4
- package/dist/cjs/server/executors/sqlite-executor.d.ts +8 -2
- package/dist/client/charts.js +13 -13
- package/dist/client/chunks/ConfirmModal-D6eLc9NO.js +3283 -0
- package/dist/client/chunks/ConfirmModal-D6eLc9NO.js.map +1 -0
- package/dist/client/chunks/{DashboardEditModal-Cs1ig1_V.js → DashboardEditModal-DFQSxR_C.js} +1134 -4389
- package/dist/client/chunks/DashboardEditModal-DFQSxR_C.js.map +1 -0
- package/dist/client/chunks/{RetentionCombinedChart-BgbDhsPz.js → RetentionCombinedChart-DY7wKLs5.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-BgbDhsPz.js.map → RetentionCombinedChart-DY7wKLs5.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-DjXZaTPq.js → RetentionHeatmap-iNCG-dLd.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-DjXZaTPq.js.map → RetentionHeatmap-iNCG-dLd.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-B64yaeDe.js → analysis-builder-CBZ7lOC-.js} +311 -311
- package/dist/client/chunks/{analysis-builder-B64yaeDe.js.map → analysis-builder-CBZ7lOC-.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-CD0n2Nb8.js → analysis-builder-shared-8alCn-zw.js} +411 -411
- package/dist/client/chunks/{analysis-builder-shared-CD0n2Nb8.js.map → analysis-builder-shared-8alCn-zw.js.map} +1 -1
- package/dist/client/chunks/{chart-activity-grid-DX0SJbxs.js → chart-activity-grid-DDqFVWoa.js} +5 -2
- package/dist/client/chunks/{chart-activity-grid-DX0SJbxs.js.map → chart-activity-grid-DDqFVWoa.js.map} +1 -1
- package/dist/client/chunks/{chart-area-of01_62R.js → chart-area-BHxPNsmc.js} +2 -2
- package/dist/client/chunks/{chart-area-of01_62R.js.map → chart-area-BHxPNsmc.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-BqelQE_I.js → chart-bar-DAO3PPcE.js} +3 -3
- package/dist/client/chunks/{chart-bar-BqelQE_I.js.map → chart-bar-DAO3PPcE.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-kkBixZ27.js → chart-box-plot-CUpFyQQk.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-kkBixZ27.js.map → chart-box-plot-CUpFyQQk.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-B2he1--4.js → chart-bubble-DvP_6_n9.js} +2 -2
- package/dist/client/chunks/{chart-bubble-B2he1--4.js.map → chart-bubble-DvP_6_n9.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-DZp19Tzh.js → chart-candlestick-Dx8ZCMzl.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-DZp19Tzh.js.map → chart-candlestick-Dx8ZCMzl.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-D4g5_jfF.js → chart-data-table-BP6DMdom.js} +32 -16
- package/dist/client/chunks/chart-data-table-BP6DMdom.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-CToKSBaL.js → chart-funnel-xeVGBy-p.js} +2 -2
- package/dist/client/chunks/{chart-funnel-CToKSBaL.js.map → chart-funnel-xeVGBy-p.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DTVezSk7.js → chart-gauge-DXQ4r3cb.js} +3 -3
- package/dist/client/chunks/{chart-gauge-DTVezSk7.js.map → chart-gauge-DXQ4r3cb.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-DTuUl0BR.js → chart-heat-map-Pnk6rhqQ.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-DTuUl0BR.js.map → chart-heat-map-Pnk6rhqQ.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-BvWOt8-D.js → chart-kpi-delta-nXQnRRBr.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-BvWOt8-D.js.map → chart-kpi-delta-nXQnRRBr.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-xgZmMiQY.js → chart-kpi-number-m8UGJfBr.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-xgZmMiQY.js.map → chart-kpi-number-m8UGJfBr.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-ZO3eFi7t.js → chart-kpi-text-CurpqmaD.js} +7 -4
- package/dist/client/chunks/{chart-kpi-text-ZO3eFi7t.js.map → chart-kpi-text-CurpqmaD.js.map} +1 -1
- package/dist/client/chunks/{chart-line-DKgrQA6c.js → chart-line-sJK-cJc0.js} +3 -3
- package/dist/client/chunks/{chart-line-DKgrQA6c.js.map → chart-line-sJK-cJc0.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-CV75S_zL.js → chart-markdown-BVrqqygz.js} +1263 -1192
- package/dist/client/chunks/chart-markdown-BVrqqygz.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-Ket8fJyf.js → chart-measure-profile-k9_QDQbB.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-Ket8fJyf.js.map → chart-measure-profile-k9_QDQbB.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-ByieAX5H.js → chart-pie-BDaaYt7a.js} +3 -3
- package/dist/client/chunks/{chart-pie-ByieAX5H.js.map → chart-pie-BDaaYt7a.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-CiSwHWp4.js → chart-radar-Bz07PIVe.js} +3 -3
- package/dist/client/chunks/{chart-radar-CiSwHWp4.js.map → chart-radar-Bz07PIVe.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-BF6Mhl6f.js → chart-radial-bar-DpyxKQMj.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-BF6Mhl6f.js.map → chart-radial-bar-DpyxKQMj.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-DjrvKw6K.js → chart-sankey-BAeNbI-p.js} +2 -2
- package/dist/client/chunks/{chart-sankey-DjrvKw6K.js.map → chart-sankey-BAeNbI-p.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-Dd9WFqnS.js → chart-scatter-CRhGLCcy.js} +3 -3
- package/dist/client/chunks/{chart-scatter-Dd9WFqnS.js.map → chart-scatter-CRhGLCcy.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-leGpuDj7.js → chart-sunburst-D3wV5OrK.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-leGpuDj7.js.map → chart-sunburst-D3wV5OrK.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-Ceq5sLZA.js → chart-tree-map-iI3ewOKY.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-Ceq5sLZA.js.map → chart-tree-map-iI3ewOKY.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-DyvQReN5.js → chart-waterfall-BrrYTZfs.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-DyvQReN5.js.map → chart-waterfall-BrrYTZfs.js.map} +1 -1
- package/dist/client/chunks/{charts-core-DaXSt1Dd.js → charts-core-Cs-UIsQa.js} +2 -2
- package/dist/client/chunks/{charts-core-DaXSt1Dd.js.map → charts-core-Cs-UIsQa.js.map} +1 -1
- package/dist/client/chunks/charts-loader-DAJbAD7a.js +84 -0
- package/dist/client/chunks/{charts-loader-B0DOQMFH.js.map → charts-loader-DAJbAD7a.js.map} +1 -1
- package/dist/client/chunks/core-D7vPfUIe.js.map +1 -1
- package/dist/client/chunks/{dist-zPWyTBdU.js → dist-BwQr11Fz.js} +251 -252
- package/dist/client/chunks/{dist-zPWyTBdU.js.map → dist-BwQr11Fz.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-CIqBqwTW.js → exceljs.min-Dey-qIFL.js} +16 -16
- package/dist/client/chunks/{exceljs.min-CIqBqwTW.js.map → exceljs.min-Dey-qIFL.js.map} +1 -1
- package/dist/client/chunks/javascript-DFnKaHmQ.js.map +1 -1
- package/dist/client/chunks/retention-ChW9jYdy.js.map +1 -1
- package/dist/client/chunks/{schema-visualization-DJPTktM6.js → schema-visualization-BGT_cNon.js} +12 -12
- package/dist/client/chunks/{schema-visualization-DJPTktM6.js.map → schema-visualization-BGT_cNon.js.map} +1 -1
- package/dist/client/chunks/sql-CmVzGP4w.js.map +1 -1
- package/dist/client/chunks/syntaxHighlighting-Bq2Bj9Xt.js +30 -0
- package/dist/client/chunks/syntaxHighlighting-Bq2Bj9Xt.js.map +1 -0
- package/dist/client/chunks/{useDirtyStateTracking-BT6zqCFl.js → useDebounce-7suCFq9v.js} +47 -109
- package/dist/client/chunks/useDebounce-7suCFq9v.js.map +1 -0
- package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js +66 -0
- package/dist/client/chunks/useDirtyStateTracking-D2OiqKoQ.js.map +1 -0
- package/dist/client/chunks/{useExplainAI-Dq_meKNN.js → useExplainAI-CEf04DPE.js} +14 -14
- package/dist/client/chunks/{useExplainAI-Dq_meKNN.js.map → useExplainAI-CEf04DPE.js.map} +1 -1
- package/dist/client/chunks/useNotebookLayout-Ck3Z3uzg.js.map +1 -1
- package/dist/client/chunks/utils-DjLiJKS_.js +104 -0
- package/dist/client/chunks/utils-DjLiJKS_.js.map +1 -0
- package/dist/client/chunks/{vendor-D4jADu8t.js → vendor-DFAQ4Ucl.js} +5 -3
- package/dist/client/chunks/{vendor-D4jADu8t.js.map → vendor-DFAQ4Ucl.js.map} +1 -1
- package/dist/client/components.js +4 -3
- package/dist/client/hooks.js +5 -4
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +33 -29
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/styles.css +1 -1
- package/dist/client/utils.js +32 -6
- package/dist/client/utils.js.map +1 -0
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +145 -50
- package/dist/server/executors/sqlite-executor.d.ts +8 -2
- package/dist/server/index.cjs +33 -33
- package/dist/server/index.js +1268 -1262
- package/dist/server/{openai-CmMzrs1Y.js → openai-BCSKRcbD.js} +10 -10
- package/dist/{adapters/openai-DhzGY9R4.js → server/openai-BjR3ohaS.js} +1 -1
- package/dist/{adapters/openai-B4kAJTSD.cjs → server/openai-ClVVLjNl.cjs} +2 -2
- package/dist/server/{openai-Cdf2wWZA.cjs → openai-CsVXOcJZ.cjs} +1 -1
- package/package.json +11 -7
- package/dist/adapters/ActivityGridChart.config-BtECymia.cjs +0 -1
- package/dist/adapters/ActivityGridChart.config-CTd5HYjI.js +0 -2
- package/dist/adapters/AreaChart.config-1B8iQnfn.js +0 -2
- package/dist/adapters/AreaChart.config-hnncyQL4.cjs +0 -1
- package/dist/adapters/BarChart.config-C-QCf1rL.cjs +0 -1
- package/dist/adapters/BarChart.config-CFelK1qP.js +0 -2
- package/dist/adapters/BoxPlotChart.config-CD9WEPyF.js +0 -2
- package/dist/adapters/BoxPlotChart.config-DEbLA0BX.cjs +0 -1
- package/dist/adapters/BubbleChart.config-B_M4hzzV.js +0 -2
- package/dist/adapters/BubbleChart.config-dRZZlAke.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-Dsil2Fop.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-fuhyFvob.js +0 -2
- package/dist/adapters/DataTable.config-q2gqBi6t.cjs +0 -1
- package/dist/adapters/DataTable.config-wIQnHX5R.js +0 -2
- package/dist/adapters/FunnelChart.config-Dz710ssx.js +0 -2
- package/dist/adapters/FunnelChart.config-YNP9CeS-.cjs +0 -1
- package/dist/adapters/GaugeChart.config-BG9FcMCn.cjs +0 -1
- package/dist/adapters/GaugeChart.config-CgwniXkd.js +0 -2
- package/dist/adapters/HeatMapChart.config-1zSMXXoN.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-YVEWx6s5.js +0 -2
- package/dist/adapters/KpiDelta.config-BWvYXuFp.cjs +0 -1
- package/dist/adapters/KpiDelta.config-C_dYM64q.js +0 -2
- package/dist/adapters/KpiNumber.config-CXg6toZG.js +0 -2
- package/dist/adapters/KpiNumber.config-CZmV-yU1.cjs +0 -1
- package/dist/adapters/KpiText.config-BY-SJvAF.js +0 -2
- package/dist/adapters/KpiText.config-GSIxy0CE.cjs +0 -1
- package/dist/adapters/LineChart.config-CJtF8SOu.js +0 -2
- package/dist/adapters/LineChart.config-d0y60gw9.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-B6w0spya.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-BuIQcWOn.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-Bo2n5Ae5.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-C5d34lsc.js +0 -2
- package/dist/adapters/PieChart.config-CDxfXCIt.cjs +0 -1
- package/dist/adapters/PieChart.config-CuZxQc5m.js +0 -2
- package/dist/adapters/RadarChart.config-DpdVWyh5.cjs +0 -1
- package/dist/adapters/RadarChart.config-KrxwaaGu.js +0 -2
- package/dist/adapters/RadialBarChart.config-DpRZd0FW.js +0 -2
- package/dist/adapters/RadialBarChart.config-faIY4jpE.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-CUnScqnS.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-Dd8FuawP.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-CPd6GeoQ.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-CPlHbLom.cjs +0 -1
- package/dist/adapters/SankeyChart.config-DbIUqi-H.cjs +0 -1
- package/dist/adapters/SankeyChart.config-kzAnW0C7.js +0 -2
- package/dist/adapters/ScatterChart.config-4Okvn27v.js +0 -2
- package/dist/adapters/ScatterChart.config-4f9nNw3e.cjs +0 -1
- package/dist/adapters/SunburstChart.config-BsUQkIM_.js +0 -2
- package/dist/adapters/SunburstChart.config-lvnYkWs7.cjs +0 -1
- package/dist/adapters/TreeMapChart.config-S0qsgAFW.js +0 -2
- package/dist/adapters/TreeMapChart.config-jbwKsTYt.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-CDQ74-pS.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-XdtH-O5g.js +0 -2
- package/dist/adapters/mcp-transport-Bw_zqky2.js +0 -591
- package/dist/adapters/mcp-transport-CNIPoe1i.cjs +0 -40
- package/dist/adapters/utils-_whV4fXL.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-Cs1ig1_V.js.map +0 -1
- package/dist/client/chunks/chart-data-table-D4g5_jfF.js.map +0 -1
- package/dist/client/chunks/chart-markdown-CV75S_zL.js.map +0 -1
- package/dist/client/chunks/charts-loader-B0DOQMFH.js +0 -84
- package/dist/client/chunks/useDirtyStateTracking-BT6zqCFl.js.map +0 -1
- package/dist/client/chunks/utils-Cq-j5E5I.js +0 -155
- package/dist/client/chunks/utils-Cq-j5E5I.js.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-
|
|
2
|
-
import { k as s, u as c, v as l, z as u } from "./chart-data-table-
|
|
3
|
-
import {
|
|
4
|
-
import { a as O,
|
|
5
|
-
import { A,
|
|
6
|
-
import { P as
|
|
7
|
-
import { a as
|
|
8
|
-
import { r as
|
|
9
|
-
import { n as
|
|
10
|
-
import
|
|
11
|
-
import { Fragment as
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-DFAQ4Ucl.js";
|
|
2
|
+
import { k as s, u as c, v as l, z as u } from "./chart-data-table-BP6DMdom.js";
|
|
3
|
+
import { a as d, s as f, t as p } from "./retention-ChW9jYdy.js";
|
|
4
|
+
import { C as m, M as h, N as g, P as _, S as v, X as y, Z as b, a as x, g as S, h as C, i as w, m as T, p as E, r as D, u as O, v as k, y as A } from "./ConfirmModal-D6eLc9NO.js";
|
|
5
|
+
import { A as j, C as M, D as ee, E as N, M as te, N as P, O as ne, P as re, T as ie, a as ae, b as F, j as I, k as L, l as R, n as oe, r as se, s as ce, t as le } from "./useDebounce-7suCFq9v.js";
|
|
6
|
+
import { P as z, z as ue } from "./chart-activity-grid-DDqFVWoa.js";
|
|
7
|
+
import { a as B, i as de } from "./useExplainAI-CEf04DPE.js";
|
|
8
|
+
import { r as fe, s as pe } from "./chart-funnel-xeVGBy-p.js";
|
|
9
|
+
import { n as me } from "./charts-core-Cs-UIsQa.js";
|
|
10
|
+
import V, { createContext as he, memo as ge, useCallback as H, useContext as _e, useEffect as U, useMemo as W, useRef as G, useState as K } from "react";
|
|
11
|
+
import { Fragment as ve, jsx as q, jsxs as J } from "react/jsx-runtime";
|
|
12
12
|
//#region src/shared/date-utils.ts
|
|
13
13
|
function ye(e) {
|
|
14
14
|
let t = /* @__PURE__ */ new Date(), n = e.toLowerCase().trim(), r = t.getUTCFullYear(), i = t.getUTCMonth(), a = t.getUTCDate(), o = t.getUTCDay();
|
|
@@ -149,7 +149,7 @@ function Se(e, t) {
|
|
|
149
149
|
//#endregion
|
|
150
150
|
//#region src/client/components/AnalysisBuilder/utils/filterUtils.ts
|
|
151
151
|
function Ce(e, t) {
|
|
152
|
-
let n =
|
|
152
|
+
let n = L(t, e);
|
|
153
153
|
if (!n?.dateRange) return;
|
|
154
154
|
let r = be(n.dateRange);
|
|
155
155
|
if (!r) return;
|
|
@@ -157,14 +157,14 @@ function Ce(e, t) {
|
|
|
157
157
|
return [[xe(r.start), xe(r.end)], [xe(i.start), xe(i.end)]];
|
|
158
158
|
}
|
|
159
159
|
function we(e, t) {
|
|
160
|
-
return
|
|
160
|
+
return P(e, t, "inDateRange");
|
|
161
161
|
}
|
|
162
162
|
//#endregion
|
|
163
163
|
//#region src/client/components/AnalysisBuilder/utils/queryUtils.ts
|
|
164
164
|
function Te(e, t, n, r, i = !1, a) {
|
|
165
165
|
let o = t.filter((e) => e.isTimeDimension && e.enableComparison).map((e) => e.field), s = n;
|
|
166
166
|
if (!i) for (let e of o) s = we(s, e);
|
|
167
|
-
s = s.filter((e) =>
|
|
167
|
+
s = s.filter((e) => h(e));
|
|
168
168
|
let c = {
|
|
169
169
|
measures: e.map((e) => e.field),
|
|
170
170
|
dimensions: t.filter((e) => !e.isTimeDimension).map((e) => e.field),
|
|
@@ -221,7 +221,7 @@ function Ee(e, t, n, r) {
|
|
|
221
221
|
//#region src/client/components/AnalysisBuilder/FilterValueInput.tsx
|
|
222
222
|
var De = l("close"), Oe = l("chevronDown");
|
|
223
223
|
function ke({ filter: e, dateRange: t }) {
|
|
224
|
-
let { t: n } =
|
|
224
|
+
let { t: n } = z(), { rangeType: r, numberValue: i, label: a, isOpen: o, onToggle: s, onRangeTypeChange: c, onNumberValueChange: l, onCustomStartDate: u, onCustomEndDate: d, onOpen: f } = t;
|
|
225
225
|
return /* @__PURE__ */ J("div", {
|
|
226
226
|
className: "dc:space-y-2",
|
|
227
227
|
children: [
|
|
@@ -238,14 +238,14 @@ function ke({ filter: e, dateRange: t }) {
|
|
|
238
238
|
}), /* @__PURE__ */ q(Oe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${o ? "dc:rotate-180" : ""}` })]
|
|
239
239
|
}), o && /* @__PURE__ */ q("div", {
|
|
240
240
|
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
|
|
241
|
-
children:
|
|
241
|
+
children: E.map((e) => /* @__PURE__ */ q("button", {
|
|
242
242
|
onClick: () => c(e.value),
|
|
243
243
|
className: `dc:w-full dc:text-left dc:px-3 dc:py-2 dc:text-sm hover:bg-dc-surface-hover ${e.value === r ? "bg-dc-primary/10 text-dc-primary" : "text-dc-text"}`,
|
|
244
244
|
children: n(e.label)
|
|
245
245
|
}, e.value))
|
|
246
246
|
})]
|
|
247
247
|
}),
|
|
248
|
-
|
|
248
|
+
ie(r) && /* @__PURE__ */ J("div", {
|
|
249
249
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
250
250
|
children: [/* @__PURE__ */ q("input", {
|
|
251
251
|
type: "number",
|
|
@@ -284,7 +284,7 @@ function ke({ filter: e, dateRange: t }) {
|
|
|
284
284
|
});
|
|
285
285
|
}
|
|
286
286
|
function Ae({ filter: e, combo: t }) {
|
|
287
|
-
let { t: n } =
|
|
287
|
+
let { t: n } = z(), { options: r, loading: i, error: a, highlightedIndex: o, listRef: s, onSelect: c } = t;
|
|
288
288
|
return i ? /* @__PURE__ */ q("div", {
|
|
289
289
|
className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
|
|
290
290
|
children: n("filter.modal.loading")
|
|
@@ -311,7 +311,7 @@ function Ae({ filter: e, combo: t }) {
|
|
|
311
311
|
});
|
|
312
312
|
}
|
|
313
313
|
function je({ filter: e, operatorMeta: t, combo: n }) {
|
|
314
|
-
let { t: r } =
|
|
314
|
+
let { t: r } = z(), { isOpen: i, loading: a, searchText: o, onSearchTextChange: s, onHighlightedIndexChange: c, onRemove: l, onKeyDown: u, onOpen: d } = n;
|
|
315
315
|
return /* @__PURE__ */ J("div", {
|
|
316
316
|
className: "dc:space-y-2",
|
|
317
317
|
children: [
|
|
@@ -369,7 +369,7 @@ function je({ filter: e, operatorMeta: t, combo: n }) {
|
|
|
369
369
|
});
|
|
370
370
|
}
|
|
371
371
|
function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
372
|
-
let { t: i } =
|
|
372
|
+
let { t: i } = z(), { filter: a, operatorMeta: o, shouldShowDateRange: s, shouldShowComboBox: c } = e, { onBetweenStart: l, onBetweenEnd: u, onDate: d, onDirect: f } = r;
|
|
373
373
|
return o?.requiresValues ? s ? /* @__PURE__ */ q(ke, {
|
|
374
374
|
filter: a,
|
|
375
375
|
dateRange: t
|
|
@@ -425,66 +425,66 @@ function Me({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
|
425
425
|
//#region src/client/components/AnalysisBuilder/FilterConfigModal.tsx
|
|
426
426
|
var Ne = l("close"), Pe = l("chevronDown"), Fe = l("dimension"), Ie = l("timeDimension"), Le = l("measure");
|
|
427
427
|
function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i }) {
|
|
428
|
-
let { t: a } =
|
|
428
|
+
let { t: a } = z(), [o, s] = K(e), [c, l] = K(!1), [u, d] = K(!1), [f, p] = K(!1), [m, h] = K("this_month"), [v, y] = K(1), [b, x] = K(""), [w, T] = K(null), [D, k] = K(-1), A = G(null), j = G(null), ee = le(b, 300), N = C(o.member, t), te = N?.field.type || "string", P = te === "time", ne = N?.fieldType === "measure", re = N?.fieldType === "dimension", ae = S(o.member, t), F = g[o.operator], I = _(te), L = P && o.operator === "inDateRange", R = H(() => [
|
|
429
429
|
"equals",
|
|
430
430
|
"notEquals",
|
|
431
431
|
"in",
|
|
432
432
|
"notIn"
|
|
433
|
-
].includes(o.operator) &&
|
|
433
|
+
].includes(o.operator) && re && !P, [
|
|
434
434
|
o.operator,
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
])(), { values:
|
|
438
|
-
|
|
435
|
+
re,
|
|
436
|
+
P
|
|
437
|
+
])(), { values: se, loading: ce, error: ue, searchValues: B } = oe(o.member, R);
|
|
438
|
+
U(() => {
|
|
439
439
|
if (!i) {
|
|
440
|
-
|
|
440
|
+
T(null);
|
|
441
441
|
return;
|
|
442
442
|
}
|
|
443
443
|
let e = i.getBoundingClientRect(), t = e.top, n = window.innerHeight - e.bottom, r = t > 500 || t > n, a = Math.max(16, Math.min(e.left, window.innerWidth - 400 - 16));
|
|
444
|
-
|
|
444
|
+
T(r ? {
|
|
445
445
|
bottom: window.innerHeight - e.top + 8,
|
|
446
446
|
left: a
|
|
447
447
|
} : {
|
|
448
448
|
top: e.bottom + 8,
|
|
449
449
|
left: a
|
|
450
450
|
});
|
|
451
|
-
}, [i]),
|
|
451
|
+
}, [i]), U(() => {
|
|
452
452
|
let e = (e) => {
|
|
453
|
-
|
|
453
|
+
A.current && !A.current.contains(e.target) && (l(!1), d(!1), p(!1));
|
|
454
454
|
};
|
|
455
455
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
456
|
-
}, []),
|
|
457
|
-
u &&
|
|
456
|
+
}, []), U(() => {
|
|
457
|
+
u && R && B && B("", !0), u || k(-1);
|
|
458
458
|
}, [
|
|
459
459
|
u,
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
]),
|
|
463
|
-
if (
|
|
464
|
-
let e =
|
|
460
|
+
R,
|
|
461
|
+
B
|
|
462
|
+
]), U(() => {
|
|
463
|
+
if (D >= 0 && j.current) {
|
|
464
|
+
let e = j.current.children[D];
|
|
465
465
|
e && e.scrollIntoView({ block: "nearest" });
|
|
466
466
|
}
|
|
467
|
-
}, [
|
|
468
|
-
u &&
|
|
467
|
+
}, [D]), U(() => {
|
|
468
|
+
u && R && B && ee !== void 0 && B(ee);
|
|
469
469
|
}, [
|
|
470
|
-
|
|
470
|
+
ee,
|
|
471
471
|
u,
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
]),
|
|
475
|
-
if (!
|
|
476
|
-
let e =
|
|
477
|
-
e && (
|
|
478
|
-
}, [o.dateRange,
|
|
479
|
-
let
|
|
472
|
+
R,
|
|
473
|
+
B
|
|
474
|
+
]), U(() => {
|
|
475
|
+
if (!L) return;
|
|
476
|
+
let e = O(o.dateRange);
|
|
477
|
+
e && (h(e.rangeType), e.numberValue !== void 0 && y(e.numberValue));
|
|
478
|
+
}, [o.dateRange, L]);
|
|
479
|
+
let de = H((e) => {
|
|
480
480
|
s({
|
|
481
481
|
member: o.member,
|
|
482
482
|
operator: e,
|
|
483
483
|
values: []
|
|
484
484
|
}), l(!1);
|
|
485
|
-
}, [o.member]),
|
|
485
|
+
}, [o.member]), fe = H((e, t) => {
|
|
486
486
|
let n = t?.shiftKey ?? !1, r = o.values || [];
|
|
487
|
-
|
|
487
|
+
F?.supportsMultipleValues ? (r.includes(e) ? s({
|
|
488
488
|
...o,
|
|
489
489
|
values: r.filter((t) => t !== e)
|
|
490
490
|
}) : s({
|
|
@@ -493,28 +493,28 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
493
493
|
}), n || d(!1)) : (s({
|
|
494
494
|
...o,
|
|
495
495
|
values: [e]
|
|
496
|
-
}), d(!1)),
|
|
497
|
-
}, [o,
|
|
496
|
+
}), d(!1)), x(""), k(-1);
|
|
497
|
+
}, [o, F?.supportsMultipleValues]), pe = H((e) => {
|
|
498
498
|
let t = (o.values || []).filter((t) => t !== e);
|
|
499
499
|
s({
|
|
500
500
|
...o,
|
|
501
501
|
values: t
|
|
502
502
|
});
|
|
503
|
-
}, [o]),
|
|
504
|
-
let t = Ee(e.key, u,
|
|
503
|
+
}, [o]), me = H((e) => {
|
|
504
|
+
let t = Ee(e.key, u, se.length, D);
|
|
505
505
|
if (t.type !== "none") {
|
|
506
506
|
if (e.preventDefault(), t.type === "highlight") return k(t.index);
|
|
507
|
-
if (t.type === "select") return
|
|
507
|
+
if (t.type === "select") return fe(se[t.index], { shiftKey: e.shiftKey });
|
|
508
508
|
d(!1), k(-1);
|
|
509
509
|
}
|
|
510
510
|
}, [
|
|
511
511
|
u,
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
]),
|
|
512
|
+
se,
|
|
513
|
+
D,
|
|
514
|
+
fe
|
|
515
|
+
]), V = H((e) => {
|
|
516
516
|
let t = e.target.value;
|
|
517
|
-
if (
|
|
517
|
+
if (F?.valueType === "number") {
|
|
518
518
|
let e = parseFloat(t);
|
|
519
519
|
isNaN(e) ? (t === "" || t === "-") && s({
|
|
520
520
|
...o,
|
|
@@ -527,63 +527,63 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
527
527
|
...o,
|
|
528
528
|
values: t ? [t] : []
|
|
529
529
|
});
|
|
530
|
-
}, [o,
|
|
530
|
+
}, [o, F?.valueType]), he = H((e) => {
|
|
531
531
|
let t = parseFloat(e.target.value), n = [isNaN(t) ? "" : t, (o.values?.length >= 2 ? o.values : ["", ""])[1]].filter((e) => e !== "");
|
|
532
532
|
s({
|
|
533
533
|
...o,
|
|
534
534
|
values: n
|
|
535
535
|
});
|
|
536
|
-
}, [o]),
|
|
536
|
+
}, [o]), ge = H((e) => {
|
|
537
537
|
let t = parseFloat(e.target.value), n = [(o.values?.length >= 2 ? o.values : ["", ""])[0], isNaN(t) ? "" : t].filter((e) => e !== "");
|
|
538
538
|
s({
|
|
539
539
|
...o,
|
|
540
540
|
values: n
|
|
541
541
|
});
|
|
542
|
-
}, [o]),
|
|
542
|
+
}, [o]), _e = H((e) => {
|
|
543
543
|
let t = e.target.value;
|
|
544
544
|
s({
|
|
545
545
|
...o,
|
|
546
546
|
values: t ? [t] : []
|
|
547
547
|
});
|
|
548
|
-
}, [o]), ye =
|
|
549
|
-
|
|
548
|
+
}, [o]), ye = H((e) => {
|
|
549
|
+
h(e), p(!1);
|
|
550
550
|
let t;
|
|
551
551
|
if (e === "custom") {
|
|
552
552
|
let e = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
|
|
553
553
|
t = [e, e];
|
|
554
|
-
} else t =
|
|
554
|
+
} else t = ie(e) ? M(e, v) : M(e);
|
|
555
555
|
s({
|
|
556
556
|
...o,
|
|
557
557
|
dateRange: t
|
|
558
558
|
});
|
|
559
|
-
}, [o,
|
|
560
|
-
if (
|
|
561
|
-
let t =
|
|
559
|
+
}, [o, v]), be = H((e) => {
|
|
560
|
+
if (y(e), ie(m)) {
|
|
561
|
+
let t = M(m, e);
|
|
562
562
|
s({
|
|
563
563
|
...o,
|
|
564
564
|
dateRange: t
|
|
565
565
|
});
|
|
566
566
|
}
|
|
567
|
-
}, [o,
|
|
567
|
+
}, [o, m]), xe = H((e) => {
|
|
568
568
|
let t = e.target.value, n = (Array.isArray(o.dateRange) ? o.dateRange : [o.dateRange || "", ""])[1] || t;
|
|
569
569
|
s({
|
|
570
570
|
...o,
|
|
571
571
|
dateRange: [t, n]
|
|
572
572
|
});
|
|
573
|
-
}, [o]), Se =
|
|
573
|
+
}, [o]), Se = H((e) => {
|
|
574
574
|
let t = e.target.value, n = (Array.isArray(o.dateRange) ? o.dateRange : ["", o.dateRange || ""])[0] || t;
|
|
575
575
|
s({
|
|
576
576
|
...o,
|
|
577
577
|
dateRange: [n, t]
|
|
578
578
|
});
|
|
579
|
-
}, [o]), Ce = a(
|
|
579
|
+
}, [o]), Ce = a(I.find((e) => e.operator === o.operator)?.label || o.operator), we = a(E.find((e) => e.value === m)?.label || "filter.modal.selectRange"), Te = {
|
|
580
580
|
filter: o,
|
|
581
|
-
operatorMeta:
|
|
582
|
-
shouldShowDateRange:
|
|
583
|
-
shouldShowComboBox:
|
|
581
|
+
operatorMeta: F,
|
|
582
|
+
shouldShowDateRange: L,
|
|
583
|
+
shouldShowComboBox: R
|
|
584
584
|
}, Y = {
|
|
585
|
-
rangeType:
|
|
586
|
-
numberValue:
|
|
585
|
+
rangeType: m,
|
|
586
|
+
numberValue: v,
|
|
587
587
|
label: we,
|
|
588
588
|
isOpen: f,
|
|
589
589
|
onToggle: p,
|
|
@@ -591,46 +591,46 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
591
591
|
onNumberValueChange: be,
|
|
592
592
|
onCustomStartDate: xe,
|
|
593
593
|
onCustomEndDate: Se,
|
|
594
|
-
onOpen:
|
|
594
|
+
onOpen: H(() => {
|
|
595
595
|
l(!1), d(!1);
|
|
596
596
|
}, [])
|
|
597
597
|
}, De = {
|
|
598
598
|
isOpen: u,
|
|
599
|
-
options:
|
|
600
|
-
loading:
|
|
601
|
-
error:
|
|
602
|
-
searchText:
|
|
603
|
-
highlightedIndex:
|
|
604
|
-
listRef:
|
|
605
|
-
onSearchTextChange:
|
|
599
|
+
options: se,
|
|
600
|
+
loading: ce,
|
|
601
|
+
error: ue,
|
|
602
|
+
searchText: b,
|
|
603
|
+
highlightedIndex: D,
|
|
604
|
+
listRef: j,
|
|
605
|
+
onSearchTextChange: x,
|
|
606
606
|
onHighlightedIndexChange: k,
|
|
607
|
-
onSelect:
|
|
608
|
-
onRemove:
|
|
609
|
-
onKeyDown:
|
|
610
|
-
onOpen:
|
|
607
|
+
onSelect: fe,
|
|
608
|
+
onRemove: pe,
|
|
609
|
+
onKeyDown: me,
|
|
610
|
+
onOpen: H(() => {
|
|
611
611
|
l(!1), p(!1), d((e) => !e);
|
|
612
612
|
}, [])
|
|
613
|
-
}, Oe =
|
|
614
|
-
onBetweenStart:
|
|
615
|
-
onBetweenEnd:
|
|
616
|
-
onDate:
|
|
617
|
-
onDirect:
|
|
613
|
+
}, Oe = W(() => ({
|
|
614
|
+
onBetweenStart: he,
|
|
615
|
+
onBetweenEnd: ge,
|
|
616
|
+
onDate: _e,
|
|
617
|
+
onDirect: V
|
|
618
618
|
}), [
|
|
619
|
+
he,
|
|
619
620
|
ge,
|
|
620
621
|
_e,
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
className: `dc:fixed dc:inset-0 bg-dc-overlay dc:z-50 ${T ? "" : "dc:flex dc:items-center dc:justify-center dc:p-4"}`,
|
|
622
|
+
V
|
|
623
|
+
]), ke = P ? Ie : ne ? Le : Fe;
|
|
624
|
+
return /* @__PURE__ */ q(ve, { children: /* @__PURE__ */ q("div", {
|
|
625
|
+
className: `dc:fixed dc:inset-0 bg-dc-overlay dc:z-50 ${w ? "" : "dc:flex dc:items-center dc:justify-center dc:p-4"}`,
|
|
626
626
|
onClick: r,
|
|
627
627
|
children: /* @__PURE__ */ J("div", {
|
|
628
|
-
ref:
|
|
629
|
-
className:
|
|
628
|
+
ref: A,
|
|
629
|
+
className: w ? "bg-dc-surface rounded-lg border border-dc-border" : "bg-dc-surface rounded-lg border border-dc-border max-w-md w-full",
|
|
630
630
|
style: {
|
|
631
|
-
...
|
|
631
|
+
...w ? {
|
|
632
632
|
position: "fixed",
|
|
633
|
-
...
|
|
633
|
+
...w,
|
|
634
634
|
maxWidth: "400px",
|
|
635
635
|
width: "100%"
|
|
636
636
|
} : {},
|
|
@@ -659,7 +659,7 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
659
659
|
className: "dc:flex dc:items-center dc:gap-2 dc:p-3 bg-dc-surface-secondary dc:rounded",
|
|
660
660
|
children: [/* @__PURE__ */ q(ke, { className: "dc:w-5 dc:h-5 text-dc-filter-text" }), /* @__PURE__ */ q("span", {
|
|
661
661
|
className: "dc:text-sm dc:font-medium text-dc-text",
|
|
662
|
-
children:
|
|
662
|
+
children: ae
|
|
663
663
|
})]
|
|
664
664
|
})] }),
|
|
665
665
|
/* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("label", {
|
|
@@ -678,8 +678,8 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
678
678
|
}), /* @__PURE__ */ q(Pe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${c ? "dc:rotate-180" : ""}` })]
|
|
679
679
|
}), c && /* @__PURE__ */ q("div", {
|
|
680
680
|
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
|
|
681
|
-
children:
|
|
682
|
-
onClick: () =>
|
|
681
|
+
children: I.map((e) => /* @__PURE__ */ q("button", {
|
|
682
|
+
onClick: () => de(e.operator),
|
|
683
683
|
className: `dc:w-full dc:text-left dc:px-3 dc:py-2 dc:text-sm hover:bg-dc-surface-hover ${e.operator === o.operator ? "bg-dc-primary/10 text-dc-primary" : "text-dc-text"}`,
|
|
684
684
|
children: a(e.label)
|
|
685
685
|
}, e.operator))
|
|
@@ -716,13 +716,13 @@ function Re({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
716
716
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterItem.tsx
|
|
717
717
|
var ze = l("close"), Be = l("dimension"), Ve = l("timeDimension"), He = l("measure");
|
|
718
718
|
function Ue({ filter: e, schema: t, onRemove: n, onUpdate: r }) {
|
|
719
|
-
let { t: i } =
|
|
720
|
-
return /* @__PURE__ */ J(
|
|
719
|
+
let { t: i } = z(), [a, o] = K(!1), s = G(null), c = C(e.member, t), l = (c?.field.type || "string") === "time", u = c?.fieldType === "measure", d = S(e.member, t), f = g[e.operator], p = f?.label ? i(f.label) : e.operator, m = We(e, f, i), h = l ? Ve : u ? He : Be;
|
|
720
|
+
return /* @__PURE__ */ J(ve, { children: [/* @__PURE__ */ J("div", {
|
|
721
721
|
className: "dc:flex dc:items-start dc:gap-2 dc:px-2 dc:py-1.5 bg-dc-surface-secondary dc:rounded-lg dc:group hover:bg-dc-surface-tertiary dc:transition-all dc:duration-150 dc:w-full",
|
|
722
722
|
children: [
|
|
723
723
|
/* @__PURE__ */ q("span", {
|
|
724
724
|
className: `dc:w-6 dc:h-6 dc:flex dc:items-center dc:justify-center dc:rounded ${l ? "bg-dc-time-dimension" : u ? "bg-dc-measure" : "bg-dc-dimension"} ${l ? "text-dc-time-dimension-text" : u ? "text-dc-measure-text" : "text-dc-dimension-text"} dc:flex-shrink-0 dc:mt-0.5`,
|
|
725
|
-
children:
|
|
725
|
+
children: h && /* @__PURE__ */ q(h, { className: "dc:w-4 dc:h-4" })
|
|
726
726
|
}),
|
|
727
727
|
/* @__PURE__ */ q("button", {
|
|
728
728
|
ref: s,
|
|
@@ -774,22 +774,22 @@ function We(e, t, n) {
|
|
|
774
774
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterGroup.tsx
|
|
775
775
|
var Ge = l("add"), Ke = l("close");
|
|
776
776
|
function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, depth: a = 0, hideRemoveButton: o = !1 }) {
|
|
777
|
-
let { t: s } =
|
|
778
|
-
|
|
777
|
+
let { t: s } = z(), [c, l] = K(!1), u = G(null);
|
|
778
|
+
U(() => {
|
|
779
779
|
let e = (e) => {
|
|
780
780
|
u.current && !u.current.contains(e.target) && l(!1);
|
|
781
781
|
};
|
|
782
782
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
783
783
|
}, []);
|
|
784
|
-
let d =
|
|
785
|
-
n(
|
|
786
|
-
}, [e, n]), f =
|
|
784
|
+
let d = H(() => {
|
|
785
|
+
n(re(e));
|
|
786
|
+
}, [e, n]), f = H((t, r) => {
|
|
787
787
|
let i = [...e.filters];
|
|
788
788
|
i[t] = r, n({
|
|
789
789
|
...e,
|
|
790
790
|
filters: i
|
|
791
791
|
});
|
|
792
|
-
}, [e, n]), p =
|
|
792
|
+
}, [e, n]), p = H((t) => {
|
|
793
793
|
let i = e.filters.filter((e, n) => n !== t);
|
|
794
794
|
i.length === 0 ? r() : n({
|
|
795
795
|
...e,
|
|
@@ -800,7 +800,7 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
800
800
|
n,
|
|
801
801
|
r,
|
|
802
802
|
a
|
|
803
|
-
]), m =
|
|
803
|
+
]), m = H((t) => {
|
|
804
804
|
let r = {
|
|
805
805
|
type: t,
|
|
806
806
|
filters: []
|
|
@@ -809,9 +809,9 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
809
809
|
...e,
|
|
810
810
|
filters: [...e.filters, r]
|
|
811
811
|
}), l(!1);
|
|
812
|
-
}, [e, n]), h =
|
|
812
|
+
}, [e, n]), h = H(() => {
|
|
813
813
|
i([]), l(!1);
|
|
814
|
-
}, [i]), g =
|
|
814
|
+
}, [i]), g = H((e) => (t = []) => {
|
|
815
815
|
i([e, ...t]);
|
|
816
816
|
}, [i]), _ = () => a % 2 == 0 ? "border-dc-border" : "border-dc-border dark:border-dc-border", v = () => e.type === "and" ? "bg-dc-info-bg/50" : "bg-dc-warning-bg/50", y = e.filters.length, b = s(y === 1 ? "filter.group.condition" : "filter.group.conditions");
|
|
817
817
|
return /* @__PURE__ */ J("div", {
|
|
@@ -882,12 +882,12 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
882
882
|
className: "dc:text-xs text-dc-primary dc:hover:underline",
|
|
883
883
|
children: s("filter.group.addFilterLink")
|
|
884
884
|
})]
|
|
885
|
-
}) : e.filters.map((e, n) =>
|
|
885
|
+
}) : e.filters.map((e, n) => I(e) ? /* @__PURE__ */ q(Ue, {
|
|
886
886
|
filter: e,
|
|
887
887
|
schema: t,
|
|
888
888
|
onUpdate: (e) => f(n, e),
|
|
889
889
|
onRemove: () => p(n)
|
|
890
|
-
}, `filter-${n}`) :
|
|
890
|
+
}, `filter-${n}`) : j(e) ? /* @__PURE__ */ q(qe, {
|
|
891
891
|
group: e,
|
|
892
892
|
schema: t,
|
|
893
893
|
onUpdate: (e) => f(n, e),
|
|
@@ -902,42 +902,42 @@ function qe({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
902
902
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterSection.tsx
|
|
903
903
|
var Je = l("add");
|
|
904
904
|
function Ye({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dimensionsOnly: i = !1 }) {
|
|
905
|
-
let { t: a } =
|
|
905
|
+
let { t: a } = z(), [o, s] = K(!1), [c, l] = K(!1), u = G([]), d = ee(e), f = H((e) => {
|
|
906
906
|
e.preventDefault(), e.stopPropagation(), l(!0);
|
|
907
|
-
}, []), p =
|
|
907
|
+
}, []), p = H((e) => {
|
|
908
908
|
e.preventDefault(), e.stopPropagation(), l(!1);
|
|
909
|
-
}, []), m =
|
|
909
|
+
}, []), m = H((e) => {
|
|
910
910
|
e.preventDefault(), e.stopPropagation(), l(!1);
|
|
911
911
|
try {
|
|
912
912
|
let t = JSON.parse(e.dataTransfer.getData("text/plain"));
|
|
913
913
|
t.field && r && r(t.field);
|
|
914
914
|
} catch {}
|
|
915
|
-
}, [r]), h =
|
|
915
|
+
}, [r]), h = ne(e), g = H((t, r, i) => {
|
|
916
916
|
let a = t.type === "time", o = a ? "inDateRange" : "equals", c = {
|
|
917
917
|
member: t.name,
|
|
918
918
|
operator: o,
|
|
919
919
|
values: []
|
|
920
920
|
};
|
|
921
|
-
a && o === "inDateRange" && (c.dateRange =
|
|
922
|
-
}, [e, n]), _ =
|
|
921
|
+
a && o === "inDateRange" && (c.dateRange = M("this_month")), n(N(e, u.current, c)), s(!1), u.current = [];
|
|
922
|
+
}, [e, n]), _ = H((t, r) => {
|
|
923
923
|
let i = [...e];
|
|
924
924
|
i[t] = r, n(i);
|
|
925
|
-
}, [e, n]), v =
|
|
926
|
-
n(
|
|
927
|
-
}, [e, n]), y =
|
|
925
|
+
}, [e, n]), v = H((t) => {
|
|
926
|
+
n(te(e, t));
|
|
927
|
+
}, [e, n]), y = H(() => {
|
|
928
928
|
n([]);
|
|
929
|
-
}, [n]), b =
|
|
929
|
+
}, [n]), b = H(() => {
|
|
930
930
|
u.current = [], s(!0);
|
|
931
|
-
}, []), x =
|
|
931
|
+
}, []), x = H((e) => (t = []) => {
|
|
932
932
|
u.current = [...e, ...t], s(!0);
|
|
933
933
|
}, []), S = (n, r, i = []) => {
|
|
934
934
|
let a = [...i, r];
|
|
935
|
-
return
|
|
935
|
+
return I(n) ? /* @__PURE__ */ q(Ue, {
|
|
936
936
|
filter: n,
|
|
937
937
|
schema: t,
|
|
938
938
|
onUpdate: (e) => _(r, e),
|
|
939
939
|
onRemove: () => v(r)
|
|
940
|
-
}, `filter-${a.join("-")}`) :
|
|
940
|
+
}, `filter-${a.join("-")}`) : j(n) ? /* @__PURE__ */ q(qe, {
|
|
941
941
|
group: n,
|
|
942
942
|
schema: t,
|
|
943
943
|
onUpdate: (e) => _(r, e),
|
|
@@ -951,7 +951,7 @@ function Ye({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
951
951
|
onClick: b,
|
|
952
952
|
className: "dc:flex dc:items-center dc:justify-between dc:mb-3 dc:w-full dc:py-1 dc:px-2 dc:-ml-2 dc:rounded-lg hover:bg-dc-primary/10 dc:transition-colors dc:group",
|
|
953
953
|
title: "Add filter",
|
|
954
|
-
children: [/* @__PURE__ */ J(
|
|
954
|
+
children: [/* @__PURE__ */ J(me, { children: [a("analysis.sections.filters"), d > 0 && /* @__PURE__ */ J("span", {
|
|
955
955
|
className: "dc:ml-1.5 dc:text-xs dc:font-normal text-dc-text-muted dc:normal-case dc:tracking-normal",
|
|
956
956
|
children: [
|
|
957
957
|
"(",
|
|
@@ -1018,7 +1018,7 @@ var Ze = {
|
|
|
1018
1018
|
low: "text-dc-text-muted"
|
|
1019
1019
|
};
|
|
1020
1020
|
function et({ assessment: e, reason: t }) {
|
|
1021
|
-
let { t: n } =
|
|
1021
|
+
let { t: n } = z(), r = {
|
|
1022
1022
|
good: n("explainAI.assessment.good"),
|
|
1023
1023
|
warning: n("explainAI.assessment.warning"),
|
|
1024
1024
|
critical: n("explainAI.assessment.critical")
|
|
@@ -1059,8 +1059,8 @@ function tt({ issue: e }) {
|
|
|
1059
1059
|
});
|
|
1060
1060
|
}
|
|
1061
1061
|
function nt({ text: e }) {
|
|
1062
|
-
let { t } =
|
|
1063
|
-
return
|
|
1062
|
+
let { t } = z(), [n, r] = V.useState(!1), i = V.useRef(null);
|
|
1063
|
+
return V.useEffect(() => () => {
|
|
1064
1064
|
i.current && clearTimeout(i.current);
|
|
1065
1065
|
}, []), /* @__PURE__ */ q("button", {
|
|
1066
1066
|
onClick: async () => {
|
|
@@ -1076,7 +1076,7 @@ function nt({ text: e }) {
|
|
|
1076
1076
|
});
|
|
1077
1077
|
}
|
|
1078
1078
|
function rt({ rec: e }) {
|
|
1079
|
-
let { t } =
|
|
1079
|
+
let { t } = z(), n = {
|
|
1080
1080
|
index: t("explainAI.type.index"),
|
|
1081
1081
|
table: t("explainAI.type.table"),
|
|
1082
1082
|
cube: t("explainAI.type.cube"),
|
|
@@ -1101,7 +1101,7 @@ function rt({ rec: e }) {
|
|
|
1101
1101
|
}),
|
|
1102
1102
|
e.sql && /* @__PURE__ */ q("div", {
|
|
1103
1103
|
className: "dc:mt-2",
|
|
1104
|
-
children: /* @__PURE__ */ q(
|
|
1104
|
+
children: /* @__PURE__ */ q(m, {
|
|
1105
1105
|
code: e.sql,
|
|
1106
1106
|
language: "sql",
|
|
1107
1107
|
headerRight: /* @__PURE__ */ q(nt, { text: e.sql })
|
|
@@ -1135,13 +1135,13 @@ function rt({ rec: e }) {
|
|
|
1135
1135
|
});
|
|
1136
1136
|
}
|
|
1137
1137
|
function it({ analysis: e, onClose: t, onClear: n }) {
|
|
1138
|
-
let { t: r } =
|
|
1139
|
-
return
|
|
1138
|
+
let { t: r } = z(), i = t || n;
|
|
1139
|
+
return V.useEffect(() => {
|
|
1140
1140
|
let e = (e) => {
|
|
1141
1141
|
e.key === "Escape" && i && i();
|
|
1142
1142
|
};
|
|
1143
1143
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
1144
|
-
}, [i]),
|
|
1144
|
+
}, [i]), V.useEffect(() => (document.body.style.overflow = "hidden", () => {
|
|
1145
1145
|
document.body.style.overflow = "";
|
|
1146
1146
|
}), []), /* @__PURE__ */ J("div", {
|
|
1147
1147
|
className: "dc:fixed dc:inset-0 dc:z-50 dc:flex dc:items-center dc:justify-center dc:p-4 bg-black/50",
|
|
@@ -1402,7 +1402,7 @@ function jt(e, t, n, r) {
|
|
|
1402
1402
|
//#endregion
|
|
1403
1403
|
//#region src/client/components/AnalysisBuilder/ExecutionPlanPanelParts.tsx
|
|
1404
1404
|
function Mt({ title: e, height: t, className: n, children: r }) {
|
|
1405
|
-
return /* @__PURE__ */ J(
|
|
1405
|
+
return /* @__PURE__ */ J(ve, { children: [/* @__PURE__ */ q("h4", {
|
|
1406
1406
|
className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2",
|
|
1407
1407
|
children: e
|
|
1408
1408
|
}), /* @__PURE__ */ q("div", {
|
|
@@ -1412,7 +1412,7 @@ function Mt({ title: e, height: t, className: n, children: r }) {
|
|
|
1412
1412
|
})] });
|
|
1413
1413
|
}
|
|
1414
1414
|
function Nt({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSql: i, title: a, height: o, headerRight: s }) {
|
|
1415
|
-
let { t: c } =
|
|
1415
|
+
let { t: c } = z();
|
|
1416
1416
|
return t ? /* @__PURE__ */ q(Mt, {
|
|
1417
1417
|
title: a,
|
|
1418
1418
|
height: o,
|
|
@@ -1423,7 +1423,7 @@ function Nt({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSq
|
|
|
1423
1423
|
height: o,
|
|
1424
1424
|
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded dc:border border-dc-error",
|
|
1425
1425
|
children: n.message
|
|
1426
|
-
}) : e ? /* @__PURE__ */ q(
|
|
1426
|
+
}) : e ? /* @__PURE__ */ q(m, {
|
|
1427
1427
|
code: i,
|
|
1428
1428
|
language: "sql",
|
|
1429
1429
|
title: a,
|
|
@@ -1437,7 +1437,7 @@ function Nt({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSq
|
|
|
1437
1437
|
});
|
|
1438
1438
|
}
|
|
1439
1439
|
function Pt({ summary: e }) {
|
|
1440
|
-
let { t } =
|
|
1440
|
+
let { t } = z();
|
|
1441
1441
|
return /* @__PURE__ */ J("div", {
|
|
1442
1442
|
className: "dc:flex dc:flex-wrap dc:items-center dc:gap-2",
|
|
1443
1443
|
children: [
|
|
@@ -1469,7 +1469,7 @@ function Pt({ summary: e }) {
|
|
|
1469
1469
|
});
|
|
1470
1470
|
}
|
|
1471
1471
|
function Ft({ explainLoading: e, explainError: t, explainResult: n, useAnalyze: r, aiButton: i }) {
|
|
1472
|
-
let { t: a } =
|
|
1472
|
+
let { t: a } = z();
|
|
1473
1473
|
return e ? /* @__PURE__ */ q("div", {
|
|
1474
1474
|
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
|
|
1475
1475
|
children: a(r ? "debug.explainRunningAnalyze" : "debug.explainRunningBasic")
|
|
@@ -1492,7 +1492,7 @@ function Ft({ explainLoading: e, explainError: t, explainResult: n, useAnalyze:
|
|
|
1492
1492
|
n.summary.usedIndexes.join(", ")
|
|
1493
1493
|
]
|
|
1494
1494
|
}),
|
|
1495
|
-
/* @__PURE__ */ q(
|
|
1495
|
+
/* @__PURE__ */ q(m, {
|
|
1496
1496
|
code: n.raw,
|
|
1497
1497
|
language: "sql",
|
|
1498
1498
|
title: a("debug.executionPlanTitle", { database: n.summary.database }),
|
|
@@ -1504,8 +1504,8 @@ function Ft({ explainLoading: e, explainError: t, explainResult: n, useAnalyze:
|
|
|
1504
1504
|
}
|
|
1505
1505
|
//#endregion
|
|
1506
1506
|
//#region src/client/components/AnalysisBuilder/ExecutionPlanPanel.tsx
|
|
1507
|
-
var It =
|
|
1508
|
-
let { t: v } =
|
|
1507
|
+
var It = ge(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder: r = "Add metrics to generate SQL", explainResult: i, explainLoading: a = !1, explainHasRun: o = !1, explainError: s, runExplain: c, aiAnalysis: l, aiAnalysisLoading: u = !1, aiAnalysisError: d, runAIAnalysis: f, clearAIAnalysis: p, enableAI: m = !1, query: h, title: g = "Generated SQL", height: _ = "16rem" }) {
|
|
1508
|
+
let { t: v } = z(), [y, b] = K(!1), [x, S] = K(!1), C = e ? e.sql + (e.params && e.params.length > 0 ? "\n\n-- Parameters:\n" + JSON.stringify(e.params, null, 2) : "") : "", w = () => {
|
|
1509
1509
|
f && i && h && (f(i, h), S(!0));
|
|
1510
1510
|
}, T = () => {
|
|
1511
1511
|
S(!1);
|
|
@@ -1513,10 +1513,10 @@ var It = _e(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
|
|
|
1513
1513
|
onClick: w,
|
|
1514
1514
|
disabled: u,
|
|
1515
1515
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded bg-dc-accent text-white hover:bg-dc-accent-hover dc:disabled:opacity-50 dc:disabled:cursor-not-allowed dc:flex dc:items-center dc:gap-1",
|
|
1516
|
-
children: u ? /* @__PURE__ */ J(
|
|
1516
|
+
children: u ? /* @__PURE__ */ J(ve, { children: [/* @__PURE__ */ q("span", {
|
|
1517
1517
|
className: "dc:animate-spin",
|
|
1518
1518
|
children: "⟳"
|
|
1519
|
-
}), v("debug.aiAnalyzing")] }) : /* @__PURE__ */ q(
|
|
1519
|
+
}), v("debug.aiAnalyzing")] }) : /* @__PURE__ */ q(ve, { children: `✨ ${v("debug.aiAnalysis")}` })
|
|
1520
1520
|
}) : null;
|
|
1521
1521
|
return /* @__PURE__ */ J("div", {
|
|
1522
1522
|
className: "dc:space-y-3",
|
|
@@ -1529,7 +1529,7 @@ var It = _e(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
|
|
|
1529
1529
|
formattedSql: C,
|
|
1530
1530
|
title: g,
|
|
1531
1531
|
height: _,
|
|
1532
|
-
headerRight: /* @__PURE__ */ J(
|
|
1532
|
+
headerRight: /* @__PURE__ */ J(ve, { children: [/* @__PURE__ */ J("label", {
|
|
1533
1533
|
className: "dc:flex dc:items-center dc:gap-1 dc:text-xs text-dc-text-secondary dc:cursor-pointer",
|
|
1534
1534
|
children: [/* @__PURE__ */ q("input", {
|
|
1535
1535
|
type: "checkbox",
|
|
@@ -1609,22 +1609,22 @@ function Bt(e) {
|
|
|
1609
1609
|
}
|
|
1610
1610
|
function Vt(e) {
|
|
1611
1611
|
return e.map((e, t) => ({
|
|
1612
|
-
id:
|
|
1612
|
+
id: k(),
|
|
1613
1613
|
field: e,
|
|
1614
|
-
label:
|
|
1614
|
+
label: A(t)
|
|
1615
1615
|
}));
|
|
1616
1616
|
}
|
|
1617
1617
|
function Ht(e) {
|
|
1618
1618
|
let t = [];
|
|
1619
1619
|
if (e.dimensions) for (let n of e.dimensions) t.push({
|
|
1620
|
-
id:
|
|
1620
|
+
id: k(),
|
|
1621
1621
|
field: n,
|
|
1622
1622
|
isTimeDimension: !1
|
|
1623
1623
|
});
|
|
1624
1624
|
if (e.timeDimensions) for (let n of e.timeDimensions) {
|
|
1625
1625
|
let e = !!(n.compareDateRange && n.compareDateRange.length > 0);
|
|
1626
1626
|
t.push({
|
|
1627
|
-
id:
|
|
1627
|
+
id: k(),
|
|
1628
1628
|
field: n.dimension,
|
|
1629
1629
|
granularity: n.granularity,
|
|
1630
1630
|
isTimeDimension: !0,
|
|
@@ -1729,7 +1729,7 @@ var X = {
|
|
|
1729
1729
|
}
|
|
1730
1730
|
}, Z = /* @__PURE__ */ new Map(), Gt = !1;
|
|
1731
1731
|
function Kt() {
|
|
1732
|
-
Gt ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel",
|
|
1732
|
+
Gt ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel", x), Z.has("flow") || Z.set("flow", w), Z.has("retention") || Z.set("retention", D), !0);
|
|
1733
1733
|
}
|
|
1734
1734
|
var Q = {
|
|
1735
1735
|
register(e) {
|
|
@@ -1754,9 +1754,9 @@ var Q = {
|
|
|
1754
1754
|
analysisType: "query",
|
|
1755
1755
|
charts: {
|
|
1756
1756
|
query: X.getDefaultChartConfig(),
|
|
1757
|
-
funnel:
|
|
1757
|
+
funnel: x.getDefaultChartConfig(),
|
|
1758
1758
|
flow: w.getDefaultChartConfig(),
|
|
1759
|
-
retention:
|
|
1759
|
+
retention: D.getDefaultChartConfig()
|
|
1760
1760
|
},
|
|
1761
1761
|
activeViews: {
|
|
1762
1762
|
query: "chart",
|
|
@@ -2015,9 +2015,9 @@ var Q = {
|
|
|
2015
2015
|
}),
|
|
2016
2016
|
addMetric: (t, n) => e((e) => {
|
|
2017
2017
|
let r = e.activeQueryIndex, i = [...e.queryStates], a = i[r] || Y(), o = {
|
|
2018
|
-
id:
|
|
2018
|
+
id: k(),
|
|
2019
2019
|
field: t,
|
|
2020
|
-
label: n ||
|
|
2020
|
+
label: n || A(a.metrics.length)
|
|
2021
2021
|
};
|
|
2022
2022
|
return i[r] = {
|
|
2023
2023
|
...a,
|
|
@@ -2040,9 +2040,9 @@ var Q = {
|
|
|
2040
2040
|
};
|
|
2041
2041
|
else {
|
|
2042
2042
|
let e = {
|
|
2043
|
-
id:
|
|
2043
|
+
id: k(),
|
|
2044
2044
|
field: t,
|
|
2045
|
-
label:
|
|
2045
|
+
label: A(i.metrics.length)
|
|
2046
2046
|
};
|
|
2047
2047
|
r[n] = {
|
|
2048
2048
|
...i,
|
|
@@ -2062,7 +2062,7 @@ var Q = {
|
|
|
2062
2062
|
let i = e.activeQueryIndex, a = [...e.queryStates], o = a[i] || Y();
|
|
2063
2063
|
if (n && o.breakdowns.some((e) => e.isTimeDimension)) return e;
|
|
2064
2064
|
let s = {
|
|
2065
|
-
id:
|
|
2065
|
+
id: k(),
|
|
2066
2066
|
field: t,
|
|
2067
2067
|
isTimeDimension: n,
|
|
2068
2068
|
granularity: n ? r || "month" : void 0
|
|
@@ -2089,7 +2089,7 @@ var Q = {
|
|
|
2089
2089
|
else {
|
|
2090
2090
|
if (n && o.breakdowns.some((e) => e.isTimeDimension)) return e;
|
|
2091
2091
|
let s = {
|
|
2092
|
-
id:
|
|
2092
|
+
id: k(),
|
|
2093
2093
|
field: t,
|
|
2094
2094
|
isTimeDimension: n,
|
|
2095
2095
|
granularity: n ? r || "month" : void 0
|
|
@@ -2137,7 +2137,7 @@ var Q = {
|
|
|
2137
2137
|
member: l.field,
|
|
2138
2138
|
operator: "inDateRange",
|
|
2139
2139
|
values: [],
|
|
2140
|
-
dateRange:
|
|
2140
|
+
dateRange: M("last_n_months", 3)
|
|
2141
2141
|
};
|
|
2142
2142
|
s[c] = {
|
|
2143
2143
|
...s[c],
|
|
@@ -2254,7 +2254,7 @@ var Q = {
|
|
|
2254
2254
|
...Zt(),
|
|
2255
2255
|
addFunnelStep: () => e((e) => {
|
|
2256
2256
|
let t = e.funnelSteps[e.funnelSteps.length - 1], n = {
|
|
2257
|
-
id:
|
|
2257
|
+
id: k(),
|
|
2258
2258
|
name: `Step ${e.funnelSteps.length + 1}`,
|
|
2259
2259
|
cube: e.funnelCube || "",
|
|
2260
2260
|
filters: t?.filters ? JSON.parse(JSON.stringify(t.filters)) : [],
|
|
@@ -2402,7 +2402,7 @@ var Q = {
|
|
|
2402
2402
|
joinStrategy: e.joinStrategy
|
|
2403
2403
|
} };
|
|
2404
2404
|
}
|
|
2405
|
-
}), tn = () => ({ ...
|
|
2405
|
+
}), tn = () => ({ ...d }), nn = (e, t, n) => ({
|
|
2406
2406
|
...tn(),
|
|
2407
2407
|
setRetentionCube: (t) => e(() => ({
|
|
2408
2408
|
retentionCube: t,
|
|
@@ -2585,11 +2585,11 @@ var Q = {
|
|
|
2585
2585
|
//#region src/client/stores/optionsToAnalysisConfig.ts
|
|
2586
2586
|
function sn(e) {
|
|
2587
2587
|
let t = e.filters ? [...e.filters] : [], n = e.timeDimensions || [], r = [...(e.dimensions || []).map((e) => ({
|
|
2588
|
-
id:
|
|
2588
|
+
id: k(),
|
|
2589
2589
|
field: e,
|
|
2590
2590
|
isTimeDimension: !1
|
|
2591
2591
|
})), ...n.map((e) => ({
|
|
2592
|
-
id:
|
|
2592
|
+
id: k(),
|
|
2593
2593
|
field: e.dimension,
|
|
2594
2594
|
granularity: e.granularity,
|
|
2595
2595
|
isTimeDimension: !0,
|
|
@@ -2617,9 +2617,9 @@ function sn(e) {
|
|
|
2617
2617
|
return {
|
|
2618
2618
|
...Y(),
|
|
2619
2619
|
metrics: (e.measures || []).map((e, t) => ({
|
|
2620
|
-
id:
|
|
2620
|
+
id: k(),
|
|
2621
2621
|
field: e,
|
|
2622
|
-
label:
|
|
2622
|
+
label: A(t)
|
|
2623
2623
|
})),
|
|
2624
2624
|
breakdowns: r,
|
|
2625
2625
|
filters: i,
|
|
@@ -2641,8 +2641,8 @@ function un(e) {
|
|
|
2641
2641
|
return e.initialActiveView || "chart";
|
|
2642
2642
|
}
|
|
2643
2643
|
function dn(e) {
|
|
2644
|
-
let t = ln(
|
|
2645
|
-
return
|
|
2644
|
+
let t = ln(x, e.initialChartConfig), n = e.initialFunnelState ?? {};
|
|
2645
|
+
return x.save({
|
|
2646
2646
|
funnelCube: n.funnelCube ?? null,
|
|
2647
2647
|
funnelSteps: n.funnelSteps || [],
|
|
2648
2648
|
activeFunnelStepIndex: 0,
|
|
@@ -2667,8 +2667,8 @@ function fn(e) {
|
|
|
2667
2667
|
}, { flow: t }, un(e));
|
|
2668
2668
|
}
|
|
2669
2669
|
function pn(e) {
|
|
2670
|
-
let t = ln(
|
|
2671
|
-
return
|
|
2670
|
+
let t = ln(D, e.initialChartConfig), n = e.initialRetentionState ?? {}, r = f(p);
|
|
2671
|
+
return D.save({
|
|
2672
2672
|
retentionCube: n.retentionCube ?? null,
|
|
2673
2673
|
retentionBindingKey: n.retentionBindingKey ?? null,
|
|
2674
2674
|
retentionTimeDimension: n.retentionTimeDimension ?? null,
|
|
@@ -2722,9 +2722,9 @@ function vn(e, t) {
|
|
|
2722
2722
|
...tn(),
|
|
2723
2723
|
charts: {
|
|
2724
2724
|
query: X.getDefaultChartConfig(),
|
|
2725
|
-
funnel:
|
|
2725
|
+
funnel: x.getDefaultChartConfig(),
|
|
2726
2726
|
flow: w.getDefaultChartConfig(),
|
|
2727
|
-
retention:
|
|
2727
|
+
retention: D.getDefaultChartConfig()
|
|
2728
2728
|
},
|
|
2729
2729
|
activeViews: {
|
|
2730
2730
|
query: "chart",
|
|
@@ -2740,7 +2740,7 @@ function vn(e, t) {
|
|
|
2740
2740
|
...Zt(),
|
|
2741
2741
|
charts: {
|
|
2742
2742
|
...e.charts,
|
|
2743
|
-
funnel:
|
|
2743
|
+
funnel: x.getDefaultChartConfig()
|
|
2744
2744
|
}
|
|
2745
2745
|
};
|
|
2746
2746
|
case "flow": return {
|
|
@@ -2754,7 +2754,7 @@ function vn(e, t) {
|
|
|
2754
2754
|
...tn(),
|
|
2755
2755
|
charts: {
|
|
2756
2756
|
...e.charts,
|
|
2757
|
-
retention:
|
|
2757
|
+
retention: D.getDefaultChartConfig()
|
|
2758
2758
|
}
|
|
2759
2759
|
};
|
|
2760
2760
|
default: return {
|
|
@@ -2801,10 +2801,10 @@ function yn(n = {}) {
|
|
|
2801
2801
|
return a()(i(e(t(o, {
|
|
2802
2802
|
name: n.storageKey || "drizzle-cube-analysis-builder-v3",
|
|
2803
2803
|
partialize: (e) => e.saveWorkspace(),
|
|
2804
|
-
merge: (e, t) => e &&
|
|
2804
|
+
merge: (e, t) => e && b(e) ? {
|
|
2805
2805
|
...t,
|
|
2806
2806
|
_persistedWorkspace: e
|
|
2807
|
-
} : e &&
|
|
2807
|
+
} : e && y(e) ? {
|
|
2808
2808
|
...t,
|
|
2809
2809
|
_persistedConfig: e
|
|
2810
2810
|
} : r ? {
|
|
@@ -2827,9 +2827,9 @@ function yn(n = {}) {
|
|
|
2827
2827
|
}
|
|
2828
2828
|
})), { name: "AnalysisBuilderStore" }));
|
|
2829
2829
|
}
|
|
2830
|
-
var bn =
|
|
2830
|
+
var bn = he(null);
|
|
2831
2831
|
function xn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalStorage: r, storageKey: i, initialAnalysisType: a, initialFunnelState: o, initialFlowState: s, initialRetentionState: c, initialActiveView: l }) {
|
|
2832
|
-
let u =
|
|
2832
|
+
let u = G(null);
|
|
2833
2833
|
return u.current ||= yn({
|
|
2834
2834
|
initialQuery: t,
|
|
2835
2835
|
initialChartConfig: n,
|
|
@@ -2846,12 +2846,12 @@ function xn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalS
|
|
|
2846
2846
|
});
|
|
2847
2847
|
}
|
|
2848
2848
|
function $(e) {
|
|
2849
|
-
let t =
|
|
2849
|
+
let t = _e(bn);
|
|
2850
2850
|
if (!t) throw Error("useAnalysisBuilderStore must be used within AnalysisBuilderStoreProvider");
|
|
2851
2851
|
return r(t, e);
|
|
2852
2852
|
}
|
|
2853
2853
|
function Sn() {
|
|
2854
|
-
let e =
|
|
2854
|
+
let e = _e(bn);
|
|
2855
2855
|
if (!e) throw Error("useAnalysisBuilderStoreApi must be used within AnalysisBuilderStoreProvider");
|
|
2856
2856
|
return e;
|
|
2857
2857
|
}
|
|
@@ -2931,7 +2931,7 @@ function Nn(e, t) {
|
|
|
2931
2931
|
let n = [];
|
|
2932
2932
|
if (e.length < 2 || t.length === 0) return n;
|
|
2933
2933
|
for (let r = 0; r < e.length; r++) {
|
|
2934
|
-
let i = e[r], a = new Set([...i.dimensions || [], ...i.timeDimensions?.map((e) => e.dimension) || []]);
|
|
2934
|
+
let i = e[r], a = /* @__PURE__ */ new Set([...i.dimensions || [], ...i.timeDimensions?.map((e) => e.dimension) || []]);
|
|
2935
2935
|
for (let e of t) a.has(e) || n.push({
|
|
2936
2936
|
type: "missing_merge_key",
|
|
2937
2937
|
queryIndex: r,
|
|
@@ -2999,37 +2999,37 @@ function Bn(e) {
|
|
|
2999
2999
|
//#endregion
|
|
3000
3000
|
//#region src/client/hooks/useAnalysisState.ts
|
|
3001
3001
|
function Vn(e = {}) {
|
|
3002
|
-
let { externalColorPalette: t } = e, r = Sn(), i = $((e) => e.queryStates), a = $((e) => e.activeQueryIndex), o = $((e) => e.mergeStrategy), s = $((e) => e.setActiveQueryIndex), c = $((e) => e.setMergeStrategy), l = $((e) => e.addQuery), u = $((e) => e.removeQuery), d = $((e) => e.getCurrentState),
|
|
3003
|
-
let e = i[a] ||
|
|
3002
|
+
let { externalColorPalette: t } = e, r = Sn(), i = $((e) => e.queryStates), a = $((e) => e.activeQueryIndex), o = $((e) => e.mergeStrategy), s = $((e) => e.setActiveQueryIndex), c = $((e) => e.setMergeStrategy), l = $((e) => e.addQuery), u = $((e) => e.removeQuery), d = $((e) => e.getCurrentState), f = $((e) => e.getMergeKeys), p = $((e) => e.isMultiQueryMode), m = d(), h = p(), g = f(), _ = W(() => {
|
|
3003
|
+
let e = i[a] || m;
|
|
3004
3004
|
return Te(e.metrics, e.breakdowns, e.filters, e.order, !1, e.limit);
|
|
3005
3005
|
}, [
|
|
3006
3006
|
i,
|
|
3007
3007
|
a,
|
|
3008
|
-
|
|
3009
|
-
]), y =
|
|
3008
|
+
m
|
|
3009
|
+
]), y = W(() => {
|
|
3010
3010
|
let e = i[0]?.breakdowns || [];
|
|
3011
3011
|
return i.map((t, n) => Te(t.metrics, o === "merge" && n > 0 ? e : t.breakdowns, t.filters, t.order, !1, t.limit));
|
|
3012
|
-
}, [i, o]), b =
|
|
3012
|
+
}, [i, o]), b = W(() => {
|
|
3013
3013
|
if (i.length <= 1) return null;
|
|
3014
3014
|
let e = y.filter((e) => e.measures && e.measures.length > 0 || e.dimensions && e.dimensions.length > 0 || e.timeDimensions && e.timeDimensions.length > 0);
|
|
3015
3015
|
return e.length < 2 ? null : {
|
|
3016
3016
|
queries: e,
|
|
3017
3017
|
mergeStrategy: o,
|
|
3018
|
-
mergeKeys:
|
|
3018
|
+
mergeKeys: g,
|
|
3019
3019
|
queryLabels: e.map((e, t) => `Q${t + 1}`)
|
|
3020
3020
|
};
|
|
3021
3021
|
}, [
|
|
3022
3022
|
y,
|
|
3023
3023
|
i.length,
|
|
3024
3024
|
o,
|
|
3025
|
-
|
|
3026
|
-
]), x =
|
|
3027
|
-
|
|
3025
|
+
g
|
|
3026
|
+
]), x = W(() => h ? In(y, o, g || []) : null, [
|
|
3027
|
+
h,
|
|
3028
3028
|
y,
|
|
3029
3029
|
o,
|
|
3030
|
-
|
|
3031
|
-
]), S =
|
|
3032
|
-
if (!
|
|
3030
|
+
g
|
|
3031
|
+
]), S = W(() => _.measures && _.measures.length > 0 || _.dimensions && _.dimensions.length > 0 || _.timeDimensions && _.timeDimensions.length > 0, [_]), C = W(() => {
|
|
3032
|
+
if (!h) return m.metrics;
|
|
3033
3033
|
let e = /* @__PURE__ */ new Set(), t = [];
|
|
3034
3034
|
for (let n = 0; n < i.length; n++) {
|
|
3035
3035
|
let r = i[n];
|
|
@@ -3043,79 +3043,79 @@ function Vn(e = {}) {
|
|
|
3043
3043
|
}
|
|
3044
3044
|
return t;
|
|
3045
3045
|
}, [
|
|
3046
|
-
|
|
3046
|
+
h,
|
|
3047
3047
|
i,
|
|
3048
|
-
|
|
3049
|
-
]), w =
|
|
3050
|
-
if (!
|
|
3048
|
+
m.metrics
|
|
3049
|
+
]), w = W(() => {
|
|
3050
|
+
if (!h) return m.breakdowns;
|
|
3051
3051
|
let e = /* @__PURE__ */ new Set(), t = [];
|
|
3052
3052
|
for (let n of i) for (let r of n.breakdowns) e.has(r.field) || (e.add(r.field), t.push(r));
|
|
3053
3053
|
return t;
|
|
3054
3054
|
}, [
|
|
3055
|
-
|
|
3055
|
+
h,
|
|
3056
3056
|
i,
|
|
3057
|
-
|
|
3058
|
-
]), T =
|
|
3057
|
+
m.breakdowns
|
|
3058
|
+
]), T = W(() => o === "merge" && a > 0 ? i[0]?.breakdowns || [] : m.breakdowns, [
|
|
3059
3059
|
o,
|
|
3060
3060
|
a,
|
|
3061
3061
|
i,
|
|
3062
|
-
|
|
3063
|
-
]), E = $((e) => e.analysisType), D = $((e) => e.funnelBindingKey), O = $((e) => e.funnelCube), k = $((e) => e.funnelSteps),
|
|
3062
|
+
m.breakdowns
|
|
3063
|
+
]), E = $((e) => e.analysisType), D = $((e) => e.funnelBindingKey), O = $((e) => e.funnelCube), k = $((e) => e.funnelSteps), A = $((e) => e.activeFunnelStepIndex), j = $((e) => e.funnelTimeDimension), M = W(() => E !== "funnel" || !D?.dimension || !j || !k || k.length < 2 ? !1 : k.every((e) => e.filters.length > 0), [
|
|
3064
3064
|
E,
|
|
3065
3065
|
D,
|
|
3066
|
-
|
|
3066
|
+
j,
|
|
3067
3067
|
k
|
|
3068
|
-
]),
|
|
3068
|
+
]), ee = $((e) => e.charts.funnel?.chartType) || "funnel", N = $((e) => e.charts.funnel?.chartConfig), te = W(() => N || {}, [N]), P = $((e) => e.charts.funnel?.displayConfig), ne = W(() => P || {
|
|
3069
3069
|
showLegend: !0,
|
|
3070
3070
|
showGrid: !0,
|
|
3071
3071
|
showTooltip: !0
|
|
3072
|
-
}, [
|
|
3072
|
+
}, [P]), re = $((e) => e.flowCube), ie = $((e) => e.flowBindingKey), ae = $((e) => e.flowTimeDimension), F = $((e) => e.eventDimension), I = $((e) => e.startingStep), L = $((e) => e.stepsBefore), R = $((e) => e.stepsAfter), oe = $((e) => e.joinStrategy), se = $((e) => e.charts.flow?.displayConfig), ce = W(() => se || {
|
|
3073
3073
|
showLegend: !0,
|
|
3074
3074
|
showGrid: !0,
|
|
3075
3075
|
showTooltip: !0
|
|
3076
|
-
}, [
|
|
3076
|
+
}, [se]), le = $((e) => e.charts.flow?.chartType) || "sankey", z = $((e) => e.buildFunnelQueryFromSteps), ue = W(() => E === "funnel" ? z() : null, [
|
|
3077
3077
|
E,
|
|
3078
|
-
|
|
3078
|
+
z,
|
|
3079
3079
|
k
|
|
3080
|
-
]),
|
|
3080
|
+
]), B = $((e) => e.buildFlowQuery), de = W(() => E === "flow" ? B() : null, [
|
|
3081
3081
|
E,
|
|
3082
|
-
|
|
3082
|
+
B,
|
|
3083
|
+
re,
|
|
3084
|
+
ie,
|
|
3083
3085
|
ae,
|
|
3084
|
-
oe,
|
|
3085
|
-
N,
|
|
3086
|
-
P,
|
|
3087
|
-
se,
|
|
3088
3086
|
F,
|
|
3089
3087
|
I,
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3088
|
+
L,
|
|
3089
|
+
R,
|
|
3090
|
+
le,
|
|
3091
|
+
oe
|
|
3092
|
+
]), fe = $((e) => e.retentionCube), pe = $((e) => e.retentionBindingKey), me = $((e) => e.retentionTimeDimension), V = $((e) => e.retentionDateRange), he = $((e) => e.retentionCohortFilters), ge = $((e) => e.retentionActivityFilters), _e = $((e) => e.retentionBreakdowns), U = $((e) => e.retentionViewGranularity), G = $((e) => e.retentionPeriods), ve = $((e) => e.retentionType), q = $((e) => e.buildRetentionQuery), J = $((e) => e.getRetentionValidation), ye = $((e) => e.charts.retention?.displayConfig), be = W(() => E === "retention" ? q() : null, [
|
|
3093
3093
|
E,
|
|
3094
3094
|
q,
|
|
3095
|
+
fe,
|
|
3095
3096
|
pe,
|
|
3096
3097
|
me,
|
|
3097
|
-
|
|
3098
|
-
|
|
3098
|
+
V,
|
|
3099
|
+
_e,
|
|
3100
|
+
U,
|
|
3101
|
+
G,
|
|
3099
3102
|
ve,
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
ge,
|
|
3104
|
-
_e
|
|
3105
|
-
]), xe = U(() => E === "retention" ? J() : null, [
|
|
3103
|
+
he,
|
|
3104
|
+
ge
|
|
3105
|
+
]), xe = W(() => E === "retention" ? J() : null, [
|
|
3106
3106
|
E,
|
|
3107
3107
|
J,
|
|
3108
|
+
fe,
|
|
3108
3109
|
pe,
|
|
3109
3110
|
me,
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
]), Se = U(() => E === "retention" ? be !== null : E === "flow" ? fe !== null : E === "funnel" ? de !== null : S ?? !1, [
|
|
3111
|
+
V
|
|
3112
|
+
]), Se = W(() => E === "retention" ? be !== null : E === "flow" ? de !== null : E === "funnel" ? ue !== null : S ?? !1, [
|
|
3113
3113
|
E,
|
|
3114
3114
|
be,
|
|
3115
|
-
fe,
|
|
3116
3115
|
de,
|
|
3116
|
+
ue,
|
|
3117
3117
|
S
|
|
3118
|
-
]), { chartType: Ce, chartConfig: we, displayConfig: Y } = $(n(Dn)), Ee = $((e) => e.userManuallySelectedChart), De = $((e) => e.localPaletteName), Oe = $((e) => e.setChartTypeManual), ke = $((e) => e.setChartConfig), Ae = $((e) => e.setDisplayConfig), je = $((e) => e.setFunnelChartType), Me = $((e) => e.setFunnelChartConfig), Ne = $((e) => e.setFunnelDisplayConfig), Pe = $((e) => e.setLocalPaletteName), Fe = $((e) => e.setUserManuallySelectedChart), Ie =
|
|
3118
|
+
]), { chartType: Ce, chartConfig: we, displayConfig: Y } = $(n(Dn)), Ee = $((e) => e.userManuallySelectedChart), De = $((e) => e.localPaletteName), Oe = $((e) => e.setChartTypeManual), ke = $((e) => e.setChartConfig), Ae = $((e) => e.setDisplayConfig), je = $((e) => e.setFunnelChartType), Me = $((e) => e.setFunnelChartConfig), Ne = $((e) => e.setFunnelDisplayConfig), Pe = $((e) => e.setLocalPaletteName), Fe = $((e) => e.setUserManuallySelectedChart), Ie = H((e) => {
|
|
3119
3119
|
if (E === "funnel") je(e);
|
|
3120
3120
|
else {
|
|
3121
3121
|
Oe(e);
|
|
@@ -3129,24 +3129,24 @@ function Vn(e = {}) {
|
|
|
3129
3129
|
je,
|
|
3130
3130
|
Oe,
|
|
3131
3131
|
ke
|
|
3132
|
-
]), Le =
|
|
3132
|
+
]), Le = H((e) => {
|
|
3133
3133
|
E === "funnel" ? Me(e) : ke(e);
|
|
3134
3134
|
}, [
|
|
3135
3135
|
E,
|
|
3136
3136
|
Me,
|
|
3137
3137
|
ke
|
|
3138
|
-
]), Re =
|
|
3138
|
+
]), Re = H((e) => {
|
|
3139
3139
|
E === "funnel" ? Ne(e) : Ae(e);
|
|
3140
3140
|
}, [
|
|
3141
3141
|
E,
|
|
3142
3142
|
Ne,
|
|
3143
3143
|
Ae
|
|
3144
|
-
]), ze =
|
|
3144
|
+
]), ze = W(() => Dt(C, w), [C, w]), Be = W(() => t ? Array.isArray(t) && typeof t[0] == "string" ? {
|
|
3145
3145
|
name: "custom",
|
|
3146
3146
|
label: "Custom",
|
|
3147
3147
|
colors: t,
|
|
3148
3148
|
gradient: t
|
|
3149
|
-
} : t :
|
|
3149
|
+
} : t : v(De), [t, De]), Ve = H((e) => {
|
|
3150
3150
|
r.setState((t) => ({ charts: {
|
|
3151
3151
|
...t.charts,
|
|
3152
3152
|
flow: {
|
|
@@ -3158,7 +3158,7 @@ function Vn(e = {}) {
|
|
|
3158
3158
|
displayConfig: e
|
|
3159
3159
|
}
|
|
3160
3160
|
} }));
|
|
3161
|
-
}, [r]), He =
|
|
3161
|
+
}, [r]), He = H((e) => {
|
|
3162
3162
|
r.setState((t) => ({ charts: {
|
|
3163
3163
|
...t.charts,
|
|
3164
3164
|
retention: {
|
|
@@ -3170,28 +3170,28 @@ function Vn(e = {}) {
|
|
|
3170
3170
|
displayConfig: e
|
|
3171
3171
|
}
|
|
3172
3172
|
} }));
|
|
3173
|
-
}, [r]), Ue = $((e) => e.activeTab), We = $((e) => e.activeView), Ge = $((e) => e.displayLimit), Ke = $((e) => e.showFieldModal), qe = $((e) => e.fieldModalMode), Je = $((e) => e.setActiveTab), Ye = $((e) => e.setActiveView), Xe = $((e) => e.setDisplayLimit), Ze = $((e) => e.closeFieldModal), [Qe, $e] =
|
|
3173
|
+
}, [r]), Ue = $((e) => e.activeTab), We = $((e) => e.activeView), Ge = $((e) => e.displayLimit), Ke = $((e) => e.showFieldModal), qe = $((e) => e.fieldModalMode), Je = $((e) => e.setActiveTab), Ye = $((e) => e.setActiveView), Xe = $((e) => e.setDisplayLimit), Ze = $((e) => e.closeFieldModal), [Qe, $e] = K(0), et = $((e) => e.openMetricsModal), tt = $((e) => e.addMetric), nt = $((e) => e.removeMetric), rt = $((e) => e.toggleMetric), it = $((e) => e.reorderMetrics), at = $((e) => e.openBreakdownsModal), ot = $((e) => e.addBreakdown), st = $((e) => e.removeBreakdown), ct = $((e) => e.toggleBreakdown), lt = $((e) => e.setBreakdownGranularity), ut = $((e) => e.toggleBreakdownComparison), dt = $((e) => e.reorderBreakdowns), ft = $((e) => e.setFilters), pt = $((e) => e.dropFieldToFilter), mt = $((e) => e.setOrder), ht = $((e) => e.setLimit), gt = $((e) => e.clearQuery), _t = $((e) => e.clearCurrentMode), vt = $((e) => e.setFunnelBindingKey), yt = $((e) => e.setAnalysisType), bt = $((e) => e.setFunnelCube), xt = $((e) => e.addFunnelStep), St = $((e) => e.removeFunnelStep), Ct = $((e) => e.updateFunnelStep), wt = $((e) => e.setActiveFunnelStepIndex), Tt = $((e) => e.reorderFunnelSteps), Et = $((e) => e.setFunnelTimeDimension), Ot = $((e) => e.setFlowCube), At = $((e) => e.setFlowBindingKey), jt = $((e) => e.setFlowTimeDimension), Mt = $((e) => e.setEventDimension), Nt = $((e) => e.setStartingStepName), Pt = $((e) => e.setStartingStepFilters), Ft = $((e) => e.setStepsBefore), It = $((e) => e.setStepsAfter), Lt = $((e) => e.setJoinStrategy), Rt = $((e) => e.setRetentionCube), zt = $((e) => e.setRetentionBindingKey), Bt = $((e) => e.setRetentionTimeDimension), Vt = $((e) => e.setRetentionDateRange), Ht = $((e) => e.setRetentionCohortFilters), Ut = $((e) => e.setRetentionActivityFilters), Wt = $((e) => e.setRetentionBreakdowns), X = $((e) => e.addRetentionBreakdown), Z = $((e) => e.removeRetentionBreakdown), Gt = $((e) => e.setRetentionViewGranularity), Kt = $((e) => e.setRetentionPeriods), Q = $((e) => e.setRetentionType), qt = $((e) => e.getValidation), Jt = W(() => qt(), [
|
|
3174
3174
|
qt,
|
|
3175
3175
|
i,
|
|
3176
3176
|
E,
|
|
3177
3177
|
k,
|
|
3178
3178
|
D,
|
|
3179
|
-
|
|
3179
|
+
j,
|
|
3180
|
+
re,
|
|
3181
|
+
ie,
|
|
3180
3182
|
ae,
|
|
3181
|
-
oe,
|
|
3182
|
-
N,
|
|
3183
|
-
P,
|
|
3184
|
-
se,
|
|
3185
3183
|
F,
|
|
3186
3184
|
I,
|
|
3187
|
-
L
|
|
3188
|
-
|
|
3185
|
+
L,
|
|
3186
|
+
R,
|
|
3187
|
+
oe
|
|
3188
|
+
]), Yt = H((e, t) => {
|
|
3189
3189
|
E === "retention" && t === "dimension" ? X({ field: e.name }) : ct(e.name, t === "timeDimension");
|
|
3190
3190
|
}, [
|
|
3191
3191
|
E,
|
|
3192
3192
|
X,
|
|
3193
3193
|
ct
|
|
3194
|
-
]), Xt =
|
|
3194
|
+
]), Xt = H((e, t, n, r) => {
|
|
3195
3195
|
qe === "metrics" && t === "measure" ? rt(e.name) : qe === "breakdown" && Yt(e, t), r || Ze();
|
|
3196
3196
|
}, [
|
|
3197
3197
|
qe,
|
|
@@ -3201,13 +3201,13 @@ function Vn(e = {}) {
|
|
|
3201
3201
|
]);
|
|
3202
3202
|
return {
|
|
3203
3203
|
storeApi: r,
|
|
3204
|
-
queryState:
|
|
3204
|
+
queryState: m,
|
|
3205
3205
|
queryStates: i,
|
|
3206
3206
|
activeQueryIndex: a,
|
|
3207
3207
|
mergeStrategy: o,
|
|
3208
|
-
isMultiQueryMode:
|
|
3209
|
-
mergeKeys:
|
|
3210
|
-
currentQuery:
|
|
3208
|
+
isMultiQueryMode: h,
|
|
3209
|
+
mergeKeys: g,
|
|
3210
|
+
currentQuery: _,
|
|
3211
3211
|
allQueries: y,
|
|
3212
3212
|
multiQueryConfig: b,
|
|
3213
3213
|
multiQueryValidation: x,
|
|
@@ -3218,35 +3218,35 @@ function Vn(e = {}) {
|
|
|
3218
3218
|
effectiveBreakdowns: T,
|
|
3219
3219
|
analysisType: E,
|
|
3220
3220
|
funnelBindingKey: D,
|
|
3221
|
-
isFunnelModeEnabled:
|
|
3221
|
+
isFunnelModeEnabled: M,
|
|
3222
3222
|
funnelCube: O,
|
|
3223
3223
|
funnelSteps: k,
|
|
3224
|
-
activeFunnelStepIndex:
|
|
3225
|
-
funnelTimeDimension:
|
|
3226
|
-
funnelChartType:
|
|
3227
|
-
funnelChartConfig:
|
|
3228
|
-
funnelDisplayConfig:
|
|
3229
|
-
serverFunnelQuery:
|
|
3230
|
-
flowCube:
|
|
3231
|
-
flowBindingKey:
|
|
3232
|
-
flowTimeDimension:
|
|
3233
|
-
eventDimension:
|
|
3234
|
-
startingStep:
|
|
3235
|
-
stepsBefore:
|
|
3236
|
-
stepsAfter:
|
|
3237
|
-
joinStrategy:
|
|
3238
|
-
flowDisplayConfig:
|
|
3239
|
-
serverFlowQuery:
|
|
3240
|
-
retentionCube:
|
|
3241
|
-
retentionBindingKey:
|
|
3242
|
-
retentionTimeDimension:
|
|
3243
|
-
retentionDateRange:
|
|
3244
|
-
retentionCohortFilters:
|
|
3245
|
-
retentionActivityFilters:
|
|
3246
|
-
retentionBreakdowns:
|
|
3247
|
-
retentionViewGranularity:
|
|
3248
|
-
retentionPeriods:
|
|
3249
|
-
retentionType:
|
|
3224
|
+
activeFunnelStepIndex: A,
|
|
3225
|
+
funnelTimeDimension: j,
|
|
3226
|
+
funnelChartType: ee,
|
|
3227
|
+
funnelChartConfig: te,
|
|
3228
|
+
funnelDisplayConfig: ne,
|
|
3229
|
+
serverFunnelQuery: ue,
|
|
3230
|
+
flowCube: re,
|
|
3231
|
+
flowBindingKey: ie,
|
|
3232
|
+
flowTimeDimension: ae,
|
|
3233
|
+
eventDimension: F,
|
|
3234
|
+
startingStep: I,
|
|
3235
|
+
stepsBefore: L,
|
|
3236
|
+
stepsAfter: R,
|
|
3237
|
+
joinStrategy: oe,
|
|
3238
|
+
flowDisplayConfig: ce,
|
|
3239
|
+
serverFlowQuery: de,
|
|
3240
|
+
retentionCube: fe,
|
|
3241
|
+
retentionBindingKey: pe,
|
|
3242
|
+
retentionTimeDimension: me,
|
|
3243
|
+
retentionDateRange: V,
|
|
3244
|
+
retentionCohortFilters: he,
|
|
3245
|
+
retentionActivityFilters: ge,
|
|
3246
|
+
retentionBreakdowns: _e,
|
|
3247
|
+
retentionViewGranularity: U,
|
|
3248
|
+
retentionPeriods: G,
|
|
3249
|
+
retentionType: ve,
|
|
3250
3250
|
retentionDisplayConfig: ye,
|
|
3251
3251
|
serverRetentionQuery: be,
|
|
3252
3252
|
retentionValidation: xe,
|
|
@@ -3264,7 +3264,7 @@ function Vn(e = {}) {
|
|
|
3264
3264
|
fieldModalMode: qe,
|
|
3265
3265
|
activeTableIndex: Qe,
|
|
3266
3266
|
adapterValidation: Jt,
|
|
3267
|
-
getQueryConfig:
|
|
3267
|
+
getQueryConfig: H(() => {
|
|
3268
3268
|
let e = r.getState();
|
|
3269
3269
|
return e.analysisType === "funnel" ? e.buildFunnelQueryFromSteps() || e.buildCurrentQuery() : e.queryStates.length > 1 ? {
|
|
3270
3270
|
queries: e.buildAllQueries(),
|
|
@@ -3275,7 +3275,7 @@ function Vn(e = {}) {
|
|
|
3275
3275
|
stepTimeToConvert: e.stepTimeToConvert
|
|
3276
3276
|
} : e.buildCurrentQuery();
|
|
3277
3277
|
}, [r]),
|
|
3278
|
-
getChartConfig:
|
|
3278
|
+
getChartConfig: H(() => {
|
|
3279
3279
|
let e = r.getState(), t = e.charts[e.analysisType];
|
|
3280
3280
|
return t ? {
|
|
3281
3281
|
chartType: t.chartType,
|
|
@@ -3292,7 +3292,7 @@ function Vn(e = {}) {
|
|
|
3292
3292
|
we,
|
|
3293
3293
|
Y
|
|
3294
3294
|
]),
|
|
3295
|
-
getAnalysisType:
|
|
3295
|
+
getAnalysisType: H(() => r.getState().analysisType, [r]),
|
|
3296
3296
|
actions: {
|
|
3297
3297
|
setActiveQueryIndex: s,
|
|
3298
3298
|
setMergeStrategy: c,
|
|
@@ -3410,12 +3410,12 @@ function qn(e) {
|
|
|
3410
3410
|
//#endregion
|
|
3411
3411
|
//#region src/client/hooks/useAnalysisQuery.ts
|
|
3412
3412
|
function Jn(e) {
|
|
3413
|
-
let { currentQuery: t, allQueries: n, multiQueryConfig: r, isMultiQueryMode: i, isValidQuery: a, initialData: o, mergeStrategy: s, funnelBindingKey: c, isFunnelModeEnabled: l, analysisType: u, serverFunnelQuery: d, serverFlowQuery: f, serverRetentionQuery: p, retentionValidation: m } = e, { getFieldLabel: h } =
|
|
3413
|
+
let { currentQuery: t, allQueries: n, multiQueryConfig: r, isMultiQueryMode: i, isValidQuery: a, initialData: o, mergeStrategy: s, funnelBindingKey: c, isFunnelModeEnabled: l, analysisType: u, serverFunnelQuery: d, serverFlowQuery: f, serverRetentionQuery: p, retentionValidation: m } = e, { getFieldLabel: h } = ue(), g = u === "funnel" || l, _ = u === "flow", v = u === "retention", y = u === "query" && i, b = u === "query" && !i, x = u === "funnel" && !!d, S = Hn({
|
|
3414
3414
|
isRetentionMode: v,
|
|
3415
3415
|
isFlowMode: _,
|
|
3416
3416
|
isFunnelMode: g,
|
|
3417
3417
|
isMultiMode: y
|
|
3418
|
-
}), C =
|
|
3418
|
+
}), C = W(() => x || !g || !c || n.length < 2 ? null : fe(n, c), [
|
|
3419
3419
|
x,
|
|
3420
3420
|
g,
|
|
3421
3421
|
c,
|
|
@@ -3432,46 +3432,46 @@ function Jn(e) {
|
|
|
3432
3432
|
hasServerFunnelQuery: !!d,
|
|
3433
3433
|
hasServerFlowQuery: !!f,
|
|
3434
3434
|
hasServerRetentionQuery: !!p
|
|
3435
|
-
}), T =
|
|
3435
|
+
}), T = F(t, {
|
|
3436
3436
|
skip: w.single,
|
|
3437
3437
|
debounceMs: 300
|
|
3438
|
-
}), E =
|
|
3438
|
+
}), E = R(r, {
|
|
3439
3439
|
skip: w.multi,
|
|
3440
3440
|
debounceMs: 300
|
|
3441
|
-
}), D =
|
|
3441
|
+
}), D = ce(C, {
|
|
3442
3442
|
skip: w.funnel,
|
|
3443
3443
|
debounceMs: 300,
|
|
3444
3444
|
prebuiltServerQuery: x ? d : void 0
|
|
3445
|
-
}), O =
|
|
3445
|
+
}), O = ae(f ?? null, {
|
|
3446
3446
|
skip: w.flow,
|
|
3447
3447
|
debounceMs: 300
|
|
3448
|
-
}), k =
|
|
3448
|
+
}), k = se(p ?? null, {
|
|
3449
3449
|
skip: w.retention,
|
|
3450
3450
|
debounceMs: 300,
|
|
3451
3451
|
getFieldLabel: h
|
|
3452
|
-
}),
|
|
3452
|
+
}), A = de({
|
|
3453
3453
|
queries: i ? n : [t],
|
|
3454
3454
|
isMultiQueryMode: i,
|
|
3455
3455
|
skip: w.dryRun
|
|
3456
|
-
}),
|
|
3456
|
+
}), j = B(D.serverQuery, { skip: !g || !D.serverQuery }), M = B(O.serverQuery, { skip: !_ || !O.serverQuery }), ee = B(p, { skip: !v || !p }), N = Un(S, {
|
|
3457
3457
|
retention: k.isLoading || k.isDebouncing,
|
|
3458
3458
|
flow: O.isLoading || O.isDebouncing,
|
|
3459
3459
|
funnel: D.isExecuting || D.isDebouncing,
|
|
3460
3460
|
multi: E.isLoading,
|
|
3461
3461
|
single: T.isLoading
|
|
3462
|
-
}),
|
|
3462
|
+
}), te = Un(S, {
|
|
3463
3463
|
retention: k.isFetching,
|
|
3464
3464
|
flow: O.isFetching,
|
|
3465
3465
|
funnel: D.isExecuting,
|
|
3466
3466
|
multi: E.isFetching,
|
|
3467
3467
|
single: T.isFetching
|
|
3468
|
-
}),
|
|
3468
|
+
}), P = Un(S, {
|
|
3469
3469
|
retention: k.error,
|
|
3470
3470
|
flow: O.error,
|
|
3471
3471
|
funnel: D.error,
|
|
3472
3472
|
multi: E.error,
|
|
3473
3473
|
single: T.error
|
|
3474
|
-
}),
|
|
3474
|
+
}), ne = !!(T.debouncedQuery || E.debouncedConfig || !D.isDebouncing || !O.isDebouncing || !k.isDebouncing), re = H((e) => {
|
|
3475
3475
|
switch (S) {
|
|
3476
3476
|
case "retention":
|
|
3477
3477
|
k.execute(e);
|
|
@@ -3494,7 +3494,7 @@ function Jn(e) {
|
|
|
3494
3494
|
D,
|
|
3495
3495
|
E,
|
|
3496
3496
|
T
|
|
3497
|
-
]),
|
|
3497
|
+
]), ie = W(() => Kn({
|
|
3498
3498
|
hasResults: Un(S, {
|
|
3499
3499
|
retention: k.chartData,
|
|
3500
3500
|
flow: O.data,
|
|
@@ -3504,14 +3504,14 @@ function Jn(e) {
|
|
|
3504
3504
|
}),
|
|
3505
3505
|
initialData: o,
|
|
3506
3506
|
isValidQuery: a,
|
|
3507
|
-
isLoading:
|
|
3508
|
-
isFetching:
|
|
3509
|
-
error:
|
|
3507
|
+
isLoading: N,
|
|
3508
|
+
isFetching: te,
|
|
3509
|
+
error: P
|
|
3510
3510
|
}), [
|
|
3511
3511
|
a,
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3512
|
+
N,
|
|
3513
|
+
te,
|
|
3514
|
+
P,
|
|
3515
3515
|
T.rawData,
|
|
3516
3516
|
E.data,
|
|
3517
3517
|
D.chartData,
|
|
@@ -3519,7 +3519,7 @@ function Jn(e) {
|
|
|
3519
3519
|
k.chartData,
|
|
3520
3520
|
o,
|
|
3521
3521
|
S
|
|
3522
|
-
]),
|
|
3522
|
+
]), I = W(() => qn({
|
|
3523
3523
|
isRetentionMode: v,
|
|
3524
3524
|
isFlowMode: _,
|
|
3525
3525
|
isFunnelMode: g,
|
|
@@ -3541,25 +3541,25 @@ function Jn(e) {
|
|
|
3541
3541
|
g,
|
|
3542
3542
|
_,
|
|
3543
3543
|
v
|
|
3544
|
-
]),
|
|
3544
|
+
]), L = W(() => g && D.stepResults ? D.stepResults.map((e) => e.data) : !y || !E.perQueryData ? null : E.perQueryData, [
|
|
3545
3545
|
y,
|
|
3546
3546
|
g,
|
|
3547
3547
|
E.perQueryData,
|
|
3548
3548
|
D.stepResults
|
|
3549
|
-
]), { funnelExecutedQueries:
|
|
3549
|
+
]), { funnelExecutedQueries: oe, funnelServerQuery: le, funnelDebugData: z, flowServerQuery: pe, flowChartData: me, flowDebugData: V, retentionServerQuery: he, retentionChartData: ge, retentionDebugData: _e } = Wn({
|
|
3550
3550
|
isFunnelMode: g,
|
|
3551
3551
|
isFlowMode: _,
|
|
3552
3552
|
isRetentionMode: v,
|
|
3553
3553
|
funnelExecutedQueries: D.executedQueries,
|
|
3554
3554
|
funnelServerQuery: D.serverQuery,
|
|
3555
|
-
funnelDebugData:
|
|
3555
|
+
funnelDebugData: j.debugData,
|
|
3556
3556
|
flowServerQuery: O.serverQuery,
|
|
3557
3557
|
flowData: O.data,
|
|
3558
|
-
flowDebugData:
|
|
3558
|
+
flowDebugData: M.debugData,
|
|
3559
3559
|
retentionServerQuery: p ?? null,
|
|
3560
3560
|
retentionChartData: k.chartData,
|
|
3561
|
-
retentionDebugData:
|
|
3562
|
-
}),
|
|
3561
|
+
retentionDebugData: ee.debugData
|
|
3562
|
+
}), U = W(() => Un(S, {
|
|
3563
3563
|
retention: k.needsRefresh,
|
|
3564
3564
|
flow: O.needsRefresh,
|
|
3565
3565
|
funnel: D.needsRefresh,
|
|
@@ -3571,31 +3571,31 @@ function Jn(e) {
|
|
|
3571
3571
|
O.needsRefresh,
|
|
3572
3572
|
D.needsRefresh,
|
|
3573
3573
|
T.needsRefresh
|
|
3574
|
-
]),
|
|
3574
|
+
]), G = W(() => {
|
|
3575
3575
|
if (b && T.warnings) return T.warnings;
|
|
3576
3576
|
}, [b, T.warnings]);
|
|
3577
3577
|
return {
|
|
3578
|
-
executionStatus:
|
|
3579
|
-
executionResults:
|
|
3580
|
-
perQueryResults:
|
|
3581
|
-
isLoading:
|
|
3582
|
-
isFetching:
|
|
3583
|
-
error:
|
|
3584
|
-
debugDataPerQuery:
|
|
3585
|
-
hasDebounced:
|
|
3586
|
-
refetch:
|
|
3587
|
-
funnelExecutedQueries:
|
|
3578
|
+
executionStatus: ie,
|
|
3579
|
+
executionResults: I,
|
|
3580
|
+
perQueryResults: L,
|
|
3581
|
+
isLoading: N,
|
|
3582
|
+
isFetching: te,
|
|
3583
|
+
error: P,
|
|
3584
|
+
debugDataPerQuery: A.debugDataPerQuery,
|
|
3585
|
+
hasDebounced: ne,
|
|
3586
|
+
refetch: re,
|
|
3587
|
+
funnelExecutedQueries: oe,
|
|
3588
3588
|
funnelServerQuery: le,
|
|
3589
|
-
funnelDebugData:
|
|
3590
|
-
flowServerQuery:
|
|
3591
|
-
flowChartData:
|
|
3592
|
-
flowDebugData:
|
|
3593
|
-
retentionServerQuery:
|
|
3594
|
-
retentionChartData:
|
|
3595
|
-
retentionDebugData:
|
|
3589
|
+
funnelDebugData: z,
|
|
3590
|
+
flowServerQuery: pe,
|
|
3591
|
+
flowChartData: me,
|
|
3592
|
+
flowDebugData: V,
|
|
3593
|
+
retentionServerQuery: he,
|
|
3594
|
+
retentionChartData: ge,
|
|
3595
|
+
retentionDebugData: _e,
|
|
3596
3596
|
retentionValidation: m ?? null,
|
|
3597
|
-
needsRefresh:
|
|
3598
|
-
warnings:
|
|
3597
|
+
needsRefresh: U,
|
|
3598
|
+
warnings: G
|
|
3599
3599
|
};
|
|
3600
3600
|
}
|
|
3601
3601
|
//#endregion
|
|
@@ -3609,7 +3609,7 @@ function $n(e) {
|
|
|
3609
3609
|
let t = (0, Yn.decompressFromEncodedURIComponent)(e);
|
|
3610
3610
|
if (!t) return null;
|
|
3611
3611
|
let n = JSON.parse(t);
|
|
3612
|
-
return
|
|
3612
|
+
return y(n) ? n : (console.warn("[shareUtils] Invalid AnalysisConfig in share URL"), null);
|
|
3613
3613
|
} catch {
|
|
3614
3614
|
return null;
|
|
3615
3615
|
}
|
|
@@ -3702,19 +3702,19 @@ function cr(e) {
|
|
|
3702
3702
|
return typeof e == "object" && !!e && "funnel" in e && typeof e.funnel == "object";
|
|
3703
3703
|
}
|
|
3704
3704
|
function lr(e) {
|
|
3705
|
-
let { state: t, query: n, aiEndpoint: r = "/api/ai", onQueryChange: i, onChartConfigChange: a } = e, { storeApi: o, actions: s } = t, { apiOptions: c } = u(), l =
|
|
3706
|
-
|
|
3705
|
+
let { state: t, query: n, aiEndpoint: r = "/api/ai", onQueryChange: i, onChartConfigChange: a } = e, { storeApi: o, actions: s } = t, { apiOptions: c } = u(), l = G(!1);
|
|
3706
|
+
U(() => {
|
|
3707
3707
|
if (l.current) return;
|
|
3708
3708
|
l.current = !0;
|
|
3709
3709
|
let e = ar();
|
|
3710
3710
|
e && (o.getState().load(e), ir());
|
|
3711
|
-
}, [o]),
|
|
3711
|
+
}, [o]), U(() => {
|
|
3712
3712
|
i && t.isValidQuery && i(t.currentQuery);
|
|
3713
3713
|
}, [
|
|
3714
3714
|
t.currentQuery,
|
|
3715
3715
|
t.isValidQuery,
|
|
3716
3716
|
i
|
|
3717
|
-
]),
|
|
3717
|
+
]), U(() => {
|
|
3718
3718
|
a && a({
|
|
3719
3719
|
chartType: t.chartType,
|
|
3720
3720
|
chartConfig: t.chartConfig,
|
|
@@ -3726,46 +3726,46 @@ function lr(e) {
|
|
|
3726
3726
|
t.displayConfig,
|
|
3727
3727
|
a
|
|
3728
3728
|
]);
|
|
3729
|
-
let { combinedMetrics:
|
|
3730
|
-
|
|
3731
|
-
if (!
|
|
3729
|
+
let { combinedMetrics: d, combinedBreakdowns: f, chartType: p, chartConfig: m, userManuallySelectedChart: h } = t, { hasDebounced: g } = n, { setChartType: _, setChartConfig: v } = s, y = G("");
|
|
3730
|
+
U(() => {
|
|
3731
|
+
if (!g || d.length === 0 && f.length === 0) return;
|
|
3732
3732
|
let e = JSON.stringify({
|
|
3733
|
-
metrics:
|
|
3734
|
-
breakdowns:
|
|
3733
|
+
metrics: d.map((e) => e.field),
|
|
3734
|
+
breakdowns: f.map((e) => ({
|
|
3735
3735
|
field: e.field,
|
|
3736
3736
|
isTime: e.isTimeDimension
|
|
3737
3737
|
}))
|
|
3738
3738
|
});
|
|
3739
|
-
if (e ===
|
|
3740
|
-
|
|
3741
|
-
let t = jt(f,
|
|
3739
|
+
if (e === y.current) return;
|
|
3740
|
+
y.current = e;
|
|
3741
|
+
let t = jt(d, f, p, h);
|
|
3742
3742
|
if (t) {
|
|
3743
|
-
let { chartConfig: e } = kt(
|
|
3744
|
-
|
|
3745
|
-
} else if (
|
|
3746
|
-
if (
|
|
3747
|
-
let e = [...
|
|
3748
|
-
n.length > 0 &&
|
|
3749
|
-
...
|
|
3743
|
+
let { chartConfig: e } = kt(d, f, t);
|
|
3744
|
+
_(t), v(e), s.setUserManuallySelectedChart(!1);
|
|
3745
|
+
} else if (d.length > 0 || f.length > 0) {
|
|
3746
|
+
if (p === "table") {
|
|
3747
|
+
let e = [...f.map((e) => e.field), ...d.map((e) => e.field)], t = Array.isArray(m.xAxis) ? m.xAxis : [], n = e.filter((e) => !t.includes(e));
|
|
3748
|
+
n.length > 0 && v({
|
|
3749
|
+
...m,
|
|
3750
3750
|
xAxis: [...t, ...n]
|
|
3751
3751
|
});
|
|
3752
|
-
} else if (!
|
|
3753
|
-
let { chartConfig: e } = kt(
|
|
3754
|
-
|
|
3752
|
+
} else if (!m.xAxis?.length && !m.yAxis?.length && !m.series?.length) {
|
|
3753
|
+
let { chartConfig: e } = kt(d, f, p);
|
|
3754
|
+
v(e);
|
|
3755
3755
|
}
|
|
3756
3756
|
}
|
|
3757
3757
|
}, [
|
|
3758
|
-
|
|
3758
|
+
g,
|
|
3759
|
+
d,
|
|
3759
3760
|
f,
|
|
3760
|
-
|
|
3761
|
+
p,
|
|
3761
3762
|
h,
|
|
3763
|
+
m,
|
|
3762
3764
|
_,
|
|
3763
|
-
|
|
3764
|
-
y,
|
|
3765
|
-
b,
|
|
3765
|
+
v,
|
|
3766
3766
|
s
|
|
3767
3767
|
]);
|
|
3768
|
-
let [
|
|
3768
|
+
let [b, x] = K({
|
|
3769
3769
|
isOpen: !1,
|
|
3770
3770
|
userPrompt: "",
|
|
3771
3771
|
isGenerating: !1,
|
|
@@ -3773,7 +3773,7 @@ function lr(e) {
|
|
|
3773
3773
|
hasGeneratedQuery: !1,
|
|
3774
3774
|
previousState: null,
|
|
3775
3775
|
previousConfig: null
|
|
3776
|
-
}),
|
|
3776
|
+
}), S = H((e) => {
|
|
3777
3777
|
o.getState().updateQueryState(t.activeQueryIndex, (t) => {
|
|
3778
3778
|
let n = e(t);
|
|
3779
3779
|
return {
|
|
@@ -3785,7 +3785,7 @@ function lr(e) {
|
|
|
3785
3785
|
limit: n.limit
|
|
3786
3786
|
};
|
|
3787
3787
|
});
|
|
3788
|
-
}, [o, t.activeQueryIndex]),
|
|
3788
|
+
}, [o, t.activeQueryIndex]), C = H((e) => {
|
|
3789
3789
|
let t = {
|
|
3790
3790
|
version: 1,
|
|
3791
3791
|
analysisType: "funnel",
|
|
@@ -3798,9 +3798,9 @@ function lr(e) {
|
|
|
3798
3798
|
query: e
|
|
3799
3799
|
};
|
|
3800
3800
|
o.getState().load(t);
|
|
3801
|
-
}, [o]),
|
|
3801
|
+
}, [o]), w = H(() => {
|
|
3802
3802
|
let e = o.getState().save();
|
|
3803
|
-
|
|
3803
|
+
x({
|
|
3804
3804
|
isOpen: !0,
|
|
3805
3805
|
userPrompt: "",
|
|
3806
3806
|
isGenerating: !1,
|
|
@@ -3826,30 +3826,30 @@ function lr(e) {
|
|
|
3826
3826
|
t.chartConfig,
|
|
3827
3827
|
t.displayConfig,
|
|
3828
3828
|
t.analysisType
|
|
3829
|
-
]),
|
|
3830
|
-
|
|
3829
|
+
]), T = H(() => {
|
|
3830
|
+
x((e) => ({
|
|
3831
3831
|
...e,
|
|
3832
3832
|
isOpen: !1,
|
|
3833
3833
|
userPrompt: "",
|
|
3834
3834
|
error: null,
|
|
3835
3835
|
hasGeneratedQuery: !1
|
|
3836
3836
|
}));
|
|
3837
|
-
}, []),
|
|
3838
|
-
|
|
3837
|
+
}, []), E = H((e) => {
|
|
3838
|
+
x((t) => ({
|
|
3839
3839
|
...t,
|
|
3840
3840
|
userPrompt: e
|
|
3841
3841
|
}));
|
|
3842
|
-
}, []),
|
|
3843
|
-
if (
|
|
3844
|
-
|
|
3842
|
+
}, []), D = H(async () => {
|
|
3843
|
+
if (b.userPrompt.trim()) {
|
|
3844
|
+
x((e) => ({
|
|
3845
3845
|
...e,
|
|
3846
3846
|
isGenerating: !0,
|
|
3847
3847
|
error: null
|
|
3848
3848
|
}));
|
|
3849
3849
|
try {
|
|
3850
|
-
let e = sr(await or("",
|
|
3850
|
+
let e = sr(await or("", b.userPrompt, r, c?.headers)), n = JSON.parse(e), i = "query" in n && n.query ? n.query : n, a = "chartType" in n ? n.chartType : void 0, o = "chartConfig" in n ? n.chartConfig : void 0;
|
|
3851
3851
|
if (cr(i)) {
|
|
3852
|
-
s.setAnalysisType("funnel"),
|
|
3852
|
+
s.setAnalysisType("funnel"), C(i), s.setChartType("funnel"), o && s.setChartConfig(o), s.setActiveView("chart"), x((e) => ({
|
|
3853
3853
|
...e,
|
|
3854
3854
|
isGenerating: !1,
|
|
3855
3855
|
hasGeneratedQuery: !0
|
|
@@ -3857,19 +3857,19 @@ function lr(e) {
|
|
|
3857
3857
|
return;
|
|
3858
3858
|
}
|
|
3859
3859
|
let l = i;
|
|
3860
|
-
|
|
3860
|
+
S((e) => ({
|
|
3861
3861
|
...e,
|
|
3862
3862
|
metrics: (l.measures || []).map((e, t) => ({
|
|
3863
|
-
id:
|
|
3863
|
+
id: k(),
|
|
3864
3864
|
field: e,
|
|
3865
|
-
label:
|
|
3865
|
+
label: A(t)
|
|
3866
3866
|
})),
|
|
3867
3867
|
breakdowns: [...(l.dimensions || []).map((e) => ({
|
|
3868
|
-
id:
|
|
3868
|
+
id: k(),
|
|
3869
3869
|
field: e,
|
|
3870
3870
|
isTimeDimension: !1
|
|
3871
3871
|
})), ...(l.timeDimensions || []).map((e) => ({
|
|
3872
|
-
id:
|
|
3872
|
+
id: k(),
|
|
3873
3873
|
field: e.dimension,
|
|
3874
3874
|
granularity: e.granularity,
|
|
3875
3875
|
isTimeDimension: !0
|
|
@@ -3877,13 +3877,13 @@ function lr(e) {
|
|
|
3877
3877
|
filters: l.filters || [],
|
|
3878
3878
|
order: l.order || void 0,
|
|
3879
3879
|
limit: l.limit ?? void 0
|
|
3880
|
-
})), t.analysisType === "funnel" && s.setAnalysisType("query"), a && s.setChartType(a), o && s.setChartConfig(o), s.setActiveView("chart"),
|
|
3880
|
+
})), t.analysisType === "funnel" && s.setAnalysisType("query"), a && s.setChartType(a), o && s.setChartConfig(o), s.setActiveView("chart"), x((e) => ({
|
|
3881
3881
|
...e,
|
|
3882
3882
|
isGenerating: !1,
|
|
3883
3883
|
hasGeneratedQuery: !0
|
|
3884
3884
|
}));
|
|
3885
3885
|
} catch (e) {
|
|
3886
|
-
|
|
3886
|
+
x((t) => ({
|
|
3887
3887
|
...t,
|
|
3888
3888
|
isGenerating: !1,
|
|
3889
3889
|
error: e instanceof Error ? e.message : "Failed to generate query"
|
|
@@ -3891,15 +3891,15 @@ function lr(e) {
|
|
|
3891
3891
|
}
|
|
3892
3892
|
}
|
|
3893
3893
|
}, [
|
|
3894
|
-
|
|
3894
|
+
b.userPrompt,
|
|
3895
3895
|
r,
|
|
3896
3896
|
c?.headers,
|
|
3897
|
-
|
|
3898
|
-
|
|
3897
|
+
S,
|
|
3898
|
+
C,
|
|
3899
3899
|
t.analysisType,
|
|
3900
3900
|
s
|
|
3901
|
-
]),
|
|
3902
|
-
|
|
3901
|
+
]), O = H(() => {
|
|
3902
|
+
x({
|
|
3903
3903
|
isOpen: !1,
|
|
3904
3904
|
userPrompt: "",
|
|
3905
3905
|
isGenerating: !1,
|
|
@@ -3908,13 +3908,13 @@ function lr(e) {
|
|
|
3908
3908
|
previousState: null,
|
|
3909
3909
|
previousConfig: null
|
|
3910
3910
|
});
|
|
3911
|
-
}, []),
|
|
3912
|
-
|
|
3911
|
+
}, []), j = H(() => {
|
|
3912
|
+
b.previousConfig ? o.getState().load(b.previousConfig) : b.previousState && (S((e) => ({
|
|
3913
3913
|
...e,
|
|
3914
|
-
metrics:
|
|
3915
|
-
breakdowns:
|
|
3916
|
-
filters:
|
|
3917
|
-
})), s.setChartType(
|
|
3914
|
+
metrics: b.previousState.metrics,
|
|
3915
|
+
breakdowns: b.previousState.breakdowns,
|
|
3916
|
+
filters: b.previousState.filters
|
|
3917
|
+
})), s.setChartType(b.previousState.chartType), s.setChartConfig(b.previousState.chartConfig), s.setDisplayConfig(b.previousState.displayConfig), b.previousState.analysisType && s.setAnalysisType(b.previousState.analysisType)), x({
|
|
3918
3918
|
isOpen: !1,
|
|
3919
3919
|
userPrompt: "",
|
|
3920
3920
|
isGenerating: !1,
|
|
@@ -3924,23 +3924,23 @@ function lr(e) {
|
|
|
3924
3924
|
previousConfig: null
|
|
3925
3925
|
});
|
|
3926
3926
|
}, [
|
|
3927
|
-
|
|
3928
|
-
|
|
3927
|
+
b.previousState,
|
|
3928
|
+
b.previousConfig,
|
|
3929
3929
|
o,
|
|
3930
|
-
|
|
3930
|
+
S,
|
|
3931
3931
|
s
|
|
3932
|
-
]), [
|
|
3932
|
+
]), [M, ee] = K("idle"), N = t.effectiveIsValidQuery;
|
|
3933
3933
|
return {
|
|
3934
|
-
aiState:
|
|
3935
|
-
openAI:
|
|
3936
|
-
closeAI:
|
|
3937
|
-
setAIPrompt:
|
|
3938
|
-
generateAI:
|
|
3939
|
-
acceptAI:
|
|
3940
|
-
cancelAI:
|
|
3941
|
-
shareButtonState:
|
|
3942
|
-
share:
|
|
3943
|
-
if (!
|
|
3934
|
+
aiState: b,
|
|
3935
|
+
openAI: w,
|
|
3936
|
+
closeAI: T,
|
|
3937
|
+
setAIPrompt: E,
|
|
3938
|
+
generateAI: D,
|
|
3939
|
+
acceptAI: O,
|
|
3940
|
+
cancelAI: j,
|
|
3941
|
+
shareButtonState: M,
|
|
3942
|
+
share: H(async () => {
|
|
3943
|
+
if (!N) return;
|
|
3944
3944
|
let { encoded: e, queryOnly: t } = tr(o.getState().save());
|
|
3945
3945
|
if (!e) return;
|
|
3946
3946
|
let n = `${window.location.origin}${window.location.pathname}#share=${e}`;
|
|
@@ -3950,11 +3950,11 @@ function lr(e) {
|
|
|
3950
3950
|
let e = document.createElement("textarea");
|
|
3951
3951
|
e.value = n, document.body.appendChild(e), e.select(), document.execCommand("copy"), document.body.removeChild(e);
|
|
3952
3952
|
}
|
|
3953
|
-
|
|
3954
|
-
|
|
3953
|
+
ee(t ? "copied-no-chart" : "copied"), setTimeout(() => {
|
|
3954
|
+
ee("idle");
|
|
3955
3955
|
}, 2e3);
|
|
3956
|
-
}, [
|
|
3957
|
-
canShare:
|
|
3956
|
+
}, [N, o]),
|
|
3957
|
+
canShare: N
|
|
3958
3958
|
};
|
|
3959
3959
|
}
|
|
3960
3960
|
//#endregion
|
|
@@ -4188,7 +4188,7 @@ function fr(e) {
|
|
|
4188
4188
|
}
|
|
4189
4189
|
function pr(e, t) {
|
|
4190
4190
|
if (typeof e.dimension == "string") return !0;
|
|
4191
|
-
let n =
|
|
4191
|
+
let n = pe(t);
|
|
4192
4192
|
return n ? e.dimension.some((e) => e.cube === n) : !1;
|
|
4193
4193
|
}
|
|
4194
4194
|
function mr(e, t) {
|
|
@@ -4196,7 +4196,7 @@ function mr(e, t) {
|
|
|
4196
4196
|
for (let r = 0; r < t.length; r++) {
|
|
4197
4197
|
let i = t[r];
|
|
4198
4198
|
if (!pr(e, i.query)) {
|
|
4199
|
-
let e =
|
|
4199
|
+
let e = pe(i.query) || "unknown";
|
|
4200
4200
|
n.push({
|
|
4201
4201
|
type: "cross_cube",
|
|
4202
4202
|
message: `Step ${r + 1} uses cube "${e}" but no binding key mapping exists for it`,
|
|
@@ -4266,4 +4266,4 @@ function yr(e) {
|
|
|
4266
4266
|
//#endregion
|
|
4267
4267
|
export { On as A, Tn as C, An as D, En as E, Ye as F, Sn as M, It as N, wn as O, it as P, xn as S, Cn as T, Bn as _, mr as a, In as b, ur as c, nr as d, er as f, Pn as g, Fn as h, dr as i, $ as j, kn as k, Qn as l, ar as m, yr as n, gr as o, rr as p, _r as r, fr as s, vr as t, $n as u, Rn as v, Dn as w, Mn as x, Nn as y };
|
|
4268
4268
|
|
|
4269
|
-
//# sourceMappingURL=analysis-builder-shared-
|
|
4269
|
+
//# sourceMappingURL=analysis-builder-shared-8alCn-zw.js.map
|