drizzle-cube 0.5.4 → 0.5.6
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/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +4 -4
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +4 -4
- package/dist/adapters/{handler-CNn3q29F.cjs → handler-C0nUppAK.cjs} +3 -3
- package/dist/adapters/{handler-_TKfigrZ.js → handler-Odsi9_Rd.js} +125 -1
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +4 -4
- package/dist/adapters/{locale-Dl_3R6hP.cjs → locale-Dv6bl_eU.cjs} +2 -2
- package/dist/adapters/{locale-BQQrZYhz.js → locale-Dy3LcTwN.js} +4 -2
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +8 -3
- package/dist/adapters/mcp-transport-BCtjU0lC.cjs +40 -0
- package/dist/adapters/mcp-transport-DW_Uks-O.js +579 -0
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +4 -4
- package/dist/adapters/{utils-DG8ti3FT.js → utils-Bd5mzZfk.js} +44 -18
- package/dist/adapters/utils-DklqMBHn.cjs +128 -0
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.d.ts +6 -1
- package/dist/adapters/utils.js +1 -1
- package/dist/client/charts/chartConfigs.d.ts +34 -0
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-BBcB0E2g.js → DashboardEditModal-BiJwVv0b.js} +11 -11
- package/dist/client/chunks/DashboardEditModal-BiJwVv0b.js.map +1 -0
- package/dist/client/chunks/{FieldSearchModal-CisOov-_.js → FieldSearchModal-DdcbCwAi.js} +21 -5
- package/dist/client/chunks/{FieldSearchModal-CisOov-_.js.map → FieldSearchModal-DdcbCwAi.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-DiyZwiPv.js → RetentionCombinedChart-CivIny9P.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-DiyZwiPv.js.map → RetentionCombinedChart-CivIny9P.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-usGF7BCo.js → RetentionHeatmap-BHCgwZmB.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-usGF7BCo.js.map → RetentionHeatmap-BHCgwZmB.js.map} +1 -1
- package/dist/client/chunks/{af-ZA-xDmO5F0s.js → af-ZA-BdL6DOWy.js} +10 -3
- package/dist/client/chunks/af-ZA-BdL6DOWy.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-0o1W-k3K.js → analysis-builder-MoGvbMRe.js} +245 -255
- package/dist/client/chunks/analysis-builder-MoGvbMRe.js.map +1 -0
- package/dist/client/chunks/{analysis-builder-shared-Cz4KAlIC.js → analysis-builder-shared-DmyRh2O3.js} +391 -459
- package/dist/client/chunks/analysis-builder-shared-DmyRh2O3.js.map +1 -0
- package/dist/client/chunks/{chart-activity-grid-VFFm85hC.js → chart-activity-grid-Bdb8U_NC.js} +14 -7
- package/dist/client/chunks/chart-activity-grid-Bdb8U_NC.js.map +1 -0
- package/dist/client/chunks/{chart-area-CwwIHTmK.js → chart-area-BZEnT-tf.js} +39 -38
- package/dist/client/chunks/chart-area-BZEnT-tf.js.map +1 -0
- package/dist/client/chunks/{chart-bar-Bmny922L.js → chart-bar-CTmdv_v0.js} +53 -52
- package/dist/client/chunks/chart-bar-CTmdv_v0.js.map +1 -0
- package/dist/client/chunks/{chart-box-plot-DM7GwtCV.js → chart-box-plot-CYObdFtp.js} +3 -3
- package/dist/client/chunks/{chart-box-plot-DM7GwtCV.js.map → chart-box-plot-CYObdFtp.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-DJOq4IpT.js → chart-bubble-CjFprySz.js} +3 -3
- package/dist/client/chunks/{chart-bubble-DJOq4IpT.js.map → chart-bubble-CjFprySz.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-C2nzVCv1.js → chart-candlestick-D2HoM3B5.js} +3 -3
- package/dist/client/chunks/{chart-candlestick-C2nzVCv1.js.map → chart-candlestick-D2HoM3B5.js.map} +1 -1
- package/dist/client/chunks/{chart-config-activity-grid-C-EkgYoa.js → chart-config-activity-grid-Bom99j9m.js} +9 -2
- package/dist/client/chunks/chart-config-activity-grid-Bom99j9m.js.map +1 -0
- package/dist/client/chunks/{chart-config-area-CMZpbIah.js → chart-config-area-DtYTKZxS.js} +10 -2
- package/dist/client/chunks/chart-config-area-DtYTKZxS.js.map +1 -0
- package/dist/client/chunks/{chart-config-bar-B8_V4YLg.js → chart-config-bar-7v5JVY2y.js} +10 -2
- package/dist/client/chunks/chart-config-bar-7v5JVY2y.js.map +1 -0
- package/dist/client/chunks/{chart-config-box-plot-Dwj7sEbU.js → chart-config-box-plot-BHGv-wqu.js} +9 -2
- package/dist/client/chunks/chart-config-box-plot-BHGv-wqu.js.map +1 -0
- package/dist/client/chunks/{chart-config-bubble-B0w0ZVp4.js → chart-config-bubble-BkHm-mfu.js} +9 -2
- package/dist/client/chunks/chart-config-bubble-BkHm-mfu.js.map +1 -0
- package/dist/client/chunks/{chart-config-candlestick-Bvo3zeIn.js → chart-config-candlestick-D1aaHvTe.js} +9 -2
- package/dist/client/chunks/chart-config-candlestick-D1aaHvTe.js.map +1 -0
- package/dist/client/chunks/{chart-config-data-table-BQXSn4b_.js → chart-config-data-table-B_Hw8w2J.js} +2 -2
- package/dist/client/chunks/{chart-config-data-table-BQXSn4b_.js.map → chart-config-data-table-B_Hw8w2J.js.map} +1 -1
- package/dist/client/chunks/{chart-config-funnel-BzEsHmjR.js → chart-config-funnel-DL8PSGuL.js} +2 -2
- package/dist/client/chunks/{chart-config-funnel-BzEsHmjR.js.map → chart-config-funnel-DL8PSGuL.js.map} +1 -1
- package/dist/client/chunks/{chart-config-gauge-C5ZiyZy7.js → chart-config-gauge-BVLxuA3f.js} +6 -2
- package/dist/client/chunks/chart-config-gauge-BVLxuA3f.js.map +1 -0
- package/dist/client/chunks/{chart-config-heat-map-Cv8qNnVP.js → chart-config-heat-map-CjudGdui.js} +9 -2
- package/dist/client/chunks/chart-config-heat-map-CjudGdui.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-delta-BraHQc2E.js → chart-config-kpi-delta-Bf47hGqD.js} +9 -2
- package/dist/client/chunks/chart-config-kpi-delta-Bf47hGqD.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-number-CeCkx7mC.js → chart-config-kpi-number-QTQRNgOi.js} +6 -2
- package/dist/client/chunks/chart-config-kpi-number-QTQRNgOi.js.map +1 -0
- package/dist/client/chunks/{chart-config-kpi-text-CImM3SvH.js → chart-config-kpi-text-BRze2eyh.js} +6 -2
- package/dist/client/chunks/chart-config-kpi-text-BRze2eyh.js.map +1 -0
- package/dist/client/chunks/{chart-config-line-BVKapAQK.js → chart-config-line-BFeCqmKH.js} +10 -2
- package/dist/client/chunks/chart-config-line-BFeCqmKH.js.map +1 -0
- package/dist/client/chunks/{chart-config-markdown-C-_g_8te.js → chart-config-markdown-EWYckwXv.js} +2 -2
- package/dist/client/chunks/{chart-config-markdown-C-_g_8te.js.map → chart-config-markdown-EWYckwXv.js.map} +1 -1
- package/dist/client/chunks/{chart-config-measure-profile-KTVV1gO3.js → chart-config-measure-profile-B9nIhqKR.js} +6 -2
- package/dist/client/chunks/chart-config-measure-profile-B9nIhqKR.js.map +1 -0
- package/dist/client/chunks/{chart-config-pie-BZxVl25X.js → chart-config-pie-6LHtEyMM.js} +9 -2
- package/dist/client/chunks/chart-config-pie-6LHtEyMM.js.map +1 -0
- package/dist/client/chunks/{chart-config-radar-B7FByX3t.js → chart-config-radar-BuLS6Inn.js} +9 -2
- package/dist/client/chunks/chart-config-radar-BuLS6Inn.js.map +1 -0
- package/dist/client/chunks/{chart-config-radial-bar-UfW_3yyX.js → chart-config-radial-bar-BP0eMohx.js} +9 -2
- package/dist/client/chunks/chart-config-radial-bar-BP0eMohx.js.map +1 -0
- package/dist/client/chunks/{chart-config-sankey-DGAThN9i.js → chart-config-sankey-CT8oGIGP.js} +2 -2
- package/dist/client/chunks/{chart-config-sankey-DGAThN9i.js.map → chart-config-sankey-CT8oGIGP.js.map} +1 -1
- package/dist/client/chunks/{chart-config-scatter-BVVJuOnt.js → chart-config-scatter-DOSpN07Z.js} +9 -2
- package/dist/client/chunks/chart-config-scatter-DOSpN07Z.js.map +1 -0
- package/dist/client/chunks/{chart-config-sunburst-utejM2YS.js → chart-config-sunburst-BSUX_YoB.js} +2 -2
- package/dist/client/chunks/{chart-config-sunburst-utejM2YS.js.map → chart-config-sunburst-BSUX_YoB.js.map} +1 -1
- package/dist/client/chunks/{chart-config-tree-map-IHp97OyV.js → chart-config-tree-map-D8GuAgVB.js} +9 -2
- package/dist/client/chunks/chart-config-tree-map-D8GuAgVB.js.map +1 -0
- package/dist/client/chunks/{chart-config-waterfall-BdqG1V-x.js → chart-config-waterfall-BDi7BoJP.js} +9 -2
- package/dist/client/chunks/chart-config-waterfall-BDi7BoJP.js.map +1 -0
- package/dist/client/chunks/{chart-data-table-zZtwLf55.js → chart-data-table-DT4uBZaq.js} +92 -90
- package/dist/client/chunks/{chart-data-table-zZtwLf55.js.map → chart-data-table-DT4uBZaq.js.map} +1 -1
- package/dist/client/chunks/{chart-funnel-COTJy8BP.js → chart-funnel-B9crR3b3.js} +3 -3
- package/dist/client/chunks/{chart-funnel-COTJy8BP.js.map → chart-funnel-B9crR3b3.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-C8lIneI0.js → chart-gauge-DAMFsicz.js} +3 -3
- package/dist/client/chunks/{chart-gauge-C8lIneI0.js.map → chart-gauge-DAMFsicz.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-BJXt3RMt.js → chart-heat-map-BxgM_X1G.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-BJXt3RMt.js.map → chart-heat-map-BxgM_X1G.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-DHkNqufb.js → chart-kpi-delta-DJKL02Ut.js} +75 -73
- package/dist/client/chunks/{chart-kpi-delta-DHkNqufb.js.map → chart-kpi-delta-DJKL02Ut.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-BrXw7m-S.js → chart-kpi-number-CuNEYbRx.js} +66 -65
- package/dist/client/chunks/{chart-kpi-number-BrXw7m-S.js.map → chart-kpi-number-CuNEYbRx.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-D0plngLV.js → chart-kpi-text-u8FJaZDQ.js} +27 -26
- package/dist/client/chunks/{chart-kpi-text-D0plngLV.js.map → chart-kpi-text-u8FJaZDQ.js.map} +1 -1
- package/dist/client/chunks/{chart-line-DKvW32U-.js → chart-line-BZhzOjRl.js} +119 -118
- package/dist/client/chunks/chart-line-BZhzOjRl.js.map +1 -0
- package/dist/client/chunks/{chart-markdown-CJU2hUq3.js → chart-markdown-DEtjn8gx.js} +70 -69
- package/dist/client/chunks/chart-markdown-DEtjn8gx.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-DNT_tbh4.js → chart-measure-profile-BnpIOS4Q.js} +4 -4
- package/dist/client/chunks/{chart-measure-profile-DNT_tbh4.js.map → chart-measure-profile-BnpIOS4Q.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-CzYnncO-.js → chart-pie-CsdzxmSK.js} +4 -4
- package/dist/client/chunks/{chart-pie-CzYnncO-.js.map → chart-pie-CsdzxmSK.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-8iAt3QZl.js → chart-radar-C_9RwMKw.js} +4 -4
- package/dist/client/chunks/{chart-radar-8iAt3QZl.js.map → chart-radar-C_9RwMKw.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-CJbG7RIe.js → chart-radial-bar-CewRelyQ.js} +4 -4
- package/dist/client/chunks/{chart-radial-bar-CJbG7RIe.js.map → chart-radial-bar-CewRelyQ.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-C-wLBUmb.js → chart-sankey-ItraHWH1.js} +3 -3
- package/dist/client/chunks/{chart-sankey-C-wLBUmb.js.map → chart-sankey-ItraHWH1.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-NMjD1lbW.js → chart-scatter-k2IJbO2Y.js} +4 -4
- package/dist/client/chunks/{chart-scatter-NMjD1lbW.js.map → chart-scatter-k2IJbO2Y.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-HtJ-LJ7n.js → chart-sunburst-NsFRuqi9.js} +4 -4
- package/dist/client/chunks/{chart-sunburst-HtJ-LJ7n.js.map → chart-sunburst-NsFRuqi9.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-CetaLMt8.js → chart-tree-map-Cj_ewpwJ.js} +4 -4
- package/dist/client/chunks/{chart-tree-map-CetaLMt8.js.map → chart-tree-map-Cj_ewpwJ.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-ontNp1Sd.js → chart-waterfall-C-MTFcOz.js} +4 -4
- package/dist/client/chunks/{chart-waterfall-ontNp1Sd.js.map → chart-waterfall-C-MTFcOz.js.map} +1 -1
- package/dist/client/chunks/{charts-core-B5UXUg6_.js → charts-core-vZA3zPKb.js} +2 -2
- package/dist/client/chunks/{charts-core-B5UXUg6_.js.map → charts-core-vZA3zPKb.js.map} +1 -1
- package/dist/client/chunks/{core-Dk6z6kC0.js → core-Su6tIYhp.js} +5 -3
- package/dist/client/chunks/{core-Dk6z6kC0.js.map → core-Su6tIYhp.js.map} +1 -1
- package/dist/client/chunks/{dist-eZurnOde.js → dist-BTq3NoG3.js} +38 -32
- package/dist/client/chunks/dist-BTq3NoG3.js.map +1 -0
- package/dist/client/chunks/{en-US-5xPTdCXg.js → en-US-D-1JPTPv.js} +1 -1
- package/dist/client/chunks/{en-US-5xPTdCXg.js.map → en-US-D-1JPTPv.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-DaJsLlWM.js → exceljs.min-Dc1cBQ5l.js} +71 -45
- package/dist/client/chunks/{exceljs.min-DaJsLlWM.js.map → exceljs.min-Dc1cBQ5l.js.map} +1 -1
- package/dist/client/chunks/{javascript-DFvvCuoP.js → javascript-YXkoOgWa.js} +1 -1
- package/dist/client/chunks/{javascript-DFvvCuoP.js.map → javascript-YXkoOgWa.js.map} +1 -1
- package/dist/client/chunks/{json-BBm9TlrA.js → json-O7MKB_4V.js} +1 -1
- package/dist/client/chunks/{json-BBm9TlrA.js.map → json-O7MKB_4V.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-DDf0OdfW.js → nl-NL-BErZMygi.js} +10 -3
- package/dist/client/chunks/nl-NL-BErZMygi.js.map +1 -0
- package/dist/client/chunks/{rolldown-runtime-CCl2IeXn.js → rolldown-runtime-CKnJJeip.js} +1 -1
- package/dist/client/chunks/{schema-visualization-cnB2xZxn.js → schema-visualization-BY9L2nBQ.js} +294 -290
- package/dist/client/chunks/{schema-visualization-cnB2xZxn.js.map → schema-visualization-BY9L2nBQ.js.map} +1 -1
- package/dist/client/chunks/{sql-k0GA6oZ_.js → sql-r2a-9CCK.js} +1 -1
- package/dist/client/chunks/{sql-k0GA6oZ_.js.map → sql-r2a-9CCK.js.map} +1 -1
- package/dist/client/chunks/{syntaxHighlighting-D8J6Yt9j.js → syntaxHighlighting-5zHcjn27.js} +2 -2
- package/dist/client/chunks/{syntaxHighlighting-D8J6Yt9j.js.map → syntaxHighlighting-5zHcjn27.js.map} +1 -1
- package/dist/client/chunks/{useDebounce-BOBSvhHy.js → useDebounce-DGfYXtkm.js} +4 -4
- package/dist/client/chunks/{useDebounce-BOBSvhHy.js.map → useDebounce-DGfYXtkm.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-B_Pi4eXW.js → useExplainAI-CD0KuKwY.js} +4 -4
- package/dist/client/chunks/{useExplainAI-B_Pi4eXW.js.map → useExplainAI-CD0KuKwY.js.map} +1 -1
- package/dist/client/chunks/{utils-BIuqPQuJ.js → utils-D2SCtAkZ.js} +2 -2
- package/dist/client/chunks/{utils-BIuqPQuJ.js.map → utils-D2SCtAkZ.js.map} +1 -1
- package/dist/client/chunks/{vendor-BxLCTfvm.js → vendor-CfR5hJGc.js} +3 -3
- package/dist/client/chunks/{vendor-BxLCTfvm.js.map → vendor-CfR5hJGc.js.map} +1 -1
- package/dist/client/components/AnalysisBuilder/types.d.ts +2 -2
- package/dist/client/components.js +3 -3
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +15 -15
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/shared/chartDefaults.d.ts +5 -10
- package/dist/client/types.d.ts +1 -0
- package/dist/client/utils.js +6 -6
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +48 -48
- package/dist/server/index.cjs +7 -7
- package/dist/server/index.js +159 -16
- package/package.json +2 -2
- package/dist/adapters/mcp-transport-CkyawtUT.cjs +0 -40
- package/dist/adapters/mcp-transport-DSbd6M_u.js +0 -586
- package/dist/adapters/utils-DrWvXf0G.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-BBcB0E2g.js.map +0 -1
- package/dist/client/chunks/KpiDelta-D09hA_UJ.js +0 -2
- package/dist/client/chunks/KpiNumber-B7F9F9fC.js +0 -2
- package/dist/client/chunks/KpiText-C3ZXOF8b.js +0 -2
- package/dist/client/chunks/SchemaVisualization-DP4k1fPp.js +0 -2
- package/dist/client/chunks/SchemaVisualizationLazy-Brqv_PY9.js +0 -2
- package/dist/client/chunks/af-ZA-xDmO5F0s.js.map +0 -1
- package/dist/client/chunks/analysis-builder-0o1W-k3K.js.map +0 -1
- package/dist/client/chunks/analysis-builder-shared-Cz4KAlIC.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-VFFm85hC.js.map +0 -1
- package/dist/client/chunks/chart-area-CwwIHTmK.js.map +0 -1
- package/dist/client/chunks/chart-bar-Bmny922L.js.map +0 -1
- package/dist/client/chunks/chart-config-activity-grid-C-EkgYoa.js.map +0 -1
- package/dist/client/chunks/chart-config-area-CMZpbIah.js.map +0 -1
- package/dist/client/chunks/chart-config-bar-B8_V4YLg.js.map +0 -1
- package/dist/client/chunks/chart-config-box-plot-Dwj7sEbU.js.map +0 -1
- package/dist/client/chunks/chart-config-bubble-B0w0ZVp4.js.map +0 -1
- package/dist/client/chunks/chart-config-candlestick-Bvo3zeIn.js.map +0 -1
- package/dist/client/chunks/chart-config-gauge-C5ZiyZy7.js.map +0 -1
- package/dist/client/chunks/chart-config-heat-map-Cv8qNnVP.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-delta-BraHQc2E.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-number-CeCkx7mC.js.map +0 -1
- package/dist/client/chunks/chart-config-kpi-text-CImM3SvH.js.map +0 -1
- package/dist/client/chunks/chart-config-line-BVKapAQK.js.map +0 -1
- package/dist/client/chunks/chart-config-measure-profile-KTVV1gO3.js.map +0 -1
- package/dist/client/chunks/chart-config-pie-BZxVl25X.js.map +0 -1
- package/dist/client/chunks/chart-config-radar-B7FByX3t.js.map +0 -1
- package/dist/client/chunks/chart-config-radial-bar-UfW_3yyX.js.map +0 -1
- package/dist/client/chunks/chart-config-scatter-BVVJuOnt.js.map +0 -1
- package/dist/client/chunks/chart-config-tree-map-IHp97OyV.js.map +0 -1
- package/dist/client/chunks/chart-config-waterfall-BdqG1V-x.js.map +0 -1
- package/dist/client/chunks/chart-line-DKvW32U-.js.map +0 -1
- package/dist/client/chunks/chart-markdown-CJU2hUq3.js.map +0 -1
- package/dist/client/chunks/dist-eZurnOde.js.map +0 -1
- package/dist/client/chunks/nl-NL-DDf0OdfW.js.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-
|
|
2
|
-
import { A as s, V as c, u as l } from "./chart-data-table-
|
|
3
|
-
import { C as u, D as d, E as f, O as p, T as m, a as h, b as g, l as _, n as v, r as y, s as b, t as x } from "./useDebounce-
|
|
4
|
-
import { a as S, i as C } from "./useExplainAI-
|
|
5
|
-
import { r as ee, s as w } from "./chart-funnel-
|
|
6
|
-
import { F as te, k as T } from "./chart-activity-grid-
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "./vendor-CfR5hJGc.js";
|
|
2
|
+
import { A as s, V as c, u as l } from "./chart-data-table-DT4uBZaq.js";
|
|
3
|
+
import { C as u, D as d, E as f, O as p, T as m, a as h, b as g, l as _, n as v, r as y, s as b, t as x } from "./useDebounce-DGfYXtkm.js";
|
|
4
|
+
import { a as S, i as C } from "./useExplainAI-CD0KuKwY.js";
|
|
5
|
+
import { r as ee, s as w } from "./chart-funnel-B9crR3b3.js";
|
|
6
|
+
import { F as te, k as T } from "./chart-activity-grid-Bdb8U_NC.js";
|
|
7
7
|
import { a as E, s as ne, t as D } from "./retention-YhT1Oohi.js";
|
|
8
|
-
import { L as O, R as k, a as A, c as j, d as M, f as N, g as re, h as ie, l as ae, o as
|
|
9
|
-
import { n as
|
|
10
|
-
import
|
|
11
|
-
import { Fragment as
|
|
8
|
+
import { L as O, R as k, a as A, c as j, d as M, f as N, g as re, h as ie, l as ae, o as P, s as F, t as oe, x as I } from "./FieldSearchModal-DdcbCwAi.js";
|
|
9
|
+
import { n as se } from "./charts-core-vZA3zPKb.js";
|
|
10
|
+
import L, { createContext as ce, memo as R, useCallback as z, useContext as le, useEffect as B, useMemo as V, useRef as H, useState as U } from "react";
|
|
11
|
+
import { Fragment as ue, jsx as W, jsxs as G } from "react/jsx-runtime";
|
|
12
12
|
//#region src/shared/date-utils.ts
|
|
13
13
|
function de(e) {
|
|
14
14
|
let t = /* @__PURE__ */ new Date(), n = e.toLowerCase().trim(), r = t.getUTCFullYear(), i = t.getUTCMonth(), a = t.getUTCDate(), o = t.getUTCDay();
|
|
@@ -185,7 +185,7 @@ function _e(e, t) {
|
|
|
185
185
|
function ve(e, t, n, r, i = !1, a) {
|
|
186
186
|
let o = t.filter((e) => e.isTimeDimension && e.enableComparison).map((e) => e.field), s = n;
|
|
187
187
|
if (!i) for (let e of o) s = _e(s, e);
|
|
188
|
-
s = s.filter((e) =>
|
|
188
|
+
s = s.filter((e) => I(e));
|
|
189
189
|
let c = {
|
|
190
190
|
measures: e.map((e) => e.field),
|
|
191
191
|
dimensions: t.filter((e) => !e.isTimeDimension).map((e) => e.field),
|
|
@@ -221,17 +221,17 @@ function K() {
|
|
|
221
221
|
//#region src/client/components/AnalysisBuilder/FilterConfigModal.tsx
|
|
222
222
|
var q = s("close"), J = s("chevronDown"), Y = s("dimension"), ye = s("timeDimension"), be = s("measure");
|
|
223
223
|
function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i }) {
|
|
224
|
-
let { t: a } = T(), [o, s] =
|
|
224
|
+
let { t: a } = T(), [o, s] = U(e), [c, l] = U(!1), [h, g] = U(!1), [_, y] = U(!1), [b, S] = U("this_month"), [C, ee] = U(1), [w, te] = U(""), [E, ne] = U(null), [D, O] = U(-1), k = H(null), A = H(null), M = x(w, 300), N = j(o.member, t), re = N?.field.type || "string", ie = re === "time", P = N?.fieldType === "measure", F = N?.fieldType === "dimension", oe = ae(o.member, t), I = p[o.operator], se = m(re), L = ie && o.operator === "inDateRange", ce = z(() => [
|
|
225
225
|
"equals",
|
|
226
226
|
"notEquals",
|
|
227
227
|
"in",
|
|
228
228
|
"notIn"
|
|
229
|
-
].includes(o.operator) &&
|
|
229
|
+
].includes(o.operator) && F && !ie, [
|
|
230
230
|
o.operator,
|
|
231
|
-
|
|
231
|
+
F,
|
|
232
232
|
ie
|
|
233
|
-
])(), { values:
|
|
234
|
-
|
|
233
|
+
])(), { values: R, loading: le, error: V, searchValues: de } = v(o.member, ce);
|
|
234
|
+
B(() => {
|
|
235
235
|
if (!i) {
|
|
236
236
|
ne(null);
|
|
237
237
|
return;
|
|
@@ -244,31 +244,31 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
244
244
|
top: e.bottom + 8,
|
|
245
245
|
left: a
|
|
246
246
|
});
|
|
247
|
-
}, [i]),
|
|
247
|
+
}, [i]), B(() => {
|
|
248
248
|
let e = (e) => {
|
|
249
249
|
k.current && !k.current.contains(e.target) && (l(!1), g(!1), y(!1));
|
|
250
250
|
};
|
|
251
251
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
252
|
-
}, []),
|
|
253
|
-
h &&
|
|
252
|
+
}, []), B(() => {
|
|
253
|
+
h && ce && de && de("", !0), h || O(-1);
|
|
254
254
|
}, [
|
|
255
255
|
h,
|
|
256
|
-
|
|
256
|
+
ce,
|
|
257
257
|
de
|
|
258
|
-
]),
|
|
258
|
+
]), B(() => {
|
|
259
259
|
if (D >= 0 && A.current) {
|
|
260
260
|
let e = A.current.children[D];
|
|
261
261
|
e && e.scrollIntoView({ block: "nearest" });
|
|
262
262
|
}
|
|
263
|
-
}, [D]),
|
|
264
|
-
h &&
|
|
263
|
+
}, [D]), B(() => {
|
|
264
|
+
h && ce && de && M !== void 0 && de(M);
|
|
265
265
|
}, [
|
|
266
266
|
M,
|
|
267
267
|
h,
|
|
268
|
-
|
|
268
|
+
ce,
|
|
269
269
|
de
|
|
270
|
-
]),
|
|
271
|
-
if (!(!
|
|
270
|
+
]), B(() => {
|
|
271
|
+
if (!(!L || !o.dateRange)) if (Array.isArray(o.dateRange)) S("custom");
|
|
272
272
|
else {
|
|
273
273
|
let e = o.dateRange.match(/^last (\d+) (days|weeks|months|quarters|years)$/), t = !e && o.dateRange.match(/^last (day|week|month|quarter|year)$/);
|
|
274
274
|
if (e) {
|
|
@@ -286,16 +286,16 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
286
286
|
e || S("custom");
|
|
287
287
|
}
|
|
288
288
|
}
|
|
289
|
-
}, [o.dateRange,
|
|
290
|
-
let fe =
|
|
289
|
+
}, [o.dateRange, L]);
|
|
290
|
+
let fe = z((e) => {
|
|
291
291
|
s({
|
|
292
292
|
member: o.member,
|
|
293
293
|
operator: e,
|
|
294
294
|
values: []
|
|
295
295
|
}), l(!1);
|
|
296
|
-
}, [o.member]), pe =
|
|
296
|
+
}, [o.member]), pe = z((e, t) => {
|
|
297
297
|
let n = t?.shiftKey ?? !1, r = o.values || [];
|
|
298
|
-
|
|
298
|
+
I?.supportsMultipleValues ? (r.includes(e) ? s({
|
|
299
299
|
...o,
|
|
300
300
|
values: r.filter((t) => t !== e)
|
|
301
301
|
}) : s({
|
|
@@ -305,22 +305,22 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
305
305
|
...o,
|
|
306
306
|
values: [e]
|
|
307
307
|
}), g(!1)), te(""), O(-1);
|
|
308
|
-
}, [o,
|
|
308
|
+
}, [o, I?.supportsMultipleValues]), me = z((e) => {
|
|
309
309
|
let t = (o.values || []).filter((t) => t !== e);
|
|
310
310
|
s({
|
|
311
311
|
...o,
|
|
312
312
|
values: t
|
|
313
313
|
});
|
|
314
|
-
}, [o]), he =
|
|
315
|
-
if (!(!h ||
|
|
314
|
+
}, [o]), he = z((e) => {
|
|
315
|
+
if (!(!h || R.length === 0)) switch (e.key) {
|
|
316
316
|
case "ArrowDown":
|
|
317
|
-
e.preventDefault(), O((e) => e <
|
|
317
|
+
e.preventDefault(), O((e) => e < R.length - 1 ? e + 1 : 0);
|
|
318
318
|
break;
|
|
319
319
|
case "ArrowUp":
|
|
320
|
-
e.preventDefault(), O((e) => e > 0 ? e - 1 :
|
|
320
|
+
e.preventDefault(), O((e) => e > 0 ? e - 1 : R.length - 1);
|
|
321
321
|
break;
|
|
322
322
|
case "Enter":
|
|
323
|
-
e.preventDefault(), D >= 0 && D <
|
|
323
|
+
e.preventDefault(), D >= 0 && D < R.length && pe(R[D], { shiftKey: e.shiftKey });
|
|
324
324
|
break;
|
|
325
325
|
case "Escape":
|
|
326
326
|
e.preventDefault(), g(!1), O(-1);
|
|
@@ -328,12 +328,12 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
328
328
|
}
|
|
329
329
|
}, [
|
|
330
330
|
h,
|
|
331
|
-
|
|
331
|
+
R,
|
|
332
332
|
D,
|
|
333
333
|
pe
|
|
334
|
-
]), ge =
|
|
334
|
+
]), ge = z((e) => {
|
|
335
335
|
let t = e.target.value;
|
|
336
|
-
if (
|
|
336
|
+
if (I?.valueType === "number") {
|
|
337
337
|
let e = parseFloat(t);
|
|
338
338
|
isNaN(e) ? (t === "" || t === "-") && s({
|
|
339
339
|
...o,
|
|
@@ -346,25 +346,25 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
346
346
|
...o,
|
|
347
347
|
values: t ? [t] : []
|
|
348
348
|
});
|
|
349
|
-
}, [o,
|
|
349
|
+
}, [o, I?.valueType]), _e = z((e) => {
|
|
350
350
|
let t = parseFloat(e.target.value), n = [isNaN(t) ? "" : t, (o.values?.length >= 2 ? o.values : ["", ""])[1]].filter((e) => e !== "");
|
|
351
351
|
s({
|
|
352
352
|
...o,
|
|
353
353
|
values: n
|
|
354
354
|
});
|
|
355
|
-
}, [o]), ve =
|
|
355
|
+
}, [o]), ve = z((e) => {
|
|
356
356
|
let t = parseFloat(e.target.value), n = [(o.values?.length >= 2 ? o.values : ["", ""])[0], isNaN(t) ? "" : t].filter((e) => e !== "");
|
|
357
357
|
s({
|
|
358
358
|
...o,
|
|
359
359
|
values: n
|
|
360
360
|
});
|
|
361
|
-
}, [o]), K =
|
|
361
|
+
}, [o]), K = z((e) => {
|
|
362
362
|
let t = e.target.value;
|
|
363
363
|
s({
|
|
364
364
|
...o,
|
|
365
365
|
values: t ? [t] : []
|
|
366
366
|
});
|
|
367
|
-
}, [o]), xe =
|
|
367
|
+
}, [o]), xe = z((e) => {
|
|
368
368
|
S(e), y(!1);
|
|
369
369
|
let t;
|
|
370
370
|
if (e === "custom") {
|
|
@@ -375,7 +375,7 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
375
375
|
...o,
|
|
376
376
|
dateRange: t
|
|
377
377
|
});
|
|
378
|
-
}, [o, C]), Se =
|
|
378
|
+
}, [o, C]), Se = z((e) => {
|
|
379
379
|
if (ee(e), f(b)) {
|
|
380
380
|
let t = u(b, e);
|
|
381
381
|
s({
|
|
@@ -383,19 +383,19 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
383
383
|
dateRange: t
|
|
384
384
|
});
|
|
385
385
|
}
|
|
386
|
-
}, [o, b]), Ce =
|
|
386
|
+
}, [o, b]), Ce = z((e) => {
|
|
387
387
|
let t = e.target.value, n = (Array.isArray(o.dateRange) ? o.dateRange : [o.dateRange || "", ""])[1] || t;
|
|
388
388
|
s({
|
|
389
389
|
...o,
|
|
390
390
|
dateRange: [t, n]
|
|
391
391
|
});
|
|
392
|
-
}, [o]), we =
|
|
392
|
+
}, [o]), we = z((e) => {
|
|
393
393
|
let t = e.target.value, n = (Array.isArray(o.dateRange) ? o.dateRange : ["", o.dateRange || ""])[0] || t;
|
|
394
394
|
s({
|
|
395
395
|
...o,
|
|
396
396
|
dateRange: [n, t]
|
|
397
397
|
});
|
|
398
|
-
}, [o]), Te = a(
|
|
398
|
+
}, [o]), Te = a(se.find((e) => e.operator === o.operator)?.label || o.operator), Ee = a(d.find((e) => e.value === b)?.label || "filter.modal.selectRange"), De = ie ? ye : P ? be : Y, Oe = () => I?.requiresValues ? L ? /* @__PURE__ */ G("div", {
|
|
399
399
|
className: "dc:space-y-2",
|
|
400
400
|
children: [
|
|
401
401
|
/* @__PURE__ */ G("div", {
|
|
@@ -476,18 +476,18 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
476
476
|
className: "dc:flex-1 dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
477
477
|
})
|
|
478
478
|
]
|
|
479
|
-
}) :
|
|
479
|
+
}) : I?.valueType === "date" ? /* @__PURE__ */ W("input", {
|
|
480
480
|
type: "date",
|
|
481
481
|
value: o.values?.[0] || "",
|
|
482
482
|
onChange: K,
|
|
483
483
|
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
484
|
-
}) :
|
|
484
|
+
}) : I?.valueType === "number" ? /* @__PURE__ */ W("input", {
|
|
485
485
|
type: "number",
|
|
486
486
|
value: o.values?.[0] ?? "",
|
|
487
487
|
onChange: ge,
|
|
488
488
|
placeholder: a("filter.modal.enterNumber"),
|
|
489
489
|
className: "dc:w-full dc:text-sm dc:border border-dc-border dc:rounded dc:px-3 dc:py-2 bg-dc-surface text-dc-text"
|
|
490
|
-
}) :
|
|
490
|
+
}) : ce ? /* @__PURE__ */ G("div", {
|
|
491
491
|
className: "dc:space-y-2",
|
|
492
492
|
children: [
|
|
493
493
|
o.values && o.values.length > 0 && /* @__PURE__ */ W("div", {
|
|
@@ -513,7 +513,7 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
513
513
|
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 dc:px-3 dc:py-2 bg-dc-surface text-dc-text hover:bg-dc-surface-hover",
|
|
514
514
|
children: [/* @__PURE__ */ W("span", {
|
|
515
515
|
className: "text-dc-text-muted dc:truncate",
|
|
516
|
-
children: a(
|
|
516
|
+
children: a(le ? "filter.modal.loading" : "filter.modal.selectValue")
|
|
517
517
|
}), /* @__PURE__ */ W(J, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${h ? "dc:rotate-180" : ""}` })]
|
|
518
518
|
}), h && /* @__PURE__ */ G("div", {
|
|
519
519
|
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:max-h-56 dc:overflow-hidden",
|
|
@@ -533,16 +533,16 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
533
533
|
}), /* @__PURE__ */ W("div", {
|
|
534
534
|
ref: A,
|
|
535
535
|
className: "dc:max-h-40 dc:overflow-y-auto",
|
|
536
|
-
children:
|
|
536
|
+
children: le ? /* @__PURE__ */ W("div", {
|
|
537
537
|
className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
|
|
538
538
|
children: a("filter.modal.loading")
|
|
539
|
-
}) :
|
|
539
|
+
}) : V ? /* @__PURE__ */ G("div", {
|
|
540
540
|
className: "dc:px-3 dc:py-2 dc:text-sm text-dc-error",
|
|
541
|
-
children: [a("filter.modal.errorPrefix"),
|
|
542
|
-
}) :
|
|
541
|
+
children: [a("filter.modal.errorPrefix"), V]
|
|
542
|
+
}) : R.length === 0 ? /* @__PURE__ */ W("div", {
|
|
543
543
|
className: "dc:px-3 dc:py-2 dc:text-sm text-dc-text-muted",
|
|
544
544
|
children: a("filter.modal.noValues")
|
|
545
|
-
}) :
|
|
545
|
+
}) : R.map((e, t) => {
|
|
546
546
|
let n = o.values?.includes(e);
|
|
547
547
|
return /* @__PURE__ */ G("button", {
|
|
548
548
|
onClick: (t) => pe(e, t),
|
|
@@ -556,7 +556,7 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
556
556
|
})]
|
|
557
557
|
})]
|
|
558
558
|
}),
|
|
559
|
-
|
|
559
|
+
I?.supportsMultipleValues && /* @__PURE__ */ W("p", {
|
|
560
560
|
className: "dc:text-xs text-dc-text-muted",
|
|
561
561
|
children: a("filter.modal.multiSelectHint")
|
|
562
562
|
})
|
|
@@ -571,7 +571,7 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
571
571
|
className: "dc:text-sm text-dc-text-muted dc:italic dc:py-2",
|
|
572
572
|
children: a("filter.modal.noValueRequired")
|
|
573
573
|
});
|
|
574
|
-
return /* @__PURE__ */ W(
|
|
574
|
+
return /* @__PURE__ */ W(ue, { children: /* @__PURE__ */ W("div", {
|
|
575
575
|
className: `dc:fixed dc:inset-0 bg-dc-overlay dc:z-50 ${E ? "" : "dc:flex dc:items-center dc:justify-center dc:p-4"}`,
|
|
576
576
|
onClick: r,
|
|
577
577
|
children: /* @__PURE__ */ G("div", {
|
|
@@ -609,7 +609,7 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
609
609
|
className: "dc:flex dc:items-center dc:gap-2 dc:p-3 bg-dc-surface-secondary dc:rounded",
|
|
610
610
|
children: [/* @__PURE__ */ W(De, { className: "dc:w-5 dc:h-5 text-dc-filter-text" }), /* @__PURE__ */ W("span", {
|
|
611
611
|
className: "dc:text-sm dc:font-medium text-dc-text",
|
|
612
|
-
children:
|
|
612
|
+
children: oe
|
|
613
613
|
})]
|
|
614
614
|
})] }),
|
|
615
615
|
/* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("label", {
|
|
@@ -628,7 +628,7 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
628
628
|
}), /* @__PURE__ */ W(J, { className: `dc:w-4 dc:h-4 text-dc-text-muted dc:shrink-0 dc:ml-2 dc:transition-transform ${c ? "dc:rotate-180" : ""}` })]
|
|
629
629
|
}), c && /* @__PURE__ */ W("div", {
|
|
630
630
|
className: "dc:absolute dc:z-[60] dc:left-0 dc:right-0 dc:mt-1 bg-dc-surface dc:border border-dc-border dc:rounded dc:shadow-lg dc:max-h-48 dc:overflow-y-auto",
|
|
631
|
-
children:
|
|
631
|
+
children: se.map((e) => /* @__PURE__ */ W("button", {
|
|
632
632
|
onClick: () => fe(e.operator),
|
|
633
633
|
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"}`,
|
|
634
634
|
children: a(e.label)
|
|
@@ -661,8 +661,8 @@ function xe({ filter: e, schema: t, onSave: n, onCancel: r, anchorElement: i })
|
|
|
661
661
|
//#region src/client/components/AnalysisBuilder/AnalysisFilterItem.tsx
|
|
662
662
|
var Se = s("close"), Ce = s("dimension"), we = s("timeDimension"), Te = s("measure");
|
|
663
663
|
function Ee({ filter: e, schema: t, onRemove: n, onUpdate: r }) {
|
|
664
|
-
let { t: i } = T(), [a, o] =
|
|
665
|
-
return /* @__PURE__ */ G(
|
|
664
|
+
let { t: i } = T(), [a, o] = U(!1), s = H(null), c = j(e.member, t), l = (c?.field.type || "string") === "time", u = c?.fieldType === "measure", d = ae(e.member, t), f = p[e.operator], m = f?.label ? i(f.label) : e.operator, h = De(e, f, i), g = l ? we : u ? Te : Ce;
|
|
665
|
+
return /* @__PURE__ */ G(ue, { children: [/* @__PURE__ */ G("div", {
|
|
666
666
|
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",
|
|
667
667
|
children: [
|
|
668
668
|
/* @__PURE__ */ W("span", {
|
|
@@ -725,26 +725,26 @@ function je(e) {
|
|
|
725
725
|
return "type" in e && (e.type === "and" || e.type === "or");
|
|
726
726
|
}
|
|
727
727
|
function Me({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, depth: a = 0, hideRemoveButton: o = !1 }) {
|
|
728
|
-
let { t: s } = T(), [c, l] =
|
|
729
|
-
|
|
728
|
+
let { t: s } = T(), [c, l] = U(!1), u = H(null);
|
|
729
|
+
B(() => {
|
|
730
730
|
let e = (e) => {
|
|
731
731
|
u.current && !u.current.contains(e.target) && l(!1);
|
|
732
732
|
};
|
|
733
733
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
734
734
|
}, []);
|
|
735
|
-
let d =
|
|
735
|
+
let d = z(() => {
|
|
736
736
|
let t = e.type === "and" ? "or" : "and";
|
|
737
737
|
n({
|
|
738
738
|
...e,
|
|
739
739
|
type: t
|
|
740
740
|
});
|
|
741
|
-
}, [e, n]), f =
|
|
741
|
+
}, [e, n]), f = z((t, r) => {
|
|
742
742
|
let i = [...e.filters];
|
|
743
743
|
i[t] = r, n({
|
|
744
744
|
...e,
|
|
745
745
|
filters: i
|
|
746
746
|
});
|
|
747
|
-
}, [e, n]), p =
|
|
747
|
+
}, [e, n]), p = z((t) => {
|
|
748
748
|
let i = e.filters.filter((e, n) => n !== t);
|
|
749
749
|
i.length === 0 ? r() : n({
|
|
750
750
|
...e,
|
|
@@ -755,7 +755,7 @@ function Me({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
755
755
|
n,
|
|
756
756
|
r,
|
|
757
757
|
a
|
|
758
|
-
]), m =
|
|
758
|
+
]), m = z((t) => {
|
|
759
759
|
let r = {
|
|
760
760
|
type: t,
|
|
761
761
|
filters: []
|
|
@@ -764,9 +764,9 @@ function Me({ group: e, schema: t, onUpdate: n, onRemove: r, onAddFilter: i, dep
|
|
|
764
764
|
...e,
|
|
765
765
|
filters: [...e.filters, r]
|
|
766
766
|
}), l(!1);
|
|
767
|
-
}, [e, n]), h =
|
|
767
|
+
}, [e, n]), h = z(() => {
|
|
768
768
|
i([]), l(!1);
|
|
769
|
-
}, [i]), g =
|
|
769
|
+
}, [i]), g = z((e) => (t = []) => {
|
|
770
770
|
i([e, ...t]);
|
|
771
771
|
}, [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");
|
|
772
772
|
return /* @__PURE__ */ G("div", {
|
|
@@ -893,27 +893,27 @@ function Re(e, t, n) {
|
|
|
893
893
|
}), a;
|
|
894
894
|
}
|
|
895
895
|
function ze({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dimensionsOnly: i = !1 }) {
|
|
896
|
-
let { t: a } = T(), [o, s] =
|
|
896
|
+
let { t: a } = T(), [o, s] = U(!1), [c, l] = U(!1), d = H([]), f = Ie(e), p = z((e) => {
|
|
897
897
|
e.preventDefault(), e.stopPropagation(), l(!0);
|
|
898
|
-
}, []), m =
|
|
898
|
+
}, []), m = z((e) => {
|
|
899
899
|
e.preventDefault(), e.stopPropagation(), l(!1);
|
|
900
|
-
}, []), h =
|
|
900
|
+
}, []), h = z((e) => {
|
|
901
901
|
e.preventDefault(), e.stopPropagation(), l(!1);
|
|
902
902
|
try {
|
|
903
903
|
let t = JSON.parse(e.dataTransfer.getData("text/plain"));
|
|
904
904
|
t.field && r && r(t.field);
|
|
905
905
|
} catch {}
|
|
906
|
-
}, [r]), g = Le(e), _ =
|
|
906
|
+
}, [r]), g = Le(e), _ = z((t, r, i) => {
|
|
907
907
|
let a = t.type === "time", o = a ? "inDateRange" : "equals", c = {
|
|
908
908
|
member: t.name,
|
|
909
909
|
operator: o,
|
|
910
910
|
values: []
|
|
911
911
|
};
|
|
912
912
|
a && o === "inDateRange" && (c.dateRange = u("this_month")), n(Re(e, d.current, c)), s(!1), d.current = [];
|
|
913
|
-
}, [e, n]), v =
|
|
913
|
+
}, [e, n]), v = z((t, r) => {
|
|
914
914
|
let i = [...e];
|
|
915
915
|
i[t] = r, n(i);
|
|
916
|
-
}, [e, n]), y =
|
|
916
|
+
}, [e, n]), y = z((t) => {
|
|
917
917
|
let r = e.filter((e, n) => n !== t);
|
|
918
918
|
if (r.length === 1 && Fe(r[0])) {
|
|
919
919
|
let e = r[0];
|
|
@@ -923,11 +923,11 @@ function ze({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
923
923
|
}
|
|
924
924
|
}
|
|
925
925
|
n(r);
|
|
926
|
-
}, [e, n]), b =
|
|
926
|
+
}, [e, n]), b = z(() => {
|
|
927
927
|
n([]);
|
|
928
|
-
}, [n]), x =
|
|
928
|
+
}, [n]), x = z(() => {
|
|
929
929
|
d.current = [], s(!0);
|
|
930
|
-
}, []), S =
|
|
930
|
+
}, []), S = z((e) => (t = []) => {
|
|
931
931
|
d.current = [...e, ...t], s(!0);
|
|
932
932
|
}, []), C = (n, r, i = []) => {
|
|
933
933
|
let a = [...i, r];
|
|
@@ -950,7 +950,7 @@ function ze({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
950
950
|
onClick: x,
|
|
951
951
|
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",
|
|
952
952
|
title: "Add filter",
|
|
953
|
-
children: [/* @__PURE__ */ G(
|
|
953
|
+
children: [/* @__PURE__ */ G(se, { children: [a("analysis.sections.filters"), f > 0 && /* @__PURE__ */ G("span", {
|
|
954
954
|
className: "dc:ml-1.5 dc:text-xs dc:font-normal text-dc-text-muted dc:normal-case dc:tracking-normal",
|
|
955
955
|
children: [
|
|
956
956
|
"(",
|
|
@@ -986,7 +986,7 @@ function ze({ filters: e, schema: t, onFiltersChange: n, onFieldDropped: r, dime
|
|
|
986
986
|
children: e.map((e, t) => C(e, t))
|
|
987
987
|
})
|
|
988
988
|
}),
|
|
989
|
-
/* @__PURE__ */ W(
|
|
989
|
+
/* @__PURE__ */ W(oe, {
|
|
990
990
|
isOpen: o,
|
|
991
991
|
onClose: () => {
|
|
992
992
|
s(!1), d.current = [];
|
|
@@ -1015,108 +1015,35 @@ function Ue(e) {
|
|
|
1015
1015
|
function We(e) {
|
|
1016
1016
|
return e.filter(Be);
|
|
1017
1017
|
}
|
|
1018
|
-
function Ge(e, t
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
case "kpiText": return r < 1 ? {
|
|
1025
|
-
available: !1,
|
|
1026
|
-
reason: "Requires at least 1 measure"
|
|
1027
|
-
} : { available: !0 };
|
|
1028
|
-
case "bar": return r < 1 ? {
|
|
1029
|
-
available: !1,
|
|
1030
|
-
reason: "Requires at least 1 measure"
|
|
1031
|
-
} : o < 1 ? {
|
|
1032
|
-
available: !1,
|
|
1033
|
-
reason: "Requires at least 1 breakdown for categories"
|
|
1034
|
-
} : { available: !0 };
|
|
1035
|
-
case "kpiDelta": return r < 1 ? {
|
|
1036
|
-
available: !1,
|
|
1037
|
-
reason: "Requires at least 1 measure"
|
|
1038
|
-
} : o < 1 ? {
|
|
1039
|
-
available: !1,
|
|
1040
|
-
reason: "Requires at least 1 breakdown for ordering"
|
|
1041
|
-
} : { available: !0 };
|
|
1042
|
-
case "line":
|
|
1043
|
-
case "area": return r < 1 ? {
|
|
1044
|
-
available: !1,
|
|
1045
|
-
reason: "Requires at least 1 measure"
|
|
1046
|
-
} : o < 1 ? {
|
|
1047
|
-
available: !1,
|
|
1048
|
-
reason: "Requires a breakdown (dimension or time)"
|
|
1049
|
-
} : { available: !0 };
|
|
1050
|
-
case "pie": return r < 1 ? {
|
|
1051
|
-
available: !1,
|
|
1052
|
-
reason: "Requires 1 measure"
|
|
1053
|
-
} : i < 1 ? {
|
|
1054
|
-
available: !1,
|
|
1055
|
-
reason: "Requires 1 dimension (not time dimension)"
|
|
1056
|
-
} : { available: !0 };
|
|
1057
|
-
case "scatter": return r < 1 ? {
|
|
1058
|
-
available: !1,
|
|
1059
|
-
reason: "Requires at least 1 measure"
|
|
1060
|
-
} : r < 2 && o < 1 ? {
|
|
1061
|
-
available: !1,
|
|
1062
|
-
reason: "Requires 2 measures or 1 measure + 1 breakdown"
|
|
1063
|
-
} : { available: !0 };
|
|
1064
|
-
case "bubble": return r < 2 ? {
|
|
1065
|
-
available: !1,
|
|
1066
|
-
reason: "Requires at least 2 measures"
|
|
1067
|
-
} : o < 1 ? {
|
|
1068
|
-
available: !1,
|
|
1069
|
-
reason: "Requires at least 1 breakdown for series grouping"
|
|
1070
|
-
} : { available: !0 };
|
|
1071
|
-
case "radar": return r < 1 ? {
|
|
1072
|
-
available: !1,
|
|
1073
|
-
reason: "Requires at least 1 measure"
|
|
1074
|
-
} : i < 1 ? {
|
|
1075
|
-
available: !1,
|
|
1076
|
-
reason: "Requires at least 1 dimension"
|
|
1077
|
-
} : { available: !0 };
|
|
1078
|
-
case "radialBar": return r < 1 ? {
|
|
1079
|
-
available: !1,
|
|
1080
|
-
reason: "Requires at least 1 measure"
|
|
1081
|
-
} : i < 1 ? {
|
|
1082
|
-
available: !1,
|
|
1083
|
-
reason: "Requires at least 1 dimension"
|
|
1084
|
-
} : { available: !0 };
|
|
1085
|
-
case "treemap": return r < 1 ? {
|
|
1086
|
-
available: !1,
|
|
1087
|
-
reason: "Requires at least 1 measure"
|
|
1088
|
-
} : i < 1 ? {
|
|
1089
|
-
available: !1,
|
|
1090
|
-
reason: "Requires at least 1 dimension"
|
|
1091
|
-
} : { available: !0 };
|
|
1092
|
-
case "activityGrid": return r < 1 ? {
|
|
1093
|
-
available: !1,
|
|
1094
|
-
reason: "Requires at least 1 measure"
|
|
1095
|
-
} : a < 1 ? {
|
|
1096
|
-
available: !1,
|
|
1097
|
-
reason: "Requires a time dimension"
|
|
1098
|
-
} : { available: !0 };
|
|
1099
|
-
default: return { available: !0 };
|
|
1100
|
-
}
|
|
1018
|
+
function Ge(e, t) {
|
|
1019
|
+
return {
|
|
1020
|
+
measureCount: e.length,
|
|
1021
|
+
dimensionCount: t.length,
|
|
1022
|
+
timeDimensionCount: We(t).length
|
|
1023
|
+
};
|
|
1101
1024
|
}
|
|
1102
|
-
function Ke(e, t) {
|
|
1025
|
+
function Ke(e, t, n) {
|
|
1026
|
+
let r = l[e];
|
|
1027
|
+
return !r || !r.isAvailable ? { available: !0 } : r.isAvailable(Ge(t, n));
|
|
1028
|
+
}
|
|
1029
|
+
function qe(e, t) {
|
|
1103
1030
|
let n = Object.keys(l), r = {};
|
|
1104
|
-
for (let i of n) r[i] =
|
|
1031
|
+
for (let i of n) r[i] = Ke(i, e, t);
|
|
1105
1032
|
return r;
|
|
1106
1033
|
}
|
|
1107
|
-
function
|
|
1108
|
-
if (
|
|
1034
|
+
function Je(e, t, n) {
|
|
1035
|
+
if (Ke(n, e, t).available || e.length === 0 && t.length === 0) return n;
|
|
1109
1036
|
let r = We(t).length > 0, i = Ue(t).length > 0, a = e.length > 0;
|
|
1110
1037
|
return r && a ? "line" : i && a ? "bar" : a && !i && !r ? "kpiNumber" : "table";
|
|
1111
1038
|
}
|
|
1112
|
-
function
|
|
1113
|
-
let r =
|
|
1039
|
+
function Ye(e, t, n) {
|
|
1040
|
+
let r = Je(e, t, n);
|
|
1114
1041
|
return {
|
|
1115
1042
|
chartType: r,
|
|
1116
|
-
chartConfig:
|
|
1043
|
+
chartConfig: Xe(r, e, t)
|
|
1117
1044
|
};
|
|
1118
1045
|
}
|
|
1119
|
-
function
|
|
1046
|
+
function Xe(e, t, n) {
|
|
1120
1047
|
let r = Ve(n), i = He(n), a = Ue(n), o = n;
|
|
1121
1048
|
switch (e) {
|
|
1122
1049
|
case "line":
|
|
@@ -1170,37 +1097,37 @@ function Ye(e, t, n) {
|
|
|
1170
1097
|
};
|
|
1171
1098
|
}
|
|
1172
1099
|
}
|
|
1173
|
-
function
|
|
1174
|
-
if (r &&
|
|
1175
|
-
let i =
|
|
1100
|
+
function Ze(e, t, n, r) {
|
|
1101
|
+
if (r && Ke(n, e, t).available) return null;
|
|
1102
|
+
let i = Je(e, t, n);
|
|
1176
1103
|
return i === n ? null : i;
|
|
1177
1104
|
}
|
|
1178
1105
|
//#endregion
|
|
1179
1106
|
//#region src/client/components/AnalysisBuilder/ExplainAIPanel.tsx
|
|
1180
|
-
function
|
|
1107
|
+
function Qe(e) {
|
|
1181
1108
|
return typeof e == "string" ? e : typeof e == "object" && e ? JSON.stringify(e) : String(e ?? "");
|
|
1182
1109
|
}
|
|
1183
|
-
var
|
|
1110
|
+
var $e = {
|
|
1184
1111
|
good: "bg-dc-success-bg text-dc-success border-dc-success",
|
|
1185
1112
|
warning: "bg-dc-warning-bg text-dc-warning border-dc-warning",
|
|
1186
1113
|
critical: "bg-dc-danger-bg text-dc-error border-dc-error"
|
|
1187
|
-
},
|
|
1114
|
+
}, et = {
|
|
1188
1115
|
critical: "bg-dc-danger-bg text-dc-error",
|
|
1189
1116
|
warning: "bg-dc-warning-bg text-dc-warning",
|
|
1190
1117
|
suggestion: "bg-dc-accent-bg text-dc-accent"
|
|
1191
|
-
},
|
|
1118
|
+
}, tt = {
|
|
1192
1119
|
high: "text-dc-error",
|
|
1193
1120
|
medium: "text-dc-warning",
|
|
1194
1121
|
low: "text-dc-text-muted"
|
|
1195
1122
|
};
|
|
1196
|
-
function
|
|
1123
|
+
function nt({ assessment: e, reason: t }) {
|
|
1197
1124
|
let { t: n } = T(), r = {
|
|
1198
1125
|
good: n("explainAI.assessment.good"),
|
|
1199
1126
|
warning: n("explainAI.assessment.warning"),
|
|
1200
1127
|
critical: n("explainAI.assessment.critical")
|
|
1201
1128
|
};
|
|
1202
1129
|
return /* @__PURE__ */ G("div", {
|
|
1203
|
-
className: `dc:p-4 dc:rounded-lg dc:border ${
|
|
1130
|
+
className: `dc:p-4 dc:rounded-lg dc:border ${$e[e]}`,
|
|
1204
1131
|
children: [/* @__PURE__ */ W("div", {
|
|
1205
1132
|
className: "dc:flex dc:items-center dc:gap-2 dc:mb-1",
|
|
1206
1133
|
children: /* @__PURE__ */ G("span", {
|
|
@@ -1214,15 +1141,15 @@ function tt({ assessment: e, reason: t }) {
|
|
|
1214
1141
|
})
|
|
1215
1142
|
}), /* @__PURE__ */ W("p", {
|
|
1216
1143
|
className: "dc:text-sm",
|
|
1217
|
-
children:
|
|
1144
|
+
children: Qe(t)
|
|
1218
1145
|
})]
|
|
1219
1146
|
});
|
|
1220
1147
|
}
|
|
1221
|
-
function
|
|
1148
|
+
function rt({ issue: e }) {
|
|
1222
1149
|
return /* @__PURE__ */ G("div", {
|
|
1223
1150
|
className: "dc:flex dc:items-start dc:gap-2 dc:py-2",
|
|
1224
1151
|
children: [/* @__PURE__ */ G("span", {
|
|
1225
|
-
className: `dc:text-sm ${
|
|
1152
|
+
className: `dc:text-sm ${tt[e.severity]}`,
|
|
1226
1153
|
children: [
|
|
1227
1154
|
e.severity === "high" && "●",
|
|
1228
1155
|
e.severity === "medium" && "○",
|
|
@@ -1230,13 +1157,13 @@ function nt({ issue: e }) {
|
|
|
1230
1157
|
]
|
|
1231
1158
|
}), /* @__PURE__ */ W("span", {
|
|
1232
1159
|
className: "dc:text-sm text-dc-text-secondary",
|
|
1233
|
-
children:
|
|
1160
|
+
children: Qe(e.description)
|
|
1234
1161
|
})]
|
|
1235
1162
|
});
|
|
1236
1163
|
}
|
|
1237
|
-
function
|
|
1238
|
-
let { t } = T(), [n, r] =
|
|
1239
|
-
return
|
|
1164
|
+
function it({ text: e }) {
|
|
1165
|
+
let { t } = T(), [n, r] = L.useState(!1), i = L.useRef(null);
|
|
1166
|
+
return L.useEffect(() => () => {
|
|
1240
1167
|
i.current && clearTimeout(i.current);
|
|
1241
1168
|
}, []), /* @__PURE__ */ W("button", {
|
|
1242
1169
|
onClick: async () => {
|
|
@@ -1251,7 +1178,7 @@ function rt({ text: e }) {
|
|
|
1251
1178
|
children: t(n ? "explainAI.copied" : "explainAI.copy")
|
|
1252
1179
|
});
|
|
1253
1180
|
}
|
|
1254
|
-
function
|
|
1181
|
+
function at({ rec: e }) {
|
|
1255
1182
|
let { t } = T(), n = {
|
|
1256
1183
|
index: t("explainAI.type.index"),
|
|
1257
1184
|
table: t("explainAI.type.table"),
|
|
@@ -1264,23 +1191,23 @@ function it({ rec: e }) {
|
|
|
1264
1191
|
/* @__PURE__ */ G("div", {
|
|
1265
1192
|
className: "dc:flex dc:items-center dc:gap-2 dc:mb-2",
|
|
1266
1193
|
children: [/* @__PURE__ */ W("span", {
|
|
1267
|
-
className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-medium dc:rounded ${
|
|
1194
|
+
className: `dc:px-2 dc:py-0.5 dc:text-xs dc:font-medium dc:rounded ${et[e.severity]}`,
|
|
1268
1195
|
children: n[e.type]
|
|
1269
1196
|
}), /* @__PURE__ */ W("h5", {
|
|
1270
1197
|
className: "dc:font-medium text-dc-text",
|
|
1271
|
-
children:
|
|
1198
|
+
children: Qe(e.title)
|
|
1272
1199
|
})]
|
|
1273
1200
|
}),
|
|
1274
1201
|
/* @__PURE__ */ W("p", {
|
|
1275
1202
|
className: "dc:text-sm text-dc-text-secondary dc:mb-3",
|
|
1276
|
-
children:
|
|
1203
|
+
children: Qe(e.description)
|
|
1277
1204
|
}),
|
|
1278
1205
|
e.sql && /* @__PURE__ */ W("div", {
|
|
1279
1206
|
className: "dc:mt-2",
|
|
1280
1207
|
children: /* @__PURE__ */ W(re, {
|
|
1281
1208
|
code: e.sql,
|
|
1282
1209
|
language: "sql",
|
|
1283
|
-
headerRight: /* @__PURE__ */ W(
|
|
1210
|
+
headerRight: /* @__PURE__ */ W(it, { text: e.sql })
|
|
1284
1211
|
})
|
|
1285
1212
|
}),
|
|
1286
1213
|
e.cubeCode && /* @__PURE__ */ G("div", {
|
|
@@ -1295,7 +1222,7 @@ function it({ rec: e }) {
|
|
|
1295
1222
|
children: e.cubeCode
|
|
1296
1223
|
}), /* @__PURE__ */ W("div", {
|
|
1297
1224
|
className: "dc:absolute dc:top-1 dc:right-1",
|
|
1298
|
-
children: /* @__PURE__ */ W(
|
|
1225
|
+
children: /* @__PURE__ */ W(it, { text: e.cubeCode })
|
|
1299
1226
|
})]
|
|
1300
1227
|
})]
|
|
1301
1228
|
}),
|
|
@@ -1304,20 +1231,20 @@ function it({ rec: e }) {
|
|
|
1304
1231
|
children: [
|
|
1305
1232
|
/* @__PURE__ */ W("strong", { children: t("explainAI.expectedImpact") }),
|
|
1306
1233
|
" ",
|
|
1307
|
-
|
|
1234
|
+
Qe(e.estimatedImpact)
|
|
1308
1235
|
]
|
|
1309
1236
|
})
|
|
1310
1237
|
]
|
|
1311
1238
|
});
|
|
1312
1239
|
}
|
|
1313
|
-
function
|
|
1240
|
+
function ot({ analysis: e, onClose: t, onClear: n }) {
|
|
1314
1241
|
let { t: r } = T(), i = t || n;
|
|
1315
|
-
return
|
|
1242
|
+
return L.useEffect(() => {
|
|
1316
1243
|
let e = (e) => {
|
|
1317
1244
|
e.key === "Escape" && i && i();
|
|
1318
1245
|
};
|
|
1319
1246
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
1320
|
-
}, [i]),
|
|
1247
|
+
}, [i]), L.useEffect(() => (document.body.style.overflow = "hidden", () => {
|
|
1321
1248
|
document.body.style.overflow = "";
|
|
1322
1249
|
}), []), /* @__PURE__ */ G("div", {
|
|
1323
1250
|
className: "dc:fixed dc:inset-0 dc:z-50 dc:flex dc:items-center dc:justify-center dc:p-4 bg-black/50",
|
|
@@ -1360,7 +1287,7 @@ function at({ analysis: e, onClose: t, onClear: n }) {
|
|
|
1360
1287
|
/* @__PURE__ */ G("div", {
|
|
1361
1288
|
className: "dc:flex-1 dc:overflow-y-auto dc:px-6 dc:py-4 dc:space-y-6",
|
|
1362
1289
|
children: [
|
|
1363
|
-
/* @__PURE__ */ W(
|
|
1290
|
+
/* @__PURE__ */ W(nt, {
|
|
1364
1291
|
assessment: e.assessment,
|
|
1365
1292
|
reason: e.assessmentReason
|
|
1366
1293
|
}),
|
|
@@ -1369,28 +1296,28 @@ function at({ analysis: e, onClose: t, onClear: n }) {
|
|
|
1369
1296
|
children: r("explainAI.summary")
|
|
1370
1297
|
}), /* @__PURE__ */ W("p", {
|
|
1371
1298
|
className: "text-dc-text",
|
|
1372
|
-
children:
|
|
1299
|
+
children: Qe(e.summary)
|
|
1373
1300
|
})] }),
|
|
1374
1301
|
e.queryUnderstanding && /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("h4", {
|
|
1375
1302
|
className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-2",
|
|
1376
1303
|
children: r("explainAI.queryAnalysis")
|
|
1377
1304
|
}), /* @__PURE__ */ W("p", {
|
|
1378
1305
|
className: "text-dc-text-secondary",
|
|
1379
|
-
children:
|
|
1306
|
+
children: Qe(e.queryUnderstanding)
|
|
1380
1307
|
})] }),
|
|
1381
1308
|
e.issues && e.issues.length > 0 && /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("h4", {
|
|
1382
1309
|
className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-2",
|
|
1383
1310
|
children: r("explainAI.issuesFound", { count: e.issues.length })
|
|
1384
1311
|
}), /* @__PURE__ */ W("div", {
|
|
1385
1312
|
className: "dc:space-y-1 bg-dc-surface-secondary dc:rounded-lg dc:p-3",
|
|
1386
|
-
children: e.issues.map((e, t) => /* @__PURE__ */ W(
|
|
1313
|
+
children: e.issues.map((e, t) => /* @__PURE__ */ W(rt, { issue: e }, t))
|
|
1387
1314
|
})] }),
|
|
1388
1315
|
e.recommendations && e.recommendations.length > 0 && /* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("h4", {
|
|
1389
1316
|
className: "dc:text-sm dc:font-semibold text-dc-text-muted dc:uppercase dc:mb-3",
|
|
1390
1317
|
children: r("explainAI.recommendations", { count: e.recommendations.length })
|
|
1391
1318
|
}), /* @__PURE__ */ W("div", {
|
|
1392
1319
|
className: "dc:space-y-4",
|
|
1393
|
-
children: e.recommendations.map((e, t) => /* @__PURE__ */ W(
|
|
1320
|
+
children: e.recommendations.map((e, t) => /* @__PURE__ */ W(at, { rec: e }, t))
|
|
1394
1321
|
})] }),
|
|
1395
1322
|
(!e.recommendations || e.recommendations.length === 0) && /* @__PURE__ */ W("div", {
|
|
1396
1323
|
className: "text-dc-text-muted dc:italic dc:p-4 bg-dc-surface-secondary dc:rounded-lg",
|
|
@@ -1420,8 +1347,8 @@ function at({ analysis: e, onClose: t, onClear: n }) {
|
|
|
1420
1347
|
}
|
|
1421
1348
|
//#endregion
|
|
1422
1349
|
//#region src/client/components/AnalysisBuilder/ExecutionPlanPanel.tsx
|
|
1423
|
-
var
|
|
1424
|
-
let { t: v } = T(), [y, b] =
|
|
1350
|
+
var st = R(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" }) {
|
|
1351
|
+
let { t: v } = T(), [y, b] = U(!1), [x, S] = U(!1), C = e ? e.sql + (e.params && e.params.length > 0 ? "\n\n-- Parameters:\n" + JSON.stringify(e.params, null, 2) : "") : "", ee = () => {
|
|
1425
1352
|
f && i && h && (f(i, h), S(!0));
|
|
1426
1353
|
}, w = () => {
|
|
1427
1354
|
S(!1);
|
|
@@ -1429,22 +1356,22 @@ var ot = L(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder: r
|
|
|
1429
1356
|
onClick: ee,
|
|
1430
1357
|
disabled: u,
|
|
1431
1358
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded bg-dc-accent text-white hover:bg-dc-accent-hover dc:disabled:opacity-50 dc:disabled:cursor-not-allowed dc:flex dc:items-center dc:gap-1",
|
|
1432
|
-
children: u ? /* @__PURE__ */ G(
|
|
1359
|
+
children: u ? /* @__PURE__ */ G(ue, { children: [/* @__PURE__ */ W("span", {
|
|
1433
1360
|
className: "dc:animate-spin",
|
|
1434
1361
|
children: "⟳"
|
|
1435
|
-
}), v("debug.aiAnalyzing")] }) : /* @__PURE__ */ W(
|
|
1362
|
+
}), v("debug.aiAnalyzing")] }) : /* @__PURE__ */ W(ue, { children: `✨ ${v("debug.aiAnalysis")}` })
|
|
1436
1363
|
}) : null;
|
|
1437
1364
|
return /* @__PURE__ */ G("div", {
|
|
1438
1365
|
className: "dc:space-y-3",
|
|
1439
1366
|
children: [
|
|
1440
|
-
t ? /* @__PURE__ */ G(
|
|
1367
|
+
t ? /* @__PURE__ */ G(ue, { children: [/* @__PURE__ */ W("h4", {
|
|
1441
1368
|
className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2",
|
|
1442
1369
|
children: g
|
|
1443
1370
|
}), /* @__PURE__ */ W("div", {
|
|
1444
1371
|
className: "bg-dc-surface-secondary dc:border border-dc-border dc:rounded dc:p-3 text-dc-text-muted dc:text-sm dc:animate-pulse",
|
|
1445
1372
|
style: { height: _ },
|
|
1446
1373
|
children: v("results.debug.loadingSql")
|
|
1447
|
-
})] }) : n ? /* @__PURE__ */ G(
|
|
1374
|
+
})] }) : n ? /* @__PURE__ */ G(ue, { children: [/* @__PURE__ */ W("h4", {
|
|
1448
1375
|
className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2",
|
|
1449
1376
|
children: g
|
|
1450
1377
|
}), /* @__PURE__ */ W("div", {
|
|
@@ -1456,7 +1383,7 @@ var ot = L(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder: r
|
|
|
1456
1383
|
language: "sql",
|
|
1457
1384
|
title: g,
|
|
1458
1385
|
height: _,
|
|
1459
|
-
headerRight: /* @__PURE__ */ G(
|
|
1386
|
+
headerRight: /* @__PURE__ */ G(ue, { children: [/* @__PURE__ */ G("label", {
|
|
1460
1387
|
className: "dc:flex dc:items-center dc:gap-1 dc:text-xs text-dc-text-secondary dc:cursor-pointer",
|
|
1461
1388
|
children: [/* @__PURE__ */ W("input", {
|
|
1462
1389
|
type: "checkbox",
|
|
@@ -1470,7 +1397,7 @@ var ot = L(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder: r
|
|
|
1470
1397
|
className: "dc:px-2 dc:py-1 dc:text-xs dc:font-medium dc:rounded 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",
|
|
1471
1398
|
children: v(a ? "debug.explainRunning" : "debug.explainPlan")
|
|
1472
1399
|
})] })
|
|
1473
|
-
}) : /* @__PURE__ */ G(
|
|
1400
|
+
}) : /* @__PURE__ */ G(ue, { children: [/* @__PURE__ */ W("h4", {
|
|
1474
1401
|
className: "dc:text-sm dc:font-semibold text-dc-text dc:mb-2",
|
|
1475
1402
|
children: g
|
|
1476
1403
|
}), /* @__PURE__ */ W("div", {
|
|
@@ -1545,7 +1472,7 @@ var ot = L(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder: r
|
|
|
1545
1472
|
d.message
|
|
1546
1473
|
]
|
|
1547
1474
|
}),
|
|
1548
|
-
x && l && /* @__PURE__ */ W(
|
|
1475
|
+
x && l && /* @__PURE__ */ W(ot, {
|
|
1549
1476
|
analysis: l,
|
|
1550
1477
|
onClose: w
|
|
1551
1478
|
})
|
|
@@ -1554,7 +1481,7 @@ var ot = L(function({ sql: e, sqlLoading: t = !1, sqlError: n, sqlPlaceholder: r
|
|
|
1554
1481
|
});
|
|
1555
1482
|
//#endregion
|
|
1556
1483
|
//#region src/client/adapters/queryModeAdapter.ts
|
|
1557
|
-
function
|
|
1484
|
+
function ct() {
|
|
1558
1485
|
return {
|
|
1559
1486
|
metrics: [],
|
|
1560
1487
|
breakdowns: [],
|
|
@@ -1565,10 +1492,10 @@ function st() {
|
|
|
1565
1492
|
validationError: null
|
|
1566
1493
|
};
|
|
1567
1494
|
}
|
|
1568
|
-
function
|
|
1495
|
+
function lt(e) {
|
|
1569
1496
|
return e.map((e) => e.field);
|
|
1570
1497
|
}
|
|
1571
|
-
function
|
|
1498
|
+
function ut(e, t) {
|
|
1572
1499
|
let n = [], r = [];
|
|
1573
1500
|
for (let i of e) if (i.isTimeDimension) {
|
|
1574
1501
|
let e = {
|
|
@@ -1586,21 +1513,21 @@ function lt(e, t) {
|
|
|
1586
1513
|
timeDimensions: r
|
|
1587
1514
|
};
|
|
1588
1515
|
}
|
|
1589
|
-
function
|
|
1590
|
-
let { dimensions: t, timeDimensions: n } =
|
|
1591
|
-
measures:
|
|
1516
|
+
function dt(e) {
|
|
1517
|
+
let { dimensions: t, timeDimensions: n } = ut(e.breakdowns, e.filters), r = {
|
|
1518
|
+
measures: lt(e.metrics),
|
|
1592
1519
|
dimensions: t
|
|
1593
1520
|
};
|
|
1594
1521
|
return n.length > 0 && (r.timeDimensions = n), e.filters.length > 0 && (r.filters = e.filters), e.order && Object.keys(e.order).length > 0 && (r.order = e.order), e.limit != null && (r.limit = e.limit), r;
|
|
1595
1522
|
}
|
|
1596
|
-
function
|
|
1523
|
+
function ft(e) {
|
|
1597
1524
|
return e.map((e, t) => ({
|
|
1598
1525
|
id: M(),
|
|
1599
1526
|
field: e,
|
|
1600
1527
|
label: N(t)
|
|
1601
1528
|
}));
|
|
1602
1529
|
}
|
|
1603
|
-
function
|
|
1530
|
+
function pt(e) {
|
|
1604
1531
|
let t = [];
|
|
1605
1532
|
if (e.dimensions) for (let n of e.dimensions) t.push({
|
|
1606
1533
|
id: M(),
|
|
@@ -1619,10 +1546,10 @@ function ft(e) {
|
|
|
1619
1546
|
}
|
|
1620
1547
|
return t;
|
|
1621
1548
|
}
|
|
1622
|
-
function
|
|
1549
|
+
function mt(e) {
|
|
1623
1550
|
return {
|
|
1624
|
-
metrics:
|
|
1625
|
-
breakdowns:
|
|
1551
|
+
metrics: ft(e.measures || []),
|
|
1552
|
+
breakdowns: pt(e),
|
|
1626
1553
|
filters: e.filters || [],
|
|
1627
1554
|
order: e.order,
|
|
1628
1555
|
limit: e.limit,
|
|
@@ -1630,14 +1557,14 @@ function pt(e) {
|
|
|
1630
1557
|
validationError: null
|
|
1631
1558
|
};
|
|
1632
1559
|
}
|
|
1633
|
-
function
|
|
1560
|
+
function ht(e) {
|
|
1634
1561
|
return typeof e == "object" && !!e && "queries" in e && Array.isArray(e.queries);
|
|
1635
1562
|
}
|
|
1636
1563
|
var X = {
|
|
1637
1564
|
type: "query",
|
|
1638
1565
|
createInitial() {
|
|
1639
1566
|
return {
|
|
1640
|
-
queryStates: [
|
|
1567
|
+
queryStates: [ct()],
|
|
1641
1568
|
activeQueryIndex: 0,
|
|
1642
1569
|
mergeStrategy: "concat"
|
|
1643
1570
|
};
|
|
@@ -1657,22 +1584,22 @@ var X = {
|
|
|
1657
1584
|
load(e) {
|
|
1658
1585
|
if (e.analysisType !== "query") throw Error(`Cannot load ${e.analysisType} config with query adapter`);
|
|
1659
1586
|
let t = e;
|
|
1660
|
-
if (
|
|
1661
|
-
let e = t.query, n = e.queries.map(
|
|
1662
|
-
return n.length === 0 && n.push(
|
|
1587
|
+
if (ht(t.query)) {
|
|
1588
|
+
let e = t.query, n = e.queries.map(mt);
|
|
1589
|
+
return n.length === 0 && n.push(ct()), {
|
|
1663
1590
|
queryStates: n,
|
|
1664
1591
|
activeQueryIndex: 0,
|
|
1665
1592
|
mergeStrategy: e.mergeStrategy || "concat"
|
|
1666
1593
|
};
|
|
1667
1594
|
}
|
|
1668
1595
|
return {
|
|
1669
|
-
queryStates: [
|
|
1596
|
+
queryStates: [mt(t.query)],
|
|
1670
1597
|
activeQueryIndex: 0,
|
|
1671
1598
|
mergeStrategy: "concat"
|
|
1672
1599
|
};
|
|
1673
1600
|
},
|
|
1674
1601
|
save(e, t, n) {
|
|
1675
|
-
let r = e.queryStates.map(
|
|
1602
|
+
let r = e.queryStates.map(dt), i = r.length === 1 && e.mergeStrategy === "concat" ? r[0] : {
|
|
1676
1603
|
queries: r,
|
|
1677
1604
|
mergeStrategy: e.mergeStrategy
|
|
1678
1605
|
};
|
|
@@ -1686,10 +1613,7 @@ var X = {
|
|
|
1686
1613
|
},
|
|
1687
1614
|
validate(e) {
|
|
1688
1615
|
let t = [], n = [];
|
|
1689
|
-
if (e.queryStates.
|
|
1690
|
-
let i = e.queryStates.length > 1 ? `Query ${r + 1}: ` : "";
|
|
1691
|
-
t.metrics.length === 0 && t.breakdowns.length === 0 && n.push(`${i}Query is empty`);
|
|
1692
|
-
}), e.queryStates.length > 1 && e.mergeStrategy === "merge") {
|
|
1616
|
+
if (e.queryStates.length > 1 && e.mergeStrategy === "merge") {
|
|
1693
1617
|
let t = e.queryStates[0].breakdowns.map((e) => e.field);
|
|
1694
1618
|
e.queryStates.every((e) => {
|
|
1695
1619
|
let n = e.breakdowns.map((e) => e.field);
|
|
@@ -1716,35 +1640,35 @@ var X = {
|
|
|
1716
1640
|
}
|
|
1717
1641
|
};
|
|
1718
1642
|
}
|
|
1719
|
-
}, Z = /* @__PURE__ */ new Map(),
|
|
1720
|
-
function
|
|
1721
|
-
|
|
1643
|
+
}, Z = /* @__PURE__ */ new Map(), gt = !1;
|
|
1644
|
+
function _t() {
|
|
1645
|
+
gt ||= (Z.has("query") || Z.set("query", X), Z.has("funnel") || Z.set("funnel", F), Z.has("flow") || Z.set("flow", P), Z.has("retention") || Z.set("retention", A), !0);
|
|
1722
1646
|
}
|
|
1723
1647
|
var Q = {
|
|
1724
1648
|
register(e) {
|
|
1725
1649
|
Z.has(e.type) && console.warn(`[adapterRegistry] Overwriting existing adapter for type: ${e.type}`), Z.set(e.type, e);
|
|
1726
1650
|
},
|
|
1727
1651
|
get(e) {
|
|
1728
|
-
|
|
1652
|
+
_t();
|
|
1729
1653
|
let t = Z.get(e);
|
|
1730
1654
|
if (!t) throw Error(`[adapterRegistry] No adapter registered for type: ${e}. Available types: ${Array.from(Z.keys()).join(", ") || "none"}`);
|
|
1731
1655
|
return t;
|
|
1732
1656
|
},
|
|
1733
1657
|
has(e) {
|
|
1734
|
-
return
|
|
1658
|
+
return _t(), Z.has(e);
|
|
1735
1659
|
},
|
|
1736
1660
|
getRegisteredTypes() {
|
|
1737
|
-
return
|
|
1661
|
+
return _t(), Array.from(Z.keys());
|
|
1738
1662
|
},
|
|
1739
1663
|
clear() {
|
|
1740
|
-
Z.clear(),
|
|
1664
|
+
Z.clear(), gt = !1;
|
|
1741
1665
|
}
|
|
1742
|
-
},
|
|
1666
|
+
}, vt = () => ({
|
|
1743
1667
|
analysisType: "query",
|
|
1744
1668
|
charts: {
|
|
1745
1669
|
query: X.getDefaultChartConfig(),
|
|
1746
|
-
funnel:
|
|
1747
|
-
flow:
|
|
1670
|
+
funnel: F.getDefaultChartConfig(),
|
|
1671
|
+
flow: P.getDefaultChartConfig(),
|
|
1748
1672
|
retention: A.getDefaultChartConfig()
|
|
1749
1673
|
},
|
|
1750
1674
|
activeViews: {
|
|
@@ -1755,8 +1679,8 @@ var Q = {
|
|
|
1755
1679
|
},
|
|
1756
1680
|
userManuallySelectedChart: !1,
|
|
1757
1681
|
localPaletteName: "default"
|
|
1758
|
-
}),
|
|
1759
|
-
...
|
|
1682
|
+
}), yt = (e, t, n) => ({
|
|
1683
|
+
...vt(),
|
|
1760
1684
|
setAnalysisType: (t) => {
|
|
1761
1685
|
e((e) => {
|
|
1762
1686
|
let n = { ...e.charts };
|
|
@@ -1969,12 +1893,12 @@ var Q = {
|
|
|
1969
1893
|
...u
|
|
1970
1894
|
});
|
|
1971
1895
|
}
|
|
1972
|
-
}),
|
|
1896
|
+
}), bt = () => ({
|
|
1973
1897
|
queryStates: [K()],
|
|
1974
1898
|
activeQueryIndex: 0,
|
|
1975
1899
|
mergeStrategy: "concat"
|
|
1976
|
-
}),
|
|
1977
|
-
...
|
|
1900
|
+
}), xt = (e, t, n) => ({
|
|
1901
|
+
...bt(),
|
|
1978
1902
|
setQueryStates: (t) => e({ queryStates: t }),
|
|
1979
1903
|
updateQueryState: (t, n) => e((e) => {
|
|
1980
1904
|
let r = [...e.queryStates];
|
|
@@ -2232,15 +2156,15 @@ var Q = {
|
|
|
2232
2156
|
queryLabels: n.map((e, t) => `Q${t + 1}`)
|
|
2233
2157
|
};
|
|
2234
2158
|
}
|
|
2235
|
-
}),
|
|
2159
|
+
}), St = () => ({
|
|
2236
2160
|
funnelCube: null,
|
|
2237
2161
|
funnelSteps: [],
|
|
2238
2162
|
activeFunnelStepIndex: 0,
|
|
2239
2163
|
funnelTimeDimension: null,
|
|
2240
2164
|
funnelBindingKey: null,
|
|
2241
2165
|
stepTimeToConvert: []
|
|
2242
|
-
}),
|
|
2243
|
-
...
|
|
2166
|
+
}), Ct = (e, t, n) => ({
|
|
2167
|
+
...St(),
|
|
2244
2168
|
addFunnelStep: () => e((e) => {
|
|
2245
2169
|
let t = e.funnelSteps[e.funnelSteps.length - 1], n = {
|
|
2246
2170
|
id: M(),
|
|
@@ -2308,7 +2232,7 @@ var Q = {
|
|
|
2308
2232
|
let e = t();
|
|
2309
2233
|
return e.analysisType !== "funnel" || !e.funnelBindingKey || !e.funnelTimeDimension || e.funnelSteps.length < 2 ? !1 : e.funnelSteps.filter((e) => e.cube && e.name).length >= 2;
|
|
2310
2234
|
}
|
|
2311
|
-
}),
|
|
2235
|
+
}), wt = () => ({
|
|
2312
2236
|
flowCube: null,
|
|
2313
2237
|
flowBindingKey: null,
|
|
2314
2238
|
flowTimeDimension: null,
|
|
@@ -2320,8 +2244,8 @@ var Q = {
|
|
|
2320
2244
|
stepsAfter: 3,
|
|
2321
2245
|
eventDimension: null,
|
|
2322
2246
|
joinStrategy: "auto"
|
|
2323
|
-
}),
|
|
2324
|
-
...
|
|
2247
|
+
}), Tt = (e, t, n) => ({
|
|
2248
|
+
...wt(),
|
|
2325
2249
|
setFlowCube: (t) => e(() => ({
|
|
2326
2250
|
flowCube: t,
|
|
2327
2251
|
flowBindingKey: null,
|
|
@@ -2391,8 +2315,8 @@ var Q = {
|
|
|
2391
2315
|
joinStrategy: e.joinStrategy
|
|
2392
2316
|
} };
|
|
2393
2317
|
}
|
|
2394
|
-
}),
|
|
2395
|
-
...
|
|
2318
|
+
}), Et = () => ({ ...E }), Dt = (e, t, n) => ({
|
|
2319
|
+
...Et(),
|
|
2396
2320
|
setRetentionCube: (t) => e(() => ({
|
|
2397
2321
|
retentionCube: t,
|
|
2398
2322
|
retentionTimeDimension: null,
|
|
@@ -2467,22 +2391,22 @@ var Q = {
|
|
|
2467
2391
|
warnings: r
|
|
2468
2392
|
};
|
|
2469
2393
|
}
|
|
2470
|
-
}),
|
|
2394
|
+
}), Ot = {
|
|
2471
2395
|
isOpen: !1,
|
|
2472
2396
|
userPrompt: "",
|
|
2473
2397
|
isGenerating: !1,
|
|
2474
2398
|
error: null,
|
|
2475
2399
|
hasGeneratedQuery: !1,
|
|
2476
2400
|
previousState: null
|
|
2477
|
-
},
|
|
2401
|
+
}, kt = () => ({
|
|
2478
2402
|
activeTab: "query",
|
|
2479
2403
|
activeView: "chart",
|
|
2480
2404
|
displayLimit: 100,
|
|
2481
2405
|
showFieldModal: !1,
|
|
2482
2406
|
fieldModalMode: "metrics",
|
|
2483
|
-
aiState:
|
|
2484
|
-
}),
|
|
2485
|
-
...
|
|
2407
|
+
aiState: Ot
|
|
2408
|
+
}), At = (e, t, n) => ({
|
|
2409
|
+
...kt(),
|
|
2486
2410
|
setActiveTab: (t) => e({ activeTab: t }),
|
|
2487
2411
|
setActiveView: (t) => e((e) => ({
|
|
2488
2412
|
activeView: t,
|
|
@@ -2566,13 +2490,13 @@ var Q = {
|
|
|
2566
2490
|
displayConfig: t.displayConfig
|
|
2567
2491
|
}
|
|
2568
2492
|
},
|
|
2569
|
-
aiState: { ...
|
|
2493
|
+
aiState: { ...Ot }
|
|
2570
2494
|
};
|
|
2571
2495
|
})
|
|
2572
2496
|
});
|
|
2573
2497
|
//#endregion
|
|
2574
2498
|
//#region src/client/stores/analysisBuilderStore.tsx
|
|
2575
|
-
function
|
|
2499
|
+
function jt(e) {
|
|
2576
2500
|
let t = e.filters ? [...e.filters] : [], n = e.timeDimensions || [], r = [...(e.dimensions || []).map((e) => ({
|
|
2577
2501
|
id: M(),
|
|
2578
2502
|
field: e,
|
|
@@ -2615,13 +2539,13 @@ function At(e) {
|
|
|
2615
2539
|
order: e.order
|
|
2616
2540
|
};
|
|
2617
2541
|
}
|
|
2618
|
-
function
|
|
2542
|
+
function Mt(e) {
|
|
2619
2543
|
return "queries" in e && Array.isArray(e.queries);
|
|
2620
2544
|
}
|
|
2621
|
-
function
|
|
2545
|
+
function Nt(e) {
|
|
2622
2546
|
if (e.initialAnalysisType === "funnel" && e.initialFunnelState) {
|
|
2623
|
-
let t =
|
|
2624
|
-
return
|
|
2547
|
+
let t = F.getDefaultChartConfig();
|
|
2548
|
+
return F.save({
|
|
2625
2549
|
funnelCube: e.initialFunnelState.funnelCube ?? null,
|
|
2626
2550
|
funnelSteps: e.initialFunnelState.funnelSteps || [],
|
|
2627
2551
|
activeFunnelStepIndex: 0,
|
|
@@ -2634,8 +2558,8 @@ function Mt(e) {
|
|
|
2634
2558
|
} }, e.initialActiveView || "chart");
|
|
2635
2559
|
}
|
|
2636
2560
|
if (e.initialAnalysisType === "flow" && e.initialFlowState) {
|
|
2637
|
-
let t =
|
|
2638
|
-
return
|
|
2561
|
+
let t = P.getDefaultChartConfig();
|
|
2562
|
+
return P.save({
|
|
2639
2563
|
flowCube: e.initialFlowState.flowCube ?? null,
|
|
2640
2564
|
flowBindingKey: e.initialFlowState.flowBindingKey ?? null,
|
|
2641
2565
|
flowTimeDimension: e.initialFlowState.flowTimeDimension ?? null,
|
|
@@ -2674,7 +2598,7 @@ function Mt(e) {
|
|
|
2674
2598
|
}
|
|
2675
2599
|
if (e.initialQuery) {
|
|
2676
2600
|
let t = e.initialQuery, n, r = "concat";
|
|
2677
|
-
|
|
2601
|
+
Mt(t) ? (n = t.queries.map(jt), t.mergeStrategy && (r = t.mergeStrategy)) : n = [jt(t)];
|
|
2678
2602
|
let i = X.getDefaultChartConfig();
|
|
2679
2603
|
return X.save({
|
|
2680
2604
|
queryStates: n,
|
|
@@ -2704,19 +2628,19 @@ function Mt(e) {
|
|
|
2704
2628
|
mergeStrategy: "concat"
|
|
2705
2629
|
}, { query: X.getDefaultChartConfig() }, e.initialActiveView) : null;
|
|
2706
2630
|
}
|
|
2707
|
-
function
|
|
2631
|
+
function Pt(e, t) {
|
|
2708
2632
|
return {
|
|
2709
2633
|
reset: () => {
|
|
2710
2634
|
e({
|
|
2711
|
-
...
|
|
2712
|
-
...
|
|
2713
|
-
...
|
|
2714
|
-
...
|
|
2715
|
-
...
|
|
2635
|
+
...vt(),
|
|
2636
|
+
...bt(),
|
|
2637
|
+
...St(),
|
|
2638
|
+
...wt(),
|
|
2639
|
+
...Et(),
|
|
2716
2640
|
charts: {
|
|
2717
2641
|
query: X.getDefaultChartConfig(),
|
|
2718
|
-
funnel:
|
|
2719
|
-
flow:
|
|
2642
|
+
funnel: F.getDefaultChartConfig(),
|
|
2643
|
+
flow: P.getDefaultChartConfig(),
|
|
2720
2644
|
retention: A.getDefaultChartConfig()
|
|
2721
2645
|
},
|
|
2722
2646
|
activeViews: {
|
|
@@ -2730,28 +2654,28 @@ function Nt(e, t) {
|
|
|
2730
2654
|
clearCurrentMode: () => e((e) => {
|
|
2731
2655
|
switch (e.analysisType) {
|
|
2732
2656
|
case "funnel": return {
|
|
2733
|
-
...
|
|
2657
|
+
...St(),
|
|
2734
2658
|
charts: {
|
|
2735
2659
|
...e.charts,
|
|
2736
|
-
funnel:
|
|
2660
|
+
funnel: F.getDefaultChartConfig()
|
|
2737
2661
|
}
|
|
2738
2662
|
};
|
|
2739
2663
|
case "flow": return {
|
|
2740
|
-
...
|
|
2664
|
+
...wt(),
|
|
2741
2665
|
charts: {
|
|
2742
2666
|
...e.charts,
|
|
2743
|
-
flow:
|
|
2667
|
+
flow: P.getDefaultChartConfig()
|
|
2744
2668
|
}
|
|
2745
2669
|
};
|
|
2746
2670
|
case "retention": return {
|
|
2747
|
-
...
|
|
2671
|
+
...Et(),
|
|
2748
2672
|
charts: {
|
|
2749
2673
|
...e.charts,
|
|
2750
2674
|
retention: A.getDefaultChartConfig()
|
|
2751
2675
|
}
|
|
2752
2676
|
};
|
|
2753
2677
|
default: return {
|
|
2754
|
-
...
|
|
2678
|
+
...bt(),
|
|
2755
2679
|
userManuallySelectedChart: !1,
|
|
2756
2680
|
charts: {
|
|
2757
2681
|
...e.charts,
|
|
@@ -2777,15 +2701,15 @@ function Nt(e, t) {
|
|
|
2777
2701
|
}
|
|
2778
2702
|
};
|
|
2779
2703
|
}
|
|
2780
|
-
function
|
|
2781
|
-
let r =
|
|
2782
|
-
...
|
|
2783
|
-
...
|
|
2784
|
-
...
|
|
2785
|
-
...
|
|
2786
|
-
...
|
|
2787
|
-
...
|
|
2788
|
-
...
|
|
2704
|
+
function Ft(n = {}) {
|
|
2705
|
+
let r = Nt(n), o = (e, t, n) => ({
|
|
2706
|
+
...yt(e, t, n),
|
|
2707
|
+
...xt(e, t, n),
|
|
2708
|
+
...Ct(e, t, n),
|
|
2709
|
+
...Tt(e, t, n),
|
|
2710
|
+
...Dt(e, t, n),
|
|
2711
|
+
...At(e, t, n),
|
|
2712
|
+
...Pt(e, t)
|
|
2789
2713
|
});
|
|
2790
2714
|
if (n.disableLocalStorage) {
|
|
2791
2715
|
let t = a()(i(e(o), { name: "AnalysisBuilderStore (no-persist)" }));
|
|
@@ -2820,10 +2744,10 @@ function Pt(n = {}) {
|
|
|
2820
2744
|
}
|
|
2821
2745
|
})), { name: "AnalysisBuilderStore" }));
|
|
2822
2746
|
}
|
|
2823
|
-
var
|
|
2824
|
-
function
|
|
2825
|
-
let u =
|
|
2826
|
-
return u.current ||=
|
|
2747
|
+
var It = ce(null);
|
|
2748
|
+
function Lt({ children: e, initialQuery: t, initialChartConfig: n, disableLocalStorage: r, storageKey: i, initialAnalysisType: a, initialFunnelState: o, initialFlowState: s, initialRetentionState: c, initialActiveView: l }) {
|
|
2749
|
+
let u = H(null);
|
|
2750
|
+
return u.current ||= Ft({
|
|
2827
2751
|
initialQuery: t,
|
|
2828
2752
|
initialChartConfig: n,
|
|
2829
2753
|
disableLocalStorage: r,
|
|
@@ -2833,22 +2757,22 @@ function It({ children: e, initialQuery: t, initialChartConfig: n, disableLocalS
|
|
|
2833
2757
|
initialFlowState: s,
|
|
2834
2758
|
initialRetentionState: c,
|
|
2835
2759
|
initialActiveView: l
|
|
2836
|
-
}), /* @__PURE__ */ W(
|
|
2760
|
+
}), /* @__PURE__ */ W(It.Provider, {
|
|
2837
2761
|
value: u.current,
|
|
2838
2762
|
children: e
|
|
2839
2763
|
});
|
|
2840
2764
|
}
|
|
2841
2765
|
function $(e) {
|
|
2842
|
-
let t =
|
|
2766
|
+
let t = le(It);
|
|
2843
2767
|
if (!t) throw Error("useAnalysisBuilderStore must be used within AnalysisBuilderStoreProvider");
|
|
2844
2768
|
return r(t, e);
|
|
2845
2769
|
}
|
|
2846
|
-
function
|
|
2847
|
-
let e =
|
|
2770
|
+
function Rt() {
|
|
2771
|
+
let e = le(It);
|
|
2848
2772
|
if (!e) throw Error("useAnalysisBuilderStoreApi must be used within AnalysisBuilderStoreProvider");
|
|
2849
2773
|
return e;
|
|
2850
2774
|
}
|
|
2851
|
-
var
|
|
2775
|
+
var zt = (e) => e.queryStates[e.activeQueryIndex] || K(), Bt = (e) => zt(e).metrics, Vt = (e) => zt(e).breakdowns, Ht = (e) => zt(e).filters, Ut = (e) => {
|
|
2852
2776
|
let t = e.charts[e.analysisType];
|
|
2853
2777
|
return t ? {
|
|
2854
2778
|
chartType: t.chartType,
|
|
@@ -2863,18 +2787,18 @@ var Rt = (e) => e.queryStates[e.activeQueryIndex] || K(), zt = (e) => Rt(e).metr
|
|
|
2863
2787
|
showTooltip: !0
|
|
2864
2788
|
}
|
|
2865
2789
|
};
|
|
2866
|
-
},
|
|
2790
|
+
}, Wt = (e) => ({
|
|
2867
2791
|
activeTab: e.activeTab,
|
|
2868
2792
|
activeView: e.activeView,
|
|
2869
2793
|
displayLimit: e.displayLimit,
|
|
2870
2794
|
showFieldModal: e.showFieldModal,
|
|
2871
2795
|
fieldModalMode: e.fieldModalMode
|
|
2872
|
-
}),
|
|
2796
|
+
}), Gt = (e) => ({
|
|
2873
2797
|
queryStates: e.queryStates,
|
|
2874
2798
|
activeQueryIndex: e.activeQueryIndex,
|
|
2875
2799
|
mergeStrategy: e.mergeStrategy,
|
|
2876
2800
|
isMultiQueryMode: e.analysisType === "query" && e.queryStates.length > 1
|
|
2877
|
-
}),
|
|
2801
|
+
}), Kt = (e) => ({
|
|
2878
2802
|
funnelCube: e.funnelCube,
|
|
2879
2803
|
funnelSteps: e.funnelSteps,
|
|
2880
2804
|
activeFunnelStepIndex: e.activeFunnelStepIndex,
|
|
@@ -2885,16 +2809,16 @@ var Rt = (e) => e.queryStates[e.activeQueryIndex] || K(), zt = (e) => Rt(e).metr
|
|
|
2885
2809
|
});
|
|
2886
2810
|
//#endregion
|
|
2887
2811
|
//#region src/client/utils/multiQueryValidation.ts
|
|
2888
|
-
function
|
|
2812
|
+
function qt(e) {
|
|
2889
2813
|
return e.timeDimensions || [];
|
|
2890
2814
|
}
|
|
2891
|
-
function
|
|
2815
|
+
function Jt(e) {
|
|
2892
2816
|
let t = [];
|
|
2893
2817
|
if (e.length < 2) return t;
|
|
2894
|
-
let n =
|
|
2818
|
+
let n = qt(e[0]);
|
|
2895
2819
|
if (n.length === 0) return t;
|
|
2896
2820
|
for (let r = 1; r < e.length; r++) {
|
|
2897
|
-
let i =
|
|
2821
|
+
let i = qt(e[r]);
|
|
2898
2822
|
if (i.length === 0 && n.length > 0) {
|
|
2899
2823
|
t.push({
|
|
2900
2824
|
type: "missing_time_dimension",
|
|
@@ -2920,7 +2844,7 @@ function qt(e) {
|
|
|
2920
2844
|
}
|
|
2921
2845
|
return t;
|
|
2922
2846
|
}
|
|
2923
|
-
function
|
|
2847
|
+
function Yt(e, t) {
|
|
2924
2848
|
let n = [];
|
|
2925
2849
|
if (e.length < 2 || t.length === 0) return n;
|
|
2926
2850
|
for (let r = 0; r < e.length; r++) {
|
|
@@ -2934,7 +2858,7 @@ function Jt(e, t) {
|
|
|
2934
2858
|
}
|
|
2935
2859
|
return n;
|
|
2936
2860
|
}
|
|
2937
|
-
function
|
|
2861
|
+
function Xt(e) {
|
|
2938
2862
|
let t = [];
|
|
2939
2863
|
if (e.length < 2) return t;
|
|
2940
2864
|
let n = /* @__PURE__ */ new Map();
|
|
@@ -2953,7 +2877,7 @@ function Yt(e) {
|
|
|
2953
2877
|
affectedMeasures: r
|
|
2954
2878
|
}), t;
|
|
2955
2879
|
}
|
|
2956
|
-
function
|
|
2880
|
+
function Zt(e) {
|
|
2957
2881
|
let t = [];
|
|
2958
2882
|
if (e.length < 2) return t;
|
|
2959
2883
|
let n = e.map((e) => e.timeDimensions?.[0]?.dateRange);
|
|
@@ -2963,37 +2887,37 @@ function Xt(e) {
|
|
|
2963
2887
|
message: "Queries have different date ranges - some data points may be missing in merged results"
|
|
2964
2888
|
}), t;
|
|
2965
2889
|
}
|
|
2966
|
-
function
|
|
2890
|
+
function Qt(e, t, n = []) {
|
|
2967
2891
|
let r = [], i = [];
|
|
2968
2892
|
return e.length < 2 ? {
|
|
2969
2893
|
isValid: !0,
|
|
2970
2894
|
errors: r,
|
|
2971
2895
|
warnings: i
|
|
2972
|
-
} : (i.push(...
|
|
2896
|
+
} : (i.push(...Xt(e)), i.push(...Zt(e)), t === "merge" && (r.push(...Jt(e)), n.length > 0 && r.push(...Yt(e, n))), {
|
|
2973
2897
|
isValid: r.length === 0,
|
|
2974
2898
|
errors: r,
|
|
2975
2899
|
warnings: i
|
|
2976
2900
|
});
|
|
2977
2901
|
}
|
|
2978
|
-
function
|
|
2902
|
+
function $t(e) {
|
|
2979
2903
|
return e.filter((e) => (e.measures?.length || 0) + (e.dimensions?.length || 0) + (e.timeDimensions?.length || 0) > 0).length >= 2;
|
|
2980
2904
|
}
|
|
2981
|
-
function
|
|
2905
|
+
function en(e) {
|
|
2982
2906
|
if (e.isValid && e.warnings.length === 0) return "Configuration is valid";
|
|
2983
2907
|
let t = [];
|
|
2984
2908
|
return e.errors.length > 0 && t.push(`${e.errors.length} error${e.errors.length > 1 ? "s" : ""}`), e.warnings.length > 0 && t.push(`${e.warnings.length} warning${e.warnings.length > 1 ? "s" : ""}`), t.join(", ");
|
|
2985
2909
|
}
|
|
2986
2910
|
//#endregion
|
|
2987
2911
|
//#region src/client/hooks/useAnalysisQueryBuilder.ts
|
|
2988
|
-
function
|
|
2989
|
-
let e = $((e) => e.queryStates), t = $((e) => e.activeQueryIndex), n = $((e) => e.mergeStrategy), r = $((e) => e.setActiveQueryIndex), i = $((e) => e.setMergeStrategy), a = $((e) => e.addQuery), o = $((e) => e.removeQuery), s = $((e) => e.getCurrentState), c = $((e) => e.getMergeKeys), l = $((e) => e.isMultiQueryMode), u = s(), d = l(), f = c(), p =
|
|
2912
|
+
function tn() {
|
|
2913
|
+
let e = $((e) => e.queryStates), t = $((e) => e.activeQueryIndex), n = $((e) => e.mergeStrategy), r = $((e) => e.setActiveQueryIndex), i = $((e) => e.setMergeStrategy), a = $((e) => e.addQuery), o = $((e) => e.removeQuery), s = $((e) => e.getCurrentState), c = $((e) => e.getMergeKeys), l = $((e) => e.isMultiQueryMode), u = s(), d = l(), f = c(), p = V(() => {
|
|
2990
2914
|
let n = e[t] || u;
|
|
2991
2915
|
return ve(n.metrics, n.breakdowns, n.filters, n.order, !1, n.limit);
|
|
2992
2916
|
}, [
|
|
2993
2917
|
e,
|
|
2994
2918
|
t,
|
|
2995
2919
|
u
|
|
2996
|
-
]), m =
|
|
2920
|
+
]), m = V(() => {
|
|
2997
2921
|
let t = e[0]?.breakdowns || [];
|
|
2998
2922
|
return e.map((e, r) => ve(e.metrics, n === "merge" && r > 0 ? t : e.breakdowns, e.filters, e.order, !1, e.limit));
|
|
2999
2923
|
}, [e, n]);
|
|
@@ -3006,7 +2930,7 @@ function en() {
|
|
|
3006
2930
|
mergeKeys: f,
|
|
3007
2931
|
currentQuery: p,
|
|
3008
2932
|
allQueries: m,
|
|
3009
|
-
multiQueryConfig:
|
|
2933
|
+
multiQueryConfig: V(() => {
|
|
3010
2934
|
if (e.length <= 1) return null;
|
|
3011
2935
|
let t = m.filter((e) => e.measures && e.measures.length > 0 || e.dimensions && e.dimensions.length > 0 || e.timeDimensions && e.timeDimensions.length > 0);
|
|
3012
2936
|
return t.length < 2 ? null : {
|
|
@@ -3021,13 +2945,13 @@ function en() {
|
|
|
3021
2945
|
n,
|
|
3022
2946
|
f
|
|
3023
2947
|
]),
|
|
3024
|
-
multiQueryValidation:
|
|
2948
|
+
multiQueryValidation: V(() => d ? Qt(m, n, f || []) : null, [
|
|
3025
2949
|
d,
|
|
3026
2950
|
m,
|
|
3027
2951
|
n,
|
|
3028
2952
|
f
|
|
3029
2953
|
]),
|
|
3030
|
-
isValidQuery:
|
|
2954
|
+
isValidQuery: V(() => p.measures && p.measures.length > 0 || p.dimensions && p.dimensions.length > 0 || p.timeDimensions && p.timeDimensions.length > 0, [p]),
|
|
3031
2955
|
setActiveQueryIndex: r,
|
|
3032
2956
|
setMergeStrategy: i,
|
|
3033
2957
|
addQuery: a,
|
|
@@ -3036,10 +2960,10 @@ function en() {
|
|
|
3036
2960
|
}
|
|
3037
2961
|
//#endregion
|
|
3038
2962
|
//#region src/client/hooks/useAnalysisCombinedFields.ts
|
|
3039
|
-
function
|
|
2963
|
+
function nn(e) {
|
|
3040
2964
|
let { queryState: t, queryStates: n, isMultiQueryMode: r, mergeStrategy: i, activeQueryIndex: a } = e;
|
|
3041
2965
|
return {
|
|
3042
|
-
combinedMetrics:
|
|
2966
|
+
combinedMetrics: V(() => {
|
|
3043
2967
|
if (!r) return t.metrics;
|
|
3044
2968
|
let e = /* @__PURE__ */ new Set(), i = [];
|
|
3045
2969
|
for (let t = 0; t < n.length; t++) {
|
|
@@ -3058,7 +2982,7 @@ function tn(e) {
|
|
|
3058
2982
|
n,
|
|
3059
2983
|
t.metrics
|
|
3060
2984
|
]),
|
|
3061
|
-
combinedBreakdowns:
|
|
2985
|
+
combinedBreakdowns: V(() => {
|
|
3062
2986
|
if (!r) return t.breakdowns;
|
|
3063
2987
|
let e = /* @__PURE__ */ new Set(), i = [];
|
|
3064
2988
|
for (let t of n) for (let n of t.breakdowns) e.has(n.field) || (e.add(n.field), i.push(n));
|
|
@@ -3068,7 +2992,7 @@ function tn(e) {
|
|
|
3068
2992
|
n,
|
|
3069
2993
|
t.breakdowns
|
|
3070
2994
|
]),
|
|
3071
|
-
effectiveBreakdowns:
|
|
2995
|
+
effectiveBreakdowns: V(() => i === "merge" && a > 0 ? n[0]?.breakdowns || [] : t.breakdowns, [
|
|
3072
2996
|
i,
|
|
3073
2997
|
a,
|
|
3074
2998
|
n,
|
|
@@ -3078,8 +3002,8 @@ function tn(e) {
|
|
|
3078
3002
|
}
|
|
3079
3003
|
//#endregion
|
|
3080
3004
|
//#region src/client/hooks/useAnalysisQueryExecution.ts
|
|
3081
|
-
function
|
|
3082
|
-
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: v } = te(), x = u === "funnel" || l, w = u === "flow", T = u === "retention", E = u === "query" && i, ne = u === "query" && !i, D = u === "funnel" && !!d, O =
|
|
3005
|
+
function rn(e) {
|
|
3006
|
+
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: v } = te(), x = u === "funnel" || l, w = u === "flow", T = u === "retention", E = u === "query" && i, ne = u === "query" && !i, D = u === "funnel" && !!d, O = V(() => D || !x || !c || n.length < 2 ? null : ee(n, c), [
|
|
3083
3007
|
D,
|
|
3084
3008
|
x,
|
|
3085
3009
|
c,
|
|
@@ -3105,7 +3029,7 @@ function nn(e) {
|
|
|
3105
3029
|
queries: i ? n : [t],
|
|
3106
3030
|
isMultiQueryMode: i,
|
|
3107
3031
|
skip: !a || x || w || T
|
|
3108
|
-
}), ie = S(j.serverQuery, { skip: !x || !j.serverQuery }), ae = S(M.serverQuery, { skip: !w || !M.serverQuery }),
|
|
3032
|
+
}), ie = S(j.serverQuery, { skip: !x || !j.serverQuery }), ae = S(M.serverQuery, { skip: !w || !M.serverQuery }), P = S(p, { skip: !T || !p }), F = T ? N.isLoading || N.isDebouncing : w ? M.isLoading || M.isDebouncing : x ? j.isExecuting || j.isDebouncing : E ? A.isLoading : k.isLoading, oe = T ? N.isFetching : w ? M.isFetching : x ? j.isExecuting : E ? A.isFetching : k.isFetching, I = T ? N.error : w ? M.error : x ? j.error : E ? A.error : k.error, se = !!(k.debouncedQuery || A.debouncedConfig || !j.isDebouncing || !M.isDebouncing || !N.isDebouncing), L = z((e) => {
|
|
3109
3033
|
T ? N.execute(e) : w ? M.refetch(e) : x ? j.execute(e) : E ? A.refetch(e) : k.refetch(e);
|
|
3110
3034
|
}, [
|
|
3111
3035
|
T,
|
|
@@ -3117,14 +3041,14 @@ function nn(e) {
|
|
|
3117
3041
|
j,
|
|
3118
3042
|
A,
|
|
3119
3043
|
k
|
|
3120
|
-
]),
|
|
3044
|
+
]), ce = V(() => {
|
|
3121
3045
|
let e = T ? N.chartData : w ? M.data : x ? j.chartData : E ? A.data : k.rawData;
|
|
3122
|
-
return o && o.length > 0 && !e ? "success" : a ?
|
|
3046
|
+
return o && o.length > 0 && !e ? "success" : a ? F && !e ? "loading" : oe && e ? "refreshing" : I ? "error" : e ? "success" : "idle" : "idle";
|
|
3123
3047
|
}, [
|
|
3124
3048
|
a,
|
|
3125
|
-
P,
|
|
3126
|
-
se,
|
|
3127
3049
|
F,
|
|
3050
|
+
oe,
|
|
3051
|
+
I,
|
|
3128
3052
|
k.rawData,
|
|
3129
3053
|
A.data,
|
|
3130
3054
|
j.chartData,
|
|
@@ -3135,7 +3059,7 @@ function nn(e) {
|
|
|
3135
3059
|
x,
|
|
3136
3060
|
w,
|
|
3137
3061
|
T
|
|
3138
|
-
]),
|
|
3062
|
+
]), R = V(() => T && N.chartData ? N.chartData.rows.map((e) => ({
|
|
3139
3063
|
"Retention.period": `P${e.period}`,
|
|
3140
3064
|
"Retention.rate": e.retentionRate,
|
|
3141
3065
|
"Retention.retained": e.retainedUsers,
|
|
@@ -3152,12 +3076,12 @@ function nn(e) {
|
|
|
3152
3076
|
x,
|
|
3153
3077
|
w,
|
|
3154
3078
|
T
|
|
3155
|
-
]),
|
|
3079
|
+
]), le = V(() => x && j.stepResults ? j.stepResults.map((e) => e.data) : !E || !A.perQueryData ? null : A.perQueryData, [
|
|
3156
3080
|
E,
|
|
3157
3081
|
x,
|
|
3158
3082
|
A.perQueryData,
|
|
3159
3083
|
j.stepResults
|
|
3160
|
-
]),
|
|
3084
|
+
]), B = x && j.executedQueries?.length > 0 ? j.executedQueries : null, H = x ? j.serverQuery : null, U = x ? ie.debugData : null, ue = w ? M.serverQuery : null, W = w ? M.data : null, G = w ? ae.debugData : null, de = T ? p ?? null : null, fe = T ? N.chartData : null, pe = T ? P.debugData : null, me = V(() => T ? N.needsRefresh : w ? M.needsRefresh : x ? j.needsRefresh : E ? !1 : k.needsRefresh, [
|
|
3161
3085
|
T,
|
|
3162
3086
|
w,
|
|
3163
3087
|
x,
|
|
@@ -3166,23 +3090,23 @@ function nn(e) {
|
|
|
3166
3090
|
M.needsRefresh,
|
|
3167
3091
|
j.needsRefresh,
|
|
3168
3092
|
k.needsRefresh
|
|
3169
|
-
]), he =
|
|
3093
|
+
]), he = V(() => {
|
|
3170
3094
|
if (ne && k.warnings) return k.warnings;
|
|
3171
3095
|
}, [ne, k.warnings]);
|
|
3172
3096
|
return {
|
|
3173
|
-
executionStatus:
|
|
3174
|
-
executionResults:
|
|
3175
|
-
perQueryResults:
|
|
3176
|
-
isLoading:
|
|
3177
|
-
isFetching:
|
|
3178
|
-
error:
|
|
3097
|
+
executionStatus: ce,
|
|
3098
|
+
executionResults: R,
|
|
3099
|
+
perQueryResults: le,
|
|
3100
|
+
isLoading: F,
|
|
3101
|
+
isFetching: oe,
|
|
3102
|
+
error: I,
|
|
3179
3103
|
debugDataPerQuery: re.debugDataPerQuery,
|
|
3180
|
-
hasDebounced:
|
|
3181
|
-
refetch:
|
|
3182
|
-
funnelExecutedQueries:
|
|
3183
|
-
funnelServerQuery:
|
|
3184
|
-
funnelDebugData:
|
|
3185
|
-
flowServerQuery:
|
|
3104
|
+
hasDebounced: se,
|
|
3105
|
+
refetch: L,
|
|
3106
|
+
funnelExecutedQueries: B,
|
|
3107
|
+
funnelServerQuery: H,
|
|
3108
|
+
funnelDebugData: U,
|
|
3109
|
+
flowServerQuery: ue,
|
|
3186
3110
|
flowChartData: W,
|
|
3187
3111
|
flowDebugData: G,
|
|
3188
3112
|
retentionServerQuery: de,
|
|
@@ -3195,12 +3119,12 @@ function nn(e) {
|
|
|
3195
3119
|
}
|
|
3196
3120
|
//#endregion
|
|
3197
3121
|
//#region src/client/hooks/useAnalysisChartDefaults.ts
|
|
3198
|
-
function
|
|
3199
|
-
let { externalColorPalette: t, combinedMetrics: r, combinedBreakdowns: i, hasDebounced: a } = e, o = $((e) => e.analysisType), { chartType: s, chartConfig: c, displayConfig: l } = $(n(
|
|
3122
|
+
function an(e) {
|
|
3123
|
+
let { externalColorPalette: t, combinedMetrics: r, combinedBreakdowns: i, hasDebounced: a } = e, o = $((e) => e.analysisType), { chartType: s, chartConfig: c, displayConfig: l } = $(n(Ut)), u = $((e) => e.userManuallySelectedChart), d = $((e) => e.localPaletteName), f = $((e) => e.setChartTypeManual), p = $((e) => e.setChartConfig), m = $((e) => e.setDisplayConfig), h = $((e) => e.setFunnelChartType), g = $((e) => e.setFunnelChartConfig), _ = $((e) => e.setFunnelDisplayConfig), v = $((e) => e.setLocalPaletteName), y = $((e) => e.setUserManuallySelectedChart), b = z((e) => {
|
|
3200
3124
|
if (o === "funnel") h(e);
|
|
3201
3125
|
else {
|
|
3202
3126
|
f(e);
|
|
3203
|
-
let { chartConfig: t } =
|
|
3127
|
+
let { chartConfig: t } = Ye(r, i, e);
|
|
3204
3128
|
p(t);
|
|
3205
3129
|
}
|
|
3206
3130
|
}, [
|
|
@@ -3210,25 +3134,25 @@ function rn(e) {
|
|
|
3210
3134
|
h,
|
|
3211
3135
|
f,
|
|
3212
3136
|
p
|
|
3213
|
-
]), x =
|
|
3137
|
+
]), x = z((e) => {
|
|
3214
3138
|
o === "funnel" ? g(e) : p(e);
|
|
3215
3139
|
}, [
|
|
3216
3140
|
o,
|
|
3217
3141
|
g,
|
|
3218
3142
|
p
|
|
3219
|
-
]), S =
|
|
3143
|
+
]), S = z((e) => {
|
|
3220
3144
|
o === "funnel" ? _(e) : m(e);
|
|
3221
3145
|
}, [
|
|
3222
3146
|
o,
|
|
3223
3147
|
_,
|
|
3224
3148
|
m
|
|
3225
|
-
]), C =
|
|
3149
|
+
]), C = V(() => qe(r, i), [r, i]), ee = V(() => t ? Array.isArray(t) && typeof t[0] == "string" ? {
|
|
3226
3150
|
name: "custom",
|
|
3227
3151
|
label: "Custom",
|
|
3228
3152
|
colors: t,
|
|
3229
3153
|
gradient: t
|
|
3230
|
-
} : t : ie(d), [t, d]), w =
|
|
3231
|
-
return
|
|
3154
|
+
} : t : ie(d), [t, d]), w = H("");
|
|
3155
|
+
return B(() => {
|
|
3232
3156
|
if (!a || r.length === 0 && i.length === 0) return;
|
|
3233
3157
|
let e = JSON.stringify({
|
|
3234
3158
|
metrics: r.map((e) => e.field),
|
|
@@ -3239,13 +3163,21 @@ function rn(e) {
|
|
|
3239
3163
|
});
|
|
3240
3164
|
if (e === w.current) return;
|
|
3241
3165
|
w.current = e;
|
|
3242
|
-
let t =
|
|
3166
|
+
let t = Ze(r, i, s, u);
|
|
3243
3167
|
if (t) {
|
|
3244
|
-
let { chartConfig: e } =
|
|
3168
|
+
let { chartConfig: e } = Ye(r, i, t);
|
|
3245
3169
|
b(t), x(e), y(!1);
|
|
3246
|
-
} else if (
|
|
3247
|
-
|
|
3248
|
-
|
|
3170
|
+
} else if (r.length > 0 || i.length > 0) {
|
|
3171
|
+
if (s === "table") {
|
|
3172
|
+
let e = [...i.map((e) => e.field), ...r.map((e) => e.field)], t = Array.isArray(c.xAxis) ? c.xAxis : [], n = e.filter((e) => !t.includes(e));
|
|
3173
|
+
n.length > 0 && x({
|
|
3174
|
+
...c,
|
|
3175
|
+
xAxis: [...t, ...n]
|
|
3176
|
+
});
|
|
3177
|
+
} else if (!c.xAxis?.length && !c.yAxis?.length && !c.series?.length) {
|
|
3178
|
+
let { chartConfig: e } = Ye(r, i, s);
|
|
3179
|
+
x(e);
|
|
3180
|
+
}
|
|
3249
3181
|
}
|
|
3250
3182
|
}, [
|
|
3251
3183
|
a,
|
|
@@ -3273,8 +3205,8 @@ function rn(e) {
|
|
|
3273
3205
|
}
|
|
3274
3206
|
//#endregion
|
|
3275
3207
|
//#region src/client/hooks/useAnalysisUIState.ts
|
|
3276
|
-
function
|
|
3277
|
-
let e = $((e) => e.activeTab), t = $((e) => e.activeView), n = $((e) => e.displayLimit), r = $((e) => e.showFieldModal), i = $((e) => e.fieldModalMode), a = $((e) => e.userManuallySelectedChart), o = $((e) => e.setActiveTab), s = $((e) => e.setActiveView), c = $((e) => e.setDisplayLimit), l = $((e) => e.closeFieldModal), [u, d] =
|
|
3208
|
+
function on() {
|
|
3209
|
+
let e = $((e) => e.activeTab), t = $((e) => e.activeView), n = $((e) => e.displayLimit), r = $((e) => e.showFieldModal), i = $((e) => e.fieldModalMode), a = $((e) => e.userManuallySelectedChart), o = $((e) => e.setActiveTab), s = $((e) => e.setActiveView), c = $((e) => e.setDisplayLimit), l = $((e) => e.closeFieldModal), [u, d] = U(0);
|
|
3278
3210
|
return {
|
|
3279
3211
|
activeTab: e,
|
|
3280
3212
|
activeView: t,
|
|
@@ -3292,13 +3224,13 @@ function an() {
|
|
|
3292
3224
|
}
|
|
3293
3225
|
//#endregion
|
|
3294
3226
|
//#region src/client/utils/shareUtils.ts
|
|
3295
|
-
var
|
|
3296
|
-
function ln(e) {
|
|
3297
|
-
return (0, on.compressToEncodedURIComponent)(JSON.stringify(e));
|
|
3298
|
-
}
|
|
3227
|
+
var sn = o(), cn = 1800, ln = "share=";
|
|
3299
3228
|
function un(e) {
|
|
3229
|
+
return (0, sn.compressToEncodedURIComponent)(JSON.stringify(e));
|
|
3230
|
+
}
|
|
3231
|
+
function dn(e) {
|
|
3300
3232
|
try {
|
|
3301
|
-
let t = (0,
|
|
3233
|
+
let t = (0, sn.decompressFromEncodedURIComponent)(e);
|
|
3302
3234
|
if (!t) return null;
|
|
3303
3235
|
let n = JSON.parse(t);
|
|
3304
3236
|
return O(n) ? n : (console.warn("[shareUtils] Invalid AnalysisConfig in share URL"), null);
|
|
@@ -3306,28 +3238,28 @@ function un(e) {
|
|
|
3306
3238
|
return null;
|
|
3307
3239
|
}
|
|
3308
3240
|
}
|
|
3309
|
-
function
|
|
3310
|
-
let t =
|
|
3241
|
+
function fn(e) {
|
|
3242
|
+
let t = un(e);
|
|
3311
3243
|
return {
|
|
3312
|
-
ok: t.length <=
|
|
3244
|
+
ok: t.length <= cn,
|
|
3313
3245
|
size: t.length,
|
|
3314
|
-
maxSize:
|
|
3246
|
+
maxSize: cn
|
|
3315
3247
|
};
|
|
3316
3248
|
}
|
|
3317
|
-
function
|
|
3318
|
-
let t =
|
|
3319
|
-
if (t.length <=
|
|
3249
|
+
function pn(e) {
|
|
3250
|
+
let t = un(e);
|
|
3251
|
+
if (t.length <= cn) return {
|
|
3320
3252
|
encoded: t,
|
|
3321
3253
|
queryOnly: !1
|
|
3322
3254
|
};
|
|
3323
|
-
let n =
|
|
3255
|
+
let n = un({
|
|
3324
3256
|
version: e.version,
|
|
3325
3257
|
analysisType: e.analysisType,
|
|
3326
3258
|
activeView: e.activeView,
|
|
3327
3259
|
charts: {},
|
|
3328
3260
|
query: e.query
|
|
3329
3261
|
});
|
|
3330
|
-
return n.length <=
|
|
3262
|
+
return n.length <= cn ? {
|
|
3331
3263
|
encoded: n,
|
|
3332
3264
|
queryOnly: !0
|
|
3333
3265
|
} : {
|
|
@@ -3335,40 +3267,40 @@ function fn(e) {
|
|
|
3335
3267
|
queryOnly: !0
|
|
3336
3268
|
};
|
|
3337
3269
|
}
|
|
3338
|
-
function
|
|
3339
|
-
let { encoded: t } =
|
|
3340
|
-
return t ? `${window.location.origin}${window.location.pathname}#${
|
|
3270
|
+
function mn(e) {
|
|
3271
|
+
let { encoded: t } = pn(e);
|
|
3272
|
+
return t ? `${window.location.origin}${window.location.pathname}#${ln}${t}` : null;
|
|
3341
3273
|
}
|
|
3342
|
-
function
|
|
3274
|
+
function hn() {
|
|
3343
3275
|
if (typeof window > "u") return null;
|
|
3344
3276
|
let e = window.location.hash;
|
|
3345
|
-
return !e || !e.startsWith(`#${
|
|
3277
|
+
return !e || !e.startsWith(`#${ln}`) ? null : e.slice(7);
|
|
3346
3278
|
}
|
|
3347
|
-
function
|
|
3279
|
+
function gn() {
|
|
3348
3280
|
if (typeof window > "u") return;
|
|
3349
3281
|
let e = new URL(window.location.href);
|
|
3350
3282
|
e.hash = "", window.history.replaceState(null, "", e.toString());
|
|
3351
3283
|
}
|
|
3352
|
-
function
|
|
3353
|
-
let e =
|
|
3354
|
-
return e ?
|
|
3284
|
+
function _n() {
|
|
3285
|
+
let e = hn();
|
|
3286
|
+
return e ? dn(e) : null;
|
|
3355
3287
|
}
|
|
3356
3288
|
//#endregion
|
|
3357
3289
|
//#region src/client/hooks/useAnalysisInitialization.ts
|
|
3358
|
-
function
|
|
3359
|
-
let { currentQuery: t, isValidQuery: n, chartType: r, chartConfig: i, displayConfig: a, onQueryChange: o, onChartConfigChange: s } = e, c = $((e) => e.load), l =
|
|
3360
|
-
|
|
3290
|
+
function vn(e) {
|
|
3291
|
+
let { currentQuery: t, isValidQuery: n, chartType: r, chartConfig: i, displayConfig: a, onQueryChange: o, onChartConfigChange: s } = e, c = $((e) => e.load), l = H(!1);
|
|
3292
|
+
B(() => {
|
|
3361
3293
|
if (l.current) return;
|
|
3362
3294
|
l.current = !0;
|
|
3363
|
-
let e =
|
|
3364
|
-
e && (c(e),
|
|
3365
|
-
}, [c]),
|
|
3295
|
+
let e = _n();
|
|
3296
|
+
e && (c(e), gn());
|
|
3297
|
+
}, [c]), B(() => {
|
|
3366
3298
|
o && n && o(t);
|
|
3367
3299
|
}, [
|
|
3368
3300
|
t,
|
|
3369
3301
|
n,
|
|
3370
3302
|
o
|
|
3371
|
-
]),
|
|
3303
|
+
]), B(() => {
|
|
3372
3304
|
s && s({
|
|
3373
3305
|
chartType: r,
|
|
3374
3306
|
chartConfig: i,
|
|
@@ -3383,27 +3315,27 @@ function _n(e) {
|
|
|
3383
3315
|
}
|
|
3384
3316
|
//#endregion
|
|
3385
3317
|
//#region src/client/hooks/useAnalysisBuilderHook.ts
|
|
3386
|
-
function
|
|
3387
|
-
let { initialData: t, externalColorPalette: n, onQueryChange: r, onChartConfigChange: i } = e, { features: a } = c(), o =
|
|
3318
|
+
function yn(e = {}) {
|
|
3319
|
+
let { initialData: t, externalColorPalette: n, onQueryChange: r, onChartConfigChange: i } = e, { features: a } = c(), o = Rt(), s = tn(), l = nn({
|
|
3388
3320
|
queryState: s.queryState,
|
|
3389
3321
|
queryStates: s.queryStates,
|
|
3390
3322
|
isMultiQueryMode: s.isMultiQueryMode,
|
|
3391
3323
|
mergeStrategy: s.mergeStrategy,
|
|
3392
3324
|
activeQueryIndex: s.activeQueryIndex
|
|
3393
|
-
}), u = $((e) => e.funnelBindingKey), d = $((e) => e.analysisType), f = $((e) => e.funnelCube), p = $((e) => e.funnelSteps), m = $((e) => e.activeFunnelStepIndex), h = $((e) => e.funnelTimeDimension), g =
|
|
3325
|
+
}), u = $((e) => e.funnelBindingKey), d = $((e) => e.analysisType), f = $((e) => e.funnelCube), p = $((e) => e.funnelSteps), m = $((e) => e.activeFunnelStepIndex), h = $((e) => e.funnelTimeDimension), g = V(() => d !== "funnel" || !u?.dimension || !h || !p || p.length < 2 ? !1 : p.every((e) => e.filters.length > 0), [
|
|
3394
3326
|
d,
|
|
3395
3327
|
u,
|
|
3396
3328
|
h,
|
|
3397
3329
|
p
|
|
3398
|
-
]), _ = $((e) => e.charts.funnel?.chartType) || "funnel", v = $((e) => e.charts.funnel?.chartConfig), y =
|
|
3330
|
+
]), _ = $((e) => e.charts.funnel?.chartType) || "funnel", v = $((e) => e.charts.funnel?.chartConfig), y = V(() => v || {}, [v]), b = $((e) => e.flowCube), x = $((e) => e.flowBindingKey), S = $((e) => e.flowTimeDimension), C = $((e) => e.eventDimension), ee = $((e) => e.startingStep), w = $((e) => e.stepsBefore), te = $((e) => e.stepsAfter), T = $((e) => e.joinStrategy), E = $((e) => e.charts.flow?.displayConfig), ne = V(() => E || {
|
|
3399
3331
|
showLegend: !0,
|
|
3400
3332
|
showGrid: !0,
|
|
3401
3333
|
showTooltip: !0
|
|
3402
|
-
}, [E]), D = $((e) => e.charts.flow?.chartType) || "sankey", O = $((e) => e.buildFunnelQueryFromSteps), k =
|
|
3334
|
+
}, [E]), D = $((e) => e.charts.flow?.chartType) || "sankey", O = $((e) => e.buildFunnelQueryFromSteps), k = V(() => d === "funnel" ? O() : null, [
|
|
3403
3335
|
d,
|
|
3404
3336
|
O,
|
|
3405
3337
|
p
|
|
3406
|
-
]), A = $((e) => e.buildFlowQuery), j =
|
|
3338
|
+
]), A = $((e) => e.buildFlowQuery), j = V(() => d === "flow" ? A() : null, [
|
|
3407
3339
|
d,
|
|
3408
3340
|
A,
|
|
3409
3341
|
b,
|
|
@@ -3415,33 +3347,33 @@ function vn(e = {}) {
|
|
|
3415
3347
|
te,
|
|
3416
3348
|
D,
|
|
3417
3349
|
T
|
|
3418
|
-
]), M = $((e) => e.retentionCube), N = $((e) => e.retentionBindingKey), re = $((e) => e.retentionTimeDimension), ie = $((e) => e.retentionDateRange), ae = $((e) => e.retentionCohortFilters),
|
|
3350
|
+
]), M = $((e) => e.retentionCube), N = $((e) => e.retentionBindingKey), re = $((e) => e.retentionTimeDimension), ie = $((e) => e.retentionDateRange), ae = $((e) => e.retentionCohortFilters), P = $((e) => e.retentionActivityFilters), F = $((e) => e.retentionBreakdowns), oe = $((e) => e.retentionViewGranularity), I = $((e) => e.retentionPeriods), se = $((e) => e.retentionType), L = $((e) => e.buildRetentionQuery), ce = $((e) => e.getRetentionValidation), R = $((e) => e.charts.retention?.displayConfig), le = $((e) => e.setRetentionCube), B = $((e) => e.setRetentionBindingKey), U = $((e) => e.setRetentionTimeDimension), ue = $((e) => e.setRetentionDateRange), W = $((e) => e.setRetentionCohortFilters), G = $((e) => e.setRetentionActivityFilters), de = $((e) => e.setRetentionBreakdowns), fe = $((e) => e.addRetentionBreakdown), pe = $((e) => e.removeRetentionBreakdown), me = $((e) => e.setRetentionViewGranularity), he = $((e) => e.setRetentionPeriods), ge = $((e) => e.setRetentionType), _e = V(() => d === "retention" ? L() : null, [
|
|
3419
3351
|
d,
|
|
3420
|
-
|
|
3352
|
+
L,
|
|
3421
3353
|
M,
|
|
3422
3354
|
N,
|
|
3423
3355
|
re,
|
|
3424
3356
|
ie,
|
|
3425
|
-
P,
|
|
3426
|
-
se,
|
|
3427
3357
|
F,
|
|
3428
|
-
|
|
3358
|
+
oe,
|
|
3359
|
+
I,
|
|
3360
|
+
se,
|
|
3429
3361
|
ae,
|
|
3430
|
-
|
|
3431
|
-
]), ve =
|
|
3362
|
+
P
|
|
3363
|
+
]), ve = V(() => d === "retention" ? ce() : null, [
|
|
3432
3364
|
d,
|
|
3433
|
-
|
|
3365
|
+
ce,
|
|
3434
3366
|
M,
|
|
3435
3367
|
N,
|
|
3436
3368
|
re,
|
|
3437
3369
|
ie
|
|
3438
|
-
]), K =
|
|
3370
|
+
]), K = V(() => d === "retention" ? _e !== null : d === "flow" ? j !== null : d === "funnel" ? k !== null : s.isValidQuery ?? !1, [
|
|
3439
3371
|
d,
|
|
3440
3372
|
_e,
|
|
3441
3373
|
j,
|
|
3442
3374
|
k,
|
|
3443
3375
|
s.isValidQuery
|
|
3444
|
-
]), q =
|
|
3376
|
+
]), q = rn({
|
|
3445
3377
|
currentQuery: s.currentQuery,
|
|
3446
3378
|
allQueries: s.allQueries,
|
|
3447
3379
|
multiQueryConfig: s.multiQueryConfig,
|
|
@@ -3456,13 +3388,13 @@ function vn(e = {}) {
|
|
|
3456
3388
|
serverFlowQuery: j,
|
|
3457
3389
|
serverRetentionQuery: _e,
|
|
3458
3390
|
retentionValidation: ve
|
|
3459
|
-
}), J =
|
|
3391
|
+
}), J = an({
|
|
3460
3392
|
externalColorPalette: n,
|
|
3461
3393
|
combinedMetrics: l.combinedMetrics,
|
|
3462
3394
|
combinedBreakdowns: l.combinedBreakdowns,
|
|
3463
3395
|
hasDebounced: q.hasDebounced
|
|
3464
|
-
}), Y =
|
|
3465
|
-
|
|
3396
|
+
}), Y = on();
|
|
3397
|
+
vn({
|
|
3466
3398
|
currentQuery: s.currentQuery,
|
|
3467
3399
|
isValidQuery: s.isValidQuery ?? !1,
|
|
3468
3400
|
chartType: J.chartType,
|
|
@@ -3471,11 +3403,11 @@ function vn(e = {}) {
|
|
|
3471
3403
|
onQueryChange: r,
|
|
3472
3404
|
onChartConfigChange: i
|
|
3473
3405
|
});
|
|
3474
|
-
let ye = $((e) => e.openMetricsModal), be = $((e) => e.addMetric), xe = $((e) => e.removeMetric), Se = $((e) => e.toggleMetric), Ce = $((e) => e.reorderMetrics), we = $((e) => e.openBreakdownsModal), Te = $((e) => e.addBreakdown), Ee = $((e) => e.removeBreakdown), De = $((e) => e.toggleBreakdown), Oe = $((e) => e.setBreakdownGranularity), ke = $((e) => e.toggleBreakdownComparison), Ae = $((e) => e.reorderBreakdowns), je = $((e) => e.setFilters), Me = $((e) => e.dropFieldToFilter), Ne = $((e) => e.setOrder), Pe = $((e) => e.setLimit), Fe = $((e) => e.clearQuery), Ie = $((e) => e.clearCurrentMode), Le = $((e) => e.setFunnelBindingKey), Re = $((e) => e.setAnalysisType), ze = $((e) => e.setFunnelCube), Be = $((e) => e.addFunnelStep), Ve = $((e) => e.removeFunnelStep), He = $((e) => e.updateFunnelStep), Ue = $((e) => e.setActiveFunnelStepIndex), We = $((e) => e.reorderFunnelSteps), Ge = $((e) => e.setFunnelTimeDimension), Ke = $((e) => e.charts.funnel?.displayConfig), qe =
|
|
3406
|
+
let ye = $((e) => e.openMetricsModal), be = $((e) => e.addMetric), xe = $((e) => e.removeMetric), Se = $((e) => e.toggleMetric), Ce = $((e) => e.reorderMetrics), we = $((e) => e.openBreakdownsModal), Te = $((e) => e.addBreakdown), Ee = $((e) => e.removeBreakdown), De = $((e) => e.toggleBreakdown), Oe = $((e) => e.setBreakdownGranularity), ke = $((e) => e.toggleBreakdownComparison), Ae = $((e) => e.reorderBreakdowns), je = $((e) => e.setFilters), Me = $((e) => e.dropFieldToFilter), Ne = $((e) => e.setOrder), Pe = $((e) => e.setLimit), Fe = $((e) => e.clearQuery), Ie = $((e) => e.clearCurrentMode), Le = $((e) => e.setFunnelBindingKey), Re = $((e) => e.setAnalysisType), ze = $((e) => e.setFunnelCube), Be = $((e) => e.addFunnelStep), Ve = $((e) => e.removeFunnelStep), He = $((e) => e.updateFunnelStep), Ue = $((e) => e.setActiveFunnelStepIndex), We = $((e) => e.reorderFunnelSteps), Ge = $((e) => e.setFunnelTimeDimension), Ke = $((e) => e.charts.funnel?.displayConfig), qe = V(() => Ke || {
|
|
3475
3407
|
showLegend: !0,
|
|
3476
3408
|
showGrid: !0,
|
|
3477
3409
|
showTooltip: !0
|
|
3478
|
-
}, [Ke]), Je = $((e) => e.setFunnelDisplayConfig), Ye = $((e) => e.setFlowCube), Xe = $((e) => e.setFlowBindingKey), Ze = $((e) => e.setFlowTimeDimension), Qe = $((e) => e.setEventDimension), $e = $((e) => e.setStartingStepName), et = $((e) => e.setStartingStepFilters), tt = $((e) => e.setStepsBefore), nt = $((e) => e.setStepsAfter), rt = $((e) => e.setJoinStrategy), it =
|
|
3410
|
+
}, [Ke]), Je = $((e) => e.setFunnelDisplayConfig), Ye = $((e) => e.setFlowCube), Xe = $((e) => e.setFlowBindingKey), Ze = $((e) => e.setFlowTimeDimension), Qe = $((e) => e.setEventDimension), $e = $((e) => e.setStartingStepName), et = $((e) => e.setStartingStepFilters), tt = $((e) => e.setStepsBefore), nt = $((e) => e.setStepsAfter), rt = $((e) => e.setJoinStrategy), it = z((e) => {
|
|
3479
3411
|
o.setState((t) => ({ charts: {
|
|
3480
3412
|
...t.charts,
|
|
3481
3413
|
flow: {
|
|
@@ -3487,7 +3419,7 @@ function vn(e = {}) {
|
|
|
3487
3419
|
displayConfig: e
|
|
3488
3420
|
}
|
|
3489
3421
|
} }));
|
|
3490
|
-
}, [o]), at =
|
|
3422
|
+
}, [o]), at = z((e) => {
|
|
3491
3423
|
o.setState((t) => ({ charts: {
|
|
3492
3424
|
...t.charts,
|
|
3493
3425
|
retention: {
|
|
@@ -3499,8 +3431,8 @@ function vn(e = {}) {
|
|
|
3499
3431
|
displayConfig: e
|
|
3500
3432
|
}
|
|
3501
3433
|
} }));
|
|
3502
|
-
}, [o]), ot = $((e) => e.aiState), st = $((e) => e.openAI), ct = $((e) => e.closeAI), lt = $((e) => e.setAIPrompt), ut = $((e) => e.setAIGenerating), dt = $((e) => e.setAIError), ft = $((e) => e.setAIHasGeneratedQuery), pt = $((e) => e.saveAIPreviousState), mt = $((e) => e.restoreAIPreviousState),
|
|
3503
|
-
|
|
3434
|
+
}, [o]), ot = $((e) => e.aiState), st = $((e) => e.openAI), ct = $((e) => e.closeAI), lt = $((e) => e.setAIPrompt), ut = $((e) => e.setAIGenerating), dt = $((e) => e.setAIError), ft = $((e) => e.setAIHasGeneratedQuery), pt = $((e) => e.saveAIPreviousState), mt = $((e) => e.restoreAIPreviousState), ht = H("idle"), X = K, Z = $((e) => e.getValidation), gt = V(() => Z(), [
|
|
3435
|
+
Z,
|
|
3504
3436
|
s.queryStates,
|
|
3505
3437
|
d,
|
|
3506
3438
|
p,
|
|
@@ -3514,7 +3446,7 @@ function vn(e = {}) {
|
|
|
3514
3446
|
w,
|
|
3515
3447
|
te,
|
|
3516
3448
|
T
|
|
3517
|
-
]),
|
|
3449
|
+
]), _t = z((e, t, n, r) => {
|
|
3518
3450
|
Y.fieldModalMode === "metrics" && t === "measure" ? Se(e.name) : Y.fieldModalMode === "breakdown" && (d === "retention" && t === "dimension" ? fe({ field: e.name }) : De(e.name, t === "timeDimension")), r || Y.closeFieldModal();
|
|
3519
3451
|
}, [
|
|
3520
3452
|
Y,
|
|
@@ -3522,7 +3454,7 @@ function vn(e = {}) {
|
|
|
3522
3454
|
De,
|
|
3523
3455
|
fe,
|
|
3524
3456
|
d
|
|
3525
|
-
]),
|
|
3457
|
+
]), Q = z(async () => {
|
|
3526
3458
|
if (a?.aiEndpoint) {
|
|
3527
3459
|
pt(), ut(!0), dt(null);
|
|
3528
3460
|
try {
|
|
@@ -3539,15 +3471,15 @@ function vn(e = {}) {
|
|
|
3539
3471
|
ut,
|
|
3540
3472
|
dt,
|
|
3541
3473
|
ft
|
|
3542
|
-
]), vt =
|
|
3474
|
+
]), vt = z(() => {
|
|
3543
3475
|
ct(), ft(!1);
|
|
3544
|
-
}, [ct, ft]), yt =
|
|
3476
|
+
}, [ct, ft]), yt = z(() => {
|
|
3545
3477
|
mt(), ct();
|
|
3546
|
-
}, [mt, ct]), bt =
|
|
3547
|
-
|
|
3548
|
-
|
|
3478
|
+
}, [mt, ct]), bt = z(async () => {
|
|
3479
|
+
ht.current = "copied", setTimeout(() => {
|
|
3480
|
+
ht.current = "idle";
|
|
3549
3481
|
}, 2e3);
|
|
3550
|
-
}, []), xt =
|
|
3482
|
+
}, []), xt = z(() => {
|
|
3551
3483
|
let e = o.getState();
|
|
3552
3484
|
return e.analysisType === "funnel" ? e.buildFunnelQueryFromSteps() || e.buildCurrentQuery() : e.queryStates.length > 1 ? {
|
|
3553
3485
|
queries: e.buildAllQueries(),
|
|
@@ -3557,7 +3489,7 @@ function vn(e = {}) {
|
|
|
3557
3489
|
funnelBindingKey: e.funnelBindingKey,
|
|
3558
3490
|
stepTimeToConvert: e.stepTimeToConvert
|
|
3559
3491
|
} : e.buildCurrentQuery();
|
|
3560
|
-
}, [o]), St =
|
|
3492
|
+
}, [o]), St = z(() => {
|
|
3561
3493
|
let e = o.getState(), t = e.charts[e.analysisType];
|
|
3562
3494
|
return t ? {
|
|
3563
3495
|
chartType: t.chartType,
|
|
@@ -3573,7 +3505,7 @@ function vn(e = {}) {
|
|
|
3573
3505
|
J.chartType,
|
|
3574
3506
|
J.chartConfig,
|
|
3575
3507
|
J.displayConfig
|
|
3576
|
-
]), Ct =
|
|
3508
|
+
]), Ct = z(() => o.getState().analysisType, [o]);
|
|
3577
3509
|
return {
|
|
3578
3510
|
queryState: s.queryState,
|
|
3579
3511
|
queryStates: s.queryStates,
|
|
@@ -3609,12 +3541,12 @@ function vn(e = {}) {
|
|
|
3609
3541
|
retentionTimeDimension: re,
|
|
3610
3542
|
retentionDateRange: ie,
|
|
3611
3543
|
retentionCohortFilters: ae,
|
|
3612
|
-
retentionActivityFilters:
|
|
3613
|
-
retentionBreakdowns:
|
|
3614
|
-
retentionViewGranularity:
|
|
3615
|
-
retentionPeriods:
|
|
3616
|
-
retentionType:
|
|
3617
|
-
retentionDisplayConfig:
|
|
3544
|
+
retentionActivityFilters: P,
|
|
3545
|
+
retentionBreakdowns: F,
|
|
3546
|
+
retentionViewGranularity: oe,
|
|
3547
|
+
retentionPeriods: I,
|
|
3548
|
+
retentionType: se,
|
|
3549
|
+
retentionDisplayConfig: R,
|
|
3618
3550
|
executionStatus: q.executionStatus,
|
|
3619
3551
|
executionResults: q.executionResults,
|
|
3620
3552
|
perQueryResults: q.perQueryResults,
|
|
@@ -3657,8 +3589,8 @@ function vn(e = {}) {
|
|
|
3657
3589
|
error: ot.error,
|
|
3658
3590
|
hasGeneratedQuery: ot.hasGeneratedQuery
|
|
3659
3591
|
},
|
|
3660
|
-
shareButtonState:
|
|
3661
|
-
canShare:
|
|
3592
|
+
shareButtonState: ht.current,
|
|
3593
|
+
canShare: X,
|
|
3662
3594
|
adapterValidation: gt,
|
|
3663
3595
|
actions: {
|
|
3664
3596
|
setActiveQueryIndex: s.setActiveQueryIndex,
|
|
@@ -3701,10 +3633,10 @@ function vn(e = {}) {
|
|
|
3701
3633
|
setStepsAfter: nt,
|
|
3702
3634
|
setJoinStrategy: rt,
|
|
3703
3635
|
setFlowDisplayConfig: it,
|
|
3704
|
-
setRetentionCube:
|
|
3705
|
-
setRetentionBindingKey:
|
|
3706
|
-
setRetentionTimeDimension:
|
|
3707
|
-
setRetentionDateRange:
|
|
3636
|
+
setRetentionCube: le,
|
|
3637
|
+
setRetentionBindingKey: B,
|
|
3638
|
+
setRetentionTimeDimension: U,
|
|
3639
|
+
setRetentionDateRange: ue,
|
|
3708
3640
|
setRetentionCohortFilters: W,
|
|
3709
3641
|
setRetentionActivityFilters: G,
|
|
3710
3642
|
setRetentionBreakdowns: de,
|
|
@@ -3726,14 +3658,14 @@ function vn(e = {}) {
|
|
|
3726
3658
|
openAI: st,
|
|
3727
3659
|
closeAI: ct,
|
|
3728
3660
|
setAIPrompt: lt,
|
|
3729
|
-
generateAI:
|
|
3661
|
+
generateAI: Q,
|
|
3730
3662
|
acceptAI: vt,
|
|
3731
3663
|
cancelAI: yt,
|
|
3732
3664
|
share: bt,
|
|
3733
3665
|
clearQuery: Fe,
|
|
3734
3666
|
clearCurrentMode: Ie,
|
|
3735
3667
|
refetch: q.refetch,
|
|
3736
|
-
handleFieldSelected:
|
|
3668
|
+
handleFieldSelected: _t
|
|
3737
3669
|
},
|
|
3738
3670
|
getQueryConfig: xt,
|
|
3739
3671
|
getChartConfig: St,
|
|
@@ -3742,7 +3674,7 @@ function vn(e = {}) {
|
|
|
3742
3674
|
}
|
|
3743
3675
|
//#endregion
|
|
3744
3676
|
//#region src/client/utils/funnelValidation.ts
|
|
3745
|
-
function
|
|
3677
|
+
function bn(e, t) {
|
|
3746
3678
|
let n = [];
|
|
3747
3679
|
if (!t?.cubes) return n;
|
|
3748
3680
|
if (typeof e.dimension == "string") {
|
|
@@ -3766,7 +3698,7 @@ function yn(e, t) {
|
|
|
3766
3698
|
}
|
|
3767
3699
|
return n;
|
|
3768
3700
|
}
|
|
3769
|
-
function
|
|
3701
|
+
function xn(e) {
|
|
3770
3702
|
let t = [];
|
|
3771
3703
|
for (let n = 0; n < e.length; n++) {
|
|
3772
3704
|
let r = e[n], i = r.query;
|
|
@@ -3778,16 +3710,16 @@ function bn(e) {
|
|
|
3778
3710
|
}
|
|
3779
3711
|
return t;
|
|
3780
3712
|
}
|
|
3781
|
-
function
|
|
3713
|
+
function Sn(e, t) {
|
|
3782
3714
|
if (typeof e.dimension == "string") return !0;
|
|
3783
3715
|
let n = w(t);
|
|
3784
3716
|
return n ? e.dimension.some((e) => e.cube === n) : !1;
|
|
3785
3717
|
}
|
|
3786
|
-
function
|
|
3718
|
+
function Cn(e, t) {
|
|
3787
3719
|
let n = [];
|
|
3788
3720
|
for (let r = 0; r < t.length; r++) {
|
|
3789
3721
|
let i = t[r];
|
|
3790
|
-
if (!
|
|
3722
|
+
if (!Sn(e, i.query)) {
|
|
3791
3723
|
let e = w(i.query) || "unknown";
|
|
3792
3724
|
n.push({
|
|
3793
3725
|
type: "cross_cube",
|
|
@@ -3798,26 +3730,26 @@ function Sn(e, t) {
|
|
|
3798
3730
|
}
|
|
3799
3731
|
return n;
|
|
3800
3732
|
}
|
|
3801
|
-
function
|
|
3733
|
+
function wn(e) {
|
|
3802
3734
|
return e ? /^P(?:\d+Y)?(?:\d+M)?(?:\d+W)?(?:\d+D)?(?:T(?:\d+H)?(?:\d+M)?(?:\d+S)?)?$/.test(e) ? null : {
|
|
3803
3735
|
type: "time_window",
|
|
3804
3736
|
message: `Invalid time window format "${e}". Expected ISO 8601 duration (e.g., P7D, PT1H)`
|
|
3805
3737
|
} : null;
|
|
3806
3738
|
}
|
|
3807
|
-
function
|
|
3739
|
+
function Tn(e, t) {
|
|
3808
3740
|
let n = [], r = [];
|
|
3809
3741
|
e.steps.length < 2 && n.push({
|
|
3810
3742
|
type: "general",
|
|
3811
3743
|
message: "Funnel requires at least 2 steps"
|
|
3812
|
-
}), e.bindingKey?.dimension ? (n.push(...
|
|
3744
|
+
}), e.bindingKey?.dimension ? (n.push(...bn(e.bindingKey, t)), n.push(...Cn(e.bindingKey, e.steps))) : n.push({
|
|
3813
3745
|
type: "binding_key",
|
|
3814
3746
|
message: "Binding key dimension is required"
|
|
3815
|
-
}), n.push(...
|
|
3747
|
+
}), n.push(...xn(e.steps));
|
|
3816
3748
|
for (let t = 0; t < e.steps.length; t++) {
|
|
3817
|
-
let r = e.steps[t], i =
|
|
3749
|
+
let r = e.steps[t], i = wn(r.timeToConvert);
|
|
3818
3750
|
i && (i.stepIndex = t, n.push(i));
|
|
3819
3751
|
}
|
|
3820
|
-
let i =
|
|
3752
|
+
let i = wn(e.globalTimeWindow);
|
|
3821
3753
|
return i && n.push(i), e.steps.length > 5 && r.push({
|
|
3822
3754
|
type: "general",
|
|
3823
3755
|
message: "Funnels with more than 5 steps may have reduced performance"
|
|
@@ -3827,7 +3759,7 @@ function wn(e, t) {
|
|
|
3827
3759
|
warnings: r
|
|
3828
3760
|
};
|
|
3829
3761
|
}
|
|
3830
|
-
function
|
|
3762
|
+
function En(e, t) {
|
|
3831
3763
|
return t < 2 ? {
|
|
3832
3764
|
isValid: !1,
|
|
3833
3765
|
message: "Add at least 2 steps for funnel"
|
|
@@ -3836,7 +3768,7 @@ function Tn(e, t) {
|
|
|
3836
3768
|
message: "Select a binding key dimension"
|
|
3837
3769
|
} : { isValid: !0 };
|
|
3838
3770
|
}
|
|
3839
|
-
function
|
|
3771
|
+
function Dn(e) {
|
|
3840
3772
|
if (!e?.cubes) return [];
|
|
3841
3773
|
let t = [];
|
|
3842
3774
|
for (let n of e.cubes) if (n.dimensions) for (let e of n.dimensions) (e.type === "string" || e.type === "number") && t.push({
|
|
@@ -3846,7 +3778,7 @@ function En(e) {
|
|
|
3846
3778
|
});
|
|
3847
3779
|
return t;
|
|
3848
3780
|
}
|
|
3849
|
-
function
|
|
3781
|
+
function On(e) {
|
|
3850
3782
|
if (!e?.dimension) return "Select binding key...";
|
|
3851
3783
|
if (typeof e.dimension == "string") return e.dimension.split(".")[1] || e.dimension;
|
|
3852
3784
|
if (e.dimension.length > 0) {
|
|
@@ -3856,6 +3788,6 @@ function Dn(e) {
|
|
|
3856
3788
|
return "Select binding key...";
|
|
3857
3789
|
}
|
|
3858
3790
|
//#endregion
|
|
3859
|
-
export {
|
|
3791
|
+
export { Gt as A, Lt as C, Ht as D, zt as E, ot as F, ze as I, $ as M, Rt as N, Kt as O, st as P, Jt as S, Ut as T, Xt as _, Cn as a, Yt as b, yn as c, dn as d, mn as f, Zt as g, _n as h, bn as i, Wt as j, Bt as k, un as l, hn as m, On as n, Tn as o, fn as p, En as r, xn as s, Dn as t, pn as u, en as v, Vt as w, Qt as x, $t as y };
|
|
3860
3792
|
|
|
3861
|
-
//# sourceMappingURL=analysis-builder-shared-
|
|
3793
|
+
//# sourceMappingURL=analysis-builder-shared-DmyRh2O3.js.map
|