drizzle-cube 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/ActivityGridChart.config-BIHNNXe8.cjs +1 -0
- package/dist/adapters/ActivityGridChart.config-D8brFtkU.js +2 -0
- package/dist/adapters/AreaChart.config-BjBnqhrD.js +2 -0
- package/dist/adapters/AreaChart.config-hCYHwAaC.cjs +1 -0
- package/dist/adapters/BarChart.config-JWskLg7a.js +2 -0
- package/dist/adapters/BarChart.config-ldUoUV-V.cjs +1 -0
- package/dist/adapters/BoxPlotChart.config-DXgi-pWk.js +2 -0
- package/dist/adapters/BoxPlotChart.config-t7CU_SEB.cjs +1 -0
- package/dist/adapters/BubbleChart.config-BqNbgcs4.js +2 -0
- package/dist/adapters/BubbleChart.config-SRbrJWj2.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-CTqj07at.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-D-KaQpN1.js +2 -0
- package/dist/adapters/DataTable.config-4QtzEm2K.js +2 -0
- package/dist/adapters/DataTable.config-C4OZyZKL.cjs +1 -0
- package/dist/adapters/DotStripChart.config-CrwF5K67.cjs +1 -0
- package/dist/adapters/DotStripChart.config-tmdykLsT.js +2 -0
- package/dist/adapters/FunnelChart.config-Dk7bb3KU.cjs +1 -0
- package/dist/adapters/FunnelChart.config-Uah6h6t6.js +2 -0
- package/dist/adapters/GaugeChart.config-BGi82n3v.cjs +1 -0
- package/dist/adapters/GaugeChart.config-DIWl6xVG.js +2 -0
- package/dist/adapters/HeatMapChart.config-C1Wl6SHf.js +2 -0
- package/dist/adapters/HeatMapChart.config-CsA67rfc.cjs +1 -0
- package/dist/adapters/KpiDelta.config-CBo61Kp9.cjs +1 -0
- package/dist/adapters/KpiDelta.config-CgYK9zIF.js +2 -0
- package/dist/adapters/KpiNumber.config-BqQjoY4A.cjs +1 -0
- package/dist/adapters/KpiNumber.config-Dt8kOvIA.js +2 -0
- package/dist/adapters/KpiText.config-BE8HbXQ0.js +2 -0
- package/dist/adapters/KpiText.config-DaSbcfKE.cjs +1 -0
- package/dist/adapters/LineChart.config-CUPtbHNz.cjs +1 -0
- package/dist/adapters/LineChart.config-DHlctcYT.js +2 -0
- package/dist/adapters/MarkdownChart.config-B0T5A7dw.js +2 -0
- package/dist/adapters/MarkdownChart.config-iV60Icd3.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-CBCezRPr.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-CO9Cc3Ha.js +2 -0
- package/dist/adapters/PieChart.config-D6Ofc2h-.js +2 -0
- package/dist/adapters/PieChart.config-TOCX24yj.cjs +1 -0
- package/dist/adapters/ProportionBarChart.config-BfiCmXI7.js +2 -0
- package/dist/adapters/ProportionBarChart.config-Bh8_aieC.cjs +1 -0
- package/dist/adapters/RadarChart.config-BfWKUYv4.cjs +1 -0
- package/dist/adapters/RadarChart.config-x87UPfQH.js +2 -0
- package/dist/adapters/RadialBarChart.config-BGA-fVmo.js +2 -0
- package/dist/adapters/RadialBarChart.config-Bo3E1IWc.cjs +1 -0
- package/dist/adapters/RecordsTable.config-CKb4xY0c.cjs +1 -0
- package/dist/adapters/RecordsTable.config-KsPOo8YB.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-DVDQBMW8.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-DqfOBn6k.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-B7NVTM5_.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-tnd7N7g-.js +2 -0
- package/dist/adapters/SankeyChart.config-B1K4e0RA.js +2 -0
- package/dist/adapters/SankeyChart.config-I26Q_e5f.cjs +1 -0
- package/dist/adapters/ScatterChart.config-CMta6GGl.cjs +1 -0
- package/dist/adapters/ScatterChart.config-WwER0vgC.js +2 -0
- package/dist/adapters/SunburstChart.config-CBYye6Ez.js +2 -0
- package/dist/adapters/SunburstChart.config-DbC1AZCI.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-EcJf0Dzm.cjs +1 -0
- package/dist/adapters/TreeMapChart.config-wNJWipDf.js +2 -0
- package/dist/adapters/WaterfallChart.config--d2EuVF-.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-CPJLjH4K.js +2 -0
- package/dist/adapters/{compiler-SBDjxyQ3.js → compiler-B4tLaYye.js} +10 -10
- package/dist/adapters/{compiler-BdVMQ3Xj.cjs → compiler-BYm93X_G.cjs} +5 -5
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-CSt8MGbw.cjs → core-BQEJzwTJ.cjs} +1 -1
- package/dist/adapters/{core-CXrxqh7l.js → core-CVDf8WNs.js} +2 -2
- 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 +5 -5
- package/dist/adapters/{handler-Cppe-aqH.js → handler-Ck2X85KS.js} +170 -151
- package/dist/adapters/handler-MFn_eVcJ.cjs +16 -0
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +4 -4
- package/dist/adapters/mcp-app-html-V1nZOil3.cjs +1 -0
- package/dist/adapters/mcp-app-html-sD7j035f.js +5 -0
- package/dist/adapters/mcp-app-html.cjs +1 -0
- package/dist/adapters/mcp-app-html.d.ts +25 -0
- package/dist/adapters/mcp-app-html.js +2 -0
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +21 -20
- package/dist/adapters/mcp-transport-BQxL1h2h.cjs +42 -0
- package/dist/adapters/mcp-transport-yJDy3T6W.js +758 -0
- package/dist/adapters/mcp-transport.d.ts +19 -2
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +5 -5
- package/dist/adapters/{openai-BIoIunc7.js → openai-B7EVH3cl.js} +2578 -1797
- package/dist/adapters/openai-BkD4iuG8.cjs +19 -0
- package/dist/adapters/{openai-62sEF0Ev.js → openai-DRFOtBUU.js} +1 -1
- package/dist/adapters/{openai-CaxNY6TC.cjs → openai-FjvP4Mek.cjs} +1 -1
- package/dist/adapters/{utils-C_RKaP0n.js → utils-BY3FDOmN.js} +8 -1
- package/dist/adapters/utils-BkdzL4m9.cjs +132 -0
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/adapters/mcp-app-html.d.ts +25 -0
- package/dist/cjs/adapters/mcp-transport.d.ts +19 -2
- package/dist/cjs/client/charts/chartConfigs.d.ts +34 -0
- package/dist/cjs/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +10 -2
- package/dist/cjs/client/components/AnalysisBuilder/TemplateEditor.d.ts +17 -0
- package/dist/cjs/client/components/AnalysisBuilder/templateSyntax.d.ts +26 -0
- package/dist/cjs/client/components/analyticsPortlet/parsePortletQuery.d.ts +12 -0
- package/dist/cjs/client/components/analyticsPortlet/portletRenderState.d.ts +7 -0
- package/dist/cjs/client/components/charts/MarkdownChart.d.ts +1 -1
- package/dist/cjs/client/components/charts/MarkdownChart.helpers.d.ts +156 -0
- package/dist/cjs/client/components/charts/markdownTemplate.d.ts +92 -0
- package/dist/client/charts/chartConfigs.d.ts +34 -0
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-DjMGNTUa.js → DashboardEditModal-B8zIH0ja.js} +2529 -2368
- package/dist/client/chunks/DashboardEditModal-B8zIH0ja.js.map +1 -0
- package/dist/client/chunks/{DotStripChart-EEtJyV1v.js → DotStripChart-BCgHGY0s.js} +4 -4
- package/dist/client/chunks/{DotStripChart-EEtJyV1v.js.map → DotStripChart-BCgHGY0s.js.map} +1 -1
- package/dist/client/chunks/{ProportionBarChart-3r7ZPX-V.js → ProportionBarChart-DzdKxzr4.js} +3 -3
- package/dist/client/chunks/{ProportionBarChart-3r7ZPX-V.js.map → ProportionBarChart-DzdKxzr4.js.map} +1 -1
- package/dist/client/chunks/{RecordsTable-DvMXV6F6.js → RecordsTable-kQfZ25Pz.js} +4 -4
- package/dist/client/chunks/{RecordsTable-DvMXV6F6.js.map → RecordsTable-kQfZ25Pz.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-DbxB86fj.js → RetentionCombinedChart-CvddCEOk.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-DbxB86fj.js.map → RetentionCombinedChart-CvddCEOk.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-CE3rxhAU.js → RetentionHeatmap-BURt-mfm.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-CE3rxhAU.js.map → RetentionHeatmap-BURt-mfm.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-lQk_qJBQ.js → analysis-builder-C0hzThmQ.js} +1688 -1675
- package/dist/client/chunks/{analysis-builder-lQk_qJBQ.js.map → analysis-builder-C0hzThmQ.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-C_pLSXJR.js → analysis-builder-shared-CQFcY6vA.js} +476 -476
- package/dist/client/chunks/{analysis-builder-shared-C_pLSXJR.js.map → analysis-builder-shared-CQFcY6vA.js.map} +1 -1
- package/dist/client/chunks/{chart-activity-grid-UZIp9_2E.js → chart-activity-grid-aIyjUpbJ.js} +9 -2
- package/dist/client/chunks/chart-activity-grid-aIyjUpbJ.js.map +1 -0
- package/dist/client/chunks/{chart-area-CEBcvCcn.js → chart-area-DCCvp06H.js} +3 -3
- package/dist/client/chunks/{chart-area-CEBcvCcn.js.map → chart-area-DCCvp06H.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-DGh7cpU-.js → chart-bar-C8xQ15Aa.js} +3 -3
- package/dist/client/chunks/{chart-bar-DGh7cpU-.js.map → chart-bar-C8xQ15Aa.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-CeqoKPFa.js → chart-box-plot-DFMjBoL1.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-CeqoKPFa.js.map → chart-box-plot-DFMjBoL1.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-8uH_JKNt.js → chart-bubble-CavhSOT8.js} +2 -2
- package/dist/client/chunks/{chart-bubble-8uH_JKNt.js.map → chart-bubble-CavhSOT8.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-DogklMg1.js → chart-candlestick-BlJ6l-0-.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-DogklMg1.js.map → chart-candlestick-BlJ6l-0-.js.map} +1 -1
- package/dist/client/chunks/{chart-config-markdown-C5kBQOjP.js → chart-config-markdown-CK8PAWUg.js} +8 -3
- package/dist/client/chunks/chart-config-markdown-CK8PAWUg.js.map +1 -0
- package/dist/client/chunks/{chart-data-table-CCvvgeG_.js → chart-data-table-Dfup1JpL.js} +426 -423
- package/dist/client/chunks/chart-data-table-Dfup1JpL.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-D2vGQhaz.js → chart-funnel-DqBD-oth.js} +2 -2
- package/dist/client/chunks/{chart-funnel-D2vGQhaz.js.map → chart-funnel-DqBD-oth.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DbU0rxqv.js → chart-gauge-Tr9BRoTo.js} +3 -3
- package/dist/client/chunks/{chart-gauge-DbU0rxqv.js.map → chart-gauge-Tr9BRoTo.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-x6aQq91x.js → chart-heat-map-V200X1EP.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-x6aQq91x.js.map → chart-heat-map-V200X1EP.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-B2-m16QC.js → chart-kpi-delta-DuXkAxKV.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-B2-m16QC.js.map → chart-kpi-delta-DuXkAxKV.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-DggvlYT_.js → chart-kpi-number-CzRaT5KF.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-DggvlYT_.js.map → chart-kpi-number-CzRaT5KF.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-BFy-m1NP.js → chart-kpi-text-DxMl_C7M.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-BFy-m1NP.js.map → chart-kpi-text-DxMl_C7M.js.map} +1 -1
- package/dist/client/chunks/{chart-line-C4r44HWi.js → chart-line-rl9q-vom.js} +3 -3
- package/dist/client/chunks/{chart-line-C4r44HWi.js.map → chart-line-rl9q-vom.js.map} +1 -1
- package/dist/client/chunks/chart-markdown-DJq7fXKF.js +8622 -0
- package/dist/client/chunks/chart-markdown-DJq7fXKF.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-Dc-d82kF.js → chart-measure-profile-BDpkr55p.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-Dc-d82kF.js.map → chart-measure-profile-BDpkr55p.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-BHrPxga2.js → chart-pie-W4Mk0WFB.js} +3 -3
- package/dist/client/chunks/{chart-pie-BHrPxga2.js.map → chart-pie-W4Mk0WFB.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-I9sOFbG5.js → chart-radar-BXkMOUVC.js} +3 -3
- package/dist/client/chunks/{chart-radar-I9sOFbG5.js.map → chart-radar-BXkMOUVC.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-DeDMMf9P.js → chart-radial-bar-CSw1hCK2.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-DeDMMf9P.js.map → chart-radial-bar-CSw1hCK2.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-1qB7yWHq.js → chart-sankey-CXG8SeW3.js} +2 -2
- package/dist/client/chunks/{chart-sankey-1qB7yWHq.js.map → chart-sankey-CXG8SeW3.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-BHttSxcc.js → chart-scatter-BHp1yLvR.js} +3 -3
- package/dist/client/chunks/{chart-scatter-BHttSxcc.js.map → chart-scatter-BHp1yLvR.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-Cmzol8kR.js → chart-sunburst-CHgQCRCz.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-Cmzol8kR.js.map → chart-sunburst-CHgQCRCz.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-CdSwr_zI.js → chart-tree-map-YBAOj00L.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-CdSwr_zI.js.map → chart-tree-map-YBAOj00L.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-BN3B5luW.js → chart-waterfall-CSQ3xvUJ.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-BN3B5luW.js.map → chart-waterfall-CSQ3xvUJ.js.map} +1 -1
- package/dist/client/chunks/{charts-core-DIneMirc.js → charts-core-ghjDtt0_.js} +2 -2
- package/dist/client/chunks/{charts-core-DIneMirc.js.map → charts-core-ghjDtt0_.js.map} +1 -1
- package/dist/client/chunks/charts-loader-B_ye_C5_.js +87 -0
- package/dist/client/chunks/{charts-loader-OHpTBq8c.js.map → charts-loader-B_ye_C5_.js.map} +1 -1
- package/dist/client/chunks/{dist-BPmPx7kz.js → dist-COqN0-Yj.js} +4 -4
- package/dist/client/chunks/{dist-BPmPx7kz.js.map → dist-COqN0-Yj.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-CiByP8VQ.js → exceljs.min-CdNVdwM3.js} +8 -11
- package/dist/client/chunks/{exceljs.min-CiByP8VQ.js.map → exceljs.min-CdNVdwM3.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-dk-kC0sL.js → nl-NL-CKdVNqSp.js} +8 -1
- package/dist/client/chunks/nl-NL-CKdVNqSp.js.map +1 -0
- package/dist/client/chunks/{schema-visualization-PYa578pV.js → schema-visualization-txYCG4v5.js} +4 -4
- package/dist/client/chunks/{schema-visualization-PYa578pV.js.map → schema-visualization-txYCG4v5.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-BQupC3wJ.js → useDirtyStateTracking-BUk23Wbh.js} +6 -6
- package/dist/client/chunks/{useDirtyStateTracking-BQupC3wJ.js.map → useDirtyStateTracking-BUk23Wbh.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-DORnTynt.js → useExplainAI-CGLroDBD.js} +5 -5
- package/dist/client/chunks/{useExplainAI-DORnTynt.js.map → useExplainAI-CGLroDBD.js.map} +1 -1
- package/dist/client/chunks/{vendor-DDo8nSGP.js → vendor-CApRxi77.js} +5 -6
- package/dist/client/chunks/{vendor-DDo8nSGP.js.map → vendor-CApRxi77.js.map} +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisChartConfigPanel.d.ts +10 -2
- package/dist/client/components/AnalysisBuilder/TemplateEditor.d.ts +17 -0
- package/dist/client/components/AnalysisBuilder/templateSyntax.d.ts +26 -0
- package/dist/client/components/analyticsPortlet/parsePortletQuery.d.ts +12 -0
- package/dist/client/components/analyticsPortlet/portletRenderState.d.ts +7 -0
- package/dist/client/components/charts/MarkdownChart.d.ts +1 -1
- package/dist/client/components/charts/MarkdownChart.helpers.d.ts +156 -0
- package/dist/client/components/charts/markdownTemplate.d.ts +92 -0
- package/dist/client/components.js +2 -2
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +409 -409
- package/dist/client/index.js.map +1 -1
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/styles.css +1 -1
- package/dist/client/utils.js +4 -4
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +190 -132
- package/dist/server/index.cjs +17 -23
- package/dist/server/index.js +176 -147
- package/dist/server/openai-BWGYfr6Z.cjs +19 -0
- package/dist/server/{openai-nBhuSFd3.js → openai-Cap1nBuK.js} +1 -1
- package/dist/server/{openai-C1gLuR-0.js → openai-DW5TRMXE.js} +2577 -1796
- package/dist/server/{openai-rF50ZEiR.cjs → openai-G2EivP-n.cjs} +1 -1
- package/package.json +14 -3
- package/dist/adapters/ActivityGridChart.config-DfyZh3He.js +0 -2
- package/dist/adapters/ActivityGridChart.config-DgOwl51m.cjs +0 -1
- package/dist/adapters/AreaChart.config-BL_ZpMsg.js +0 -2
- package/dist/adapters/AreaChart.config-rc1phjmI.cjs +0 -1
- package/dist/adapters/BarChart.config-C6k4BxhM.cjs +0 -1
- package/dist/adapters/BarChart.config-CBACR7Z-.js +0 -2
- package/dist/adapters/BoxPlotChart.config-Bvg6yFn2.js +0 -2
- package/dist/adapters/BoxPlotChart.config-CAlLRM0v.cjs +0 -1
- package/dist/adapters/BubbleChart.config-22qXNskY.js +0 -2
- package/dist/adapters/BubbleChart.config-BkB3P6Bi.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-DuZb-y6d.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-G78UbuwS.js +0 -2
- package/dist/adapters/DataTable.config-BXkpzOC2.js +0 -2
- package/dist/adapters/DataTable.config-CwPlSht6.cjs +0 -1
- package/dist/adapters/DotStripChart.config-Bw9Ww5zY.cjs +0 -1
- package/dist/adapters/DotStripChart.config-D5sbLAqA.js +0 -2
- package/dist/adapters/FunnelChart.config-CUs1rqN2.cjs +0 -1
- package/dist/adapters/FunnelChart.config-Cw9qrC2C.js +0 -2
- package/dist/adapters/GaugeChart.config-CjGtJVoO.cjs +0 -1
- package/dist/adapters/GaugeChart.config-F5SA5Oi3.js +0 -2
- package/dist/adapters/HeatMapChart.config-CvgmSiuY.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-DrvQrPHT.js +0 -2
- package/dist/adapters/KpiDelta.config-B-UJWdJ5.cjs +0 -1
- package/dist/adapters/KpiDelta.config-C00mTZYy.js +0 -2
- package/dist/adapters/KpiNumber.config-CB0kTeoV.cjs +0 -1
- package/dist/adapters/KpiNumber.config-D3CogH8j.js +0 -2
- package/dist/adapters/KpiText.config-B0LbKRCf.js +0 -2
- package/dist/adapters/KpiText.config-Dv4TNprC.cjs +0 -1
- package/dist/adapters/LineChart.config-CdONxSLL.js +0 -2
- package/dist/adapters/LineChart.config-DBHsfIYG.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-AYKXdpuw.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-CngxD_Lc.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-B0a5sUk6.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-ByW5F1Ey.js +0 -2
- package/dist/adapters/PieChart.config-Csx1ctk4.js +0 -2
- package/dist/adapters/PieChart.config-Dfw66Xab.cjs +0 -1
- package/dist/adapters/ProportionBarChart.config-BaeYznc1.cjs +0 -1
- package/dist/adapters/ProportionBarChart.config-DCOizSVs.js +0 -2
- package/dist/adapters/RadarChart.config-AxQh97rB.js +0 -2
- package/dist/adapters/RadarChart.config-BjP-zEGW.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-D5EwyJ0G.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-DMaEJYM_.js +0 -2
- package/dist/adapters/RecordsTable.config-BdN0kZ8b.js +0 -2
- package/dist/adapters/RecordsTable.config-CWRvGDbi.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-BpciOTeX.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-CY8TDzuy.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-BZPRoVpF.cjs +0 -1
- package/dist/adapters/RetentionHeatmap.config-YMZt-u-T.js +0 -2
- package/dist/adapters/SankeyChart.config-BdSA-Jlp.cjs +0 -1
- package/dist/adapters/SankeyChart.config-Dlgi5_DA.js +0 -2
- package/dist/adapters/ScatterChart.config-VJ0xG0Ak.cjs +0 -1
- package/dist/adapters/ScatterChart.config-oOd1Jplx.js +0 -2
- package/dist/adapters/SunburstChart.config-Cllhyjy4.js +0 -2
- package/dist/adapters/SunburstChart.config-DU11BAei.cjs +0 -1
- package/dist/adapters/TreeMapChart.config--EB8bQTo.js +0 -2
- package/dist/adapters/TreeMapChart.config-BPmMLBH1.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-E99Fl6uM.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-xz3DaoMQ.js +0 -2
- package/dist/adapters/handler-_u5krbOj.cjs +0 -26
- package/dist/adapters/mcp-transport-CpF7usmR.js +0 -754
- package/dist/adapters/mcp-transport-DXIfb0p-.cjs +0 -42
- package/dist/adapters/openai-EBTQKJnV.cjs +0 -19
- package/dist/adapters/utils-DXWQUJbD.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-DjMGNTUa.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-UZIp9_2E.js.map +0 -1
- package/dist/client/chunks/chart-config-markdown-C5kBQOjP.js.map +0 -1
- package/dist/client/chunks/chart-data-table-CCvvgeG_.js.map +0 -1
- package/dist/client/chunks/chart-markdown-b0qPZ617.js +0 -3926
- package/dist/client/chunks/chart-markdown-b0qPZ617.js.map +0 -1
- package/dist/client/chunks/charts-loader-OHpTBq8c.js +0 -87
- package/dist/client/chunks/nl-NL-dk-kC0sL.js.map +0 -1
- package/dist/server/openai-BmADmD1e.cjs +0 -19
|
@@ -1,16 +1,16 @@
|
|
|
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,
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-CApRxi77.js";
|
|
2
|
+
import { A as s, B as c, d as l, u, y as d } from "./chart-data-table-Dfup1JpL.js";
|
|
3
|
+
import { C as f, D as p, M as m, _ as h, b as g, bt as _, d as v, f as y, it as b, nt as x, rt as S, u as C, v as w, w as T, x as E, xt as D, y as O } from "./DashboardEditModal-B8zIH0ja.js";
|
|
4
4
|
import { a as k, s as ee, t as A } from "./retention-ChW9jYdy.js";
|
|
5
|
-
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-
|
|
6
|
-
import { B as
|
|
7
|
-
import { a as
|
|
8
|
-
import { r as
|
|
9
|
-
import { n as
|
|
10
|
-
import
|
|
11
|
-
import { Fragment as
|
|
5
|
+
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-BUk23Wbh.js";
|
|
6
|
+
import { B as R, F as z } from "./chart-activity-grid-aIyjUpbJ.js";
|
|
7
|
+
import { a as fe, i as pe } from "./useExplainAI-CGLroDBD.js";
|
|
8
|
+
import { r as me, s as he } from "./chart-funnel-DqBD-oth.js";
|
|
9
|
+
import { n as ge } from "./charts-core-ghjDtt0_.js";
|
|
10
|
+
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";
|
|
11
|
+
import { Fragment as K, jsx as q, jsxs as J } from "react/jsx-runtime";
|
|
12
12
|
//#region src/shared/date-utils.ts
|
|
13
|
-
function
|
|
13
|
+
function be(e) {
|
|
14
14
|
let t = /* @__PURE__ */ new Date(), n = e.toLowerCase().trim(), r = t.getUTCFullYear(), i = t.getUTCMonth(), a = t.getUTCDate(), o = t.getUTCDay();
|
|
15
15
|
if (n === "today") {
|
|
16
16
|
let e = new Date(t);
|
|
@@ -123,7 +123,7 @@ function xe(e) {
|
|
|
123
123
|
}
|
|
124
124
|
return null;
|
|
125
125
|
}
|
|
126
|
-
function
|
|
126
|
+
function xe(e) {
|
|
127
127
|
if (Array.isArray(e)) {
|
|
128
128
|
if (e.length < 2) return null;
|
|
129
129
|
let t = new Date(e[0]), n = new Date(e[1]);
|
|
@@ -132,9 +132,9 @@ function Se(e) {
|
|
|
132
132
|
end: n
|
|
133
133
|
});
|
|
134
134
|
}
|
|
135
|
-
return
|
|
135
|
+
return be(e);
|
|
136
136
|
}
|
|
137
|
-
function
|
|
137
|
+
function Se(e) {
|
|
138
138
|
return e.toISOString().split("T")[0];
|
|
139
139
|
}
|
|
140
140
|
function Ce(e, t) {
|
|
@@ -151,10 +151,10 @@ function Ce(e, t) {
|
|
|
151
151
|
function we(e, t) {
|
|
152
152
|
let n = I(t, e);
|
|
153
153
|
if (!n?.dateRange) return;
|
|
154
|
-
let r =
|
|
154
|
+
let r = xe(n.dateRange);
|
|
155
155
|
if (!r) return;
|
|
156
156
|
let i = Ce(r.start, r.end);
|
|
157
|
-
return [[
|
|
157
|
+
return [[Se(r.start), Se(r.end)], [Se(i.start), Se(i.end)]];
|
|
158
158
|
}
|
|
159
159
|
function Te(e, t) {
|
|
160
160
|
return M(e, t, "inDateRange");
|
|
@@ -164,7 +164,7 @@ function Te(e, t) {
|
|
|
164
164
|
function Ee(e, t, n, r, i = !1, a, o = !1) {
|
|
165
165
|
let s = t.filter((e) => e.isTimeDimension && e.enableComparison).map((e) => e.field), c = n;
|
|
166
166
|
if (!i) for (let e of s) c = Te(c, e);
|
|
167
|
-
c = c.filter((e) =>
|
|
167
|
+
c = c.filter((e) => x(e));
|
|
168
168
|
let l = {
|
|
169
169
|
measures: e.map((e) => e.field),
|
|
170
170
|
dimensions: t.filter((e) => !e.isTimeDimension).map((e) => e.field),
|
|
@@ -222,58 +222,58 @@ function De(e, t, n, r) {
|
|
|
222
222
|
//#region src/client/components/AnalysisBuilder/FilterValueInput.tsx
|
|
223
223
|
var Oe = d("close"), ke = d("chevronDown");
|
|
224
224
|
function Ae({ filter: e, dateRange: t }) {
|
|
225
|
-
let { t: n } =
|
|
226
|
-
return /* @__PURE__ */
|
|
225
|
+
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;
|
|
226
|
+
return /* @__PURE__ */ J("div", {
|
|
227
227
|
className: "dc:space-y-2",
|
|
228
228
|
children: [
|
|
229
|
-
/* @__PURE__ */
|
|
229
|
+
/* @__PURE__ */ J("div", {
|
|
230
230
|
className: "dc:relative",
|
|
231
|
-
children: [/* @__PURE__ */
|
|
231
|
+
children: [/* @__PURE__ */ J("button", {
|
|
232
232
|
onClick: () => {
|
|
233
233
|
f(), s(!o);
|
|
234
234
|
},
|
|
235
235
|
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",
|
|
236
|
-
children: [/* @__PURE__ */
|
|
236
|
+
children: [/* @__PURE__ */ q("span", {
|
|
237
237
|
className: "dc:truncate",
|
|
238
238
|
children: a
|
|
239
|
-
}), /* @__PURE__ */
|
|
240
|
-
}), o && /* @__PURE__ */
|
|
239
|
+
}), /* @__PURE__ */ q(ke, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${o ? "dc:rotate-180" : ""}` })]
|
|
240
|
+
}), o && /* @__PURE__ */ q("div", {
|
|
241
241
|
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",
|
|
242
|
-
children:
|
|
242
|
+
children: w.map((e) => /* @__PURE__ */ q("button", {
|
|
243
243
|
onClick: () => c(e.value),
|
|
244
244
|
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"}`,
|
|
245
245
|
children: n(e.label)
|
|
246
246
|
}, e.value))
|
|
247
247
|
})]
|
|
248
248
|
}),
|
|
249
|
-
j(r) && /* @__PURE__ */
|
|
249
|
+
j(r) && /* @__PURE__ */ J("div", {
|
|
250
250
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
251
|
-
children: [/* @__PURE__ */
|
|
251
|
+
children: [/* @__PURE__ */ q("input", {
|
|
252
252
|
type: "number",
|
|
253
253
|
min: "1",
|
|
254
254
|
max: "1000",
|
|
255
255
|
value: i,
|
|
256
256
|
onChange: (e) => l(Math.max(1, parseInt(e.target.value) || 1)),
|
|
257
257
|
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"
|
|
258
|
-
}), /* @__PURE__ */
|
|
258
|
+
}), /* @__PURE__ */ q("span", {
|
|
259
259
|
className: "dc:text-sm text-dc-text-muted",
|
|
260
260
|
children: r.replace("last_n_", "")
|
|
261
261
|
})]
|
|
262
262
|
}),
|
|
263
|
-
r === "custom" && /* @__PURE__ */
|
|
263
|
+
r === "custom" && /* @__PURE__ */ J("div", {
|
|
264
264
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
265
265
|
children: [
|
|
266
|
-
/* @__PURE__ */
|
|
266
|
+
/* @__PURE__ */ q("input", {
|
|
267
267
|
type: "date",
|
|
268
268
|
value: Array.isArray(e.dateRange) ? e.dateRange[0] : "",
|
|
269
269
|
onChange: u,
|
|
270
270
|
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"
|
|
271
271
|
}),
|
|
272
|
-
/* @__PURE__ */
|
|
272
|
+
/* @__PURE__ */ q("span", {
|
|
273
273
|
className: "dc:text-sm text-dc-text-muted",
|
|
274
274
|
children: n("filter.modal.dateTo")
|
|
275
275
|
}),
|
|
276
|
-
/* @__PURE__ */
|
|
276
|
+
/* @__PURE__ */ q("input", {
|
|
277
277
|
type: "date",
|
|
278
278
|
value: Array.isArray(e.dateRange) ? e.dateRange[1] : "",
|
|
279
279
|
onChange: d,
|
|
@@ -285,25 +285,25 @@ function Ae({ filter: e, dateRange: t }) {
|
|
|
285
285
|
});
|
|
286
286
|
}
|
|
287
287
|
function je({ filter: e, combo: t }) {
|
|
288
|
-
let { t: n } =
|
|
289
|
-
return i ? /* @__PURE__ */
|
|
288
|
+
let { t: n } = z(), { options: r, loading: i, error: a, highlightedIndex: o, listRef: s, onSelect: c } = t;
|
|
289
|
+
return i ? /* @__PURE__ */ q("div", {
|
|
290
290
|
className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
|
|
291
291
|
children: n("filter.modal.loading")
|
|
292
|
-
}) : a ? /* @__PURE__ */
|
|
292
|
+
}) : a ? /* @__PURE__ */ J("div", {
|
|
293
293
|
className: "dc:px-3 dc:py-2 dc:text-sm text-dc-error",
|
|
294
294
|
children: [n("filter.modal.errorPrefix"), String(a)]
|
|
295
|
-
}) : r.length === 0 ? /* @__PURE__ */
|
|
295
|
+
}) : r.length === 0 ? /* @__PURE__ */ q("div", {
|
|
296
296
|
className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
|
|
297
297
|
children: n("filter.modal.noValues")
|
|
298
|
-
}) : /* @__PURE__ */
|
|
298
|
+
}) : /* @__PURE__ */ q("div", {
|
|
299
299
|
ref: s,
|
|
300
300
|
className: "dc:max-h-40 dc:overflow-y-auto",
|
|
301
301
|
children: r.map((t, n) => {
|
|
302
302
|
let r = e.values?.includes(t);
|
|
303
|
-
return /* @__PURE__ */
|
|
303
|
+
return /* @__PURE__ */ J("button", {
|
|
304
304
|
onClick: (e) => c(t, e),
|
|
305
305
|
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"}`,
|
|
306
|
-
children: [String(t), r && /* @__PURE__ */
|
|
306
|
+
children: [String(t), r && /* @__PURE__ */ q("span", {
|
|
307
307
|
className: "dc:float-right",
|
|
308
308
|
children: "✓"
|
|
309
309
|
})]
|
|
@@ -312,40 +312,40 @@ function je({ filter: e, combo: t }) {
|
|
|
312
312
|
});
|
|
313
313
|
}
|
|
314
314
|
function Me({ filter: e, operatorMeta: t, combo: n }) {
|
|
315
|
-
let { t: r } =
|
|
316
|
-
return /* @__PURE__ */
|
|
315
|
+
let { t: r } = z(), { isOpen: i, loading: a, searchText: o, onSearchTextChange: s, onHighlightedIndexChange: c, onRemove: l, onKeyDown: u, onOpen: d } = n;
|
|
316
|
+
return /* @__PURE__ */ J("div", {
|
|
317
317
|
className: "dc:space-y-2",
|
|
318
318
|
children: [
|
|
319
|
-
e.values && e.values.length > 0 && /* @__PURE__ */
|
|
319
|
+
e.values && e.values.length > 0 && /* @__PURE__ */ q("div", {
|
|
320
320
|
className: "dc:flex dc:flex-wrap dc:gap-1.5",
|
|
321
|
-
children: e.values.map((e, t) => /* @__PURE__ */
|
|
321
|
+
children: e.values.map((e, t) => /* @__PURE__ */ J("span", {
|
|
322
322
|
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",
|
|
323
|
-
children: [/* @__PURE__ */
|
|
323
|
+
children: [/* @__PURE__ */ q("span", {
|
|
324
324
|
className: "dc:max-w-[150px] dc:truncate",
|
|
325
325
|
children: String(e)
|
|
326
|
-
}), /* @__PURE__ */
|
|
326
|
+
}), /* @__PURE__ */ q("button", {
|
|
327
327
|
onClick: () => l(e),
|
|
328
328
|
className: "hover:text-dc-danger",
|
|
329
|
-
children: /* @__PURE__ */
|
|
329
|
+
children: /* @__PURE__ */ q(Oe, { className: "dc:w-3.5 dc:h-3.5" })
|
|
330
330
|
})]
|
|
331
331
|
}, t))
|
|
332
332
|
}),
|
|
333
|
-
/* @__PURE__ */
|
|
333
|
+
/* @__PURE__ */ J("div", {
|
|
334
334
|
className: "dc:relative",
|
|
335
|
-
children: [/* @__PURE__ */
|
|
335
|
+
children: [/* @__PURE__ */ J("button", {
|
|
336
336
|
onClick: () => {
|
|
337
337
|
d();
|
|
338
338
|
},
|
|
339
339
|
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",
|
|
340
|
-
children: [/* @__PURE__ */
|
|
340
|
+
children: [/* @__PURE__ */ q("span", {
|
|
341
341
|
className: "text-dc-text-muted dc:truncate",
|
|
342
342
|
children: r(a ? "filter.modal.loading" : "filter.modal.selectValue")
|
|
343
|
-
}), /* @__PURE__ */
|
|
344
|
-
}), i && /* @__PURE__ */
|
|
343
|
+
}), /* @__PURE__ */ q(ke, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${i ? "dc:rotate-180" : ""}` })]
|
|
344
|
+
}), i && /* @__PURE__ */ J("div", {
|
|
345
345
|
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",
|
|
346
|
-
children: [/* @__PURE__ */
|
|
346
|
+
children: [/* @__PURE__ */ q("div", {
|
|
347
347
|
className: "dc:p-2 dc:border-b border-dc-border",
|
|
348
|
-
children: /* @__PURE__ */
|
|
348
|
+
children: /* @__PURE__ */ q("input", {
|
|
349
349
|
type: "text",
|
|
350
350
|
value: o,
|
|
351
351
|
onChange: (e) => {
|
|
@@ -356,13 +356,13 @@ function Me({ filter: e, operatorMeta: t, combo: n }) {
|
|
|
356
356
|
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",
|
|
357
357
|
autoFocus: !0
|
|
358
358
|
})
|
|
359
|
-
}), /* @__PURE__ */
|
|
359
|
+
}), /* @__PURE__ */ q(je, {
|
|
360
360
|
filter: e,
|
|
361
361
|
combo: n
|
|
362
362
|
})]
|
|
363
363
|
})]
|
|
364
364
|
}),
|
|
365
|
-
t?.supportsMultipleValues && /* @__PURE__ */
|
|
365
|
+
t?.supportsMultipleValues && /* @__PURE__ */ q("p", {
|
|
366
366
|
className: "dc:text-xs text-dc-text-muted",
|
|
367
367
|
children: r("filter.modal.multiSelectHint")
|
|
368
368
|
})
|
|
@@ -370,25 +370,25 @@ function Me({ filter: e, operatorMeta: t, combo: n }) {
|
|
|
370
370
|
});
|
|
371
371
|
}
|
|
372
372
|
function Ne({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
373
|
-
let { t: i } =
|
|
374
|
-
return o?.requiresValues ? s ? /* @__PURE__ */
|
|
373
|
+
let { t: i } = z(), { filter: a, operatorMeta: o, shouldShowDateRange: s, shouldShowComboBox: c } = e, { onBetweenStart: l, onBetweenEnd: u, onDate: d, onDirect: f } = r;
|
|
374
|
+
return o?.requiresValues ? s ? /* @__PURE__ */ q(Ae, {
|
|
375
375
|
filter: a,
|
|
376
376
|
dateRange: t
|
|
377
|
-
}) : a.operator === "between" || a.operator === "notBetween" ? /* @__PURE__ */
|
|
377
|
+
}) : a.operator === "between" || a.operator === "notBetween" ? /* @__PURE__ */ J("div", {
|
|
378
378
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
379
379
|
children: [
|
|
380
|
-
/* @__PURE__ */
|
|
380
|
+
/* @__PURE__ */ q("input", {
|
|
381
381
|
type: "number",
|
|
382
382
|
value: a.values?.[0] ?? "",
|
|
383
383
|
onChange: l,
|
|
384
384
|
placeholder: i("filter.modal.min"),
|
|
385
385
|
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"
|
|
386
386
|
}),
|
|
387
|
-
/* @__PURE__ */
|
|
387
|
+
/* @__PURE__ */ q("span", {
|
|
388
388
|
className: "dc:text-sm text-dc-text-muted",
|
|
389
389
|
children: i("filter.modal.to")
|
|
390
390
|
}),
|
|
391
|
-
/* @__PURE__ */
|
|
391
|
+
/* @__PURE__ */ q("input", {
|
|
392
392
|
type: "number",
|
|
393
393
|
value: a.values?.[1] ?? "",
|
|
394
394
|
onChange: u,
|
|
@@ -396,28 +396,28 @@ function Ne({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
|
396
396
|
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"
|
|
397
397
|
})
|
|
398
398
|
]
|
|
399
|
-
}) : o?.valueType === "date" ? /* @__PURE__ */
|
|
399
|
+
}) : o?.valueType === "date" ? /* @__PURE__ */ q("input", {
|
|
400
400
|
type: "date",
|
|
401
401
|
value: a.values?.[0] || "",
|
|
402
402
|
onChange: d,
|
|
403
403
|
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"
|
|
404
|
-
}) : o?.valueType === "number" ? /* @__PURE__ */
|
|
404
|
+
}) : o?.valueType === "number" ? /* @__PURE__ */ q("input", {
|
|
405
405
|
type: "number",
|
|
406
406
|
value: a.values?.[0] ?? "",
|
|
407
407
|
onChange: f,
|
|
408
408
|
placeholder: i("filter.modal.enterNumber"),
|
|
409
409
|
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"
|
|
410
|
-
}) : c ? /* @__PURE__ */
|
|
410
|
+
}) : c ? /* @__PURE__ */ q(Me, {
|
|
411
411
|
filter: a,
|
|
412
412
|
operatorMeta: o,
|
|
413
413
|
combo: n
|
|
414
|
-
}) : /* @__PURE__ */
|
|
414
|
+
}) : /* @__PURE__ */ q("input", {
|
|
415
415
|
type: "text",
|
|
416
416
|
value: a.values?.[0] ?? "",
|
|
417
417
|
onChange: f,
|
|
418
418
|
placeholder: i("filter.modal.enterValue"),
|
|
419
419
|
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"
|
|
420
|
-
}) : /* @__PURE__ */
|
|
420
|
+
}) : /* @__PURE__ */ q("div", {
|
|
421
421
|
className: "dc:text-sm text-dc-text-muted dc:italic dc:py-2",
|
|
422
422
|
children: i("filter.modal.noValueRequired")
|
|
423
423
|
});
|
|
@@ -426,7 +426,7 @@ function Ne({ field: e, dateRange: t, combo: n, inputs: r }) {
|
|
|
426
426
|
//#region src/client/components/AnalysisBuilder/FilterConfigModal.tsx
|
|
427
427
|
var Pe = d("close"), Fe = d("chevronDown"), Ie = d("dimension"), Le = d("timeDimension"), Re = d("measure");
|
|
428
428
|
function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i }) {
|
|
429
|
-
let { t: a } =
|
|
429
|
+
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, y] = G(1), [x, C] = G(""), [T, D] = G(null), [O, k] = G(-1), ee = W(null), A = W(null), te = le(x, 300), M = g(o.member, t), ne = M?.field.type || "string", N = ne === "time", re = M?.fieldType === "measure", ie = M?.fieldType === "dimension", ae = E(o.member, t), P = S[o.operator], oe = b(ne), se = N && o.operator === "inDateRange", I = V(() => [
|
|
430
430
|
"equals",
|
|
431
431
|
"notEquals",
|
|
432
432
|
"in",
|
|
@@ -435,55 +435,55 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
435
435
|
o.operator,
|
|
436
436
|
ie,
|
|
437
437
|
N
|
|
438
|
-
])(), { values: L, loading: ce, error: de, searchValues:
|
|
439
|
-
|
|
438
|
+
])(), { values: L, loading: ce, error: de, searchValues: R } = ue(o.member, I);
|
|
439
|
+
H(() => {
|
|
440
440
|
if (!i) {
|
|
441
|
-
|
|
441
|
+
D(null);
|
|
442
442
|
return;
|
|
443
443
|
}
|
|
444
444
|
let e = i.getBoundingClientRect(), t = e.top, n = window.innerHeight - e.bottom, r = t > 500 || t > n, a = Math.max(16, Math.min(e.left, window.innerWidth - 400 - 16));
|
|
445
|
-
|
|
445
|
+
D(r ? {
|
|
446
446
|
bottom: window.innerHeight - e.top + 8,
|
|
447
447
|
left: a
|
|
448
448
|
} : {
|
|
449
449
|
top: e.bottom + 8,
|
|
450
450
|
left: a
|
|
451
451
|
});
|
|
452
|
-
}, [i]),
|
|
452
|
+
}, [i]), H(() => {
|
|
453
453
|
let e = (e) => {
|
|
454
454
|
ee.current && !ee.current.contains(e.target) && (l(!1), d(!1), p(!1));
|
|
455
455
|
};
|
|
456
456
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
457
|
-
}, []),
|
|
458
|
-
u && I &&
|
|
457
|
+
}, []), H(() => {
|
|
458
|
+
u && I && R && R("", !0), u || k(-1);
|
|
459
459
|
}, [
|
|
460
460
|
u,
|
|
461
461
|
I,
|
|
462
|
-
|
|
463
|
-
]),
|
|
462
|
+
R
|
|
463
|
+
]), H(() => {
|
|
464
464
|
if (O >= 0 && A.current) {
|
|
465
465
|
let e = A.current.children[O];
|
|
466
466
|
e && e.scrollIntoView({ block: "nearest" });
|
|
467
467
|
}
|
|
468
|
-
}, [O]),
|
|
469
|
-
u && I &&
|
|
468
|
+
}, [O]), H(() => {
|
|
469
|
+
u && I && R && te !== void 0 && R(te);
|
|
470
470
|
}, [
|
|
471
471
|
te,
|
|
472
472
|
u,
|
|
473
473
|
I,
|
|
474
|
-
|
|
475
|
-
]),
|
|
474
|
+
R
|
|
475
|
+
]), H(() => {
|
|
476
476
|
if (!se) return;
|
|
477
|
-
let e =
|
|
478
|
-
e && (_(e.rangeType), e.numberValue !== void 0 &&
|
|
477
|
+
let e = h(o.dateRange);
|
|
478
|
+
e && (_(e.rangeType), e.numberValue !== void 0 && y(e.numberValue));
|
|
479
479
|
}, [o.dateRange, se]);
|
|
480
|
-
let
|
|
480
|
+
let fe = V((e) => {
|
|
481
481
|
s({
|
|
482
482
|
member: o.member,
|
|
483
483
|
operator: e,
|
|
484
484
|
values: []
|
|
485
485
|
}), l(!1);
|
|
486
|
-
}, [o.member]),
|
|
486
|
+
}, [o.member]), pe = V((e, t) => {
|
|
487
487
|
let n = t?.shiftKey ?? !1, r = o.values || [];
|
|
488
488
|
P?.supportsMultipleValues ? (r.includes(e) ? s({
|
|
489
489
|
...o,
|
|
@@ -494,26 +494,26 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
494
494
|
}), n || d(!1)) : (s({
|
|
495
495
|
...o,
|
|
496
496
|
values: [e]
|
|
497
|
-
}), d(!1)),
|
|
498
|
-
}, [o, P?.supportsMultipleValues]),
|
|
497
|
+
}), d(!1)), C(""), k(-1);
|
|
498
|
+
}, [o, P?.supportsMultipleValues]), me = V((e) => {
|
|
499
499
|
let t = (o.values || []).filter((t) => t !== e);
|
|
500
500
|
s({
|
|
501
501
|
...o,
|
|
502
502
|
values: t
|
|
503
503
|
});
|
|
504
|
-
}, [o]),
|
|
504
|
+
}, [o]), he = V((e) => {
|
|
505
505
|
let t = De(e.key, u, L.length, O);
|
|
506
506
|
if (t.type !== "none") {
|
|
507
507
|
if (e.preventDefault(), t.type === "highlight") return k(t.index);
|
|
508
|
-
if (t.type === "select") return
|
|
508
|
+
if (t.type === "select") return pe(L[t.index], { shiftKey: e.shiftKey });
|
|
509
509
|
d(!1), k(-1);
|
|
510
510
|
}
|
|
511
511
|
}, [
|
|
512
512
|
u,
|
|
513
513
|
L,
|
|
514
514
|
O,
|
|
515
|
-
|
|
516
|
-
]),
|
|
515
|
+
pe
|
|
516
|
+
]), ge = V((e) => {
|
|
517
517
|
let t = e.target.value;
|
|
518
518
|
if (P?.valueType === "number") {
|
|
519
519
|
let e = parseFloat(t);
|
|
@@ -528,25 +528,25 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
528
528
|
...o,
|
|
529
529
|
values: t ? [t] : []
|
|
530
530
|
});
|
|
531
|
-
}, [o, P?.valueType]),
|
|
531
|
+
}, [o, P?.valueType]), B = V((e) => {
|
|
532
532
|
let t = parseFloat(e.target.value), n = [isNaN(t) ? "" : t, (o.values?.length >= 2 ? o.values : ["", ""])[1]].filter((e) => e !== "");
|
|
533
533
|
s({
|
|
534
534
|
...o,
|
|
535
535
|
values: n
|
|
536
536
|
});
|
|
537
|
-
}, [o]),
|
|
537
|
+
}, [o]), _e = V((e) => {
|
|
538
538
|
let t = parseFloat(e.target.value), n = [(o.values?.length >= 2 ? o.values : ["", ""])[0], isNaN(t) ? "" : t].filter((e) => e !== "");
|
|
539
539
|
s({
|
|
540
540
|
...o,
|
|
541
541
|
values: n
|
|
542
542
|
});
|
|
543
|
-
}, [o]),
|
|
543
|
+
}, [o]), ve = V((e) => {
|
|
544
544
|
let t = e.target.value;
|
|
545
545
|
s({
|
|
546
546
|
...o,
|
|
547
547
|
values: t ? [t] : []
|
|
548
548
|
});
|
|
549
|
-
}, [o]),
|
|
549
|
+
}, [o]), ye = V((e) => {
|
|
550
550
|
_(e), p(!1);
|
|
551
551
|
let t;
|
|
552
552
|
if (e === "custom") {
|
|
@@ -557,27 +557,27 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
557
557
|
...o,
|
|
558
558
|
dateRange: t
|
|
559
559
|
});
|
|
560
|
-
}, [o, v]),
|
|
561
|
-
if (
|
|
560
|
+
}, [o, v]), be = V((e) => {
|
|
561
|
+
if (y(e), j(m)) {
|
|
562
562
|
let t = F(m, e);
|
|
563
563
|
s({
|
|
564
564
|
...o,
|
|
565
565
|
dateRange: t
|
|
566
566
|
});
|
|
567
567
|
}
|
|
568
|
-
}, [o, m]),
|
|
568
|
+
}, [o, m]), xe = V((e) => {
|
|
569
569
|
let t = e.target.value, n = (Array.isArray(o.dateRange) ? o.dateRange : [o.dateRange || "", ""])[1] || t;
|
|
570
570
|
s({
|
|
571
571
|
...o,
|
|
572
572
|
dateRange: [t, n]
|
|
573
573
|
});
|
|
574
|
-
}, [o]),
|
|
574
|
+
}, [o]), Se = V((e) => {
|
|
575
575
|
let t = e.target.value, n = (Array.isArray(o.dateRange) ? o.dateRange : ["", o.dateRange || ""])[0] || t;
|
|
576
576
|
s({
|
|
577
577
|
...o,
|
|
578
578
|
dateRange: [n, t]
|
|
579
579
|
});
|
|
580
|
-
}, [o]), Ce = a(oe.find((e) => e.operator === o.operator)?.label || o.operator), we = a(
|
|
580
|
+
}, [o]), Ce = a(oe.find((e) => e.operator === o.operator)?.label || o.operator), we = a(w.find((e) => e.value === m)?.label || "filter.modal.selectRange"), Te = {
|
|
581
581
|
filter: o,
|
|
582
582
|
operatorMeta: P,
|
|
583
583
|
shouldShowDateRange: se,
|
|
@@ -588,11 +588,11 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
588
588
|
label: we,
|
|
589
589
|
isOpen: f,
|
|
590
590
|
onToggle: p,
|
|
591
|
-
onRangeTypeChange:
|
|
592
|
-
onNumberValueChange:
|
|
593
|
-
onCustomStartDate:
|
|
594
|
-
onCustomEndDate:
|
|
595
|
-
onOpen:
|
|
591
|
+
onRangeTypeChange: ye,
|
|
592
|
+
onNumberValueChange: be,
|
|
593
|
+
onCustomStartDate: xe,
|
|
594
|
+
onCustomEndDate: Se,
|
|
595
|
+
onOpen: V(() => {
|
|
596
596
|
l(!1), d(!1);
|
|
597
597
|
}, [])
|
|
598
598
|
}, Y = {
|
|
@@ -603,29 +603,29 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
603
603
|
searchText: x,
|
|
604
604
|
highlightedIndex: O,
|
|
605
605
|
listRef: A,
|
|
606
|
-
onSearchTextChange:
|
|
606
|
+
onSearchTextChange: C,
|
|
607
607
|
onHighlightedIndexChange: k,
|
|
608
|
-
onSelect:
|
|
609
|
-
onRemove:
|
|
610
|
-
onKeyDown:
|
|
611
|
-
onOpen:
|
|
608
|
+
onSelect: pe,
|
|
609
|
+
onRemove: me,
|
|
610
|
+
onKeyDown: he,
|
|
611
|
+
onOpen: V(() => {
|
|
612
612
|
l(!1), p(!1), d((e) => !e);
|
|
613
613
|
}, [])
|
|
614
|
-
}, Oe =
|
|
615
|
-
onBetweenStart:
|
|
616
|
-
onBetweenEnd:
|
|
617
|
-
onDate:
|
|
618
|
-
onDirect:
|
|
614
|
+
}, Oe = U(() => ({
|
|
615
|
+
onBetweenStart: B,
|
|
616
|
+
onBetweenEnd: _e,
|
|
617
|
+
onDate: ve,
|
|
618
|
+
onDirect: ge
|
|
619
619
|
}), [
|
|
620
|
-
|
|
620
|
+
B,
|
|
621
|
+
_e,
|
|
621
622
|
ve,
|
|
622
|
-
|
|
623
|
-
_e
|
|
623
|
+
ge
|
|
624
624
|
]), ke = N ? Le : re ? Re : Ie;
|
|
625
|
-
return /* @__PURE__ */ K
|
|
625
|
+
return /* @__PURE__ */ q(K, { children: /* @__PURE__ */ q("div", {
|
|
626
626
|
className: `dc:fixed dc:inset-0 bg-dc-overlay dc:z-50 ${T ? "" : "dc:flex dc:items-center dc:justify-center dc:p-4"}`,
|
|
627
627
|
onClick: r,
|
|
628
|
-
children: /* @__PURE__ */
|
|
628
|
+
children: /* @__PURE__ */ J("div", {
|
|
629
629
|
ref: ee,
|
|
630
630
|
className: T ? "bg-dc-surface dc:rounded-lg dc:border border-dc-border" : "bg-dc-surface dc:rounded-lg dc:border border-dc-border dc:max-w-md dc:w-full",
|
|
631
631
|
style: {
|
|
@@ -639,57 +639,57 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
639
639
|
},
|
|
640
640
|
onClick: (e) => e.stopPropagation(),
|
|
641
641
|
children: [
|
|
642
|
-
/* @__PURE__ */
|
|
642
|
+
/* @__PURE__ */ J("div", {
|
|
643
643
|
className: "dc:flex dc:items-center dc:justify-between dc:p-4 dc:border-b border-dc-border",
|
|
644
|
-
children: [/* @__PURE__ */
|
|
644
|
+
children: [/* @__PURE__ */ q("h2", {
|
|
645
645
|
className: "dc:text-lg dc:font-semibold text-dc-text",
|
|
646
646
|
children: a("filter.modal.title")
|
|
647
|
-
}), /* @__PURE__ */
|
|
647
|
+
}), /* @__PURE__ */ q("button", {
|
|
648
648
|
onClick: r,
|
|
649
649
|
className: "dc:p-1 text-dc-text-muted hover:text-dc-text dc:transition-colors",
|
|
650
|
-
children: /* @__PURE__ */
|
|
650
|
+
children: /* @__PURE__ */ q(Pe, { className: "dc:w-5 dc:h-5" })
|
|
651
651
|
})]
|
|
652
652
|
}),
|
|
653
|
-
/* @__PURE__ */
|
|
653
|
+
/* @__PURE__ */ J("div", {
|
|
654
654
|
className: "dc:p-4 dc:space-y-4",
|
|
655
655
|
children: [
|
|
656
|
-
/* @__PURE__ */
|
|
656
|
+
/* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("label", {
|
|
657
657
|
className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
|
|
658
658
|
children: a("filter.modal.fieldLabel")
|
|
659
|
-
}), /* @__PURE__ */
|
|
659
|
+
}), /* @__PURE__ */ J("div", {
|
|
660
660
|
className: "dc:flex dc:items-center dc:gap-2 dc:p-3 bg-dc-surface-secondary dc:rounded-sm",
|
|
661
|
-
children: [/* @__PURE__ */
|
|
661
|
+
children: [/* @__PURE__ */ q(ke, { className: "dc:w-5 dc:h-5 text-dc-filter-text" }), /* @__PURE__ */ q("span", {
|
|
662
662
|
className: "dc:text-sm dc:font-medium text-dc-text",
|
|
663
663
|
children: ae
|
|
664
664
|
})]
|
|
665
665
|
})] }),
|
|
666
|
-
/* @__PURE__ */
|
|
666
|
+
/* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("label", {
|
|
667
667
|
className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
|
|
668
668
|
children: a("filter.modal.operatorLabel")
|
|
669
|
-
}), /* @__PURE__ */
|
|
669
|
+
}), /* @__PURE__ */ J("div", {
|
|
670
670
|
className: "dc:relative",
|
|
671
|
-
children: [/* @__PURE__ */
|
|
671
|
+
children: [/* @__PURE__ */ J("button", {
|
|
672
672
|
onClick: () => {
|
|
673
673
|
d(!1), p(!1), l(!c);
|
|
674
674
|
},
|
|
675
675
|
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",
|
|
676
|
-
children: [/* @__PURE__ */
|
|
676
|
+
children: [/* @__PURE__ */ q("span", {
|
|
677
677
|
className: "dc:truncate",
|
|
678
678
|
children: Ce
|
|
679
|
-
}), /* @__PURE__ */
|
|
680
|
-
}), c && /* @__PURE__ */
|
|
679
|
+
}), /* @__PURE__ */ q(Fe, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${c ? "dc:rotate-180" : ""}` })]
|
|
680
|
+
}), c && /* @__PURE__ */ q("div", {
|
|
681
681
|
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",
|
|
682
|
-
children: oe.map((e) => /* @__PURE__ */
|
|
683
|
-
onClick: () =>
|
|
682
|
+
children: oe.map((e) => /* @__PURE__ */ q("button", {
|
|
683
|
+
onClick: () => fe(e.operator),
|
|
684
684
|
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"}`,
|
|
685
685
|
children: a(e.label)
|
|
686
686
|
}, e.operator))
|
|
687
687
|
})]
|
|
688
688
|
})] }),
|
|
689
|
-
/* @__PURE__ */
|
|
689
|
+
/* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("label", {
|
|
690
690
|
className: "dc:block dc:text-sm dc:font-medium text-dc-text-secondary dc:mb-2",
|
|
691
691
|
children: a("filter.modal.valueLabel")
|
|
692
|
-
}), /* @__PURE__ */
|
|
692
|
+
}), /* @__PURE__ */ q(Ne, {
|
|
693
693
|
field: Te,
|
|
694
694
|
dateRange: Ee,
|
|
695
695
|
combo: Y,
|
|
@@ -697,13 +697,13 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
697
697
|
})] })
|
|
698
698
|
]
|
|
699
699
|
}),
|
|
700
|
-
/* @__PURE__ */
|
|
700
|
+
/* @__PURE__ */ J("div", {
|
|
701
701
|
className: "dc:flex dc:items-center dc:justify-end dc:gap-2 dc:p-4 dc:border-t border-dc-border",
|
|
702
|
-
children: [/* @__PURE__ */
|
|
702
|
+
children: [/* @__PURE__ */ q("button", {
|
|
703
703
|
onClick: r,
|
|
704
704
|
className: "dc:px-4 dc:py-2 dc:text-sm dc:font-medium text-dc-text-secondary hover:text-dc-text dc:transition-colors",
|
|
705
705
|
children: a("common.actions.cancel")
|
|
706
|
-
}), /* @__PURE__ */
|
|
706
|
+
}), /* @__PURE__ */ q("button", {
|
|
707
707
|
onClick: () => n(o),
|
|
708
708
|
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",
|
|
709
709
|
children: a("common.actions.save")
|
|
@@ -717,45 +717,45 @@ function ze({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
717
717
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterItem.tsx
|
|
718
718
|
var Be = d("close"), Ve = d("dimension"), He = d("timeDimension"), Ue = d("measure");
|
|
719
719
|
function We({ filter: e, schema: t, onRemove: n, onUpdate: r }) {
|
|
720
|
-
let { t: i } =
|
|
721
|
-
return /* @__PURE__ */
|
|
720
|
+
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 = E(e.member, t), f = S[e.operator], p = f?.label ? i(f.label) : e.operator, m = Ge(e, f, i), h = l ? He : u ? Ue : Ve;
|
|
721
|
+
return /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ J("div", {
|
|
722
722
|
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",
|
|
723
723
|
children: [
|
|
724
|
-
/* @__PURE__ */
|
|
724
|
+
/* @__PURE__ */ q("span", {
|
|
725
725
|
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`,
|
|
726
|
-
children: h && /* @__PURE__ */
|
|
726
|
+
children: h && /* @__PURE__ */ q(h, { className: "dc:w-4 dc:h-4" })
|
|
727
727
|
}),
|
|
728
|
-
/* @__PURE__ */
|
|
728
|
+
/* @__PURE__ */ q("button", {
|
|
729
729
|
ref: s,
|
|
730
730
|
onClick: () => o(!0),
|
|
731
731
|
className: "dc:flex-1 dc:min-w-0 dc:text-left",
|
|
732
732
|
title: `${d} ${p} ${m}`,
|
|
733
|
-
children: /* @__PURE__ */
|
|
733
|
+
children: /* @__PURE__ */ J("div", {
|
|
734
734
|
className: "dc:text-sm text-dc-text dc:break-words",
|
|
735
735
|
children: [
|
|
736
|
-
/* @__PURE__ */
|
|
736
|
+
/* @__PURE__ */ q("span", {
|
|
737
737
|
className: "dc:font-medium",
|
|
738
738
|
children: d
|
|
739
739
|
}),
|
|
740
|
-
/* @__PURE__ */
|
|
740
|
+
/* @__PURE__ */ q("span", {
|
|
741
741
|
className: "text-dc-text-muted dc:mx-1",
|
|
742
742
|
children: p
|
|
743
743
|
}),
|
|
744
|
-
/* @__PURE__ */
|
|
744
|
+
/* @__PURE__ */ q("span", {
|
|
745
745
|
className: "text-dc-primary",
|
|
746
746
|
children: m
|
|
747
747
|
})
|
|
748
748
|
]
|
|
749
749
|
})
|
|
750
750
|
}),
|
|
751
|
-
/* @__PURE__ */
|
|
751
|
+
/* @__PURE__ */ q("button", {
|
|
752
752
|
onClick: n,
|
|
753
753
|
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",
|
|
754
754
|
title: i("filter.removeButton.title"),
|
|
755
|
-
children: Be && /* @__PURE__ */
|
|
755
|
+
children: Be && /* @__PURE__ */ q(Be, { className: "dc:w-4 dc:h-4" })
|
|
756
756
|
})
|
|
757
757
|
]
|
|
758
|
-
}), a && /* @__PURE__ */
|
|
758
|
+
}), a && /* @__PURE__ */ q(ze, {
|
|
759
759
|
filter: e,
|
|
760
760
|
schema: t,
|
|
761
761
|
onSave: (e) => {
|
|
@@ -775,22 +775,22 @@ function Ge(e, t, n) {
|
|
|
775
775
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterGroup.tsx
|
|
776
776
|
var Ke = d("add"), qe = d("close");
|
|
777
777
|
function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, depth: a = 0, hideRemoveButton: o = !1 }) {
|
|
778
|
-
let { t: s } =
|
|
779
|
-
|
|
778
|
+
let { t: s } = z(), [c, l] = G(!1), u = W(null);
|
|
779
|
+
H(() => {
|
|
780
780
|
let e = (e) => {
|
|
781
781
|
u.current && !u.current.contains(e.target) && l(!1);
|
|
782
782
|
};
|
|
783
783
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
784
784
|
}, []);
|
|
785
|
-
let d =
|
|
785
|
+
let d = V(() => {
|
|
786
786
|
n(ne(e));
|
|
787
|
-
}, [e, n]), f =
|
|
787
|
+
}, [e, n]), f = V((t, r) => {
|
|
788
788
|
let i = [...e.filters];
|
|
789
789
|
i[t] = r, n({
|
|
790
790
|
...e,
|
|
791
791
|
filters: i
|
|
792
792
|
});
|
|
793
|
-
}, [e, n]), p =
|
|
793
|
+
}, [e, n]), p = V((t) => {
|
|
794
794
|
let i = e.filters.filter((e, n) => n !== t);
|
|
795
795
|
i.length === 0 ? r() : n({
|
|
796
796
|
...e,
|
|
@@ -801,7 +801,7 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
801
801
|
n,
|
|
802
802
|
r,
|
|
803
803
|
a
|
|
804
|
-
]), m =
|
|
804
|
+
]), m = V((t) => {
|
|
805
805
|
let r = {
|
|
806
806
|
type: t,
|
|
807
807
|
filters: []
|
|
@@ -810,23 +810,23 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
810
810
|
...e,
|
|
811
811
|
filters: [...e.filters, r]
|
|
812
812
|
}), l(!1);
|
|
813
|
-
}, [e, n]), h =
|
|
813
|
+
}, [e, n]), h = V(() => {
|
|
814
814
|
i([]), l(!1);
|
|
815
|
-
}, [i]), g =
|
|
815
|
+
}, [i]), g = V((e) => (t = []) => {
|
|
816
816
|
i([e, ...t]);
|
|
817
817
|
}, [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");
|
|
818
|
-
return /* @__PURE__ */
|
|
818
|
+
return /* @__PURE__ */ J("div", {
|
|
819
819
|
className: `dc:border ${_()} dc:rounded-lg bg-dc-surface dc:w-full`,
|
|
820
|
-
children: [/* @__PURE__ */
|
|
820
|
+
children: [/* @__PURE__ */ J("div", {
|
|
821
821
|
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()}`,
|
|
822
|
-
children: [/* @__PURE__ */
|
|
822
|
+
children: [/* @__PURE__ */ J("div", {
|
|
823
823
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
824
|
-
children: [/* @__PURE__ */
|
|
824
|
+
children: [/* @__PURE__ */ q("button", {
|
|
825
825
|
onClick: d,
|
|
826
826
|
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"}`,
|
|
827
827
|
title: `Click to switch to ${e.type === "and" ? "OR" : "AND"}`,
|
|
828
828
|
children: e.type.toUpperCase()
|
|
829
|
-
}), /* @__PURE__ */
|
|
829
|
+
}), /* @__PURE__ */ J("span", {
|
|
830
830
|
className: "dc:text-xs text-dc-text-muted",
|
|
831
831
|
children: [
|
|
832
832
|
y,
|
|
@@ -834,61 +834,61 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
834
834
|
b
|
|
835
835
|
]
|
|
836
836
|
})]
|
|
837
|
-
}), /* @__PURE__ */
|
|
837
|
+
}), /* @__PURE__ */ J("div", {
|
|
838
838
|
className: "dc:flex dc:items-center dc:gap-1",
|
|
839
|
-
children: [/* @__PURE__ */
|
|
839
|
+
children: [/* @__PURE__ */ J("div", {
|
|
840
840
|
className: "dc:relative",
|
|
841
841
|
ref: u,
|
|
842
|
-
children: [/* @__PURE__ */
|
|
842
|
+
children: [/* @__PURE__ */ q("button", {
|
|
843
843
|
onClick: () => l(!c),
|
|
844
844
|
className: "dc:p-1 text-dc-text-secondary hover:text-dc-primary hover:bg-dc-surface-hover dc:rounded-sm dc:transition-colors",
|
|
845
845
|
title: "Add condition",
|
|
846
|
-
children: /* @__PURE__ */
|
|
847
|
-
}), c && /* @__PURE__ */
|
|
846
|
+
children: /* @__PURE__ */ q(Ke, { className: "dc:w-4 dc:h-4" })
|
|
847
|
+
}), c && /* @__PURE__ */ J("div", {
|
|
848
848
|
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]",
|
|
849
849
|
children: [
|
|
850
|
-
/* @__PURE__ */
|
|
850
|
+
/* @__PURE__ */ q("button", {
|
|
851
851
|
onClick: h,
|
|
852
852
|
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",
|
|
853
853
|
children: s("filter.group.addFilter")
|
|
854
854
|
}),
|
|
855
|
-
/* @__PURE__ */
|
|
855
|
+
/* @__PURE__ */ q("button", {
|
|
856
856
|
onClick: () => m("and"),
|
|
857
857
|
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",
|
|
858
858
|
children: s("filter.group.addAndGroup")
|
|
859
859
|
}),
|
|
860
|
-
/* @__PURE__ */
|
|
860
|
+
/* @__PURE__ */ q("button", {
|
|
861
861
|
onClick: () => m("or"),
|
|
862
862
|
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",
|
|
863
863
|
children: s("filter.group.addOrGroup")
|
|
864
864
|
})
|
|
865
865
|
]
|
|
866
866
|
})]
|
|
867
|
-
}), !o && /* @__PURE__ */
|
|
867
|
+
}), !o && /* @__PURE__ */ q("button", {
|
|
868
868
|
onClick: r,
|
|
869
869
|
className: "dc:p-1 text-dc-text-muted hover:text-dc-danger dc:transition-colors",
|
|
870
870
|
title: s("filter.group.removeGroup"),
|
|
871
|
-
children: /* @__PURE__ */
|
|
871
|
+
children: /* @__PURE__ */ q(qe, { className: "dc:w-4 dc:h-4" })
|
|
872
872
|
})]
|
|
873
873
|
})]
|
|
874
|
-
}), /* @__PURE__ */
|
|
874
|
+
}), /* @__PURE__ */ q("div", {
|
|
875
875
|
className: "dc:p-1.5 dc:flex dc:flex-wrap dc:gap-2",
|
|
876
|
-
children: e.filters.length === 0 ? /* @__PURE__ */
|
|
876
|
+
children: e.filters.length === 0 ? /* @__PURE__ */ J("div", {
|
|
877
877
|
className: "dc:text-center dc:py-3",
|
|
878
|
-
children: [/* @__PURE__ */
|
|
878
|
+
children: [/* @__PURE__ */ q("p", {
|
|
879
879
|
className: "dc:text-xs text-dc-text-muted dc:mb-1",
|
|
880
880
|
children: s("filter.group.empty")
|
|
881
|
-
}), /* @__PURE__ */
|
|
881
|
+
}), /* @__PURE__ */ q("button", {
|
|
882
882
|
onClick: () => i([]),
|
|
883
883
|
className: "dc:text-xs text-dc-primary dc:hover:underline",
|
|
884
884
|
children: s("filter.group.addFilterLink")
|
|
885
885
|
})]
|
|
886
|
-
}) : e.filters.map((e, n) => re(e) ? /* @__PURE__ */
|
|
886
|
+
}) : e.filters.map((e, n) => re(e) ? /* @__PURE__ */ q(We, {
|
|
887
887
|
filter: e,
|
|
888
888
|
schema: t,
|
|
889
889
|
onUpdate: (e) => f(n, e),
|
|
890
890
|
onRemove: () => p(n)
|
|
891
|
-
}, `filter-${n}`) : N(e) ? /* @__PURE__ */
|
|
891
|
+
}, `filter-${n}`) : N(e) ? /* @__PURE__ */ q(Je, {
|
|
892
892
|
group: e,
|
|
893
893
|
schema: t,
|
|
894
894
|
onUpdate: (e) => f(n, e),
|
|
@@ -903,42 +903,42 @@ function Je({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
903
903
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterSection.tsx
|
|
904
904
|
var Ye = d("add");
|
|
905
905
|
function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dimensionsOnly: i = !1 }) {
|
|
906
|
-
let { t: a } =
|
|
906
|
+
let { t: a } = z(), [o, s] = G(!1), [c, l] = G(!1), u = W([]), d = L(e), f = V((e) => {
|
|
907
907
|
e.preventDefault(), e.stopPropagation(), l(!0);
|
|
908
|
-
}, []), p =
|
|
908
|
+
}, []), p = V((e) => {
|
|
909
909
|
e.preventDefault(), e.stopPropagation(), l(!1);
|
|
910
|
-
}, []), m =
|
|
910
|
+
}, []), m = V((e) => {
|
|
911
911
|
e.preventDefault(), e.stopPropagation(), l(!1);
|
|
912
912
|
try {
|
|
913
913
|
let t = JSON.parse(e.dataTransfer.getData("text/plain"));
|
|
914
914
|
t.field && r && r(t.field);
|
|
915
915
|
} catch {}
|
|
916
|
-
}, [r]), h = te(e), g =
|
|
916
|
+
}, [r]), h = te(e), g = V((t, r, i) => {
|
|
917
917
|
let a = t.type === "time", o = a ? "inDateRange" : "equals", c = {
|
|
918
918
|
member: t.name,
|
|
919
919
|
operator: o,
|
|
920
920
|
values: []
|
|
921
921
|
};
|
|
922
922
|
a && o === "inDateRange" && (c.dateRange = F("this_month")), n(ie(e, u.current, c)), s(!1), u.current = [];
|
|
923
|
-
}, [e, n]), _ =
|
|
923
|
+
}, [e, n]), _ = V((t, r) => {
|
|
924
924
|
let i = [...e];
|
|
925
925
|
i[t] = r, n(i);
|
|
926
|
-
}, [e, n]), v =
|
|
926
|
+
}, [e, n]), v = V((t) => {
|
|
927
927
|
n(ae(e, t));
|
|
928
|
-
}, [e, n]), y =
|
|
928
|
+
}, [e, n]), y = V(() => {
|
|
929
929
|
n([]);
|
|
930
|
-
}, [n]), b =
|
|
930
|
+
}, [n]), b = V(() => {
|
|
931
931
|
u.current = [], s(!0);
|
|
932
|
-
}, []), x =
|
|
932
|
+
}, []), x = V((e) => (t = []) => {
|
|
933
933
|
u.current = [...e, ...t], s(!0);
|
|
934
934
|
}, []), S = (n, r, i = []) => {
|
|
935
935
|
let a = [...i, r];
|
|
936
|
-
return re(n) ? /* @__PURE__ */
|
|
936
|
+
return re(n) ? /* @__PURE__ */ q(We, {
|
|
937
937
|
filter: n,
|
|
938
938
|
schema: t,
|
|
939
939
|
onUpdate: (e) => _(r, e),
|
|
940
940
|
onRemove: () => v(r)
|
|
941
|
-
}, `filter-${a.join("-")}`) : N(n) ? /* @__PURE__ */
|
|
941
|
+
}, `filter-${a.join("-")}`) : N(n) ? /* @__PURE__ */ q(Je, {
|
|
942
942
|
group: n,
|
|
943
943
|
schema: t,
|
|
944
944
|
onUpdate: (e) => _(r, e),
|
|
@@ -947,21 +947,21 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
947
947
|
hideRemoveButton: e.length === 1
|
|
948
948
|
}, `group-${a.join("-")}`) : null;
|
|
949
949
|
};
|
|
950
|
-
return /* @__PURE__ */
|
|
951
|
-
/* @__PURE__ */
|
|
950
|
+
return /* @__PURE__ */ J("div", { children: [
|
|
951
|
+
/* @__PURE__ */ J("button", {
|
|
952
952
|
onClick: b,
|
|
953
953
|
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",
|
|
954
954
|
title: "Add filter",
|
|
955
|
-
children: [/* @__PURE__ */
|
|
955
|
+
children: [/* @__PURE__ */ J(ge, { children: [a("analysis.sections.filters"), d > 0 && /* @__PURE__ */ J("span", {
|
|
956
956
|
className: "dc:ml-1.5 dc:text-xs dc:font-normal text-dc-text-muted dc:normal-case dc:tracking-normal",
|
|
957
957
|
children: [
|
|
958
958
|
"(",
|
|
959
959
|
d,
|
|
960
960
|
")"
|
|
961
961
|
]
|
|
962
|
-
})] }), /* @__PURE__ */
|
|
962
|
+
})] }), /* @__PURE__ */ J("div", {
|
|
963
963
|
className: "dc:flex dc:items-center dc:gap-2",
|
|
964
|
-
children: [d > 0 && /* @__PURE__ */
|
|
964
|
+
children: [d > 0 && /* @__PURE__ */ q("span", {
|
|
965
965
|
role: "button",
|
|
966
966
|
tabIndex: 0,
|
|
967
967
|
onClick: (e) => {
|
|
@@ -972,23 +972,23 @@ function Xe({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
972
972
|
},
|
|
973
973
|
className: "dc:text-xs text-dc-text-muted hover:text-dc-error dc:underline dc:cursor-pointer",
|
|
974
974
|
children: a("filter.section.clearAll")
|
|
975
|
-
}), /* @__PURE__ */
|
|
975
|
+
}), /* @__PURE__ */ q(Ye, { className: "dc:w-5 dc:h-5 text-dc-text-secondary group-hover:text-dc-primary dc:transition-colors" })]
|
|
976
976
|
})]
|
|
977
977
|
}),
|
|
978
|
-
/* @__PURE__ */
|
|
978
|
+
/* @__PURE__ */ q("div", {
|
|
979
979
|
onDragOver: r ? f : void 0,
|
|
980
980
|
onDragLeave: r ? p : void 0,
|
|
981
981
|
onDrop: r ? m : void 0,
|
|
982
982
|
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"}`,
|
|
983
|
-
children: e.length === 0 ? /* @__PURE__ */
|
|
983
|
+
children: e.length === 0 ? /* @__PURE__ */ q("p", {
|
|
984
984
|
className: `dc:text-sm ${c ? "text-dc-primary dc:font-medium" : "text-dc-text-muted"}`,
|
|
985
985
|
children: a(c ? "filter.section.dropHint" : "filter.section.empty")
|
|
986
|
-
}) : /* @__PURE__ */
|
|
986
|
+
}) : /* @__PURE__ */ q("div", {
|
|
987
987
|
className: "dc:flex dc:flex-wrap dc:gap-2",
|
|
988
988
|
children: e.map((e, t) => S(e, t))
|
|
989
989
|
})
|
|
990
990
|
}),
|
|
991
|
-
/* @__PURE__ */
|
|
991
|
+
/* @__PURE__ */ q(O, {
|
|
992
992
|
isOpen: o,
|
|
993
993
|
onClose: () => {
|
|
994
994
|
s(!1), u.current = [];
|
|
@@ -1019,16 +1019,16 @@ var Qe = {
|
|
|
1019
1019
|
low: "text-dc-text-muted"
|
|
1020
1020
|
};
|
|
1021
1021
|
function tt({ assessment: e, reason: t }) {
|
|
1022
|
-
let { t: n } =
|
|
1022
|
+
let { t: n } = z(), r = {
|
|
1023
1023
|
good: n("explainAI.assessment.good"),
|
|
1024
1024
|
warning: n("explainAI.assessment.warning"),
|
|
1025
1025
|
critical: n("explainAI.assessment.critical")
|
|
1026
1026
|
};
|
|
1027
|
-
return /* @__PURE__ */
|
|
1027
|
+
return /* @__PURE__ */ J("div", {
|
|
1028
1028
|
className: `dc:p-4 dc:rounded-lg dc:border ${Qe[e]}`,
|
|
1029
|
-
children: [/* @__PURE__ */
|
|
1029
|
+
children: [/* @__PURE__ */ q("div", {
|
|
1030
1030
|
className: "dc:flex dc:items-center dc:gap-2 dc:mb-1",
|
|
1031
|
-
children: /* @__PURE__ */
|
|
1031
|
+
children: /* @__PURE__ */ J("span", {
|
|
1032
1032
|
className: "dc:font-semibold dc:uppercase dc:text-base",
|
|
1033
1033
|
children: [
|
|
1034
1034
|
e === "good" && "✓ ",
|
|
@@ -1037,33 +1037,33 @@ function tt({ assessment: e, reason: t }) {
|
|
|
1037
1037
|
r[e]
|
|
1038
1038
|
]
|
|
1039
1039
|
})
|
|
1040
|
-
}), /* @__PURE__ */
|
|
1040
|
+
}), /* @__PURE__ */ q("p", {
|
|
1041
1041
|
className: "dc:text-sm",
|
|
1042
1042
|
children: Ze(t)
|
|
1043
1043
|
})]
|
|
1044
1044
|
});
|
|
1045
1045
|
}
|
|
1046
1046
|
function nt({ issue: e }) {
|
|
1047
|
-
return /* @__PURE__ */
|
|
1047
|
+
return /* @__PURE__ */ J("div", {
|
|
1048
1048
|
className: "dc:flex dc:items-start dc:gap-2 dc:py-2",
|
|
1049
|
-
children: [/* @__PURE__ */
|
|
1049
|
+
children: [/* @__PURE__ */ J("span", {
|
|
1050
1050
|
className: `dc:text-sm ${et[e.severity]}`,
|
|
1051
1051
|
children: [
|
|
1052
1052
|
e.severity === "high" && "●",
|
|
1053
1053
|
e.severity === "medium" && "○",
|
|
1054
1054
|
e.severity === "low" && "○"
|
|
1055
1055
|
]
|
|
1056
|
-
}), /* @__PURE__ */
|
|
1056
|
+
}), /* @__PURE__ */ q("span", {
|
|
1057
1057
|
className: "dc:text-sm text-dc-text-secondary",
|
|
1058
1058
|
children: Ze(e.description)
|
|
1059
1059
|
})]
|
|
1060
1060
|
});
|
|
1061
1061
|
}
|
|
1062
1062
|
function rt({ text: e }) {
|
|
1063
|
-
let { t } =
|
|
1064
|
-
return
|
|
1063
|
+
let { t } = z(), [n, r] = B.useState(!1), i = B.useRef(null);
|
|
1064
|
+
return B.useEffect(() => () => {
|
|
1065
1065
|
i.current && clearTimeout(i.current);
|
|
1066
|
-
}, []), /* @__PURE__ */
|
|
1066
|
+
}, []), /* @__PURE__ */ q("button", {
|
|
1067
1067
|
onClick: async () => {
|
|
1068
1068
|
try {
|
|
1069
1069
|
await navigator.clipboard.writeText(e), r(!0), i.current && clearTimeout(i.current), i.current = setTimeout(() => r(!1), 2e3);
|
|
@@ -1077,57 +1077,57 @@ function rt({ text: e }) {
|
|
|
1077
1077
|
});
|
|
1078
1078
|
}
|
|
1079
1079
|
function it({ rec: e }) {
|
|
1080
|
-
let { t } =
|
|
1080
|
+
let { t } = z(), n = {
|
|
1081
1081
|
index: t("explainAI.type.index"),
|
|
1082
1082
|
table: t("explainAI.type.table"),
|
|
1083
1083
|
cube: t("explainAI.type.cube"),
|
|
1084
1084
|
general: t("explainAI.type.general")
|
|
1085
1085
|
};
|
|
1086
|
-
return /* @__PURE__ */
|
|
1086
|
+
return /* @__PURE__ */ J("div", {
|
|
1087
1087
|
className: "dc:p-4 dc:border border-dc-border dc:rounded-lg bg-dc-surface",
|
|
1088
1088
|
children: [
|
|
1089
|
-
/* @__PURE__ */
|
|
1089
|
+
/* @__PURE__ */ J("div", {
|
|
1090
1090
|
className: "dc:flex dc:items-center dc:gap-2 dc:mb-2",
|
|
1091
|
-
children: [/* @__PURE__ */
|
|
1091
|
+
children: [/* @__PURE__ */ q("span", {
|
|
1092
1092
|
className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-medium dc:rounded-sm ${$e[e.severity]}`,
|
|
1093
1093
|
children: n[e.type]
|
|
1094
|
-
}), /* @__PURE__ */
|
|
1094
|
+
}), /* @__PURE__ */ q("h5", {
|
|
1095
1095
|
className: "dc:font-medium text-dc-text",
|
|
1096
1096
|
children: Ze(e.title)
|
|
1097
1097
|
})]
|
|
1098
1098
|
}),
|
|
1099
|
-
/* @__PURE__ */
|
|
1099
|
+
/* @__PURE__ */ q("p", {
|
|
1100
1100
|
className: "dc:text-sm text-dc-text-secondary dc:mb-3",
|
|
1101
1101
|
children: Ze(e.description)
|
|
1102
1102
|
}),
|
|
1103
|
-
e.sql && /* @__PURE__ */
|
|
1103
|
+
e.sql && /* @__PURE__ */ q("div", {
|
|
1104
1104
|
className: "dc:mt-2",
|
|
1105
|
-
children: /* @__PURE__ */
|
|
1105
|
+
children: /* @__PURE__ */ q(m, {
|
|
1106
1106
|
code: e.sql,
|
|
1107
1107
|
language: "sql",
|
|
1108
|
-
headerRight: /* @__PURE__ */
|
|
1108
|
+
headerRight: /* @__PURE__ */ q(rt, { text: e.sql })
|
|
1109
1109
|
})
|
|
1110
1110
|
}),
|
|
1111
|
-
e.cubeCode && /* @__PURE__ */
|
|
1111
|
+
e.cubeCode && /* @__PURE__ */ J("div", {
|
|
1112
1112
|
className: "dc:mt-2",
|
|
1113
|
-
children: [e.cubeName && /* @__PURE__ */
|
|
1113
|
+
children: [e.cubeName && /* @__PURE__ */ q("p", {
|
|
1114
1114
|
className: "dc:text-xs text-dc-text-muted dc:mb-1",
|
|
1115
1115
|
children: t("explainAI.addToCube", { cubeName: e.cubeName })
|
|
1116
|
-
}), /* @__PURE__ */
|
|
1116
|
+
}), /* @__PURE__ */ J("div", {
|
|
1117
1117
|
className: "dc:relative",
|
|
1118
|
-
children: [/* @__PURE__ */
|
|
1118
|
+
children: [/* @__PURE__ */ q("pre", {
|
|
1119
1119
|
className: "dc:p-3 dc:text-xs bg-dc-surface-secondary dc:rounded-sm dc:overflow-x-auto dc:font-mono text-dc-text",
|
|
1120
1120
|
children: e.cubeCode
|
|
1121
|
-
}), /* @__PURE__ */
|
|
1121
|
+
}), /* @__PURE__ */ q("div", {
|
|
1122
1122
|
className: "dc:absolute dc:top-1 dc:right-1",
|
|
1123
|
-
children: /* @__PURE__ */
|
|
1123
|
+
children: /* @__PURE__ */ q(rt, { text: e.cubeCode })
|
|
1124
1124
|
})]
|
|
1125
1125
|
})]
|
|
1126
1126
|
}),
|
|
1127
|
-
e.estimatedImpact && /* @__PURE__ */
|
|
1127
|
+
e.estimatedImpact && /* @__PURE__ */ J("p", {
|
|
1128
1128
|
className: "dc:text-xs text-dc-text-muted dc:mt-2",
|
|
1129
1129
|
children: [
|
|
1130
|
-
/* @__PURE__ */
|
|
1130
|
+
/* @__PURE__ */ q("strong", { children: t("explainAI.expectedImpact") }),
|
|
1131
1131
|
" ",
|
|
1132
1132
|
Ze(e.estimatedImpact)
|
|
1133
1133
|
]
|
|
@@ -1136,44 +1136,44 @@ function it({ rec: e }) {
|
|
|
1136
1136
|
});
|
|
1137
1137
|
}
|
|
1138
1138
|
function at({ analysis: e, onClose: t, onClear: n }) {
|
|
1139
|
-
let { t: r } =
|
|
1140
|
-
return
|
|
1139
|
+
let { t: r } = z(), i = t || n;
|
|
1140
|
+
return B.useEffect(() => {
|
|
1141
1141
|
let e = (e) => {
|
|
1142
1142
|
e.key === "Escape" && i && i();
|
|
1143
1143
|
};
|
|
1144
1144
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
1145
|
-
}, [i]),
|
|
1145
|
+
}, [i]), B.useEffect(() => (document.body.style.overflow = "hidden", () => {
|
|
1146
1146
|
document.body.style.overflow = "";
|
|
1147
|
-
}), []), /* @__PURE__ */
|
|
1147
|
+
}), []), /* @__PURE__ */ J("div", {
|
|
1148
1148
|
className: "dc:fixed dc:inset-0 dc:z-50 dc:flex dc:items-center dc:justify-center dc:p-4 bg-black/50",
|
|
1149
|
-
children: [/* @__PURE__ */
|
|
1149
|
+
children: [/* @__PURE__ */ q("div", {
|
|
1150
1150
|
className: "dc:absolute dc:inset-0",
|
|
1151
1151
|
onClick: i,
|
|
1152
1152
|
"aria-hidden": "true"
|
|
1153
|
-
}), /* @__PURE__ */
|
|
1153
|
+
}), /* @__PURE__ */ J("div", {
|
|
1154
1154
|
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",
|
|
1155
1155
|
children: [
|
|
1156
|
-
/* @__PURE__ */
|
|
1156
|
+
/* @__PURE__ */ J("div", {
|
|
1157
1157
|
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",
|
|
1158
|
-
children: [/* @__PURE__ */
|
|
1158
|
+
children: [/* @__PURE__ */ J("div", {
|
|
1159
1159
|
className: "dc:flex dc:items-center dc:gap-3",
|
|
1160
|
-
children: [/* @__PURE__ */
|
|
1160
|
+
children: [/* @__PURE__ */ q("span", {
|
|
1161
1161
|
className: "dc:text-lg",
|
|
1162
1162
|
children: "✨"
|
|
1163
|
-
}), /* @__PURE__ */
|
|
1163
|
+
}), /* @__PURE__ */ q("h3", {
|
|
1164
1164
|
className: "dc:text-lg dc:font-semibold text-dc-text",
|
|
1165
1165
|
children: r("explainAI.title")
|
|
1166
1166
|
})]
|
|
1167
|
-
}), /* @__PURE__ */
|
|
1167
|
+
}), /* @__PURE__ */ q("button", {
|
|
1168
1168
|
onClick: i,
|
|
1169
1169
|
className: "dc:p-2 dc:rounded-lg hover:bg-dc-surface-hover text-dc-text-secondary hover:text-dc-text dc:transition-colors",
|
|
1170
1170
|
"aria-label": "Close",
|
|
1171
|
-
children: /* @__PURE__ */
|
|
1171
|
+
children: /* @__PURE__ */ q("svg", {
|
|
1172
1172
|
className: "dc:w-5 dc:h-5",
|
|
1173
1173
|
fill: "none",
|
|
1174
1174
|
stroke: "currentColor",
|
|
1175
1175
|
viewBox: "0 0 24 24",
|
|
1176
|
-
children: /* @__PURE__ */
|
|
1176
|
+
children: /* @__PURE__ */ q("path", {
|
|
1177
1177
|
strokeLinecap: "round",
|
|
1178
1178
|
strokeLinejoin: "round",
|
|
1179
1179
|
strokeWidth: 2,
|
|
@@ -1182,50 +1182,50 @@ function at({ analysis: e, onClose: t, onClear: n }) {
|
|
|
1182
1182
|
})
|
|
1183
1183
|
})]
|
|
1184
1184
|
}),
|
|
1185
|
-
/* @__PURE__ */
|
|
1185
|
+
/* @__PURE__ */ J("div", {
|
|
1186
1186
|
className: "dc:flex-1 dc:overflow-y-auto dc:px-6 dc:py-4 dc:space-y-6",
|
|
1187
1187
|
children: [
|
|
1188
|
-
/* @__PURE__ */
|
|
1188
|
+
/* @__PURE__ */ q(tt, {
|
|
1189
1189
|
assessment: e.assessment,
|
|
1190
1190
|
reason: e.assessmentReason
|
|
1191
1191
|
}),
|
|
1192
|
-
/* @__PURE__ */
|
|
1192
|
+
/* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("h4", {
|
|
1193
1193
|
className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-2",
|
|
1194
1194
|
children: r("explainAI.summary")
|
|
1195
|
-
}), /* @__PURE__ */
|
|
1195
|
+
}), /* @__PURE__ */ q("p", {
|
|
1196
1196
|
className: "text-dc-text",
|
|
1197
1197
|
children: Ze(e.summary)
|
|
1198
1198
|
})] }),
|
|
1199
|
-
e.queryUnderstanding && /* @__PURE__ */
|
|
1199
|
+
e.queryUnderstanding && /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("h4", {
|
|
1200
1200
|
className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-2",
|
|
1201
1201
|
children: r("explainAI.queryAnalysis")
|
|
1202
|
-
}), /* @__PURE__ */
|
|
1202
|
+
}), /* @__PURE__ */ q("p", {
|
|
1203
1203
|
className: "text-dc-text-secondary",
|
|
1204
1204
|
children: Ze(e.queryUnderstanding)
|
|
1205
1205
|
})] }),
|
|
1206
|
-
e.issues && e.issues.length > 0 && /* @__PURE__ */
|
|
1206
|
+
e.issues && e.issues.length > 0 && /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("h4", {
|
|
1207
1207
|
className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-2",
|
|
1208
1208
|
children: r("explainAI.issuesFound", { count: e.issues.length })
|
|
1209
|
-
}), /* @__PURE__ */
|
|
1209
|
+
}), /* @__PURE__ */ q("div", {
|
|
1210
1210
|
className: "dc:space-y-1 bg-dc-surface-secondary dc:rounded-lg dc:p-3",
|
|
1211
|
-
children: e.issues.map((e, t) => /* @__PURE__ */
|
|
1211
|
+
children: e.issues.map((e, t) => /* @__PURE__ */ q(nt, { issue: e }, t))
|
|
1212
1212
|
})] }),
|
|
1213
|
-
e.recommendations && e.recommendations.length > 0 && /* @__PURE__ */
|
|
1213
|
+
e.recommendations && e.recommendations.length > 0 && /* @__PURE__ */ J("div", { children: [/* @__PURE__ */ q("h4", {
|
|
1214
1214
|
className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-3",
|
|
1215
1215
|
children: r("explainAI.recommendations", { count: e.recommendations.length })
|
|
1216
|
-
}), /* @__PURE__ */
|
|
1216
|
+
}), /* @__PURE__ */ q("div", {
|
|
1217
1217
|
className: "dc:space-y-4",
|
|
1218
|
-
children: e.recommendations.map((e, t) => /* @__PURE__ */
|
|
1218
|
+
children: e.recommendations.map((e, t) => /* @__PURE__ */ q(it, { rec: e }, t))
|
|
1219
1219
|
})] }),
|
|
1220
|
-
(!e.recommendations || e.recommendations.length === 0) && /* @__PURE__ */
|
|
1220
|
+
(!e.recommendations || e.recommendations.length === 0) && /* @__PURE__ */ q("div", {
|
|
1221
1221
|
className: "text-dc-text-muted dc:italic dc:p-4 bg-dc-surface-secondary dc:rounded-lg",
|
|
1222
1222
|
children: r("explainAI.noRecommendations")
|
|
1223
1223
|
})
|
|
1224
1224
|
]
|
|
1225
1225
|
}),
|
|
1226
|
-
/* @__PURE__ */
|
|
1226
|
+
/* @__PURE__ */ J("div", {
|
|
1227
1227
|
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",
|
|
1228
|
-
children: [e._meta && /* @__PURE__ */
|
|
1228
|
+
children: [e._meta && /* @__PURE__ */ J("div", {
|
|
1229
1229
|
className: "dc:text-xs text-dc-text-muted",
|
|
1230
1230
|
children: [
|
|
1231
1231
|
r("explainAI.modelLabel"),
|
|
@@ -1233,7 +1233,7 @@ function at({ analysis: e, onClose: t, onClear: n }) {
|
|
|
1233
1233
|
e._meta.model,
|
|
1234
1234
|
e._meta.usingUserKey && ` ${r("explainAI.usingUserKey")}`
|
|
1235
1235
|
]
|
|
1236
|
-
}), /* @__PURE__ */
|
|
1236
|
+
}), /* @__PURE__ */ q("button", {
|
|
1237
1237
|
onClick: i,
|
|
1238
1238
|
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",
|
|
1239
1239
|
children: r("common.actions.close")
|
|
@@ -1409,34 +1409,34 @@ function Nt(e, t, n, r) {
|
|
|
1409
1409
|
//#endregion
|
|
1410
1410
|
//#region src/client/components/AnalysisBuilder/ExecutionPlanPanelParts.tsx
|
|
1411
1411
|
function Pt({ title: e, height: t, className: n, children: r }) {
|
|
1412
|
-
return /* @__PURE__ */
|
|
1412
|
+
return /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ q("h4", {
|
|
1413
1413
|
className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2",
|
|
1414
1414
|
children: e
|
|
1415
|
-
}), /* @__PURE__ */
|
|
1415
|
+
}), /* @__PURE__ */ q("div", {
|
|
1416
1416
|
className: n,
|
|
1417
1417
|
style: { height: t },
|
|
1418
1418
|
children: r
|
|
1419
1419
|
})] });
|
|
1420
1420
|
}
|
|
1421
1421
|
function Ft({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSql: i, title: a, height: o, headerRight: s }) {
|
|
1422
|
-
let { t: c } =
|
|
1423
|
-
return t ? /* @__PURE__ */
|
|
1422
|
+
let { t: c } = z();
|
|
1423
|
+
return t ? /* @__PURE__ */ q(Pt, {
|
|
1424
1424
|
title: a,
|
|
1425
1425
|
height: o,
|
|
1426
1426
|
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",
|
|
1427
1427
|
children: c("results.debug.loadingSql")
|
|
1428
|
-
}) : n ? /* @__PURE__ */
|
|
1428
|
+
}) : n ? /* @__PURE__ */ q(Pt, {
|
|
1429
1429
|
title: a,
|
|
1430
1430
|
height: o,
|
|
1431
1431
|
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
|
|
1432
1432
|
children: n.message
|
|
1433
|
-
}) : e ? /* @__PURE__ */
|
|
1433
|
+
}) : e ? /* @__PURE__ */ q(m, {
|
|
1434
1434
|
code: i,
|
|
1435
1435
|
language: "sql",
|
|
1436
1436
|
title: a,
|
|
1437
1437
|
height: o,
|
|
1438
1438
|
headerRight: s
|
|
1439
|
-
}) : /* @__PURE__ */
|
|
1439
|
+
}) : /* @__PURE__ */ q(Pt, {
|
|
1440
1440
|
title: a,
|
|
1441
1441
|
height: o,
|
|
1442
1442
|
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded-sm dc:p-3 text-dc-text-muted dc:text-sm",
|
|
@@ -1444,31 +1444,31 @@ function Ft({ sql: e, sqlLoading: t, sqlError: n, sqlPlaceholder: r, formattedSq
|
|
|
1444
1444
|
});
|
|
1445
1445
|
}
|
|
1446
1446
|
function It({ summary: e }) {
|
|
1447
|
-
let { t } =
|
|
1448
|
-
return /* @__PURE__ */
|
|
1447
|
+
let { t } = z();
|
|
1448
|
+
return /* @__PURE__ */ J("div", {
|
|
1449
1449
|
className: "dc:flex dc:flex-wrap dc:items-center dc:gap-2",
|
|
1450
1450
|
children: [
|
|
1451
|
-
/* @__PURE__ */
|
|
1451
|
+
/* @__PURE__ */ q("span", {
|
|
1452
1452
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium bg-dc-accent text-white dc:rounded-sm",
|
|
1453
1453
|
children: e.database.toUpperCase()
|
|
1454
1454
|
}),
|
|
1455
|
-
e.hasSequentialScans && /* @__PURE__ */
|
|
1455
|
+
e.hasSequentialScans && /* @__PURE__ */ q("span", {
|
|
1456
1456
|
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",
|
|
1457
1457
|
children: t("debug.sequentialScans")
|
|
1458
1458
|
}),
|
|
1459
|
-
e.usedIndexes.length > 0 && /* @__PURE__ */
|
|
1459
|
+
e.usedIndexes.length > 0 && /* @__PURE__ */ q("span", {
|
|
1460
1460
|
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",
|
|
1461
1461
|
children: t(e.usedIndexes.length === 1 ? "debug.indexesUsed" : "debug.indexesUsedPlural", { count: e.usedIndexes.length })
|
|
1462
1462
|
}),
|
|
1463
|
-
e.executionTime !== void 0 && /* @__PURE__ */
|
|
1463
|
+
e.executionTime !== void 0 && /* @__PURE__ */ q("span", {
|
|
1464
1464
|
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",
|
|
1465
1465
|
children: t("debug.executionTime", { time: e.executionTime.toFixed(2) })
|
|
1466
1466
|
}),
|
|
1467
|
-
e.planningTime !== void 0 && /* @__PURE__ */
|
|
1467
|
+
e.planningTime !== void 0 && /* @__PURE__ */ q("span", {
|
|
1468
1468
|
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",
|
|
1469
1469
|
children: t("debug.planningTime", { time: e.planningTime.toFixed(2) })
|
|
1470
1470
|
}),
|
|
1471
|
-
e.totalCost !== void 0 && /* @__PURE__ */
|
|
1471
|
+
e.totalCost !== void 0 && /* @__PURE__ */ q("span", {
|
|
1472
1472
|
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",
|
|
1473
1473
|
children: t("debug.cost", { cost: e.totalCost.toFixed(2) })
|
|
1474
1474
|
})
|
|
@@ -1476,30 +1476,30 @@ function It({ summary: e }) {
|
|
|
1476
1476
|
});
|
|
1477
1477
|
}
|
|
1478
1478
|
function Lt({ explainLoading: e, explainError: t, explainResult: n, useAnalyze: r, aiButton: i }) {
|
|
1479
|
-
let { t: a } =
|
|
1480
|
-
return e ? /* @__PURE__ */
|
|
1479
|
+
let { t: a } = z();
|
|
1480
|
+
return e ? /* @__PURE__ */ q("div", {
|
|
1481
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",
|
|
1482
1482
|
children: a(r ? "debug.explainRunningAnalyze" : "debug.explainRunningBasic")
|
|
1483
|
-
}) : t ? /* @__PURE__ */
|
|
1483
|
+
}) : t ? /* @__PURE__ */ J("div", {
|
|
1484
1484
|
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
|
|
1485
1485
|
children: [
|
|
1486
|
-
/* @__PURE__ */
|
|
1486
|
+
/* @__PURE__ */ q("strong", { children: a("debug.explainError") }),
|
|
1487
1487
|
" ",
|
|
1488
1488
|
t.message
|
|
1489
1489
|
]
|
|
1490
|
-
}) : n ? /* @__PURE__ */
|
|
1490
|
+
}) : n ? /* @__PURE__ */ J("div", {
|
|
1491
1491
|
className: "dc:space-y-3",
|
|
1492
1492
|
children: [
|
|
1493
|
-
/* @__PURE__ */
|
|
1494
|
-
n.summary.usedIndexes.length > 0 && /* @__PURE__ */
|
|
1493
|
+
/* @__PURE__ */ q(It, { summary: n.summary }),
|
|
1494
|
+
n.summary.usedIndexes.length > 0 && /* @__PURE__ */ J("div", {
|
|
1495
1495
|
className: "dc:text-xs text-dc-text-muted",
|
|
1496
1496
|
children: [
|
|
1497
|
-
/* @__PURE__ */
|
|
1497
|
+
/* @__PURE__ */ q("strong", { children: a("debug.indexes") }),
|
|
1498
1498
|
" ",
|
|
1499
1499
|
n.summary.usedIndexes.join(", ")
|
|
1500
1500
|
]
|
|
1501
1501
|
}),
|
|
1502
|
-
/* @__PURE__ */
|
|
1502
|
+
/* @__PURE__ */ q(m, {
|
|
1503
1503
|
code: n.raw,
|
|
1504
1504
|
language: "sql",
|
|
1505
1505
|
title: a("debug.executionPlanTitle", { database: n.summary.database }),
|
|
@@ -1511,24 +1511,24 @@ function Lt({ explainLoading: e, explainError: t, explainResult: n, useAnalyze:
|
|
|
1511
1511
|
}
|
|
1512
1512
|
//#endregion
|
|
1513
1513
|
//#region src/client/components/AnalysisBuilder/ExecutionPlanPanel.tsx
|
|
1514
|
-
var Rt =
|
|
1515
|
-
let { t: v } =
|
|
1514
|
+
var Rt = 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" }) {
|
|
1515
|
+
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 = () => {
|
|
1516
1516
|
f && i && h && (f(i, h), S(!0));
|
|
1517
1517
|
}, T = () => {
|
|
1518
1518
|
S(!1);
|
|
1519
|
-
}, E = m && i ? /* @__PURE__ */
|
|
1519
|
+
}, E = m && i ? /* @__PURE__ */ q("button", {
|
|
1520
1520
|
onClick: w,
|
|
1521
1521
|
disabled: u,
|
|
1522
1522
|
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",
|
|
1523
|
-
children: u ? /* @__PURE__ */
|
|
1523
|
+
children: u ? /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ q("span", {
|
|
1524
1524
|
className: "dc:animate-spin",
|
|
1525
1525
|
children: "⟳"
|
|
1526
|
-
}), v("debug.aiAnalyzing")] }) : /* @__PURE__ */ K
|
|
1526
|
+
}), v("debug.aiAnalyzing")] }) : /* @__PURE__ */ q(K, { children: `✨ ${v("debug.aiAnalysis")}` })
|
|
1527
1527
|
}) : null;
|
|
1528
|
-
return /* @__PURE__ */
|
|
1528
|
+
return /* @__PURE__ */ J("div", {
|
|
1529
1529
|
className: "dc:space-y-3",
|
|
1530
1530
|
children: [
|
|
1531
|
-
/* @__PURE__ */
|
|
1531
|
+
/* @__PURE__ */ q(Ft, {
|
|
1532
1532
|
sql: e,
|
|
1533
1533
|
sqlLoading: t,
|
|
1534
1534
|
sqlError: n,
|
|
@@ -1536,37 +1536,37 @@ var Rt = ye(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder:
|
|
|
1536
1536
|
formattedSql: C,
|
|
1537
1537
|
title: g,
|
|
1538
1538
|
height: _,
|
|
1539
|
-
headerRight: /* @__PURE__ */
|
|
1539
|
+
headerRight: /* @__PURE__ */ J(K, { children: [/* @__PURE__ */ J("label", {
|
|
1540
1540
|
className: "dc:flex dc:items-center dc:gap-1 dc:text-xs text-dc-text-secondary dc:cursor-pointer",
|
|
1541
|
-
children: [/* @__PURE__ */
|
|
1541
|
+
children: [/* @__PURE__ */ q("input", {
|
|
1542
1542
|
type: "checkbox",
|
|
1543
1543
|
checked: y,
|
|
1544
1544
|
onChange: (e) => b(e.target.checked),
|
|
1545
1545
|
className: "dc:w-3 dc:h-3 dc:rounded-sm border-dc-border text-dc-accent focus:ring-dc-accent"
|
|
1546
1546
|
}), v("debug.explainIncludeTiming")]
|
|
1547
|
-
}), /* @__PURE__ */
|
|
1547
|
+
}), /* @__PURE__ */ q("button", {
|
|
1548
1548
|
onClick: () => c({ analyze: y }),
|
|
1549
1549
|
disabled: a,
|
|
1550
1550
|
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",
|
|
1551
1551
|
children: v(a ? "debug.explainRunning" : "debug.explainPlan")
|
|
1552
1552
|
})] })
|
|
1553
1553
|
}),
|
|
1554
|
-
o && /* @__PURE__ */
|
|
1554
|
+
o && /* @__PURE__ */ q("div", { children: /* @__PURE__ */ q(Lt, {
|
|
1555
1555
|
explainLoading: a,
|
|
1556
1556
|
explainError: s,
|
|
1557
1557
|
explainResult: i,
|
|
1558
1558
|
useAnalyze: y,
|
|
1559
1559
|
aiButton: E
|
|
1560
1560
|
}) }),
|
|
1561
|
-
d && /* @__PURE__ */
|
|
1561
|
+
d && /* @__PURE__ */ J("div", {
|
|
1562
1562
|
className: "text-dc-error dc:text-sm bg-dc-danger-bg dc:p-3 dc:rounded-sm dc:border border-dc-error",
|
|
1563
1563
|
children: [
|
|
1564
|
-
/* @__PURE__ */
|
|
1564
|
+
/* @__PURE__ */ q("strong", { children: v("debug.aiAnalysisError") }),
|
|
1565
1565
|
" ",
|
|
1566
1566
|
d.message
|
|
1567
1567
|
]
|
|
1568
1568
|
}),
|
|
1569
|
-
x && l && /* @__PURE__ */
|
|
1569
|
+
x && l && /* @__PURE__ */ q(at, {
|
|
1570
1570
|
analysis: l,
|
|
1571
1571
|
onClose: T
|
|
1572
1572
|
})
|
|
@@ -1616,22 +1616,22 @@ function Ht(e) {
|
|
|
1616
1616
|
}
|
|
1617
1617
|
function Ut(e) {
|
|
1618
1618
|
return e.map((e, t) => ({
|
|
1619
|
-
id:
|
|
1619
|
+
id: f(),
|
|
1620
1620
|
field: e,
|
|
1621
|
-
label:
|
|
1621
|
+
label: T(t)
|
|
1622
1622
|
}));
|
|
1623
1623
|
}
|
|
1624
1624
|
function Wt(e) {
|
|
1625
1625
|
let t = [];
|
|
1626
1626
|
if (e.dimensions) for (let n of e.dimensions) t.push({
|
|
1627
|
-
id:
|
|
1627
|
+
id: f(),
|
|
1628
1628
|
field: n,
|
|
1629
1629
|
isTimeDimension: !1
|
|
1630
1630
|
});
|
|
1631
1631
|
if (e.timeDimensions) for (let n of e.timeDimensions) {
|
|
1632
1632
|
let e = !!(n.compareDateRange && n.compareDateRange.length > 0);
|
|
1633
1633
|
t.push({
|
|
1634
|
-
id:
|
|
1634
|
+
id: f(),
|
|
1635
1635
|
field: n.dimension,
|
|
1636
1636
|
granularity: n.granularity,
|
|
1637
1637
|
isTimeDimension: !0,
|
|
@@ -1736,7 +1736,7 @@ var X = {
|
|
|
1736
1736
|
}
|
|
1737
1737
|
}, Z = /* @__PURE__ */ new Map(), qt = !1;
|
|
1738
1738
|
function Jt() {
|
|
1739
|
-
qt ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel",
|
|
1739
|
+
qt ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel", y), Z.has("flow") || Z.set("flow", v), Z.has("retention") || Z.set("retention", C), !0);
|
|
1740
1740
|
}
|
|
1741
1741
|
var Q = {
|
|
1742
1742
|
register(e) {
|
|
@@ -1761,9 +1761,9 @@ var Q = {
|
|
|
1761
1761
|
analysisType: "query",
|
|
1762
1762
|
charts: {
|
|
1763
1763
|
query: X.getDefaultChartConfig(),
|
|
1764
|
-
funnel:
|
|
1765
|
-
flow:
|
|
1766
|
-
retention:
|
|
1764
|
+
funnel: y.getDefaultChartConfig(),
|
|
1765
|
+
flow: v.getDefaultChartConfig(),
|
|
1766
|
+
retention: C.getDefaultChartConfig()
|
|
1767
1767
|
},
|
|
1768
1768
|
activeViews: {
|
|
1769
1769
|
query: "chart",
|
|
@@ -2022,9 +2022,9 @@ var Q = {
|
|
|
2022
2022
|
}),
|
|
2023
2023
|
addMetric: (t, n) => e((e) => {
|
|
2024
2024
|
let r = e.activeQueryIndex, i = [...e.queryStates], a = i[r] || Y(), o = {
|
|
2025
|
-
id:
|
|
2025
|
+
id: f(),
|
|
2026
2026
|
field: t,
|
|
2027
|
-
label: n ||
|
|
2027
|
+
label: n || T(a.metrics.length)
|
|
2028
2028
|
};
|
|
2029
2029
|
return i[r] = {
|
|
2030
2030
|
...a,
|
|
@@ -2047,9 +2047,9 @@ var Q = {
|
|
|
2047
2047
|
};
|
|
2048
2048
|
else {
|
|
2049
2049
|
let e = {
|
|
2050
|
-
id:
|
|
2050
|
+
id: f(),
|
|
2051
2051
|
field: t,
|
|
2052
|
-
label:
|
|
2052
|
+
label: T(i.metrics.length)
|
|
2053
2053
|
};
|
|
2054
2054
|
r[n] = {
|
|
2055
2055
|
...i,
|
|
@@ -2069,7 +2069,7 @@ var Q = {
|
|
|
2069
2069
|
let i = e.activeQueryIndex, a = [...e.queryStates], o = a[i] || Y();
|
|
2070
2070
|
if (n && o.breakdowns.some((e) => e.isTimeDimension)) return e;
|
|
2071
2071
|
let s = {
|
|
2072
|
-
id:
|
|
2072
|
+
id: f(),
|
|
2073
2073
|
field: t,
|
|
2074
2074
|
isTimeDimension: n,
|
|
2075
2075
|
granularity: n ? r || "month" : void 0
|
|
@@ -2096,7 +2096,7 @@ var Q = {
|
|
|
2096
2096
|
else {
|
|
2097
2097
|
if (n && o.breakdowns.some((e) => e.isTimeDimension)) return e;
|
|
2098
2098
|
let s = {
|
|
2099
|
-
id:
|
|
2099
|
+
id: f(),
|
|
2100
2100
|
field: t,
|
|
2101
2101
|
isTimeDimension: n,
|
|
2102
2102
|
granularity: n ? r || "month" : void 0
|
|
@@ -2261,7 +2261,7 @@ var Q = {
|
|
|
2261
2261
|
...$t(),
|
|
2262
2262
|
addFunnelStep: () => e((e) => {
|
|
2263
2263
|
let t = e.funnelSteps[e.funnelSteps.length - 1], n = {
|
|
2264
|
-
id:
|
|
2264
|
+
id: f(),
|
|
2265
2265
|
name: `Step ${e.funnelSteps.length + 1}`,
|
|
2266
2266
|
cube: e.funnelCube || "",
|
|
2267
2267
|
filters: t?.filters ? JSON.parse(JSON.stringify(t.filters)) : [],
|
|
@@ -2592,11 +2592,11 @@ var Q = {
|
|
|
2592
2592
|
//#region src/client/stores/optionsToAnalysisConfig.ts
|
|
2593
2593
|
function ln(e) {
|
|
2594
2594
|
let t = e.filters ? [...e.filters] : [], n = e.timeDimensions || [], r = [...(e.dimensions || []).map((e) => ({
|
|
2595
|
-
id:
|
|
2595
|
+
id: f(),
|
|
2596
2596
|
field: e,
|
|
2597
2597
|
isTimeDimension: !1
|
|
2598
2598
|
})), ...n.map((e) => ({
|
|
2599
|
-
id:
|
|
2599
|
+
id: f(),
|
|
2600
2600
|
field: e.dimension,
|
|
2601
2601
|
granularity: e.granularity,
|
|
2602
2602
|
isTimeDimension: !0,
|
|
@@ -2624,9 +2624,9 @@ function ln(e) {
|
|
|
2624
2624
|
return {
|
|
2625
2625
|
...Y(),
|
|
2626
2626
|
metrics: (e.measures || []).map((e, t) => ({
|
|
2627
|
-
id:
|
|
2627
|
+
id: f(),
|
|
2628
2628
|
field: e,
|
|
2629
|
-
label:
|
|
2629
|
+
label: T(t)
|
|
2630
2630
|
})),
|
|
2631
2631
|
breakdowns: r,
|
|
2632
2632
|
filters: i,
|
|
@@ -2648,8 +2648,8 @@ function fn(e) {
|
|
|
2648
2648
|
return e.initialActiveView || "chart";
|
|
2649
2649
|
}
|
|
2650
2650
|
function pn(e) {
|
|
2651
|
-
let t = dn(
|
|
2652
|
-
return
|
|
2651
|
+
let t = dn(y, e.initialChartConfig), n = e.initialFunnelState ?? {};
|
|
2652
|
+
return y.save({
|
|
2653
2653
|
funnelCube: n.funnelCube ?? null,
|
|
2654
2654
|
funnelSteps: n.funnelSteps || [],
|
|
2655
2655
|
activeFunnelStepIndex: 0,
|
|
@@ -2658,8 +2658,8 @@ function pn(e) {
|
|
|
2658
2658
|
}, { funnel: t }, fn(e));
|
|
2659
2659
|
}
|
|
2660
2660
|
function mn(e) {
|
|
2661
|
-
let t = dn(
|
|
2662
|
-
return
|
|
2661
|
+
let t = dn(v, e.initialChartConfig), n = e.initialFlowState ?? {};
|
|
2662
|
+
return v.save({
|
|
2663
2663
|
flowCube: n.flowCube ?? null,
|
|
2664
2664
|
flowBindingKey: n.flowBindingKey ?? null,
|
|
2665
2665
|
flowTimeDimension: n.flowTimeDimension ?? null,
|
|
@@ -2674,8 +2674,8 @@ function mn(e) {
|
|
|
2674
2674
|
}, { flow: t }, fn(e));
|
|
2675
2675
|
}
|
|
2676
2676
|
function hn(e) {
|
|
2677
|
-
let t = dn(
|
|
2678
|
-
return
|
|
2677
|
+
let t = dn(C, e.initialChartConfig), n = e.initialRetentionState ?? {}, r = ee(A);
|
|
2678
|
+
return C.save({
|
|
2679
2679
|
retentionCube: n.retentionCube ?? null,
|
|
2680
2680
|
retentionBindingKey: n.retentionBindingKey ?? null,
|
|
2681
2681
|
retentionTimeDimension: n.retentionTimeDimension ?? null,
|
|
@@ -2729,9 +2729,9 @@ function bn(e, t) {
|
|
|
2729
2729
|
...rn(),
|
|
2730
2730
|
charts: {
|
|
2731
2731
|
query: X.getDefaultChartConfig(),
|
|
2732
|
-
funnel:
|
|
2733
|
-
flow:
|
|
2734
|
-
retention:
|
|
2732
|
+
funnel: y.getDefaultChartConfig(),
|
|
2733
|
+
flow: v.getDefaultChartConfig(),
|
|
2734
|
+
retention: C.getDefaultChartConfig()
|
|
2735
2735
|
},
|
|
2736
2736
|
activeViews: {
|
|
2737
2737
|
query: "chart",
|
|
@@ -2747,21 +2747,21 @@ function bn(e, t) {
|
|
|
2747
2747
|
...$t(),
|
|
2748
2748
|
charts: {
|
|
2749
2749
|
...e.charts,
|
|
2750
|
-
funnel:
|
|
2750
|
+
funnel: y.getDefaultChartConfig()
|
|
2751
2751
|
}
|
|
2752
2752
|
};
|
|
2753
2753
|
case "flow": return {
|
|
2754
2754
|
...tn(),
|
|
2755
2755
|
charts: {
|
|
2756
2756
|
...e.charts,
|
|
2757
|
-
flow:
|
|
2757
|
+
flow: v.getDefaultChartConfig()
|
|
2758
2758
|
}
|
|
2759
2759
|
};
|
|
2760
2760
|
case "retention": return {
|
|
2761
2761
|
...rn(),
|
|
2762
2762
|
charts: {
|
|
2763
2763
|
...e.charts,
|
|
2764
|
-
retention:
|
|
2764
|
+
retention: C.getDefaultChartConfig()
|
|
2765
2765
|
}
|
|
2766
2766
|
};
|
|
2767
2767
|
default: return {
|
|
@@ -2808,10 +2808,10 @@ function xn(n = {}) {
|
|
|
2808
2808
|
return a()(i(e(t(o, {
|
|
2809
2809
|
name: n.storageKey || "drizzle-cube-analysis-builder-v3",
|
|
2810
2810
|
partialize: (e) => e.saveWorkspace(),
|
|
2811
|
-
merge: (e, t) => e &&
|
|
2811
|
+
merge: (e, t) => e && D(e) ? {
|
|
2812
2812
|
...t,
|
|
2813
2813
|
_persistedWorkspace: e
|
|
2814
|
-
} : e &&
|
|
2814
|
+
} : e && _(e) ? {
|
|
2815
2815
|
...t,
|
|
2816
2816
|
_persistedConfig: e
|
|
2817
2817
|
} : r ? {
|
|
@@ -2834,9 +2834,9 @@ function xn(n = {}) {
|
|
|
2834
2834
|
}
|
|
2835
2835
|
})), { name: "AnalysisBuilderStore" }));
|
|
2836
2836
|
}
|
|
2837
|
-
var Sn =
|
|
2837
|
+
var Sn = _e(null);
|
|
2838
2838
|
function Cn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalStorage: r, storageKey: i, initialAnalysisType: a, initialFunnelState: o, initialFlowState: s, initialRetentionState: c, initialActiveView: l }) {
|
|
2839
|
-
let u =
|
|
2839
|
+
let u = W(null);
|
|
2840
2840
|
return u.current ||= xn({
|
|
2841
2841
|
initialQuery: t,
|
|
2842
2842
|
initialChartConfig: n,
|
|
@@ -2847,18 +2847,18 @@ function Cn({ children: e, initialQuery: t, initialChartConfig: n, disableLocalS
|
|
|
2847
2847
|
initialFlowState: s,
|
|
2848
2848
|
initialRetentionState: c,
|
|
2849
2849
|
initialActiveView: l
|
|
2850
|
-
}), /* @__PURE__ */
|
|
2850
|
+
}), /* @__PURE__ */ q(Sn.Provider, {
|
|
2851
2851
|
value: u.current,
|
|
2852
2852
|
children: e
|
|
2853
2853
|
});
|
|
2854
2854
|
}
|
|
2855
2855
|
function $(e) {
|
|
2856
|
-
let t =
|
|
2856
|
+
let t = ye(Sn);
|
|
2857
2857
|
if (!t) throw Error("useAnalysisBuilderStore must be used within AnalysisBuilderStoreProvider");
|
|
2858
2858
|
return r(t, e);
|
|
2859
2859
|
}
|
|
2860
2860
|
function wn() {
|
|
2861
|
-
let e =
|
|
2861
|
+
let e = ye(Sn);
|
|
2862
2862
|
if (!e) throw Error("useAnalysisBuilderStoreApi must be used within AnalysisBuilderStoreProvider");
|
|
2863
2863
|
return e;
|
|
2864
2864
|
}
|
|
@@ -3006,7 +3006,7 @@ function Hn(e) {
|
|
|
3006
3006
|
//#endregion
|
|
3007
3007
|
//#region src/client/hooks/useAnalysisState.ts
|
|
3008
3008
|
function Un(e = {}) {
|
|
3009
|
-
let { externalColorPalette: t } = e, r = wn(), 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 =
|
|
3009
|
+
let { externalColorPalette: t } = e, r = wn(), 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(() => {
|
|
3010
3010
|
let e = i[a] || g;
|
|
3011
3011
|
return Ee(e.metrics, e.breakdowns, e.filters, e.order, !1, e.limit, y);
|
|
3012
3012
|
}, [
|
|
@@ -3014,14 +3014,14 @@ function Un(e = {}) {
|
|
|
3014
3014
|
a,
|
|
3015
3015
|
g,
|
|
3016
3016
|
y
|
|
3017
|
-
]), x =
|
|
3017
|
+
]), x = U(() => {
|
|
3018
3018
|
let e = i[0]?.breakdowns || [];
|
|
3019
3019
|
return i.map((t, n) => Ee(t.metrics, o === "merge" && n > 0 ? e : t.breakdowns, t.filters, t.order, !1, t.limit, y));
|
|
3020
3020
|
}, [
|
|
3021
3021
|
i,
|
|
3022
3022
|
o,
|
|
3023
3023
|
y
|
|
3024
|
-
]), S =
|
|
3024
|
+
]), S = U(() => {
|
|
3025
3025
|
if (i.length <= 1) return null;
|
|
3026
3026
|
let e = x.filter((e) => e.measures && e.measures.length > 0 || e.dimensions && e.dimensions.length > 0 || e.timeDimensions && e.timeDimensions.length > 0);
|
|
3027
3027
|
return e.length < 2 ? null : {
|
|
@@ -3035,12 +3035,12 @@ function Un(e = {}) {
|
|
|
3035
3035
|
i.length,
|
|
3036
3036
|
o,
|
|
3037
3037
|
v
|
|
3038
|
-
]), C =
|
|
3038
|
+
]), C = U(() => _ ? Rn(x, o, v || []) : null, [
|
|
3039
3039
|
_,
|
|
3040
3040
|
x,
|
|
3041
3041
|
o,
|
|
3042
3042
|
v
|
|
3043
|
-
]), w =
|
|
3043
|
+
]), w = U(() => b.measures && b.measures.length > 0 || b.dimensions && b.dimensions.length > 0 || b.timeDimensions && b.timeDimensions.length > 0, [b]), T = U(() => {
|
|
3044
3044
|
if (!_) return g.metrics;
|
|
3045
3045
|
let e = /* @__PURE__ */ new Set(), t = [];
|
|
3046
3046
|
for (let n = 0; n < i.length; n++) {
|
|
@@ -3058,7 +3058,7 @@ function Un(e = {}) {
|
|
|
3058
3058
|
_,
|
|
3059
3059
|
i,
|
|
3060
3060
|
g.metrics
|
|
3061
|
-
]), E =
|
|
3061
|
+
]), E = U(() => {
|
|
3062
3062
|
if (!_) return g.breakdowns;
|
|
3063
3063
|
let e = /* @__PURE__ */ new Set(), t = [];
|
|
3064
3064
|
for (let n of i) for (let r of n.breakdowns) e.has(r.field) || (e.add(r.field), t.push(r));
|
|
@@ -3067,31 +3067,31 @@ function Un(e = {}) {
|
|
|
3067
3067
|
_,
|
|
3068
3068
|
i,
|
|
3069
3069
|
g.breakdowns
|
|
3070
|
-
]), D =
|
|
3070
|
+
]), D = U(() => o === "merge" && a > 0 ? i[0]?.breakdowns || [] : g.breakdowns, [
|
|
3071
3071
|
o,
|
|
3072
3072
|
a,
|
|
3073
3073
|
i,
|
|
3074
3074
|
g.breakdowns
|
|
3075
|
-
]), 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 =
|
|
3075
|
+
]), 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), [
|
|
3076
3076
|
O,
|
|
3077
3077
|
k,
|
|
3078
3078
|
j,
|
|
3079
3079
|
A
|
|
3080
|
-
]), ne = $((e) => e.charts.funnel?.chartType) || "funnel", N = $((e) => e.charts.funnel?.chartConfig), re =
|
|
3080
|
+
]), 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 || {
|
|
3081
3081
|
showLegend: !0,
|
|
3082
3082
|
showGrid: !0,
|
|
3083
3083
|
showTooltip: !0
|
|
3084
|
-
}, [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 =
|
|
3084
|
+
}, [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 || {
|
|
3085
3085
|
showLegend: !0,
|
|
3086
3086
|
showGrid: !0,
|
|
3087
3087
|
showTooltip: !0
|
|
3088
|
-
}, [ue]),
|
|
3088
|
+
}, [ue]), R = $((e) => e.charts.flow?.chartType) || "sankey", z = $((e) => e.buildFunnelQueryFromSteps), fe = U(() => O === "funnel" ? z() : null, [
|
|
3089
3089
|
O,
|
|
3090
|
-
|
|
3090
|
+
z,
|
|
3091
3091
|
A
|
|
3092
|
-
]),
|
|
3092
|
+
]), pe = $((e) => e.buildFlowQuery), me = U(() => O === "flow" ? pe() : null, [
|
|
3093
3093
|
O,
|
|
3094
|
-
|
|
3094
|
+
pe,
|
|
3095
3095
|
P,
|
|
3096
3096
|
F,
|
|
3097
3097
|
oe,
|
|
@@ -3099,35 +3099,35 @@ function Un(e = {}) {
|
|
|
3099
3099
|
I,
|
|
3100
3100
|
L,
|
|
3101
3101
|
ce,
|
|
3102
|
-
|
|
3102
|
+
R,
|
|
3103
3103
|
le
|
|
3104
|
-
]),
|
|
3104
|
+
]), 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, [
|
|
3105
3105
|
O,
|
|
3106
|
-
|
|
3106
|
+
J,
|
|
3107
|
+
he,
|
|
3107
3108
|
ge,
|
|
3109
|
+
B,
|
|
3108
3110
|
_e,
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
V,
|
|
3112
|
-
U,
|
|
3113
|
-
G,
|
|
3111
|
+
H,
|
|
3112
|
+
W,
|
|
3114
3113
|
K,
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3114
|
+
q,
|
|
3115
|
+
ve,
|
|
3116
|
+
ye
|
|
3117
|
+
]), Ce = U(() => O === "retention" ? be() : null, [
|
|
3118
3118
|
O,
|
|
3119
|
-
|
|
3119
|
+
be,
|
|
3120
|
+
he,
|
|
3120
3121
|
ge,
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
]), we = H(() => O === "retention" ? J !== null : O === "flow" ? he !== null : O === "funnel" ? pe !== null : w ?? !1, [
|
|
3122
|
+
B,
|
|
3123
|
+
_e
|
|
3124
|
+
]), we = U(() => O === "retention" ? Se !== null : O === "flow" ? me !== null : O === "funnel" ? fe !== null : w ?? !1, [
|
|
3125
3125
|
O,
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3126
|
+
Se,
|
|
3127
|
+
me,
|
|
3128
|
+
fe,
|
|
3129
3129
|
w
|
|
3130
|
-
]), { chartType: Te, chartConfig: Y, displayConfig: De } = $(n(kn)), Oe = $((e) => e.userManuallySelectedChart), ke = $((e) => e.localPaletteName), Ae = $((e) => e.setChartTypeManual), je = $((e) => e.setChartConfig), Me = $((e) => e.setDisplayConfig), Ne = $((e) => e.setFunnelChartType), Pe = $((e) => e.setFunnelChartConfig), Fe = $((e) => e.setFunnelDisplayConfig), Ie = $((e) => e.setLocalPaletteName), Le = $((e) => e.setUserManuallySelectedChart), Re =
|
|
3130
|
+
]), { chartType: Te, chartConfig: Y, displayConfig: De } = $(n(kn)), Oe = $((e) => e.userManuallySelectedChart), ke = $((e) => e.localPaletteName), Ae = $((e) => e.setChartTypeManual), je = $((e) => e.setChartConfig), Me = $((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) => {
|
|
3131
3131
|
if (O === "funnel") Ne(e);
|
|
3132
3132
|
else {
|
|
3133
3133
|
Ae(e);
|
|
@@ -3141,24 +3141,24 @@ function Un(e = {}) {
|
|
|
3141
3141
|
Ne,
|
|
3142
3142
|
Ae,
|
|
3143
3143
|
je
|
|
3144
|
-
]), ze =
|
|
3144
|
+
]), ze = V((e) => {
|
|
3145
3145
|
O === "funnel" ? Pe(e) : je(e);
|
|
3146
3146
|
}, [
|
|
3147
3147
|
O,
|
|
3148
3148
|
Pe,
|
|
3149
3149
|
je
|
|
3150
|
-
]), Be =
|
|
3150
|
+
]), Be = V((e) => {
|
|
3151
3151
|
O === "funnel" ? Fe(e) : Me(e);
|
|
3152
3152
|
}, [
|
|
3153
3153
|
O,
|
|
3154
3154
|
Fe,
|
|
3155
3155
|
Me
|
|
3156
|
-
]), Ve =
|
|
3156
|
+
]), Ve = U(() => kt(T, E), [T, E]), He = U(() => t ? Array.isArray(t) && typeof t[0] == "string" ? {
|
|
3157
3157
|
name: "custom",
|
|
3158
3158
|
label: "Custom",
|
|
3159
3159
|
colors: t,
|
|
3160
3160
|
gradient: t
|
|
3161
|
-
} : t : p(ke), [t, ke]), Ue =
|
|
3161
|
+
} : t : p(ke), [t, ke]), Ue = V((e) => {
|
|
3162
3162
|
r.setState((t) => ({ charts: {
|
|
3163
3163
|
...t.charts,
|
|
3164
3164
|
flow: {
|
|
@@ -3170,7 +3170,7 @@ function Un(e = {}) {
|
|
|
3170
3170
|
displayConfig: e
|
|
3171
3171
|
}
|
|
3172
3172
|
} }));
|
|
3173
|
-
}, [r]), We =
|
|
3173
|
+
}, [r]), We = V((e) => {
|
|
3174
3174
|
r.setState((t) => ({ charts: {
|
|
3175
3175
|
...t.charts,
|
|
3176
3176
|
retention: {
|
|
@@ -3182,7 +3182,7 @@ function Un(e = {}) {
|
|
|
3182
3182
|
displayConfig: e
|
|
3183
3183
|
}
|
|
3184
3184
|
} }));
|
|
3185
|
-
}, [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] =
|
|
3185
|
+
}, [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), At = $((e) => e.setFlowCube), Mt = $((e) => e.setFlowBindingKey), Nt = $((e) => e.setFlowTimeDimension), Pt = $((e) => e.setEventDimension), Ft = $((e) => e.setStartingStepName), It = $((e) => e.setStartingStepFilters), Lt = $((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), X = $((e) => e.addRetentionBreakdown), Z = $((e) => e.removeRetentionBreakdown), qt = $((e) => e.setRetentionViewGranularity), Jt = $((e) => e.setRetentionPeriods), Q = $((e) => e.setRetentionType), Yt = $((e) => e.getValidation), Xt = U(() => Yt(), [
|
|
3186
3186
|
Yt,
|
|
3187
3187
|
i,
|
|
3188
3188
|
O,
|
|
@@ -3197,13 +3197,13 @@ function Un(e = {}) {
|
|
|
3197
3197
|
L,
|
|
3198
3198
|
ce,
|
|
3199
3199
|
le
|
|
3200
|
-
]), Zt =
|
|
3200
|
+
]), Zt = V((e, t) => {
|
|
3201
3201
|
O === "retention" && t === "dimension" ? X({ field: e.name }) : ut(e.name, t === "timeDimension");
|
|
3202
3202
|
}, [
|
|
3203
3203
|
O,
|
|
3204
3204
|
X,
|
|
3205
3205
|
ut
|
|
3206
|
-
]), Qt =
|
|
3206
|
+
]), Qt = V((e, t, n, r) => {
|
|
3207
3207
|
Ye === "metrics" && t === "measure" ? at(e.name) : Ye === "breakdown" && Zt(e, t), r || $e();
|
|
3208
3208
|
}, [
|
|
3209
3209
|
Ye,
|
|
@@ -3238,7 +3238,7 @@ function Un(e = {}) {
|
|
|
3238
3238
|
funnelChartType: ne,
|
|
3239
3239
|
funnelChartConfig: re,
|
|
3240
3240
|
funnelDisplayConfig: ae,
|
|
3241
|
-
serverFunnelQuery:
|
|
3241
|
+
serverFunnelQuery: fe,
|
|
3242
3242
|
flowCube: P,
|
|
3243
3243
|
flowBindingKey: F,
|
|
3244
3244
|
flowTimeDimension: oe,
|
|
@@ -3248,19 +3248,19 @@ function Un(e = {}) {
|
|
|
3248
3248
|
stepsAfter: ce,
|
|
3249
3249
|
joinStrategy: le,
|
|
3250
3250
|
flowDisplayConfig: de,
|
|
3251
|
-
serverFlowQuery:
|
|
3252
|
-
retentionCube:
|
|
3253
|
-
retentionBindingKey:
|
|
3254
|
-
retentionTimeDimension:
|
|
3255
|
-
retentionDateRange:
|
|
3256
|
-
retentionCohortFilters:
|
|
3257
|
-
retentionActivityFilters:
|
|
3258
|
-
retentionBreakdowns:
|
|
3259
|
-
retentionViewGranularity:
|
|
3260
|
-
retentionPeriods:
|
|
3261
|
-
retentionType:
|
|
3262
|
-
retentionDisplayConfig:
|
|
3263
|
-
serverRetentionQuery:
|
|
3251
|
+
serverFlowQuery: me,
|
|
3252
|
+
retentionCube: he,
|
|
3253
|
+
retentionBindingKey: ge,
|
|
3254
|
+
retentionTimeDimension: B,
|
|
3255
|
+
retentionDateRange: _e,
|
|
3256
|
+
retentionCohortFilters: ve,
|
|
3257
|
+
retentionActivityFilters: ye,
|
|
3258
|
+
retentionBreakdowns: H,
|
|
3259
|
+
retentionViewGranularity: W,
|
|
3260
|
+
retentionPeriods: K,
|
|
3261
|
+
retentionType: q,
|
|
3262
|
+
retentionDisplayConfig: xe,
|
|
3263
|
+
serverRetentionQuery: Se,
|
|
3264
3264
|
retentionValidation: Ce,
|
|
3265
3265
|
chartType: Te,
|
|
3266
3266
|
chartConfig: Y,
|
|
@@ -3276,7 +3276,7 @@ function Un(e = {}) {
|
|
|
3276
3276
|
fieldModalMode: Ye,
|
|
3277
3277
|
activeTableIndex: et,
|
|
3278
3278
|
adapterValidation: Xt,
|
|
3279
|
-
getQueryConfig:
|
|
3279
|
+
getQueryConfig: V(() => {
|
|
3280
3280
|
let e = r.getState();
|
|
3281
3281
|
return e.analysisType === "funnel" ? e.buildFunnelQueryFromSteps() || e.buildCurrentQuery() : e.queryStates.length > 1 ? {
|
|
3282
3282
|
queries: e.buildAllQueries(),
|
|
@@ -3287,7 +3287,7 @@ function Un(e = {}) {
|
|
|
3287
3287
|
stepTimeToConvert: e.stepTimeToConvert
|
|
3288
3288
|
} : e.buildCurrentQuery();
|
|
3289
3289
|
}, [r]),
|
|
3290
|
-
getChartConfig:
|
|
3290
|
+
getChartConfig: V(() => {
|
|
3291
3291
|
let e = r.getState(), t = e.charts[e.analysisType];
|
|
3292
3292
|
return t ? {
|
|
3293
3293
|
chartType: t.chartType,
|
|
@@ -3304,7 +3304,7 @@ function Un(e = {}) {
|
|
|
3304
3304
|
Y,
|
|
3305
3305
|
De
|
|
3306
3306
|
]),
|
|
3307
|
-
getAnalysisType:
|
|
3307
|
+
getAnalysisType: V(() => r.getState().analysisType, [r]),
|
|
3308
3308
|
actions: {
|
|
3309
3309
|
setActiveQueryIndex: s,
|
|
3310
3310
|
setMergeStrategy: c,
|
|
@@ -3422,12 +3422,12 @@ function Yn(e) {
|
|
|
3422
3422
|
//#endregion
|
|
3423
3423
|
//#region src/client/hooks/useAnalysisQuery.ts
|
|
3424
3424
|
function Xn(e) {
|
|
3425
|
-
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 } =
|
|
3425
|
+
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 = Wn({
|
|
3426
3426
|
isRetentionMode: v,
|
|
3427
3427
|
isFlowMode: _,
|
|
3428
3428
|
isFunnelMode: g,
|
|
3429
3429
|
isMultiMode: y
|
|
3430
|
-
}), C =
|
|
3430
|
+
}), C = U(() => x || !g || !c || n.length < 2 ? null : me(n, c), [
|
|
3431
3431
|
x,
|
|
3432
3432
|
g,
|
|
3433
3433
|
c,
|
|
@@ -3461,11 +3461,11 @@ function Xn(e) {
|
|
|
3461
3461
|
skip: w.retention,
|
|
3462
3462
|
debounceMs: 300,
|
|
3463
3463
|
getFieldLabel: h
|
|
3464
|
-
}), ee =
|
|
3464
|
+
}), ee = pe({
|
|
3465
3465
|
queries: i ? n : [t],
|
|
3466
3466
|
isMultiQueryMode: i,
|
|
3467
3467
|
skip: w.dryRun
|
|
3468
|
-
}), A =
|
|
3468
|
+
}), A = fe(D.serverQuery, { skip: !g || !D.serverQuery }), te = fe(O.serverQuery, { skip: !_ || !O.serverQuery }), j = fe(p, { skip: !v || !p }), M = Gn(S, {
|
|
3469
3469
|
retention: k.isLoading || k.isDebouncing,
|
|
3470
3470
|
flow: O.isLoading || O.isDebouncing,
|
|
3471
3471
|
funnel: D.isExecuting || D.isDebouncing,
|
|
@@ -3483,7 +3483,7 @@ function Xn(e) {
|
|
|
3483
3483
|
funnel: D.error,
|
|
3484
3484
|
multi: E.error,
|
|
3485
3485
|
single: T.error
|
|
3486
|
-
}), re =
|
|
3486
|
+
}), re = !(!T.debouncedQuery && !E.debouncedConfig && D.isDebouncing && O.isDebouncing && k.isDebouncing), ie = V((e) => {
|
|
3487
3487
|
switch (S) {
|
|
3488
3488
|
case "retention":
|
|
3489
3489
|
k.execute(e);
|
|
@@ -3506,7 +3506,7 @@ function Xn(e) {
|
|
|
3506
3506
|
D,
|
|
3507
3507
|
E,
|
|
3508
3508
|
T
|
|
3509
|
-
]), ae =
|
|
3509
|
+
]), ae = U(() => Jn({
|
|
3510
3510
|
hasResults: Gn(S, {
|
|
3511
3511
|
retention: k.chartData,
|
|
3512
3512
|
flow: O.data,
|
|
@@ -3531,7 +3531,7 @@ function Xn(e) {
|
|
|
3531
3531
|
k.chartData,
|
|
3532
3532
|
o,
|
|
3533
3533
|
S
|
|
3534
|
-
]), F =
|
|
3534
|
+
]), F = U(() => Yn({
|
|
3535
3535
|
isRetentionMode: v,
|
|
3536
3536
|
isFlowMode: _,
|
|
3537
3537
|
isFunnelMode: g,
|
|
@@ -3553,12 +3553,12 @@ function Xn(e) {
|
|
|
3553
3553
|
g,
|
|
3554
3554
|
_,
|
|
3555
3555
|
v
|
|
3556
|
-
]), I =
|
|
3556
|
+
]), I = U(() => g && D.stepResults ? D.stepResults.map((e) => e.data) : !y || !E.perQueryData ? null : E.perQueryData, [
|
|
3557
3557
|
y,
|
|
3558
3558
|
g,
|
|
3559
3559
|
E.perQueryData,
|
|
3560
3560
|
D.stepResults
|
|
3561
|
-
]), { funnelExecutedQueries: L, funnelServerQuery: le, funnelDebugData: ue, flowServerQuery:
|
|
3561
|
+
]), { funnelExecutedQueries: L, funnelServerQuery: le, funnelDebugData: ue, flowServerQuery: z, flowChartData: he, flowDebugData: ge, retentionServerQuery: B, retentionChartData: _e, retentionDebugData: ve } = Kn({
|
|
3562
3562
|
isFunnelMode: g,
|
|
3563
3563
|
isFlowMode: _,
|
|
3564
3564
|
isRetentionMode: v,
|
|
@@ -3571,7 +3571,7 @@ function Xn(e) {
|
|
|
3571
3571
|
retentionServerQuery: p ?? null,
|
|
3572
3572
|
retentionChartData: k.chartData,
|
|
3573
3573
|
retentionDebugData: j.debugData
|
|
3574
|
-
}),
|
|
3574
|
+
}), ye = U(() => Gn(S, {
|
|
3575
3575
|
retention: k.needsRefresh,
|
|
3576
3576
|
flow: O.needsRefresh,
|
|
3577
3577
|
funnel: D.needsRefresh,
|
|
@@ -3583,7 +3583,7 @@ function Xn(e) {
|
|
|
3583
3583
|
O.needsRefresh,
|
|
3584
3584
|
D.needsRefresh,
|
|
3585
3585
|
T.needsRefresh
|
|
3586
|
-
]),
|
|
3586
|
+
]), H = U(() => {
|
|
3587
3587
|
if (b && T.warnings) return T.warnings;
|
|
3588
3588
|
}, [b, T.warnings]);
|
|
3589
3589
|
return {
|
|
@@ -3599,15 +3599,15 @@ function Xn(e) {
|
|
|
3599
3599
|
funnelExecutedQueries: L,
|
|
3600
3600
|
funnelServerQuery: le,
|
|
3601
3601
|
funnelDebugData: ue,
|
|
3602
|
-
flowServerQuery:
|
|
3603
|
-
flowChartData:
|
|
3604
|
-
flowDebugData:
|
|
3605
|
-
retentionServerQuery:
|
|
3606
|
-
retentionChartData:
|
|
3607
|
-
retentionDebugData:
|
|
3602
|
+
flowServerQuery: z,
|
|
3603
|
+
flowChartData: he,
|
|
3604
|
+
flowDebugData: ge,
|
|
3605
|
+
retentionServerQuery: B,
|
|
3606
|
+
retentionChartData: _e,
|
|
3607
|
+
retentionDebugData: ve,
|
|
3608
3608
|
retentionValidation: m ?? null,
|
|
3609
|
-
needsRefresh:
|
|
3610
|
-
warnings:
|
|
3609
|
+
needsRefresh: ye,
|
|
3610
|
+
warnings: H
|
|
3611
3611
|
};
|
|
3612
3612
|
}
|
|
3613
3613
|
//#endregion
|
|
@@ -3622,7 +3622,7 @@ function tr(e) {
|
|
|
3622
3622
|
let t = (0, Zn.decompressFromEncodedURIComponent)(e);
|
|
3623
3623
|
if (!t) return null;
|
|
3624
3624
|
let n = JSON.parse(t);
|
|
3625
|
-
return
|
|
3625
|
+
return _(n) ? n : (console.warn("[shareUtils] Invalid AnalysisConfig in share URL"), null);
|
|
3626
3626
|
} catch {
|
|
3627
3627
|
return null;
|
|
3628
3628
|
}
|
|
@@ -3715,19 +3715,19 @@ function ur(e) {
|
|
|
3715
3715
|
return typeof e == "object" && !!e && "funnel" in e && typeof e.funnel == "object";
|
|
3716
3716
|
}
|
|
3717
3717
|
function dr(e) {
|
|
3718
|
-
let { state: t, query: n, aiEndpoint: r = "/api/ai", onQueryChange: i, onChartConfigChange: a } = e, { storeApi: o, actions: s } = t, { apiOptions: l } = c(), u =
|
|
3719
|
-
|
|
3718
|
+
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);
|
|
3719
|
+
H(() => {
|
|
3720
3720
|
if (u.current) return;
|
|
3721
3721
|
u.current = !0;
|
|
3722
3722
|
let e = sr();
|
|
3723
3723
|
e && (o.getState().load(e), or());
|
|
3724
|
-
}, [o]),
|
|
3724
|
+
}, [o]), H(() => {
|
|
3725
3725
|
i && t.isValidQuery && i(t.currentQuery);
|
|
3726
3726
|
}, [
|
|
3727
3727
|
t.currentQuery,
|
|
3728
3728
|
t.isValidQuery,
|
|
3729
3729
|
i
|
|
3730
|
-
]),
|
|
3730
|
+
]), H(() => {
|
|
3731
3731
|
a && a({
|
|
3732
3732
|
chartType: t.chartType,
|
|
3733
3733
|
chartConfig: t.chartConfig,
|
|
@@ -3739,9 +3739,9 @@ function dr(e) {
|
|
|
3739
3739
|
t.displayConfig,
|
|
3740
3740
|
a
|
|
3741
3741
|
]);
|
|
3742
|
-
let { combinedMetrics: d, combinedBreakdowns: p, chartType:
|
|
3743
|
-
|
|
3744
|
-
if (!
|
|
3742
|
+
let { combinedMetrics: d, combinedBreakdowns: p, chartType: m, chartConfig: h, userManuallySelectedChart: g } = t, { hasDebounced: _ } = n, { setChartType: v, setChartConfig: y } = s, b = W("");
|
|
3743
|
+
H(() => {
|
|
3744
|
+
if (!_ || d.length === 0 && p.length === 0) return;
|
|
3745
3745
|
let e = JSON.stringify({
|
|
3746
3746
|
metrics: d.map((e) => e.field),
|
|
3747
3747
|
breakdowns: p.map((e) => ({
|
|
@@ -3749,36 +3749,36 @@ function dr(e) {
|
|
|
3749
3749
|
isTime: e.isTimeDimension
|
|
3750
3750
|
}))
|
|
3751
3751
|
});
|
|
3752
|
-
if (e ===
|
|
3753
|
-
|
|
3754
|
-
let t = Nt(d, p,
|
|
3752
|
+
if (e === b.current) return;
|
|
3753
|
+
b.current = e;
|
|
3754
|
+
let t = Nt(d, p, m, g);
|
|
3755
3755
|
if (t) {
|
|
3756
3756
|
let { chartConfig: e } = jt(d, p, t);
|
|
3757
|
-
|
|
3757
|
+
v(t), y(e), s.setUserManuallySelectedChart(!1);
|
|
3758
3758
|
} else if (d.length > 0 || p.length > 0) {
|
|
3759
|
-
if (
|
|
3760
|
-
let e =
|
|
3761
|
-
i.length > 0 &&
|
|
3762
|
-
...
|
|
3759
|
+
if (m === "table" || m === "recordsTable") {
|
|
3760
|
+
let e = m === "recordsTable" ? "columns" : "xAxis", t = [...p.map((e) => e.field), ...d.map((e) => e.field)], n = Array.isArray(h[e]) ? h[e] : [], r = new Set(h.hiddenColumns ?? []), i = t.filter((e) => !n.includes(e) && !r.has(e));
|
|
3761
|
+
i.length > 0 && y({
|
|
3762
|
+
...h,
|
|
3763
3763
|
[e]: [...n, ...i]
|
|
3764
3764
|
});
|
|
3765
|
-
} else if (!
|
|
3766
|
-
let { chartConfig: e } = jt(d, p,
|
|
3767
|
-
|
|
3765
|
+
} else if (!h.xAxis?.length && !h.yAxis?.length && !h.series?.length) {
|
|
3766
|
+
let { chartConfig: e } = jt(d, p, m);
|
|
3767
|
+
y(e);
|
|
3768
3768
|
}
|
|
3769
3769
|
}
|
|
3770
3770
|
}, [
|
|
3771
|
-
|
|
3771
|
+
_,
|
|
3772
3772
|
d,
|
|
3773
3773
|
p,
|
|
3774
|
-
|
|
3775
|
-
_,
|
|
3774
|
+
m,
|
|
3776
3775
|
g,
|
|
3776
|
+
h,
|
|
3777
|
+
v,
|
|
3777
3778
|
y,
|
|
3778
|
-
b,
|
|
3779
3779
|
s
|
|
3780
3780
|
]);
|
|
3781
|
-
let [
|
|
3781
|
+
let [x, S] = G({
|
|
3782
3782
|
isOpen: !1,
|
|
3783
3783
|
userPrompt: "",
|
|
3784
3784
|
isGenerating: !1,
|
|
@@ -3786,7 +3786,7 @@ function dr(e) {
|
|
|
3786
3786
|
hasGeneratedQuery: !1,
|
|
3787
3787
|
previousState: null,
|
|
3788
3788
|
previousConfig: null
|
|
3789
|
-
}),
|
|
3789
|
+
}), C = V((e) => {
|
|
3790
3790
|
o.getState().updateQueryState(t.activeQueryIndex, (t) => {
|
|
3791
3791
|
let n = e(t);
|
|
3792
3792
|
return {
|
|
@@ -3798,7 +3798,7 @@ function dr(e) {
|
|
|
3798
3798
|
limit: n.limit
|
|
3799
3799
|
};
|
|
3800
3800
|
});
|
|
3801
|
-
}, [o, t.activeQueryIndex]),
|
|
3801
|
+
}, [o, t.activeQueryIndex]), w = V((e) => {
|
|
3802
3802
|
let t = {
|
|
3803
3803
|
version: 1,
|
|
3804
3804
|
analysisType: "funnel",
|
|
@@ -3811,9 +3811,9 @@ function dr(e) {
|
|
|
3811
3811
|
query: e
|
|
3812
3812
|
};
|
|
3813
3813
|
o.getState().load(t);
|
|
3814
|
-
}, [o]), E =
|
|
3814
|
+
}, [o]), E = V(() => {
|
|
3815
3815
|
let e = o.getState().save();
|
|
3816
|
-
|
|
3816
|
+
S({
|
|
3817
3817
|
isOpen: !0,
|
|
3818
3818
|
userPrompt: "",
|
|
3819
3819
|
isGenerating: !1,
|
|
@@ -3839,30 +3839,30 @@ function dr(e) {
|
|
|
3839
3839
|
t.chartConfig,
|
|
3840
3840
|
t.displayConfig,
|
|
3841
3841
|
t.analysisType
|
|
3842
|
-
]), D =
|
|
3843
|
-
|
|
3842
|
+
]), D = V(() => {
|
|
3843
|
+
S((e) => ({
|
|
3844
3844
|
...e,
|
|
3845
3845
|
isOpen: !1,
|
|
3846
3846
|
userPrompt: "",
|
|
3847
3847
|
error: null,
|
|
3848
3848
|
hasGeneratedQuery: !1
|
|
3849
3849
|
}));
|
|
3850
|
-
}, []), O =
|
|
3851
|
-
|
|
3850
|
+
}, []), O = V((e) => {
|
|
3851
|
+
S((t) => ({
|
|
3852
3852
|
...t,
|
|
3853
3853
|
userPrompt: e
|
|
3854
3854
|
}));
|
|
3855
|
-
}, []), k =
|
|
3856
|
-
if (
|
|
3857
|
-
|
|
3855
|
+
}, []), k = V(async () => {
|
|
3856
|
+
if (x.userPrompt.trim()) {
|
|
3857
|
+
S((e) => ({
|
|
3858
3858
|
...e,
|
|
3859
3859
|
isGenerating: !0,
|
|
3860
3860
|
error: null
|
|
3861
3861
|
}));
|
|
3862
3862
|
try {
|
|
3863
|
-
let e = lr(await cr("",
|
|
3863
|
+
let e = lr(await cr("", 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;
|
|
3864
3864
|
if (ur(i)) {
|
|
3865
|
-
s.setAnalysisType("funnel"),
|
|
3865
|
+
s.setAnalysisType("funnel"), w(i), s.setChartType("funnel"), o && s.setChartConfig(o), s.setActiveView("chart"), S((e) => ({
|
|
3866
3866
|
...e,
|
|
3867
3867
|
isGenerating: !1,
|
|
3868
3868
|
hasGeneratedQuery: !0
|
|
@@ -3870,19 +3870,19 @@ function dr(e) {
|
|
|
3870
3870
|
return;
|
|
3871
3871
|
}
|
|
3872
3872
|
let c = i;
|
|
3873
|
-
|
|
3873
|
+
C((e) => ({
|
|
3874
3874
|
...e,
|
|
3875
3875
|
metrics: (c.measures || []).map((e, t) => ({
|
|
3876
|
-
id:
|
|
3876
|
+
id: f(),
|
|
3877
3877
|
field: e,
|
|
3878
|
-
label:
|
|
3878
|
+
label: T(t)
|
|
3879
3879
|
})),
|
|
3880
3880
|
breakdowns: [...(c.dimensions || []).map((e) => ({
|
|
3881
|
-
id:
|
|
3881
|
+
id: f(),
|
|
3882
3882
|
field: e,
|
|
3883
3883
|
isTimeDimension: !1
|
|
3884
3884
|
})), ...(c.timeDimensions || []).map((e) => ({
|
|
3885
|
-
id:
|
|
3885
|
+
id: f(),
|
|
3886
3886
|
field: e.dimension,
|
|
3887
3887
|
granularity: e.granularity,
|
|
3888
3888
|
isTimeDimension: !0
|
|
@@ -3890,13 +3890,13 @@ function dr(e) {
|
|
|
3890
3890
|
filters: c.filters || [],
|
|
3891
3891
|
order: c.order || void 0,
|
|
3892
3892
|
limit: c.limit ?? void 0
|
|
3893
|
-
})), t.analysisType === "funnel" && s.setAnalysisType("query"), a && s.setChartType(a), o && s.setChartConfig(o), s.setActiveView("chart"),
|
|
3893
|
+
})), t.analysisType === "funnel" && s.setAnalysisType("query"), a && s.setChartType(a), o && s.setChartConfig(o), s.setActiveView("chart"), S((e) => ({
|
|
3894
3894
|
...e,
|
|
3895
3895
|
isGenerating: !1,
|
|
3896
3896
|
hasGeneratedQuery: !0
|
|
3897
3897
|
}));
|
|
3898
3898
|
} catch (e) {
|
|
3899
|
-
|
|
3899
|
+
S((t) => ({
|
|
3900
3900
|
...t,
|
|
3901
3901
|
isGenerating: !1,
|
|
3902
3902
|
error: e instanceof Error ? e.message : "Failed to generate query"
|
|
@@ -3904,15 +3904,15 @@ function dr(e) {
|
|
|
3904
3904
|
}
|
|
3905
3905
|
}
|
|
3906
3906
|
}, [
|
|
3907
|
-
|
|
3907
|
+
x.userPrompt,
|
|
3908
3908
|
r,
|
|
3909
3909
|
l?.headers,
|
|
3910
|
+
C,
|
|
3910
3911
|
w,
|
|
3911
|
-
T,
|
|
3912
3912
|
t.analysisType,
|
|
3913
3913
|
s
|
|
3914
|
-
]), ee =
|
|
3915
|
-
|
|
3914
|
+
]), ee = V(() => {
|
|
3915
|
+
S({
|
|
3916
3916
|
isOpen: !1,
|
|
3917
3917
|
userPrompt: "",
|
|
3918
3918
|
isGenerating: !1,
|
|
@@ -3921,13 +3921,13 @@ function dr(e) {
|
|
|
3921
3921
|
previousState: null,
|
|
3922
3922
|
previousConfig: null
|
|
3923
3923
|
});
|
|
3924
|
-
}, []), A =
|
|
3925
|
-
|
|
3924
|
+
}, []), A = V(() => {
|
|
3925
|
+
x.previousConfig ? o.getState().load(x.previousConfig) : x.previousState && (C((e) => ({
|
|
3926
3926
|
...e,
|
|
3927
|
-
metrics:
|
|
3928
|
-
breakdowns:
|
|
3929
|
-
filters:
|
|
3930
|
-
})), s.setChartType(
|
|
3927
|
+
metrics: x.previousState.metrics,
|
|
3928
|
+
breakdowns: x.previousState.breakdowns,
|
|
3929
|
+
filters: x.previousState.filters
|
|
3930
|
+
})), s.setChartType(x.previousState.chartType), s.setChartConfig(x.previousState.chartConfig), s.setDisplayConfig(x.previousState.displayConfig), x.previousState.analysisType && s.setAnalysisType(x.previousState.analysisType)), S({
|
|
3931
3931
|
isOpen: !1,
|
|
3932
3932
|
userPrompt: "",
|
|
3933
3933
|
isGenerating: !1,
|
|
@@ -3937,14 +3937,14 @@ function dr(e) {
|
|
|
3937
3937
|
previousConfig: null
|
|
3938
3938
|
});
|
|
3939
3939
|
}, [
|
|
3940
|
-
|
|
3941
|
-
|
|
3940
|
+
x.previousState,
|
|
3941
|
+
x.previousConfig,
|
|
3942
3942
|
o,
|
|
3943
|
-
|
|
3943
|
+
C,
|
|
3944
3944
|
s
|
|
3945
|
-
]), [te, j] =
|
|
3945
|
+
]), [te, j] = G("idle"), M = t.effectiveIsValidQuery;
|
|
3946
3946
|
return {
|
|
3947
|
-
aiState:
|
|
3947
|
+
aiState: x,
|
|
3948
3948
|
openAI: E,
|
|
3949
3949
|
closeAI: D,
|
|
3950
3950
|
setAIPrompt: O,
|
|
@@ -3952,7 +3952,7 @@ function dr(e) {
|
|
|
3952
3952
|
acceptAI: ee,
|
|
3953
3953
|
cancelAI: A,
|
|
3954
3954
|
shareButtonState: te,
|
|
3955
|
-
share:
|
|
3955
|
+
share: V(async () => {
|
|
3956
3956
|
if (!M) return;
|
|
3957
3957
|
let { encoded: e, queryOnly: t } = rr(o.getState().save());
|
|
3958
3958
|
if (!e) return;
|
|
@@ -4201,7 +4201,7 @@ function mr(e) {
|
|
|
4201
4201
|
}
|
|
4202
4202
|
function hr(e, t) {
|
|
4203
4203
|
if (typeof e.dimension == "string") return !0;
|
|
4204
|
-
let n =
|
|
4204
|
+
let n = he(t);
|
|
4205
4205
|
return n ? e.dimension.some((e) => e.cube === n) : !1;
|
|
4206
4206
|
}
|
|
4207
4207
|
function gr(e, t) {
|
|
@@ -4209,7 +4209,7 @@ function gr(e, t) {
|
|
|
4209
4209
|
for (let r = 0; r < t.length; r++) {
|
|
4210
4210
|
let i = t[r];
|
|
4211
4211
|
if (!hr(e, i.query)) {
|
|
4212
|
-
let e =
|
|
4212
|
+
let e = he(i.query) || "unknown";
|
|
4213
4213
|
n.push({
|
|
4214
4214
|
type: "cross_cube",
|
|
4215
4215
|
message: `Step ${r + 1} uses cube "${e}" but no binding key mapping exists for it`,
|
|
@@ -4279,4 +4279,4 @@ function xr(e) {
|
|
|
4279
4279
|
//#endregion
|
|
4280
4280
|
export { An as A, Dn as C, Mn as D, On as E, Xe as F, wn as M, Rt as N, En as O, at as P, Cn as S, Tn as T, Hn as _, gr as a, Rn as b, fr as c, ir as d, nr as f, In as g, Ln as h, pr as i, $ as j, jn as k, er as l, sr as m, xr as n, vr as o, ar as p, yr as r, mr as s, br as t, tr as u, Bn as v, kn as w, Pn as x, Fn as y };
|
|
4281
4281
|
|
|
4282
|
-
//# sourceMappingURL=analysis-builder-shared-
|
|
4282
|
+
//# sourceMappingURL=analysis-builder-shared-CQFcY6vA.js.map
|