drizzle-cube 0.9.6 → 0.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/adapters/ActivityGridChart.config-C2kT9qd6.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-Crkwyx_5.js +2 -0
- package/dist/adapters/AreaChart.config-Cn4fTDQH.js +2 -0
- package/dist/adapters/AreaChart.config-DSBAn4xT.cjs +1 -0
- package/dist/adapters/BarChart.config-2r2_F09O.cjs +1 -0
- package/dist/adapters/BarChart.config-CorT50Sr.js +2 -0
- package/dist/adapters/BoxPlotChart.config-BM4SbL34.cjs +1 -0
- package/dist/adapters/BoxPlotChart.config-Dki3qfhN.js +2 -0
- package/dist/adapters/BubbleChart.config-DA768T1u.cjs +1 -0
- package/dist/adapters/BubbleChart.config-LJ2w0ZAz.js +2 -0
- package/dist/adapters/CandlestickChart.config-C00YG927.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-D-vVDHaQ.js +2 -0
- package/dist/adapters/DataTable.config-Ml6Q3VEP.cjs +1 -0
- package/dist/adapters/DataTable.config-jwBiAUpg.js +2 -0
- package/dist/adapters/DotStripChart.config-C_dgJFje.js +2 -0
- package/dist/adapters/DotStripChart.config-D5M4xxNE.cjs +1 -0
- package/dist/adapters/FunnelChart.config-DBkjp0wh.js +2 -0
- package/dist/adapters/FunnelChart.config-Jc6DVjCx.cjs +1 -0
- package/dist/adapters/GaugeChart.config-BqW6WqXS.cjs +1 -0
- package/dist/adapters/GaugeChart.config-CyD4y_yf.js +2 -0
- package/dist/adapters/HeatMapChart.config-C_TKjH9_.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-Di1KFl9H.js +2 -0
- package/dist/adapters/KpiDelta.config-qlIY4kju.js +2 -0
- package/dist/adapters/KpiDelta.config-zaqkGeS2.cjs +1 -0
- package/dist/adapters/KpiNumber.config-D1hq68b3.cjs +1 -0
- package/dist/adapters/KpiNumber.config-D9LpXMmo.js +2 -0
- package/dist/adapters/KpiText.config-BBBV_4aK.cjs +1 -0
- package/dist/adapters/KpiText.config-pqFid-lb.js +2 -0
- package/dist/adapters/LineChart.config-CFGa_jpk.js +2 -0
- package/dist/adapters/LineChart.config-DRTr24Jl.cjs +1 -0
- package/dist/adapters/MarkdownChart.config--Teyo7aa.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-Cnptz8gx.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-BlAnkNf6.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-c4K6xVET.cjs +1 -0
- package/dist/adapters/PieChart.config-BX5FcoZn.cjs +1 -0
- package/dist/adapters/PieChart.config-DT1TCBFA.js +2 -0
- package/dist/adapters/ProportionBarChart.config-CN5ov6e6.js +2 -0
- package/dist/adapters/ProportionBarChart.config-DdrZQypv.cjs +1 -0
- package/dist/adapters/RadarChart.config-CYpWy1MI.js +2 -0
- package/dist/adapters/RadarChart.config-Cm14F-JW.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-BXEmrEW0.js +2 -0
- package/dist/adapters/RadialBarChart.config-bJL8ZwT5.cjs +1 -0
- package/dist/adapters/RecordsTable.config-BifW_6cA.cjs +1 -0
- package/dist/adapters/RecordsTable.config-DOu5dLR9.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-BLTS46q4.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-DkIUp-uU.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-Csnntt4P.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-Xljn01Px.cjs +1 -0
- package/dist/adapters/SankeyChart.config-BExGzO93.cjs +1 -0
- package/dist/adapters/SankeyChart.config-DEBF3E7J.js +2 -0
- package/dist/adapters/ScatterChart.config-B9fxyVl8.cjs +1 -0
- package/dist/adapters/ScatterChart.config-CNWNsjv_.js +2 -0
- package/dist/adapters/SunburstChart.config-DyBJr_Ah.js +2 -0
- package/dist/adapters/SunburstChart.config-vXKPV3lF.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-CoXSasFP.js +2 -0
- package/dist/adapters/TreeMapChart.config-iq-fCkIZ.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-Coyj2j_7.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-Dyf-p2Z2.js +2 -0
- package/dist/adapters/{compiler-CpvetSCm.js → compiler-BKg3j2mm.js} +1260 -2446
- package/dist/adapters/compiler-BX6Ug_Uq.cjs +166 -0
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-BH_56XtM.js → core-Bmb7XMBz.js} +2 -2
- package/dist/adapters/{core-CydD6oFu.cjs → core-JgUTMhxl.cjs} +1 -1
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +5 -5
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +23 -23
- package/dist/adapters/{handler-Dp8fpSpk.cjs → handler-CTSg1daG.cjs} +8 -8
- package/dist/adapters/{handler-CtcALGcY.js → handler-DtX1YNOn.js} +213 -209
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +4 -4
- package/dist/adapters/mcp-app-html-Bu4j3yZM.cjs +1 -0
- package/dist/adapters/{mcp-app-html-C8vG9epH.js → mcp-app-html-D3GsxPcx.js} +1 -1
- package/dist/adapters/mcp-app-html.cjs +1 -1
- package/dist/adapters/mcp-app-html.js +1 -1
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +3 -3
- package/dist/adapters/{mcp-transport-DDxjqyuK.js → mcp-transport-BTmAXLo8.js} +8 -3
- package/dist/adapters/{mcp-transport-QGYYYSgR.cjs → mcp-transport-DzxluRyH.cjs} +2 -2
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +5 -5
- package/dist/adapters/{openai-Cm4JcLuF.cjs → openai-BwtOIJIk.cjs} +1 -1
- package/dist/adapters/{openai-pCkHdDh4.js → openai-CWnhWp3I.js} +1 -1
- package/dist/adapters/{openai-CwKv0DD-.cjs → openai-ClwjvwzT.cjs} +2 -2
- package/dist/adapters/{openai-DH5InEPj.js → openai-Dqrs3PGo.js} +3 -3
- package/dist/adapters/utils-Du_UZbn5.cjs +139 -0
- package/dist/adapters/{utils-C_Mc0qsk.js → utils-i2h5cwI3.js} +2587 -1254
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/server/adapters/base-adapter.d.ts +3 -3
- package/dist/cjs/server/ai/query-schema.d.ts +3 -3
- package/dist/cjs/server/builders/date-time-builder.d.ts +1 -2
- package/dist/cjs/server/builders/date-time-helpers.d.ts +19 -6
- package/dist/cjs/server/builders/filter-operators.d.ts +10 -1
- package/dist/cjs/server/execution/query-normalizer.d.ts +9 -0
- package/dist/cjs/server/physical-plan/drizzle-sql-builder.d.ts +25 -0
- package/dist/cjs/server/physical-plan/semi-join.d.ts +21 -0
- package/dist/cjs/server/prompts/single-step-prompt.d.ts +1 -1
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-USQFytJw.js → DashboardEditModal-DfaeSZGf.js} +12 -12
- package/dist/client/chunks/{DashboardEditModal-USQFytJw.js.map → DashboardEditModal-DfaeSZGf.js.map} +1 -1
- package/dist/client/chunks/{DotStripChart-CjSsunHE.js → DotStripChart-in6QHc0b.js} +3 -3
- package/dist/client/chunks/{DotStripChart-CjSsunHE.js.map → DotStripChart-in6QHc0b.js.map} +1 -1
- package/dist/client/chunks/{ProportionBarChart-B8UyZBO_.js → ProportionBarChart-CjuOm7NT.js} +3 -3
- package/dist/client/chunks/{ProportionBarChart-B8UyZBO_.js.map → ProportionBarChart-CjuOm7NT.js.map} +1 -1
- package/dist/client/chunks/{RecordsTable-BSmkwdgd.js → RecordsTable-CXXsiaV1.js} +4 -4
- package/dist/client/chunks/{RecordsTable-BSmkwdgd.js.map → RecordsTable-CXXsiaV1.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-rOdIhUGH.js → RetentionCombinedChart-DFCeEFkx.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-rOdIhUGH.js.map → RetentionCombinedChart-DFCeEFkx.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-DVm_7rph.js → RetentionHeatmap-jpshJ2Af.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-DVm_7rph.js.map → RetentionHeatmap-jpshJ2Af.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-D_tw9BvU.js → analysis-builder-fPK8NgJW.js} +9 -9
- package/dist/client/chunks/{analysis-builder-D_tw9BvU.js.map → analysis-builder-fPK8NgJW.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-BSINKFr2.js → analysis-builder-shared--4LqPSum.js} +829 -775
- package/dist/client/chunks/analysis-builder-shared--4LqPSum.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-CSIsJ12e.js → chart-activity-grid-DGazwi4C.js} +9 -2
- package/dist/client/chunks/chart-activity-grid-DGazwi4C.js.map +1 -0
- package/dist/client/chunks/{chart-area-BpvSKH5I.js → chart-area-zyLGD-ym.js} +2 -2
- package/dist/client/chunks/{chart-area-BpvSKH5I.js.map → chart-area-zyLGD-ym.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-Cjzv-LvG.js → chart-bar-DMCBq8qJ.js} +3 -3
- package/dist/client/chunks/{chart-bar-Cjzv-LvG.js.map → chart-bar-DMCBq8qJ.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-DHsHfMt6.js → chart-box-plot-5Z55A-it.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-DHsHfMt6.js.map → chart-box-plot-5Z55A-it.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-BtWm6x7L.js → chart-bubble-YD28dX8w.js} +2 -2
- package/dist/client/chunks/{chart-bubble-BtWm6x7L.js.map → chart-bubble-YD28dX8w.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-Bz0_fLuq.js → chart-candlestick-BUMpBI08.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-Bz0_fLuq.js.map → chart-candlestick-BUMpBI08.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-BH1A-1RN.js → chart-data-table-BdMo3zVh.js} +2 -2
- package/dist/client/chunks/{chart-data-table-BH1A-1RN.js.map → chart-data-table-BdMo3zVh.js.map} +1 -1
- package/dist/client/chunks/{chart-funnel-C_-K4RLj.js → chart-funnel-BRyZS6ie.js} +2 -2
- package/dist/client/chunks/{chart-funnel-C_-K4RLj.js.map → chart-funnel-BRyZS6ie.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-F-vdq2BX.js → chart-gauge-DxgHlZKp.js} +3 -3
- package/dist/client/chunks/{chart-gauge-F-vdq2BX.js.map → chart-gauge-DxgHlZKp.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-D_8TluGo.js → chart-heat-map-5jHm3f-V.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-D_8TluGo.js.map → chart-heat-map-5jHm3f-V.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-DGvQ0BHZ.js → chart-kpi-delta-C84P-mwu.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-DGvQ0BHZ.js.map → chart-kpi-delta-C84P-mwu.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-DP6zCh-c.js → chart-kpi-number-D9GqtBWw.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-DP6zCh-c.js.map → chart-kpi-number-D9GqtBWw.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-DDbWfMwK.js → chart-kpi-text-D3HqxXzU.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-DDbWfMwK.js.map → chart-kpi-text-D3HqxXzU.js.map} +1 -1
- package/dist/client/chunks/{chart-line-DlhmQQ-X.js → chart-line-IEgiF8Nv.js} +3 -3
- package/dist/client/chunks/{chart-line-DlhmQQ-X.js.map → chart-line-IEgiF8Nv.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-C5ldCjSN.js → chart-markdown-B_2Ed7FJ.js} +2 -2
- package/dist/client/chunks/{chart-markdown-C5ldCjSN.js.map → chart-markdown-B_2Ed7FJ.js.map} +1 -1
- package/dist/client/chunks/{chart-measure-profile-CjErXQI4.js → chart-measure-profile-CWsPrQhH.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-CjErXQI4.js.map → chart-measure-profile-CWsPrQhH.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-CmKhmUR-.js → chart-pie-BEB2sCXF.js} +3 -3
- package/dist/client/chunks/{chart-pie-CmKhmUR-.js.map → chart-pie-BEB2sCXF.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-B2bYTyb0.js → chart-radar-BbSbXKbP.js} +3 -3
- package/dist/client/chunks/{chart-radar-B2bYTyb0.js.map → chart-radar-BbSbXKbP.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-DvQ-xZS-.js → chart-radial-bar-CNYD7tkM.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-DvQ-xZS-.js.map → chart-radial-bar-CNYD7tkM.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-DHIrjmhj.js → chart-sankey-DKnTIvSr.js} +2 -2
- package/dist/client/chunks/{chart-sankey-DHIrjmhj.js.map → chart-sankey-DKnTIvSr.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-JnoA3CD5.js → chart-scatter-CSWF6-lx.js} +3 -3
- package/dist/client/chunks/{chart-scatter-JnoA3CD5.js.map → chart-scatter-CSWF6-lx.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-BtzRp5bg.js → chart-sunburst-CdGzCq7q.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-BtzRp5bg.js.map → chart-sunburst-CdGzCq7q.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-HQitd39D.js → chart-tree-map-BiXB7EiM.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-HQitd39D.js.map → chart-tree-map-BiXB7EiM.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-Dd3HMz3p.js → chart-waterfall-5rSDeLEZ.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-Dd3HMz3p.js.map → chart-waterfall-5rSDeLEZ.js.map} +1 -1
- package/dist/client/chunks/{charts-core-CQFOTTPb.js → charts-core-CKpkoMCa.js} +2 -2
- package/dist/client/chunks/{charts-core-CQFOTTPb.js.map → charts-core-CKpkoMCa.js.map} +1 -1
- package/dist/client/chunks/charts-loader-BTI0UPK4.js +87 -0
- package/dist/client/chunks/{charts-loader-BlxEsp39.js.map → charts-loader-BTI0UPK4.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-gaWTnOGQ.js → nl-NL-kRjxedTf.js} +8 -1
- package/dist/client/chunks/{nl-NL-gaWTnOGQ.js.map → nl-NL-kRjxedTf.js.map} +1 -1
- package/dist/client/chunks/{schema-visualization-BspQ-XB8.js → schema-visualization-BbvL74Sf.js} +3 -3
- package/dist/client/chunks/{schema-visualization-BspQ-XB8.js.map → schema-visualization-BbvL74Sf.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-DY5sjvb6.js → useDirtyStateTracking-BfG1lX_3.js} +4 -4
- package/dist/client/chunks/{useDirtyStateTracking-DY5sjvb6.js.map → useDirtyStateTracking-BfG1lX_3.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-BY0Ti3FZ.js → useExplainAI-CDFhgmpE.js} +4 -4
- package/dist/client/chunks/{useExplainAI-BY0Ti3FZ.js.map → useExplainAI-CDFhgmpE.js.map} +1 -1
- package/dist/client/chunks/{vendor-C4pD7rZf.js → vendor-DeckzF1j.js} +2 -2
- package/dist/client/chunks/{vendor-C4pD7rZf.js.map → vendor-DeckzF1j.js.map} +1 -1
- package/dist/client/components.js +1 -1
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +13 -13
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/utils.js +4 -4
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +2 -2
- package/dist/server/adapters/base-adapter.d.ts +3 -3
- package/dist/server/ai/query-schema.d.ts +3 -3
- package/dist/server/builders/date-time-builder.d.ts +1 -2
- package/dist/server/builders/date-time-helpers.d.ts +19 -6
- package/dist/server/builders/filter-operators.d.ts +10 -1
- package/dist/server/execution/query-normalizer.d.ts +9 -0
- package/dist/server/index.cjs +54 -47
- package/dist/server/index.js +2561 -2408
- package/dist/server/physical-plan/drizzle-sql-builder.d.ts +25 -0
- package/dist/server/physical-plan/semi-join.d.ts +21 -0
- package/dist/server/prompts/single-step-prompt.d.ts +1 -1
- package/package.json +1 -1
- package/dist/adapters/ActivityGridChart.config-BgAUfqKS.js +0 -2
- package/dist/adapters/ActivityGridChart.config-CGsjbfYL.cjs +0 -1
- package/dist/adapters/AreaChart.config-Bmj24k3G.cjs +0 -1
- package/dist/adapters/AreaChart.config-DqJvquc-.js +0 -2
- package/dist/adapters/BarChart.config-CzGxsUq-.js +0 -2
- package/dist/adapters/BarChart.config-D1uQGV6T.cjs +0 -1
- package/dist/adapters/BoxPlotChart.config-I0S4-aNF.js +0 -2
- package/dist/adapters/BoxPlotChart.config-wfS4FxGI.cjs +0 -1
- package/dist/adapters/BubbleChart.config-BDSknEkc.js +0 -2
- package/dist/adapters/BubbleChart.config-CByvW3Rq.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-08gqS1xj.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-Bkr9bdwM.js +0 -2
- package/dist/adapters/DataTable.config-BFP6xnMc.cjs +0 -1
- package/dist/adapters/DataTable.config-DHYD7PA8.js +0 -2
- package/dist/adapters/DotStripChart.config-DRQybZZu.cjs +0 -1
- package/dist/adapters/DotStripChart.config-Sp0fOxfM.js +0 -2
- package/dist/adapters/FunnelChart.config-ByARozX6.cjs +0 -1
- package/dist/adapters/FunnelChart.config-DhCqap3P.js +0 -2
- package/dist/adapters/GaugeChart.config-CfRicB1o.cjs +0 -1
- package/dist/adapters/GaugeChart.config-PTQ85WM5.js +0 -2
- package/dist/adapters/HeatMapChart.config-0tmGHwm2.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-Devz5A5U.js +0 -2
- package/dist/adapters/KpiDelta.config-CGTdddOM.js +0 -2
- package/dist/adapters/KpiDelta.config-CjWmwXjk.cjs +0 -1
- package/dist/adapters/KpiNumber.config-Cd4jw22d.cjs +0 -1
- package/dist/adapters/KpiNumber.config-D3Et71Zn.js +0 -2
- package/dist/adapters/KpiText.config-B9VATPy2.js +0 -2
- package/dist/adapters/KpiText.config-B_dkrdHj.cjs +0 -1
- package/dist/adapters/LineChart.config-C3p-mc15.cjs +0 -1
- package/dist/adapters/LineChart.config-DXWLMWjn.js +0 -2
- package/dist/adapters/MarkdownChart.config-BQGmd6Iz.js +0 -2
- package/dist/adapters/MarkdownChart.config-CQFu4297.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-CXLeprVS.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-KpfD016N.cjs +0 -1
- package/dist/adapters/PieChart.config-j-syrhBx.js +0 -2
- package/dist/adapters/PieChart.config-zzBPh0tx.cjs +0 -1
- package/dist/adapters/ProportionBarChart.config-BD9bf-LZ.js +0 -2
- package/dist/adapters/ProportionBarChart.config-CBLcLV4Z.cjs +0 -1
- package/dist/adapters/RadarChart.config-CW9f_VxU.cjs +0 -1
- package/dist/adapters/RadarChart.config-yKvcZ49V.js +0 -2
- package/dist/adapters/RadialBarChart.config-DwQYejI6.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-xK4AyoOF.js +0 -2
- package/dist/adapters/RecordsTable.config-CquV7Wi0.js +0 -2
- package/dist/adapters/RecordsTable.config-DzrQXBvh.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-BYAFkFb-.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-Ddmb-WwM.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-CSHXD736.cjs +0 -1
- package/dist/adapters/RetentionHeatmap.config-DODcy3gK.js +0 -2
- package/dist/adapters/SankeyChart.config-B56o6GFu.js +0 -2
- package/dist/adapters/SankeyChart.config-DLnhr2k_.cjs +0 -1
- package/dist/adapters/ScatterChart.config-CrIFaC-s.js +0 -2
- package/dist/adapters/ScatterChart.config-Dfj1_af-.cjs +0 -1
- package/dist/adapters/SunburstChart.config-CuLsLj6v.cjs +0 -1
- package/dist/adapters/SunburstChart.config-CvuVUfkp.js +0 -2
- package/dist/adapters/TreeMapChart.config-CvbDr1Ic.js +0 -2
- package/dist/adapters/TreeMapChart.config-Dqjhe8Xk.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-DXFeGg7P.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-MLHPNE5q.js +0 -2
- package/dist/adapters/compiler-C5OSdfwn.cjs +0 -166
- package/dist/adapters/mcp-app-html-DRWnkcx4.cjs +0 -1
- package/dist/adapters/utils-BFGzuSlF.cjs +0 -132
- package/dist/client/chunks/analysis-builder-shared-BSINKFr2.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-CSIsJ12e.js.map +0 -1
- package/dist/client/chunks/charts-loader-BlxEsp39.js +0 -87
|
@@ -1,130 +1,184 @@
|
|
|
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 { A as s, B as c, d as l, u, y as d } from "./chart-data-table-
|
|
3
|
-
import { C as f, D as p, M as m, _ as h, b as g, d as _, f as v, it as y, nt as b, rt as x, u as S, v as C, w, x as T, y as E } from "./DashboardEditModal-
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-DeckzF1j.js";
|
|
2
|
+
import { A as s, B as c, d as l, u, y as d } from "./chart-data-table-BdMo3zVh.js";
|
|
3
|
+
import { C as f, D as p, M as m, _ as h, b as g, d as _, f as v, it as y, nt as b, rt as x, u as S, v as C, w, x as T, y as E } from "./DashboardEditModal-DfaeSZGf.js";
|
|
4
4
|
import { a as D, s as O, t as k } from "./retention-ChW9jYdy.js";
|
|
5
|
-
import { O as
|
|
6
|
-
import { A as
|
|
7
|
-
import { B as
|
|
8
|
-
import { a as fe, i as pe } from "./useExplainAI-
|
|
9
|
-
import { r as me, s as he } from "./chart-funnel-
|
|
10
|
-
import { n as ge } from "./charts-core-
|
|
5
|
+
import { O as ee, k as A } from "./dashboardExport-Db3rmUP1.js";
|
|
6
|
+
import { A as te, D as j, F as M, I as ne, M as N, N as re, O as ie, P as ae, S as P, T as F, a as oe, d as se, j as I, k as L, l as ce, n as le, r as ue, s as de } from "./useDirtyStateTracking-BfG1lX_3.js";
|
|
7
|
+
import { B as R, F as z } from "./chart-activity-grid-DGazwi4C.js";
|
|
8
|
+
import { a as fe, i as pe } from "./useExplainAI-CDFhgmpE.js";
|
|
9
|
+
import { r as me, s as he } from "./chart-funnel-BRyZS6ie.js";
|
|
10
|
+
import { n as ge } from "./charts-core-CKpkoMCa.js";
|
|
11
11
|
import B, { createContext as _e, memo as ve, useCallback as V, useContext as ye, useEffect as H, useMemo as U, useRef as W, useState as G } from "react";
|
|
12
|
-
import { Fragment as
|
|
12
|
+
import { Fragment as be, jsx as K, jsxs as q } from "react/jsx-runtime";
|
|
13
13
|
//#region src/shared/date-utils.ts
|
|
14
|
-
|
|
15
|
-
let t =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
let
|
|
27
|
-
|
|
28
|
-
let
|
|
29
|
-
return
|
|
30
|
-
start: e,
|
|
31
|
-
end: n
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
if (n === "this week") {
|
|
35
|
-
let e = o === 0 ? -6 : 1 - o, n = new Date(t);
|
|
36
|
-
n.setUTCDate(a + e), n.setUTCHours(0, 0, 0, 0);
|
|
37
|
-
let r = new Date(n);
|
|
38
|
-
return r.setUTCDate(n.getUTCDate() + 6), r.setUTCHours(23, 59, 59, 999), {
|
|
14
|
+
var xe = (e) => {
|
|
15
|
+
let t = new Date(e);
|
|
16
|
+
return t.setUTCHours(0, 0, 0, 0), t;
|
|
17
|
+
}, J = (e) => {
|
|
18
|
+
let t = new Date(e);
|
|
19
|
+
return t.setUTCHours(23, 59, 59, 999), t;
|
|
20
|
+
}, Se = {
|
|
21
|
+
today: ({ now: e }) => ({
|
|
22
|
+
start: xe(e),
|
|
23
|
+
end: J(e)
|
|
24
|
+
}),
|
|
25
|
+
yesterday: ({ now: e, utcDate: t }) => {
|
|
26
|
+
let n = new Date(e);
|
|
27
|
+
n.setUTCDate(t - 1), n.setUTCHours(0, 0, 0, 0);
|
|
28
|
+
let r = new Date(e);
|
|
29
|
+
return r.setUTCDate(t - 1), r.setUTCHours(23, 59, 59, 999), {
|
|
39
30
|
start: n,
|
|
40
31
|
end: r
|
|
41
32
|
};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
33
|
+
},
|
|
34
|
+
"this week": ({ now: e, utcDate: t, utcDay: n }) => {
|
|
35
|
+
let r = n === 0 ? -6 : 1 - n, i = new Date(e);
|
|
36
|
+
i.setUTCDate(t + r), i.setUTCHours(0, 0, 0, 0);
|
|
37
|
+
let a = new Date(i);
|
|
38
|
+
return a.setUTCDate(i.getUTCDate() + 6), a.setUTCHours(23, 59, 59, 999), {
|
|
39
|
+
start: i,
|
|
40
|
+
end: a
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
"this month": ({ utcYear: e, utcMonth: t }) => ({
|
|
44
|
+
start: new Date(Date.UTC(e, t, 1, 0, 0, 0, 0)),
|
|
45
|
+
end: new Date(Date.UTC(e, t + 1, 0, 23, 59, 59, 999))
|
|
46
|
+
}),
|
|
47
|
+
"this quarter": ({ utcYear: e, utcMonth: t }) => {
|
|
48
|
+
let n = Math.floor(t / 3);
|
|
49
49
|
return {
|
|
50
|
-
start: new Date(Date.UTC(
|
|
51
|
-
end: new Date(Date.UTC(
|
|
50
|
+
start: new Date(Date.UTC(e, n * 3, 1, 0, 0, 0, 0)),
|
|
51
|
+
end: new Date(Date.UTC(e, n * 3 + 3, 0, 23, 59, 59, 999))
|
|
52
52
|
};
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
start: new Date(Date.UTC(
|
|
56
|
-
end: new Date(Date.UTC(
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
end: r
|
|
53
|
+
},
|
|
54
|
+
"this year": ({ utcYear: e }) => ({
|
|
55
|
+
start: new Date(Date.UTC(e, 0, 1, 0, 0, 0, 0)),
|
|
56
|
+
end: new Date(Date.UTC(e, 11, 31, 23, 59, 59, 999))
|
|
57
|
+
}),
|
|
58
|
+
"last week": ({ now: e, utcDate: t, utcDay: n }) => {
|
|
59
|
+
let r = n === 0 ? -13 : -6 - n, i = new Date(e);
|
|
60
|
+
i.setUTCDate(t + r), i.setUTCHours(0, 0, 0, 0);
|
|
61
|
+
let a = new Date(i);
|
|
62
|
+
return a.setUTCDate(i.getUTCDate() + 6), a.setUTCHours(23, 59, 59, 999), {
|
|
63
|
+
start: i,
|
|
64
|
+
end: a
|
|
66
65
|
};
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
66
|
+
},
|
|
67
|
+
"last month": ({ utcYear: e, utcMonth: t }) => ({
|
|
68
|
+
start: new Date(Date.UTC(e, t - 1, 1, 0, 0, 0, 0)),
|
|
69
|
+
end: new Date(Date.UTC(e, t, 0, 23, 59, 59, 999))
|
|
70
|
+
}),
|
|
71
|
+
"last quarter": ({ utcYear: e, utcMonth: t }) => {
|
|
72
|
+
let n = Math.floor(t / 3), r = n === 0 ? 3 : n - 1, i = n === 0 ? e - 1 : e;
|
|
73
|
+
return {
|
|
74
|
+
start: new Date(Date.UTC(i, r * 3, 1, 0, 0, 0, 0)),
|
|
75
|
+
end: new Date(Date.UTC(i, r * 3 + 3, 0, 23, 59, 59, 999))
|
|
76
76
|
};
|
|
77
|
+
},
|
|
78
|
+
"last year": ({ utcYear: e }) => ({
|
|
79
|
+
start: new Date(Date.UTC(e - 1, 0, 1, 0, 0, 0, 0)),
|
|
80
|
+
end: new Date(Date.UTC(e - 1, 11, 31, 23, 59, 59, 999))
|
|
81
|
+
}),
|
|
82
|
+
"last 12 months": ({ now: e, utcYear: t, utcMonth: n }) => ({
|
|
83
|
+
start: new Date(Date.UTC(t, n - 11, 1, 0, 0, 0, 0)),
|
|
84
|
+
end: J(e)
|
|
85
|
+
})
|
|
86
|
+
}, Ce = [
|
|
87
|
+
{
|
|
88
|
+
re: /^last\s+(\d+)\s+days?$/,
|
|
89
|
+
build: (e, { now: t, utcDate: n }) => {
|
|
90
|
+
let r = new Date(t);
|
|
91
|
+
return r.setUTCDate(n - e + 1), r.setUTCHours(0, 0, 0, 0), {
|
|
92
|
+
start: r,
|
|
93
|
+
end: J(t)
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
re: /^last\s+(\d+)\s+weeks?$/,
|
|
99
|
+
build: (e, { now: t, utcDate: n }) => {
|
|
100
|
+
let r = new Date(t);
|
|
101
|
+
return r.setUTCDate(n - e * 7 + 1), r.setUTCHours(0, 0, 0, 0), {
|
|
102
|
+
start: r,
|
|
103
|
+
end: J(t)
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
re: /^last\s+(\d+)\s+months?$/,
|
|
109
|
+
build: (e, { now: t, utcYear: n, utcMonth: r }) => ({
|
|
110
|
+
start: new Date(Date.UTC(n, r - e + 1, 1, 0, 0, 0, 0)),
|
|
111
|
+
end: J(t)
|
|
112
|
+
})
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
re: /^last\s+(\d+)\s+quarters?$/,
|
|
116
|
+
build: (e, { now: t, utcYear: n, utcMonth: r }) => ({
|
|
117
|
+
start: new Date(Date.UTC(n, (Math.floor(r / 3) - e + 1) * 3, 1, 0, 0, 0, 0)),
|
|
118
|
+
end: J(t)
|
|
119
|
+
})
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
re: /^last\s+(\d+)\s+years?$/,
|
|
123
|
+
build: (e, { now: t, utcYear: n }) => ({
|
|
124
|
+
start: new Date(Date.UTC(n - e, 0, 1, 0, 0, 0, 0)),
|
|
125
|
+
end: J(t)
|
|
126
|
+
})
|
|
77
127
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
128
|
+
], we = ({ now: e, utcDate: t, utcDay: n }) => {
|
|
129
|
+
let r = new Date(e);
|
|
130
|
+
return r.setUTCDate(t + (n === 0 ? -6 : 1 - n)), r.setUTCHours(0, 0, 0, 0), r;
|
|
131
|
+
}, Te = {
|
|
132
|
+
tomorrow: ({ now: e, utcDate: t }) => {
|
|
133
|
+
let n = new Date(e);
|
|
134
|
+
n.setUTCDate(t + 1), n.setUTCHours(0, 0, 0, 0);
|
|
81
135
|
let r = new Date(n);
|
|
82
|
-
return r.
|
|
136
|
+
return r.setUTCHours(23, 59, 59, 999), {
|
|
83
137
|
start: n,
|
|
84
138
|
end: r
|
|
85
139
|
};
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return {
|
|
94
|
-
start: new Date(Date.UTC(n, t * 3, 1, 0, 0, 0, 0)),
|
|
95
|
-
end: new Date(Date.UTC(n, t * 3 + 3, 0, 23, 59, 59, 999))
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
if (n === "last year") return {
|
|
99
|
-
start: new Date(Date.UTC(r - 1, 0, 1, 0, 0, 0, 0)),
|
|
100
|
-
end: new Date(Date.UTC(r - 1, 11, 31, 23, 59, 59, 999))
|
|
101
|
-
};
|
|
102
|
-
if (n === "last 12 months") {
|
|
103
|
-
let e = new Date(Date.UTC(r, i - 11, 1, 0, 0, 0, 0)), n = new Date(t);
|
|
104
|
-
return n.setUTCHours(23, 59, 59, 999), {
|
|
105
|
-
start: e,
|
|
106
|
-
end: n
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
let l = n.match(/^last\s+(\d+)\s+months?$/);
|
|
110
|
-
if (l) {
|
|
111
|
-
let e = new Date(Date.UTC(r, i - parseInt(l[1], 10) + 1, 1, 0, 0, 0, 0)), n = new Date(t);
|
|
112
|
-
return n.setUTCHours(23, 59, 59, 999), {
|
|
113
|
-
start: e,
|
|
140
|
+
},
|
|
141
|
+
"next week": (e) => {
|
|
142
|
+
let t = we(e);
|
|
143
|
+
t.setUTCDate(t.getUTCDate() + 7);
|
|
144
|
+
let n = new Date(t);
|
|
145
|
+
return n.setUTCDate(t.getUTCDate() + 6), n.setUTCHours(23, 59, 59, 999), {
|
|
146
|
+
start: t,
|
|
114
147
|
end: n
|
|
115
148
|
};
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
149
|
+
},
|
|
150
|
+
"next month": ({ utcYear: e, utcMonth: t }) => ({
|
|
151
|
+
start: new Date(Date.UTC(e, t + 1, 1, 0, 0, 0, 0)),
|
|
152
|
+
end: new Date(Date.UTC(e, t + 2, 0, 23, 59, 59, 999))
|
|
153
|
+
}),
|
|
154
|
+
"next quarter": ({ utcYear: e, utcMonth: t }) => {
|
|
155
|
+
let n = (Math.floor(t / 3) + 1) * 3;
|
|
156
|
+
return {
|
|
157
|
+
start: new Date(Date.UTC(e, n, 1, 0, 0, 0, 0)),
|
|
158
|
+
end: new Date(Date.UTC(e, n + 3, 0, 23, 59, 59, 999))
|
|
123
159
|
};
|
|
160
|
+
},
|
|
161
|
+
"next year": ({ utcYear: e }) => ({
|
|
162
|
+
start: new Date(Date.UTC(e + 1, 0, 1, 0, 0, 0, 0)),
|
|
163
|
+
end: new Date(Date.UTC(e + 1, 11, 31, 23, 59, 59, 999))
|
|
164
|
+
})
|
|
165
|
+
};
|
|
166
|
+
function Ee(e) {
|
|
167
|
+
let t = /* @__PURE__ */ new Date(), n = e.toLowerCase().trim(), r = {
|
|
168
|
+
now: t,
|
|
169
|
+
utcYear: t.getUTCFullYear(),
|
|
170
|
+
utcMonth: t.getUTCMonth(),
|
|
171
|
+
utcDate: t.getUTCDate(),
|
|
172
|
+
utcDay: t.getUTCDay()
|
|
173
|
+
}, i = Object.prototype.hasOwnProperty.call(Se, n) ? Se[n] : Object.prototype.hasOwnProperty.call(Te, n) ? Te[n] : void 0;
|
|
174
|
+
if (i) return i(r);
|
|
175
|
+
for (let { re: e, build: t } of Ce) {
|
|
176
|
+
let i = n.match(e);
|
|
177
|
+
if (i) return t(parseInt(i[1], 10), r);
|
|
124
178
|
}
|
|
125
179
|
return null;
|
|
126
180
|
}
|
|
127
|
-
function
|
|
181
|
+
function De(e) {
|
|
128
182
|
if (Array.isArray(e)) {
|
|
129
183
|
if (e.length < 2) return null;
|
|
130
184
|
let t = new Date(e[0]), n = new Date(e[1]);
|
|
@@ -133,12 +187,12 @@ function xe(e) {
|
|
|
133
187
|
end: n
|
|
134
188
|
});
|
|
135
189
|
}
|
|
136
|
-
return
|
|
190
|
+
return Ee(e);
|
|
137
191
|
}
|
|
138
|
-
function
|
|
192
|
+
function Oe(e) {
|
|
139
193
|
return e.toISOString().split("T")[0];
|
|
140
194
|
}
|
|
141
|
-
function
|
|
195
|
+
function ke(e, t) {
|
|
142
196
|
let n = t.getTime() - e.getTime(), r = Math.ceil(n / 864e5), i = new Date(e);
|
|
143
197
|
i.setUTCDate(i.getUTCDate() - 1), i.setUTCHours(23, 59, 59, 999);
|
|
144
198
|
let a = new Date(i);
|
|
@@ -149,22 +203,22 @@ function Ce(e, t) {
|
|
|
149
203
|
}
|
|
150
204
|
//#endregion
|
|
151
205
|
//#region src/client/components/AnalysisBuilder/utils/filterUtils.ts
|
|
152
|
-
function
|
|
153
|
-
let n =
|
|
206
|
+
function Ae(e, t) {
|
|
207
|
+
let n = I(t, e);
|
|
154
208
|
if (!n?.dateRange) return;
|
|
155
|
-
let r =
|
|
209
|
+
let r = De(n.dateRange);
|
|
156
210
|
if (!r) return;
|
|
157
|
-
let i =
|
|
158
|
-
return [[
|
|
211
|
+
let i = ke(r.start, r.end);
|
|
212
|
+
return [[Oe(r.start), Oe(r.end)], [Oe(i.start), Oe(i.end)]];
|
|
159
213
|
}
|
|
160
|
-
function
|
|
161
|
-
return
|
|
214
|
+
function je(e, t) {
|
|
215
|
+
return M(e, t, "inDateRange");
|
|
162
216
|
}
|
|
163
217
|
//#endregion
|
|
164
218
|
//#region src/client/components/AnalysisBuilder/utils/queryUtils.ts
|
|
165
|
-
function
|
|
219
|
+
function Me(e, t, n, r, i = !1, a, o = !1) {
|
|
166
220
|
let s = t.filter((e) => e.isTimeDimension && e.enableComparison).map((e) => e.field), c = n;
|
|
167
|
-
if (!i) for (let e of s) c =
|
|
221
|
+
if (!i) for (let e of s) c = je(c, e);
|
|
168
222
|
c = c.filter((e) => b(e));
|
|
169
223
|
let l = {
|
|
170
224
|
measures: e.map((e) => e.field),
|
|
@@ -175,7 +229,7 @@ function Ee(e, t, n, r, i = !1, a, o = !1) {
|
|
|
175
229
|
granularity: e.granularity || "day"
|
|
176
230
|
};
|
|
177
231
|
if (e.enableComparison) {
|
|
178
|
-
let r =
|
|
232
|
+
let r = Ae(e.field, n);
|
|
179
233
|
r && (t.compareDateRange = r);
|
|
180
234
|
}
|
|
181
235
|
return t;
|
|
@@ -200,7 +254,7 @@ function Y() {
|
|
|
200
254
|
}
|
|
201
255
|
//#endregion
|
|
202
256
|
//#region src/client/components/AnalysisBuilder/filterConfigModalUtils.ts
|
|
203
|
-
function
|
|
257
|
+
function Ne(e, t, n, r) {
|
|
204
258
|
if (!t || n === 0) return { type: "none" };
|
|
205
259
|
switch (e) {
|
|
206
260
|
case "ArrowDown": return {
|
|
@@ -221,60 +275,60 @@ function De(e, t, n, r) {
|
|
|
221
275
|
}
|
|
222
276
|
//#endregion
|
|
223
277
|
//#region src/client/components/AnalysisBuilder/FilterValueInput.tsx
|
|
224
|
-
var
|
|
225
|
-
function
|
|
278
|
+
var Pe = d("close"), Fe = d("chevronDown");
|
|
279
|
+
function Ie({ filter: e, dateRange: t }) {
|
|
226
280
|
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;
|
|
227
|
-
return /* @__PURE__ */
|
|
281
|
+
return /* @__PURE__ */ q("div", {
|
|
228
282
|
className: "dc:space-y-2",
|
|
229
283
|
children: [
|
|
230
|
-
/* @__PURE__ */
|
|
284
|
+
/* @__PURE__ */ q("div", {
|
|
231
285
|
className: "dc:relative",
|
|
232
|
-
children: [/* @__PURE__ */
|
|
286
|
+
children: [/* @__PURE__ */ q("button", {
|
|
233
287
|
onClick: () => {
|
|
234
288
|
f(), s(!o);
|
|
235
289
|
},
|
|
236
290
|
className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
|
|
237
|
-
children: [/* @__PURE__ */
|
|
291
|
+
children: [/* @__PURE__ */ K("span", {
|
|
238
292
|
className: "dc:truncate",
|
|
239
293
|
children: a
|
|
240
|
-
}), /* @__PURE__ */
|
|
241
|
-
}), o && /* @__PURE__ */
|
|
294
|
+
}), /* @__PURE__ */ K(Fe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${o ? "dc:rotate-180" : ""}` })]
|
|
295
|
+
}), o && /* @__PURE__ */ K("div", {
|
|
242
296
|
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
|
|
243
|
-
children: C.map((e) => /* @__PURE__ */
|
|
297
|
+
children: C.map((e) => /* @__PURE__ */ K("button", {
|
|
244
298
|
onClick: () => c(e.value),
|
|
245
299
|
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"}`,
|
|
246
300
|
children: n(e.label)
|
|
247
301
|
}, e.value))
|
|
248
302
|
})]
|
|
249
303
|
}),
|
|
250
|
-
|
|
304
|
+
j(r) && /* @__PURE__ */ q("div", {
|
|
251
305
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
252
|
-
children: [/* @__PURE__ */
|
|
306
|
+
children: [/* @__PURE__ */ K("input", {
|
|
253
307
|
type: "number",
|
|
254
308
|
min: "1",
|
|
255
309
|
max: "1000",
|
|
256
310
|
value: i,
|
|
257
311
|
onChange: (e) => l(Math.max(1, parseInt(e.target.value) || 1)),
|
|
258
312
|
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text dc:w-20"
|
|
259
|
-
}), /* @__PURE__ */
|
|
313
|
+
}), /* @__PURE__ */ K("span", {
|
|
260
314
|
className: "dc:text-sm text-dc-text-muted",
|
|
261
315
|
children: r.replace("last_n_", "")
|
|
262
316
|
})]
|
|
263
317
|
}),
|
|
264
|
-
r === "custom" && /* @__PURE__ */
|
|
318
|
+
r === "custom" && /* @__PURE__ */ q("div", {
|
|
265
319
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
266
320
|
children: [
|
|
267
|
-
/* @__PURE__ */
|
|
321
|
+
/* @__PURE__ */ K("input", {
|
|
268
322
|
type: "date",
|
|
269
323
|
value: Array.isArray(e.dateRange) ? e.dateRange[0] : "",
|
|
270
324
|
onChange: u,
|
|
271
325
|
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-2 dc:py-2 bg-dc-surface text-dc-text"
|
|
272
326
|
}),
|
|
273
|
-
/* @__PURE__ */
|
|
327
|
+
/* @__PURE__ */ K("span", {
|
|
274
328
|
className: "dc:text-sm text-dc-text-muted",
|
|
275
329
|
children: n("filter.modal.dateTo")
|
|
276
330
|
}),
|
|
277
|
-
/* @__PURE__ */
|
|
331
|
+
/* @__PURE__ */ K("input", {
|
|
278
332
|
type: "date",
|
|
279
333
|
value: Array.isArray(e.dateRange) ? e.dateRange[1] : "",
|
|
280
334
|
onChange: d,
|
|
@@ -285,26 +339,26 @@ function Ae({ filter: e, dateRange: t }) {
|
|
|
285
339
|
]
|
|
286
340
|
});
|
|
287
341
|
}
|
|
288
|
-
function
|
|
342
|
+
function Le({ filter: e, combo: t }) {
|
|
289
343
|
let { t: n } = z(), { options: r, loading: i, error: a, highlightedIndex: o, listRef: s, onSelect: c } = t;
|
|
290
|
-
return i ? /* @__PURE__ */
|
|
344
|
+
return i ? /* @__PURE__ */ K("div", {
|
|
291
345
|
className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
|
|
292
346
|
children: n("filter.modal.loading")
|
|
293
|
-
}) : a ? /* @__PURE__ */
|
|
347
|
+
}) : a ? /* @__PURE__ */ q("div", {
|
|
294
348
|
className: "dc:px-3 dc:py-2 dc:text-sm text-dc-error",
|
|
295
349
|
children: [n("filter.modal.errorPrefix"), String(a)]
|
|
296
|
-
}) : r.length === 0 ? /* @__PURE__ */
|
|
350
|
+
}) : r.length === 0 ? /* @__PURE__ */ K("div", {
|
|
297
351
|
className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
|
|
298
352
|
children: n("filter.modal.noValues")
|
|
299
|
-
}) : /* @__PURE__ */
|
|
353
|
+
}) : /* @__PURE__ */ K("div", {
|
|
300
354
|
ref: s,
|
|
301
355
|
className: "dc:max-h-40 dc:overflow-y-auto",
|
|
302
356
|
children: r.map((t, n) => {
|
|
303
357
|
let r = e.values?.includes(t);
|
|
304
|
-
return /* @__PURE__ */
|
|
358
|
+
return /* @__PURE__ */ q("button", {
|
|
305
359
|
onClick: (e) => c(t, e),
|
|
306
360
|
className: `dc:w-full dc:text-left dc:px-3 dc:py-2 dc:text-sm dc:transition-colors ${n === o ? "bg-dc-surface-hover" : ""} ${r ? "bg-dc-primary/10 text-dc-primary" : "text-dc-text hover:bg-dc-surface-hover"}`,
|
|
307
|
-
children: [String(t), r && /* @__PURE__ */
|
|
361
|
+
children: [String(t), r && /* @__PURE__ */ K("span", {
|
|
308
362
|
className: "dc:float-right",
|
|
309
363
|
children: "✓"
|
|
310
364
|
})]
|
|
@@ -312,41 +366,41 @@ function je({ filter: e, combo: t }) {
|
|
|
312
366
|
})
|
|
313
367
|
});
|
|
314
368
|
}
|
|
315
|
-
function
|
|
369
|
+
function Re({ filter: e, operatorMeta: t, combo: n }) {
|
|
316
370
|
let { t: r } = z(), { isOpen: i, loading: a, searchText: o, onSearchTextChange: s, onHighlightedIndexChange: c, onRemove: l, onKeyDown: u, onOpen: d } = n;
|
|
317
|
-
return /* @__PURE__ */
|
|
371
|
+
return /* @__PURE__ */ q("div", {
|
|
318
372
|
className: "dc:space-y-2",
|
|
319
373
|
children: [
|
|
320
|
-
e.values && e.values.length > 0 && /* @__PURE__ */
|
|
374
|
+
e.values && e.values.length > 0 && /* @__PURE__ */ K("div", {
|
|
321
375
|
className: "dc:flex dc:flex-wrap dc:gap-1.5",
|
|
322
|
-
children: e.values.map((e, t) => /* @__PURE__ */
|
|
376
|
+
children: e.values.map((e, t) => /* @__PURE__ */ q("span", {
|
|
323
377
|
className: "dc:inline-flex dc:items-center dc:gap-1 bg-dc-primary/10 text-dc-primary dc:text-sm dc:px-2 dc:py-1 dc:rounded-sm",
|
|
324
|
-
children: [/* @__PURE__ */
|
|
378
|
+
children: [/* @__PURE__ */ K("span", {
|
|
325
379
|
className: "dc:max-w-[150px] dc:truncate",
|
|
326
380
|
children: String(e)
|
|
327
|
-
}), /* @__PURE__ */
|
|
381
|
+
}), /* @__PURE__ */ K("button", {
|
|
328
382
|
onClick: () => l(e),
|
|
329
383
|
className: "hover:text-dc-danger",
|
|
330
|
-
children: /* @__PURE__ */
|
|
384
|
+
children: /* @__PURE__ */ K(Pe, { className: "dc:w-3.5 dc:h-3.5" })
|
|
331
385
|
})]
|
|
332
386
|
}, t))
|
|
333
387
|
}),
|
|
334
|
-
/* @__PURE__ */
|
|
388
|
+
/* @__PURE__ */ q("div", {
|
|
335
389
|
className: "dc:relative",
|
|
336
|
-
children: [/* @__PURE__ */
|
|
390
|
+
children: [/* @__PURE__ */ q("button", {
|
|
337
391
|
onClick: () => {
|
|
338
392
|
d();
|
|
339
393
|
},
|
|
340
394
|
className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
|
|
341
|
-
children: [/* @__PURE__ */
|
|
395
|
+
children: [/* @__PURE__ */ K("span", {
|
|
342
396
|
className: "text-dc-text-muted dc:truncate",
|
|
343
397
|
children: r(a ? "filter.modal.loading" : "filter.modal.selectValue")
|
|
344
|
-
}), /* @__PURE__ */
|
|
345
|
-
}), i && /* @__PURE__ */
|
|
398
|
+
}), /* @__PURE__ */ K(Fe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${i ? "dc:rotate-180" : ""}` })]
|
|
399
|
+
}), i && /* @__PURE__ */ q("div", {
|
|
346
400
|
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-56 dc:overflow-hidden",
|
|
347
|
-
children: [/* @__PURE__ */
|
|
401
|
+
children: [/* @__PURE__ */ K("div", {
|
|
348
402
|
className: "dc:p-2 dc:border-b border-dc-border",
|
|
349
|
-
children: /* @__PURE__ */
|
|
403
|
+
children: /* @__PURE__ */ K("input", {
|
|
350
404
|
type: "text",
|
|
351
405
|
value: o,
|
|
352
406
|
onChange: (e) => {
|
|
@@ -357,39 +411,39 @@ function Me({ filter: e, operatorMeta: t, combo: n }) {
|
|
|
357
411
|
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text",
|
|
358
412
|
autoFocus: !0
|
|
359
413
|
})
|
|
360
|
-
}), /* @__PURE__ */
|
|
414
|
+
}), /* @__PURE__ */ K(Le, {
|
|
361
415
|
filter: e,
|
|
362
416
|
combo: n
|
|
363
417
|
})]
|
|
364
418
|
})]
|
|
365
419
|
}),
|
|
366
|
-
t?.supportsMultipleValues && /* @__PURE__ */
|
|
420
|
+
t?.supportsMultipleValues && /* @__PURE__ */ K("p", {
|
|
367
421
|
className: "dc:text-xs text-dc-text-muted",
|
|
368
422
|
children: r("filter.modal.multiSelectHint")
|
|
369
423
|
})
|
|
370
424
|
]
|
|
371
425
|
});
|
|
372
426
|
}
|
|
373
|
-
function
|
|
427
|
+
function ze({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
374
428
|
let { t: i } = z(), { filter: a, operatorMeta: o, shouldShowDateRange: s, shouldShowComboBox: c } = e, { onBetweenStart: l, onBetweenEnd: u, onDate: d, onDirect: f } = r;
|
|
375
|
-
return o?.requiresValues ? s ? /* @__PURE__ */
|
|
429
|
+
return o?.requiresValues ? s ? /* @__PURE__ */ K(Ie, {
|
|
376
430
|
filter: a,
|
|
377
431
|
dateRange: t
|
|
378
|
-
}) : a.operator === "between" || a.operator === "notBetween" ? /* @__PURE__ */
|
|
432
|
+
}) : a.operator === "between" || a.operator === "notBetween" ? /* @__PURE__ */ q("div", {
|
|
379
433
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
380
434
|
children: [
|
|
381
|
-
/* @__PURE__ */
|
|
435
|
+
/* @__PURE__ */ K("input", {
|
|
382
436
|
type: "number",
|
|
383
437
|
value: a.values?.[0] ?? "",
|
|
384
438
|
onChange: l,
|
|
385
439
|
placeholder: i("filter.modal.min"),
|
|
386
440
|
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
387
441
|
}),
|
|
388
|
-
/* @__PURE__ */
|
|
442
|
+
/* @__PURE__ */ K("span", {
|
|
389
443
|
className: "dc:text-sm text-dc-text-muted",
|
|
390
444
|
children: i("filter.modal.to")
|
|
391
445
|
}),
|
|
392
|
-
/* @__PURE__ */
|
|
446
|
+
/* @__PURE__ */ K("input", {
|
|
393
447
|
type: "number",
|
|
394
448
|
value: a.values?.[1] ?? "",
|
|
395
449
|
onChange: u,
|
|
@@ -397,46 +451,46 @@ function Ne({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
|
397
451
|
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
398
452
|
})
|
|
399
453
|
]
|
|
400
|
-
}) : o?.valueType === "date" ? /* @__PURE__ */
|
|
454
|
+
}) : o?.valueType === "date" ? /* @__PURE__ */ K("input", {
|
|
401
455
|
type: "date",
|
|
402
456
|
value: a.values?.[0] || "",
|
|
403
457
|
onChange: d,
|
|
404
458
|
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
405
|
-
}) : o?.valueType === "number" ? /* @__PURE__ */
|
|
459
|
+
}) : o?.valueType === "number" ? /* @__PURE__ */ K("input", {
|
|
406
460
|
type: "number",
|
|
407
461
|
value: a.values?.[0] ?? "",
|
|
408
462
|
onChange: f,
|
|
409
463
|
placeholder: i("filter.modal.enterNumber"),
|
|
410
464
|
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
411
|
-
}) : c ? /* @__PURE__ */
|
|
465
|
+
}) : c ? /* @__PURE__ */ K(Re, {
|
|
412
466
|
filter: a,
|
|
413
467
|
operatorMeta: o,
|
|
414
468
|
combo: n
|
|
415
|
-
}) : /* @__PURE__ */
|
|
469
|
+
}) : /* @__PURE__ */ K("input", {
|
|
416
470
|
type: "text",
|
|
417
471
|
value: a.values?.[0] ?? "",
|
|
418
472
|
onChange: f,
|
|
419
473
|
placeholder: i("filter.modal.enterValue"),
|
|
420
474
|
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text placeholder-dc-text-muted"
|
|
421
|
-
}) : /* @__PURE__ */
|
|
475
|
+
}) : /* @__PURE__ */ K("div", {
|
|
422
476
|
className: "dc:text-sm text-dc-text-muted dc:italic dc:py-2",
|
|
423
477
|
children: i("filter.modal.noValueRequired")
|
|
424
478
|
});
|
|
425
479
|
}
|
|
426
480
|
//#endregion
|
|
427
481
|
//#region src/client/components/AnalysisBuilder/FilterConfigModal.tsx
|
|
428
|
-
var
|
|
429
|
-
function
|
|
430
|
-
let { t: a } = z(), [o, s] = G(e), [c, l] = G(!1), [u, d] = G(!1), [f, p] = G(!1), [m, _] = G("this_month"), [v, b] = G(1), [S, w] = G(""), [E, D] = G(null), [O, k] = G(-1),
|
|
482
|
+
var Be = d("close"), Ve = d("chevronDown"), He = d("dimension"), Ue = d("timeDimension"), We = d("measure");
|
|
483
|
+
function Ge({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i }) {
|
|
484
|
+
let { t: a } = z(), [o, s] = G(e), [c, l] = G(!1), [u, d] = G(!1), [f, p] = G(!1), [m, _] = G("this_month"), [v, b] = G(1), [S, w] = G(""), [E, D] = G(null), [O, k] = G(-1), ee = W(null), A = W(null), te = le(S, 300), M = g(o.member, t), ne = M?.field.type || "string", N = ne === "time", re = M?.fieldType === "measure", ie = M?.fieldType === "dimension", ae = T(o.member, t), P = x[o.operator], oe = y(ne), se = N && o.operator === "inDateRange", I = V(() => [
|
|
431
485
|
"equals",
|
|
432
486
|
"notEquals",
|
|
433
487
|
"in",
|
|
434
488
|
"notIn"
|
|
435
|
-
].includes(o.operator) &&
|
|
489
|
+
].includes(o.operator) && ie && !N, [
|
|
436
490
|
o.operator,
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
])(), { values:
|
|
491
|
+
ie,
|
|
492
|
+
N
|
|
493
|
+
])(), { values: L, loading: ce, error: de, searchValues: R } = ue(o.member, I);
|
|
440
494
|
H(() => {
|
|
441
495
|
if (!i) {
|
|
442
496
|
D(null);
|
|
@@ -452,32 +506,32 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
452
506
|
});
|
|
453
507
|
}, [i]), H(() => {
|
|
454
508
|
let e = (e) => {
|
|
455
|
-
|
|
509
|
+
ee.current && !ee.current.contains(e.target) && (l(!1), d(!1), p(!1));
|
|
456
510
|
};
|
|
457
511
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
458
512
|
}, []), H(() => {
|
|
459
|
-
u &&
|
|
513
|
+
u && I && R && R("", !0), u || k(-1);
|
|
460
514
|
}, [
|
|
461
515
|
u,
|
|
462
|
-
|
|
463
|
-
|
|
516
|
+
I,
|
|
517
|
+
R
|
|
464
518
|
]), H(() => {
|
|
465
|
-
if (O >= 0 &&
|
|
466
|
-
let e =
|
|
519
|
+
if (O >= 0 && A.current) {
|
|
520
|
+
let e = A.current.children[O];
|
|
467
521
|
e && e.scrollIntoView({ block: "nearest" });
|
|
468
522
|
}
|
|
469
523
|
}, [O]), H(() => {
|
|
470
|
-
u &&
|
|
524
|
+
u && I && R && te !== void 0 && R(te);
|
|
471
525
|
}, [
|
|
472
|
-
|
|
526
|
+
te,
|
|
473
527
|
u,
|
|
474
|
-
|
|
475
|
-
|
|
528
|
+
I,
|
|
529
|
+
R
|
|
476
530
|
]), H(() => {
|
|
477
|
-
if (!
|
|
531
|
+
if (!se) return;
|
|
478
532
|
let e = h(o.dateRange);
|
|
479
533
|
e && (_(e.rangeType), e.numberValue !== void 0 && b(e.numberValue));
|
|
480
|
-
}, [o.dateRange,
|
|
534
|
+
}, [o.dateRange, se]);
|
|
481
535
|
let fe = V((e) => {
|
|
482
536
|
s({
|
|
483
537
|
member: o.member,
|
|
@@ -486,7 +540,7 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
486
540
|
}), l(!1);
|
|
487
541
|
}, [o.member]), pe = V((e, t) => {
|
|
488
542
|
let n = t?.shiftKey ?? !1, r = o.values || [];
|
|
489
|
-
|
|
543
|
+
P?.supportsMultipleValues ? (r.includes(e) ? s({
|
|
490
544
|
...o,
|
|
491
545
|
values: r.filter((t) => t !== e)
|
|
492
546
|
}) : s({
|
|
@@ -496,27 +550,27 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
496
550
|
...o,
|
|
497
551
|
values: [e]
|
|
498
552
|
}), d(!1)), w(""), k(-1);
|
|
499
|
-
}, [o,
|
|
553
|
+
}, [o, P?.supportsMultipleValues]), me = V((e) => {
|
|
500
554
|
let t = (o.values || []).filter((t) => t !== e);
|
|
501
555
|
s({
|
|
502
556
|
...o,
|
|
503
557
|
values: t
|
|
504
558
|
});
|
|
505
559
|
}, [o]), he = V((e) => {
|
|
506
|
-
let t =
|
|
560
|
+
let t = Ne(e.key, u, L.length, O);
|
|
507
561
|
if (t.type !== "none") {
|
|
508
562
|
if (e.preventDefault(), t.type === "highlight") return k(t.index);
|
|
509
|
-
if (t.type === "select") return pe(
|
|
563
|
+
if (t.type === "select") return pe(L[t.index], { shiftKey: e.shiftKey });
|
|
510
564
|
d(!1), k(-1);
|
|
511
565
|
}
|
|
512
566
|
}, [
|
|
513
567
|
u,
|
|
514
|
-
|
|
568
|
+
L,
|
|
515
569
|
O,
|
|
516
570
|
pe
|
|
517
571
|
]), ge = V((e) => {
|
|
518
572
|
let t = e.target.value;
|
|
519
|
-
if (
|
|
573
|
+
if (P?.valueType === "number") {
|
|
520
574
|
let e = parseFloat(t);
|
|
521
575
|
isNaN(e) ? (t === "" || t === "-") && s({
|
|
522
576
|
...o,
|
|
@@ -529,7 +583,7 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
529
583
|
...o,
|
|
530
584
|
values: t ? [t] : []
|
|
531
585
|
});
|
|
532
|
-
}, [o,
|
|
586
|
+
}, [o, P?.valueType]), B = V((e) => {
|
|
533
587
|
let t = parseFloat(e.target.value), n = [isNaN(t) ? "" : t, (o.values?.length >= 2 ? o.values : ["", ""])[1]].filter((e) => e !== "");
|
|
534
588
|
s({
|
|
535
589
|
...o,
|
|
@@ -553,20 +607,20 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
553
607
|
if (e === "custom") {
|
|
554
608
|
let e = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
|
|
555
609
|
t = [e, e];
|
|
556
|
-
} else t =
|
|
610
|
+
} else t = j(e) ? F(e, v) : F(e);
|
|
557
611
|
s({
|
|
558
612
|
...o,
|
|
559
613
|
dateRange: t
|
|
560
614
|
});
|
|
561
|
-
}, [o, v]),
|
|
562
|
-
if (b(e),
|
|
563
|
-
let t =
|
|
615
|
+
}, [o, v]), xe = V((e) => {
|
|
616
|
+
if (b(e), j(m)) {
|
|
617
|
+
let t = F(m, e);
|
|
564
618
|
s({
|
|
565
619
|
...o,
|
|
566
620
|
dateRange: t
|
|
567
621
|
});
|
|
568
622
|
}
|
|
569
|
-
}, [o, m]),
|
|
623
|
+
}, [o, m]), J = V((e) => {
|
|
570
624
|
let t = e.target.value, n = (Array.isArray(o.dateRange) ? o.dateRange : [o.dateRange || "", ""])[1] || t;
|
|
571
625
|
s({
|
|
572
626
|
...o,
|
|
@@ -578,11 +632,11 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
578
632
|
...o,
|
|
579
633
|
dateRange: [n, t]
|
|
580
634
|
});
|
|
581
|
-
}, [o]), Ce = a(
|
|
635
|
+
}, [o]), Ce = a(oe.find((e) => e.operator === o.operator)?.label || o.operator), we = a(C.find((e) => e.value === m)?.label || "filter.modal.selectRange"), Te = {
|
|
582
636
|
filter: o,
|
|
583
|
-
operatorMeta:
|
|
584
|
-
shouldShowDateRange:
|
|
585
|
-
shouldShowComboBox:
|
|
637
|
+
operatorMeta: P,
|
|
638
|
+
shouldShowDateRange: se,
|
|
639
|
+
shouldShowComboBox: I
|
|
586
640
|
}, Ee = {
|
|
587
641
|
rangeType: m,
|
|
588
642
|
numberValue: v,
|
|
@@ -590,20 +644,20 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
590
644
|
isOpen: f,
|
|
591
645
|
onToggle: p,
|
|
592
646
|
onRangeTypeChange: ye,
|
|
593
|
-
onNumberValueChange:
|
|
594
|
-
onCustomStartDate:
|
|
647
|
+
onNumberValueChange: xe,
|
|
648
|
+
onCustomStartDate: J,
|
|
595
649
|
onCustomEndDate: Se,
|
|
596
650
|
onOpen: V(() => {
|
|
597
651
|
l(!1), d(!1);
|
|
598
652
|
}, [])
|
|
599
|
-
},
|
|
653
|
+
}, De = {
|
|
600
654
|
isOpen: u,
|
|
601
|
-
options:
|
|
602
|
-
loading:
|
|
603
|
-
error:
|
|
655
|
+
options: L,
|
|
656
|
+
loading: ce,
|
|
657
|
+
error: de,
|
|
604
658
|
searchText: S,
|
|
605
659
|
highlightedIndex: O,
|
|
606
|
-
listRef:
|
|
660
|
+
listRef: A,
|
|
607
661
|
onSearchTextChange: w,
|
|
608
662
|
onHighlightedIndexChange: k,
|
|
609
663
|
onSelect: pe,
|
|
@@ -622,12 +676,12 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
622
676
|
_e,
|
|
623
677
|
ve,
|
|
624
678
|
ge
|
|
625
|
-
]), ke =
|
|
626
|
-
return /* @__PURE__ */
|
|
679
|
+
]), ke = N ? Ue : re ? We : He;
|
|
680
|
+
return /* @__PURE__ */ K(be, { children: /* @__PURE__ */ K("div", {
|
|
627
681
|
className: `dc:fixed dc:inset-0 bg-dc-overlay dc:z-50 ${E ? "" : "dc:flex dc:items-center dc:justify-center dc:p-4"}`,
|
|
628
682
|
onClick: r,
|
|
629
|
-
children: /* @__PURE__ */
|
|
630
|
-
ref:
|
|
683
|
+
children: /* @__PURE__ */ q("div", {
|
|
684
|
+
ref: ee,
|
|
631
685
|
className: E ? "bg-dc-surface dc:rounded-lg dc:border border-dc-border" : "bg-dc-surface dc:rounded-lg dc:border border-dc-border dc:max-w-md dc:w-full",
|
|
632
686
|
style: {
|
|
633
687
|
...E ? {
|
|
@@ -640,71 +694,71 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
640
694
|
},
|
|
641
695
|
onClick: (e) => e.stopPropagation(),
|
|
642
696
|
children: [
|
|
643
|
-
/* @__PURE__ */
|
|
697
|
+
/* @__PURE__ */ q("div", {
|
|
644
698
|
className: "dc:flex dc:items-center dc:justify-between dc:p-4 dc:border-b border-dc-border",
|
|
645
|
-
children: [/* @__PURE__ */
|
|
699
|
+
children: [/* @__PURE__ */ K("h2", {
|
|
646
700
|
className: "dc:text-lg dc:font-semibold text-dc-text",
|
|
647
701
|
children: a("filter.modal.title")
|
|
648
|
-
}), /* @__PURE__ */
|
|
702
|
+
}), /* @__PURE__ */ K("button", {
|
|
649
703
|
onClick: r,
|
|
650
704
|
className: "dc:p-1 text-dc-text-muted hover:text-dc-text dc:transition-colors",
|
|
651
|
-
children: /* @__PURE__ */
|
|
705
|
+
children: /* @__PURE__ */ K(Be, { className: "dc:w-5 dc:h-5" })
|
|
652
706
|
})]
|
|
653
707
|
}),
|
|
654
|
-
/* @__PURE__ */
|
|
708
|
+
/* @__PURE__ */ q("div", {
|
|
655
709
|
className: "dc:p-4 dc:space-y-4",
|
|
656
710
|
children: [
|
|
657
|
-
/* @__PURE__ */
|
|
711
|
+
/* @__PURE__ */ q("div", { children: [/* @__PURE__ */ K("label", {
|
|
658
712
|
className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
|
|
659
713
|
children: a("filter.modal.fieldLabel")
|
|
660
|
-
}), /* @__PURE__ */
|
|
714
|
+
}), /* @__PURE__ */ q("div", {
|
|
661
715
|
className: "dc:flex dc:items-center dc:gap-2 dc:p-3 bg-dc-surface-secondary dc:rounded-sm",
|
|
662
|
-
children: [/* @__PURE__ */
|
|
716
|
+
children: [/* @__PURE__ */ K(ke, { className: "dc:w-5 dc:h-5 text-dc-filter-text" }), /* @__PURE__ */ K("span", {
|
|
663
717
|
className: "dc:text-sm dc:font-medium text-dc-text",
|
|
664
|
-
children:
|
|
718
|
+
children: ae
|
|
665
719
|
})]
|
|
666
720
|
})] }),
|
|
667
|
-
/* @__PURE__ */
|
|
721
|
+
/* @__PURE__ */ q("div", { children: [/* @__PURE__ */ K("label", {
|
|
668
722
|
className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
|
|
669
723
|
children: a("filter.modal.operatorLabel")
|
|
670
|
-
}), /* @__PURE__ */
|
|
724
|
+
}), /* @__PURE__ */ q("div", {
|
|
671
725
|
className: "dc:relative",
|
|
672
|
-
children: [/* @__PURE__ */
|
|
726
|
+
children: [/* @__PURE__ */ q("button", {
|
|
673
727
|
onClick: () => {
|
|
674
728
|
d(!1), p(!1), l(!c);
|
|
675
729
|
},
|
|
676
730
|
className: "dc:w-full dc:flex dc:items-center dc:justify-between dc:text-left dc:text-sm dc:border border-dc-border dc:rounded-sm dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
|
|
677
|
-
children: [/* @__PURE__ */
|
|
731
|
+
children: [/* @__PURE__ */ K("span", {
|
|
678
732
|
className: "dc:truncate",
|
|
679
733
|
children: Ce
|
|
680
|
-
}), /* @__PURE__ */
|
|
681
|
-
}), c && /* @__PURE__ */
|
|
734
|
+
}), /* @__PURE__ */ K(Ve, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${c ? "dc:rotate-180" : ""}` })]
|
|
735
|
+
}), c && /* @__PURE__ */ K("div", {
|
|
682
736
|
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
|
|
683
|
-
children:
|
|
737
|
+
children: oe.map((e) => /* @__PURE__ */ K("button", {
|
|
684
738
|
onClick: () => fe(e.operator),
|
|
685
739
|
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"}`,
|
|
686
740
|
children: a(e.label)
|
|
687
741
|
}, e.operator))
|
|
688
742
|
})]
|
|
689
743
|
})] }),
|
|
690
|
-
/* @__PURE__ */
|
|
744
|
+
/* @__PURE__ */ q("div", { children: [/* @__PURE__ */ K("label", {
|
|
691
745
|
className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
|
|
692
746
|
children: a("filter.modal.valueLabel")
|
|
693
|
-
}), /* @__PURE__ */
|
|
747
|
+
}), /* @__PURE__ */ K(ze, {
|
|
694
748
|
field: Te,
|
|
695
749
|
dateRange: Ee,
|
|
696
|
-
combo:
|
|
750
|
+
combo: De,
|
|
697
751
|
inputs: Oe
|
|
698
752
|
})] })
|
|
699
753
|
]
|
|
700
754
|
}),
|
|
701
|
-
/* @__PURE__ */
|
|
755
|
+
/* @__PURE__ */ q("div", {
|
|
702
756
|
className: "dc:flex dc:items-center dc:justify-end dc:gap-2 dc:p-4 dc:border-t border-dc-border",
|
|
703
|
-
children: [/* @__PURE__ */
|
|
757
|
+
children: [/* @__PURE__ */ K("button", {
|
|
704
758
|
onClick: r,
|
|
705
759
|
className: "dc:px-4 dc:py-2 dc:text-sm dc:font-medium text-dc-text-secondary hover:text-dc-text dc:transition-colors",
|
|
706
760
|
children: a("common.actions.cancel")
|
|
707
|
-
}), /* @__PURE__ */
|
|
761
|
+
}), /* @__PURE__ */ K("button", {
|
|
708
762
|
onClick: () => n(o),
|
|
709
763
|
className: "dc:px-4 dc:py-2 dc:text-sm dc:font-medium text-dc-primary-content bg-dc-primary hover:bg-dc-primary-hover dc:rounded-sm dc:transition-colors",
|
|
710
764
|
children: a("common.actions.save")
|
|
@@ -716,47 +770,47 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
716
770
|
}
|
|
717
771
|
//#endregion
|
|
718
772
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterItem.tsx
|
|
719
|
-
var
|
|
720
|
-
function
|
|
721
|
-
let { t: i } = z(), [a, o] = G(!1), s = W(null), c = g(e.member, t), l = (c?.field.type || "string") === "time", u = c?.fieldType === "measure", d = T(e.member, t), f = x[e.operator], p = f?.label ? i(f.label) : e.operator, m =
|
|
722
|
-
return /* @__PURE__ */
|
|
773
|
+
var Ke = d("close"), qe = d("dimension"), Je = d("timeDimension"), Ye = d("measure");
|
|
774
|
+
function Xe({ filter: e, schema: t, onRemove: n, onUpdate: r }) {
|
|
775
|
+
let { t: i } = z(), [a, o] = G(!1), s = W(null), c = g(e.member, t), l = (c?.field.type || "string") === "time", u = c?.fieldType === "measure", d = T(e.member, t), f = x[e.operator], p = f?.label ? i(f.label) : e.operator, m = Ze(e, f, i), h = l ? Je : u ? Ye : qe;
|
|
776
|
+
return /* @__PURE__ */ q(be, { children: [/* @__PURE__ */ q("div", {
|
|
723
777
|
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",
|
|
724
778
|
children: [
|
|
725
|
-
/* @__PURE__ */
|
|
779
|
+
/* @__PURE__ */ K("span", {
|
|
726
780
|
className: `dc:w-6 dc:h-6 dc:flex dc:items-center dc:justify-center dc:rounded-sm ${l ? "bg-dc-time-dimension" : u ? "bg-dc-measure" : "bg-dc-dimension"} ${l ? "text-dc-time-dimension-text" : u ? "text-dc-measure-text" : "text-dc-dimension-text"} dc:flex-shrink-0 dc:mt-0.5`,
|
|
727
|
-
children: h && /* @__PURE__ */
|
|
781
|
+
children: h && /* @__PURE__ */ K(h, { className: "dc:w-4 dc:h-4" })
|
|
728
782
|
}),
|
|
729
|
-
/* @__PURE__ */
|
|
783
|
+
/* @__PURE__ */ K("button", {
|
|
730
784
|
ref: s,
|
|
731
785
|
onClick: () => o(!0),
|
|
732
786
|
className: "dc:flex-1 dc:min-w-0 dc:text-left",
|
|
733
787
|
title: `${d} ${p} ${m}`,
|
|
734
|
-
children: /* @__PURE__ */
|
|
788
|
+
children: /* @__PURE__ */ q("div", {
|
|
735
789
|
className: "dc:text-sm text-dc-text dc:break-words",
|
|
736
790
|
children: [
|
|
737
|
-
/* @__PURE__ */
|
|
791
|
+
/* @__PURE__ */ K("span", {
|
|
738
792
|
className: "dc:font-medium",
|
|
739
793
|
children: d
|
|
740
794
|
}),
|
|
741
|
-
/* @__PURE__ */
|
|
795
|
+
/* @__PURE__ */ K("span", {
|
|
742
796
|
className: "text-dc-text-muted dc:mx-1",
|
|
743
797
|
children: p
|
|
744
798
|
}),
|
|
745
|
-
/* @__PURE__ */
|
|
799
|
+
/* @__PURE__ */ K("span", {
|
|
746
800
|
className: "text-dc-primary",
|
|
747
801
|
children: m
|
|
748
802
|
})
|
|
749
803
|
]
|
|
750
804
|
})
|
|
751
805
|
}),
|
|
752
|
-
/* @__PURE__ */
|
|
806
|
+
/* @__PURE__ */ K("button", {
|
|
753
807
|
onClick: n,
|
|
754
808
|
className: "dc:p-1 text-dc-text-muted hover:text-dc-danger dc:opacity-100 dc:sm:opacity-0 dc:sm:group-hover:opacity-100 dc:transition-opacity dc:flex-shrink-0 dc:mt-0.5",
|
|
755
809
|
title: i("filter.removeButton.title"),
|
|
756
|
-
children:
|
|
810
|
+
children: Ke && /* @__PURE__ */ K(Ke, { className: "dc:w-4 dc:h-4" })
|
|
757
811
|
})
|
|
758
812
|
]
|
|
759
|
-
}), a && /* @__PURE__ */
|
|
813
|
+
}), a && /* @__PURE__ */ K(Ge, {
|
|
760
814
|
filter: e,
|
|
761
815
|
schema: t,
|
|
762
816
|
onSave: (e) => {
|
|
@@ -766,7 +820,7 @@ function We({ filter: e, schema: t, onRemove: n, onUpdate: r }) {
|
|
|
766
820
|
anchorElement: s.current
|
|
767
821
|
})] });
|
|
768
822
|
}
|
|
769
|
-
function
|
|
823
|
+
function Ze(e, t, n) {
|
|
770
824
|
if (!t?.requiresValues) return "";
|
|
771
825
|
if (e.dateRange) return Array.isArray(e.dateRange) ? `${e.dateRange[0]} to ${e.dateRange[1]}` : e.dateRange;
|
|
772
826
|
let r = e.values || [];
|
|
@@ -774,8 +828,8 @@ function Ge(e, t, n) {
|
|
|
774
828
|
}
|
|
775
829
|
//#endregion
|
|
776
830
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterGroup.tsx
|
|
777
|
-
var
|
|
778
|
-
function
|
|
831
|
+
var Qe = d("add"), $e = d("close");
|
|
832
|
+
function et({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, depth: a = 0, hideRemoveButton: o = !1 }) {
|
|
779
833
|
let { t: s } = z(), [c, l] = G(!1), u = W(null);
|
|
780
834
|
H(() => {
|
|
781
835
|
let e = (e) => {
|
|
@@ -784,7 +838,7 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
784
838
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
785
839
|
}, []);
|
|
786
840
|
let d = V(() => {
|
|
787
|
-
n(
|
|
841
|
+
n(ne(e));
|
|
788
842
|
}, [e, n]), f = V((t, r) => {
|
|
789
843
|
let i = [...e.filters];
|
|
790
844
|
i[t] = r, n({
|
|
@@ -816,18 +870,18 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
816
870
|
}, [i]), g = V((e) => (t = []) => {
|
|
817
871
|
i([e, ...t]);
|
|
818
872
|
}, [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");
|
|
819
|
-
return /* @__PURE__ */
|
|
873
|
+
return /* @__PURE__ */ q("div", {
|
|
820
874
|
className: `dc:border ${_()} dc:rounded-lg bg-dc-surface dc:w-full`,
|
|
821
|
-
children: [/* @__PURE__ */
|
|
875
|
+
children: [/* @__PURE__ */ q("div", {
|
|
822
876
|
className: `dc:flex dc:items-center dc:justify-between dc:px-2 dc:py-1.5 dc:border-b border-dc-border/50 dc:rounded-t-lg ${v()}`,
|
|
823
|
-
children: [/* @__PURE__ */
|
|
877
|
+
children: [/* @__PURE__ */ q("div", {
|
|
824
878
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
825
|
-
children: [/* @__PURE__ */
|
|
879
|
+
children: [/* @__PURE__ */ K("button", {
|
|
826
880
|
onClick: d,
|
|
827
881
|
className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-semibold dc:rounded-sm dc:transition-colors ${e.type === "and" ? "bg-dc-info-bg text-dc-info dc:hover:opacity-80" : "bg-dc-warning-bg text-dc-warning dc:hover:opacity-80"}`,
|
|
828
882
|
title: `Click to switch to ${e.type === "and" ? "OR" : "AND"}`,
|
|
829
883
|
children: e.type.toUpperCase()
|
|
830
|
-
}), /* @__PURE__ */
|
|
884
|
+
}), /* @__PURE__ */ q("span", {
|
|
831
885
|
className: "dc:text-xs text-dc-text-muted",
|
|
832
886
|
children: [
|
|
833
887
|
y,
|
|
@@ -835,61 +889,61 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
835
889
|
b
|
|
836
890
|
]
|
|
837
891
|
})]
|
|
838
|
-
}), /* @__PURE__ */
|
|
892
|
+
}), /* @__PURE__ */ q("div", {
|
|
839
893
|
className: "dc:flex dc:items-center dc:gap-1",
|
|
840
|
-
children: [/* @__PURE__ */
|
|
894
|
+
children: [/* @__PURE__ */ q("div", {
|
|
841
895
|
className: "dc:relative",
|
|
842
896
|
ref: u,
|
|
843
|
-
children: [/* @__PURE__ */
|
|
897
|
+
children: [/* @__PURE__ */ K("button", {
|
|
844
898
|
onClick: () => l(!c),
|
|
845
899
|
className: "dc:p-1 text-dc-text-secondary hover:text-dc-primary hover:bg-dc-surface-hover dc:rounded-sm dc:transition-colors",
|
|
846
900
|
title: "Add condition",
|
|
847
|
-
children: /* @__PURE__ */
|
|
848
|
-
}), c && /* @__PURE__ */
|
|
901
|
+
children: /* @__PURE__ */ K(Qe, { className: "dc:w-4 dc:h-4" })
|
|
902
|
+
}), c && /* @__PURE__ */ q("div", {
|
|
849
903
|
className: "dc:absolute dc:right-0 dc:mt-1 dc:z-40 bg-dc-surface dc:border border-dc-border dc:rounded-sm dc:shadow-lg dc:py-1 dc:min-w-[120px]",
|
|
850
904
|
children: [
|
|
851
|
-
/* @__PURE__ */
|
|
905
|
+
/* @__PURE__ */ K("button", {
|
|
852
906
|
onClick: h,
|
|
853
907
|
className: "dc:w-full dc:text-left dc:px-3 dc:py-1.5 dc:text-xs text-dc-text hover:bg-dc-surface-hover",
|
|
854
908
|
children: s("filter.group.addFilter")
|
|
855
909
|
}),
|
|
856
|
-
/* @__PURE__ */
|
|
910
|
+
/* @__PURE__ */ K("button", {
|
|
857
911
|
onClick: () => m("and"),
|
|
858
912
|
className: "dc:w-full dc:text-left dc:px-3 dc:py-1.5 dc:text-xs text-dc-text hover:bg-dc-surface-hover",
|
|
859
913
|
children: s("filter.group.addAndGroup")
|
|
860
914
|
}),
|
|
861
|
-
/* @__PURE__ */
|
|
915
|
+
/* @__PURE__ */ K("button", {
|
|
862
916
|
onClick: () => m("or"),
|
|
863
917
|
className: "dc:w-full dc:text-left dc:px-3 dc:py-1.5 dc:text-xs text-dc-text hover:bg-dc-surface-hover",
|
|
864
918
|
children: s("filter.group.addOrGroup")
|
|
865
919
|
})
|
|
866
920
|
]
|
|
867
921
|
})]
|
|
868
|
-
}), !o && /* @__PURE__ */
|
|
922
|
+
}), !o && /* @__PURE__ */ K("button", {
|
|
869
923
|
onClick: r,
|
|
870
924
|
className: "dc:p-1 text-dc-text-muted hover:text-dc-danger dc:transition-colors",
|
|
871
925
|
title: s("filter.group.removeGroup"),
|
|
872
|
-
children: /* @__PURE__ */
|
|
926
|
+
children: /* @__PURE__ */ K($e, { className: "dc:w-4 dc:h-4" })
|
|
873
927
|
})]
|
|
874
928
|
})]
|
|
875
|
-
}), /* @__PURE__ */
|
|
929
|
+
}), /* @__PURE__ */ K("div", {
|
|
876
930
|
className: "dc:p-1.5 dc:flex dc:flex-wrap dc:gap-2",
|
|
877
|
-
children: e.filters.length === 0 ? /* @__PURE__ */
|
|
931
|
+
children: e.filters.length === 0 ? /* @__PURE__ */ q("div", {
|
|
878
932
|
className: "dc:text-center dc:py-3",
|
|
879
|
-
children: [/* @__PURE__ */
|
|
933
|
+
children: [/* @__PURE__ */ K("p", {
|
|
880
934
|
className: "dc:text-xs text-dc-text-muted dc:mb-1",
|
|
881
935
|
children: s("filter.group.empty")
|
|
882
|
-
}), /* @__PURE__ */
|
|
936
|
+
}), /* @__PURE__ */ K("button", {
|
|
883
937
|
onClick: () => i([]),
|
|
884
938
|
className: "dc:text-xs text-dc-primary dc:hover:underline",
|
|
885
939
|
children: s("filter.group.addFilterLink")
|
|
886
940
|
})]
|
|
887
|
-
}) : e.filters.map((e, n) =>
|
|
941
|
+
}) : e.filters.map((e, n) => re(e) ? /* @__PURE__ */ K(Xe, {
|
|
888
942
|
filter: e,
|
|
889
943
|
schema: t,
|
|
890
944
|
onUpdate: (e) => f(n, e),
|
|
891
945
|
onRemove: () => p(n)
|
|
892
|
-
}, `filter-${n}`) :
|
|
946
|
+
}, `filter-${n}`) : N(e) ? /* @__PURE__ */ K(et, {
|
|
893
947
|
group: e,
|
|
894
948
|
schema: t,
|
|
895
949
|
onUpdate: (e) => f(n, e),
|
|
@@ -902,9 +956,9 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
902
956
|
}
|
|
903
957
|
//#endregion
|
|
904
958
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterSection.tsx
|
|
905
|
-
var
|
|
906
|
-
function
|
|
907
|
-
let { t: a } = z(), [o, s] = G(!1), [c, l] = G(!1), u = W([]), d =
|
|
959
|
+
var tt = d("add");
|
|
960
|
+
function nt({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dimensionsOnly: i = !1 }) {
|
|
961
|
+
let { t: a } = z(), [o, s] = G(!1), [c, l] = G(!1), u = W([]), d = L(e), f = V((e) => {
|
|
908
962
|
e.preventDefault(), e.stopPropagation(), l(!0);
|
|
909
963
|
}, []), p = V((e) => {
|
|
910
964
|
e.preventDefault(), e.stopPropagation(), l(!1);
|
|
@@ -914,18 +968,18 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
914
968
|
let t = JSON.parse(e.dataTransfer.getData("text/plain"));
|
|
915
969
|
t.field && r && r(t.field);
|
|
916
970
|
} catch {}
|
|
917
|
-
}, [r]), h =
|
|
971
|
+
}, [r]), h = te(e), g = V((t, r, i) => {
|
|
918
972
|
let a = t.type === "time", o = a ? "inDateRange" : "equals", c = {
|
|
919
973
|
member: t.name,
|
|
920
974
|
operator: o,
|
|
921
975
|
values: []
|
|
922
976
|
};
|
|
923
|
-
a && o === "inDateRange" && (c.dateRange =
|
|
977
|
+
a && o === "inDateRange" && (c.dateRange = F("this_month")), n(ie(e, u.current, c)), s(!1), u.current = [];
|
|
924
978
|
}, [e, n]), _ = V((t, r) => {
|
|
925
979
|
let i = [...e];
|
|
926
980
|
i[t] = r, n(i);
|
|
927
981
|
}, [e, n]), v = V((t) => {
|
|
928
|
-
n(
|
|
982
|
+
n(ae(e, t));
|
|
929
983
|
}, [e, n]), y = V(() => {
|
|
930
984
|
n([]);
|
|
931
985
|
}, [n]), b = V(() => {
|
|
@@ -934,12 +988,12 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
934
988
|
u.current = [...e, ...t], s(!0);
|
|
935
989
|
}, []), S = (n, r, i = []) => {
|
|
936
990
|
let a = [...i, r];
|
|
937
|
-
return
|
|
991
|
+
return re(n) ? /* @__PURE__ */ K(Xe, {
|
|
938
992
|
filter: n,
|
|
939
993
|
schema: t,
|
|
940
994
|
onUpdate: (e) => _(r, e),
|
|
941
995
|
onRemove: () => v(r)
|
|
942
|
-
}, `filter-${a.join("-")}`) :
|
|
996
|
+
}, `filter-${a.join("-")}`) : N(n) ? /* @__PURE__ */ K(et, {
|
|
943
997
|
group: n,
|
|
944
998
|
schema: t,
|
|
945
999
|
onUpdate: (e) => _(r, e),
|
|
@@ -948,21 +1002,21 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
948
1002
|
hideRemoveButton: e.length === 1
|
|
949
1003
|
}, `group-${a.join("-")}`) : null;
|
|
950
1004
|
};
|
|
951
|
-
return /* @__PURE__ */
|
|
952
|
-
/* @__PURE__ */
|
|
1005
|
+
return /* @__PURE__ */ q("div", { children: [
|
|
1006
|
+
/* @__PURE__ */ q("button", {
|
|
953
1007
|
onClick: b,
|
|
954
1008
|
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",
|
|
955
1009
|
title: "Add filter",
|
|
956
|
-
children: [/* @__PURE__ */
|
|
1010
|
+
children: [/* @__PURE__ */ q(ge, { children: [a("analysis.sections.filters"), d > 0 && /* @__PURE__ */ q("span", {
|
|
957
1011
|
className: "dc:ml-1.5 dc:text-xs dc:font-normal text-dc-text-muted dc:normal-case dc:tracking-normal",
|
|
958
1012
|
children: [
|
|
959
1013
|
"(",
|
|
960
1014
|
d,
|
|
961
1015
|
")"
|
|
962
1016
|
]
|
|
963
|
-
})] }), /* @__PURE__ */
|
|
1017
|
+
})] }), /* @__PURE__ */ q("div", {
|
|
964
1018
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
965
|
-
children: [d > 0 && /* @__PURE__ */
|
|
1019
|
+
children: [d > 0 && /* @__PURE__ */ K("span", {
|
|
966
1020
|
role: "button",
|
|
967
1021
|
tabIndex: 0,
|
|
968
1022
|
onClick: (e) => {
|
|
@@ -973,23 +1027,23 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
973
1027
|
},
|
|
974
1028
|
className: "dc:text-xs text-dc-text-muted hover:text-dc-error dc:underline dc:cursor-pointer",
|
|
975
1029
|
children: a("filter.section.clearAll")
|
|
976
|
-
}), /* @__PURE__ */
|
|
1030
|
+
}), /* @__PURE__ */ K(tt, { className: "dc:w-5 dc:h-5 text-dc-text-secondary group-hover:text-dc-primary dc:transition-colors" })]
|
|
977
1031
|
})]
|
|
978
1032
|
}),
|
|
979
|
-
/* @__PURE__ */
|
|
1033
|
+
/* @__PURE__ */ K("div", {
|
|
980
1034
|
onDragOver: r ? f : void 0,
|
|
981
1035
|
onDragLeave: r ? p : void 0,
|
|
982
1036
|
onDrop: r ? m : void 0,
|
|
983
1037
|
className: `dc:p-2 dc:-mx-2 dc:rounded-lg dc:border-2 dc:border-dashed dc:transition-all ${c ? "border-dc-primary bg-dc-primary/5" : "border-transparent"}`,
|
|
984
|
-
children: e.length === 0 ? /* @__PURE__ */
|
|
1038
|
+
children: e.length === 0 ? /* @__PURE__ */ K("p", {
|
|
985
1039
|
className: `dc:text-sm ${c ? "text-dc-primary dc:font-medium" : "text-dc-text-muted"}`,
|
|
986
1040
|
children: a(c ? "filter.section.dropHint" : "filter.section.empty")
|
|
987
|
-
}) : /* @__PURE__ */
|
|
1041
|
+
}) : /* @__PURE__ */ K("div", {
|
|
988
1042
|
className: "dc:flex dc:flex-wrap dc:gap-2",
|
|
989
1043
|
children: e.map((e, t) => S(e, t))
|
|
990
1044
|
})
|
|
991
1045
|
}),
|
|
992
|
-
/* @__PURE__ */
|
|
1046
|
+
/* @__PURE__ */ K(E, {
|
|
993
1047
|
isOpen: o,
|
|
994
1048
|
onClose: () => {
|
|
995
1049
|
s(!1), u.current = [];
|
|
@@ -1003,33 +1057,33 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
1003
1057
|
}
|
|
1004
1058
|
//#endregion
|
|
1005
1059
|
//#region src/client/components/AnalysisBuilder/ExplainAIPanel.tsx
|
|
1006
|
-
function
|
|
1060
|
+
function rt(e) {
|
|
1007
1061
|
return typeof e == "string" ? e : typeof e == "object" && e ? JSON.stringify(e) : String(e ?? "");
|
|
1008
1062
|
}
|
|
1009
|
-
var
|
|
1063
|
+
var it = {
|
|
1010
1064
|
good: "bg-dc-success-bg text-dc-success border-dc-success",
|
|
1011
1065
|
warning: "bg-dc-warning-bg text-dc-warning border-dc-warning",
|
|
1012
1066
|
critical: "bg-dc-danger-bg text-dc-error border-dc-error"
|
|
1013
|
-
},
|
|
1067
|
+
}, at = {
|
|
1014
1068
|
critical: "bg-dc-danger-bg text-dc-error",
|
|
1015
1069
|
warning: "bg-dc-warning-bg text-dc-warning",
|
|
1016
1070
|
suggestion: "bg-dc-accent-bg text-dc-accent"
|
|
1017
|
-
},
|
|
1071
|
+
}, ot = {
|
|
1018
1072
|
high: "text-dc-error",
|
|
1019
1073
|
medium: "text-dc-warning",
|
|
1020
1074
|
low: "text-dc-text-muted"
|
|
1021
1075
|
};
|
|
1022
|
-
function
|
|
1076
|
+
function st({ assessment: e, reason: t }) {
|
|
1023
1077
|
let { t: n } = z(), r = {
|
|
1024
1078
|
good: n("explainAI.assessment.good"),
|
|
1025
1079
|
warning: n("explainAI.assessment.warning"),
|
|
1026
1080
|
critical: n("explainAI.assessment.critical")
|
|
1027
1081
|
};
|
|
1028
|
-
return /* @__PURE__ */
|
|
1029
|
-
className: `dc:p-4 dc:rounded-lg dc:border ${
|
|
1030
|
-
children: [/* @__PURE__ */
|
|
1082
|
+
return /* @__PURE__ */ q("div", {
|
|
1083
|
+
className: `dc:p-4 dc:rounded-lg dc:border ${it[e]}`,
|
|
1084
|
+
children: [/* @__PURE__ */ K("div", {
|
|
1031
1085
|
className: "dc:flex dc:items-center dc:gap-2 dc:mb-1",
|
|
1032
|
-
children: /* @__PURE__ */
|
|
1086
|
+
children: /* @__PURE__ */ q("span", {
|
|
1033
1087
|
className: "dc:font-semibold dc:uppercase dc:text-base",
|
|
1034
1088
|
children: [
|
|
1035
1089
|
e === "good" && "✓ ",
|
|
@@ -1038,33 +1092,33 @@ function tt({ assessment: e, reason: t }) {
|
|
|
1038
1092
|
r[e]
|
|
1039
1093
|
]
|
|
1040
1094
|
})
|
|
1041
|
-
}), /* @__PURE__ */
|
|
1095
|
+
}), /* @__PURE__ */ K("p", {
|
|
1042
1096
|
className: "dc:text-sm",
|
|
1043
|
-
children:
|
|
1097
|
+
children: rt(t)
|
|
1044
1098
|
})]
|
|
1045
1099
|
});
|
|
1046
1100
|
}
|
|
1047
|
-
function
|
|
1048
|
-
return /* @__PURE__ */
|
|
1101
|
+
function ct({ issue: e }) {
|
|
1102
|
+
return /* @__PURE__ */ q("div", {
|
|
1049
1103
|
className: "dc:flex dc:items-start dc:gap-2 dc:py-2",
|
|
1050
|
-
children: [/* @__PURE__ */
|
|
1051
|
-
className: `dc:text-sm ${
|
|
1104
|
+
children: [/* @__PURE__ */ q("span", {
|
|
1105
|
+
className: `dc:text-sm ${ot[e.severity]}`,
|
|
1052
1106
|
children: [
|
|
1053
1107
|
e.severity === "high" && "●",
|
|
1054
1108
|
e.severity === "medium" && "○",
|
|
1055
1109
|
e.severity === "low" && "○"
|
|
1056
1110
|
]
|
|
1057
|
-
}), /* @__PURE__ */
|
|
1111
|
+
}), /* @__PURE__ */ K("span", {
|
|
1058
1112
|
className: "dc:text-sm text-dc-text-secondary",
|
|
1059
|
-
children:
|
|
1113
|
+
children: rt(e.description)
|
|
1060
1114
|
})]
|
|
1061
1115
|
});
|
|
1062
1116
|
}
|
|
1063
|
-
function
|
|
1117
|
+
function lt({ text: e }) {
|
|
1064
1118
|
let { t } = z(), [n, r] = B.useState(!1), i = B.useRef(null);
|
|
1065
1119
|
return B.useEffect(() => () => {
|
|
1066
1120
|
i.current && clearTimeout(i.current);
|
|
1067
|
-
}, []), /* @__PURE__ */
|
|
1121
|
+
}, []), /* @__PURE__ */ K("button", {
|
|
1068
1122
|
onClick: async () => {
|
|
1069
1123
|
try {
|
|
1070
1124
|
await navigator.clipboard.writeText(e), r(!0), i.current && clearTimeout(i.current), i.current = setTimeout(() => r(!1), 2e3);
|
|
@@ -1077,66 +1131,66 @@ function rt({ text: e }) {
|
|
|
1077
1131
|
children: t(n ? "explainAI.copied" : "explainAI.copy")
|
|
1078
1132
|
});
|
|
1079
1133
|
}
|
|
1080
|
-
function
|
|
1134
|
+
function ut({ rec: e }) {
|
|
1081
1135
|
let { t } = z(), n = {
|
|
1082
1136
|
index: t("explainAI.type.index"),
|
|
1083
1137
|
table: t("explainAI.type.table"),
|
|
1084
1138
|
cube: t("explainAI.type.cube"),
|
|
1085
1139
|
general: t("explainAI.type.general")
|
|
1086
1140
|
};
|
|
1087
|
-
return /* @__PURE__ */
|
|
1141
|
+
return /* @__PURE__ */ q("div", {
|
|
1088
1142
|
className: "dc:p-4 dc:border border-dc-border dc:rounded-lg bg-dc-surface",
|
|
1089
1143
|
children: [
|
|
1090
|
-
/* @__PURE__ */
|
|
1144
|
+
/* @__PURE__ */ q("div", {
|
|
1091
1145
|
className: "dc:flex dc:items-center dc:gap-2 dc:mb-2",
|
|
1092
|
-
children: [/* @__PURE__ */
|
|
1093
|
-
className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-medium dc:rounded-sm ${
|
|
1146
|
+
children: [/* @__PURE__ */ K("span", {
|
|
1147
|
+
className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-medium dc:rounded-sm ${at[e.severity]}`,
|
|
1094
1148
|
children: n[e.type]
|
|
1095
|
-
}), /* @__PURE__ */
|
|
1149
|
+
}), /* @__PURE__ */ K("h5", {
|
|
1096
1150
|
className: "dc:font-medium text-dc-text",
|
|
1097
|
-
children:
|
|
1151
|
+
children: rt(e.title)
|
|
1098
1152
|
})]
|
|
1099
1153
|
}),
|
|
1100
|
-
/* @__PURE__ */
|
|
1154
|
+
/* @__PURE__ */ K("p", {
|
|
1101
1155
|
className: "dc:text-sm text-dc-text-secondary dc:mb-3",
|
|
1102
|
-
children:
|
|
1156
|
+
children: rt(e.description)
|
|
1103
1157
|
}),
|
|
1104
|
-
e.sql && /* @__PURE__ */
|
|
1158
|
+
e.sql && /* @__PURE__ */ K("div", {
|
|
1105
1159
|
className: "dc:mt-2",
|
|
1106
|
-
children: /* @__PURE__ */
|
|
1160
|
+
children: /* @__PURE__ */ K(m, {
|
|
1107
1161
|
code: e.sql,
|
|
1108
1162
|
language: "sql",
|
|
1109
|
-
headerRight: /* @__PURE__ */
|
|
1163
|
+
headerRight: /* @__PURE__ */ K(lt, { text: e.sql })
|
|
1110
1164
|
})
|
|
1111
1165
|
}),
|
|
1112
|
-
e.cubeCode && /* @__PURE__ */
|
|
1166
|
+
e.cubeCode && /* @__PURE__ */ q("div", {
|
|
1113
1167
|
className: "dc:mt-2",
|
|
1114
|
-
children: [e.cubeName && /* @__PURE__ */
|
|
1168
|
+
children: [e.cubeName && /* @__PURE__ */ K("p", {
|
|
1115
1169
|
className: "dc:text-xs text-dc-text-muted dc:mb-1",
|
|
1116
1170
|
children: t("explainAI.addToCube", { cubeName: e.cubeName })
|
|
1117
|
-
}), /* @__PURE__ */
|
|
1171
|
+
}), /* @__PURE__ */ q("div", {
|
|
1118
1172
|
className: "dc:relative",
|
|
1119
|
-
children: [/* @__PURE__ */
|
|
1173
|
+
children: [/* @__PURE__ */ K("pre", {
|
|
1120
1174
|
className: "dc:p-3 dc:text-xs bg-dc-surface-secondary dc:rounded-sm dc:overflow-x-auto dc:font-mono text-dc-text",
|
|
1121
1175
|
children: e.cubeCode
|
|
1122
|
-
}), /* @__PURE__ */
|
|
1176
|
+
}), /* @__PURE__ */ K("div", {
|
|
1123
1177
|
className: "dc:absolute dc:top-1 dc:right-1",
|
|
1124
|
-
children: /* @__PURE__ */
|
|
1178
|
+
children: /* @__PURE__ */ K(lt, { text: e.cubeCode })
|
|
1125
1179
|
})]
|
|
1126
1180
|
})]
|
|
1127
1181
|
}),
|
|
1128
|
-
e.estimatedImpact && /* @__PURE__ */
|
|
1182
|
+
e.estimatedImpact && /* @__PURE__ */ q("p", {
|
|
1129
1183
|
className: "dc:text-xs text-dc-text-muted dc:mt-2",
|
|
1130
1184
|
children: [
|
|
1131
|
-
/* @__PURE__ */
|
|
1185
|
+
/* @__PURE__ */ K("strong", { children: t("explainAI.expectedImpact") }),
|
|
1132
1186
|
" ",
|
|
1133
|
-
|
|
1187
|
+
rt(e.estimatedImpact)
|
|
1134
1188
|
]
|
|
1135
1189
|
})
|
|
1136
1190
|
]
|
|
1137
1191
|
});
|
|
1138
1192
|
}
|
|
1139
|
-
function
|
|
1193
|
+
function dt({ analysis: e, onClose: t, onClear: n }) {
|
|
1140
1194
|
let { t: r } = z(), i = t || n;
|
|
1141
1195
|
return B.useEffect(() => {
|
|
1142
1196
|
let e = (e) => {
|
|
@@ -1145,36 +1199,36 @@ function at({ analysis: e, onClose: t, onClear: n }) {
|
|
|
1145
1199
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
1146
1200
|
}, [i]), B.useEffect(() => (document.body.style.overflow = "hidden", () => {
|
|
1147
1201
|
document.body.style.overflow = "";
|
|
1148
|
-
}), []), /* @__PURE__ */
|
|
1202
|
+
}), []), /* @__PURE__ */ q("div", {
|
|
1149
1203
|
className: "dc:fixed dc:inset-0 dc:z-50 dc:flex dc:items-center dc:justify-center dc:p-4 bg-black/50",
|
|
1150
|
-
children: [/* @__PURE__ */
|
|
1204
|
+
children: [/* @__PURE__ */ K("div", {
|
|
1151
1205
|
className: "dc:absolute dc:inset-0",
|
|
1152
1206
|
onClick: i,
|
|
1153
1207
|
"aria-hidden": "true"
|
|
1154
|
-
}), /* @__PURE__ */
|
|
1208
|
+
}), /* @__PURE__ */ q("div", {
|
|
1155
1209
|
className: "dc:relative dc:w-full dc:max-w-4xl dc:max-h-[90vh] bg-dc-surface dc:rounded-lg dc:shadow-xl dc:flex dc:flex-col",
|
|
1156
1210
|
children: [
|
|
1157
|
-
/* @__PURE__ */
|
|
1211
|
+
/* @__PURE__ */ q("div", {
|
|
1158
1212
|
className: "dc:flex dc:items-center dc:justify-between dc:px-6 dc:py-4 dc:border-b border-dc-border dc:flex-shrink-0",
|
|
1159
|
-
children: [/* @__PURE__ */
|
|
1213
|
+
children: [/* @__PURE__ */ q("div", {
|
|
1160
1214
|
className: "dc:flex dc:items-center dc:gap-3",
|
|
1161
|
-
children: [/* @__PURE__ */
|
|
1215
|
+
children: [/* @__PURE__ */ K("span", {
|
|
1162
1216
|
className: "dc:text-lg",
|
|
1163
1217
|
children: "✨"
|
|
1164
|
-
}), /* @__PURE__ */
|
|
1218
|
+
}), /* @__PURE__ */ K("h3", {
|
|
1165
1219
|
className: "dc:text-lg dc:font-semibold text-dc-text",
|
|
1166
1220
|
children: r("explainAI.title")
|
|
1167
1221
|
})]
|
|
1168
|
-
}), /* @__PURE__ */
|
|
1222
|
+
}), /* @__PURE__ */ K("button", {
|
|
1169
1223
|
onClick: i,
|
|
1170
1224
|
className: "dc:p-2 dc:rounded-lg hover:bg-dc-surface-hover text-dc-text-secondary hover:text-dc-text dc:transition-colors",
|
|
1171
1225
|
"aria-label": "Close",
|
|
1172
|
-
children: /* @__PURE__ */
|
|
1226
|
+
children: /* @__PURE__ */ K("svg", {
|
|
1173
1227
|
className: "dc:w-5 dc:h-5",
|
|
1174
1228
|
fill: "none",
|
|
1175
1229
|
stroke: "currentColor",
|
|
1176
1230
|
viewBox: "0 0 24 24",
|
|
1177
|
-
children: /* @__PURE__ */
|
|
1231
|
+
children: /* @__PURE__ */ K("path", {
|
|
1178
1232
|
strokeLinecap: "round",
|
|
1179
1233
|
strokeLinejoin: "round",
|
|
1180
1234
|
strokeWidth: 2,
|
|
@@ -1183,50 +1237,50 @@ function at({ analysis: e, onClose: t, onClear: n }) {
|
|
|
1183
1237
|
})
|
|
1184
1238
|
})]
|
|
1185
1239
|
}),
|
|
1186
|
-
/* @__PURE__ */
|
|
1240
|
+
/* @__PURE__ */ q("div", {
|
|
1187
1241
|
className: "dc:flex-1 dc:overflow-y-auto dc:px-6 dc:py-4 dc:space-y-6",
|
|
1188
1242
|
children: [
|
|
1189
|
-
/* @__PURE__ */
|
|
1243
|
+
/* @__PURE__ */ K(st, {
|
|
1190
1244
|
assessment: e.assessment,
|
|
1191
1245
|
reason: e.assessmentReason
|
|
1192
1246
|
}),
|
|
1193
|
-
/* @__PURE__ */
|
|
1247
|
+
/* @__PURE__ */ q("div", { children: [/* @__PURE__ */ K("h4", {
|
|
1194
1248
|
className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-2",
|
|
1195
1249
|
children: r("explainAI.summary")
|
|
1196
|
-
}), /* @__PURE__ */
|
|
1250
|
+
}), /* @__PURE__ */ K("p", {
|
|
1197
1251
|
className: "text-dc-text",
|
|
1198
|
-
children:
|
|
1252
|
+
children: rt(e.summary)
|
|
1199
1253
|
})] }),
|
|
1200
|
-
e.queryUnderstanding && /* @__PURE__ */
|
|
1254
|
+
e.queryUnderstanding && /* @__PURE__ */ q("div", { children: [/* @__PURE__ */ K("h4", {
|
|
1201
1255
|
className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-2",
|
|
1202
1256
|
children: r("explainAI.queryAnalysis")
|
|
1203
|
-
}), /* @__PURE__ */
|
|
1257
|
+
}), /* @__PURE__ */ K("p", {
|
|
1204
1258
|
className: "text-dc-text-secondary",
|
|
1205
|
-
children:
|
|
1259
|
+
children: rt(e.queryUnderstanding)
|
|
1206
1260
|
})] }),
|
|
1207
|
-
e.issues && e.issues.length > 0 && /* @__PURE__ */
|
|
1261
|
+
e.issues && e.issues.length > 0 && /* @__PURE__ */ q("div", { children: [/* @__PURE__ */ K("h4", {
|
|
1208
1262
|
className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-2",
|
|
1209
1263
|
children: r("explainAI.issuesFound", { count: e.issues.length })
|
|
1210
|
-
}), /* @__PURE__ */
|
|
1264
|
+
}), /* @__PURE__ */ K("div", {
|
|
1211
1265
|
className: "dc:space-y-1 bg-dc-surface-secondary dc:rounded-lg dc:p-3",
|
|
1212
|
-
children: e.issues.map((e, t) => /* @__PURE__ */
|
|
1266
|
+
children: e.issues.map((e, t) => /* @__PURE__ */ K(ct, { issue: e }, t))
|
|
1213
1267
|
})] }),
|
|
1214
|
-
e.recommendations && e.recommendations.length > 0 && /* @__PURE__ */
|
|
1268
|
+
e.recommendations && e.recommendations.length > 0 && /* @__PURE__ */ q("div", { children: [/* @__PURE__ */ K("h4", {
|
|
1215
1269
|
className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-3",
|
|
1216
1270
|
children: r("explainAI.recommendations", { count: e.recommendations.length })
|
|
1217
|
-
}), /* @__PURE__ */
|
|
1271
|
+
}), /* @__PURE__ */ K("div", {
|
|
1218
1272
|
className: "dc:space-y-4",
|
|
1219
|
-
children: e.recommendations.map((e, t) => /* @__PURE__ */
|
|
1273
|
+
children: e.recommendations.map((e, t) => /* @__PURE__ */ K(ut, { rec: e }, t))
|
|
1220
1274
|
})] }),
|
|
1221
|
-
(!e.recommendations || e.recommendations.length === 0) && /* @__PURE__ */
|
|
1275
|
+
(!e.recommendations || e.recommendations.length === 0) && /* @__PURE__ */ K("div", {
|
|
1222
1276
|
className: "text-dc-text-muted dc:italic dc:p-4 bg-dc-surface-secondary dc:rounded-lg",
|
|
1223
1277
|
children: r("explainAI.noRecommendations")
|
|
1224
1278
|
})
|
|
1225
1279
|
]
|
|
1226
1280
|
}),
|
|
1227
|
-
/* @__PURE__ */
|
|
1281
|
+
/* @__PURE__ */ q("div", {
|
|
1228
1282
|
className: "dc:flex dc:items-center dc:justify-between dc:px-6 dc:py-3 dc:border-t border-dc-border dc:flex-shrink-0 bg-dc-surface-secondary",
|
|
1229
|
-
children: [e._meta && /* @__PURE__ */
|
|
1283
|
+
children: [e._meta && /* @__PURE__ */ q("div", {
|
|
1230
1284
|
className: "dc:text-xs text-dc-text-muted",
|
|
1231
1285
|
children: [
|
|
1232
1286
|
r("explainAI.modelLabel"),
|
|
@@ -1234,7 +1288,7 @@ function at({ analysis: e, onClose: t, onClear: n }) {
|
|
|
1234
1288
|
e._meta.model,
|
|
1235
1289
|
e._meta.usingUserKey && ` ${r("explainAI.usingUserKey")}`
|
|
1236
1290
|
]
|
|
1237
|
-
}), /* @__PURE__ */
|
|
1291
|
+
}), /* @__PURE__ */ K("button", {
|
|
1238
1292
|
onClick: i,
|
|
1239
1293
|
className: "dc:px-4 dc:py-2 dc:text-sm dc:font-medium dc:rounded-lg bg-dc-primary text-white hover:bg-dc-primary-hover dc:transition-colors",
|
|
1240
1294
|
children: r("common.actions.close")
|
|
@@ -1246,31 +1300,31 @@ function at({ analysis: e, onClose: t, onClear: n }) {
|
|
|
1246
1300
|
}
|
|
1247
1301
|
//#endregion
|
|
1248
1302
|
//#region src/client/shared/chartConfigBuilders.ts
|
|
1249
|
-
var
|
|
1250
|
-
function
|
|
1303
|
+
var ft = (e) => e.map((e) => e.field), pt = (e) => e.length > 0 ? [e[0].field] : [];
|
|
1304
|
+
function mt(e) {
|
|
1251
1305
|
let { metrics: t, timeDimension: n, dimension: r, dimensions: i } = e;
|
|
1252
1306
|
return {
|
|
1253
1307
|
xAxis: n ? [n.field] : r ? [r.field] : [],
|
|
1254
|
-
yAxis:
|
|
1308
|
+
yAxis: ft(t),
|
|
1255
1309
|
series: i.length > 1 ? [i[1].field] : r && n ? [r.field] : []
|
|
1256
1310
|
};
|
|
1257
1311
|
}
|
|
1258
|
-
function
|
|
1312
|
+
function ht(e) {
|
|
1259
1313
|
let { metrics: t, timeDimension: n, dimension: r, dimensions: i } = e;
|
|
1260
1314
|
return {
|
|
1261
1315
|
xAxis: r ? [r.field] : n ? [n.field] : [],
|
|
1262
|
-
yAxis:
|
|
1316
|
+
yAxis: ft(t),
|
|
1263
1317
|
series: i.length > 1 ? [i[1].field] : n && r ? [n.field] : []
|
|
1264
1318
|
};
|
|
1265
1319
|
}
|
|
1266
|
-
function
|
|
1320
|
+
function gt(e) {
|
|
1267
1321
|
let { metrics: t, dimension: n } = e;
|
|
1268
1322
|
return {
|
|
1269
1323
|
xAxis: n ? [n.field] : [],
|
|
1270
|
-
yAxis:
|
|
1324
|
+
yAxis: pt(t)
|
|
1271
1325
|
};
|
|
1272
1326
|
}
|
|
1273
|
-
function
|
|
1327
|
+
function _t(e) {
|
|
1274
1328
|
let { metrics: t, breakdowns: n, dimension: r, dimensions: i } = e;
|
|
1275
1329
|
return t.length >= 2 ? {
|
|
1276
1330
|
xAxis: [t[0].field],
|
|
@@ -1278,11 +1332,11 @@ function dt(e) {
|
|
|
1278
1332
|
series: r ? [r.field] : []
|
|
1279
1333
|
} : {
|
|
1280
1334
|
xAxis: n.length > 0 ? [n[0].field] : [],
|
|
1281
|
-
yAxis:
|
|
1335
|
+
yAxis: pt(t),
|
|
1282
1336
|
series: i.length > 1 ? [i[1].field] : []
|
|
1283
1337
|
};
|
|
1284
1338
|
}
|
|
1285
|
-
function
|
|
1339
|
+
function vt(e) {
|
|
1286
1340
|
let { metrics: t, timeDimension: n, dimension: r } = e;
|
|
1287
1341
|
return {
|
|
1288
1342
|
xAxis: t.length > 0 ? [t[0].field] : [],
|
|
@@ -1291,216 +1345,216 @@ function ft(e) {
|
|
|
1291
1345
|
series: r ? [r.field] : n ? [n.field] : []
|
|
1292
1346
|
};
|
|
1293
1347
|
}
|
|
1294
|
-
function
|
|
1348
|
+
function yt(e) {
|
|
1295
1349
|
let { metrics: t, dimension: n } = e;
|
|
1296
1350
|
return {
|
|
1297
1351
|
xAxis: n ? [n.field] : [],
|
|
1298
|
-
yAxis:
|
|
1352
|
+
yAxis: pt(t)
|
|
1299
1353
|
};
|
|
1300
1354
|
}
|
|
1301
|
-
function
|
|
1355
|
+
function bt(e) {
|
|
1302
1356
|
let { metrics: t, timeDimension: n } = e;
|
|
1303
1357
|
return {
|
|
1304
1358
|
dateField: n ? [n.field] : [],
|
|
1305
|
-
valueField:
|
|
1359
|
+
valueField: pt(t)
|
|
1306
1360
|
};
|
|
1307
1361
|
}
|
|
1308
|
-
function
|
|
1309
|
-
return { yAxis:
|
|
1362
|
+
function xt(e) {
|
|
1363
|
+
return { yAxis: pt(e.metrics) };
|
|
1310
1364
|
}
|
|
1311
|
-
function
|
|
1365
|
+
function St(e) {
|
|
1312
1366
|
let { metrics: t, breakdowns: n } = e;
|
|
1313
1367
|
return { xAxis: [...n.map((e) => e.field), ...t.map((e) => e.field)] };
|
|
1314
1368
|
}
|
|
1315
|
-
function
|
|
1369
|
+
function Ct(e) {
|
|
1316
1370
|
let { metrics: t, breakdowns: n } = e;
|
|
1317
1371
|
return { columns: [...n.map((e) => e.field), ...t.map((e) => e.field)] };
|
|
1318
1372
|
}
|
|
1319
|
-
function
|
|
1373
|
+
function wt() {
|
|
1320
1374
|
return {};
|
|
1321
1375
|
}
|
|
1322
|
-
function
|
|
1376
|
+
function Tt(e) {
|
|
1323
1377
|
let { metrics: t, breakdowns: n } = e;
|
|
1324
1378
|
return {
|
|
1325
1379
|
xAxis: n.length > 0 ? [n[0].field] : [],
|
|
1326
|
-
yAxis:
|
|
1380
|
+
yAxis: ft(t)
|
|
1327
1381
|
};
|
|
1328
1382
|
}
|
|
1329
|
-
var
|
|
1330
|
-
line:
|
|
1331
|
-
area:
|
|
1332
|
-
bar:
|
|
1333
|
-
pie:
|
|
1334
|
-
scatter:
|
|
1335
|
-
bubble:
|
|
1336
|
-
radar:
|
|
1337
|
-
radialBar:
|
|
1338
|
-
treemap:
|
|
1339
|
-
proportionBar:
|
|
1340
|
-
activityGrid:
|
|
1341
|
-
kpiNumber:
|
|
1342
|
-
kpiDelta:
|
|
1343
|
-
kpiText:
|
|
1344
|
-
table:
|
|
1345
|
-
recordsTable:
|
|
1346
|
-
markdown:
|
|
1383
|
+
var Et = {
|
|
1384
|
+
line: mt,
|
|
1385
|
+
area: mt,
|
|
1386
|
+
bar: ht,
|
|
1387
|
+
pie: gt,
|
|
1388
|
+
scatter: _t,
|
|
1389
|
+
bubble: vt,
|
|
1390
|
+
radar: yt,
|
|
1391
|
+
radialBar: yt,
|
|
1392
|
+
treemap: yt,
|
|
1393
|
+
proportionBar: gt,
|
|
1394
|
+
activityGrid: bt,
|
|
1395
|
+
kpiNumber: xt,
|
|
1396
|
+
kpiDelta: xt,
|
|
1397
|
+
kpiText: xt,
|
|
1398
|
+
table: St,
|
|
1399
|
+
recordsTable: Ct,
|
|
1400
|
+
markdown: wt
|
|
1347
1401
|
};
|
|
1348
|
-
function
|
|
1349
|
-
return
|
|
1402
|
+
function Dt(e) {
|
|
1403
|
+
return Et[e] || Tt;
|
|
1350
1404
|
}
|
|
1351
1405
|
//#endregion
|
|
1352
1406
|
//#region src/client/shared/chartDefaults.ts
|
|
1353
|
-
function
|
|
1407
|
+
function Ot(e) {
|
|
1354
1408
|
return e.isTimeDimension;
|
|
1355
1409
|
}
|
|
1356
|
-
function
|
|
1357
|
-
return e.find(
|
|
1410
|
+
function kt(e) {
|
|
1411
|
+
return e.find(Ot);
|
|
1358
1412
|
}
|
|
1359
|
-
function
|
|
1413
|
+
function At(e) {
|
|
1360
1414
|
return e.find((e) => !e.isTimeDimension);
|
|
1361
1415
|
}
|
|
1362
|
-
function
|
|
1416
|
+
function jt(e) {
|
|
1363
1417
|
return e.filter((e) => !e.isTimeDimension);
|
|
1364
1418
|
}
|
|
1365
|
-
function
|
|
1366
|
-
return e.filter(
|
|
1419
|
+
function Mt(e) {
|
|
1420
|
+
return e.filter(Ot);
|
|
1367
1421
|
}
|
|
1368
|
-
function
|
|
1422
|
+
function Nt(e, t) {
|
|
1369
1423
|
return {
|
|
1370
1424
|
measureCount: e.length,
|
|
1371
1425
|
dimensionCount: t.length,
|
|
1372
|
-
timeDimensionCount:
|
|
1426
|
+
timeDimensionCount: Mt(t).length
|
|
1373
1427
|
};
|
|
1374
1428
|
}
|
|
1375
|
-
function
|
|
1429
|
+
function Pt(e, t, n) {
|
|
1376
1430
|
let r = u[e];
|
|
1377
|
-
return !r || !r.isAvailable ? { available: !0 } : r.isAvailable(
|
|
1431
|
+
return !r || !r.isAvailable ? { available: !0 } : r.isAvailable(Nt(t, n));
|
|
1378
1432
|
}
|
|
1379
|
-
function
|
|
1433
|
+
function Ft(e, t) {
|
|
1380
1434
|
let n = Object.keys(u), r = {};
|
|
1381
|
-
for (let i of n) r[i] =
|
|
1435
|
+
for (let i of n) r[i] = Pt(i, e, t);
|
|
1382
1436
|
return r;
|
|
1383
1437
|
}
|
|
1384
|
-
function
|
|
1385
|
-
if (
|
|
1386
|
-
let r =
|
|
1438
|
+
function It(e, t, n) {
|
|
1439
|
+
if (Pt(n, e, t).available || e.length === 0 && t.length === 0) return n;
|
|
1440
|
+
let r = Mt(t).length > 0, i = jt(t).length > 0, a = e.length > 0;
|
|
1387
1441
|
return r && a ? "line" : i && a ? "bar" : a && !i && !r ? "kpiNumber" : "table";
|
|
1388
1442
|
}
|
|
1389
|
-
function
|
|
1390
|
-
let r =
|
|
1443
|
+
function Lt(e, t, n) {
|
|
1444
|
+
let r = It(e, t, n);
|
|
1391
1445
|
return {
|
|
1392
1446
|
chartType: r,
|
|
1393
|
-
chartConfig:
|
|
1447
|
+
chartConfig: Rt(r, e, t)
|
|
1394
1448
|
};
|
|
1395
1449
|
}
|
|
1396
|
-
function
|
|
1397
|
-
return
|
|
1450
|
+
function Rt(e, t, n) {
|
|
1451
|
+
return Dt(e)({
|
|
1398
1452
|
metrics: t,
|
|
1399
1453
|
breakdowns: n,
|
|
1400
|
-
timeDimension:
|
|
1401
|
-
dimension:
|
|
1402
|
-
dimensions:
|
|
1454
|
+
timeDimension: kt(n),
|
|
1455
|
+
dimension: At(n),
|
|
1456
|
+
dimensions: jt(n)
|
|
1403
1457
|
});
|
|
1404
1458
|
}
|
|
1405
|
-
function
|
|
1406
|
-
if (r &&
|
|
1407
|
-
let i =
|
|
1459
|
+
function zt(e, t, n, r) {
|
|
1460
|
+
if (r && Pt(n, e, t).available) return null;
|
|
1461
|
+
let i = It(e, t, n);
|
|
1408
1462
|
return i === n ? null : i;
|
|
1409
1463
|
}
|
|
1410
1464
|
//#endregion
|
|
1411
1465
|
//#region src/client/components/AnalysisBuilder/ExecutionPlanPanelParts.tsx
|
|
1412
|
-
function
|
|
1413
|
-
return /* @__PURE__ */
|
|
1466
|
+
function Bt({ title: e, height: t, className: n, children: r }) {
|
|
1467
|
+
return /* @__PURE__ */ q(be, { children: [/* @__PURE__ */ K("h4", {
|
|
1414
1468
|
className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2",
|
|
1415
1469
|
children: e
|
|
1416
|
-
}), /* @__PURE__ */
|
|
1470
|
+
}), /* @__PURE__ */ K("div", {
|
|
1417
1471
|
className: n,
|
|
1418
1472
|
style: { height: t },
|
|
1419
1473
|
children: r
|
|
1420
1474
|
})] });
|
|
1421
1475
|
}
|
|
1422
|
-
function
|
|
1476
|
+
function Vt({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSql: i, title: a, height: o, headerRight: s }) {
|
|
1423
1477
|
let { t: c } = z();
|
|
1424
|
-
return t ? /* @__PURE__ */
|
|
1478
|
+
return t ? /* @__PURE__ */ K(Bt, {
|
|
1425
1479
|
title: a,
|
|
1426
1480
|
height: o,
|
|
1427
1481
|
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
|
|
1428
1482
|
children: c("results.debug.loadingSql")
|
|
1429
|
-
}) : n ? /* @__PURE__ */
|
|
1483
|
+
}) : n ? /* @__PURE__ */ K(Bt, {
|
|
1430
1484
|
title: a,
|
|
1431
1485
|
height: o,
|
|
1432
1486
|
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
|
|
1433
1487
|
children: n.message
|
|
1434
|
-
}) : e ? /* @__PURE__ */
|
|
1488
|
+
}) : e ? /* @__PURE__ */ K(m, {
|
|
1435
1489
|
code: i,
|
|
1436
1490
|
language: "sql",
|
|
1437
1491
|
title: a,
|
|
1438
1492
|
height: o,
|
|
1439
1493
|
headerRight: s
|
|
1440
|
-
}) : /* @__PURE__ */
|
|
1494
|
+
}) : /* @__PURE__ */ K(Bt, {
|
|
1441
1495
|
title: a,
|
|
1442
1496
|
height: o,
|
|
1443
1497
|
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm",
|
|
1444
1498
|
children: r
|
|
1445
1499
|
});
|
|
1446
1500
|
}
|
|
1447
|
-
function
|
|
1501
|
+
function Ht({ summary: e }) {
|
|
1448
1502
|
let { t } = z();
|
|
1449
|
-
return /* @__PURE__ */
|
|
1503
|
+
return /* @__PURE__ */ q("div", {
|
|
1450
1504
|
className: "dc:flex dc:flex-wrap dc:items-center dc:gap-2",
|
|
1451
1505
|
children: [
|
|
1452
|
-
/* @__PURE__ */
|
|
1506
|
+
/* @__PURE__ */ K("span", {
|
|
1453
1507
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-accent text-white dc:rounded-sm",
|
|
1454
1508
|
children: e.database.toUpperCase()
|
|
1455
1509
|
}),
|
|
1456
|
-
e.hasSequentialScans && /* @__PURE__ */
|
|
1510
|
+
e.hasSequentialScans && /* @__PURE__ */ K("span", {
|
|
1457
1511
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-warning-bg text-dc-warning dc:border border-dc-warning dc:rounded-sm",
|
|
1458
1512
|
children: t("debug.sequentialScans")
|
|
1459
1513
|
}),
|
|
1460
|
-
e.usedIndexes.length > 0 && /* @__PURE__ */
|
|
1514
|
+
e.usedIndexes.length > 0 && /* @__PURE__ */ K("span", {
|
|
1461
1515
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-success-bg text-dc-success dc:border border-dc-success dc:rounded-sm",
|
|
1462
1516
|
children: t(e.usedIndexes.length === 1 ? "debug.indexesUsed" : "debug.indexesUsedPlural", { count: e.usedIndexes.length })
|
|
1463
1517
|
}),
|
|
1464
|
-
e.executionTime !== void 0 && /* @__PURE__ */
|
|
1518
|
+
e.executionTime !== void 0 && /* @__PURE__ */ K("span", {
|
|
1465
1519
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded-sm",
|
|
1466
1520
|
children: t("debug.executionTime", { time: e.executionTime.toFixed(2) })
|
|
1467
1521
|
}),
|
|
1468
|
-
e.planningTime !== void 0 && /* @__PURE__ */
|
|
1522
|
+
e.planningTime !== void 0 && /* @__PURE__ */ K("span", {
|
|
1469
1523
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded-sm",
|
|
1470
1524
|
children: t("debug.planningTime", { time: e.planningTime.toFixed(2) })
|
|
1471
1525
|
}),
|
|
1472
|
-
e.totalCost !== void 0 && /* @__PURE__ */
|
|
1526
|
+
e.totalCost !== void 0 && /* @__PURE__ */ K("span", {
|
|
1473
1527
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-surface-secondary text-dc-text-secondary dc:border border-dc-border dc:rounded-sm",
|
|
1474
1528
|
children: t("debug.cost", { cost: e.totalCost.toFixed(2) })
|
|
1475
1529
|
})
|
|
1476
1530
|
]
|
|
1477
1531
|
});
|
|
1478
1532
|
}
|
|
1479
|
-
function
|
|
1533
|
+
function Ut({ explainLoading: e, explainError: t, explainResult: n, useAnalyze: r, aiButton: i }) {
|
|
1480
1534
|
let { t: a } = z();
|
|
1481
|
-
return e ? /* @__PURE__ */
|
|
1535
|
+
return e ? /* @__PURE__ */ K("div", {
|
|
1482
1536
|
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
|
|
1483
1537
|
children: a(r ? "debug.explainRunningAnalyze" : "debug.explainRunningBasic")
|
|
1484
|
-
}) : t ? /* @__PURE__ */
|
|
1538
|
+
}) : t ? /* @__PURE__ */ q("div", {
|
|
1485
1539
|
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
|
|
1486
1540
|
children: [
|
|
1487
|
-
/* @__PURE__ */
|
|
1541
|
+
/* @__PURE__ */ K("strong", { children: a("debug.explainError") }),
|
|
1488
1542
|
" ",
|
|
1489
1543
|
t.message
|
|
1490
1544
|
]
|
|
1491
|
-
}) : n ? /* @__PURE__ */
|
|
1545
|
+
}) : n ? /* @__PURE__ */ q("div", {
|
|
1492
1546
|
className: "dc:space-y-3",
|
|
1493
1547
|
children: [
|
|
1494
|
-
/* @__PURE__ */
|
|
1495
|
-
n.summary.usedIndexes.length > 0 && /* @__PURE__ */
|
|
1548
|
+
/* @__PURE__ */ K(Ht, { summary: n.summary }),
|
|
1549
|
+
n.summary.usedIndexes.length > 0 && /* @__PURE__ */ q("div", {
|
|
1496
1550
|
className: "dc:text-xs text-dc-text-muted",
|
|
1497
1551
|
children: [
|
|
1498
|
-
/* @__PURE__ */
|
|
1552
|
+
/* @__PURE__ */ K("strong", { children: a("debug.indexes") }),
|
|
1499
1553
|
" ",
|
|
1500
1554
|
n.summary.usedIndexes.join(", ")
|
|
1501
1555
|
]
|
|
1502
1556
|
}),
|
|
1503
|
-
/* @__PURE__ */
|
|
1557
|
+
/* @__PURE__ */ K(m, {
|
|
1504
1558
|
code: n.raw,
|
|
1505
1559
|
language: "sql",
|
|
1506
1560
|
title: a("debug.executionPlanTitle", { database: n.summary.database }),
|
|
@@ -1512,24 +1566,24 @@ function Lt({ explainLoading: e, explainError: t, explainResult: n, useAnalyze:
|
|
|
1512
1566
|
}
|
|
1513
1567
|
//#endregion
|
|
1514
1568
|
//#region src/client/components/AnalysisBuilder/ExecutionPlanPanel.tsx
|
|
1515
|
-
var
|
|
1569
|
+
var Wt = ve(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" }) {
|
|
1516
1570
|
let { t: v } = z(), [y, b] = G(!1), [x, S] = G(!1), C = e ? e.sql + (e.params && e.params.length > 0 ? "\n\n-- Parameters:\n" + JSON.stringify(e.params, null, 2) : "") : "", w = () => {
|
|
1517
1571
|
f && i && h && (f(i, h), S(!0));
|
|
1518
1572
|
}, T = () => {
|
|
1519
1573
|
S(!1);
|
|
1520
|
-
}, E = m && i ? /* @__PURE__ */
|
|
1574
|
+
}, E = m && i ? /* @__PURE__ */ K("button", {
|
|
1521
1575
|
onClick: w,
|
|
1522
1576
|
disabled: u,
|
|
1523
1577
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded-sm bg-dc-accent text-white hover:bg-dc-accent-hover dc:disabled:opacity-50 dc:disabled:cursor-not-allowed dc:flex dc:items-center dc:gap-1",
|
|
1524
|
-
children: u ? /* @__PURE__ */
|
|
1578
|
+
children: u ? /* @__PURE__ */ q(be, { children: [/* @__PURE__ */ K("span", {
|
|
1525
1579
|
className: "dc:animate-spin",
|
|
1526
1580
|
children: "⟳"
|
|
1527
|
-
}), v("debug.aiAnalyzing")] }) : /* @__PURE__ */
|
|
1581
|
+
}), v("debug.aiAnalyzing")] }) : /* @__PURE__ */ K(be, { children: `✨ ${v("debug.aiAnalysis")}` })
|
|
1528
1582
|
}) : null;
|
|
1529
|
-
return /* @__PURE__ */
|
|
1583
|
+
return /* @__PURE__ */ q("div", {
|
|
1530
1584
|
className: "dc:space-y-3",
|
|
1531
1585
|
children: [
|
|
1532
|
-
/* @__PURE__ */
|
|
1586
|
+
/* @__PURE__ */ K(Vt, {
|
|
1533
1587
|
sql: e,
|
|
1534
1588
|
sqlLoading: t,
|
|
1535
1589
|
sqlError: n,
|
|
@@ -1537,37 +1591,37 @@ var Rt = ve(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
|
|
|
1537
1591
|
formattedSql: C,
|
|
1538
1592
|
title: g,
|
|
1539
1593
|
height: _,
|
|
1540
|
-
headerRight: /* @__PURE__ */
|
|
1594
|
+
headerRight: /* @__PURE__ */ q(be, { children: [/* @__PURE__ */ q("label", {
|
|
1541
1595
|
className: "dc:flex dc:items-center dc:gap-1 dc:text-xs text-dc-text-secondary dc:cursor-pointer",
|
|
1542
|
-
children: [/* @__PURE__ */
|
|
1596
|
+
children: [/* @__PURE__ */ K("input", {
|
|
1543
1597
|
type: "checkbox",
|
|
1544
1598
|
checked: y,
|
|
1545
1599
|
onChange: (e) => b(e.target.checked),
|
|
1546
1600
|
className: "dc:w-3 dc:h-3 dc:rounded-sm border-dc-border text-dc-accent focus:ring-dc-accent"
|
|
1547
1601
|
}), v("debug.explainIncludeTiming")]
|
|
1548
|
-
}), /* @__PURE__ */
|
|
1602
|
+
}), /* @__PURE__ */ K("button", {
|
|
1549
1603
|
onClick: () => c({ analyze: y }),
|
|
1550
1604
|
disabled: a,
|
|
1551
1605
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded-sm dc:border border-dc-border bg-dc-surface hover:bg-dc-surface-hover text-dc-text-secondary hover:text-dc-text dc:transition-colors dc:disabled:opacity-50 dc:disabled:cursor-not-allowed",
|
|
1552
1606
|
children: v(a ? "debug.explainRunning" : "debug.explainPlan")
|
|
1553
1607
|
})] })
|
|
1554
1608
|
}),
|
|
1555
|
-
o && /* @__PURE__ */
|
|
1609
|
+
o && /* @__PURE__ */ K("div", { children: /* @__PURE__ */ K(Ut, {
|
|
1556
1610
|
explainLoading: a,
|
|
1557
1611
|
explainError: s,
|
|
1558
1612
|
explainResult: i,
|
|
1559
1613
|
useAnalyze: y,
|
|
1560
1614
|
aiButton: E
|
|
1561
1615
|
}) }),
|
|
1562
|
-
d && /* @__PURE__ */
|
|
1616
|
+
d && /* @__PURE__ */ q("div", {
|
|
1563
1617
|
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
|
|
1564
1618
|
children: [
|
|
1565
|
-
/* @__PURE__ */
|
|
1619
|
+
/* @__PURE__ */ K("strong", { children: v("debug.aiAnalysisError") }),
|
|
1566
1620
|
" ",
|
|
1567
1621
|
d.message
|
|
1568
1622
|
]
|
|
1569
1623
|
}),
|
|
1570
|
-
x && l && /* @__PURE__ */
|
|
1624
|
+
x && l && /* @__PURE__ */ K(dt, {
|
|
1571
1625
|
analysis: l,
|
|
1572
1626
|
onClose: T
|
|
1573
1627
|
})
|
|
@@ -1576,7 +1630,7 @@ var Rt = ve(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
|
|
|
1576
1630
|
});
|
|
1577
1631
|
//#endregion
|
|
1578
1632
|
//#region src/client/adapters/queryModeAdapter.ts
|
|
1579
|
-
function
|
|
1633
|
+
function Gt() {
|
|
1580
1634
|
return {
|
|
1581
1635
|
metrics: [],
|
|
1582
1636
|
breakdowns: [],
|
|
@@ -1587,10 +1641,10 @@ function zt() {
|
|
|
1587
1641
|
validationError: null
|
|
1588
1642
|
};
|
|
1589
1643
|
}
|
|
1590
|
-
function
|
|
1644
|
+
function Kt(e) {
|
|
1591
1645
|
return e.map((e) => e.field);
|
|
1592
1646
|
}
|
|
1593
|
-
function
|
|
1647
|
+
function qt(e, t) {
|
|
1594
1648
|
let n = [], r = [];
|
|
1595
1649
|
for (let i of e) if (i.isTimeDimension) {
|
|
1596
1650
|
let e = {
|
|
@@ -1598,7 +1652,7 @@ function Vt(e, t) {
|
|
|
1598
1652
|
granularity: i.granularity || "day"
|
|
1599
1653
|
};
|
|
1600
1654
|
if (i.enableComparison) {
|
|
1601
|
-
let n =
|
|
1655
|
+
let n = Ae(i.field, t);
|
|
1602
1656
|
n && (e.compareDateRange = n);
|
|
1603
1657
|
}
|
|
1604
1658
|
r.push(e);
|
|
@@ -1608,21 +1662,21 @@ function Vt(e, t) {
|
|
|
1608
1662
|
timeDimensions: r
|
|
1609
1663
|
};
|
|
1610
1664
|
}
|
|
1611
|
-
function
|
|
1612
|
-
let { dimensions: t, timeDimensions: n } =
|
|
1613
|
-
measures:
|
|
1665
|
+
function Jt(e) {
|
|
1666
|
+
let { dimensions: t, timeDimensions: n } = qt(e.breakdowns, e.filters), r = {
|
|
1667
|
+
measures: Kt(e.metrics),
|
|
1614
1668
|
dimensions: t
|
|
1615
1669
|
};
|
|
1616
1670
|
return n.length > 0 && (r.timeDimensions = n), e.filters.length > 0 && (r.filters = e.filters), e.order && Object.keys(e.order).length > 0 && (r.order = e.order), e.limit != null && (r.limit = e.limit), r;
|
|
1617
1671
|
}
|
|
1618
|
-
function
|
|
1672
|
+
function Yt(e) {
|
|
1619
1673
|
return e.map((e, t) => ({
|
|
1620
1674
|
id: f(),
|
|
1621
1675
|
field: e,
|
|
1622
1676
|
label: w(t)
|
|
1623
1677
|
}));
|
|
1624
1678
|
}
|
|
1625
|
-
function
|
|
1679
|
+
function Xt(e) {
|
|
1626
1680
|
let t = [];
|
|
1627
1681
|
if (e.dimensions) for (let n of e.dimensions) t.push({
|
|
1628
1682
|
id: f(),
|
|
@@ -1641,10 +1695,10 @@ function Wt(e) {
|
|
|
1641
1695
|
}
|
|
1642
1696
|
return t;
|
|
1643
1697
|
}
|
|
1644
|
-
function
|
|
1698
|
+
function Zt(e) {
|
|
1645
1699
|
return {
|
|
1646
|
-
metrics:
|
|
1647
|
-
breakdowns:
|
|
1700
|
+
metrics: Yt(e.measures || []),
|
|
1701
|
+
breakdowns: Xt(e),
|
|
1648
1702
|
filters: e.filters || [],
|
|
1649
1703
|
order: e.order,
|
|
1650
1704
|
limit: e.limit,
|
|
@@ -1652,14 +1706,14 @@ function Gt(e) {
|
|
|
1652
1706
|
validationError: null
|
|
1653
1707
|
};
|
|
1654
1708
|
}
|
|
1655
|
-
function
|
|
1709
|
+
function Qt(e) {
|
|
1656
1710
|
return typeof e == "object" && !!e && "queries" in e && Array.isArray(e.queries);
|
|
1657
1711
|
}
|
|
1658
1712
|
var X = {
|
|
1659
1713
|
type: "query",
|
|
1660
1714
|
createInitial() {
|
|
1661
1715
|
return {
|
|
1662
|
-
queryStates: [
|
|
1716
|
+
queryStates: [Gt()],
|
|
1663
1717
|
activeQueryIndex: 0,
|
|
1664
1718
|
mergeStrategy: "concat"
|
|
1665
1719
|
};
|
|
@@ -1679,22 +1733,22 @@ var X = {
|
|
|
1679
1733
|
load(e) {
|
|
1680
1734
|
if (e.analysisType !== "query") throw Error(`Cannot load ${e.analysisType} config with query adapter`);
|
|
1681
1735
|
let t = e;
|
|
1682
|
-
if (
|
|
1683
|
-
let e = t.query, n = e.queries.map(
|
|
1684
|
-
return n.length === 0 && n.push(
|
|
1736
|
+
if (Qt(t.query)) {
|
|
1737
|
+
let e = t.query, n = e.queries.map(Zt);
|
|
1738
|
+
return n.length === 0 && n.push(Gt()), {
|
|
1685
1739
|
queryStates: n,
|
|
1686
1740
|
activeQueryIndex: 0,
|
|
1687
1741
|
mergeStrategy: e.mergeStrategy || "concat"
|
|
1688
1742
|
};
|
|
1689
1743
|
}
|
|
1690
1744
|
return {
|
|
1691
|
-
queryStates: [
|
|
1745
|
+
queryStates: [Zt(t.query)],
|
|
1692
1746
|
activeQueryIndex: 0,
|
|
1693
1747
|
mergeStrategy: "concat"
|
|
1694
1748
|
};
|
|
1695
1749
|
},
|
|
1696
1750
|
save(e, t, n) {
|
|
1697
|
-
let r = e.queryStates.map(
|
|
1751
|
+
let r = e.queryStates.map(Jt), i = r.length === 1 && e.mergeStrategy === "concat" ? r[0] : {
|
|
1698
1752
|
queries: r,
|
|
1699
1753
|
mergeStrategy: e.mergeStrategy
|
|
1700
1754
|
};
|
|
@@ -1735,30 +1789,30 @@ var X = {
|
|
|
1735
1789
|
}
|
|
1736
1790
|
};
|
|
1737
1791
|
}
|
|
1738
|
-
}, Z = /* @__PURE__ */ new Map(),
|
|
1739
|
-
function
|
|
1740
|
-
|
|
1792
|
+
}, Z = /* @__PURE__ */ new Map(), $t = !1;
|
|
1793
|
+
function en() {
|
|
1794
|
+
$t ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel", v), Z.has("flow") || Z.set("flow", _), Z.has("retention") || Z.set("retention", S), !0);
|
|
1741
1795
|
}
|
|
1742
1796
|
var Q = {
|
|
1743
1797
|
register(e) {
|
|
1744
1798
|
Z.has(e.type) && console.warn(`[adapterRegistry] Overwriting existing adapter for type: ${e.type}`), Z.set(e.type, e);
|
|
1745
1799
|
},
|
|
1746
1800
|
get(e) {
|
|
1747
|
-
|
|
1801
|
+
en();
|
|
1748
1802
|
let t = Z.get(e);
|
|
1749
1803
|
if (!t) throw Error(`[adapterRegistry] No adapter registered for type: ${e}. Available types: ${Array.from(Z.keys()).join(", ") || "none"}`);
|
|
1750
1804
|
return t;
|
|
1751
1805
|
},
|
|
1752
1806
|
has(e) {
|
|
1753
|
-
return
|
|
1807
|
+
return en(), Z.has(e);
|
|
1754
1808
|
},
|
|
1755
1809
|
getRegisteredTypes() {
|
|
1756
|
-
return
|
|
1810
|
+
return en(), Array.from(Z.keys());
|
|
1757
1811
|
},
|
|
1758
1812
|
clear() {
|
|
1759
|
-
Z.clear(),
|
|
1813
|
+
Z.clear(), $t = !1;
|
|
1760
1814
|
}
|
|
1761
|
-
},
|
|
1815
|
+
}, tn = () => ({
|
|
1762
1816
|
analysisType: "query",
|
|
1763
1817
|
charts: {
|
|
1764
1818
|
query: X.getDefaultChartConfig(),
|
|
@@ -1774,8 +1828,8 @@ var Q = {
|
|
|
1774
1828
|
},
|
|
1775
1829
|
userManuallySelectedChart: !1,
|
|
1776
1830
|
localPaletteName: "default"
|
|
1777
|
-
}),
|
|
1778
|
-
...
|
|
1831
|
+
}), nn = (e, t, n) => ({
|
|
1832
|
+
...tn(),
|
|
1779
1833
|
setAnalysisType: (t) => {
|
|
1780
1834
|
e((e) => {
|
|
1781
1835
|
let n = { ...e.charts };
|
|
@@ -1988,12 +2042,12 @@ var Q = {
|
|
|
1988
2042
|
...u
|
|
1989
2043
|
});
|
|
1990
2044
|
}
|
|
1991
|
-
}),
|
|
2045
|
+
}), rn = () => ({
|
|
1992
2046
|
queryStates: [Y()],
|
|
1993
2047
|
activeQueryIndex: 0,
|
|
1994
2048
|
mergeStrategy: "concat"
|
|
1995
|
-
}),
|
|
1996
|
-
...
|
|
2049
|
+
}), an = (e, t, n) => ({
|
|
2050
|
+
...rn(),
|
|
1997
2051
|
setQueryStates: (t) => e({ queryStates: t }),
|
|
1998
2052
|
updateQueryState: (t, n) => e((e) => {
|
|
1999
2053
|
let r = [...e.queryStates];
|
|
@@ -2145,7 +2199,7 @@ var Q = {
|
|
|
2145
2199
|
member: l.field,
|
|
2146
2200
|
operator: "inDateRange",
|
|
2147
2201
|
values: [],
|
|
2148
|
-
dateRange:
|
|
2202
|
+
dateRange: F("last_n_months", 3)
|
|
2149
2203
|
};
|
|
2150
2204
|
s[c] = {
|
|
2151
2205
|
...s[c],
|
|
@@ -2234,11 +2288,11 @@ var Q = {
|
|
|
2234
2288
|
},
|
|
2235
2289
|
buildCurrentQuery: () => {
|
|
2236
2290
|
let e = t(), n = e.queryStates[e.activeQueryIndex] || Y(), r = l(e.charts[e.analysisType]?.chartType ?? "");
|
|
2237
|
-
return
|
|
2291
|
+
return Me(n.metrics, n.breakdowns, n.filters, n.order, !1, n.limit, r);
|
|
2238
2292
|
},
|
|
2239
2293
|
buildAllQueries: () => {
|
|
2240
2294
|
let e = t(), n = e.queryStates[0]?.breakdowns || [], r = l(e.charts[e.analysisType]?.chartType ?? "");
|
|
2241
|
-
return e.queryStates.map((t, i) =>
|
|
2295
|
+
return e.queryStates.map((t, i) => Me(t.metrics, e.mergeStrategy === "merge" && i > 0 ? n : t.breakdowns, t.filters, t.order, !1, t.limit, r));
|
|
2242
2296
|
},
|
|
2243
2297
|
buildMultiQueryConfig: () => {
|
|
2244
2298
|
let e = t();
|
|
@@ -2251,15 +2305,15 @@ var Q = {
|
|
|
2251
2305
|
queryLabels: n.map((e, t) => `Q${t + 1}`)
|
|
2252
2306
|
};
|
|
2253
2307
|
}
|
|
2254
|
-
}),
|
|
2308
|
+
}), on = () => ({
|
|
2255
2309
|
funnelCube: null,
|
|
2256
2310
|
funnelSteps: [],
|
|
2257
2311
|
activeFunnelStepIndex: 0,
|
|
2258
2312
|
funnelTimeDimension: null,
|
|
2259
2313
|
funnelBindingKey: null,
|
|
2260
2314
|
stepTimeToConvert: []
|
|
2261
|
-
}),
|
|
2262
|
-
|
|
2315
|
+
}), sn = (e, t, n) => ({
|
|
2316
|
+
...on(),
|
|
2263
2317
|
addFunnelStep: () => e((e) => {
|
|
2264
2318
|
let t = e.funnelSteps[e.funnelSteps.length - 1], n = {
|
|
2265
2319
|
id: f(),
|
|
@@ -2327,7 +2381,7 @@ var Q = {
|
|
|
2327
2381
|
let e = t();
|
|
2328
2382
|
return e.analysisType !== "funnel" || !e.funnelBindingKey || !e.funnelTimeDimension || e.funnelSteps.length < 2 ? !1 : e.funnelSteps.filter((e) => e.cube && e.name).length >= 2;
|
|
2329
2383
|
}
|
|
2330
|
-
}),
|
|
2384
|
+
}), cn = () => ({
|
|
2331
2385
|
flowCube: null,
|
|
2332
2386
|
flowBindingKey: null,
|
|
2333
2387
|
flowTimeDimension: null,
|
|
@@ -2339,8 +2393,8 @@ var Q = {
|
|
|
2339
2393
|
stepsAfter: 3,
|
|
2340
2394
|
eventDimension: null,
|
|
2341
2395
|
joinStrategy: "auto"
|
|
2342
|
-
}),
|
|
2343
|
-
...
|
|
2396
|
+
}), ln = (e, t, n) => ({
|
|
2397
|
+
...cn(),
|
|
2344
2398
|
setFlowCube: (t) => e(() => ({
|
|
2345
2399
|
flowCube: t,
|
|
2346
2400
|
flowBindingKey: null,
|
|
@@ -2410,8 +2464,8 @@ var Q = {
|
|
|
2410
2464
|
joinStrategy: e.joinStrategy
|
|
2411
2465
|
} };
|
|
2412
2466
|
}
|
|
2413
|
-
}),
|
|
2414
|
-
...
|
|
2467
|
+
}), un = () => ({ ...D }), dn = (e, t, n) => ({
|
|
2468
|
+
...un(),
|
|
2415
2469
|
setRetentionCube: (t) => e(() => ({
|
|
2416
2470
|
retentionCube: t,
|
|
2417
2471
|
retentionTimeDimension: null,
|
|
@@ -2486,22 +2540,22 @@ var Q = {
|
|
|
2486
2540
|
warnings: r
|
|
2487
2541
|
};
|
|
2488
2542
|
}
|
|
2489
|
-
}),
|
|
2543
|
+
}), fn = {
|
|
2490
2544
|
isOpen: !1,
|
|
2491
2545
|
userPrompt: "",
|
|
2492
2546
|
isGenerating: !1,
|
|
2493
2547
|
error: null,
|
|
2494
2548
|
hasGeneratedQuery: !1,
|
|
2495
2549
|
previousState: null
|
|
2496
|
-
},
|
|
2550
|
+
}, pn = () => ({
|
|
2497
2551
|
activeTab: "query",
|
|
2498
2552
|
activeView: "chart",
|
|
2499
2553
|
displayLimit: 100,
|
|
2500
2554
|
showFieldModal: !1,
|
|
2501
2555
|
fieldModalMode: "metrics",
|
|
2502
|
-
aiState:
|
|
2503
|
-
}),
|
|
2504
|
-
...
|
|
2556
|
+
aiState: fn
|
|
2557
|
+
}), mn = (e, t, n) => ({
|
|
2558
|
+
...pn(),
|
|
2505
2559
|
setActiveTab: (t) => e({ activeTab: t }),
|
|
2506
2560
|
setActiveView: (t) => e((e) => ({
|
|
2507
2561
|
activeView: t,
|
|
@@ -2585,13 +2639,13 @@ var Q = {
|
|
|
2585
2639
|
displayConfig: t.displayConfig
|
|
2586
2640
|
}
|
|
2587
2641
|
},
|
|
2588
|
-
aiState: { ...
|
|
2642
|
+
aiState: { ...fn }
|
|
2589
2643
|
};
|
|
2590
2644
|
})
|
|
2591
2645
|
});
|
|
2592
2646
|
//#endregion
|
|
2593
2647
|
//#region src/client/stores/optionsToAnalysisConfig.ts
|
|
2594
|
-
function
|
|
2648
|
+
function hn(e) {
|
|
2595
2649
|
let t = e.filters ? [...e.filters] : [], n = e.timeDimensions || [], r = [...(e.dimensions || []).map((e) => ({
|
|
2596
2650
|
id: f(),
|
|
2597
2651
|
field: e,
|
|
@@ -2634,10 +2688,10 @@ function ln(e) {
|
|
|
2634
2688
|
order: e.order
|
|
2635
2689
|
};
|
|
2636
2690
|
}
|
|
2637
|
-
function
|
|
2691
|
+
function gn(e) {
|
|
2638
2692
|
return "queries" in e && Array.isArray(e.queries);
|
|
2639
2693
|
}
|
|
2640
|
-
function
|
|
2694
|
+
function _n(e, t) {
|
|
2641
2695
|
let n = e.getDefaultChartConfig();
|
|
2642
2696
|
return {
|
|
2643
2697
|
chartType: t?.chartType || n.chartType,
|
|
@@ -2645,21 +2699,21 @@ function dn(e, t) {
|
|
|
2645
2699
|
displayConfig: t?.displayConfig || n.displayConfig
|
|
2646
2700
|
};
|
|
2647
2701
|
}
|
|
2648
|
-
function
|
|
2702
|
+
function vn(e) {
|
|
2649
2703
|
return e.initialActiveView || "chart";
|
|
2650
2704
|
}
|
|
2651
|
-
function
|
|
2652
|
-
let t =
|
|
2705
|
+
function yn(e) {
|
|
2706
|
+
let t = _n(v, e.initialChartConfig), n = e.initialFunnelState ?? {};
|
|
2653
2707
|
return v.save({
|
|
2654
2708
|
funnelCube: n.funnelCube ?? null,
|
|
2655
2709
|
funnelSteps: n.funnelSteps || [],
|
|
2656
2710
|
activeFunnelStepIndex: 0,
|
|
2657
2711
|
funnelTimeDimension: n.funnelTimeDimension ?? null,
|
|
2658
2712
|
funnelBindingKey: n.funnelBindingKey ?? null
|
|
2659
|
-
}, { funnel: t },
|
|
2713
|
+
}, { funnel: t }, vn(e));
|
|
2660
2714
|
}
|
|
2661
|
-
function
|
|
2662
|
-
let t =
|
|
2715
|
+
function bn(e) {
|
|
2716
|
+
let t = _n(_, e.initialChartConfig), n = e.initialFlowState ?? {};
|
|
2663
2717
|
return _.save({
|
|
2664
2718
|
flowCube: n.flowCube ?? null,
|
|
2665
2719
|
flowBindingKey: n.flowBindingKey ?? null,
|
|
@@ -2672,10 +2726,10 @@ function mn(e) {
|
|
|
2672
2726
|
stepsAfter: n.stepsAfter ?? 3,
|
|
2673
2727
|
eventDimension: n.eventDimension ?? null,
|
|
2674
2728
|
joinStrategy: n.joinStrategy ?? "auto"
|
|
2675
|
-
}, { flow: t },
|
|
2729
|
+
}, { flow: t }, vn(e));
|
|
2676
2730
|
}
|
|
2677
|
-
function
|
|
2678
|
-
let t =
|
|
2731
|
+
function xn(e) {
|
|
2732
|
+
let t = _n(S, e.initialChartConfig), n = e.initialRetentionState ?? {}, r = O(k);
|
|
2679
2733
|
return S.save({
|
|
2680
2734
|
retentionCube: n.retentionCube ?? null,
|
|
2681
2735
|
retentionBindingKey: n.retentionBindingKey ?? null,
|
|
@@ -2687,47 +2741,47 @@ function hn(e) {
|
|
|
2687
2741
|
retentionViewGranularity: n.retentionViewGranularity ?? "week",
|
|
2688
2742
|
retentionPeriods: n.retentionPeriods ?? 12,
|
|
2689
2743
|
retentionType: n.retentionType ?? "classic"
|
|
2690
|
-
}, { retention: t },
|
|
2744
|
+
}, { retention: t }, vn(e));
|
|
2691
2745
|
}
|
|
2692
|
-
function
|
|
2746
|
+
function Sn(e, t) {
|
|
2693
2747
|
let n, r = "concat";
|
|
2694
|
-
|
|
2695
|
-
let i =
|
|
2748
|
+
gn(t) ? (n = t.queries.map(hn), t.mergeStrategy && (r = t.mergeStrategy)) : n = [hn(t)];
|
|
2749
|
+
let i = _n(X, e.initialChartConfig);
|
|
2696
2750
|
return X.save({
|
|
2697
2751
|
queryStates: n,
|
|
2698
2752
|
activeQueryIndex: 0,
|
|
2699
2753
|
mergeStrategy: r
|
|
2700
|
-
}, { query: i },
|
|
2754
|
+
}, { query: i }, vn(e));
|
|
2701
2755
|
}
|
|
2702
|
-
function
|
|
2703
|
-
let t =
|
|
2756
|
+
function Cn(e) {
|
|
2757
|
+
let t = _n(X, e.initialChartConfig);
|
|
2704
2758
|
return X.save({
|
|
2705
2759
|
queryStates: [Y()],
|
|
2706
2760
|
activeQueryIndex: 0,
|
|
2707
2761
|
mergeStrategy: "concat"
|
|
2708
|
-
}, { query: t },
|
|
2762
|
+
}, { query: t }, vn(e));
|
|
2709
2763
|
}
|
|
2710
|
-
function
|
|
2764
|
+
function wn(e) {
|
|
2711
2765
|
return X.save({
|
|
2712
2766
|
queryStates: [Y()],
|
|
2713
2767
|
activeQueryIndex: 0,
|
|
2714
2768
|
mergeStrategy: "concat"
|
|
2715
2769
|
}, { query: X.getDefaultChartConfig() }, e.initialActiveView);
|
|
2716
2770
|
}
|
|
2717
|
-
function
|
|
2718
|
-
return e.initialAnalysisType === "funnel" && e.initialFunnelState ?
|
|
2771
|
+
function Tn(e) {
|
|
2772
|
+
return e.initialAnalysisType === "funnel" && e.initialFunnelState ? yn(e) : e.initialAnalysisType === "flow" && e.initialFlowState ? bn(e) : e.initialAnalysisType === "retention" && e.initialRetentionState ? xn(e) : e.initialQuery ? Sn(e, e.initialQuery) : e.initialChartConfig ? Cn(e) : e.initialActiveView ? wn(e) : null;
|
|
2719
2773
|
}
|
|
2720
2774
|
//#endregion
|
|
2721
2775
|
//#region src/client/stores/analysisBuilderStore.tsx
|
|
2722
|
-
function
|
|
2776
|
+
function En(e, t) {
|
|
2723
2777
|
return {
|
|
2724
2778
|
reset: () => {
|
|
2725
2779
|
e({
|
|
2726
|
-
...Yt(),
|
|
2727
|
-
...Zt(),
|
|
2728
|
-
...$t(),
|
|
2729
2780
|
...tn(),
|
|
2730
2781
|
...rn(),
|
|
2782
|
+
...on(),
|
|
2783
|
+
...cn(),
|
|
2784
|
+
...un(),
|
|
2731
2785
|
charts: {
|
|
2732
2786
|
query: X.getDefaultChartConfig(),
|
|
2733
2787
|
funnel: v.getDefaultChartConfig(),
|
|
@@ -2745,28 +2799,28 @@ function bn(e, t) {
|
|
|
2745
2799
|
clearCurrentMode: () => e((e) => {
|
|
2746
2800
|
switch (e.analysisType) {
|
|
2747
2801
|
case "funnel": return {
|
|
2748
|
-
|
|
2802
|
+
...on(),
|
|
2749
2803
|
charts: {
|
|
2750
2804
|
...e.charts,
|
|
2751
2805
|
funnel: v.getDefaultChartConfig()
|
|
2752
2806
|
}
|
|
2753
2807
|
};
|
|
2754
2808
|
case "flow": return {
|
|
2755
|
-
...
|
|
2809
|
+
...cn(),
|
|
2756
2810
|
charts: {
|
|
2757
2811
|
...e.charts,
|
|
2758
2812
|
flow: _.getDefaultChartConfig()
|
|
2759
2813
|
}
|
|
2760
2814
|
};
|
|
2761
2815
|
case "retention": return {
|
|
2762
|
-
...
|
|
2816
|
+
...un(),
|
|
2763
2817
|
charts: {
|
|
2764
2818
|
...e.charts,
|
|
2765
2819
|
retention: S.getDefaultChartConfig()
|
|
2766
2820
|
}
|
|
2767
2821
|
};
|
|
2768
2822
|
default: return {
|
|
2769
|
-
...
|
|
2823
|
+
...rn(),
|
|
2770
2824
|
userManuallySelectedChart: !1,
|
|
2771
2825
|
charts: {
|
|
2772
2826
|
...e.charts,
|
|
@@ -2792,15 +2846,15 @@ function bn(e, t) {
|
|
|
2792
2846
|
}
|
|
2793
2847
|
};
|
|
2794
2848
|
}
|
|
2795
|
-
function
|
|
2796
|
-
let r =
|
|
2797
|
-
...Xt(e, t, n),
|
|
2798
|
-
...Qt(e, t, n),
|
|
2799
|
-
...en(e, t, n),
|
|
2849
|
+
function Dn(n = {}) {
|
|
2850
|
+
let r = Tn(n), o = (e, t, n) => ({
|
|
2800
2851
|
...nn(e, t, n),
|
|
2801
2852
|
...an(e, t, n),
|
|
2802
|
-
...
|
|
2803
|
-
...
|
|
2853
|
+
...sn(e, t, n),
|
|
2854
|
+
...ln(e, t, n),
|
|
2855
|
+
...dn(e, t, n),
|
|
2856
|
+
...mn(e, t, n),
|
|
2857
|
+
...En(e, t)
|
|
2804
2858
|
});
|
|
2805
2859
|
if (n.disableLocalStorage) {
|
|
2806
2860
|
let t = a()(i(e(o), { name: "AnalysisBuilderStore (no-persist)" }));
|
|
@@ -2809,10 +2863,10 @@ function xn(n = {}) {
|
|
|
2809
2863
|
return a()(i(e(t(o, {
|
|
2810
2864
|
name: n.storageKey || "drizzle-cube-analysis-builder-v3",
|
|
2811
2865
|
partialize: (e) => e.saveWorkspace(),
|
|
2812
|
-
merge: (e, t) => e &&
|
|
2866
|
+
merge: (e, t) => e && A(e) ? {
|
|
2813
2867
|
...t,
|
|
2814
2868
|
_persistedWorkspace: e
|
|
2815
|
-
} : e &&
|
|
2869
|
+
} : e && ee(e) ? {
|
|
2816
2870
|
...t,
|
|
2817
2871
|
_persistedConfig: e
|
|
2818
2872
|
} : r ? {
|
|
@@ -2835,10 +2889,10 @@ function xn(n = {}) {
|
|
|
2835
2889
|
}
|
|
2836
2890
|
})), { name: "AnalysisBuilderStore" }));
|
|
2837
2891
|
}
|
|
2838
|
-
var
|
|
2839
|
-
function
|
|
2892
|
+
var On = _e(null);
|
|
2893
|
+
function kn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalStorage: r, storageKey: i, initialAnalysisType: a, initialFunnelState: o, initialFlowState: s, initialRetentionState: c, initialActiveView: l }) {
|
|
2840
2894
|
let u = W(null);
|
|
2841
|
-
return u.current ||=
|
|
2895
|
+
return u.current ||= Dn({
|
|
2842
2896
|
initialQuery: t,
|
|
2843
2897
|
initialChartConfig: n,
|
|
2844
2898
|
disableLocalStorage: r,
|
|
@@ -2848,22 +2902,22 @@ function Cn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalS
|
|
|
2848
2902
|
initialFlowState: s,
|
|
2849
2903
|
initialRetentionState: c,
|
|
2850
2904
|
initialActiveView: l
|
|
2851
|
-
}), /* @__PURE__ */
|
|
2905
|
+
}), /* @__PURE__ */ K(On.Provider, {
|
|
2852
2906
|
value: u.current,
|
|
2853
2907
|
children: e
|
|
2854
2908
|
});
|
|
2855
2909
|
}
|
|
2856
2910
|
function $(e) {
|
|
2857
|
-
let t = ye(
|
|
2911
|
+
let t = ye(On);
|
|
2858
2912
|
if (!t) throw Error("useAnalysisBuilderStore must be used within AnalysisBuilderStoreProvider");
|
|
2859
2913
|
return r(t, e);
|
|
2860
2914
|
}
|
|
2861
|
-
function
|
|
2862
|
-
let e = ye(
|
|
2915
|
+
function An() {
|
|
2916
|
+
let e = ye(On);
|
|
2863
2917
|
if (!e) throw Error("useAnalysisBuilderStoreApi must be used within AnalysisBuilderStoreProvider");
|
|
2864
2918
|
return e;
|
|
2865
2919
|
}
|
|
2866
|
-
var
|
|
2920
|
+
var jn = (e) => e.queryStates[e.activeQueryIndex] || Y(), Mn = (e) => jn(e).metrics, Nn = (e) => jn(e).breakdowns, Pn = (e) => jn(e).filters, Fn = (e) => {
|
|
2867
2921
|
let t = e.charts[e.analysisType];
|
|
2868
2922
|
return t ? {
|
|
2869
2923
|
chartType: t.chartType,
|
|
@@ -2878,18 +2932,18 @@ var Tn = (e) => e.queryStates[e.activeQueryIndex] || Y(), En = (e) => Tn(e).metr
|
|
|
2878
2932
|
showTooltip: !0
|
|
2879
2933
|
}
|
|
2880
2934
|
};
|
|
2881
|
-
},
|
|
2935
|
+
}, In = (e) => ({
|
|
2882
2936
|
activeTab: e.activeTab,
|
|
2883
2937
|
activeView: e.activeView,
|
|
2884
2938
|
displayLimit: e.displayLimit,
|
|
2885
2939
|
showFieldModal: e.showFieldModal,
|
|
2886
2940
|
fieldModalMode: e.fieldModalMode
|
|
2887
|
-
}),
|
|
2941
|
+
}), Ln = (e) => ({
|
|
2888
2942
|
queryStates: e.queryStates,
|
|
2889
2943
|
activeQueryIndex: e.activeQueryIndex,
|
|
2890
2944
|
mergeStrategy: e.mergeStrategy,
|
|
2891
2945
|
isMultiQueryMode: e.analysisType === "query" && e.queryStates.length > 1
|
|
2892
|
-
}),
|
|
2946
|
+
}), Rn = (e) => ({
|
|
2893
2947
|
funnelCube: e.funnelCube,
|
|
2894
2948
|
funnelSteps: e.funnelSteps,
|
|
2895
2949
|
activeFunnelStepIndex: e.activeFunnelStepIndex,
|
|
@@ -2900,16 +2954,16 @@ var Tn = (e) => e.queryStates[e.activeQueryIndex] || Y(), En = (e) => Tn(e).metr
|
|
|
2900
2954
|
});
|
|
2901
2955
|
//#endregion
|
|
2902
2956
|
//#region src/client/utils/multiQueryValidation.ts
|
|
2903
|
-
function
|
|
2957
|
+
function zn(e) {
|
|
2904
2958
|
return e.timeDimensions || [];
|
|
2905
2959
|
}
|
|
2906
|
-
function
|
|
2960
|
+
function Bn(e) {
|
|
2907
2961
|
let t = [];
|
|
2908
2962
|
if (e.length < 2) return t;
|
|
2909
|
-
let n =
|
|
2963
|
+
let n = zn(e[0]);
|
|
2910
2964
|
if (n.length === 0) return t;
|
|
2911
2965
|
for (let r = 1; r < e.length; r++) {
|
|
2912
|
-
let i =
|
|
2966
|
+
let i = zn(e[r]);
|
|
2913
2967
|
if (i.length === 0 && n.length > 0) {
|
|
2914
2968
|
t.push({
|
|
2915
2969
|
type: "missing_time_dimension",
|
|
@@ -2935,7 +2989,7 @@ function Pn(e) {
|
|
|
2935
2989
|
}
|
|
2936
2990
|
return t;
|
|
2937
2991
|
}
|
|
2938
|
-
function
|
|
2992
|
+
function Vn(e, t) {
|
|
2939
2993
|
let n = [];
|
|
2940
2994
|
if (e.length < 2 || t.length === 0) return n;
|
|
2941
2995
|
for (let r = 0; r < e.length; r++) {
|
|
@@ -2949,7 +3003,7 @@ function Fn(e, t) {
|
|
|
2949
3003
|
}
|
|
2950
3004
|
return n;
|
|
2951
3005
|
}
|
|
2952
|
-
function
|
|
3006
|
+
function Hn(e) {
|
|
2953
3007
|
let t = [];
|
|
2954
3008
|
if (e.length < 2) return t;
|
|
2955
3009
|
let n = /* @__PURE__ */ new Map();
|
|
@@ -2968,7 +3022,7 @@ function In(e) {
|
|
|
2968
3022
|
affectedMeasures: r
|
|
2969
3023
|
}), t;
|
|
2970
3024
|
}
|
|
2971
|
-
function
|
|
3025
|
+
function Un(e) {
|
|
2972
3026
|
let t = [];
|
|
2973
3027
|
if (e.length < 2) return t;
|
|
2974
3028
|
let n = e.map((e) => e.timeDimensions?.[0]?.dateRange);
|
|
@@ -2978,38 +3032,38 @@ function Ln(e) {
|
|
|
2978
3032
|
message: "Queries have different date ranges - some data points may be missing in merged results"
|
|
2979
3033
|
}), t;
|
|
2980
3034
|
}
|
|
2981
|
-
function
|
|
3035
|
+
function Wn(e, t, n = []) {
|
|
2982
3036
|
let r = [], i = [];
|
|
2983
3037
|
return e.length < 2 ? {
|
|
2984
3038
|
isValid: !0,
|
|
2985
3039
|
errors: r,
|
|
2986
3040
|
warnings: i
|
|
2987
|
-
} : (i.push(...
|
|
3041
|
+
} : (i.push(...Hn(e)), i.push(...Un(e)), t === "merge" && (r.push(...Bn(e)), n.length > 0 && r.push(...Vn(e, n))), {
|
|
2988
3042
|
isValid: r.length === 0,
|
|
2989
3043
|
errors: r,
|
|
2990
3044
|
warnings: i
|
|
2991
3045
|
});
|
|
2992
3046
|
}
|
|
2993
|
-
function
|
|
3047
|
+
function Gn(e) {
|
|
2994
3048
|
return (e.measures?.length || 0) + (e.dimensions?.length || 0) + (e.timeDimensions?.length || 0);
|
|
2995
3049
|
}
|
|
2996
|
-
function
|
|
2997
|
-
return e.filter((e) =>
|
|
3050
|
+
function Kn(e) {
|
|
3051
|
+
return e.filter((e) => Gn(e) > 0).length >= 2;
|
|
2998
3052
|
}
|
|
2999
|
-
function
|
|
3053
|
+
function qn(e, t) {
|
|
3000
3054
|
return `${e} ${t}${e === 1 ? "" : "s"}`;
|
|
3001
3055
|
}
|
|
3002
|
-
function
|
|
3056
|
+
function Jn(e) {
|
|
3003
3057
|
if (e.isValid && e.warnings.length === 0) return "Configuration is valid";
|
|
3004
3058
|
let t = [];
|
|
3005
|
-
return e.errors.length > 0 && t.push(
|
|
3059
|
+
return e.errors.length > 0 && t.push(qn(e.errors.length, "error")), e.warnings.length > 0 && t.push(qn(e.warnings.length, "warning")), t.join(", ");
|
|
3006
3060
|
}
|
|
3007
3061
|
//#endregion
|
|
3008
3062
|
//#region src/client/hooks/useAnalysisState.ts
|
|
3009
|
-
function
|
|
3010
|
-
let { externalColorPalette: t } = e, r =
|
|
3063
|
+
function Yn(e = {}) {
|
|
3064
|
+
let { externalColorPalette: t } = e, r = An(), i = $((e) => e.queryStates), a = $((e) => e.activeQueryIndex), o = $((e) => e.mergeStrategy), s = $((e) => e.setActiveQueryIndex), c = $((e) => e.setMergeStrategy), u = $((e) => e.addQuery), d = $((e) => e.removeQuery), f = $((e) => e.getCurrentState), m = $((e) => e.getMergeKeys), h = $((e) => e.isMultiQueryMode), g = f(), _ = h(), v = m(), y = $((e) => l(e.charts[e.analysisType]?.chartType ?? "")), b = U(() => {
|
|
3011
3065
|
let e = i[a] || g;
|
|
3012
|
-
return
|
|
3066
|
+
return Me(e.metrics, e.breakdowns, e.filters, e.order, !1, e.limit, y);
|
|
3013
3067
|
}, [
|
|
3014
3068
|
i,
|
|
3015
3069
|
a,
|
|
@@ -3017,7 +3071,7 @@ function Un(e = {}) {
|
|
|
3017
3071
|
y
|
|
3018
3072
|
]), x = U(() => {
|
|
3019
3073
|
let e = i[0]?.breakdowns || [];
|
|
3020
|
-
return i.map((t, n) =>
|
|
3074
|
+
return i.map((t, n) => Me(t.metrics, o === "merge" && n > 0 ? e : t.breakdowns, t.filters, t.order, !1, t.limit, y));
|
|
3021
3075
|
}, [
|
|
3022
3076
|
i,
|
|
3023
3077
|
o,
|
|
@@ -3036,7 +3090,7 @@ function Un(e = {}) {
|
|
|
3036
3090
|
i.length,
|
|
3037
3091
|
o,
|
|
3038
3092
|
v
|
|
3039
|
-
]), C = U(() => _ ?
|
|
3093
|
+
]), C = U(() => _ ? Wn(x, o, v || []) : null, [
|
|
3040
3094
|
_,
|
|
3041
3095
|
x,
|
|
3042
3096
|
o,
|
|
@@ -3073,51 +3127,51 @@ function Un(e = {}) {
|
|
|
3073
3127
|
a,
|
|
3074
3128
|
i,
|
|
3075
3129
|
g.breakdowns
|
|
3076
|
-
]), O = $((e) => e.analysisType), k = $((e) => e.funnelBindingKey),
|
|
3130
|
+
]), O = $((e) => e.analysisType), k = $((e) => e.funnelBindingKey), ee = $((e) => e.funnelCube), A = $((e) => e.funnelSteps), te = $((e) => e.activeFunnelStepIndex), j = $((e) => e.funnelTimeDimension), M = U(() => O !== "funnel" || !k?.dimension || !j || !A || A.length < 2 ? !1 : A.every((e) => e.filters.length > 0), [
|
|
3077
3131
|
O,
|
|
3078
3132
|
k,
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
]),
|
|
3133
|
+
j,
|
|
3134
|
+
A
|
|
3135
|
+
]), ne = $((e) => e.charts.funnel?.chartType) || "funnel", N = $((e) => e.charts.funnel?.chartConfig), re = U(() => N || {}, [N]), ie = $((e) => e.charts.funnel?.displayConfig), ae = U(() => ie || {
|
|
3082
3136
|
showLegend: !0,
|
|
3083
3137
|
showGrid: !0,
|
|
3084
3138
|
showTooltip: !0
|
|
3085
|
-
}, [
|
|
3139
|
+
}, [ie]), P = $((e) => e.flowCube), F = $((e) => e.flowBindingKey), oe = $((e) => e.flowTimeDimension), se = $((e) => e.eventDimension), I = $((e) => e.startingStep), L = $((e) => e.stepsBefore), ce = $((e) => e.stepsAfter), le = $((e) => e.joinStrategy), ue = $((e) => e.charts.flow?.displayConfig), de = U(() => ue || {
|
|
3086
3140
|
showLegend: !0,
|
|
3087
3141
|
showGrid: !0,
|
|
3088
3142
|
showTooltip: !0
|
|
3089
|
-
}, [
|
|
3143
|
+
}, [ue]), R = $((e) => e.charts.flow?.chartType) || "sankey", z = $((e) => e.buildFunnelQueryFromSteps), fe = U(() => O === "funnel" ? z() : null, [
|
|
3090
3144
|
O,
|
|
3091
3145
|
z,
|
|
3092
|
-
|
|
3146
|
+
A
|
|
3093
3147
|
]), pe = $((e) => e.buildFlowQuery), me = U(() => O === "flow" ? pe() : null, [
|
|
3094
3148
|
O,
|
|
3095
3149
|
pe,
|
|
3150
|
+
P,
|
|
3096
3151
|
F,
|
|
3097
|
-
I,
|
|
3098
|
-
ae,
|
|
3099
3152
|
oe,
|
|
3153
|
+
se,
|
|
3154
|
+
I,
|
|
3100
3155
|
L,
|
|
3156
|
+
ce,
|
|
3101
3157
|
R,
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
ce
|
|
3105
|
-
]), he = $((e) => e.retentionCube), ge = $((e) => e.retentionBindingKey), B = $((e) => e.retentionTimeDimension), _e = $((e) => e.retentionDateRange), ve = $((e) => e.retentionCohortFilters), ye = $((e) => e.retentionActivityFilters), H = $((e) => e.retentionBreakdowns), W = $((e) => e.retentionViewGranularity), K = $((e) => e.retentionPeriods), q = $((e) => e.retentionType), J = $((e) => e.buildRetentionQuery), be = $((e) => e.getRetentionValidation), xe = $((e) => e.charts.retention?.displayConfig), Se = U(() => O === "retention" ? J() : null, [
|
|
3158
|
+
le
|
|
3159
|
+
]), he = $((e) => e.retentionCube), ge = $((e) => e.retentionBindingKey), B = $((e) => e.retentionTimeDimension), _e = $((e) => e.retentionDateRange), ve = $((e) => e.retentionCohortFilters), ye = $((e) => e.retentionActivityFilters), H = $((e) => e.retentionBreakdowns), W = $((e) => e.retentionViewGranularity), be = $((e) => e.retentionPeriods), K = $((e) => e.retentionType), q = $((e) => e.buildRetentionQuery), xe = $((e) => e.getRetentionValidation), J = $((e) => e.charts.retention?.displayConfig), Se = U(() => O === "retention" ? q() : null, [
|
|
3106
3160
|
O,
|
|
3107
|
-
|
|
3161
|
+
q,
|
|
3108
3162
|
he,
|
|
3109
3163
|
ge,
|
|
3110
3164
|
B,
|
|
3111
3165
|
_e,
|
|
3112
3166
|
H,
|
|
3113
3167
|
W,
|
|
3168
|
+
be,
|
|
3114
3169
|
K,
|
|
3115
|
-
q,
|
|
3116
3170
|
ve,
|
|
3117
3171
|
ye
|
|
3118
|
-
]), Ce = U(() => O === "retention" ?
|
|
3172
|
+
]), Ce = U(() => O === "retention" ? xe() : null, [
|
|
3119
3173
|
O,
|
|
3120
|
-
|
|
3174
|
+
xe,
|
|
3121
3175
|
he,
|
|
3122
3176
|
ge,
|
|
3123
3177
|
B,
|
|
@@ -3128,11 +3182,11 @@ function Un(e = {}) {
|
|
|
3128
3182
|
me,
|
|
3129
3183
|
fe,
|
|
3130
3184
|
w
|
|
3131
|
-
]), { chartType: Te, chartConfig:
|
|
3185
|
+
]), { chartType: Te, chartConfig: Ee, displayConfig: De } = $(n(Fn)), Oe = $((e) => e.userManuallySelectedChart), ke = $((e) => e.localPaletteName), Ae = $((e) => e.setChartTypeManual), je = $((e) => e.setChartConfig), Y = $((e) => e.setDisplayConfig), Ne = $((e) => e.setFunnelChartType), Pe = $((e) => e.setFunnelChartConfig), Fe = $((e) => e.setFunnelDisplayConfig), Ie = $((e) => e.setLocalPaletteName), Le = $((e) => e.setUserManuallySelectedChart), Re = V((e) => {
|
|
3132
3186
|
if (O === "funnel") Ne(e);
|
|
3133
3187
|
else {
|
|
3134
3188
|
Ae(e);
|
|
3135
|
-
let { chartConfig: t } =
|
|
3189
|
+
let { chartConfig: t } = Lt(T, E, e);
|
|
3136
3190
|
je(t);
|
|
3137
3191
|
}
|
|
3138
3192
|
}, [
|
|
@@ -3149,12 +3203,12 @@ function Un(e = {}) {
|
|
|
3149
3203
|
Pe,
|
|
3150
3204
|
je
|
|
3151
3205
|
]), Be = V((e) => {
|
|
3152
|
-
O === "funnel" ? Fe(e) :
|
|
3206
|
+
O === "funnel" ? Fe(e) : Y(e);
|
|
3153
3207
|
}, [
|
|
3154
3208
|
O,
|
|
3155
3209
|
Fe,
|
|
3156
|
-
|
|
3157
|
-
]), Ve = U(() =>
|
|
3210
|
+
Y
|
|
3211
|
+
]), Ve = U(() => Ft(T, E), [T, E]), He = U(() => t ? Array.isArray(t) && typeof t[0] == "string" ? {
|
|
3158
3212
|
name: "custom",
|
|
3159
3213
|
label: "Custom",
|
|
3160
3214
|
colors: t,
|
|
@@ -3183,33 +3237,33 @@ function Un(e = {}) {
|
|
|
3183
3237
|
displayConfig: e
|
|
3184
3238
|
}
|
|
3185
3239
|
} }));
|
|
3186
|
-
}, [r]), Ge = $((e) => e.activeTab), Ke = $((e) => e.activeView), qe = $((e) => e.displayLimit), Je = $((e) => e.showFieldModal), Ye = $((e) => e.fieldModalMode), Xe = $((e) => e.setActiveTab), Ze = $((e) => e.setActiveView), Qe = $((e) => e.setDisplayLimit), $e = $((e) => e.closeFieldModal), [et, tt] = G(0), nt = $((e) => e.openMetricsModal), rt = $((e) => e.addMetric), it = $((e) => e.removeMetric), at = $((e) => e.toggleMetric), ot = $((e) => e.reorderMetrics), st = $((e) => e.openBreakdownsModal), ct = $((e) => e.addBreakdown), lt = $((e) => e.removeBreakdown), ut = $((e) => e.toggleBreakdown), dt = $((e) => e.setBreakdownGranularity), ft = $((e) => e.toggleBreakdownComparison), pt = $((e) => e.reorderBreakdowns), mt = $((e) => e.setFilters), ht = $((e) => e.dropFieldToFilter), gt = $((e) => e.setOrder), _t = $((e) => e.setLimit), vt = $((e) => e.clearQuery), yt = $((e) => e.clearCurrentMode), bt = $((e) => e.setFunnelBindingKey), xt = $((e) => e.setAnalysisType), St = $((e) => e.setFunnelCube), Ct = $((e) => e.addFunnelStep), wt = $((e) => e.removeFunnelStep), Tt = $((e) => e.updateFunnelStep), Et = $((e) => e.setActiveFunnelStepIndex), Dt = $((e) => e.reorderFunnelSteps), Ot = $((e) => e.setFunnelTimeDimension),
|
|
3187
|
-
|
|
3240
|
+
}, [r]), Ge = $((e) => e.activeTab), Ke = $((e) => e.activeView), qe = $((e) => e.displayLimit), Je = $((e) => e.showFieldModal), Ye = $((e) => e.fieldModalMode), Xe = $((e) => e.setActiveTab), Ze = $((e) => e.setActiveView), Qe = $((e) => e.setDisplayLimit), $e = $((e) => e.closeFieldModal), [et, tt] = G(0), nt = $((e) => e.openMetricsModal), rt = $((e) => e.addMetric), it = $((e) => e.removeMetric), at = $((e) => e.toggleMetric), ot = $((e) => e.reorderMetrics), st = $((e) => e.openBreakdownsModal), ct = $((e) => e.addBreakdown), lt = $((e) => e.removeBreakdown), ut = $((e) => e.toggleBreakdown), dt = $((e) => e.setBreakdownGranularity), ft = $((e) => e.toggleBreakdownComparison), pt = $((e) => e.reorderBreakdowns), mt = $((e) => e.setFilters), ht = $((e) => e.dropFieldToFilter), gt = $((e) => e.setOrder), _t = $((e) => e.setLimit), vt = $((e) => e.clearQuery), yt = $((e) => e.clearCurrentMode), bt = $((e) => e.setFunnelBindingKey), xt = $((e) => e.setAnalysisType), St = $((e) => e.setFunnelCube), Ct = $((e) => e.addFunnelStep), wt = $((e) => e.removeFunnelStep), Tt = $((e) => e.updateFunnelStep), Et = $((e) => e.setActiveFunnelStepIndex), Dt = $((e) => e.reorderFunnelSteps), Ot = $((e) => e.setFunnelTimeDimension), kt = $((e) => e.setFlowCube), At = $((e) => e.setFlowBindingKey), jt = $((e) => e.setFlowTimeDimension), Mt = $((e) => e.setEventDimension), Nt = $((e) => e.setStartingStepName), Pt = $((e) => e.setStartingStepFilters), It = $((e) => e.setStepsBefore), Rt = $((e) => e.setStepsAfter), zt = $((e) => e.setJoinStrategy), Bt = $((e) => e.setRetentionCube), Vt = $((e) => e.setRetentionBindingKey), Ht = $((e) => e.setRetentionTimeDimension), Ut = $((e) => e.setRetentionDateRange), Wt = $((e) => e.setRetentionCohortFilters), Gt = $((e) => e.setRetentionActivityFilters), Kt = $((e) => e.setRetentionBreakdowns), qt = $((e) => e.addRetentionBreakdown), Jt = $((e) => e.removeRetentionBreakdown), Yt = $((e) => e.setRetentionViewGranularity), Xt = $((e) => e.setRetentionPeriods), Zt = $((e) => e.setRetentionType), Qt = $((e) => e.getValidation), X = U(() => Qt(), [
|
|
3241
|
+
Qt,
|
|
3188
3242
|
i,
|
|
3189
3243
|
O,
|
|
3190
|
-
|
|
3244
|
+
A,
|
|
3191
3245
|
k,
|
|
3192
|
-
|
|
3246
|
+
j,
|
|
3247
|
+
P,
|
|
3193
3248
|
F,
|
|
3194
|
-
I,
|
|
3195
|
-
ae,
|
|
3196
3249
|
oe,
|
|
3197
|
-
L,
|
|
3198
|
-
R,
|
|
3199
3250
|
se,
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3251
|
+
I,
|
|
3252
|
+
L,
|
|
3253
|
+
ce,
|
|
3254
|
+
le
|
|
3255
|
+
]), Z = V((e, t) => {
|
|
3256
|
+
O === "retention" && t === "dimension" ? qt({ field: e.name }) : ut(e.name, t === "timeDimension");
|
|
3203
3257
|
}, [
|
|
3204
3258
|
O,
|
|
3205
|
-
|
|
3259
|
+
qt,
|
|
3206
3260
|
ut
|
|
3207
|
-
]),
|
|
3208
|
-
Ye === "metrics" && t === "measure" ? at(e.name) : Ye === "breakdown" &&
|
|
3261
|
+
]), $t = V((e, t, n, r) => {
|
|
3262
|
+
Ye === "metrics" && t === "measure" ? at(e.name) : Ye === "breakdown" && Z(e, t), r || $e();
|
|
3209
3263
|
}, [
|
|
3210
3264
|
Ye,
|
|
3211
3265
|
at,
|
|
3212
|
-
|
|
3266
|
+
Z,
|
|
3213
3267
|
$e
|
|
3214
3268
|
]);
|
|
3215
3269
|
return {
|
|
@@ -3231,24 +3285,24 @@ function Un(e = {}) {
|
|
|
3231
3285
|
effectiveBreakdowns: D,
|
|
3232
3286
|
analysisType: O,
|
|
3233
3287
|
funnelBindingKey: k,
|
|
3234
|
-
isFunnelModeEnabled:
|
|
3235
|
-
funnelCube:
|
|
3236
|
-
funnelSteps:
|
|
3237
|
-
activeFunnelStepIndex:
|
|
3238
|
-
funnelTimeDimension:
|
|
3239
|
-
funnelChartType:
|
|
3240
|
-
funnelChartConfig:
|
|
3241
|
-
funnelDisplayConfig:
|
|
3288
|
+
isFunnelModeEnabled: M,
|
|
3289
|
+
funnelCube: ee,
|
|
3290
|
+
funnelSteps: A,
|
|
3291
|
+
activeFunnelStepIndex: te,
|
|
3292
|
+
funnelTimeDimension: j,
|
|
3293
|
+
funnelChartType: ne,
|
|
3294
|
+
funnelChartConfig: re,
|
|
3295
|
+
funnelDisplayConfig: ae,
|
|
3242
3296
|
serverFunnelQuery: fe,
|
|
3243
|
-
flowCube:
|
|
3244
|
-
flowBindingKey:
|
|
3245
|
-
flowTimeDimension:
|
|
3246
|
-
eventDimension:
|
|
3247
|
-
startingStep:
|
|
3248
|
-
stepsBefore:
|
|
3249
|
-
stepsAfter:
|
|
3250
|
-
joinStrategy:
|
|
3251
|
-
flowDisplayConfig:
|
|
3297
|
+
flowCube: P,
|
|
3298
|
+
flowBindingKey: F,
|
|
3299
|
+
flowTimeDimension: oe,
|
|
3300
|
+
eventDimension: se,
|
|
3301
|
+
startingStep: I,
|
|
3302
|
+
stepsBefore: L,
|
|
3303
|
+
stepsAfter: ce,
|
|
3304
|
+
joinStrategy: le,
|
|
3305
|
+
flowDisplayConfig: de,
|
|
3252
3306
|
serverFlowQuery: me,
|
|
3253
3307
|
retentionCube: he,
|
|
3254
3308
|
retentionBindingKey: ge,
|
|
@@ -3258,13 +3312,13 @@ function Un(e = {}) {
|
|
|
3258
3312
|
retentionActivityFilters: ye,
|
|
3259
3313
|
retentionBreakdowns: H,
|
|
3260
3314
|
retentionViewGranularity: W,
|
|
3261
|
-
retentionPeriods:
|
|
3262
|
-
retentionType:
|
|
3263
|
-
retentionDisplayConfig:
|
|
3315
|
+
retentionPeriods: be,
|
|
3316
|
+
retentionType: K,
|
|
3317
|
+
retentionDisplayConfig: J,
|
|
3264
3318
|
serverRetentionQuery: Se,
|
|
3265
3319
|
retentionValidation: Ce,
|
|
3266
3320
|
chartType: Te,
|
|
3267
|
-
chartConfig:
|
|
3321
|
+
chartConfig: Ee,
|
|
3268
3322
|
displayConfig: De,
|
|
3269
3323
|
colorPalette: He,
|
|
3270
3324
|
localPaletteName: ke,
|
|
@@ -3276,7 +3330,7 @@ function Un(e = {}) {
|
|
|
3276
3330
|
showFieldModal: Je,
|
|
3277
3331
|
fieldModalMode: Ye,
|
|
3278
3332
|
activeTableIndex: et,
|
|
3279
|
-
adapterValidation:
|
|
3333
|
+
adapterValidation: X,
|
|
3280
3334
|
getQueryConfig: V(() => {
|
|
3281
3335
|
let e = r.getState();
|
|
3282
3336
|
return e.analysisType === "funnel" ? e.buildFunnelQueryFromSteps() || e.buildCurrentQuery() : e.queryStates.length > 1 ? {
|
|
@@ -3296,13 +3350,13 @@ function Un(e = {}) {
|
|
|
3296
3350
|
displayConfig: t.displayConfig
|
|
3297
3351
|
} : {
|
|
3298
3352
|
chartType: Te,
|
|
3299
|
-
chartConfig:
|
|
3353
|
+
chartConfig: Ee,
|
|
3300
3354
|
displayConfig: De
|
|
3301
3355
|
};
|
|
3302
3356
|
}, [
|
|
3303
3357
|
r,
|
|
3304
3358
|
Te,
|
|
3305
|
-
|
|
3359
|
+
Ee,
|
|
3306
3360
|
De
|
|
3307
3361
|
]),
|
|
3308
3362
|
getAnalysisType: V(() => r.getState().analysisType, [r]),
|
|
@@ -3337,13 +3391,13 @@ function Un(e = {}) {
|
|
|
3337
3391
|
reorderFunnelSteps: Dt,
|
|
3338
3392
|
setFunnelTimeDimension: Ot,
|
|
3339
3393
|
setFunnelDisplayConfig: Fe,
|
|
3340
|
-
setFlowCube:
|
|
3341
|
-
setFlowBindingKey:
|
|
3342
|
-
setFlowTimeDimension:
|
|
3343
|
-
setEventDimension:
|
|
3344
|
-
setStartingStepName:
|
|
3345
|
-
setStartingStepFilters:
|
|
3346
|
-
setStepsBefore:
|
|
3394
|
+
setFlowCube: kt,
|
|
3395
|
+
setFlowBindingKey: At,
|
|
3396
|
+
setFlowTimeDimension: jt,
|
|
3397
|
+
setEventDimension: Mt,
|
|
3398
|
+
setStartingStepName: Nt,
|
|
3399
|
+
setStartingStepFilters: Pt,
|
|
3400
|
+
setStepsBefore: It,
|
|
3347
3401
|
setStepsAfter: Rt,
|
|
3348
3402
|
setJoinStrategy: zt,
|
|
3349
3403
|
setFlowDisplayConfig: Ue,
|
|
@@ -3354,11 +3408,11 @@ function Un(e = {}) {
|
|
|
3354
3408
|
setRetentionCohortFilters: Wt,
|
|
3355
3409
|
setRetentionActivityFilters: Gt,
|
|
3356
3410
|
setRetentionBreakdowns: Kt,
|
|
3357
|
-
addRetentionBreakdown:
|
|
3358
|
-
removeRetentionBreakdown:
|
|
3359
|
-
setRetentionViewGranularity:
|
|
3360
|
-
setRetentionPeriods:
|
|
3361
|
-
setRetentionType:
|
|
3411
|
+
addRetentionBreakdown: qt,
|
|
3412
|
+
removeRetentionBreakdown: Jt,
|
|
3413
|
+
setRetentionViewGranularity: Yt,
|
|
3414
|
+
setRetentionPeriods: Xt,
|
|
3415
|
+
setRetentionType: Zt,
|
|
3362
3416
|
setRetentionDisplayConfig: We,
|
|
3363
3417
|
setChartType: Re,
|
|
3364
3418
|
setChartConfig: ze,
|
|
@@ -3372,19 +3426,19 @@ function Un(e = {}) {
|
|
|
3372
3426
|
setActiveTableIndex: tt,
|
|
3373
3427
|
clearQuery: vt,
|
|
3374
3428
|
clearCurrentMode: yt,
|
|
3375
|
-
handleFieldSelected:
|
|
3429
|
+
handleFieldSelected: $t
|
|
3376
3430
|
}
|
|
3377
3431
|
};
|
|
3378
3432
|
}
|
|
3379
3433
|
//#endregion
|
|
3380
3434
|
//#region src/client/hooks/analysisQueryExecutionModes.ts
|
|
3381
|
-
function
|
|
3435
|
+
function Xn(e) {
|
|
3382
3436
|
return e.isRetentionMode ? "retention" : e.isFlowMode ? "flow" : e.isFunnelMode ? "funnel" : e.isMultiMode ? "multi" : "single";
|
|
3383
3437
|
}
|
|
3384
|
-
function
|
|
3438
|
+
function Zn(e, t) {
|
|
3385
3439
|
return t[e];
|
|
3386
3440
|
}
|
|
3387
|
-
function
|
|
3441
|
+
function Qn(e) {
|
|
3388
3442
|
return {
|
|
3389
3443
|
funnelExecutedQueries: e.isFunnelMode && e.funnelExecutedQueries && e.funnelExecutedQueries.length > 0 ? e.funnelExecutedQueries : null,
|
|
3390
3444
|
funnelServerQuery: e.isFunnelMode ? e.funnelServerQuery : null,
|
|
@@ -3397,7 +3451,7 @@ function Kn(e) {
|
|
|
3397
3451
|
retentionDebugData: e.isRetentionMode ? e.retentionDebugData : null
|
|
3398
3452
|
};
|
|
3399
3453
|
}
|
|
3400
|
-
function
|
|
3454
|
+
function $n(e) {
|
|
3401
3455
|
return {
|
|
3402
3456
|
single: !e.isValidQuery || !e.isSingleMode,
|
|
3403
3457
|
multi: !e.hasMultiQueryConfig || !e.isMultiMode,
|
|
@@ -3407,11 +3461,11 @@ function qn(e) {
|
|
|
3407
3461
|
dryRun: !!(!e.isValidQuery || e.isFunnelMode || e.isFlowMode || e.isRetentionMode)
|
|
3408
3462
|
};
|
|
3409
3463
|
}
|
|
3410
|
-
function
|
|
3464
|
+
function er(e) {
|
|
3411
3465
|
let { hasResults: t, initialData: n, isValidQuery: r, isLoading: i, isFetching: a, error: o } = e;
|
|
3412
3466
|
return n && n.length > 0 && !t ? "success" : r ? i && !t ? "loading" : a && t ? "refreshing" : o ? "error" : t ? "success" : "idle" : "idle";
|
|
3413
3467
|
}
|
|
3414
|
-
function
|
|
3468
|
+
function tr(e) {
|
|
3415
3469
|
return e.isRetentionMode && e.retentionChartData ? e.retentionChartData.rows.map((e) => ({
|
|
3416
3470
|
"Retention.period": `P${e.period}`,
|
|
3417
3471
|
"Retention.rate": e.retentionRate,
|
|
@@ -3422,8 +3476,8 @@ function Yn(e) {
|
|
|
3422
3476
|
}
|
|
3423
3477
|
//#endregion
|
|
3424
3478
|
//#region src/client/hooks/useAnalysisQuery.ts
|
|
3425
|
-
function
|
|
3426
|
-
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 } =
|
|
3479
|
+
function nr(e) {
|
|
3480
|
+
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 } = R(), g = u === "funnel" || l, _ = u === "flow", v = u === "retention", y = u === "query" && i, b = u === "query" && !i, x = u === "funnel" && !!d, S = Xn({
|
|
3427
3481
|
isRetentionMode: v,
|
|
3428
3482
|
isFlowMode: _,
|
|
3429
3483
|
isFunnelMode: g,
|
|
@@ -3433,7 +3487,7 @@ function Xn(e) {
|
|
|
3433
3487
|
g,
|
|
3434
3488
|
c,
|
|
3435
3489
|
n
|
|
3436
|
-
]), w =
|
|
3490
|
+
]), w = $n({
|
|
3437
3491
|
isValidQuery: a,
|
|
3438
3492
|
isSingleMode: b,
|
|
3439
3493
|
isMultiMode: y,
|
|
@@ -3445,46 +3499,46 @@ function Xn(e) {
|
|
|
3445
3499
|
hasServerFunnelQuery: !!d,
|
|
3446
3500
|
hasServerFlowQuery: !!f,
|
|
3447
3501
|
hasServerRetentionQuery: !!p
|
|
3448
|
-
}), T =
|
|
3502
|
+
}), T = P(t, {
|
|
3449
3503
|
skip: w.single,
|
|
3450
3504
|
debounceMs: 300
|
|
3451
|
-
}), E =
|
|
3505
|
+
}), E = se(r, {
|
|
3452
3506
|
skip: w.multi,
|
|
3453
3507
|
debounceMs: 300
|
|
3454
|
-
}), D =
|
|
3508
|
+
}), D = ce(C, {
|
|
3455
3509
|
skip: w.funnel,
|
|
3456
3510
|
debounceMs: 300,
|
|
3457
3511
|
prebuiltServerQuery: x ? d : void 0
|
|
3458
|
-
}), O =
|
|
3512
|
+
}), O = de(f ?? null, {
|
|
3459
3513
|
skip: w.flow,
|
|
3460
3514
|
debounceMs: 300
|
|
3461
|
-
}), k =
|
|
3515
|
+
}), k = oe(p ?? null, {
|
|
3462
3516
|
skip: w.retention,
|
|
3463
3517
|
debounceMs: 300,
|
|
3464
3518
|
getFieldLabel: h
|
|
3465
|
-
}),
|
|
3519
|
+
}), ee = pe({
|
|
3466
3520
|
queries: i ? n : [t],
|
|
3467
3521
|
isMultiQueryMode: i,
|
|
3468
3522
|
skip: w.dryRun
|
|
3469
|
-
}),
|
|
3523
|
+
}), A = fe(D.serverQuery, { skip: !g || !D.serverQuery }), te = fe(O.serverQuery, { skip: !_ || !O.serverQuery }), j = fe(p, { skip: !v || !p }), M = Zn(S, {
|
|
3470
3524
|
retention: k.isLoading || k.isDebouncing,
|
|
3471
3525
|
flow: O.isLoading || O.isDebouncing,
|
|
3472
3526
|
funnel: D.isExecuting || D.isDebouncing,
|
|
3473
3527
|
multi: E.isLoading,
|
|
3474
3528
|
single: T.isLoading
|
|
3475
|
-
}),
|
|
3529
|
+
}), ne = Zn(S, {
|
|
3476
3530
|
retention: k.isFetching,
|
|
3477
3531
|
flow: O.isFetching,
|
|
3478
3532
|
funnel: D.isExecuting,
|
|
3479
3533
|
multi: E.isFetching,
|
|
3480
3534
|
single: T.isFetching
|
|
3481
|
-
}),
|
|
3535
|
+
}), N = Zn(S, {
|
|
3482
3536
|
retention: k.error,
|
|
3483
3537
|
flow: O.error,
|
|
3484
3538
|
funnel: D.error,
|
|
3485
3539
|
multi: E.error,
|
|
3486
3540
|
single: T.error
|
|
3487
|
-
}),
|
|
3541
|
+
}), re = !(!T.debouncedQuery && !E.debouncedConfig && D.isDebouncing && O.isDebouncing && k.isDebouncing), ie = V((e) => {
|
|
3488
3542
|
switch (S) {
|
|
3489
3543
|
case "retention":
|
|
3490
3544
|
k.execute(e);
|
|
@@ -3507,8 +3561,8 @@ function Xn(e) {
|
|
|
3507
3561
|
D,
|
|
3508
3562
|
E,
|
|
3509
3563
|
T
|
|
3510
|
-
]),
|
|
3511
|
-
hasResults:
|
|
3564
|
+
]), ae = U(() => er({
|
|
3565
|
+
hasResults: Zn(S, {
|
|
3512
3566
|
retention: k.chartData,
|
|
3513
3567
|
flow: O.data,
|
|
3514
3568
|
funnel: D.chartData,
|
|
@@ -3517,14 +3571,14 @@ function Xn(e) {
|
|
|
3517
3571
|
}),
|
|
3518
3572
|
initialData: o,
|
|
3519
3573
|
isValidQuery: a,
|
|
3520
|
-
isLoading:
|
|
3521
|
-
isFetching:
|
|
3522
|
-
error:
|
|
3574
|
+
isLoading: M,
|
|
3575
|
+
isFetching: ne,
|
|
3576
|
+
error: N
|
|
3523
3577
|
}), [
|
|
3524
3578
|
a,
|
|
3579
|
+
M,
|
|
3580
|
+
ne,
|
|
3525
3581
|
N,
|
|
3526
|
-
te,
|
|
3527
|
-
P,
|
|
3528
3582
|
T.rawData,
|
|
3529
3583
|
E.data,
|
|
3530
3584
|
D.chartData,
|
|
@@ -3532,7 +3586,7 @@ function Xn(e) {
|
|
|
3532
3586
|
k.chartData,
|
|
3533
3587
|
o,
|
|
3534
3588
|
S
|
|
3535
|
-
]),
|
|
3589
|
+
]), F = U(() => tr({
|
|
3536
3590
|
isRetentionMode: v,
|
|
3537
3591
|
isFlowMode: _,
|
|
3538
3592
|
isFunnelMode: g,
|
|
@@ -3554,25 +3608,25 @@ function Xn(e) {
|
|
|
3554
3608
|
g,
|
|
3555
3609
|
_,
|
|
3556
3610
|
v
|
|
3557
|
-
]),
|
|
3611
|
+
]), I = U(() => g && D.stepResults ? D.stepResults.map((e) => e.data) : !y || !E.perQueryData ? null : E.perQueryData, [
|
|
3558
3612
|
y,
|
|
3559
3613
|
g,
|
|
3560
3614
|
E.perQueryData,
|
|
3561
3615
|
D.stepResults
|
|
3562
|
-
]), { funnelExecutedQueries:
|
|
3616
|
+
]), { funnelExecutedQueries: L, funnelServerQuery: le, funnelDebugData: ue, flowServerQuery: z, flowChartData: he, flowDebugData: ge, retentionServerQuery: B, retentionChartData: _e, retentionDebugData: ve } = Qn({
|
|
3563
3617
|
isFunnelMode: g,
|
|
3564
3618
|
isFlowMode: _,
|
|
3565
3619
|
isRetentionMode: v,
|
|
3566
3620
|
funnelExecutedQueries: D.executedQueries,
|
|
3567
3621
|
funnelServerQuery: D.serverQuery,
|
|
3568
|
-
funnelDebugData:
|
|
3622
|
+
funnelDebugData: A.debugData,
|
|
3569
3623
|
flowServerQuery: O.serverQuery,
|
|
3570
3624
|
flowData: O.data,
|
|
3571
|
-
flowDebugData:
|
|
3625
|
+
flowDebugData: te.debugData,
|
|
3572
3626
|
retentionServerQuery: p ?? null,
|
|
3573
3627
|
retentionChartData: k.chartData,
|
|
3574
|
-
retentionDebugData:
|
|
3575
|
-
}), ye = U(() =>
|
|
3628
|
+
retentionDebugData: j.debugData
|
|
3629
|
+
}), ye = U(() => Zn(S, {
|
|
3576
3630
|
retention: k.needsRefresh,
|
|
3577
3631
|
flow: O.needsRefresh,
|
|
3578
3632
|
funnel: D.needsRefresh,
|
|
@@ -3588,18 +3642,18 @@ function Xn(e) {
|
|
|
3588
3642
|
if (b && T.warnings) return T.warnings;
|
|
3589
3643
|
}, [b, T.warnings]);
|
|
3590
3644
|
return {
|
|
3591
|
-
executionStatus:
|
|
3592
|
-
executionResults:
|
|
3593
|
-
perQueryResults:
|
|
3594
|
-
isLoading:
|
|
3595
|
-
isFetching:
|
|
3596
|
-
error:
|
|
3597
|
-
debugDataPerQuery:
|
|
3598
|
-
hasDebounced:
|
|
3599
|
-
refetch:
|
|
3600
|
-
funnelExecutedQueries:
|
|
3601
|
-
funnelServerQuery:
|
|
3602
|
-
funnelDebugData:
|
|
3645
|
+
executionStatus: ae,
|
|
3646
|
+
executionResults: F,
|
|
3647
|
+
perQueryResults: I,
|
|
3648
|
+
isLoading: M,
|
|
3649
|
+
isFetching: ne,
|
|
3650
|
+
error: N,
|
|
3651
|
+
debugDataPerQuery: ee.debugDataPerQuery,
|
|
3652
|
+
hasDebounced: re,
|
|
3653
|
+
refetch: ie,
|
|
3654
|
+
funnelExecutedQueries: L,
|
|
3655
|
+
funnelServerQuery: le,
|
|
3656
|
+
funnelDebugData: ue,
|
|
3603
3657
|
flowServerQuery: z,
|
|
3604
3658
|
flowChartData: he,
|
|
3605
3659
|
flowDebugData: ge,
|
|
@@ -3613,43 +3667,43 @@ function Xn(e) {
|
|
|
3613
3667
|
}
|
|
3614
3668
|
//#endregion
|
|
3615
3669
|
//#region src/client/utils/shareUtils.ts
|
|
3616
|
-
var
|
|
3617
|
-
function
|
|
3670
|
+
var rr = o(), ir = 1800, ar = "share=";
|
|
3671
|
+
function or(e) {
|
|
3618
3672
|
let t = JSON.stringify(e);
|
|
3619
|
-
return (0,
|
|
3673
|
+
return (0, rr.compressToEncodedURIComponent)(t);
|
|
3620
3674
|
}
|
|
3621
|
-
function
|
|
3675
|
+
function sr(e) {
|
|
3622
3676
|
try {
|
|
3623
|
-
let t = (0,
|
|
3677
|
+
let t = (0, rr.decompressFromEncodedURIComponent)(e);
|
|
3624
3678
|
if (!t) return null;
|
|
3625
3679
|
let n = JSON.parse(t);
|
|
3626
|
-
return
|
|
3680
|
+
return ee(n) ? n : (console.warn("[shareUtils] Invalid AnalysisConfig in share URL"), null);
|
|
3627
3681
|
} catch {
|
|
3628
3682
|
return null;
|
|
3629
3683
|
}
|
|
3630
3684
|
}
|
|
3631
|
-
function
|
|
3632
|
-
let t =
|
|
3685
|
+
function cr(e) {
|
|
3686
|
+
let t = or(e);
|
|
3633
3687
|
return {
|
|
3634
|
-
ok: t.length <=
|
|
3688
|
+
ok: t.length <= ir,
|
|
3635
3689
|
size: t.length,
|
|
3636
|
-
maxSize:
|
|
3690
|
+
maxSize: ir
|
|
3637
3691
|
};
|
|
3638
3692
|
}
|
|
3639
|
-
function
|
|
3640
|
-
let t =
|
|
3641
|
-
if (t.length <=
|
|
3693
|
+
function lr(e) {
|
|
3694
|
+
let t = or(e);
|
|
3695
|
+
if (t.length <= ir) return {
|
|
3642
3696
|
encoded: t,
|
|
3643
3697
|
queryOnly: !1
|
|
3644
3698
|
};
|
|
3645
|
-
let n =
|
|
3699
|
+
let n = or({
|
|
3646
3700
|
version: e.version,
|
|
3647
3701
|
analysisType: e.analysisType,
|
|
3648
3702
|
activeView: e.activeView,
|
|
3649
3703
|
charts: {},
|
|
3650
3704
|
query: e.query
|
|
3651
3705
|
});
|
|
3652
|
-
return n.length <=
|
|
3706
|
+
return n.length <= ir ? {
|
|
3653
3707
|
encoded: n,
|
|
3654
3708
|
queryOnly: !0
|
|
3655
3709
|
} : {
|
|
@@ -3657,27 +3711,27 @@ function rr(e) {
|
|
|
3657
3711
|
queryOnly: !0
|
|
3658
3712
|
};
|
|
3659
3713
|
}
|
|
3660
|
-
function
|
|
3661
|
-
let { encoded: t } =
|
|
3662
|
-
return t ? `${window.location.origin}${window.location.pathname}#${
|
|
3714
|
+
function ur(e) {
|
|
3715
|
+
let { encoded: t } = lr(e);
|
|
3716
|
+
return t ? `${window.location.origin}${window.location.pathname}#${ar}${t}` : null;
|
|
3663
3717
|
}
|
|
3664
|
-
function
|
|
3718
|
+
function dr() {
|
|
3665
3719
|
if (typeof window > "u") return null;
|
|
3666
3720
|
let e = window.location.hash;
|
|
3667
|
-
return !e || !e.startsWith(`#${
|
|
3721
|
+
return !e || !e.startsWith(`#${ar}`) ? null : e.slice(7);
|
|
3668
3722
|
}
|
|
3669
|
-
function
|
|
3723
|
+
function fr() {
|
|
3670
3724
|
if (typeof window > "u") return;
|
|
3671
3725
|
let e = new URL(window.location.href);
|
|
3672
3726
|
e.hash = "", window.history.replaceState(null, "", e.toString());
|
|
3673
3727
|
}
|
|
3674
|
-
function
|
|
3675
|
-
let e =
|
|
3676
|
-
return e ?
|
|
3728
|
+
function pr() {
|
|
3729
|
+
let e = dr();
|
|
3730
|
+
return e ? sr(e) : null;
|
|
3677
3731
|
}
|
|
3678
3732
|
//#endregion
|
|
3679
3733
|
//#region src/client/components/AIAssistant/utils.ts
|
|
3680
|
-
async function
|
|
3734
|
+
async function mr(e, t, n = "/api/ai/generate", r) {
|
|
3681
3735
|
let i = { text: t }, a = {
|
|
3682
3736
|
"Content-Type": "application/json",
|
|
3683
3737
|
...r
|
|
@@ -3707,21 +3761,21 @@ async function cr(e, t, n = "/api/ai/generate", r) {
|
|
|
3707
3761
|
let s = await o.json();
|
|
3708
3762
|
return console.log("✅ Client: Successfully generated content"), s;
|
|
3709
3763
|
}
|
|
3710
|
-
function
|
|
3764
|
+
function hr(e) {
|
|
3711
3765
|
return (e.query || "").replace(/```json\s*/g, "").replace(/```\s*/g, "").replace(/^\s*```.*\n/gm, "").trim();
|
|
3712
3766
|
}
|
|
3713
3767
|
//#endregion
|
|
3714
3768
|
//#region src/client/hooks/useAnalysisEffects.ts
|
|
3715
|
-
function
|
|
3769
|
+
function gr(e) {
|
|
3716
3770
|
return typeof e == "object" && !!e && "funnel" in e && typeof e.funnel == "object";
|
|
3717
3771
|
}
|
|
3718
|
-
function
|
|
3772
|
+
function _r(e) {
|
|
3719
3773
|
let { state: t, query: n, aiEndpoint: r = "/api/ai", onQueryChange: i, onChartConfigChange: a } = e, { storeApi: o, actions: s } = t, { apiOptions: l } = c(), u = W(!1);
|
|
3720
3774
|
H(() => {
|
|
3721
3775
|
if (u.current) return;
|
|
3722
3776
|
u.current = !0;
|
|
3723
|
-
let e =
|
|
3724
|
-
e && (o.getState().load(e),
|
|
3777
|
+
let e = pr();
|
|
3778
|
+
e && (o.getState().load(e), fr());
|
|
3725
3779
|
}, [o]), H(() => {
|
|
3726
3780
|
i && t.isValidQuery && i(t.currentQuery);
|
|
3727
3781
|
}, [
|
|
@@ -3752,9 +3806,9 @@ function dr(e) {
|
|
|
3752
3806
|
});
|
|
3753
3807
|
if (e === b.current) return;
|
|
3754
3808
|
b.current = e;
|
|
3755
|
-
let t =
|
|
3809
|
+
let t = zt(d, p, m, g);
|
|
3756
3810
|
if (t) {
|
|
3757
|
-
let { chartConfig: e } =
|
|
3811
|
+
let { chartConfig: e } = Lt(d, p, t);
|
|
3758
3812
|
v(t), y(e), s.setUserManuallySelectedChart(!1);
|
|
3759
3813
|
} else if (d.length > 0 || p.length > 0) {
|
|
3760
3814
|
if (m === "table" || m === "recordsTable") {
|
|
@@ -3764,7 +3818,7 @@ function dr(e) {
|
|
|
3764
3818
|
[e]: [...n, ...i]
|
|
3765
3819
|
});
|
|
3766
3820
|
} else if (!h.xAxis?.length && !h.yAxis?.length && !h.series?.length) {
|
|
3767
|
-
let { chartConfig: e } =
|
|
3821
|
+
let { chartConfig: e } = Lt(d, p, m);
|
|
3768
3822
|
y(e);
|
|
3769
3823
|
}
|
|
3770
3824
|
}
|
|
@@ -3861,8 +3915,8 @@ function dr(e) {
|
|
|
3861
3915
|
error: null
|
|
3862
3916
|
}));
|
|
3863
3917
|
try {
|
|
3864
|
-
let e =
|
|
3865
|
-
if (
|
|
3918
|
+
let e = hr(await mr("", x.userPrompt, r, l?.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;
|
|
3919
|
+
if (gr(i)) {
|
|
3866
3920
|
s.setAnalysisType("funnel"), T(i), s.setChartType("funnel"), o && s.setChartConfig(o), s.setActiveView("chart"), S((e) => ({
|
|
3867
3921
|
...e,
|
|
3868
3922
|
isGenerating: !1,
|
|
@@ -3912,7 +3966,7 @@ function dr(e) {
|
|
|
3912
3966
|
T,
|
|
3913
3967
|
t.analysisType,
|
|
3914
3968
|
s
|
|
3915
|
-
]),
|
|
3969
|
+
]), ee = V(() => {
|
|
3916
3970
|
S({
|
|
3917
3971
|
isOpen: !1,
|
|
3918
3972
|
userPrompt: "",
|
|
@@ -3922,7 +3976,7 @@ function dr(e) {
|
|
|
3922
3976
|
previousState: null,
|
|
3923
3977
|
previousConfig: null
|
|
3924
3978
|
});
|
|
3925
|
-
}, []),
|
|
3979
|
+
}, []), A = V(() => {
|
|
3926
3980
|
x.previousConfig ? o.getState().load(x.previousConfig) : x.previousState && (C((e) => ({
|
|
3927
3981
|
...e,
|
|
3928
3982
|
metrics: x.previousState.metrics,
|
|
@@ -3943,19 +3997,19 @@ function dr(e) {
|
|
|
3943
3997
|
o,
|
|
3944
3998
|
C,
|
|
3945
3999
|
s
|
|
3946
|
-
]), [
|
|
4000
|
+
]), [te, j] = G("idle"), M = t.effectiveIsValidQuery;
|
|
3947
4001
|
return {
|
|
3948
4002
|
aiState: x,
|
|
3949
4003
|
openAI: E,
|
|
3950
4004
|
closeAI: D,
|
|
3951
4005
|
setAIPrompt: O,
|
|
3952
4006
|
generateAI: k,
|
|
3953
|
-
acceptAI:
|
|
3954
|
-
cancelAI:
|
|
3955
|
-
shareButtonState:
|
|
4007
|
+
acceptAI: ee,
|
|
4008
|
+
cancelAI: A,
|
|
4009
|
+
shareButtonState: te,
|
|
3956
4010
|
share: V(async () => {
|
|
3957
|
-
if (!
|
|
3958
|
-
let { encoded: e, queryOnly: t } =
|
|
4011
|
+
if (!M) return;
|
|
4012
|
+
let { encoded: e, queryOnly: t } = lr(o.getState().save());
|
|
3959
4013
|
if (!e) return;
|
|
3960
4014
|
let n = `${window.location.origin}${window.location.pathname}#share=${e}`;
|
|
3961
4015
|
try {
|
|
@@ -3964,17 +4018,17 @@ function dr(e) {
|
|
|
3964
4018
|
let e = document.createElement("textarea");
|
|
3965
4019
|
e.value = n, document.body.appendChild(e), e.select(), document.execCommand("copy"), document.body.removeChild(e);
|
|
3966
4020
|
}
|
|
3967
|
-
|
|
3968
|
-
|
|
4021
|
+
j(t ? "copied-no-chart" : "copied"), setTimeout(() => {
|
|
4022
|
+
j("idle");
|
|
3969
4023
|
}, 2e3);
|
|
3970
|
-
}, [
|
|
3971
|
-
canShare:
|
|
4024
|
+
}, [M, o]),
|
|
4025
|
+
canShare: M
|
|
3972
4026
|
};
|
|
3973
4027
|
}
|
|
3974
4028
|
//#endregion
|
|
3975
4029
|
//#region src/client/hooks/useAnalysisBuilderHook.ts
|
|
3976
|
-
function
|
|
3977
|
-
let { initialData: t, externalColorPalette: n, onQueryChange: r, onChartConfigChange: i } = e, { features: a } = s(), o =
|
|
4030
|
+
function vr(e = {}) {
|
|
4031
|
+
let { initialData: t, externalColorPalette: n, onQueryChange: r, onChartConfigChange: i } = e, { features: a } = s(), o = Yn({ externalColorPalette: n }), c = nr({
|
|
3978
4032
|
currentQuery: o.currentQuery,
|
|
3979
4033
|
allQueries: o.allQueries,
|
|
3980
4034
|
multiQueryConfig: o.multiQueryConfig,
|
|
@@ -3989,7 +4043,7 @@ function fr(e = {}) {
|
|
|
3989
4043
|
serverFlowQuery: o.serverFlowQuery,
|
|
3990
4044
|
serverRetentionQuery: o.serverRetentionQuery,
|
|
3991
4045
|
retentionValidation: o.retentionValidation
|
|
3992
|
-
}), l =
|
|
4046
|
+
}), l = _r({
|
|
3993
4047
|
state: o,
|
|
3994
4048
|
query: c,
|
|
3995
4049
|
aiEndpoint: a?.aiEndpoint,
|
|
@@ -4164,7 +4218,7 @@ function fr(e = {}) {
|
|
|
4164
4218
|
}
|
|
4165
4219
|
//#endregion
|
|
4166
4220
|
//#region src/client/utils/funnelValidation.ts
|
|
4167
|
-
function
|
|
4221
|
+
function yr(e, t) {
|
|
4168
4222
|
let n = [];
|
|
4169
4223
|
if (!t?.cubes) return n;
|
|
4170
4224
|
if (typeof e.dimension == "string") {
|
|
@@ -4188,7 +4242,7 @@ function pr(e, t) {
|
|
|
4188
4242
|
}
|
|
4189
4243
|
return n;
|
|
4190
4244
|
}
|
|
4191
|
-
function
|
|
4245
|
+
function br(e) {
|
|
4192
4246
|
let t = [];
|
|
4193
4247
|
for (let n = 0; n < e.length; n++) {
|
|
4194
4248
|
let r = e[n], i = r.query;
|
|
@@ -4200,16 +4254,16 @@ function mr(e) {
|
|
|
4200
4254
|
}
|
|
4201
4255
|
return t;
|
|
4202
4256
|
}
|
|
4203
|
-
function
|
|
4257
|
+
function xr(e, t) {
|
|
4204
4258
|
if (typeof e.dimension == "string") return !0;
|
|
4205
4259
|
let n = he(t);
|
|
4206
4260
|
return n ? e.dimension.some((e) => e.cube === n) : !1;
|
|
4207
4261
|
}
|
|
4208
|
-
function
|
|
4262
|
+
function Sr(e, t) {
|
|
4209
4263
|
let n = [];
|
|
4210
4264
|
for (let r = 0; r < t.length; r++) {
|
|
4211
4265
|
let i = t[r];
|
|
4212
|
-
if (!
|
|
4266
|
+
if (!xr(e, i.query)) {
|
|
4213
4267
|
let e = he(i.query) || "unknown";
|
|
4214
4268
|
n.push({
|
|
4215
4269
|
type: "cross_cube",
|
|
@@ -4220,26 +4274,26 @@ function gr(e, t) {
|
|
|
4220
4274
|
}
|
|
4221
4275
|
return n;
|
|
4222
4276
|
}
|
|
4223
|
-
function
|
|
4277
|
+
function Cr(e) {
|
|
4224
4278
|
return e ? /^P(?:\d+Y)?(?:\d+M)?(?:\d+W)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$/.test(e) ? null : {
|
|
4225
4279
|
type: "time_window",
|
|
4226
4280
|
message: `Invalid time window format "${e}". Expected ISO 8601 duration (e.g., P7D, PT1H)`
|
|
4227
4281
|
} : null;
|
|
4228
4282
|
}
|
|
4229
|
-
function
|
|
4283
|
+
function wr(e, t) {
|
|
4230
4284
|
let n = [], r = [];
|
|
4231
4285
|
e.steps.length < 2 && n.push({
|
|
4232
4286
|
type: "general",
|
|
4233
4287
|
message: "Funnel requires at least 2 steps"
|
|
4234
|
-
}), e.bindingKey?.dimension ? (n.push(...
|
|
4288
|
+
}), e.bindingKey?.dimension ? (n.push(...yr(e.bindingKey, t)), n.push(...Sr(e.bindingKey, e.steps))) : n.push({
|
|
4235
4289
|
type: "binding_key",
|
|
4236
4290
|
message: "Binding key dimension is required"
|
|
4237
|
-
}), n.push(...
|
|
4291
|
+
}), n.push(...br(e.steps));
|
|
4238
4292
|
for (let t = 0; t < e.steps.length; t++) {
|
|
4239
|
-
let r = e.steps[t], i =
|
|
4293
|
+
let r = e.steps[t], i = Cr(r.timeToConvert);
|
|
4240
4294
|
i && (i.stepIndex = t, n.push(i));
|
|
4241
4295
|
}
|
|
4242
|
-
let i =
|
|
4296
|
+
let i = Cr(e.globalTimeWindow);
|
|
4243
4297
|
return i && n.push(i), e.steps.length > 5 && r.push({
|
|
4244
4298
|
type: "general",
|
|
4245
4299
|
message: "Funnels with more than 5 steps may have reduced performance"
|
|
@@ -4249,7 +4303,7 @@ function vr(e, t) {
|
|
|
4249
4303
|
warnings: r
|
|
4250
4304
|
};
|
|
4251
4305
|
}
|
|
4252
|
-
function
|
|
4306
|
+
function Tr(e, t) {
|
|
4253
4307
|
return t < 2 ? {
|
|
4254
4308
|
isValid: !1,
|
|
4255
4309
|
message: "Add at least 2 steps for funnel"
|
|
@@ -4258,7 +4312,7 @@ function yr(e, t) {
|
|
|
4258
4312
|
message: "Select a binding key dimension"
|
|
4259
4313
|
} : { isValid: !0 };
|
|
4260
4314
|
}
|
|
4261
|
-
function
|
|
4315
|
+
function Er(e) {
|
|
4262
4316
|
if (!e?.cubes) return [];
|
|
4263
4317
|
let t = [];
|
|
4264
4318
|
for (let n of e.cubes) if (n.dimensions) for (let e of n.dimensions) (e.type === "string" || e.type === "number") && t.push({
|
|
@@ -4268,7 +4322,7 @@ function br(e) {
|
|
|
4268
4322
|
});
|
|
4269
4323
|
return t;
|
|
4270
4324
|
}
|
|
4271
|
-
function
|
|
4325
|
+
function Dr(e) {
|
|
4272
4326
|
if (!e?.dimension) return "Select binding key...";
|
|
4273
4327
|
if (typeof e.dimension == "string") return e.dimension.split(".")[1] || e.dimension;
|
|
4274
4328
|
if (e.dimension.length > 0) {
|
|
@@ -4278,6 +4332,6 @@ function xr(e) {
|
|
|
4278
4332
|
return "Select binding key...";
|
|
4279
4333
|
}
|
|
4280
4334
|
//#endregion
|
|
4281
|
-
export {
|
|
4335
|
+
export { In as A, Nn as C, Rn as D, Pn as E, nt as F, An as M, Wt as N, Mn as O, dt as P, kn as S, jn as T, Jn as _, Sr as a, Wn as b, vr as c, ur as d, cr as f, Hn as g, Un as h, yr as i, $ as j, Ln as k, or as l, pr as m, Dr as n, wr as o, dr as p, Tr as r, br as s, Er as t, sr as u, Kn as v, Fn as w, Bn as x, Vn as y };
|
|
4282
4336
|
|
|
4283
|
-
//# sourceMappingURL=analysis-builder-shared
|
|
4337
|
+
//# sourceMappingURL=analysis-builder-shared--4LqPSum.js.map
|